diff --git a/AndroidManifest.xml b/AndroidManifest.xml index b40a4aa51af..31a7970954e 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -235,11 +235,6 @@ android:exported="true" android:launchMode="singleTask" android:configChanges="orientation|screenSize|keyboardHidden"> - @@ -366,16 +361,6 @@ android:value="true" /> - - - - - diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index cd87424f447..a297b9d52a8 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -91,7 +91,6 @@ public class Settings extends SettingsActivity { 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 bb84d01ea6a..6897a094816 100644 --- a/src/com/android/settings/core/gateway/SettingsGateway.java +++ b/src/com/android/settings/core/gateway/SettingsGateway.java @@ -120,7 +120,6 @@ import com.android.settings.network.NetworkDashboardFragment; 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; @@ -320,7 +319,6 @@ public class SettingsGateway { InteractAcrossProfilesDetails.class.getName(), MediaControlsSettings.class.getName(), NetworkProviderSettings.class.getName(), - NetworkSelectSettings.class.getName(), AlarmsAndRemindersDetails.class.getName(), MediaManagementAppsDetails.class.getName(), AutoBrightnessSettings.class.getName() @@ -345,7 +343,6 @@ public class SettingsGateway { 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 b26e7835754..d20cc2711e1 100644 --- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java +++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java @@ -19,7 +19,6 @@ package com.android.settings.network.telephony; 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; @@ -103,7 +102,7 @@ public class NetworkSelectSettings extends DashboardFragment { @VisibleForTesting protected void onCreateInitialization() { mUseNewApi = enableNewAutoSelectNetworkUI(getContext()); - mSubId = getSubId(); + mSubId = getArguments().getInt(Settings.EXTRA_SUB_ID); mPreferenceCategory = getPreferenceCategory(PREF_KEY_NETWORK_OPERATORS); mStatusMessagePreference = new Preference(getContext()); @@ -122,7 +121,7 @@ public class NetworkSelectSettings extends DashboardFragment { mMetricsFeatureProvider = getMetricsFeatureProvider(getContext()); mIsAggregationEnabled = enableAggregation(getContext()); Log.d(TAG, "init: mUseNewApi:" + mUseNewApi - + " ,mIsAggregationEnabled:" + mIsAggregationEnabled + " ,mSubId:" + mSubId); + + " ,mIsAggregationEnabled:" + mIsAggregationEnabled); } @Keep @@ -176,18 +175,6 @@ public class NetworkSelectSettings extends DashboardFragment { 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 028c4e77a78..997235c8a0c 100644 --- a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java +++ b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java @@ -20,8 +20,9 @@ import static androidx.lifecycle.Lifecycle.Event.ON_START; import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import android.app.ProgressDialog; +import android.app.settings.SettingsEnums; import android.content.Context; -import android.content.Intent; +import android.os.Bundle; import android.os.Handler; import android.os.HandlerExecutor; import android.os.Looper; @@ -42,8 +43,10 @@ import androidx.preference.PreferenceScreen; 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; @@ -148,26 +151,25 @@ public class AutoSelectPreferenceController extends TelephonyTogglePreferenceCon public boolean setChecked(boolean isChecked) { if (isChecked) { setAutomaticSelectionMode(); + return false; } else { - 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); - } + 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; } - return false; } @VisibleForTesting Future setAutomaticSelectionMode() { final long startMillis = SystemClock.elapsedRealtime(); showAutoSelectProgressBar(); - if (mSwitchPreference != null) { - mSwitchPreference.setIntent(null); - mSwitchPreference.setEnabled(false); - } + 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 54f5ce15d72..4047009b325 100644 --- a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java +++ b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java @@ -19,12 +19,14 @@ package com.android.settings.network.telephony.gsm; 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.content.Intent; +import android.os.Bundle; 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; @@ -33,8 +35,10 @@ import androidx.preference.Preference; 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; /** @@ -98,12 +102,6 @@ public class OpenNetworkSelectPagePreferenceController extends 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 @@ -116,6 +114,23 @@ public class OpenNetworkSelectPagePreferenceController extends } } + @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) diff --git a/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java b/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java index 7d860185a31..6449c65ffe7 100644 --- a/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java +++ b/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java @@ -122,6 +122,10 @@ public class NetworkSelectSettingsTest { public TargetClass(NetworkSelectSettingsTest env) { mTestEnv = env; + + Bundle bundle = new Bundle(); + bundle.putInt(Settings.EXTRA_SUB_ID, SUB_ID); + setArguments(bundle); } @Override @@ -180,11 +184,6 @@ public class NetworkSelectSettingsTest { protected boolean enableAggregation(Context context) { return mTestEnv.mIsAggregationEnabled; } - - @Override - protected int getSubId() { - return SUB_ID; - } } @Test