Merge "Revert "Device do network scan after user rotates NetworkSelection page""

This commit is contained in:
SongFerng Wang
2021-11-17 06:24:53 +00:00
committed by Android (Google) Code Review
8 changed files with 44 additions and 59 deletions

View File

@@ -235,11 +235,6 @@
android:exported="true" android:exported="true"
android:launchMode="singleTask" android:launchMode="singleTask"
android:configChanges="orientation|screenSize|keyboardHidden"> android:configChanges="orientation|screenSize|keyboardHidden">
<!-- Note: Since the framework does not support the multiple requests of network scan
from the UI, this singleTask can protect that there is only one
Settings$NetworkSelectActivity which can request the network scan.
If removing the "singleTask" in the future, please also modify the
Settings$NetworkSelectActivity's structure. -->
<intent-filter android:priority="1"> <intent-filter android:priority="1">
<!-- Displays the MobileNetworkActivity and opt-in dialog for capability discovery. --> <!-- Displays the MobileNetworkActivity and opt-in dialog for capability discovery. -->
<action android:name="android.telephony.ims.action.SHOW_CAPABILITY_DISCOVERY_OPT_IN" /> <action android:name="android.telephony.ims.action.SHOW_CAPABILITY_DISCOVERY_OPT_IN" />
@@ -366,16 +361,6 @@
android:value="true" /> android:value="true" />
</activity> </activity>
<activity
android:name="Settings$NetworkSelectActivity"
android:label="@string/choose_network_title"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize|screenLayout|smallestScreenSize">
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.network.telephony.NetworkSelectSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity>
<activity <activity
android:name="Settings$WifiDetailsSettingsActivity" android:name="Settings$WifiDetailsSettingsActivity"
android:label="@string/wifi_details_title" android:label="@string/wifi_details_title"

View File

@@ -223,6 +223,7 @@
<Preference <Preference
android:key="choose_network_key" android:key="choose_network_key"
android:title="@string/choose_network_title" android:title="@string/choose_network_title"
android:fragment="com.android.phone.NetworkSelectSetting"
settings:controller="com.android.settings.network.telephony.gsm.OpenNetworkSelectPagePreferenceController"/> settings:controller="com.android.settings.network.telephony.gsm.OpenNetworkSelectPagePreferenceController"/>
</PreferenceCategory> </PreferenceCategory>

View File

@@ -91,7 +91,6 @@ public class Settings extends SettingsActivity {
public static class WifiSettingsActivity extends SettingsActivity { /* empty */ } public static class WifiSettingsActivity extends SettingsActivity { /* empty */ }
public static class WifiSettings2Activity extends SettingsActivity { /* empty */ } public static class WifiSettings2Activity extends SettingsActivity { /* empty */ }
public static class NetworkProviderSettingsActivity 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. */ /** Activity for the Wi-Fi network details settings. */
public static class WifiDetailsSettingsActivity extends SettingsActivity { /* empty */ } public static class WifiDetailsSettingsActivity extends SettingsActivity { /* empty */ }
public static class WifiP2pSettingsActivity extends SettingsActivity { /* empty */ } public static class WifiP2pSettingsActivity extends SettingsActivity { /* empty */ }

View File

@@ -120,7 +120,6 @@ import com.android.settings.network.NetworkDashboardFragment;
import com.android.settings.network.NetworkProviderSettings; import com.android.settings.network.NetworkProviderSettings;
import com.android.settings.network.apn.ApnEditor; import com.android.settings.network.apn.ApnEditor;
import com.android.settings.network.apn.ApnSettings; 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.AndroidBeam;
import com.android.settings.nfc.PaymentSettings; import com.android.settings.nfc.PaymentSettings;
import com.android.settings.notification.ConfigureNotificationSettings; import com.android.settings.notification.ConfigureNotificationSettings;
@@ -320,7 +319,6 @@ public class SettingsGateway {
InteractAcrossProfilesDetails.class.getName(), InteractAcrossProfilesDetails.class.getName(),
MediaControlsSettings.class.getName(), MediaControlsSettings.class.getName(),
NetworkProviderSettings.class.getName(), NetworkProviderSettings.class.getName(),
NetworkSelectSettings.class.getName(),
AlarmsAndRemindersDetails.class.getName(), AlarmsAndRemindersDetails.class.getName(),
MediaManagementAppsDetails.class.getName(), MediaManagementAppsDetails.class.getName(),
AutoBrightnessSettings.class.getName() AutoBrightnessSettings.class.getName()
@@ -345,7 +343,6 @@ public class SettingsGateway {
Settings.WifiSettingsActivity.class.getName(), Settings.WifiSettingsActivity.class.getName(),
Settings.DataUsageSummaryActivity.class.getName(), Settings.DataUsageSummaryActivity.class.getName(),
Settings.NetworkProviderSettingsActivity.class.getName(), Settings.NetworkProviderSettingsActivity.class.getName(),
Settings.NetworkSelectActivity.class.getName(),
// Home page > Connected devices // Home page > Connected devices
Settings.BluetoothSettingsActivity.class.getName(), Settings.BluetoothSettingsActivity.class.getName(),
Settings.WifiDisplaySettingsActivity.class.getName(), Settings.WifiDisplaySettingsActivity.class.getName(),

View File

@@ -19,7 +19,6 @@ package com.android.settings.network.telephony;
import android.app.Activity; import android.app.Activity;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
@@ -103,7 +102,7 @@ public class NetworkSelectSettings extends DashboardFragment {
@VisibleForTesting @VisibleForTesting
protected void onCreateInitialization() { protected void onCreateInitialization() {
mUseNewApi = enableNewAutoSelectNetworkUI(getContext()); mUseNewApi = enableNewAutoSelectNetworkUI(getContext());
mSubId = getSubId(); mSubId = getArguments().getInt(Settings.EXTRA_SUB_ID);
mPreferenceCategory = getPreferenceCategory(PREF_KEY_NETWORK_OPERATORS); mPreferenceCategory = getPreferenceCategory(PREF_KEY_NETWORK_OPERATORS);
mStatusMessagePreference = new Preference(getContext()); mStatusMessagePreference = new Preference(getContext());
@@ -122,7 +121,7 @@ public class NetworkSelectSettings extends DashboardFragment {
mMetricsFeatureProvider = getMetricsFeatureProvider(getContext()); mMetricsFeatureProvider = getMetricsFeatureProvider(getContext());
mIsAggregationEnabled = enableAggregation(getContext()); mIsAggregationEnabled = enableAggregation(getContext());
Log.d(TAG, "init: mUseNewApi:" + mUseNewApi Log.d(TAG, "init: mUseNewApi:" + mUseNewApi
+ " ,mIsAggregationEnabled:" + mIsAggregationEnabled + " ,mSubId:" + mSubId); + " ,mIsAggregationEnabled:" + mIsAggregationEnabled);
} }
@Keep @Keep
@@ -176,18 +175,6 @@ public class NetworkSelectSettings extends DashboardFragment {
getPreferenceScreen().setEnabled(enable); 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 @Override
public void onViewCreated(View view, Bundle savedInstanceState) { public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);

View File

@@ -20,8 +20,9 @@ import static androidx.lifecycle.Lifecycle.Event.ON_START;
import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.HandlerExecutor; import android.os.HandlerExecutor;
import android.os.Looper; import android.os.Looper;
@@ -42,8 +43,10 @@ import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.network.AllowedNetworkTypesListener; import com.android.settings.network.AllowedNetworkTypesListener;
import com.android.settings.network.telephony.MobileNetworkUtils; import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.network.telephony.NetworkSelectSettings;
import com.android.settings.network.telephony.TelephonyTogglePreferenceController; import com.android.settings.network.telephony.TelephonyTogglePreferenceController;
import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.utils.ThreadUtils;
@@ -148,26 +151,25 @@ public class AutoSelectPreferenceController extends TelephonyTogglePreferenceCon
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
if (isChecked) { if (isChecked) {
setAutomaticSelectionMode(); setAutomaticSelectionMode();
return false;
} else { } else {
if (mSwitchPreference != null) { final Bundle bundle = new Bundle();
Intent intent = new Intent(); bundle.putInt(Settings.EXTRA_SUB_ID, mSubId);
intent.setClassName("com.android.settings", new SubSettingLauncher(mContext)
"com.android.settings.Settings$NetworkSelectActivity"); .setDestination(NetworkSelectSettings.class.getName())
intent.putExtra(Settings.EXTRA_SUB_ID, mSubId); .setSourceMetricsCategory(SettingsEnums.MOBILE_NETWORK_SELECT)
mSwitchPreference.setIntent(intent); .setTitleRes(R.string.choose_network_title)
} .setArguments(bundle)
.launch();
return false;
} }
return false;
} }
@VisibleForTesting @VisibleForTesting
Future setAutomaticSelectionMode() { Future setAutomaticSelectionMode() {
final long startMillis = SystemClock.elapsedRealtime(); final long startMillis = SystemClock.elapsedRealtime();
showAutoSelectProgressBar(); showAutoSelectProgressBar();
if (mSwitchPreference != null) { mSwitchPreference.setEnabled(false);
mSwitchPreference.setIntent(null);
mSwitchPreference.setEnabled(false);
}
return ThreadUtils.postOnBackgroundThread(() -> { return ThreadUtils.postOnBackgroundThread(() -> {
// set network selection mode in background // set network selection mode in background
mTelephonyManager.setNetworkSelectionModeAutomatic(); mTelephonyManager.setNetworkSelectionModeAutomatic();

View File

@@ -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_START;
import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.os.Bundle;
import android.provider.Settings; import android.provider.Settings;
import android.telephony.ServiceState; import android.telephony.ServiceState;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.text.TextUtils;
import androidx.lifecycle.Lifecycle; import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.LifecycleObserver;
@@ -33,8 +35,10 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.network.AllowedNetworkTypesListener; import com.android.settings.network.AllowedNetworkTypesListener;
import com.android.settings.network.telephony.MobileNetworkUtils; import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.network.telephony.NetworkSelectSettings;
import com.android.settings.network.telephony.TelephonyBasePreferenceController; import com.android.settings.network.telephony.TelephonyBasePreferenceController;
/** /**
@@ -98,12 +102,6 @@ public class OpenNetworkSelectPagePreferenceController extends
super.updateState(preference); super.updateState(preference);
preference.setEnabled(mTelephonyManager.getNetworkSelectionMode() preference.setEnabled(mTelephonyManager.getNetworkSelectionMode()
!= TelephonyManager.NETWORK_SELECTION_MODE_AUTO); != 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 @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) { public OpenNetworkSelectPagePreferenceController init(Lifecycle lifecycle, int subId) {
mSubId = subId; mSubId = subId;
mTelephonyManager = mContext.getSystemService(TelephonyManager.class) mTelephonyManager = mContext.getSystemService(TelephonyManager.class)

View File

@@ -122,6 +122,10 @@ public class NetworkSelectSettingsTest {
public TargetClass(NetworkSelectSettingsTest env) { public TargetClass(NetworkSelectSettingsTest env) {
mTestEnv = env; mTestEnv = env;
Bundle bundle = new Bundle();
bundle.putInt(Settings.EXTRA_SUB_ID, SUB_ID);
setArguments(bundle);
} }
@Override @Override
@@ -180,11 +184,6 @@ public class NetworkSelectSettingsTest {
protected boolean enableAggregation(Context context) { protected boolean enableAggregation(Context context) {
return mTestEnv.mIsAggregationEnabled; return mTestEnv.mIsAggregationEnabled;
} }
@Override
protected int getSubId() {
return SUB_ID;
}
} }
@Test @Test