Merge "Redesign the update logic of Allow Background Usage Page." into main
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index 69183ff..b268461 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -64,8 +64,8 @@
import com.android.settings.AirplaneModeEnabler;
import com.android.settings.R;
-import com.android.settings.RestrictedSettingsFragment;
import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.dashboard.RestrictedDashboardFragment;
import com.android.settings.datausage.DataUsagePreference;
import com.android.settings.datausage.DataUsageUtils;
import com.android.settings.location.WifiScanningFragment;
@@ -104,7 +104,7 @@
* UI for Mobile network and Wi-Fi network settings.
*/
@SearchIndexable
-public class NetworkProviderSettings extends RestrictedSettingsFragment
+public class NetworkProviderSettings extends RestrictedDashboardFragment
implements Indexable, WifiPickerTracker.WifiPickerTrackerCallback,
WifiDialog2.WifiDialog2Listener, DialogInterface.OnDismissListener,
AirplaneModeEnabler.OnAirplaneModeChangedListener, InternetUpdater.InternetChangeListener {
@@ -356,9 +356,17 @@
mIsGuest = userManager.isGuestUser();
}
- private void addPreferences() {
- addPreferencesFromResource(R.xml.network_provider_settings);
+ @Override
+ protected String getLogTag() {
+ return TAG;
+ }
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.network_provider_settings;
+ }
+
+ private void addPreferences() {
mAirplaneModeMsgPreference = findPreference(PREF_KEY_AIRPLANE_MODE_MSG);
updateAirplaneModeMsgPreference(mAirplaneModeEnabler.isAirplaneModeOn() /* visible */);
mConnectedWifiEntryPreferenceCategory = findPreference(PREF_KEY_CONNECTED_ACCESS_POINTS);
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index a16f4b5..a3485cd 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -368,6 +368,11 @@
@VisibleForTesting
protected void scanResultHandler(NetworkScanRepository.NetworkScanResult results) {
+ if (isFinishingOrDestroyed()) {
+ Log.d(TAG, "scanResultHandler: activity isFinishingOrDestroyed, directly return");
+ return;
+ }
+
mCellInfoList = filterOutSatellitePlmn(results.getCellInfos());
Log.d(TAG, "CellInfoList: " + CellInfoUtil.cellInfoListToString(mCellInfoList));
updateAllPreferenceCategory();
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/BluetoothDashboardScreenTest.kt b/tests/robotests/src/com/android/settings/connecteddevice/BluetoothDashboardScreenTest.kt
index 39c0294..16db841 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/BluetoothDashboardScreenTest.kt
+++ b/tests/robotests/src/com/android/settings/connecteddevice/BluetoothDashboardScreenTest.kt
@@ -15,7 +15,12 @@
*/
package com.android.settings.connecteddevice
+import android.content.Intent
+import android.provider.Settings.Global
+import androidx.preference.PreferenceFragmentCompat
+import androidx.test.core.app.ActivityScenario
import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.Settings.BluetoothDashboardActivity
import com.android.settings.flags.Flags
import com.android.settingslib.preference.CatalystScreenTestCase
import com.google.common.truth.Truth.assertThat
@@ -34,6 +39,18 @@
assertThat(preferenceScreenCreator.key).isEqualTo(BluetoothDashboardScreen.KEY)
}
- override fun migration() {
+ override fun launchFragment(
+ fragmentClass: Class<PreferenceFragmentCompat>,
+ action: (PreferenceFragmentCompat) -> Unit,
+ ) {
+ Global.putInt(appContext.contentResolver, Global.DEVICE_PROVISIONED, 1)
+ val intent = Intent(appContext, BluetoothDashboardActivity::class.java)
+ ActivityScenario.launch<BluetoothDashboardActivity>(intent).use {
+ it.onActivity { activity ->
+ val fragment = activity.supportFragmentManager.fragments[0]
+ assertThat(fragment.javaClass).isEqualTo(fragmentClass)
+ action(fragment as PreferenceFragmentCompat)
+ }
+ }
}
}
diff --git a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
index 400f73f..df399d7 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
@@ -70,6 +70,7 @@
import com.android.settings.AirplaneModeEnabler;
import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.datausage.DataUsagePreference;
import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
import com.android.settings.testutils.shadow.ShadowFragment;
@@ -98,6 +99,7 @@
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadows.ShadowToast;
+import org.robolectric.util.ReflectionHelpers;
import java.util.List;
@@ -190,6 +192,9 @@
.when(mFirstWifiEntryPreferenceCategory).getKey();
mNetworkProviderSettings.mFirstWifiEntryPreferenceCategory =
mFirstWifiEntryPreferenceCategory;
+
+ ReflectionHelpers.setField(mNetworkProviderSettings, "mDashboardFeatureProvider",
+ mock(DashboardFeatureProvider.class));
}
@Test