Loading res/layout/wifi_dpp_choose_saved_wifi_network_fragment.xml +12 −16 Original line number Diff line number Diff line Loading @@ -22,28 +22,24 @@ android:layout_width="match_parent" android:layout_height="match_parent"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_height="0dp" android:gravity="center_horizontal" android:orientation="vertical"> android:orientation="vertical" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@+id/footer"> <include layout="@layout/wifi_dpp_fragment_header"/> <LinearLayout android:id="@+id/wifi_network_list_container" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toBottomOf="@+id/header"/> android:layout_height="wrap_content"/> </LinearLayout> </ScrollView> <include android:id="@+id/footer" layout="@layout/wifi_dpp_fragment_footer" android:layout_width="match_parent" android:layout_height="wrap_content" Loading src/com/android/settings/wifi/dpp/WifiNetworkListFragment.java +30 −35 Original line number Diff line number Diff line Loading @@ -34,11 +34,14 @@ import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.core.SubSettingLauncher; import com.android.settings.wifi.AddNetworkFragment; import com.android.settings.wifi.savedaccesspoints.SavedNetworkComparator; import com.android.settingslib.wifi.AccessPoint; import com.android.settingslib.wifi.AccessPointPreference; import com.android.settingslib.wifi.WifiSavedConfigUtils; import com.android.settingslib.wifi.WifiTracker; import com.android.settingslib.wifi.WifiTrackerFactory; import java.util.Collections; import java.util.List; public class WifiNetworkListFragment extends SettingsPreferenceFragment implements Loading Loading @@ -256,17 +259,6 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen return false; } // Can only use saved network for DPP configuration. For ephemeral connections networkId // is invalid. if (!accessPoint.isSaved()) { return false; } // Ignore access points that are out of range. if (!accessPoint.isReachable()) { return false; } return true; } Loading @@ -290,44 +282,47 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen return; } // AccessPoints are sorted by the WifiTracker final List<AccessPoint> accessPoints = mWifiTracker.getAccessPoints(); mAccessPointsPreferenceCategory.setVisible(true); cacheRemoveAllPrefs(mAccessPointsPreferenceCategory); // TODO(b/128942314): Lists reachable AccessPoints on top of the list final List<AccessPoint> savedAccessPoints = WifiSavedConfigUtils.getAllConfigs(getContext(), mWifiManager); Collections.sort(savedAccessPoints, SavedNetworkComparator.INSTANCE); int index = 0; for (; index < accessPoints.size(); index++) { AccessPoint accessPoint = accessPoints.get(index); // Check if this access point is valid for DPP. if (isValidForDppConfiguration(accessPoint)) { final String key = accessPoint.getKey(); mAccessPointsPreferenceCategory.removeAll(); for (AccessPoint savedAccessPoint : savedAccessPoints) { if (isValidForDppConfiguration(savedAccessPoint)) { // Replaces with an AccessPoint from scanned result for signal information savedAccessPoint = getScannedAccessPointIfAvailable(savedAccessPoint); final AccessPointPreference preference = createAccessPointPreference(savedAccessPoint); final AccessPointPreference pref = (AccessPointPreference) getCachedPreference(key); if (pref != null) { pref.setOrder(index); continue; } final AccessPointPreference preference = createAccessPointPreference(accessPoint); preference.setKey(key); preference.setOrder(index); preference.setOrder(index++); preference.setEnabled(savedAccessPoint.isReachable()); savedAccessPoint.setListener(this); mAccessPointsPreferenceCategory.addPreference(preference); accessPoint.setListener(this); preference.refresh(); mAccessPointsPreferenceCategory.addPreference(preference); } } removeCachedPrefs(mAccessPointsPreferenceCategory); mAddPreference.setOrder(index); mAccessPointsPreferenceCategory.addPreference(mAddPreference); if (mIsTest) { mFakeNetworkPreference.setOrder(index + 1); mAccessPointsPreferenceCategory.addPreference(mFakeNetworkPreference); } } private AccessPoint getScannedAccessPointIfAvailable(AccessPoint savedAccessPoint) { final List<AccessPoint> scannedAccessPoints = mWifiTracker.getAccessPoints(); final WifiConfiguration savedWifiConfiguration = savedAccessPoint.getConfig(); for (AccessPoint scannedAccessPoint : scannedAccessPoints) { if (scannedAccessPoint.matches(savedWifiConfiguration)) { return scannedAccessPoint; } } return savedAccessPoint; } private AccessPointPreference createAccessPointPreference(AccessPoint accessPoint) { return new AccessPointPreference(accessPoint, getPrefContext(), mUserBadgeCache, R.drawable.ic_wifi_signal_0, /* forSavedNetworks */ false); Loading Loading
res/layout/wifi_dpp_choose_saved_wifi_network_fragment.xml +12 −16 Original line number Diff line number Diff line Loading @@ -22,28 +22,24 @@ android:layout_width="match_parent" android:layout_height="match_parent"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_height="0dp" android:gravity="center_horizontal" android:orientation="vertical"> android:orientation="vertical" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@+id/footer"> <include layout="@layout/wifi_dpp_fragment_header"/> <LinearLayout android:id="@+id/wifi_network_list_container" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toBottomOf="@+id/header"/> android:layout_height="wrap_content"/> </LinearLayout> </ScrollView> <include android:id="@+id/footer" layout="@layout/wifi_dpp_fragment_footer" android:layout_width="match_parent" android:layout_height="wrap_content" Loading
src/com/android/settings/wifi/dpp/WifiNetworkListFragment.java +30 −35 Original line number Diff line number Diff line Loading @@ -34,11 +34,14 @@ import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.core.SubSettingLauncher; import com.android.settings.wifi.AddNetworkFragment; import com.android.settings.wifi.savedaccesspoints.SavedNetworkComparator; import com.android.settingslib.wifi.AccessPoint; import com.android.settingslib.wifi.AccessPointPreference; import com.android.settingslib.wifi.WifiSavedConfigUtils; import com.android.settingslib.wifi.WifiTracker; import com.android.settingslib.wifi.WifiTrackerFactory; import java.util.Collections; import java.util.List; public class WifiNetworkListFragment extends SettingsPreferenceFragment implements Loading Loading @@ -256,17 +259,6 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen return false; } // Can only use saved network for DPP configuration. For ephemeral connections networkId // is invalid. if (!accessPoint.isSaved()) { return false; } // Ignore access points that are out of range. if (!accessPoint.isReachable()) { return false; } return true; } Loading @@ -290,44 +282,47 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen return; } // AccessPoints are sorted by the WifiTracker final List<AccessPoint> accessPoints = mWifiTracker.getAccessPoints(); mAccessPointsPreferenceCategory.setVisible(true); cacheRemoveAllPrefs(mAccessPointsPreferenceCategory); // TODO(b/128942314): Lists reachable AccessPoints on top of the list final List<AccessPoint> savedAccessPoints = WifiSavedConfigUtils.getAllConfigs(getContext(), mWifiManager); Collections.sort(savedAccessPoints, SavedNetworkComparator.INSTANCE); int index = 0; for (; index < accessPoints.size(); index++) { AccessPoint accessPoint = accessPoints.get(index); // Check if this access point is valid for DPP. if (isValidForDppConfiguration(accessPoint)) { final String key = accessPoint.getKey(); mAccessPointsPreferenceCategory.removeAll(); for (AccessPoint savedAccessPoint : savedAccessPoints) { if (isValidForDppConfiguration(savedAccessPoint)) { // Replaces with an AccessPoint from scanned result for signal information savedAccessPoint = getScannedAccessPointIfAvailable(savedAccessPoint); final AccessPointPreference preference = createAccessPointPreference(savedAccessPoint); final AccessPointPreference pref = (AccessPointPreference) getCachedPreference(key); if (pref != null) { pref.setOrder(index); continue; } final AccessPointPreference preference = createAccessPointPreference(accessPoint); preference.setKey(key); preference.setOrder(index); preference.setOrder(index++); preference.setEnabled(savedAccessPoint.isReachable()); savedAccessPoint.setListener(this); mAccessPointsPreferenceCategory.addPreference(preference); accessPoint.setListener(this); preference.refresh(); mAccessPointsPreferenceCategory.addPreference(preference); } } removeCachedPrefs(mAccessPointsPreferenceCategory); mAddPreference.setOrder(index); mAccessPointsPreferenceCategory.addPreference(mAddPreference); if (mIsTest) { mFakeNetworkPreference.setOrder(index + 1); mAccessPointsPreferenceCategory.addPreference(mFakeNetworkPreference); } } private AccessPoint getScannedAccessPointIfAvailable(AccessPoint savedAccessPoint) { final List<AccessPoint> scannedAccessPoints = mWifiTracker.getAccessPoints(); final WifiConfiguration savedWifiConfiguration = savedAccessPoint.getConfig(); for (AccessPoint scannedAccessPoint : scannedAccessPoints) { if (scannedAccessPoint.matches(savedWifiConfiguration)) { return scannedAccessPoint; } } return savedAccessPoint; } private AccessPointPreference createAccessPointPreference(AccessPoint accessPoint) { return new AccessPointPreference(accessPoint, getPrefContext(), mUserBadgeCache, R.drawable.ic_wifi_signal_0, /* forSavedNetworks */ false); Loading