diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 4b1a7d1b115..ccc36526356 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -833,12 +833,13 @@ + diff --git a/res/values/strings.xml b/res/values/strings.xml index 19a81c4ccca..db7c7512a0b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -8444,6 +8444,9 @@ text size, large print, large font, large text, low vision, make text bigger, font enlarger, font enlargement + + always on display + Default sound diff --git a/res/xml/security_lockscreen_settings.xml b/res/xml/security_lockscreen_settings.xml index d5d1cba6e0d..7ecf200c7ae 100644 --- a/res/xml/security_lockscreen_settings.xml +++ b/res/xml/security_lockscreen_settings.xml @@ -79,6 +79,7 @@ android:key="ambient_display_always_on" android:title="@string/doze_always_on_title" android:summary="@string/doze_always_on_summary" + settings:keywords="@string/keywords_always_show_time_info" settings:controller="com.android.settings.display.AmbientDisplayAlwaysOnPreferenceController" settings:userRestriction="no_ambient_display" /> diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index 899c5d138d6..61d1180aed3 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -108,6 +108,8 @@ public class Settings extends SettingsActivity { public static class InputMethodAndSubtypeEnablerActivity extends SettingsActivity { /* empty */ } public static class SpellCheckersSettingsActivity extends SettingsActivity { /* empty */ } public static class LocalePickerActivity extends SettingsActivity { /* empty */ } + /** Activity for the App locale details settings. */ + public static class AppLocalePickerActivity extends SettingsActivity { /* empty */ } public static class LanguageAndInputSettingsActivity extends SettingsActivity { /* empty */ } public static class UserDictionarySettingsActivity extends SettingsActivity { /* empty */ } public static class DarkThemeSettingsActivity extends SettingsActivity { /* empty */ } diff --git a/src/com/android/settings/applications/appinfo/AppLocalePickerActivity.java b/src/com/android/settings/applications/appinfo/AppLocalePickerActivity.java deleted file mode 100644 index ce833ed670e..00000000000 --- a/src/com/android/settings/applications/appinfo/AppLocalePickerActivity.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2021 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.settings.applications.appinfo; - -import android.content.Intent; -import android.os.Bundle; -import android.util.Log; - -import androidx.annotation.VisibleForTesting; - -import com.android.settings.SettingsActivity; -import com.android.settings.applications.AppInfoBase; - -/** Activity for the entry of {@link #AppLocaleDetails} from outside Settings app. */ -public class AppLocalePickerActivity extends SettingsActivity { - private static final String TAG = "AppLocalePickerActivity"; - - @Override - protected void onCreate(Bundle savedState) { - Intent intent = getEntryIntent(getIntent()); - if (intent == null) { - finish(); - return; - } - setIntent(intent); - super.onCreate(savedState); - } - - @VisibleForTesting - Intent getEntryIntent(Intent intent) { - String callingPackage = getCallingPackage(); - if (callingPackage == null || callingPackage.isEmpty()) { - Log.d(TAG, "No calling package name is found."); - return null; - } - final Bundle fragmentArgs = new Bundle(); - fragmentArgs.putString(AppInfoBase.ARG_PACKAGE_NAME, callingPackage); - return intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, fragmentArgs); - } -} diff --git a/src/com/android/settings/bluetooth/DevicePickerFragment.java b/src/com/android/settings/bluetooth/DevicePickerFragment.java index 602b79b2ae9..e8adac01e4f 100644 --- a/src/com/android/settings/bluetooth/DevicePickerFragment.java +++ b/src/com/android/settings/bluetooth/DevicePickerFragment.java @@ -107,6 +107,8 @@ public final class DevicePickerFragment extends DeviceListPreferenceFragment { @Override public void onStart() { super.onStart(); + mLocalManager.getCachedDeviceManager().clearNonBondedDevices(); + removeAllDevices(); addCachedDevices(); mSelectedDevice = null; if (mScanAllowed) { diff --git a/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java b/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java index d963a5500d3..29e58717eff 100644 --- a/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java +++ b/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java @@ -48,6 +48,8 @@ public class SettingsIntelligenceLogWriter implements LogWriter { private static final String LOG = "logs"; private static final long MESSAGE_DELAY = DateUtils.MINUTE_IN_MILLIS; // 1 minute + // Based on the exp, 99.5% users collect less than 150 data in 1 minute. + private static final int CACHE_LOG_THRESHOLD = 150; private List mSettingsLogList; private SendLogHandler mLogHandler; @@ -128,7 +130,8 @@ public class SettingsIntelligenceLogWriter implements LogWriter { mLogHandler.post(() -> { mSettingsLogList.add(settingsLog); }); - if (action == SettingsEnums.ACTION_CONTEXTUAL_CARD_DISMISS) { + if (action == SettingsEnums.ACTION_CONTEXTUAL_CARD_DISMISS + || mSettingsLogList.size() >= CACHE_LOG_THRESHOLD) { // Directly send this event to notify SI instantly that the card is dismissed mLogHandler.sendLog(); } else { diff --git a/src/com/android/settings/development/DefaultUsbConfigurationPreferenceController.java b/src/com/android/settings/development/DefaultUsbConfigurationPreferenceController.java index be7704fd735..87ca40fbbe2 100644 --- a/src/com/android/settings/development/DefaultUsbConfigurationPreferenceController.java +++ b/src/com/android/settings/development/DefaultUsbConfigurationPreferenceController.java @@ -24,11 +24,12 @@ import android.os.UserHandle; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.RestrictedSwitchPreference; import com.android.settingslib.development.DeveloperOptionsPreferenceController; public class DefaultUsbConfigurationPreferenceController extends - DeveloperOptionsPreferenceController { + DeveloperOptionsPreferenceController implements PreferenceControllerMixin { private static final String PREFERENCE_KEY = "default_usb_configuration"; diff --git a/tests/unit/src/com/android/settings/applications/appinfo/AppLocalePickerActivityTest.java b/tests/unit/src/com/android/settings/applications/appinfo/AppLocalePickerActivityTest.java deleted file mode 100644 index f6f56d99e2c..00000000000 --- a/tests/unit/src/com/android/settings/applications/appinfo/AppLocalePickerActivityTest.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (C) 2021 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.applications.appinfo; - -import static com.google.common.truth.Truth.assertThat; - -import android.content.Intent; -import android.os.Bundle; -import android.os.Looper; - -import androidx.test.annotation.UiThreadTest; -import androidx.test.ext.junit.runners.AndroidJUnit4; - -import com.android.settings.SettingsActivity; -import com.android.settings.applications.AppInfoBase; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - -@RunWith(AndroidJUnit4.class) -public class AppLocalePickerActivityTest { - private TestAppLocalePickerActivity mActivity; - - @Before - @UiThreadTest - public void setUp() { - if (Looper.myLooper() == null) { - Looper.prepare(); - } - mActivity = new TestAppLocalePickerActivity(); - } - - @After - public void cleanUp() { - mActivity = null; - } - - @Test - public void onCreate_getEntryIntent_returnNull() { - TestAppLocalePickerActivity.setCallingPackage(null); - Intent intent = new Intent(); - - assertThat(mActivity.getEntryIntent(intent)).isEqualTo(null); - } - - @Test - public void onCreate_getEntryIntent_returnIntentWithPackageName() { - String callingPackageName = "com.example.android"; - TestAppLocalePickerActivity.setCallingPackage(callingPackageName); - Intent intent = new Intent(); - - Intent entryIntent = mActivity.getEntryIntent(intent); - - Bundle outputBundle = - entryIntent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS); - String packageName = outputBundle.getString(AppInfoBase.ARG_PACKAGE_NAME); - assertThat(packageName).isEqualTo(callingPackageName); - } - - private static class TestAppLocalePickerActivity extends AppLocalePickerActivity { - private static String sCallingPackage; - @Override - public String getCallingPackage() { - return sCallingPackage; - } - - public static void setCallingPackage(String packageName) { - sCallingPackage = packageName; - } - } -}