Loading src/com/android/settings/wifi/AccessPoint.java +3 −2 Original line number Diff line number Diff line Loading @@ -595,7 +595,7 @@ class AccessPoint extends Preference { * For ephemeral connections (networkId is invalid), this returns false if the network is * disconnected. */ private boolean isActive() { boolean isActive() { return mNetworkInfo != null && (networkId != WifiConfiguration.INVALID_NETWORK_ID || mNetworkInfo.getState() != State.DISCONNECTED); Loading @@ -617,7 +617,8 @@ class AccessPoint extends Preference { StringBuilder summary = new StringBuilder(); if (isActive()) { // This is the active connection summary.append(Summary.get(context, getState())); summary.append(Summary.get(context, getState(), networkId == WifiConfiguration.INVALID_NETWORK_ID)); } else if (mConfig != null && mConfig.hasNoInternetAccess()) { summary.append(context.getString(R.string.wifi_no_internet)); Loading src/com/android/settings/wifi/Summary.java +8 −3 Original line number Diff line number Diff line Loading @@ -22,7 +22,12 @@ import android.content.Context; import android.net.NetworkInfo.DetailedState; class Summary { static String get(Context context, String ssid, DetailedState state) { static String get(Context context, String ssid, DetailedState state, boolean isEphemeral) { if (state == DetailedState.CONNECTED && isEphemeral && ssid == null) { // Special case for connected + ephemeral networks. return context.getString(R.string.connected_via_wfa); } String[] formats = context.getResources().getStringArray((ssid == null) ? R.array.wifi_status : R.array.wifi_status_with_ssid); int index = state.ordinal(); Loading @@ -33,7 +38,7 @@ class Summary { return String.format(formats[index], ssid); } static String get(Context context, DetailedState state) { return get(context, null, state); static String get(Context context, DetailedState state, boolean isEphemeral) { return get(context, null, state, isEphemeral); } } src/com/android/settings/wifi/WifiConfigController.java +5 −3 Original line number Diff line number Diff line Loading @@ -242,7 +242,8 @@ public class WifiConfigController implements TextWatcher, } } if (mAccessPoint.networkId == INVALID_NETWORK_ID || mEdit) { if ((mAccessPoint.networkId == INVALID_NETWORK_ID && !mAccessPoint.isActive()) || mEdit) { showSecurityFields(); showIpConfigFields(); showProxyFields(); Loading @@ -266,7 +267,8 @@ public class WifiConfigController implements TextWatcher, } else { if (state != null) { addRow(group, R.string.wifi_status, Summary.get(mConfigUi.getContext(), state)); state, mAccessPoint.networkId == WifiConfiguration.INVALID_NETWORK_ID)); } if (signalLevel != null) { Loading Loading @@ -300,7 +302,7 @@ public class WifiConfigController implements TextWatcher, addRow(group, R.string.wifi_security, mAccessPoint.getSecurityString(false)); mView.findViewById(R.id.ip_fields).setVisibility(View.GONE); } if (mAccessPoint.networkId != INVALID_NETWORK_ID if ((mAccessPoint.networkId != INVALID_NETWORK_ID || mAccessPoint.isActive()) && ActivityManager.getCurrentUser() == UserHandle.USER_OWNER) { mConfigUi.setForgetButton(res.getString(R.string.wifi_forget)); } Loading src/com/android/settings/wifi/WifiSettings.java +25 −22 Original line number Diff line number Diff line Loading @@ -502,26 +502,21 @@ public class WifiSettings extends RestrictedSettingsFragment mSelectedAccessPoint = (AccessPoint) preference; menu.setHeaderTitle(mSelectedAccessPoint.ssid); 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); menu.add(Menu.NONE, MENU_ID_CONNECT, 0, R.string.wifi_menu_connect); } } if (mSelectedAccessPoint.networkId != INVALID_NETWORK_ID) { if (ActivityManager.getCurrentUser() == UserHandle.USER_OWNER) { if (ActivityManager.getCurrentUser() == UserHandle.USER_OWNER && (mSelectedAccessPoint.networkId != INVALID_NETWORK_ID || (mSelectedAccessPoint.getNetworkInfo() != null && mSelectedAccessPoint.getNetworkInfo().getState() != State.DISCONNECTED))) { // Allow forgetting a network if the current user is the owner and either the // network is saved or ephemerally connected. (In the latter case, "forget" // blacklists the network so it won't be used again, ephemerally). menu.add(Menu.NONE, MENU_ID_FORGET, 0, R.string.wifi_menu_forget); } if (mSelectedAccessPoint.networkId != INVALID_NETWORK_ID) { menu.add(Menu.NONE, MENU_ID_MODIFY, 0, R.string.wifi_menu_modify); if (mSelectedAccessPoint.security != AccessPoint.SECURITY_NONE) { Loading Loading @@ -552,7 +547,7 @@ public class WifiSettings extends RestrictedSettingsFragment return true; } case MENU_ID_FORGET: { mWifiManager.forget(mSelectedAccessPoint.networkId, mForgetListener); forget(); return true; } case MENU_ID_MODIFY: { Loading @@ -571,9 +566,10 @@ public class WifiSettings extends RestrictedSettingsFragment public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) { if (preference instanceof AccessPoint) { mSelectedAccessPoint = (AccessPoint) preference; /** Bypass dialog for unsecured, unsaved networks */ /** Bypass dialog for unsecured, unsaved, and inactive networks */ if (mSelectedAccessPoint.security == AccessPoint.SECURITY_NONE && mSelectedAccessPoint.networkId == INVALID_NETWORK_ID) { mSelectedAccessPoint.networkId == INVALID_NETWORK_ID && !mSelectedAccessPoint.isActive()) { mSelectedAccessPoint.generateOpenNetworkConfig(); if (!savedNetworksExist) { savedNetworksExist = true; Loading Loading @@ -903,12 +899,19 @@ public class WifiSettings extends RestrictedSettingsFragment /* package */ void forget() { if (mSelectedAccessPoint.networkId == INVALID_NETWORK_ID) { if (mSelectedAccessPoint.getNetworkInfo().getState() != State.DISCONNECTED) { // Network is active but has no network ID - must be ephemeral. mWifiManager.disableEphemeralNetwork( AccessPoint.convertToQuotedString(mSelectedAccessPoint.ssid)); } else { // Should not happen, but a monkey seems to trigger it Log.e(TAG, "Failed to forget invalid network " + mSelectedAccessPoint.getConfig()); return; } } else { mWifiManager.forget(mSelectedAccessPoint.networkId, mForgetListener); } if (mWifiManager.isWifiEnabled()) { mScanner.resume(); Loading src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java +1 −1 Original line number Diff line number Diff line Loading @@ -285,7 +285,7 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis default: // DISCONNECTED, FAILED if (mScreenState != SCREEN_STATE_CONNECTED && mWifiSettings.getAccessPointsCount() > 0) { showDisconnectedState(Summary.get(this, state)); showDisconnectedState(Summary.get(this, state, false /* isEphemeral */)); } break; } Loading Loading
src/com/android/settings/wifi/AccessPoint.java +3 −2 Original line number Diff line number Diff line Loading @@ -595,7 +595,7 @@ class AccessPoint extends Preference { * For ephemeral connections (networkId is invalid), this returns false if the network is * disconnected. */ private boolean isActive() { boolean isActive() { return mNetworkInfo != null && (networkId != WifiConfiguration.INVALID_NETWORK_ID || mNetworkInfo.getState() != State.DISCONNECTED); Loading @@ -617,7 +617,8 @@ class AccessPoint extends Preference { StringBuilder summary = new StringBuilder(); if (isActive()) { // This is the active connection summary.append(Summary.get(context, getState())); summary.append(Summary.get(context, getState(), networkId == WifiConfiguration.INVALID_NETWORK_ID)); } else if (mConfig != null && mConfig.hasNoInternetAccess()) { summary.append(context.getString(R.string.wifi_no_internet)); Loading
src/com/android/settings/wifi/Summary.java +8 −3 Original line number Diff line number Diff line Loading @@ -22,7 +22,12 @@ import android.content.Context; import android.net.NetworkInfo.DetailedState; class Summary { static String get(Context context, String ssid, DetailedState state) { static String get(Context context, String ssid, DetailedState state, boolean isEphemeral) { if (state == DetailedState.CONNECTED && isEphemeral && ssid == null) { // Special case for connected + ephemeral networks. return context.getString(R.string.connected_via_wfa); } String[] formats = context.getResources().getStringArray((ssid == null) ? R.array.wifi_status : R.array.wifi_status_with_ssid); int index = state.ordinal(); Loading @@ -33,7 +38,7 @@ class Summary { return String.format(formats[index], ssid); } static String get(Context context, DetailedState state) { return get(context, null, state); static String get(Context context, DetailedState state, boolean isEphemeral) { return get(context, null, state, isEphemeral); } }
src/com/android/settings/wifi/WifiConfigController.java +5 −3 Original line number Diff line number Diff line Loading @@ -242,7 +242,8 @@ public class WifiConfigController implements TextWatcher, } } if (mAccessPoint.networkId == INVALID_NETWORK_ID || mEdit) { if ((mAccessPoint.networkId == INVALID_NETWORK_ID && !mAccessPoint.isActive()) || mEdit) { showSecurityFields(); showIpConfigFields(); showProxyFields(); Loading @@ -266,7 +267,8 @@ public class WifiConfigController implements TextWatcher, } else { if (state != null) { addRow(group, R.string.wifi_status, Summary.get(mConfigUi.getContext(), state)); state, mAccessPoint.networkId == WifiConfiguration.INVALID_NETWORK_ID)); } if (signalLevel != null) { Loading Loading @@ -300,7 +302,7 @@ public class WifiConfigController implements TextWatcher, addRow(group, R.string.wifi_security, mAccessPoint.getSecurityString(false)); mView.findViewById(R.id.ip_fields).setVisibility(View.GONE); } if (mAccessPoint.networkId != INVALID_NETWORK_ID if ((mAccessPoint.networkId != INVALID_NETWORK_ID || mAccessPoint.isActive()) && ActivityManager.getCurrentUser() == UserHandle.USER_OWNER) { mConfigUi.setForgetButton(res.getString(R.string.wifi_forget)); } Loading
src/com/android/settings/wifi/WifiSettings.java +25 −22 Original line number Diff line number Diff line Loading @@ -502,26 +502,21 @@ public class WifiSettings extends RestrictedSettingsFragment mSelectedAccessPoint = (AccessPoint) preference; menu.setHeaderTitle(mSelectedAccessPoint.ssid); 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); menu.add(Menu.NONE, MENU_ID_CONNECT, 0, R.string.wifi_menu_connect); } } if (mSelectedAccessPoint.networkId != INVALID_NETWORK_ID) { if (ActivityManager.getCurrentUser() == UserHandle.USER_OWNER) { if (ActivityManager.getCurrentUser() == UserHandle.USER_OWNER && (mSelectedAccessPoint.networkId != INVALID_NETWORK_ID || (mSelectedAccessPoint.getNetworkInfo() != null && mSelectedAccessPoint.getNetworkInfo().getState() != State.DISCONNECTED))) { // Allow forgetting a network if the current user is the owner and either the // network is saved or ephemerally connected. (In the latter case, "forget" // blacklists the network so it won't be used again, ephemerally). menu.add(Menu.NONE, MENU_ID_FORGET, 0, R.string.wifi_menu_forget); } if (mSelectedAccessPoint.networkId != INVALID_NETWORK_ID) { menu.add(Menu.NONE, MENU_ID_MODIFY, 0, R.string.wifi_menu_modify); if (mSelectedAccessPoint.security != AccessPoint.SECURITY_NONE) { Loading Loading @@ -552,7 +547,7 @@ public class WifiSettings extends RestrictedSettingsFragment return true; } case MENU_ID_FORGET: { mWifiManager.forget(mSelectedAccessPoint.networkId, mForgetListener); forget(); return true; } case MENU_ID_MODIFY: { Loading @@ -571,9 +566,10 @@ public class WifiSettings extends RestrictedSettingsFragment public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) { if (preference instanceof AccessPoint) { mSelectedAccessPoint = (AccessPoint) preference; /** Bypass dialog for unsecured, unsaved networks */ /** Bypass dialog for unsecured, unsaved, and inactive networks */ if (mSelectedAccessPoint.security == AccessPoint.SECURITY_NONE && mSelectedAccessPoint.networkId == INVALID_NETWORK_ID) { mSelectedAccessPoint.networkId == INVALID_NETWORK_ID && !mSelectedAccessPoint.isActive()) { mSelectedAccessPoint.generateOpenNetworkConfig(); if (!savedNetworksExist) { savedNetworksExist = true; Loading Loading @@ -903,12 +899,19 @@ public class WifiSettings extends RestrictedSettingsFragment /* package */ void forget() { if (mSelectedAccessPoint.networkId == INVALID_NETWORK_ID) { if (mSelectedAccessPoint.getNetworkInfo().getState() != State.DISCONNECTED) { // Network is active but has no network ID - must be ephemeral. mWifiManager.disableEphemeralNetwork( AccessPoint.convertToQuotedString(mSelectedAccessPoint.ssid)); } else { // Should not happen, but a monkey seems to trigger it Log.e(TAG, "Failed to forget invalid network " + mSelectedAccessPoint.getConfig()); return; } } else { mWifiManager.forget(mSelectedAccessPoint.networkId, mForgetListener); } if (mWifiManager.isWifiEnabled()) { mScanner.resume(); Loading
src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java +1 −1 Original line number Diff line number Diff line Loading @@ -285,7 +285,7 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis default: // DISCONNECTED, FAILED if (mScreenState != SCREEN_STATE_CONNECTED && mWifiSettings.getAccessPointsCount() > 0) { showDisconnectedState(Summary.get(this, state)); showDisconnectedState(Summary.get(this, state, false /* isEphemeral */)); } break; } Loading