From d7f302fb4e76742772902e89c9d8a483b5778afa Mon Sep 17 00:00:00 2001 From: Sunny Shao Date: Thu, 11 Nov 2021 15:10:59 +0800 Subject: [PATCH 1/9] Fix suw display size flicker problem - Swipe the preview area will invoke the OnGlobalLayoutListener. - Sometime it cause a flicker when scroll view scrolling up and preivew area swiping. - It is no need to scroll up if the height of scroll view does not change. Fixes: 205918748 Test: manual test Change-Id: I8ed5454d32f0cf2a7bc3bac45c7aa054ce929c4b --- .../AccessibilityScreenSizeForSetupWizardActivity.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivity.java b/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivity.java index 7894c6e2789..10a0bce5c5a 100644 --- a/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivity.java +++ b/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivity.java @@ -63,6 +63,9 @@ public class AccessibilityScreenSizeForSetupWizardActivity extends InstrumentedA int SCREEN_SIZE = 2; } + // Keep the last height of the scroll view in the {@link GlifLayout} + private int mLastScrollViewHeight; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -143,11 +146,13 @@ public class AccessibilityScreenSizeForSetupWizardActivity extends InstrumentedA * Scrolls to bottom while {@link ScrollView} layout changed. */ private void scrollToBottom() { + mLastScrollViewHeight = 0; final GlifLayout layout = findViewById(R.id.setup_wizard_layout); final ScrollView scrollView = layout.getScrollView(); scrollView.getViewTreeObserver().addOnGlobalLayoutListener(() -> { final int scrollViewHeight = scrollView.getHeight(); - if (scrollViewHeight > 0) { + if (scrollViewHeight > 0 && scrollViewHeight != mLastScrollViewHeight) { + mLastScrollViewHeight = scrollViewHeight; scrollView.post(() -> { // Here is no need to show the scrolling animation. So disabled first and // then enabled it after scrolling finished. From eb70b243f7547b51b28be444648347248177fc6d Mon Sep 17 00:00:00 2001 From: Weng Su Date: Fri, 12 Nov 2021 22:50:12 +0800 Subject: [PATCH 2/9] Fix the CtsVerifier issue - The "android.settings.WIFI_SETTINGS" intent-filter needs to be the first element of the intent-filter in the activity for profile intent filters - Redirect the "android.settings.WIFI_SETTINGS" action to Internet Settings via FRAGMENT_CLASS meta-data - Add PRIMARY_PROFILE_CONTROLLED meta-data to WifiSettings2Activity - Remove unnecessary WifiSettings2Activity from Settings.java Bug: 205258444 Test: manual test - Long press the Internet Tile in QS for WIFI_SETTINGS action testing - Use adb command to test the shortcut action adb shell am start com.android.settings/.Settings\\\$WifiSettings2Activity Change-Id: I9ac397828edf1083efcf790eb41b3e978ed6bdca --- AndroidManifest.xml | 34 ++++++++++++++------------ src/com/android/settings/Settings.java | 1 - 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index e4e1a10d293..afaf0466c8e 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -305,12 +305,16 @@ android:icon="@drawable/ic_homepage_network" android:exported="true" android:configChanges="orientation|keyboardHidden|screenSize"> + + + + + android:value="com.android.settings.network.NetworkProviderSettings"/> + android:value="@string/menu_key_network"/> + android:value="true"/> @@ -321,9 +325,11 @@ android:icon="@drawable/ic_homepage_network" android:exported="true"> + android:value="com.android.settings.network.NetworkProviderSettings"/> + android:value="@string/menu_key_network"/> + - - + + - - - - - - + + + android:value="com.android.settings.network.NetworkProviderSettings"/> + android:value="@string/menu_key_network"/> + android:value="true"/> Date: Mon, 15 Nov 2021 12:38:57 +0800 Subject: [PATCH 3/9] Device do network scan after user rotates NetworkSelection page To avoid to do oncreate when device is rotated or the screenSize changed. Adding the activity's android:configChanges as "orientation|keyboard|keyboardHidden|screenSize|screenLayout |smallestScreenSize". (Based on SettingsHomepageActivity's settings and the smallestScreenSize is for screensize changed on different display.) Bug: 204039043 Test: atest AutoSelectPreferenceControllerTest (pass) atest OpenNetworkSelectPagePreferenceControllerTest (pass) atest NetworkSelectSettingsTest (pass) Change-Id: I6aa009fc52a85024a29bf48a3e7d1aadcab067d8 --- AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 638340e4498..4967adabd52 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -191,6 +191,7 @@ Date: Mon, 15 Nov 2021 22:22:19 +0800 Subject: [PATCH 4/9] Lost the registered cellinfo item after the aggregation Bug: 204384218 Test: atest NetworkSelectSettingsTest Change-Id: I8a1af6eadd5852788a5455dd637e1c63316bb802 Merged-In: I163ab8e966de57ddff7939a46fc47b05bea029e3 --- .../network/telephony/NetworkSelectSettings.java | 12 ++++++++++-- .../telephony/NetworkSelectSettingsTest.java | 13 +++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java index 813cc745680..c1c0f8f0dbd 100644 --- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java +++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java @@ -50,6 +50,7 @@ import com.android.settingslib.utils.ThreadUtils; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Optional; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -326,12 +327,19 @@ public class NetworkSelectSettings extends DashboardFragment { CellInfoUtil.getCellIdentityMccMnc(cellInfo.getCellIdentity())); Class className = cellInfo.getClass(); - if (aggregatedList.stream().anyMatch( + Optional itemInTheList = aggregatedList.stream().filter( item -> { String itemPlmn = CellInfoUtil.getNetworkTitle(item.getCellIdentity(), CellInfoUtil.getCellIdentityMccMnc(item.getCellIdentity())); return itemPlmn.equals(plmn) && item.getClass().equals(className); - })) { + }) + .findFirst(); + if (itemInTheList.isPresent()) { + if (cellInfo.isRegistered() && !itemInTheList.get().isRegistered()) { + // Adding the registered cellinfo item into list. If there are two registered + // cellinfo items, then select first one from source list. + aggregatedList.set(aggregatedList.indexOf(itemInTheList.get()), cellInfo); + } continue; } aggregatedList.add(cellInfo); 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 47e3ad903d6..02b8706843a 100644 --- a/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java +++ b/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java @@ -166,6 +166,19 @@ public class NetworkSelectSettingsTest { assertThat(mNetworkSelectSettings.doAggregation(testList)).isEqualTo(expected); } + @Test + public void doAggregation_hasDuplicateItemsDiffMccMncCase3_removeSamePlmnRatItem() { + List testList = Arrays.asList( + createLteCellInfo(false, 123, "123", "232", "CarrierA"), + createLteCellInfo(false, 124, "123", "233", "CarrierA"), + createLteCellInfo(true, 125, "123", "234", "CarrierA"), + createGsmCellInfo(false, 126, "456", "232", "CarrierA")); + List expected = Arrays.asList( + createLteCellInfo(true, 125, "123", "234", "CarrierA"), + createGsmCellInfo(false, 126, "456", "232", "CarrierA")); + assertThat(mNetworkSelectSettings.doAggregation(testList)).isEqualTo(expected); + } + private CellInfoLte createLteCellInfo(boolean registered, int cellId, String mcc, String mnc, String plmnName) { CellIdentityLte cil = new CellIdentityLte( From 68b861930a601f92ebad6b12a70077a3e248a92c Mon Sep 17 00:00:00 2001 From: Gary Jian Date: Mon, 15 Nov 2021 19:10:44 +0800 Subject: [PATCH 5/9] Added KEY_VONR_ENABLED_BOOL to obtain VoNR availability status Bug: 205809218 Test: atest NrAdvancedCallingPreferenceControllerTest Change-Id: I45ac1e95d669801c2d37f49943d7c16cfb7adae3 --- ...NrAdvancedCallingPreferenceController.java | 10 +++++- ...vancedCallingPreferenceControllerTest.java | 31 +++++++++++++++++-- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java index 7615fe339bc..b585ecec6a4 100644 --- a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java +++ b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java @@ -46,6 +46,7 @@ public class NrAdvancedCallingPreferenceController extends TelephonyTogglePrefer Preference mPreference; private TelephonyManager mTelephonyManager; private PhoneCallStateTelephonyCallback mTelephonyCallback; + private boolean mIsVonrEnabledFromCarrierConfig = false; private boolean mIsVonrVisibleFromCarrierConfig = false; private boolean mIsNrEnableFromCarrierConfig = false; private boolean mHas5gCapability = false; @@ -83,6 +84,9 @@ public class NrAdvancedCallingPreferenceController extends TelephonyTogglePrefer if (carrierConfig == null) { return this; } + mIsVonrEnabledFromCarrierConfig = carrierConfig.getBoolean( + CarrierConfigManager.KEY_VONR_ENABLED_BOOL); + mIsVonrVisibleFromCarrierConfig = carrierConfig.getBoolean( CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL); @@ -92,6 +96,7 @@ public class NrAdvancedCallingPreferenceController extends TelephonyTogglePrefer Log.d(TAG, "mHas5gCapability: " + mHas5gCapability + ",mIsNrEnabledFromCarrierConfig: " + mIsNrEnableFromCarrierConfig + + ",mIsVonrEnabledFromCarrierConfig: " + mIsVonrEnabledFromCarrierConfig + ",mIsVonrVisibleFromCarrierConfig: " + mIsVonrVisibleFromCarrierConfig); return this; } @@ -100,7 +105,10 @@ public class NrAdvancedCallingPreferenceController extends TelephonyTogglePrefer public int getAvailabilityStatus(int subId) { init(subId); - if (mHas5gCapability && mIsNrEnableFromCarrierConfig && mIsVonrVisibleFromCarrierConfig) { + if (mHas5gCapability + && mIsNrEnableFromCarrierConfig + && mIsVonrEnabledFromCarrierConfig + && mIsVonrVisibleFromCarrierConfig) { return AVAILABLE; } return CONDITIONALLY_UNAVAILABLE; diff --git a/tests/unit/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceControllerTest.java index 9eb67df96ca..fac777232f0 100644 --- a/tests/unit/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceControllerTest.java @@ -80,7 +80,8 @@ public class NrAdvancedCallingPreferenceControllerTest { mTelephonyManager).setVoNrEnabled(anyBoolean()); mCarrierConfig = new PersistableBundle(); doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID); - mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL, false); + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_ENABLED_BOOL, false); + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL, true); mCarrierConfig.putIntArray(CarrierConfigManager.KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY, new int[]{1, 2}); @@ -92,7 +93,8 @@ public class NrAdvancedCallingPreferenceControllerTest { } @Test - public void getAvailabilityStatus_vonrDisabled_returnUnavailable() { + public void getAvailabilityStatus_vonrEnabledAndVisibleDisable_returnUnavailable() { + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_ENABLED_BOOL, true); mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL, false); mController.init(SUB_ID); @@ -102,7 +104,30 @@ public class NrAdvancedCallingPreferenceControllerTest { } @Test - public void getAvailabilityStatus_vonrEnabled_returnAvailable() { + public void getAvailabilityStatus_vonrDisabledAndVisibleDisable_returnUnavailable() { + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_ENABLED_BOOL, false); + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL, false); + + mController.init(SUB_ID); + + assertThat(mController.getAvailabilityStatus()).isEqualTo( + BasePreferenceController.CONDITIONALLY_UNAVAILABLE); + } + + @Test + public void getAvailabilityStatus_vonrDisabledAndVisibleEnable_returnUnavailable() { + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_ENABLED_BOOL, false); + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL, true); + + mController.init(SUB_ID); + + assertThat(mController.getAvailabilityStatus()).isEqualTo( + BasePreferenceController.CONDITIONALLY_UNAVAILABLE); + } + + @Test + public void getAvailabilityStatus_vonrEnabledAndVisibleEnable_returnAvailable() { + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_ENABLED_BOOL, true); mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL, true); mController.init(SUB_ID); From baacfd79859c702375f35e63da9823007a30e912 Mon Sep 17 00:00:00 2001 From: Makoto Onuki Date: Tue, 16 Nov 2021 11:48:13 -0800 Subject: [PATCH 6/9] Use different exceptions for different crash reasons Always throwing RemoteServiceException would make it impossible to tell the cause of a crash without the string message. Let's use a different exception type so developers can cluster crashes without the exception message. Bug: 124137635 Test: Treehugger Change-Id: Ibae57bdb1b8965241c41249a89c728d224e4e995 --- src/com/android/settings/password/PasswordUtils.java | 8 +++++--- .../android/settings/password/SetNewPasswordActivity.java | 4 +++- .../android/settings/password/SetupChooseLockGeneric.java | 4 +++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/password/PasswordUtils.java b/src/com/android/settings/password/PasswordUtils.java index 5b75033f0f2..e8e309c40ec 100644 --- a/src/com/android/settings/password/PasswordUtils.java +++ b/src/com/android/settings/password/PasswordUtils.java @@ -79,18 +79,20 @@ public final class PasswordUtils extends com.android.settingslib.Utils { } /** Crashes the calling application and provides it with {@code message}. */ - public static void crashCallingApplication(IBinder activityToken, String message) { + public static void crashCallingApplication(IBinder activityToken, String message, + int exceptionTypeId) { IActivityManager am = ActivityManager.getService(); try { int uid = am.getLaunchedFromUid(activityToken); int userId = UserHandle.getUserId(uid); - am.crashApplication( + am.crashApplicationWithType( uid, /* initialPid= */ -1, getCallingAppPackageName(activityToken), userId, message, - false); + false, + exceptionTypeId); } catch (RemoteException e) { Log.v(TAG, "Could not talk to activity manager.", e); } diff --git a/src/com/android/settings/password/SetNewPasswordActivity.java b/src/com/android/settings/password/SetNewPasswordActivity.java index 22825872128..fc664eccde1 100644 --- a/src/com/android/settings/password/SetNewPasswordActivity.java +++ b/src/com/android/settings/password/SetNewPasswordActivity.java @@ -29,6 +29,7 @@ import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_I import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_REQUESTED_MIN_COMPLEXITY; import android.app.Activity; +import android.app.RemoteServiceException.MissingRequestPasswordComplexityPermissionException; import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManager.PasswordComplexity; import android.app.admin.PasswordMetrics; @@ -101,7 +102,8 @@ public class SetNewPasswordActivity extends Activity implements SetNewPasswordCo PasswordUtils.crashCallingApplication(activityToken, "Must have permission " + REQUEST_PASSWORD_COMPLEXITY + " to use extra " - + EXTRA_PASSWORD_COMPLEXITY); + + EXTRA_PASSWORD_COMPLEXITY, + MissingRequestPasswordComplexityPermissionException.TYPE_ID); finish(); return; } diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java index 3261b81083b..968af3232f8 100644 --- a/src/com/android/settings/password/SetupChooseLockGeneric.java +++ b/src/com/android/settings/password/SetupChooseLockGeneric.java @@ -21,6 +21,7 @@ import static android.app.admin.DevicePolicyManager.EXTRA_PASSWORD_COMPLEXITY; import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_REQUESTED_MIN_COMPLEXITY; +import android.app.RemoteServiceException.MissingRequestPasswordComplexityPermissionException; import android.content.Context; import android.content.Intent; import android.os.Bundle; @@ -79,7 +80,8 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric { if (!hasPermission) { PasswordUtils.crashCallingApplication(activityToken, "Must have permission " + REQUEST_PASSWORD_COMPLEXITY - + " to use extra " + EXTRA_PASSWORD_COMPLEXITY); + + " to use extra " + EXTRA_PASSWORD_COMPLEXITY, + MissingRequestPasswordComplexityPermissionException.TYPE_ID); finish(); return; } From 7dff8c7210c2af64ffb10ab4c7005a5c192c036a Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Tue, 16 Nov 2021 22:10:23 +0800 Subject: [PATCH 7/9] [Settings] Avoid from dialog disappear when click outside Avoid dialog from unexpected close when click out of dialog area. This create better user experience since user might not click to the correct area all the time. Bug: 204020202 Test: local Change-Id: Ice5cde73eb849f3e5722ab778be41615746210c0 (cherry picked from commit 3cb6a7a705ee17cda0c36287c212f33190645cc9) --- .../settings/datausage/BillingCycleSettings.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/datausage/BillingCycleSettings.java b/src/com/android/settings/datausage/BillingCycleSettings.java index 8c433a061a6..57931c1b36b 100644 --- a/src/com/android/settings/datausage/BillingCycleSettings.java +++ b/src/com/android/settings/datausage/BillingCycleSettings.java @@ -271,12 +271,14 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements mView = dialogInflater.inflate(R.layout.data_usage_bytes_editor, null, false); setupPicker((EditText) mView.findViewById(R.id.bytes), (Spinner) mView.findViewById(R.id.size_spinner)); - return new AlertDialog.Builder(context) + Dialog dialog = new AlertDialog.Builder(context) .setTitle(isLimit ? R.string.data_usage_limit_editor_title : R.string.data_usage_warning_editor_title) .setView(mView) .setPositiveButton(R.string.data_usage_cycle_editor_positive, this) .create(); + dialog.setCanceledOnTouchOutside(false); + return dialog; } private void setupPicker(EditText bytesPicker, Spinner type) { @@ -402,10 +404,12 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements mCycleDayPicker.setValue(cycleDay); mCycleDayPicker.setWrapSelectorWheel(true); - return builder.setTitle(R.string.data_usage_cycle_editor_title) + Dialog dialog = builder.setTitle(R.string.data_usage_cycle_editor_title) .setView(view) .setPositiveButton(R.string.data_usage_cycle_editor_positive, this) .create(); + dialog.setCanceledOnTouchOutside(false); + return dialog; } @Override @@ -466,12 +470,14 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements public Dialog onCreateDialog(Bundle savedInstanceState) { final Context context = getActivity(); - return new AlertDialog.Builder(context) + Dialog dialog = new AlertDialog.Builder(context) .setTitle(R.string.data_usage_limit_dialog_title) .setMessage(R.string.data_usage_limit_dialog_mobile) .setPositiveButton(android.R.string.ok, this) .setNegativeButton(android.R.string.cancel, null) .create(); + dialog.setCanceledOnTouchOutside(false); + return dialog; } @Override From 13a52a081e071ab2645ee859b8539f5e1fee4d48 Mon Sep 17 00:00:00 2001 From: ykhung Date: Thu, 4 Nov 2021 15:55:23 +0800 Subject: [PATCH 8/9] Update "Mobile network standby" attribute label into "Mobile network" Bug: 205051643 Test: make SettingsRoboTests Change-Id: Ia8f5c3e76d72ffa6fd0601c58b1b3d157b711b30 (cherry picked from commit 22dc875ba763d528df7e5f4d64008bb1939cfc19) --- res/values/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 133b98392be..cc12254455b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -6327,8 +6327,8 @@ Wi\u2011Fi Bluetooth - - Mobile network standby + + Mobile network Voice calls From cb4836b4868adc1f06212ce82851a5f16169ab5c Mon Sep 17 00:00:00 2001 From: Matt Pietal Date: Mon, 15 Nov 2021 08:27:16 -0500 Subject: [PATCH 9/9] [DO NOT MERGE] Allow a settings override for double-line clock This setting allows users to always show a single-line format clock, regardless of notification status. Fixes: 194905512 Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.display Change-Id: I94ade1b2d968e5783750e7a98a9a5d28cc22b659 --- res/values/strings.xml | 4 + res/xml/security_lockscreen_settings.xml | 6 ++ .../LockscreenClockPreferenceController.java | 70 +++++++++++++++ ...ckscreenClockPreferenceControllerTest.java | 90 +++++++++++++++++++ 4 files changed, 170 insertions(+) create mode 100644 src/com/android/settings/display/LockscreenClockPreferenceController.java create mode 100644 tests/robotests/src/com/android/settings/display/LockscreenClockPreferenceControllerTest.java diff --git a/res/values/strings.xml b/res/values/strings.xml index 2048d5cc20d..7262171e5b4 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -13289,6 +13289,10 @@ Show device controls Access controls when locked + + Show double-line clock when available + + Double-line clock diff --git a/res/xml/security_lockscreen_settings.xml b/res/xml/security_lockscreen_settings.xml index 82cb8609114..19a1a4cbba2 100644 --- a/res/xml/security_lockscreen_settings.xml +++ b/res/xml/security_lockscreen_settings.xml @@ -56,6 +56,12 @@ android:title="@string/lockscreen_privacy_controls_setting_toggle" android:summary="@string/lockscreen_privacy_controls_summary" settings:controller="com.android.settings.display.ControlsPrivacyPreferenceController" /> + +