From 0d8a53fa0c14090b61d8d5aa9ac9b8ccd125c613 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Tue, 9 Nov 2021 20:55:27 +0800 Subject: [PATCH 1/4] [Provider Model] Fixed Internet Settings always showing "Loading" - The Internet Settings will restart itself if it's launching in lock screen - The "Loading" might not be hidden if the activity restarts itself - Move the postDelayed runnable from onViewCreated() to onStart() to avoid loss Bug: 204041345 Test: manual test make RunSettingsRoboTests ROBOTEST_FILTER=NetworkProviderSettingsTest Change-Id: I516f1105c74b6c8853a72e71c20d2197495cc0d6 --- .../android/settings/network/NetworkProviderSettings.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java index 349bb826097..0dd5054af76 100644 --- a/src/com/android/settings/network/NetworkProviderSettings.java +++ b/src/com/android/settings/network/NetworkProviderSettings.java @@ -272,8 +272,6 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment if (mWifiManager != null) { setLoading(true, false); mIsViewLoading = true; - getView().postDelayed(mRemoveLoadingRunnable, - mWifiManager.isWifiEnabled() ? 1000 : 100); } } @@ -431,6 +429,10 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment @Override public void onStart() { super.onStart(); + if (mIsViewLoading) { + final long delayMillis = mWifiManager.isWifiEnabled() ? 1000 : 100; + getView().postDelayed(mRemoveLoadingRunnable, delayMillis); + } if (mIsRestricted) { restrictUi(); return; From dbc08a217811c5a7ab4cb54ed4e1b46ed1dce24e Mon Sep 17 00:00:00 2001 From: shaoweishen Date: Thu, 11 Nov 2021 08:24:04 +0000 Subject: [PATCH 2/4] [Sound panel] Use localized string for button text use localized string "Settings" as button text in Sound panel. revert text change in ag/15926634 Bug: 204326209 Test: Verified on device Change-Id: Ibe99369d3c9f9f2131a33b7831f93a5d1554db3f --- res/layout/panel_layout.xml | 2 +- res/values/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/res/layout/panel_layout.xml b/res/layout/panel_layout.xml index 4625a3a0e9d..2b9daebf85d 100644 --- a/res/layout/panel_layout.xml +++ b/res/layout/panel_layout.xml @@ -119,7 +119,7 @@ android:layout_width="wrap_content" android:layout_height="36dp" android:minWidth="0dp" - android:text="@string/see_more"/> + android:text="@string/settings_button"/> Unavailable when connected to %1$s - Settings + See more See less From 5b7230d355a1333d874553d9ec46242ce16b923e Mon Sep 17 00:00:00 2001 From: Jason Chiu Date: Fri, 12 Nov 2021 00:29:03 +0800 Subject: [PATCH 3/4] Check the page searchability for both wifi and network provider page Fix: 205976868 Test: manual, robotest build pass Change-Id: Ic056852cb2524a6724dcf4a67b535fd927478338 --- res/xml/network_provider_settings.xml | 2 +- .../settings/network/NetworkProviderSettings.java | 12 +++++++++--- src/com/android/settings/wifi/WifiSettings.java | 8 +++++++- src/com/android/settings/wifi/slice/WifiSlice.java | 3 +-- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/res/xml/network_provider_settings.xml b/res/xml/network_provider_settings.xml index 2d211b5fc85..702584866b9 100644 --- a/res/xml/network_provider_settings.xml +++ b/res/xml/network_provider_settings.xml @@ -68,7 +68,7 @@ android:layout="@layout/preference_category_no_label"/> diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java index 349bb826097..321cc1b842b 100644 --- a/src/com/android/settings/network/NetworkProviderSettings.java +++ b/src/com/android/settings/network/NetworkProviderSettings.java @@ -60,6 +60,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.android.settings.AirplaneModeEnabler; import com.android.settings.R; import com.android.settings.RestrictedSettingsFragment; +import com.android.settings.Utils; import com.android.settings.core.FeatureFlags; import com.android.settings.core.SubSettingLauncher; import com.android.settings.datausage.DataUsagePreference; @@ -133,7 +134,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment @VisibleForTesting static final String PREF_KEY_FIRST_ACCESS_POINTS = "first_access_points"; private static final String PREF_KEY_ACCESS_POINTS = "access_points"; - private static final String PREF_KEY_CONFIGURE_WIFI_SETTINGS = "configure_wifi_settings"; + private static final String PREF_KEY_CONFIGURE_NETWORK_SETTINGS = "configure_network_settings"; private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks"; @VisibleForTesting static final String PREF_KEY_DATA_USAGE = "non_carrier_data_usage"; @@ -280,7 +281,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); - if (!FeatureFlagUtils.isEnabled(getContext(), FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) { + if (!Utils.isProviderModelEnabled(getContext())) { final Intent intent = new Intent(getContext(), WifiSettingsActivity.class); final Bundle extras = getActivity().getIntent().getExtras(); if (extras != null) { @@ -310,7 +311,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment mConnectedWifiEntryPreferenceCategory = findPreference(PREF_KEY_CONNECTED_ACCESS_POINTS); mFirstWifiEntryPreferenceCategory = findPreference(PREF_KEY_FIRST_ACCESS_POINTS); mWifiEntryPreferenceCategory = findPreference(PREF_KEY_ACCESS_POINTS); - mConfigureWifiSettingsPreference = findPreference(PREF_KEY_CONFIGURE_WIFI_SETTINGS); + mConfigureWifiSettingsPreference = findPreference(PREF_KEY_CONFIGURE_NETWORK_SETTINGS); mSavedNetworksPreference = findPreference(PREF_KEY_SAVED_NETWORKS); mAddWifiNetworkPreference = new AddWifiNetworkPreference(getPrefContext()); mDataUsagePreference = findPreference(PREF_KEY_DATA_USAGE); @@ -1184,6 +1185,11 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider(R.xml.network_provider_settings) { + @Override + protected boolean isPageSearchEnabled(Context context) { + return Utils.isProviderModelEnabled(context); + } + @Override public List getNonIndexableKeys(Context context) { final List keys = super.getNonIndexableKeys(context); diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index c4b4d5928d1..e46ed5eff75 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -59,6 +59,7 @@ import com.android.settings.LinkifyUtils; import com.android.settings.R; import com.android.settings.RestrictedSettingsFragment; import com.android.settings.SettingsActivity; +import com.android.settings.Utils; import com.android.settings.core.FeatureFlags; import com.android.settings.core.SubSettingLauncher; import com.android.settings.datausage.DataUsagePreference; @@ -231,7 +232,7 @@ public class WifiSettings extends RestrictedSettingsFragment public void onCreate(Bundle icicle) { super.onCreate(icicle); - if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) { + if (Utils.isProviderModelEnabled(getContext())) { final Intent intent = new Intent("android.settings.NETWORK_PROVIDER_SETTINGS"); // Add FLAG_ACTIVITY_NEW_TASK and FLAG_ACTIVITY_CLEAR_TASK to avoid multiple // instances issue. (e.g. b/191956700) @@ -1067,6 +1068,11 @@ public class WifiSettings extends RestrictedSettingsFragment public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider(R.xml.wifi_settings) { + @Override + protected boolean isPageSearchEnabled(Context context) { + return !Utils.isProviderModelEnabled(context); + } + @Override public List getNonIndexableKeys(Context context) { final List keys = super.getNonIndexableKeys(context); diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java index 29a2bd6cb32..22886926a88 100644 --- a/src/com/android/settings/wifi/slice/WifiSlice.java +++ b/src/com/android/settings/wifi/slice/WifiSlice.java @@ -33,7 +33,6 @@ import android.net.Uri; import android.net.wifi.WifiManager; import android.os.Bundle; import android.text.TextUtils; -import android.util.FeatureFlagUtils; import androidx.annotation.VisibleForTesting; import androidx.core.graphics.drawable.IconCompat; @@ -274,7 +273,7 @@ public class WifiSlice implements CustomSliceable { final Uri contentUri = new Uri.Builder().appendPath(KEY_WIFI).build(); final String className; final String key; - if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) { + if (Utils.isProviderModelEnabled(mContext)) { className = NetworkProviderSettings.class.getName(); key = WifiSwitchPreferenceController.KEY; } else { From 6cf16b0aa9179a46c44ebc412f1f607b92687d57 Mon Sep 17 00:00:00 2001 From: Zoey Chen Date: Mon, 1 Nov 2021 16:46:12 +0800 Subject: [PATCH 4/4] [Settings] 1. Add configChange for WFC Activity to cover the changes of rotation and screen size 2. register split rule for MobileNetworkActivity Bug: 204508876 Test: manual Change-Id: Iff3dae41293e79b274d2928cb51efea46fb45dd4 --- AndroidManifest.xml | 1 + .../MobileNetworkSummaryController.java | 10 ++----- .../network/MobileNetworkTwoPaneUtils.java | 29 +++++++++++++++++++ ...rkProviderDownloadedSimListController.java | 2 ++ .../NetworkProviderSimListController.java | 3 ++ .../SubscriptionsPreferenceController.java | 2 ++ .../settings/sim/SimSelectNotification.java | 5 +++- .../calling/WifiCallingSettingsForSub.java | 2 +- 8 files changed, 45 insertions(+), 9 deletions(-) create mode 100644 src/com/android/settings/network/MobileNetworkTwoPaneUtils.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 69f382c7984..e4e1a10d293 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -3337,6 +3337,7 @@ diff --git a/src/com/android/settings/network/MobileNetworkSummaryController.java b/src/com/android/settings/network/MobileNetworkSummaryController.java index bd28e70255d..8530dbedb32 100644 --- a/src/com/android/settings/network/MobileNetworkSummaryController.java +++ b/src/com/android/settings/network/MobileNetworkSummaryController.java @@ -33,7 +33,6 @@ import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.activityembedding.ActivityEmbeddingRulesController; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.network.helper.SubscriptionAnnotation; @@ -202,12 +201,9 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController || mStatusCache.isPhysicalSimDisableSupport()) { final Intent intent = new Intent(mContext, MobileNetworkActivity.class); intent.putExtra(Settings.EXTRA_SUB_ID, info.getSubscriptionId()); - // MobilenetworkActivity is singleTask, set SplitPairRule to show in 2-pane. - ActivityEmbeddingRulesController.registerTwoPanePairRuleForSettingsHome( - mContext, - intent.getComponent(), - null /* secondaryIntentAction */, - false /* clearTop */); + // MobileNetworkActivity is singleTask, set SplitPairRule to show in 2-pane. + MobileNetworkTwoPaneUtils.registerTwoPaneForMobileNetwork(mContext, intent, + null); mContext.startActivity(intent); return true; } diff --git a/src/com/android/settings/network/MobileNetworkTwoPaneUtils.java b/src/com/android/settings/network/MobileNetworkTwoPaneUtils.java new file mode 100644 index 00000000000..8b3503e35f1 --- /dev/null +++ b/src/com/android/settings/network/MobileNetworkTwoPaneUtils.java @@ -0,0 +1,29 @@ +package com.android.settings.network; + +import android.annotation.Nullable; +import android.content.Context; +import android.content.Intent; +import android.util.Log; + +import com.android.settings.activityembedding.ActivityEmbeddingRulesController; + +public class MobileNetworkTwoPaneUtils { + + private static final String TAG = "MobileNetworkTwoPaneUtils"; + + /** + * TODO: b/206061070, the problem of multi-instance should be fixed in Android T to apply the + * Settings' architecture and 2 panes mode instead of registering the rule. + * + * The launchMode of MobileNetworkActivity is singleTask, set SplitPairRule to show in 2-pane. + */ + public static void registerTwoPaneForMobileNetwork(Context context, Intent intent, + @Nullable String secondaryIntentAction) { + Log.d(TAG, "registerTwoPaneForMobileNetwork"); + ActivityEmbeddingRulesController.registerTwoPanePairRuleForSettingsHome( + context, + intent.getComponent(), + secondaryIntentAction /* secondaryIntentAction */, + false /* clearTop */); + } +} diff --git a/src/com/android/settings/network/NetworkProviderDownloadedSimListController.java b/src/com/android/settings/network/NetworkProviderDownloadedSimListController.java index 43bdd803bf8..1bb50cbaf5e 100644 --- a/src/com/android/settings/network/NetworkProviderDownloadedSimListController.java +++ b/src/com/android/settings/network/NetworkProviderDownloadedSimListController.java @@ -130,6 +130,8 @@ public class NetworkProviderDownloadedSimListController extends pref.setOnPreferenceClickListener(clickedPref -> { final Intent intent = new Intent(mContext, MobileNetworkActivity.class); intent.putExtra(Settings.EXTRA_SUB_ID, info.getSubscriptionId()); + // MobileNetworkActivity is singleTask, set SplitPairRule to show in 2-pane. + MobileNetworkTwoPaneUtils.registerTwoPaneForMobileNetwork(mContext, intent, null); mContext.startActivity(intent); return true; }); diff --git a/src/com/android/settings/network/NetworkProviderSimListController.java b/src/com/android/settings/network/NetworkProviderSimListController.java index 8fb6cb65d36..d6eaab8e14a 100644 --- a/src/com/android/settings/network/NetworkProviderSimListController.java +++ b/src/com/android/settings/network/NetworkProviderSimListController.java @@ -128,6 +128,9 @@ public class NetworkProviderSimListController extends AbstractPreferenceControll } else { final Intent intent = new Intent(mContext, MobileNetworkActivity.class); intent.putExtra(Settings.EXTRA_SUB_ID, info.getSubscriptionId()); + // MobileNetworkActivity is singleTask, set SplitPairRule to show in 2-pane. + MobileNetworkTwoPaneUtils.registerTwoPaneForMobileNetwork(mContext, intent, + null); mContext.startActivity(intent); } return true; diff --git a/src/com/android/settings/network/SubscriptionsPreferenceController.java b/src/com/android/settings/network/SubscriptionsPreferenceController.java index 36c55e2805e..bfe5938b909 100644 --- a/src/com/android/settings/network/SubscriptionsPreferenceController.java +++ b/src/com/android/settings/network/SubscriptionsPreferenceController.java @@ -396,6 +396,8 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl private static void startMobileNetworkActivity(Context context, int subId) { final Intent intent = new Intent(context, MobileNetworkActivity.class); intent.putExtra(Settings.EXTRA_SUB_ID, subId); + // MobileNetworkActivity is singleTask, set SplitPairRule to show in 2-pane. + MobileNetworkTwoPaneUtils.registerTwoPaneForMobileNetwork(context, intent, null); context.startActivity(intent); } diff --git a/src/com/android/settings/sim/SimSelectNotification.java b/src/com/android/settings/sim/SimSelectNotification.java index 7dab4c0557a..84b75231b98 100644 --- a/src/com/android/settings/sim/SimSelectNotification.java +++ b/src/com/android/settings/sim/SimSelectNotification.java @@ -52,6 +52,7 @@ import android.util.Log; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.HelpTrampoline; import com.android.settings.R; +import com.android.settings.network.MobileNetworkTwoPaneUtils; import com.android.settings.network.SubscriptionUtil; import com.android.settings.network.telephony.MobileNetworkActivity; @@ -263,7 +264,9 @@ public class SimSelectNotification extends BroadcastReceiver { Intent resultIntent = new Intent(Settings.ACTION_MMS_MESSAGE_SETTING); resultIntent.setClass(context, MobileNetworkActivity.class); resultIntent.putExtra(Settings.EXTRA_SUB_ID, subId); - resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + // MobileNetworkActivity is singleTask, set SplitPairRule to show in 2-pane. + MobileNetworkTwoPaneUtils.registerTwoPaneForMobileNetwork(context, resultIntent, + Settings.ACTION_MMS_MESSAGE_SETTING); PendingIntent resultPendingIntent = PendingIntent.getActivity(context, 0, resultIntent, PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_IMMUTABLE); builder.setContentIntent(resultPendingIntent); diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java index de64b911111..873c041bb78 100644 --- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java +++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java @@ -156,7 +156,7 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment } /* - * Launch carrier emergency address managemnent activity + * Launch carrier emergency address management activity */ private final OnPreferenceClickListener mUpdateAddressListener = preference -> {