Loading src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java +49 −5 Original line number Diff line number Diff line Loading @@ -20,7 +20,9 @@ import android.app.Dialog; import android.content.Context; import android.content.res.Resources; import android.icu.text.Collator; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.net.wifi.hotspot2.PasspointConfiguration; import android.os.Bundle; import android.provider.SearchIndexableResource; import android.support.v7.preference.Preference; Loading Loading @@ -110,8 +112,7 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment PreferenceScreen preferenceScreen = getPreferenceScreen(); final Context context = getPrefContext(); final List<AccessPoint> accessPoints = WifiTracker.getCurrentAccessPoints(context, true, false, true); final List<AccessPoint> accessPoints = getSavedConfigs(context, mWifiManager); Collections.sort(accessPoints, SAVED_NETWORK_COMPARATOR); preferenceScreen.removeAll(); Loading @@ -129,6 +130,39 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment } } /** * Retrieved the list of saved network configurations from {@link WifiManager}. * Each configuration is represented by {@link AccessPoint}. * * @param context The application context * @param wifiManager An instance of {@link WifiManager} * @return List of {@link AccessPoint} */ private static List<AccessPoint> getSavedConfigs(Context context, WifiManager wifiManager) { List<AccessPoint> savedConfigs = new ArrayList<>(); List<WifiConfiguration> savedNetworks = wifiManager.getConfiguredNetworks(); for (WifiConfiguration network : savedNetworks) { // Configuration for Passpoint network is configured temporary by WifiService for // connection attempt only. The underlying configuration is saved as Passpoint // configuration, which will be retrieved with WifiManager#getPasspointConfiguration // call below. if (network.isPasspoint()) { continue; } savedConfigs.add(new AccessPoint(context, network)); } try { List<PasspointConfiguration> savedPasspointConfigs = wifiManager.getPasspointConfigurations(); for (PasspointConfiguration config : savedPasspointConfigs) { savedConfigs.add(new AccessPoint(context, config)); } } catch (UnsupportedOperationException e) { // Passpoint not supported. } return savedConfigs; } private void showDialog(LongPressAccessPointPreference accessPoint, boolean edit) { if (mDialog != null) { removeDialog(WifiSettings.WIFI_DIALOG_ID); Loading Loading @@ -187,7 +221,17 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment @Override public void onForget(WifiDialog dialog) { if (mSelectedAccessPoint != null) { if (mSelectedAccessPoint.isPasspointConfig()) { try { mWifiManager.removePasspointConfiguration( mSelectedAccessPoint.getPasspointFqdn()); } catch (RuntimeException e) { Log.e(TAG, "Failed to remove Passpoint configuration for " + mSelectedAccessPoint.getConfigName()); } } else { mWifiManager.forget(mSelectedAccessPoint.getConfig().networkId, null); } mSelectedAccessPoint = null; initPreferences(); } Loading Loading @@ -235,8 +279,8 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment result.add(data); // Add available Wi-Fi access points final List<AccessPoint> accessPoints = WifiTracker.getCurrentAccessPoints(context, true, false, true); final List<AccessPoint> accessPoints = getSavedConfigs(context, context.getSystemService(WifiManager.class)); final int accessPointsSize = accessPoints.size(); for (int i = 0; i < accessPointsSize; ++i){ Loading src/com/android/settings/wifi/WifiConfigController.java +9 −3 Original line number Diff line number Diff line Loading @@ -217,7 +217,11 @@ public class WifiConfigController implements TextWatcher, mConfigUi.setSubmitButton(res.getString(R.string.wifi_save)); } else { if (!mAccessPoint.isPasspointConfig()) { mConfigUi.setTitle(mAccessPoint.getSsid()); } else { mConfigUi.setTitle(mAccessPoint.getConfigName()); } ViewGroup group = (ViewGroup) mView.findViewById(R.id.info); Loading Loading @@ -258,7 +262,8 @@ public class WifiConfigController implements TextWatcher, } } if ((!mAccessPoint.isSaved() && !mAccessPoint.isActive()) if ((!mAccessPoint.isSaved() && !mAccessPoint.isActive() && !mAccessPoint.isPasspointConfig()) || mMode != WifiConfigUiBase.MODE_VIEW) { showSecurityFields(); showIpConfigFields(); Loading Loading @@ -326,7 +331,8 @@ 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.isSaved() || mAccessPoint.isActive()) { if (mAccessPoint.isSaved() || mAccessPoint.isActive() || mAccessPoint.isPasspointConfig()) { mConfigUi.setForgetButton(res.getString(R.string.wifi_forget)); } } Loading Loading
src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java +49 −5 Original line number Diff line number Diff line Loading @@ -20,7 +20,9 @@ import android.app.Dialog; import android.content.Context; import android.content.res.Resources; import android.icu.text.Collator; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.net.wifi.hotspot2.PasspointConfiguration; import android.os.Bundle; import android.provider.SearchIndexableResource; import android.support.v7.preference.Preference; Loading Loading @@ -110,8 +112,7 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment PreferenceScreen preferenceScreen = getPreferenceScreen(); final Context context = getPrefContext(); final List<AccessPoint> accessPoints = WifiTracker.getCurrentAccessPoints(context, true, false, true); final List<AccessPoint> accessPoints = getSavedConfigs(context, mWifiManager); Collections.sort(accessPoints, SAVED_NETWORK_COMPARATOR); preferenceScreen.removeAll(); Loading @@ -129,6 +130,39 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment } } /** * Retrieved the list of saved network configurations from {@link WifiManager}. * Each configuration is represented by {@link AccessPoint}. * * @param context The application context * @param wifiManager An instance of {@link WifiManager} * @return List of {@link AccessPoint} */ private static List<AccessPoint> getSavedConfigs(Context context, WifiManager wifiManager) { List<AccessPoint> savedConfigs = new ArrayList<>(); List<WifiConfiguration> savedNetworks = wifiManager.getConfiguredNetworks(); for (WifiConfiguration network : savedNetworks) { // Configuration for Passpoint network is configured temporary by WifiService for // connection attempt only. The underlying configuration is saved as Passpoint // configuration, which will be retrieved with WifiManager#getPasspointConfiguration // call below. if (network.isPasspoint()) { continue; } savedConfigs.add(new AccessPoint(context, network)); } try { List<PasspointConfiguration> savedPasspointConfigs = wifiManager.getPasspointConfigurations(); for (PasspointConfiguration config : savedPasspointConfigs) { savedConfigs.add(new AccessPoint(context, config)); } } catch (UnsupportedOperationException e) { // Passpoint not supported. } return savedConfigs; } private void showDialog(LongPressAccessPointPreference accessPoint, boolean edit) { if (mDialog != null) { removeDialog(WifiSettings.WIFI_DIALOG_ID); Loading Loading @@ -187,7 +221,17 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment @Override public void onForget(WifiDialog dialog) { if (mSelectedAccessPoint != null) { if (mSelectedAccessPoint.isPasspointConfig()) { try { mWifiManager.removePasspointConfiguration( mSelectedAccessPoint.getPasspointFqdn()); } catch (RuntimeException e) { Log.e(TAG, "Failed to remove Passpoint configuration for " + mSelectedAccessPoint.getConfigName()); } } else { mWifiManager.forget(mSelectedAccessPoint.getConfig().networkId, null); } mSelectedAccessPoint = null; initPreferences(); } Loading Loading @@ -235,8 +279,8 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment result.add(data); // Add available Wi-Fi access points final List<AccessPoint> accessPoints = WifiTracker.getCurrentAccessPoints(context, true, false, true); final List<AccessPoint> accessPoints = getSavedConfigs(context, context.getSystemService(WifiManager.class)); final int accessPointsSize = accessPoints.size(); for (int i = 0; i < accessPointsSize; ++i){ Loading
src/com/android/settings/wifi/WifiConfigController.java +9 −3 Original line number Diff line number Diff line Loading @@ -217,7 +217,11 @@ public class WifiConfigController implements TextWatcher, mConfigUi.setSubmitButton(res.getString(R.string.wifi_save)); } else { if (!mAccessPoint.isPasspointConfig()) { mConfigUi.setTitle(mAccessPoint.getSsid()); } else { mConfigUi.setTitle(mAccessPoint.getConfigName()); } ViewGroup group = (ViewGroup) mView.findViewById(R.id.info); Loading Loading @@ -258,7 +262,8 @@ public class WifiConfigController implements TextWatcher, } } if ((!mAccessPoint.isSaved() && !mAccessPoint.isActive()) if ((!mAccessPoint.isSaved() && !mAccessPoint.isActive() && !mAccessPoint.isPasspointConfig()) || mMode != WifiConfigUiBase.MODE_VIEW) { showSecurityFields(); showIpConfigFields(); Loading Loading @@ -326,7 +331,8 @@ 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.isSaved() || mAccessPoint.isActive()) { if (mAccessPoint.isSaved() || mAccessPoint.isActive() || mAccessPoint.isPasspointConfig()) { mConfigUi.setForgetButton(res.getString(R.string.wifi_forget)); } } Loading