Revert "Revert "Device do network scan after user rotates NetworkSelection page""
This reverts commit 3c9580d573e83b8b6059b363f51e201714522787.
Reason for revert: since b/207587612 revert the ag/16259258, do revert this solution back and submit ag/16182703 for sc-v2
Change-Id: I05148506503fc6d1f4ee4ac2ae99e2eb28f61c9f
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 4de795c..6dd5a2e 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -91,6 +91,7 @@
public static class WifiSettingsActivity extends SettingsActivity { /* empty */ }
public static class WifiSettings2Activity extends SettingsActivity { /* empty */ }
public static class NetworkProviderSettingsActivity extends SettingsActivity { /* empty */ }
+ public static class NetworkSelectActivity extends SettingsActivity { /* empty */ }
/** Activity for the Wi-Fi network details settings. */
public static class WifiDetailsSettingsActivity extends SettingsActivity { /* empty */ }
public static class WifiP2pSettingsActivity extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 3c594a7..a9f8e31 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -119,6 +119,7 @@
import com.android.settings.network.NetworkProviderSettings;
import com.android.settings.network.apn.ApnEditor;
import com.android.settings.network.apn.ApnSettings;
+import com.android.settings.network.telephony.NetworkSelectSettings;
import com.android.settings.nfc.AndroidBeam;
import com.android.settings.nfc.PaymentSettings;
import com.android.settings.notification.ConfigureNotificationSettings;
@@ -318,6 +319,7 @@
InteractAcrossProfilesDetails.class.getName(),
MediaControlsSettings.class.getName(),
NetworkProviderSettings.class.getName(),
+ NetworkSelectSettings.class.getName(),
AlarmsAndRemindersDetails.class.getName(),
MediaManagementAppsDetails.class.getName()
};
@@ -341,6 +343,7 @@
Settings.WifiSettingsActivity.class.getName(),
Settings.DataUsageSummaryActivity.class.getName(),
Settings.NetworkProviderSettingsActivity.class.getName(),
+ Settings.NetworkSelectActivity.class.getName(),
// Home page > Connected devices
Settings.BluetoothSettingsActivity.class.getName(),
Settings.WifiDisplaySettingsActivity.class.getName(),
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index c72c18d..67d3171 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -19,6 +19,7 @@
import android.app.Activity;
import android.app.settings.SettingsEnums;
import android.content.Context;
+import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -101,7 +102,7 @@
@VisibleForTesting
protected void onCreateInitialization() {
mUseNewApi = enableNewAutoSelectNetworkUI(getContext());
- mSubId = getArguments().getInt(Settings.EXTRA_SUB_ID);
+ mSubId = getSubId();
mPreferenceCategory = getPreferenceCategory(PREF_KEY_NETWORK_OPERATORS);
mStatusMessagePreference = new Preference(getContext());
@@ -120,7 +121,7 @@
mMetricsFeatureProvider = getMetricsFeatureProvider(getContext());
mIsAggregationEnabled = enableAggregation(getContext());
Log.d(TAG, "init: mUseNewApi:" + mUseNewApi
- + " ,mIsAggregationEnabled:" + mIsAggregationEnabled);
+ + " ,mIsAggregationEnabled:" + mIsAggregationEnabled + " ,mSubId:" + mSubId);
}
@Keep
@@ -174,6 +175,18 @@
getPreferenceScreen().setEnabled(enable);
}
+ @Keep
+ @VisibleForTesting
+ protected int getSubId() {
+ int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ Intent intent = getActivity().getIntent();
+ if (intent != null) {
+ subId = intent.getIntExtra(Settings.EXTRA_SUB_ID,
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ }
+ return subId;
+ }
+
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
diff --git a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
index 997235c..028c4e7 100644
--- a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
+++ b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
@@ -20,9 +20,8 @@
import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
import android.app.ProgressDialog;
-import android.app.settings.SettingsEnums;
import android.content.Context;
-import android.os.Bundle;
+import android.content.Intent;
import android.os.Handler;
import android.os.HandlerExecutor;
import android.os.Looper;
@@ -43,10 +42,8 @@
import androidx.preference.SwitchPreference;
import com.android.settings.R;
-import com.android.settings.core.SubSettingLauncher;
import com.android.settings.network.AllowedNetworkTypesListener;
import com.android.settings.network.telephony.MobileNetworkUtils;
-import com.android.settings.network.telephony.NetworkSelectSettings;
import com.android.settings.network.telephony.TelephonyTogglePreferenceController;
import com.android.settingslib.utils.ThreadUtils;
@@ -151,25 +148,26 @@
public boolean setChecked(boolean isChecked) {
if (isChecked) {
setAutomaticSelectionMode();
- return false;
} else {
- final Bundle bundle = new Bundle();
- bundle.putInt(Settings.EXTRA_SUB_ID, mSubId);
- new SubSettingLauncher(mContext)
- .setDestination(NetworkSelectSettings.class.getName())
- .setSourceMetricsCategory(SettingsEnums.MOBILE_NETWORK_SELECT)
- .setTitleRes(R.string.choose_network_title)
- .setArguments(bundle)
- .launch();
- return false;
+ if (mSwitchPreference != null) {
+ Intent intent = new Intent();
+ intent.setClassName("com.android.settings",
+ "com.android.settings.Settings$NetworkSelectActivity");
+ intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
+ mSwitchPreference.setIntent(intent);
+ }
}
+ return false;
}
@VisibleForTesting
Future setAutomaticSelectionMode() {
final long startMillis = SystemClock.elapsedRealtime();
showAutoSelectProgressBar();
- mSwitchPreference.setEnabled(false);
+ if (mSwitchPreference != null) {
+ mSwitchPreference.setIntent(null);
+ mSwitchPreference.setEnabled(false);
+ }
return ThreadUtils.postOnBackgroundThread(() -> {
// set network selection mode in background
mTelephonyManager.setNetworkSelectionModeAutomatic();
diff --git a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
index 4047009..54f5ce1 100644
--- a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
+++ b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
@@ -19,14 +19,12 @@
import static androidx.lifecycle.Lifecycle.Event.ON_START;
import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
-import android.app.settings.SettingsEnums;
import android.content.Context;
-import android.os.Bundle;
+import android.content.Intent;
import android.provider.Settings;
import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
-import android.text.TextUtils;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
@@ -35,10 +33,8 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
-import com.android.settings.core.SubSettingLauncher;
import com.android.settings.network.AllowedNetworkTypesListener;
import com.android.settings.network.telephony.MobileNetworkUtils;
-import com.android.settings.network.telephony.NetworkSelectSettings;
import com.android.settings.network.telephony.TelephonyBasePreferenceController;
/**
@@ -102,6 +98,12 @@
super.updateState(preference);
preference.setEnabled(mTelephonyManager.getNetworkSelectionMode()
!= TelephonyManager.NETWORK_SELECTION_MODE_AUTO);
+
+ Intent intent = new Intent();
+ intent.setClassName("com.android.settings",
+ "com.android.settings.Settings$NetworkSelectActivity");
+ intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
+ preference.setIntent(intent);
}
@Override
@@ -114,23 +116,6 @@
}
}
- @Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
- final Bundle bundle = new Bundle();
- bundle.putInt(Settings.EXTRA_SUB_ID, mSubId);
- new SubSettingLauncher(mContext)
- .setDestination(NetworkSelectSettings.class.getName())
- .setSourceMetricsCategory(SettingsEnums.MOBILE_NETWORK_SELECT)
- .setTitleRes(R.string.choose_network_title)
- .setArguments(bundle)
- .launch();
- return true;
- }
-
- return false;
- }
-
public OpenNetworkSelectPagePreferenceController init(Lifecycle lifecycle, int subId) {
mSubId = subId;
mTelephonyManager = mContext.getSystemService(TelephonyManager.class)