OSDN Git Service

am 7b17e24d: am a9086ee9: Show accurate connection status for ephemeral networks...
authorJeff Davidson <jpd@google.com>
Thu, 6 Nov 2014 02:27:33 +0000 (02:27 +0000)
committerAndroid Git Automerger <android-git-automerger@android.com>
Thu, 6 Nov 2014 02:27:33 +0000 (02:27 +0000)
* commit '7b17e24d36e5fd3263204a4ee666e85a4a006b90':
  Show accurate connection status for ephemeral networks.

1  2 
res/values/strings.xml
src/com/android/settings/wifi/AccessPoint.java
src/com/android/settings/wifi/WifiSettings.java

      <string name="wifi_menu_scan">Scan</string>
      <!-- Menu option to Wi-Fi advanced settings -->
      <string name="wifi_menu_advanced">Advanced</string>
 +    <!-- Menu option to show app icons instead of WiFi strength [CHAR LIMIT=20]-->
 +    <string name="wifi_menu_apps">Show Apps</string>
 +    <!-- Menu option to show WiFi strength icons [CHAR LIMIT=20]-->
 +    <string name="wifi_menu_apps_strength">Show WiFi Strength</string>
      <!-- Menu option to connect to a Wi-Fi network -->
      <string name="wifi_menu_connect">Connect to network</string>
+     <!-- Menu option to remember a temporary Wi-Fi network -->
+     <string name="wifi_menu_remember">Remember network</string>
      <!-- Menu option to delete a Wi-Fi network -->
      <string name="wifi_menu_forget">Forget network</string>
      <!-- Menu option to modify a Wi-Fi network configuration -->
@@@ -19,11 -19,11 +19,13 @@@ package com.android.settings.wifi
  import com.android.settings.R;
  
  import android.content.Context;
 +import android.content.pm.PackageManager;
 +import android.content.pm.PackageManager.NameNotFoundException;
  import android.graphics.drawable.Drawable;
  import android.graphics.drawable.StateListDrawable;
+ import android.net.NetworkInfo;
  import android.net.NetworkInfo.DetailedState;
+ import android.net.NetworkInfo.State;
  import android.net.wifi.ScanResult;
  import android.net.wifi.WifiConfiguration;
  import android.net.wifi.WifiConfiguration.KeyMgmt;
@@@ -544,12 -530,27 +545,25 @@@ public class WifiSettings extends Restr
              if (preference instanceof AccessPoint) {
                  mSelectedAccessPoint = (AccessPoint) preference;
                  menu.setHeaderTitle(mSelectedAccessPoint.ssid);
-                 if (mSelectedAccessPoint.getLevel() != -1
-                         && mSelectedAccessPoint.getState() == null) {
-                     menu.add(Menu.NONE, MENU_ID_CONNECT, 0, R.string.wifi_menu_connect);
+                 if (mSelectedAccessPoint.getLevel() != -1) {
+                     int connectStringRes = 0;
+                     if (mSelectedAccessPoint.getState() == null) {
+                         connectStringRes = R.string.wifi_menu_connect;
+                     } else if (mSelectedAccessPoint.networkId == INVALID_NETWORK_ID &&
+                             mSelectedAccessPoint.getNetworkInfo().getState()
+                                 != State.DISCONNECTED) {
+                         // State is non-null (and not disconnected) but this network has no
+                         // configuration, which means it is ephemeral. Allow the user to save the
+                         // configuration permanently (but still issue this as a CONNECT command).
+                         connectStringRes = R.string.wifi_menu_remember;
+                     }
+                     if (connectStringRes != 0) {
+                         menu.add(Menu.NONE, MENU_ID_CONNECT, 0, connectStringRes);
+                     }
                  }
                  if (mSelectedAccessPoint.networkId != INVALID_NETWORK_ID) {
 -                    if (ActivityManager.getCurrentUser() == UserHandle.USER_OWNER) {
 -                        menu.add(Menu.NONE, MENU_ID_FORGET, 0, R.string.wifi_menu_forget);
 -                    }
 +                    menu.add(Menu.NONE, MENU_ID_FORGET, 0, R.string.wifi_menu_forget);
                      menu.add(Menu.NONE, MENU_ID_MODIFY, 0, R.string.wifi_menu_modify);
  
                      if (mSelectedAccessPoint.security != AccessPoint.SECURITY_NONE) {