From 205d8249a737e61bde5f43b198ab54a662dd8b7f Mon Sep 17 00:00:00 2001 From: Zaiyue Xue Date: Fri, 14 Apr 2023 14:22:57 +0800 Subject: [PATCH 01/10] String change to highlight calculation stopped at last even hour Bug: 278022447 Fix: 278022447 Test: manual Change-Id: Ia04ae7c7cb4c7ebdd40f4aa3df05b34d2ce66628 Merged-In: Ia08dea791bb72113719fd1316e8e9587a96eaef1 --- res/values/strings.xml | 4 ++ .../BatteryChartPreferenceController.java | 28 +++++++++++--- .../BatteryChartPreferenceControllerTest.java | 37 +++++++++++++++++-- 3 files changed, 60 insertions(+), 9 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index ccf4af7d432..1e48a974afa 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -7004,6 +7004,10 @@ System usage for %s App usage for %s + + System usage since last full charge to %s + + App usage since last full charge to %s Total: less than a min diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java index 56da0f47932..7ce8b3af2cc 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java @@ -593,8 +593,19 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll private String getSlotInformation(boolean isApp, String slotInformation) { // TODO: Updates the right slot information from daily and hourly chart selection. - // Null means we show all information without a specific time slot. - if (slotInformation == null) { + if (mDailyViewModel != null && mHourlyViewModels != null && isAllSelected()) { + int lastDailyChartIndex = mDailyViewModel.size() - 2; + int lastHourlyChartIndex = mHourlyViewModels.get(lastDailyChartIndex).size() - 1; + String lastSlotInformation = getSlotInformation( + lastDailyChartIndex, lastHourlyChartIndex, /*isDayTextOnly=*/ false); + return isApp + ? mPrefContext.getString( + R.string.battery_app_usage_since_last_full_charge_to, + lastSlotInformation) + : mPrefContext.getString( + R.string.battery_system_usage_since_last_full_charge_to, + lastSlotInformation); + } else if (slotInformation == null) { return isApp ? mPrefContext.getString(R.string.battery_app_usage) : mPrefContext.getString(R.string.battery_system_usage); @@ -614,14 +625,19 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll if (isAllSelected()) { return null; } + return getSlotInformation(mDailyChartIndex, mHourlyChartIndex, + /*isDayTextOnly=*/ mHourlyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL); + } - final String selectedDayText = mDailyViewModel.getFullText(mDailyChartIndex); - if (mHourlyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL) { + private String getSlotInformation( + int dailyChartIndex, int hourlyChartIndex, boolean isDayTextOnly) { + final String selectedDayText = mDailyViewModel.getFullText(dailyChartIndex); + if (isDayTextOnly) { return selectedDayText; } - final String selectedHourText = mHourlyViewModels.get(mDailyChartIndex).getFullText( - mHourlyChartIndex); + final String selectedHourText = mHourlyViewModels.get(dailyChartIndex).getFullText( + hourlyChartIndex); if (isBatteryLevelDataInOneDay()) { return selectedHourText; } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java index 9fbcb1688db..10b957bc0aa 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java @@ -571,12 +571,13 @@ public final class BatteryChartPreferenceControllerTest { } @Test - public void refreshCategoryTitle_setLastFullChargeIntoBothTitleTextView() { + public void refreshCategoryTitle_singleDayData_setLastFullChargeIntoBothTitleTextView() { mBatteryChartPreferenceController = createController(); mBatteryChartPreferenceController.mAppListPrefGroup = spy(new PreferenceCategory(mContext)); mBatteryChartPreferenceController.mExpandDividerPreference = spy(new ExpandDividerPreference(mContext)); + mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6)); // Simulates select all condition. mBatteryChartPreferenceController.mDailyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL; @@ -590,13 +591,43 @@ public final class BatteryChartPreferenceControllerTest { verify(mBatteryChartPreferenceController.mAppListPrefGroup) .setTitle(captor.capture()); assertThat(captor.getValue()) - .isEqualTo("App usage since last full charge"); + .isEqualTo("App usage since last full charge to 12 PM"); // Verifies the title in the expandable divider. captor = ArgumentCaptor.forClass(String.class); verify(mBatteryChartPreferenceController.mExpandDividerPreference) .setTitle(captor.capture()); assertThat(captor.getValue()) - .isEqualTo("System usage since last full charge"); + .isEqualTo("System usage since last full charge to 12 PM"); + } + + @Test + public void refreshCategoryTitle_multiDaysData_setLastFullChargeIntoBothTitleTextView() { + mBatteryChartPreferenceController = createController(); + mBatteryChartPreferenceController.mAppListPrefGroup = + spy(new PreferenceCategory(mContext)); + mBatteryChartPreferenceController.mExpandDividerPreference = + spy(new ExpandDividerPreference(mContext)); + mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(60)); + // Simulates select all condition. + mBatteryChartPreferenceController.mDailyChartIndex = + BatteryChartViewModel.SELECTED_INDEX_ALL; + mBatteryChartPreferenceController.mHourlyChartIndex = + BatteryChartViewModel.SELECTED_INDEX_ALL; + + mBatteryChartPreferenceController.refreshCategoryTitle(); + + ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); + // Verifies the title in the preference group. + verify(mBatteryChartPreferenceController.mAppListPrefGroup) + .setTitle(captor.capture()); + assertThat(captor.getValue()) + .isEqualTo("App usage since last full charge to Monday 6 PM"); + // Verifies the title in the expandable divider. + captor = ArgumentCaptor.forClass(String.class); + verify(mBatteryChartPreferenceController.mExpandDividerPreference) + .setTitle(captor.capture()); + assertThat(captor.getValue()) + .isEqualTo("System usage since last full charge to Monday 6 PM"); } @Test From 0ea56b4fec23bf6057393f5e77278965edeeb392 Mon Sep 17 00:00:00 2001 From: Austin Delgado Date: Fri, 14 Apr 2023 15:49:52 -0700 Subject: [PATCH 02/10] Hide enrollment options that don't match requested biometric strength When calling biometric enroll intent with biometric_strong, don't include weak enrollments as options. Bug: 265898482 Test: Tested manually by calling enrollment and verifying correct options are shown Test: atest BiometricEnrollActivityTest Change-Id: I5fa650a593aee536955ae806f5963ffbdc135a2e --- .../biometrics/BiometricEnrollActivity.java | 30 ++++++++--- .../BiometricEnrollActivityTest.java | 54 +++++++++++++++++++ 2 files changed, 78 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/biometrics/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java index f0c1ed1a00b..4d05946f18c 100644 --- a/src/com/android/settings/biometrics/BiometricEnrollActivity.java +++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java @@ -35,6 +35,7 @@ import android.hardware.biometrics.BiometricAuthenticator; import android.hardware.biometrics.BiometricManager; import android.hardware.biometrics.BiometricManager.Authenticators; import android.hardware.biometrics.BiometricManager.BiometricError; +import android.hardware.biometrics.SensorProperties; import android.hardware.face.FaceManager; import android.hardware.face.FaceSensorPropertiesInternal; import android.hardware.fingerprint.FingerprintManager; @@ -198,7 +199,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity { // Default behavior is to enroll BIOMETRIC_WEAK or above. See ACTION_BIOMETRIC_ENROLL. final int authenticators = getIntent().getIntExtra( EXTRA_BIOMETRIC_AUTHENTICATORS_ALLOWED, Authenticators.BIOMETRIC_WEAK); - Log.d(TAG, "Authenticators: " + authenticators); + Log.d(TAG, "Authenticators: " + BiometricManager.authenticatorToStr(authenticators)); mParentalOptionsRequired = intent.getBooleanExtra(EXTRA_REQUIRE_PARENTAL_CONSENT, false); mSkipReturnToParent = intent.getBooleanExtra(EXTRA_SKIP_RETURN_TO_PARENT, false); @@ -222,9 +223,16 @@ public class BiometricEnrollActivity extends InstrumentedActivity { final FaceSensorPropertiesInternal props = faceProperties.get(0); final int maxEnrolls = isSetupWizard ? maxFacesEnrollableIfSUW : props.maxEnrollmentsPerUser; + final boolean isFaceStrong = + props.sensorStrength == SensorProperties.STRENGTH_STRONG; mIsFaceEnrollable = faceManager.getEnrolledFaces(mUserId).size() < maxEnrolls; + // If we expect strong bio only, check if face is strong + if (authenticators == Authenticators.BIOMETRIC_STRONG && !isFaceStrong) { + mIsFaceEnrollable = false; + } + final boolean parentalConsent = isSetupWizard || (mParentalOptionsRequired && !WizardManagerHelper.isUserSetupComplete(this)); if (parentalConsent && isMultiSensor && mIsFaceEnrollable) { @@ -278,6 +286,9 @@ public class BiometricEnrollActivity extends InstrumentedActivity { private void updateFingerprintEnrollable(boolean isSetupWizard) { if (mHasFeatureFingerprint) { + final int authenticators = getIntent().getIntExtra( + EXTRA_BIOMETRIC_AUTHENTICATORS_ALLOWED, Authenticators.BIOMETRIC_WEAK); + final FingerprintManager fpManager = getSystemService(FingerprintManager.class); final List fpProperties = fpManager.getSensorPropertiesInternal(); @@ -287,8 +298,15 @@ public class BiometricEnrollActivity extends InstrumentedActivity { final int maxEnrolls = isSetupWizard ? maxFingerprintsEnrollableIfSUW : fpProperties.get(0).maxEnrollmentsPerUser; + final boolean isFingerprintStrong = + fpProperties.get(0).sensorStrength == SensorProperties.STRENGTH_STRONG; mIsFingerprintEnrollable = fpManager.getEnrolledFingerprints(mUserId).size() < maxEnrolls; + + // If we expect strong bio only, check if fingerprint is strong + if (authenticators == Authenticators.BIOMETRIC_STRONG && !isFingerprintStrong) { + mIsFingerprintEnrollable = false; + } } } } @@ -308,8 +326,8 @@ public class BiometricEnrollActivity extends InstrumentedActivity { } } - boolean canUseFace = mHasFeatureFace; - boolean canUseFingerprint = mHasFeatureFingerprint; + boolean canUseFace = mIsFaceEnrollable; + boolean canUseFingerprint = mIsFingerprintEnrollable; if (mParentalOptionsRequired) { if (mParentalOptions == null) { throw new IllegalStateException("consent options required, but not set"); @@ -612,11 +630,11 @@ public class BiometricEnrollActivity extends InstrumentedActivity { Intent intent = BiometricUtils.getChooseLockIntent(this, getIntent()); intent.putExtra(ChooseLockGeneric.ChooseLockGenericFragment.HIDE_INSECURE_OPTIONS, true); intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_REQUEST_GK_PW_HANDLE, true); - if (mHasFeatureFingerprint && mHasFeatureFace) { + if (mIsFingerprintEnrollable && mIsFaceEnrollable) { intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_BIOMETRICS, true); - } else if (mHasFeatureFace) { + } else if (mIsFaceEnrollable) { intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, true); - } else if (mHasFeatureFingerprint) { + } else if (mIsFingerprintEnrollable) { intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, true); } diff --git a/tests/componenttests/src/com/android/settings/biometrics/BiometricEnrollActivityTest.java b/tests/componenttests/src/com/android/settings/biometrics/BiometricEnrollActivityTest.java index c5e3a19cc92..0cb73c17cad 100644 --- a/tests/componenttests/src/com/android/settings/biometrics/BiometricEnrollActivityTest.java +++ b/tests/componenttests/src/com/android/settings/biometrics/BiometricEnrollActivityTest.java @@ -16,6 +16,7 @@ package com.android.settings.biometrics; +import static android.hardware.biometrics.BiometricManager.Authenticators.BIOMETRIC_STRONG; import static android.provider.Settings.ACTION_BIOMETRIC_ENROLL; import static androidx.test.espresso.intent.Intents.intended; @@ -33,7 +34,13 @@ import static org.junit.Assume.assumeTrue; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; +import android.hardware.biometrics.SensorProperties; +import android.hardware.face.FaceManager; +import android.hardware.face.FaceSensorPropertiesInternal; +import android.hardware.fingerprint.FingerprintManager; +import android.hardware.fingerprint.FingerprintSensorPropertiesInternal; import android.os.UserHandle; +import android.provider.Settings; import androidx.test.core.app.ActivityScenario; import androidx.test.core.app.ApplicationProvider; @@ -56,6 +63,8 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import java.util.List; + @RunWith(AndroidJUnit4.class) @MediumTest public class BiometricEnrollActivityTest { @@ -67,6 +76,8 @@ public class BiometricEnrollActivityTest { private final Context mContext = ApplicationProvider.getApplicationContext(); private boolean mHasFace; private boolean mHasFingerprint; + private boolean mIsFaceStrong; + private boolean mIsFingerprintStrong; @Before public void setup() { @@ -74,6 +85,28 @@ public class BiometricEnrollActivityTest { final PackageManager pm = mContext.getPackageManager(); mHasFingerprint = pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT); mHasFace = pm.hasSystemFeature(PackageManager.FEATURE_FACE); + + if (mHasFace) { + final FaceManager faceManager = mContext.getSystemService(FaceManager.class); + final List faceProperties = + faceManager.getSensorPropertiesInternal(); + if (!faceProperties.isEmpty()) { + final FaceSensorPropertiesInternal faceProp = faceProperties.get(0); + mIsFaceStrong = faceProp.sensorStrength == SensorProperties.STRENGTH_STRONG; + } + } + + if (mHasFingerprint) { + final FingerprintManager fingerprintManager = mContext.getSystemService( + FingerprintManager.class); + final List fingerProperties = + fingerprintManager.getSensorPropertiesInternal(); + if (!fingerProperties.isEmpty()) { + final FingerprintSensorPropertiesInternal fingerProp = fingerProperties.get(0); + mIsFingerprintStrong = + fingerProp.sensorStrength == SensorProperties.STRENGTH_STRONG; + } + } } @After @@ -129,6 +162,27 @@ public class BiometricEnrollActivityTest { } } + @Test + public void launchWithStrongBiometricAllowed_doNotEnrollWeak() throws Exception { + assumeTrue(mHasFace || mHasFingerprint); + + // Allow only strong biometrics + Intent intent = getIntent(); + intent.putExtra(Settings.EXTRA_BIOMETRIC_AUTHENTICATORS_ALLOWED, BIOMETRIC_STRONG); + + try (ActivityScenario scenario = + ActivityScenario.launch(intent)) { + intended(hasComponent(ChooseLockGeneric.class.getName())); + if (mIsFaceStrong && mIsFingerprintStrong) { + intended(hasExtra(EXTRA_KEY_FOR_BIOMETRICS, true)); + } else if (mIsFaceStrong) { + intended(hasExtra(EXTRA_KEY_FOR_FACE, true)); + } else if (mIsFingerprintStrong) { + intended(hasExtra(EXTRA_KEY_FOR_FINGERPRINT, true)); + } + } + } + private Intent getIntent() { return getIntent(false /* useInternal */); } From 4cf60b02b28da3263b3cb44c448c7208e2a09aac Mon Sep 17 00:00:00 2001 From: Edgar Wang Date: Thu, 27 Apr 2023 18:17:46 +0800 Subject: [PATCH 03/10] Fix test cases failed in WinscopeTraceTest Fixes: 276682211 Test: autotest Change-Id: Id31d5c4e2e1dd61c4af24e042f4aaddee3d33439 --- .../development/qstile/WinscopeTraceTest.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/robotests/src/com/android/settings/development/qstile/WinscopeTraceTest.java b/tests/robotests/src/com/android/settings/development/qstile/WinscopeTraceTest.java index 37bf54c80ee..ad495c740f3 100644 --- a/tests/robotests/src/com/android/settings/development/qstile/WinscopeTraceTest.java +++ b/tests/robotests/src/com/android/settings/development/qstile/WinscopeTraceTest.java @@ -16,10 +16,8 @@ package com.android.settings.development.qstile; -import static com.android.settings.development.qstile.DevelopmentTiles.WinscopeTrace - .SURFACE_FLINGER_LAYER_TRACE_CONTROL_CODE; -import static com.android.settings.development.qstile.DevelopmentTiles.WinscopeTrace - .SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE; +import static com.android.settings.development.qstile.DevelopmentTiles.WinscopeTrace.SURFACE_FLINGER_LAYER_TRACE_CONTROL_CODE; +import static com.android.settings.development.qstile.DevelopmentTiles.WinscopeTrace.SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE; import static com.google.common.truth.Truth.assertThat; @@ -37,6 +35,8 @@ import android.os.RemoteException; import android.view.IWindowManager; import android.widget.Toast; +import androidx.test.core.app.ApplicationProvider; + import com.android.internal.inputmethod.ImeTracing; import com.android.settings.testutils.shadow.ShadowParcel; @@ -68,6 +68,9 @@ public class WinscopeTraceTest { public void setUp() { MockitoAnnotations.initMocks(this); mWinscopeTrace = spy(new DevelopmentTiles.WinscopeTrace()); + doReturn(ApplicationProvider.getApplicationContext()).when( + mWinscopeTrace).getApplicationContext(); + ReflectionHelpers.setField(mWinscopeTrace, "mWindowManager", mWindowManager); ReflectionHelpers.setField(mWinscopeTrace, "mImeTracing", mImeTracing); ReflectionHelpers.setField(mWinscopeTrace, "mSurfaceFlinger", mSurfaceFlinger); @@ -118,7 +121,7 @@ public class WinscopeTraceTest { assertThat(mWinscopeTrace.isEnabled()).isFalse(); verify(mSurfaceFlinger) .transact(eq(SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE), any(), any(), - eq(0 /* flags */)); + eq(0 /* flags */)); verifyNoMoreInteractions(mSurfaceFlinger); } @@ -131,7 +134,7 @@ public class WinscopeTraceTest { assertThat(mWinscopeTrace.isEnabled()).isTrue(); verify(mSurfaceFlinger) .transact(eq(SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE), any(), any(), - eq(0 /* flags */)); + eq(0 /* flags */)); verifyNoMoreInteractions(mSurfaceFlinger); } From cfaa13442cee95625b5b75804ab25a58b4bfcfbc Mon Sep 17 00:00:00 2001 From: Zoey Chen Date: Mon, 24 Apr 2023 12:26:04 +0000 Subject: [PATCH 04/10] [Settings] UI part: Add metrics for language Bug: 279915462 Test: atest Change-Id: Ie13c57b2b398beb48dfe0ac289ec336483575445 --- .../settings/localepicker/LocaleDialogFragment.java | 9 +++++++++ .../localepicker/LocaleHelperPreferenceController.java | 7 +++++++ .../settings/localepicker/LocaleDialogFragmentTest.java | 7 +++++++ .../LocaleHelperPreferenceControllerTest.java | 8 ++++++++ 4 files changed, 31 insertions(+) diff --git a/src/com/android/settings/localepicker/LocaleDialogFragment.java b/src/com/android/settings/localepicker/LocaleDialogFragment.java index 2ee2e8bb9d7..9e274d6bee0 100644 --- a/src/com/android/settings/localepicker/LocaleDialogFragment.java +++ b/src/com/android/settings/localepicker/LocaleDialogFragment.java @@ -37,6 +37,8 @@ import com.android.internal.app.LocaleStore; import com.android.settings.R; import com.android.settings.RestrictedSettingsFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; +import com.android.settings.overlay.FeatureFactory; +import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; /** * Create a dialog for system locale events. @@ -143,6 +145,7 @@ public class LocaleDialogFragment extends InstrumentedDialogFragment { private final int mDialogType; private final LocaleStore.LocaleInfo mLocaleInfo; private final ResultReceiver mResultReceiver; + private final MetricsFeatureProvider mMetricsFeatureProvider; LocaleDialogController( @NonNull Context context, @NonNull LocaleDialogFragment dialogFragment) { @@ -152,6 +155,8 @@ public class LocaleDialogFragment extends InstrumentedDialogFragment { mLocaleInfo = (LocaleStore.LocaleInfo) arguments.getSerializable( ARG_TARGET_LOCALE); mResultReceiver = (ResultReceiver) arguments.getParcelable(ARG_RESULT_RECEIVER); + mMetricsFeatureProvider = FeatureFactory.getFactory( + mContext).getMetricsFeatureProvider(); } LocaleDialogController(@NonNull LocaleDialogFragment dialogFragment) { @@ -163,11 +168,15 @@ public class LocaleDialogFragment extends InstrumentedDialogFragment { if (mResultReceiver != null && mDialogType == DIALOG_CONFIRM_SYSTEM_DEFAULT) { Bundle bundle = new Bundle(); bundle.putInt(ARG_DIALOG_TYPE, DIALOG_CONFIRM_SYSTEM_DEFAULT); + boolean changed = false; if (which == DialogInterface.BUTTON_POSITIVE) { + changed = true; mResultReceiver.send(Activity.RESULT_OK, bundle); } else if (which == DialogInterface.BUTTON_NEGATIVE) { mResultReceiver.send(Activity.RESULT_CANCELED, bundle); } + mMetricsFeatureProvider.action(mContext, + SettingsEnums.ACTION_CHANGE_LANGUAGE, changed); } } diff --git a/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java b/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java index a639c9d297a..1227683ce73 100644 --- a/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java +++ b/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java @@ -16,6 +16,7 @@ package com.android.settings.localepicker; +import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; import android.util.Log; @@ -24,8 +25,10 @@ import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceScreen; import com.android.settings.R; +import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.HelpUtils; import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.widget.FooterPreference; /** @@ -36,8 +39,11 @@ public class LocaleHelperPreferenceController extends AbstractPreferenceControll private static final String KEY_FOOTER_LANGUAGE_PICKER = "footer_languages_picker"; + private final MetricsFeatureProvider mMetricsFeatureProvider; + public LocaleHelperPreferenceController(Context context) { super(context); + mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); } @Override @@ -72,6 +78,7 @@ public class LocaleHelperPreferenceController extends AbstractPreferenceControll mContext.getString(R.string.link_locale_picker_footer_learn_more), mContext.getClass().getName()); if (intent != null) { + mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE); mContext.startActivity(intent); } else { Log.w(TAG, "HelpIntent is null"); diff --git a/tests/unit/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java b/tests/unit/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java index 5b10adf0ff6..b0998c023a6 100644 --- a/tests/unit/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java +++ b/tests/unit/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java @@ -38,6 +38,7 @@ import androidx.test.annotation.UiThreadTest; import androidx.test.core.app.ApplicationProvider; import com.android.internal.app.LocaleStore; +import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.ResourcesUtils; import org.junit.Before; @@ -55,11 +56,13 @@ public class LocaleDialogFragmentTest { private Context mContext; private LocaleDialogFragment mDialogFragment; + private FakeFeatureFactory mFeatureFactory; @Before public void setUp() throws Exception { mContext = ApplicationProvider.getApplicationContext(); mDialogFragment = new LocaleDialogFragment(); + mFeatureFactory = FakeFeatureFactory.setupForTest(); } private void setArgument( @@ -112,6 +115,8 @@ public class LocaleDialogFragmentTest { controller.onClick(null, DialogInterface.BUTTON_POSITIVE); verify(resultReceiver).send(eq(Activity.RESULT_OK), any()); + verify(mFeatureFactory.metricsFeatureProvider).action( + mContext, SettingsEnums.ACTION_CHANGE_LANGUAGE, true); } @Test @@ -124,6 +129,8 @@ public class LocaleDialogFragmentTest { controller.onClick(null, DialogInterface.BUTTON_NEGATIVE); verify(resultReceiver).send(eq(Activity.RESULT_CANCELED), any()); + verify(mFeatureFactory.metricsFeatureProvider).action( + mContext, SettingsEnums.ACTION_CHANGE_LANGUAGE, false); } @Test diff --git a/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java b/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java index 31b8e794480..5ac367e35b2 100644 --- a/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java @@ -19,12 +19,14 @@ package com.android.settings.localepicker; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.verify; +import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Looper; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; +import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.widget.FooterPreference; import org.junit.Before; @@ -37,6 +39,7 @@ import org.mockito.MockitoAnnotations; public class LocaleHelperPreferenceControllerTest { private Context mContext; private LocaleHelperPreferenceController mLocaleHelperPreferenceController; + private FakeFeatureFactory mFeatureFactory; @Mock private FooterPreference mMockFooterPreference; @@ -49,11 +52,16 @@ public class LocaleHelperPreferenceControllerTest { } mContext = ApplicationProvider.getApplicationContext(); mLocaleHelperPreferenceController = new LocaleHelperPreferenceController(mContext); + mFeatureFactory = FakeFeatureFactory.setupForTest(); } @Test public void updateFooterPreference_setFooterPreference_hasClickAction() { mLocaleHelperPreferenceController.updateFooterPreference(mMockFooterPreference); verify(mMockFooterPreference).setLearnMoreText(anyString()); + mMockFooterPreference.setLearnMoreAction(v -> { + verify(mFeatureFactory.metricsFeatureProvider).action( + mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE); + }); } } From eef23f441cea398d7fe6f006baa52002af92b252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wilczy=C5=84ski?= Date: Tue, 25 Apr 2023 09:49:42 +0000 Subject: [PATCH 05/10] Revert "Back up the smooth display setting" Revert submission 22741921-cherrypick-bug-211737588-lp9s6r5vn3 Reason for revert: b/279215664 Reverted changes: /q/submissionid:22741921-cherrypick-bug-211737588-lp9s6r5vn3 Change-Id: I9b50aa0e2c5a7d328c4aa70b049c37c81e49e89b Merged-In: I9b50aa0e2c5a7d328c4aa70b049c37c81e49e89b --- ...cePeakRefreshRatePreferenceController.java | 50 ++++++++++++---- .../PeakRefreshRatePreferenceController.java | 57 +++++++++++++++---- ...akRefreshRatePreferenceControllerTest.java | 22 ++++--- ...akRefreshRatePreferenceControllerTest.java | 48 +++++++++++----- 4 files changed, 133 insertions(+), 44 deletions(-) diff --git a/src/com/android/settings/development/ForcePeakRefreshRatePreferenceController.java b/src/com/android/settings/development/ForcePeakRefreshRatePreferenceController.java index 2e0a6b47c19..d5d40254fa8 100644 --- a/src/com/android/settings/development/ForcePeakRefreshRatePreferenceController.java +++ b/src/com/android/settings/development/ForcePeakRefreshRatePreferenceController.java @@ -16,18 +16,17 @@ package com.android.settings.development; -import static com.android.internal.display.RefreshRateSettingsUtils.DEFAULT_REFRESH_RATE; - import android.content.Context; +import android.hardware.display.DisplayManager; import android.provider.Settings; import android.util.Log; +import android.view.Display; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; -import com.android.internal.display.RefreshRateSettingsUtils; import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.development.DeveloperOptionsPreferenceController; @@ -35,6 +34,12 @@ import com.android.settingslib.development.DeveloperOptionsPreferenceController; public class ForcePeakRefreshRatePreferenceController extends DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin { + @VisibleForTesting + static float DEFAULT_REFRESH_RATE = 60f; + + @VisibleForTesting + static float NO_CONFIG = 0f; + @VisibleForTesting float mPeakRefreshRate; @@ -43,8 +48,17 @@ public class ForcePeakRefreshRatePreferenceController extends DeveloperOptionsPr public ForcePeakRefreshRatePreferenceController(Context context) { super(context); - mPeakRefreshRate = - RefreshRateSettingsUtils.findHighestRefreshRateForDefaultDisplay(context); + + final DisplayManager dm = context.getSystemService(DisplayManager.class); + final Display display = dm.getDisplay(Display.DEFAULT_DISPLAY); + + if (display == null) { + Log.w(TAG, "No valid default display device"); + mPeakRefreshRate = DEFAULT_REFRESH_RATE; + } else { + mPeakRefreshRate = findPeakRefreshRate(display.getSupportedModes()); + } + Log.d(TAG, "DEFAULT_REFRESH_RATE : " + DEFAULT_REFRESH_RATE + " mPeakRefreshRate : " + mPeakRefreshRate); } @@ -85,20 +99,34 @@ public class ForcePeakRefreshRatePreferenceController extends DeveloperOptionsPr @Override protected void onDeveloperOptionsSwitchDisabled() { super.onDeveloperOptionsSwitchDisabled(); - Settings.System.putInt(mContext.getContentResolver(), - Settings.System.FORCE_PEAK_REFRESH_RATE, 0); + Settings.System.putFloat(mContext.getContentResolver(), + Settings.System.MIN_REFRESH_RATE, NO_CONFIG); ((SwitchPreference) mPreference).setChecked(false); } @VisibleForTesting void forcePeakRefreshRate(boolean enable) { - Settings.System.putInt(mContext.getContentResolver(), - Settings.System.FORCE_PEAK_REFRESH_RATE, enable ? 1 : 0); + final float peakRefreshRate = enable ? mPeakRefreshRate : NO_CONFIG; + Settings.System.putFloat(mContext.getContentResolver(), + Settings.System.MIN_REFRESH_RATE, peakRefreshRate); } boolean isForcePeakRefreshRateEnabled() { - return Settings.System.getInt(mContext.getContentResolver(), - Settings.System.FORCE_PEAK_REFRESH_RATE, 0) == 1; + final float peakRefreshRate = Settings.System.getFloat(mContext.getContentResolver(), + Settings.System.MIN_REFRESH_RATE, NO_CONFIG); + + return peakRefreshRate >= mPeakRefreshRate; + } + + private float findPeakRefreshRate(Display.Mode[] modes) { + float peakRefreshRate = DEFAULT_REFRESH_RATE; + for (Display.Mode mode : modes) { + if (Math.round(mode.getRefreshRate()) > peakRefreshRate) { + peakRefreshRate = mode.getRefreshRate(); + } + } + + return peakRefreshRate; } } diff --git a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java index 72eca5b457a..dfcc601fff3 100644 --- a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java +++ b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java @@ -16,20 +16,18 @@ package com.android.settings.display; -import static com.android.internal.display.RefreshRateSettingsUtils.DEFAULT_REFRESH_RATE; - import android.content.Context; import android.hardware.display.DisplayManager; import android.os.Handler; import android.provider.DeviceConfig; import android.provider.Settings; import android.util.Log; +import android.view.Display; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; -import com.android.internal.display.RefreshRateSettingsUtils; import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; @@ -41,6 +39,8 @@ import java.util.concurrent.Executor; public class PeakRefreshRatePreferenceController extends TogglePreferenceController implements LifecycleObserver, OnStart, OnStop { + @VisibleForTesting static float DEFAULT_REFRESH_RATE = 60f; + @VisibleForTesting float mPeakRefreshRate; private static final String TAG = "RefreshRatePrefCtr"; @@ -65,8 +65,17 @@ public class PeakRefreshRatePreferenceController extends TogglePreferenceControl updateState(mPreference); } }; - mPeakRefreshRate = - RefreshRateSettingsUtils.findHighestRefreshRateForDefaultDisplay(context); + + final DisplayManager dm = mContext.getSystemService(DisplayManager.class); + final Display display = dm.getDisplay(Display.DEFAULT_DISPLAY); + + if (display == null) { + Log.w(TAG, "No valid default display device"); + mPeakRefreshRate = DEFAULT_REFRESH_RATE; + } else { + mPeakRefreshRate = findPeakRefreshRate(display.getSupportedModes()); + } + Log.d( TAG, "DEFAULT_REFRESH_RATE : " @@ -97,15 +106,21 @@ public class PeakRefreshRatePreferenceController extends TogglePreferenceControl @Override public boolean isChecked() { - return Settings.System.getInt(mContext.getContentResolver(), Settings.System.SMOOTH_DISPLAY, - 0) == 1; + final float peakRefreshRate = + Settings.System.getFloat( + mContext.getContentResolver(), + Settings.System.PEAK_REFRESH_RATE, + getDefaultPeakRefreshRate()); + return Math.round(peakRefreshRate) == Math.round(mPeakRefreshRate); } @Override public boolean setChecked(boolean isChecked) { - Log.d(TAG, "setChecked to : " + isChecked); - return Settings.System.putInt( - mContext.getContentResolver(), Settings.System.SMOOTH_DISPLAY, isChecked ? 1 : 0); + final float peakRefreshRate = isChecked ? mPeakRefreshRate : DEFAULT_REFRESH_RATE; + Log.d(TAG, "setChecked to : " + peakRefreshRate); + + return Settings.System.putFloat( + mContext.getContentResolver(), Settings.System.PEAK_REFRESH_RATE, peakRefreshRate); } @Override @@ -123,6 +138,17 @@ public class PeakRefreshRatePreferenceController extends TogglePreferenceControl mDeviceConfigDisplaySettings.stopListening(); } + @VisibleForTesting + float findPeakRefreshRate(Display.Mode[] modes) { + float peakRefreshRate = DEFAULT_REFRESH_RATE; + for (Display.Mode mode : modes) { + if (Math.round(mode.getRefreshRate()) > peakRefreshRate) { + peakRefreshRate = mode.getRefreshRate(); + } + } + return peakRefreshRate; + } + private class DeviceConfigDisplaySettings implements DeviceConfig.OnPropertiesChangedListener, Executor { public void startListening() { @@ -165,4 +191,15 @@ public class PeakRefreshRatePreferenceController extends TogglePreferenceControl } } } + + private float getDefaultPeakRefreshRate() { + float defaultPeakRefreshRate = mDeviceConfigDisplaySettings.getDefaultPeakRefreshRate(); + if (defaultPeakRefreshRate == INVALIDATE_REFRESH_RATE) { + defaultPeakRefreshRate = (float) mContext.getResources().getInteger( + com.android.internal.R.integer.config_defaultPeakRefreshRate); + } + + Log.d(TAG, "DeviceConfig getDefaultPeakRefreshRate : " + defaultPeakRefreshRate); + return defaultPeakRefreshRate; + } } diff --git a/tests/robotests/src/com/android/settings/development/ForcePeakRefreshRatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/ForcePeakRefreshRatePreferenceControllerTest.java index 7dfde3814a0..2e93d5ef9ca 100644 --- a/tests/robotests/src/com/android/settings/development/ForcePeakRefreshRatePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/ForcePeakRefreshRatePreferenceControllerTest.java @@ -16,8 +16,8 @@ package com.android.settings.development; -import static com.android.internal.display.RefreshRateSettingsUtils.DEFAULT_REFRESH_RATE; - +import static com.android.settings.development.ForcePeakRefreshRatePreferenceController.DEFAULT_REFRESH_RATE; +import static com.android.settings.development.ForcePeakRefreshRatePreferenceController.NO_CONFIG; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.verify; @@ -38,6 +38,8 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; +import android.util.Log; + @RunWith(RobolectricTestRunner.class) public class ForcePeakRefreshRatePreferenceControllerTest { @@ -61,18 +63,22 @@ public class ForcePeakRefreshRatePreferenceControllerTest { @Test public void onPreferenceChange_preferenceChecked_shouldEnableForcePeak() { + mController.mPeakRefreshRate = 88f; + mController.onPreferenceChange(mPreference, true); - assertThat(Settings.System.getInt(mContext.getContentResolver(), - Settings.System.FORCE_PEAK_REFRESH_RATE, -1)).isEqualTo(1); + assertThat(Settings.System.getFloat(mContext.getContentResolver(), + Settings.System.MIN_REFRESH_RATE, NO_CONFIG)).isEqualTo(88f); } @Test public void onPreferenceChange_preferenceUnchecked_shouldDisableForcePeak() { + mController.mPeakRefreshRate = 88f; + mController.onPreferenceChange(mPreference, false); - assertThat(Settings.System.getInt(mContext.getContentResolver(), - Settings.System.FORCE_PEAK_REFRESH_RATE, -1)).isEqualTo(0); + assertThat(Settings.System.getFloat(mContext.getContentResolver(), + Settings.System.MIN_REFRESH_RATE, NO_CONFIG)).isEqualTo(NO_CONFIG); } @Test @@ -119,8 +125,8 @@ public class ForcePeakRefreshRatePreferenceControllerTest { public void onDeveloperOptionsDisabled_shouldDisablePreference() { mController.onDeveloperOptionsSwitchDisabled(); - assertThat(Settings.System.getInt(mContext.getContentResolver(), - Settings.System.FORCE_PEAK_REFRESH_RATE, -1)).isEqualTo(0); + assertThat(Settings.System.getFloat(mContext.getContentResolver(), + Settings.System.MIN_REFRESH_RATE, -1f)).isEqualTo(NO_CONFIG); assertThat(mPreference.isChecked()).isFalse(); assertThat(mPreference.isEnabled()).isFalse(); } diff --git a/tests/robotests/src/com/android/settings/display/PeakRefreshRatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/PeakRefreshRatePreferenceControllerTest.java index 9c3644e2536..aaeeea4f368 100644 --- a/tests/robotests/src/com/android/settings/display/PeakRefreshRatePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/PeakRefreshRatePreferenceControllerTest.java @@ -16,14 +16,15 @@ package com.android.settings.display; -import static com.android.internal.display.RefreshRateSettingsUtils.DEFAULT_REFRESH_RATE; import static com.android.settings.core.BasePreferenceController.AVAILABLE; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; +import static com.android.settings.display.PeakRefreshRatePreferenceController.DEFAULT_REFRESH_RATE; import static com.google.common.truth.Truth.assertThat; import android.content.Context; import android.provider.Settings; +import android.view.Display; import androidx.preference.SwitchPreference; @@ -69,21 +70,23 @@ public class PeakRefreshRatePreferenceControllerTest { } @Test - public void setChecked_enableSmoothDisplay() { + public void setChecked_enableSmoothDisplay_setCurrentRefreshRate() { + mController.mPeakRefreshRate = 88f; mController.setChecked(true); - assertThat(Settings.System.getInt(mContext.getContentResolver(), - Settings.System.SMOOTH_DISPLAY, -1)) - .isEqualTo(1); + assertThat(Settings.System.getFloat(mContext.getContentResolver(), + Settings.System.PEAK_REFRESH_RATE, DEFAULT_REFRESH_RATE)) + .isEqualTo(88.0f); } @Test - public void setChecked_disableSmoothDisplay() { + public void setChecked_disableSmoothDisplay_setDefaultRefreshRate() { + mController.mPeakRefreshRate = 88f; mController.setChecked(false); - assertThat(Settings.System.getInt(mContext.getContentResolver(), - Settings.System.SMOOTH_DISPLAY, -1)) - .isEqualTo(0); + assertThat(Settings.System.getFloat(mContext.getContentResolver(), + Settings.System.PEAK_REFRESH_RATE, DEFAULT_REFRESH_RATE)) + .isEqualTo(DEFAULT_REFRESH_RATE); } @Test @@ -100,21 +103,36 @@ public class PeakRefreshRatePreferenceControllerTest { assertThat(mController.isChecked()).isFalse(); } + @Test + public void findPeakRefreshRate_moreThanOneHigherThanDefault() { + Display.Mode lower = new Display.Mode(0, 0, 0, DEFAULT_REFRESH_RATE - 1); + Display.Mode def = new Display.Mode(0, 0, 0, DEFAULT_REFRESH_RATE); + Display.Mode higher = new Display.Mode(0, 0, 0, DEFAULT_REFRESH_RATE + 1); + Display.Mode higher1 = new Display.Mode(0, 0, 0, DEFAULT_REFRESH_RATE + 2); + + assertThat(mController.findPeakRefreshRate( + new Display.Mode[] {lower, def, higher, higher1})) + .isEqualTo(DEFAULT_REFRESH_RATE + 2); + assertThat(mController.findPeakRefreshRate( + new Display.Mode[] {lower, def, higher1, higher})) + .isEqualTo(DEFAULT_REFRESH_RATE + 2); + } + private void enableSmoothDisplayPreference() { mController.mPeakRefreshRate = 88f; - Settings.System.putInt( + Settings.System.putFloat( mContext.getContentResolver(), - Settings.System.SMOOTH_DISPLAY, - 1); + Settings.System.PEAK_REFRESH_RATE, + mController.mPeakRefreshRate); } private void disableSmoothDisplayPreference() { mController.mPeakRefreshRate = 88f; - Settings.System.putInt( + Settings.System.putFloat( mContext.getContentResolver(), - Settings.System.SMOOTH_DISPLAY, - 0); + Settings.System.PEAK_REFRESH_RATE, + DEFAULT_REFRESH_RATE); } } From 3a68e5bf28842d2a14d277dde916e1c67fe94478 Mon Sep 17 00:00:00 2001 From: Julia Tuttle Date: Thu, 27 Apr 2023 14:45:13 -0400 Subject: [PATCH 06/10] Optimize imports in AppNotificationSettings Bug: 277938609 Test: builds Change-Id: Id44390f6fc8b6294c951a7f4ec9bd37e0a364dfd --- .../settings/notification/app/AppNotificationSettings.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/com/android/settings/notification/app/AppNotificationSettings.java b/src/com/android/settings/notification/app/AppNotificationSettings.java index 5a14bc95025..4ebac0f497d 100644 --- a/src/com/android/settings/notification/app/AppNotificationSettings.java +++ b/src/com/android/settings/notification/app/AppNotificationSettings.java @@ -18,18 +18,11 @@ package com.android.settings.notification.app; import android.app.settings.SettingsEnums; import android.content.Context; -import android.os.Bundle; import android.text.TextUtils; import android.util.Log; -import androidx.preference.Preference; -import androidx.preference.PreferenceGroup; -import androidx.preference.PreferenceScreen; -import androidx.recyclerview.widget.RecyclerView; - import com.android.internal.widget.LockPatternUtils; import com.android.settings.R; -import com.android.settings.Utils; import com.android.settingslib.core.AbstractPreferenceController; import java.util.ArrayList; From 547484f797f460017b32ba6f3e7e1b36054cb59a Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Thu, 27 Apr 2023 20:47:48 -0700 Subject: [PATCH 07/10] Import translations. DO NOT MERGE ANYWHERE BUG:278022447 Auto-generated-cl: translation import Change-Id: I746cb0e511ad3e9a19f2dfb0d152319e53c7a11f --- res/values-af/strings.xml | 2 ++ res/values-am/strings.xml | 2 ++ res/values-ar/strings.xml | 2 ++ res/values-as/strings.xml | 2 ++ res/values-az/strings.xml | 2 ++ res/values-b+sr+Latn/strings.xml | 2 ++ res/values-be/strings.xml | 2 ++ res/values-bg/strings.xml | 2 ++ res/values-bn/strings.xml | 2 ++ res/values-bs/strings.xml | 2 ++ res/values-ca/strings.xml | 2 ++ res/values-cs/strings.xml | 2 ++ res/values-da/strings.xml | 2 ++ res/values-de/strings.xml | 2 ++ res/values-el/strings.xml | 2 ++ res/values-en-rAU/strings.xml | 2 ++ res/values-en-rCA/strings.xml | 2 ++ res/values-en-rGB/strings.xml | 2 ++ res/values-en-rIN/strings.xml | 2 ++ res/values-en-rXC/strings.xml | 2 ++ res/values-es-rUS/strings.xml | 2 ++ res/values-es/strings.xml | 2 ++ res/values-et/strings.xml | 2 ++ res/values-eu/strings.xml | 2 ++ res/values-fa/strings.xml | 2 ++ res/values-fi/strings.xml | 2 ++ res/values-fr-rCA/strings.xml | 2 ++ res/values-fr/strings.xml | 2 ++ res/values-gl/strings.xml | 2 ++ res/values-gu/strings.xml | 2 ++ res/values-hi/strings.xml | 2 ++ res/values-hr/strings.xml | 2 ++ res/values-hu/strings.xml | 2 ++ res/values-hy/strings.xml | 2 ++ res/values-in/strings.xml | 2 ++ res/values-is/strings.xml | 2 ++ res/values-it/strings.xml | 2 ++ res/values-iw/strings.xml | 2 ++ res/values-ja/strings.xml | 2 ++ res/values-ka/strings.xml | 2 ++ res/values-kk/strings.xml | 2 ++ res/values-km/strings.xml | 2 ++ res/values-kn/strings.xml | 2 ++ res/values-ko/strings.xml | 2 ++ res/values-ky/strings.xml | 2 ++ res/values-lo/strings.xml | 2 ++ res/values-lt/strings.xml | 2 ++ res/values-lv/strings.xml | 2 ++ res/values-mk/strings.xml | 2 ++ res/values-ml/strings.xml | 2 ++ res/values-mn/strings.xml | 2 ++ res/values-mr/strings.xml | 2 ++ res/values-ms/strings.xml | 2 ++ res/values-my/strings.xml | 2 ++ res/values-nb/strings.xml | 2 ++ res/values-ne/strings.xml | 2 ++ res/values-nl/strings.xml | 2 ++ res/values-or/strings.xml | 2 ++ res/values-pa/strings.xml | 2 ++ res/values-pl/strings.xml | 2 ++ res/values-pt-rBR/strings.xml | 2 ++ res/values-pt-rPT/strings.xml | 2 ++ res/values-pt/strings.xml | 2 ++ res/values-ro/strings.xml | 2 ++ res/values-ru/strings.xml | 2 ++ res/values-si/strings.xml | 2 ++ res/values-sk/strings.xml | 2 ++ res/values-sl/strings.xml | 2 ++ res/values-sq/strings.xml | 2 ++ res/values-sr/strings.xml | 2 ++ res/values-sv/strings.xml | 2 ++ res/values-sw/strings.xml | 2 ++ res/values-ta/strings.xml | 2 ++ res/values-te/strings.xml | 2 ++ res/values-th/strings.xml | 2 ++ res/values-tl/strings.xml | 2 ++ res/values-tr/strings.xml | 2 ++ res/values-uk/strings.xml | 2 ++ res/values-ur/strings.xml | 2 ++ res/values-uz/strings.xml | 2 ++ res/values-vi/strings.xml | 2 ++ res/values-zh-rCN/strings.xml | 2 ++ res/values-zh-rHK/strings.xml | 2 ++ res/values-zh-rTW/strings.xml | 2 ++ res/values-zu/strings.xml | 2 ++ 85 files changed, 170 insertions(+) diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml index 0735dad290f..88a6e15111a 100644 --- a/res/values-af/strings.xml +++ b/res/values-af/strings.xml @@ -3099,6 +3099,8 @@ "Stelselgebruik vir die afgelope 24 u." "Stelselgebruik vir %s" "Programgebruik vir %s" + "Stelselgebruik sedert battery laas volgelaai is tot %s" + "Appgebruik sedert battery laas volgelaai is tot %s" "Total: minder as \'n min." "Agtergrond: minder as \'n min." "Totaal: %s" diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml index ddf3ba6aa79..3c14369827f 100644 --- a/res/values-am/strings.xml +++ b/res/values-am/strings.xml @@ -3099,6 +3099,8 @@ "ላለፉት 24 ሰዓቶች የሥርዓት አጠቃቀም" "የ%s የሥርዓት አጠቃቀም" "የ%s የመተግበሪያ አጠቃቀም" + "ሙሉ ኃይል ከተሞላበት የመጨረሻ ጊዜ ጀምሮ እስከ %s ያለ የሥርዓት አጠቃቀም" + "ሙሉ ኃይል ከተሞላበት የመጨረሻው ጊዜ ጀምሮ እስከ %s ድረስ ያለ የመተግበሪያ አጠቃቀም" "ጠቅላላ፦ ከአንድ ደቂቃ በታች" "ዳራ፦ ከአንድ ደቂቃ በታች" "ጠቅላላ፦ %s" diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index eef17f73c93..e4ec0f9609e 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -3251,6 +3251,8 @@ "استخدام النظام خلال آخر 24 ساعة" "استخدام النظام خلال %s" "استخدام التطبيق خلال %s" + "استخدام النظام للبطارية منذ آخر شحن كامل حتى %s" + "استخدام التطبيق للبطارية منذ آخر شحن كامل حتى %s" "مدة الاستخدام الإجمالي: أقل من دقيقة" "مدة استخدام البطارية في الخلفية: أقل من دقيقة" "مدة الاستخدام الإجمالي: %s" diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml index d3fb3aee31a..4507d6417d9 100644 --- a/res/values-as/strings.xml +++ b/res/values-as/strings.xml @@ -3099,6 +3099,8 @@ "যোৱা ২৪ ঘণ্টাত হোৱা ছিষ্টেমৰ ব্যৱহাৰ" "%sৰ বাবে ছিষ্টেমৰ ব্যৱহাৰ" "%sৰ বাবে এপৰ ব্যৱহাৰ" + "%sলৈ অন্তিমবাৰ সম্পূৰ্ণৰূপে চাৰ্জ হোৱাৰ পাছত ছিষ্টেমৰ ব্যৱহাৰ" + "%sলৈকে অন্তিমবাৰ সম্পূৰ্ণৰূপে চাৰ্জ হোৱাৰ পাছত এপৰ ব্যৱহাৰ" "মুঠ: এক মিনিটতকৈ কম" "নেপথ্য: এক মিনিটতকৈ কম" "মুঠ: %s" diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml index 5de192dac9b..9a0024e3c89 100644 --- a/res/values-az/strings.xml +++ b/res/values-az/strings.xml @@ -3099,6 +3099,8 @@ "Son 24 saat üçün sistem istifadəsi" "%s üçün sistem istifadəsi" "%s üçün tətbiq istifadəsi" + "Son tam şarjdan %s radələrinə qədər sistem istifadəsi" + "Son tam şarjdan %s radələrinə qədər tətbiq istifadəsi" "Cəmi: bir dəqiqədən az" "Arxa fon: bir dəqiqədən az" "Cəmi: %s" diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml index 8acc3ce798b..de957b45a98 100644 --- a/res/values-b+sr+Latn/strings.xml +++ b/res/values-b+sr+Latn/strings.xml @@ -3137,6 +3137,8 @@ "Potrošnja od strane sistema u poslednja 24 sata" "Potrošnja od strane sistema za: %s" "Potrošnja od strane aplikacija za: %s" + "Korišćenje sistema od poslednjeg potpunog punjenja do %s" + "Korišćenje aplikacija od poslednjeg potpunog punjenja do %s" "Ukupno: manje od minut" "Pozadina: manje od minut" "Ukupno: %s" diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml index 80749c12257..cd373649838 100644 --- a/res/values-be/strings.xml +++ b/res/values-be/strings.xml @@ -3175,6 +3175,8 @@ "Выкарыстанне сістэмай зараду за апошнія 24 гадз" "Выкарыстанне сістэмай за %s" "Выкарыстанне праграмай за %s" + "Выкарыстанне сістэмы з моманту апошняй поўнай зарадкі да %s" + "Выкарыстанне праграм з моманту апошняй поўнай зарадкі да %s" "Усяго: менш адной хвіліны" "У фонавым рэжыме: менш адной хвіліны" "Усяго: %s" diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index e413c48672e..9aa073d7d3f 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -3099,6 +3099,8 @@ "Използване от системата за последните 24 ч" "Използване от системата за %s" "Използване от приложенията за %s" + "Използване на системата от последното пълно зареждане до %s" + "Използване на приложенията от последното пълно зареждане до %s" "Общо: По-малко от една минута" "На заден план: По-малко от една минута" "Общо: %s" diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml index 3812bf730f9..667641447ec 100644 --- a/res/values-bn/strings.xml +++ b/res/values-bn/strings.xml @@ -3099,6 +3099,8 @@ "গত ২৪ ঘন্টা ব্যাটারি সিস্টেম ব্যবহারের তথ্য" "%s-এর জন্য সিস্টেমের ব্যবহার" "%s-এর জন্য অ্যাপের ব্যবহার" + "শেষবার সম্পূর্ণ চার্জ হওয়া থেকে %s পর্যন্ত সিস্টেমের ব্যবহার" + "শেষবার সম্পূর্ণ চার্জ হওয়া থেকে %s পর্যন্ত অ্যাপের ব্যবহার" "মোট: এক মিনিটের থেকে কম" "ব্যাকগ্রাউন্ড: এক মিনিটের থেকে কম" "মোট: %s" diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml index 5233ce03ea6..f77a07ed6cb 100644 --- a/res/values-bs/strings.xml +++ b/res/values-bs/strings.xml @@ -3137,6 +3137,8 @@ "Korištenje sistema u posljednja 24 h" "Korištenje sistema za: %s" "Korištenje aplikacije za: %s" + "Korištenje sistema od posljednjeg potpunog punjenja do dana %s" + "Korištenje aplikacija od posljednjeg potpunog punjenja do dana %s" "Ukupno: manje od minute" "Pozadina: manje od minute" "Ukupno: %s" diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 448eb339b1b..dfce64ef448 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -3099,6 +3099,8 @@ "Ús del sistema durant les 24 darreres hores" "Ús del sistema entre %s" "Ús d\'aplicacions entre %s" + "Ús del sistema des de la darrera càrrega completa fins a %s" + "Ús de les aplicacions des de la darrera càrrega completa fins a %s" "Total: menys d\'un minut" "En segon pla: menys d\'un minut" "Total: %s" diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index ca00b07b4ae..93d4d947c03 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -3175,6 +3175,8 @@ "Využití baterie systémem za posledních 24 hodin" "Využití baterie systémem: %s" "Využití baterie aplikací: %s" + "Využití systémem od posledního nabití do %s" + "Využití aplikacemi od posledního nabití do %s" "Celkem: méně než minuta" "Na pozadí: méně než minuta" "Celkem: %s" diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index d91916e6a3b..789c921e2b4 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -3099,6 +3099,8 @@ "Systemforbrug for de seneste 24 timer" "Systemforbrug for %s" "Appforbrug for %s" + "Systemforbrug siden sidste fulde opladning %s" + "Appforbrug siden sidste fulde opladning %s" "I alt: Under et minut" "Baggrund: Under et minut" "I alt: %s" diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 80847efd471..a4f5c40f11b 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -3100,6 +3100,8 @@ "Systemnutzung während der letzten 24 Stunden" "Systemnutzung im Zeitraum %s" "App-Nutzung im Zeitraum %s" + "Systemnutzung von letzter vollständiger Aufladung bis %s" + "App-Nutzung von letzter vollständiger Aufladung bis %s" "Gesamt: weniger als eine Minute" "Hintergrund: weniger als eine Minute" "Gesamt: %s" diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 0e46170dcf6..b9eaa45e7f6 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -3099,6 +3099,8 @@ "Χρήση συστήματος για τις τελευταίες 24 ω." "Χρήση συστήματος για %s" "Χρήση εφαρμογής για %s" + "Χρήση συστήματος από την τελευταία πλήρη φόρτιση έως %s" + "Χρήση εφαρμογών από την τελευταία πλήρη φόρτιση έως %s" "Σύνολο: λιγότερο από ένα λεπτό" "Παρασκήνιο: λιγότερο από ένα λεπτό" "Σύνολο: %s" diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml index 3780d007376..5a0b9d819dd 100644 --- a/res/values-en-rAU/strings.xml +++ b/res/values-en-rAU/strings.xml @@ -3099,6 +3099,8 @@ "System usage for past 24 hours" "System usage for %s" "App usage for %s" + "System usage since last full charge to %s" + "App usage since last full charge to %s" "Total: less than a min." "Background: less than a min" "Total: %s" diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml index 03ccbf65043..94aa239e300 100644 --- a/res/values-en-rCA/strings.xml +++ b/res/values-en-rCA/strings.xml @@ -3099,6 +3099,8 @@ "System usage for past 24 hr" "System usage for %s" "App usage for %s" + "System usage since last full charge to %s" + "App usage since last full charge to %s" "Total: less than a min" "Background: less than a min" "Total: %s" diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index 49fec0899b0..71b11d84cc5 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -3099,6 +3099,8 @@ "System usage for past 24 hours" "System usage for %s" "App usage for %s" + "System usage since last full charge to %s" + "App usage since last full charge to %s" "Total: less than a min." "Background: less than a min" "Total: %s" diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml index 092bd15eb51..345e2a809b5 100644 --- a/res/values-en-rIN/strings.xml +++ b/res/values-en-rIN/strings.xml @@ -3099,6 +3099,8 @@ "System usage for past 24 hours" "System usage for %s" "App usage for %s" + "System usage since last full charge to %s" + "App usage since last full charge to %s" "Total: less than a min." "Background: less than a min" "Total: %s" diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml index c2c5426aa48..2dd5f648f64 100644 --- a/res/values-en-rXC/strings.xml +++ b/res/values-en-rXC/strings.xml @@ -3099,6 +3099,8 @@ "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‏‏‎‏‎‏‎‎‎‏‏‏‎‎‎‏‏‏‎System usage for past 24 hr‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‏‎‎‎‏‎‏‎‏‎‎‏‎‏‏‎‎‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎System usage for ‎‏‎‎‏‏‎%s‎‏‎‎‏‏‏‎‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‎‎‏‎‎‎‎‎‎‎‏‏‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‏‏‎‎‎‎‎‏‎‏‎App usage for ‎‏‎‎‏‏‎%s‎‏‎‎‏‏‏‎‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‏‏‏‏‎‎‎‎‎‎‎‏‏‎‏‏‏‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‎‏‏‏‎‏‎‎‎‎‏‏‎‎‏‏‎System usage since last full charge to ‎‏‎‎‏‏‎%s‎‏‎‎‏‏‏‎‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‎‎‏‎‏‏‏‎‏‏‏‏‎‏‎‏‏‏‎‎‏‎‎‎‏‏‎‎‏‏‎‎‎‏‎‎App usage since last full charge to ‎‏‎‎‏‏‎%s‎‏‎‎‏‏‏‎‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‎‏‎‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‎Total: less than a min‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‏‎‏‏‎‎‎‏‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‏‎‎‎‎‎‎‎‏‎‎‎‏‎‏‎‏‎Background: less than a min‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‏‎‏‏‎‎‏‏‎‏‏‎‎‎‏‎‎‏‏‏‏‎‎‎‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎Total: ‎‏‎‎‏‏‎%s‎‏‎‎‏‏‏‎‎‏‎‎‏‎" diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index 4ed8ef88d69..77e733eddb7 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -3099,6 +3099,8 @@ "Uso del sistema en las últimas 24 h" "Uso del sistema de %s" "Uso de apps de %s" + "Uso del sistema desde la última carga completa hasta el %s" + "Uso de apps desde la última carga completa hasta el %s" "Total: menos de un minuto" "En segundo plano: menos de un minuto" "Total: %s" diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 7911ba6b0ea..0256309b14c 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -3099,6 +3099,8 @@ "Uso del sistema durante las últimas 24 h" "Uso del sistema de %s" "Uso de aplicaciones de %s" + "Uso del sistema desde la última carga completa hasta las %s" + "Uso de la aplicación desde la última carga completa hasta las %s" "Total: menos de 1 minuto" "En segundo plano: menos de 1 minuto" "Total: %s" diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml index 8befbf294a2..71c0dbcee4c 100644 --- a/res/values-et/strings.xml +++ b/res/values-et/strings.xml @@ -3099,6 +3099,8 @@ "Süsteemi kasutus viimase 24 h jooksul" "Süsteemi kasutus: %s" "Rakenduse kasutus: %s" + "Süsteemi kasutus pärast viimast täislaadimist %s" + "Rakenduse kasutus pärast viimast täislaadimist %s" "Kokku: vähem kui minut" "Taustal: vähem kui minut" "Kokku: %s" diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index 8ed817a6092..0d6f4d8e099 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -3099,6 +3099,8 @@ "Sistemak erabilitakoa azken 24 orduetan" "Sistemak erabilitakoa: %s" "Aplikazioek erabilitakoa: %s" + "Sistemaren erabilera gailua guztiz kargatuz geroztik (%s)" + "Aplikazioaren erabilera gailua guztiz kargatuz geroztik (%s)" "Guztira: minutu bat baino gutxiago" "Atzeko planoa: minutu bat baino gutxiago" "Guztira: %s" diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 8aea2efbe1a..4672b2c0c3d 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -3099,6 +3099,8 @@ "استفاده از سیستم در ۲۴ ساعت گذشته" "استفاده از سیستم برای %s" "استفاده از برنامه برای %s" + "مصرف سیستم از آخرین شارژ کامل تا %s" + "مصرف برنامه از آخرین شارژ کامل تا %s" "مجموع: کمتر از یک دقیقه" "پس‌زمینه: کمتر از یک دقیقه" "مجموع: %s" diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index 6a72d02ea1c..db13cd343a0 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -3099,6 +3099,8 @@ "Järjestelmän käyttö 24 viime tunnin sisällä" "Järjestelmän käyttö: %s" "Sovelluksen käyttö: %s" + "Järjestelmän käyttö edellisestä täydestä latauksesta klo %s asti" + "Sovellusten käyttö edellisestä täydestä latauksesta klo %s asti" "Yhteensä: alle minuutti" "Taustalla: alle minuutti" "Yhteensä: %s" diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index 91430b7ac07..089b2d20c17 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -3099,6 +3099,8 @@ "Utilisation par le système, dernières 24 h" "Utilisation par le système : %s" "Utilisation par l\'application : %s" + "Utilisation du système depuis la dernière recharge complète jusqu\'à %s" + "Utilisation des applications depuis la dernière recharge complète jusqu\'à %s" "Total : moins d\'une minute" "Arrière-plan : moins d\'une minute" "Total : %s" diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index de2a9ff2deb..aac531455cc 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -3099,6 +3099,8 @@ "Utilisation par le système - Dernières 24 h" "Utilisation par le système pour la période : %s" "Utilisation par l\'appli pour la période : %s" + "Utilisation par le système depuis la dernière charge complète (%s)" + "Utilisation par l\'appli depuis la dernière charge complète (%s)" "Total : moins d\'une min" "Arrière-plan : moins d\'une min" "Total : %s" diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index 6cc0e6aa054..bdb0f448b8f 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -3099,6 +3099,8 @@ "Uso do sistema durante as últimas 24 horas" "Uso do sistema durante %s" "Uso das aplicacións durante %s" + "Uso por parte do sistema desde a última carga completa ata esta hora: %s" + "Uso por parte das aplicacións desde a última carga completa ata esta hora: %s" "Total: menos dun minuto" "En segundo plano: menos dun minuto" "Total: %s" diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml index 82a5e4c2cd9..58dc95a50cc 100644 --- a/res/values-gu/strings.xml +++ b/res/values-gu/strings.xml @@ -3099,6 +3099,8 @@ "છેલ્લા 24 કલાકમાં સિસ્ટમનો વપરાશ" "%s માટે સિસ્ટમનો વપરાશ" "%s માટે ઍપનો વપરાશ" + "છેલ્લે %s પર પૂર્ણ ચાર્જ કર્યા પછી સિસ્ટમ દ્વારા કરાયેલો વપરાશ" + "છેલ્લે %s પર પૂર્ણ ચાર્જ કર્યા પછી ઍપ દ્વારા કરાયેલો વપરાશ" "કુલ: એક મિનિટ કરતાં ઓછો સમય" "બૅકગ્રાઉન્ડ: એક મિનિટ કરતાં ઓછો સમય" "કુલ: %s" diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index 199cb383643..f7857fc55ac 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -3099,6 +3099,8 @@ "पिछले 24 घंटों में, सिस्टम ने कितनी बैटरी इस्तेमाल की" "%s के बीच सिस्टम के इस्तेमाल की जानकारी" "%s के बीच ऐप्लिकेशन के इस्तेमाल की जानकारी" + "पिछली बार पूरी तरह चार्ज होने से लेकर %s तक, सिस्टम के इस्तेमाल में खर्च हुई बैटरी" + "पिछली बार पूरी तरह चार्ज होने से लेकर %s तक, ऐप्लिकेशन के इस्तेमाल में खर्च हुई बैटरी" "इस्तेमाल का कुल समय: एक मिनट से कम" "बैकग्राउंड में इस्तेमाल होने का समय: एक मिनट से कम" "इस्तेमाल का कुल समय: %s" diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index c84e324e6cf..1b01abd1ddf 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -3137,6 +3137,8 @@ "Upotreba sustava u posljednja 24 sata" "Upotreba sustava za %s" "Upotreba aplikacije za %s" + "Upotreba sustava od posljednjeg potpunog punjenja do %s" + "Upotreba aplikacija od posljednjeg potpunog punjenja do %s" "Ukupno: manje od minute" "U pozadini: manje od minute" "Ukupno: %s" diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index 6a66d394bb4..234d181a125 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -3099,6 +3099,8 @@ "Rendszerhasználat – legutóbbi 24 óra" "Rendszer használata: %s" "Alkalmazás használata: %s" + "Rendszerhasználat az utolsó teljes feltöltés óta eddig: %s" + "Alkalmazáshasználat az utolsó teljes feltöltés óta eddig: %s" "Összesen: kevesebb mint egy perc" "Háttér: kevesebb mint egy perc" "Összesen: %s" diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml index 2fc8a2f6651..37f5bca613b 100644 --- a/res/values-hy/strings.xml +++ b/res/values-hy/strings.xml @@ -3099,6 +3099,8 @@ "Համակարգի կողմից մարտկոցի օգտագործումը վերջին 24 ժամվա ընթացքում" "Համակարգի կողմից մարտկոցի օգտագործումը (%s)" "Հավելվածների կողմից մարտկոցի օգտագործումը (%s)" + "Համակարգի օգտագործումը վերջին լրիվ լիցքավորումից մինչև %s" + "Հավելվածի օգտագործումը վերջին լրիվ լիցքավորումից մինչև %s" "Ընդամենը՝ մեկ րոպեից պակաս" "Ֆոնային՝ մեկ րոպեից պակաս" "Ընդամենը՝ %s" diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index 969f30d964b..74d2ab2bb49 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -3099,6 +3099,8 @@ "Penggunaan sistem selama 24 jam terakhir" "Penggunaan sistem untuk %s" "Penggunaan aplikasi untuk %s" + "Penggunaan sistem sejak terakhir kali baterai terisi penuh sampai %s" + "Penggunaan aplikasi sejak terakhir kali baterai terisi penuh sampai %s" "Total: kurang dari satu menit" "Latar belakang: kurang dari satu menit" "Total: %s" diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml index 22782989223..f1fca6f9d4e 100644 --- a/res/values-is/strings.xml +++ b/res/values-is/strings.xml @@ -3099,6 +3099,8 @@ "Kerfisnotkun síðasta sólarhringinn" "Notkun kerfis: %s" "Notkun forrits: %s" + "Notkun kerfis frá síðustu fullu hleðslu til %s" + "Notkun forrita frá síðustu fullu hleðslu til %s" "Alls: innan við mínúta" "Í bakgrunni: innan við mínúta" "Samtals: %s" diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 0c35743310d..d9760e2a723 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -3099,6 +3099,8 @@ "Utilizzo da parte del sistema nelle ultime 24 ore" "Utilizzo da parte del sistema nell\'intervallo di tempo %s" "Utilizzo da parte delle app nell\'intervallo di tempo %s" + "Utilizzo da parte del sistema dall\'ultima ricarica completa fino a %s" + "Utilizzo da parte delle app dall\'ultima ricarica completa fino a %s" "Totale: meno di un minuto" "In background: meno di un minuto" "Totale: %s" diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index ad3b06a9b47..1f4cfe4ff81 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -3137,6 +3137,8 @@ "צריכת הסוללה של המערכת ב-24 השעות האחרונות" "צריכת הסוללה על ידי המערכת בשעות %s" "צריכת הסוללה על ידי האפליקציה בשעות %s" + "צריכת הסוללה של המערכת מאז הטעינה המלאה האחרונה עד %s" + "צריכת הסוללה של האפליקציות מאז הטעינה המלאה האחרונה עד %s" "סה\"כ: פחות מדקה" "ברקע: פחות מדקה" "סה\"כ: %s" diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index ef4258ad98f..a85fc1c47f3 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -3099,6 +3099,8 @@ "過去 24 時間のシステムのバッテリー使用量" "%sのシステムのバッテリー使用量" "%sのアプリのバッテリー使用量" + "前回のフル充電から %s までのシステムのバッテリー使用量" + "前回のフル充電から %s までのアプリのバッテリー使用量" "合計: 1 分未満" "バックグラウンド: 1 分未満" "合計: %s" diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml index 087ab22263d..3e3b3cf0743 100644 --- a/res/values-ka/strings.xml +++ b/res/values-ka/strings.xml @@ -3099,6 +3099,8 @@ "სისტემის გამოყენება ბოლო 24 საათის მანძილზე" "სისტემის გამოყენება შემდეგისთვის: %s" "აპის გამოყენება შემდეგისთვის: %s" + "სისტემის გამოყენების დეტალები ბოლო სრული დამუხტვის შემდეგ %s-მდე" + "აპის გამოყენების დეტალები ბოლო სრული დამუხტვის შემდეგ %s-მდე" "სულ: წუთზე ნაკლები" "ფონი: წუთზე ნაკლები" "სულ: %s" diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml index 9026e563e84..c8e86631d29 100644 --- a/res/values-kk/strings.xml +++ b/res/values-kk/strings.xml @@ -3099,6 +3099,8 @@ "Жүйенің соңғы 24 сағатта батарея зарядын пайдалануы" "Жүйенің %s пайдалануы" "Қолданбаның %s пайдалануы" + "Соңғы толық зарядталған уақыттан (%s) бергі жүйенің пайдаланылуы" + "Соңғы толық зарядталған уақыттан (%s) бергі қолданбаның пайдаланылуы" "Барлығы: бір минуттан аз" "Фондық режимде: бір минуттан аз" "Барлығы: %s" diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml index c883092c137..6a3c59cef56 100644 --- a/res/values-km/strings.xml +++ b/res/values-km/strings.xml @@ -3099,6 +3099,8 @@ "ការប្រើប្រាស់ប្រព័ន្ធក្នុងរយៈពេល 24 ម៉ោងចុងក្រោយ" "ការប្រើប្រាស់ប្រព័ន្ធចន្លោះ %s" "ការប្រើប្រាស់កម្មវិធីក្នុងរយៈពេល %s" + "ការប្រើប្រាស់ប្រព័ន្ធតាំងពីការសាកថ្មពេញលើកចុងក្រោយដល់ថ្ងៃ %s" + "ការប្រើប្រាស់​កម្មវិធី​​តាំង​ពី​សាកថ្ម​ពេញលើក​ចុង​ក្រោយដល់ថ្ងៃ %s" "សរុប៖ តិចជាងមួយនាទី" "ផ្ទៃខាងក្រោយ៖ តិចជាងមួយនាទី" "សរុប៖ %s" diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml index 7a0ed297762..da68f084288 100644 --- a/res/values-kn/strings.xml +++ b/res/values-kn/strings.xml @@ -3099,6 +3099,8 @@ "ಕಳೆದ 24 ಗಂಟೆಗಳಲ್ಲಿನ ಸಿಸ್ಟಂ ಬಳಕೆ" "%s ಗಾಗಿ ಸಿಸ್ಟಂ ಬಳಕೆ" "%s ಗಾಗಿ ಆ್ಯಪ್ ಬಳಕೆ" + "ಕೊನೆಯ ಬಾರಿ ಪೂರ್ಣ ಚಾರ್ಜ್ ಮಾಡಿದಾಗಿನಿಂದ %s ವರೆಗಿನ ಸಿಸ್ಟಂ ಬಳಕೆ" + "ಕೊನೆಯ ಬಾರಿ ಪೂರ್ಣ ಚಾರ್ಜ್ ಮಾಡಿದಾಗಿನಿಂದ %s ವರೆಗಿನ ಆ್ಯಪ್ ಬಳಕೆ" "ಒಟ್ಟು: ಒಂದು ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ" "ಹಿನ್ನೆಲೆ: ಒಂದು ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ" "ಒಟ್ಟು: %s" diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 0711444f2d1..e2d0070d2e9 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -3099,6 +3099,8 @@ "지난 24시간 동안의 시스템 사용량" "%s의 시스템 사용량" "%s의 앱 사용량" + "마지막 충전 이후 %s까지의 시스템 사용량" + "마지막 충전 이후 %s까지의 앱 사용량" "총 시간: 1분 미만" "백그라운드: 1분 미만" "총 시간: %s" diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml index d4e247eb523..e26d48432ef 100644 --- a/res/values-ky/strings.xml +++ b/res/values-ky/strings.xml @@ -3099,6 +3099,8 @@ "Системанын акыркы 24 саатта колдонулушу" "Системанын колдонулушу: %s" "Колдонмонун иштетилиши: %s" + "Акыркы жолу толук кубатталгандан бери %s чейин системанын керектеши" + "Акыркы жолу толук кубатталгандан бери %s чейин колдонмолордун керектеши" "Жалпысынан: бир мүнөткө жетпейт" "Фондо колдонулушу: бир мүнөткө жетпейт" "Жалпысынан: %s" diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml index 157a2e57a71..a5ca611b0e3 100644 --- a/res/values-lo/strings.xml +++ b/res/values-lo/strings.xml @@ -3099,6 +3099,8 @@ "ການໃຊ້ລະບົບສຳລັບ 24 ຊມ ທີ່ຜ່ານມາ" "ການໃຊ້ລະບົບສຳລັບ %s" "ການໃຊ້ແອັບສຳລັບ %s" + "ການນຳໃຊ້ລະບົບນັບຕັ້ງແຕ່ສາກເຕັມຫຼ້າສຸດຈົນຮອດ %s" + "ການນຳໃຊ້ແອັບນັບຕັ້ງແຕ່ສາກເຕັມຫຼ້າສຸດຈົນຮອດ %s" "ທັງໝົດ: ໜ້ອຍກວ່າໜຶ່ງນາທີ" "ພື້ນຫຼັງ: ໜ້ອຍກວ່າໜຶ່ງນາທີ" "ທັງໝົດ: %s" diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index e6850a3b697..02f1ba5f225 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -3175,6 +3175,8 @@ "Sistemos naudojimas per pastarąsias 24 val." "Sistemos naudojimas: %s" "Programos naudojimas: %s" + "Sistemos naudojimas po paskutinio visiško įkrovimo iki %s" + "Programų naudojimas po paskutinio visiško įkrovimo iki %s" "Iš viso: mažiau nei minutė" "Fonas: trumpiau nei minutė" "Iš viso: %s" diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index eeaf30b73e3..0774370cdfc 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -3137,6 +3137,8 @@ "Sistēmas lietojums pēdējo 24 h laikā" "Sistēmas izmantojums: %s" "Lietotnes izmantojums: %s" + "Sistēmas izmantojums kopš pēdējās pilnās uzlādes līdz: %s" + "Lietotnes izmantojums kopš pēdējās pilnās uzlādes līdz: %s" "Kopā: mazāk par minūti" "Fonā: mazāk par minūti" "Kopā: %s" diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index ab02c06e693..5a363f36cd4 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -3099,6 +3099,8 @@ "Користење на системот во минатите 24 часа" "Користење на системот за %s" "Користење на апликацијата за %s" + "Користење на системот од последното целосно полнење до %s" + "Користење на апликацијата од последното целосно полнење до %s" "Вкупно: помалку од една минута" "Заднина: помалку од една минута" "Вкупно: %s" diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml index 42f42f4b4a6..57beed101a7 100644 --- a/res/values-ml/strings.xml +++ b/res/values-ml/strings.xml @@ -3099,6 +3099,8 @@ "കഴിഞ്ഞ 24 മണിക്കൂറിലെ സിസ്‌റ്റം ഉപയോഗം" "%s എന്നതിനുള്ള സിസ്‌റ്റം ഉപയോഗം" "%s എന്നതിനുള്ള ആപ്പ് ഉപയോഗം" + "അവസാനം പൂർണ്ണമായി ചാർജ് ചെയ്തതിന് ശേഷം %s വരെയുള്ള സിസ്റ്റം ഉപയോഗം" + "അവസാനം പൂർണ്ണമായി ചാർജ് ചെയ്തതിന് ശേഷം %s വരെയുള്ള ആപ്പ് ഉപയോഗം" "ആകെ: ഒരു മിനിറ്റിൽ താഴെ" "പശ്ചാത്തലം: ഒരു മിനിറ്റിൽ താഴെ" "ആകെ: %s" diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml index 6deec90d9e8..2f2ec72a5b6 100644 --- a/res/values-mn/strings.xml +++ b/res/values-mn/strings.xml @@ -3099,6 +3099,8 @@ "Өнгөрсөн 24 цагийн системийн ашиглалт" "%s-н системийн ашиглалт" "%s-н аппын ашиглалт" + "Сүүлд бүрэн цэнэглэснээс хойш %s хүртэлх системийн ашиглалт" + "Сүүлд бүрэн цэнэглэснээс хойш %s хүртэлх аппын ашиглалт" "Нийт: нэг минутаас доош" "Дэвсгэр: нэг минутаас доош" "Нийт: %s" diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml index 13253eb9a6a..506d7bb3ff5 100644 --- a/res/values-mr/strings.xml +++ b/res/values-mr/strings.xml @@ -3099,6 +3099,8 @@ "मागील २४ तासांमधील सिस्टीमचा वापर" "%s साठी सिस्टीमचा वापर" "%s साठी ॲपचा वापर" + "शेवटचे पूर्ण चार्ज झाल्यापासून %s पर्यंतचा सिस्टीम वापर" + "शेवटचे पूर्ण चार्ज झाल्यापासून %s पर्यंतचा अ‍ॅप वापर" "एकूण: एका मिनिटापेक्षा कमी" "बॅकग्राउंड: एका मिनिटापेक्षा कमी" "एकूण: %s" diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml index 43b4549a3cc..776f675deb9 100644 --- a/res/values-ms/strings.xml +++ b/res/values-ms/strings.xml @@ -3099,6 +3099,8 @@ "Penggunaan sistem untuk tempoh 24 jam lalu" "Penggunaan sistem untuk %s" "Penggunaan apl untuk %s" + "Penggunaan sistem sejak cas penuh terakhir hingga %s" + "Penggunaan apl sejak cas penuh terakhir hingga %s" "Jumlah: kurang dari seminit" "Latar: kurang daripada seminit" "Jumlah: %s" diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml index 244cfdf4e28..13a7397b397 100644 --- a/res/values-my/strings.xml +++ b/res/values-my/strings.xml @@ -3099,6 +3099,8 @@ "ပြီးခဲ့သော ၂၄ နာရီအတွင်း စနစ်အသုံးပြုမှု" "%s အတွက် စနစ်အသုံးပြုမှု" "%s အတွက် အက်ပ်အသုံးပြုမှု" + "နောက်ဆုံးအကြိမ် အားအပြည့်သွင်းပြီးချိန်မှစ၍ %s အထိ စနစ်အသုံးပြုမှု" + "နောက်ဆုံးအကြိမ် အားအပြည့်သွင်းပြီးချိန်မှစ၍ %s အထိ အက်ပ်အသုံးပြုမှု" "စုစုပေါင်း- တစ်မိနစ်အောက်" "နောက်ခံအချိန်- တစ်မိနစ်ထက် နည်းသည်" "စုစုပေါင်း- %s" diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index c887cc3d2aa..c90dfafcf48 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -3099,6 +3099,8 @@ "Systembruk de siste 24 timene" "Systembruk for %s" "Appbruk for %s" + "Systembruk siden sist batteriet var fulladet, til %s" + "Appbruk siden sist batteriet var fulladet, til %s" "Totalt: mindre enn ett minutt" "Bakgrunn: mindre enn ett minutt" "Totalt: %s" diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml index e6aa2b0f12e..57e309c509d 100644 --- a/res/values-ne/strings.xml +++ b/res/values-ne/strings.xml @@ -3099,6 +3099,8 @@ "विगत २४ घन्टामा सिस्टमले खपत गरेको ब्याट्री" "%s मा सिस्टमले खपत गरेको ब्याट्री" "%s मा एपले खपत गरेको ब्याट्री" + "पछिल्लो पटक पूरा चार्ज गरेदेखि %s सम्म सिस्टमले खपत गरेको ब्याट्री" + "पछिल्लो पटक पूरा चार्ज गरेदेखि %s सम्म एपहरूले खपत गरेको ब्याट्री" "कुल समय: एक मिनेटभन्दा कम" "ब्याकग्राउन्डमा चलाइएको समय: एक मिनेटभन्दा कम" "कुल समय: %s" diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index f205a986aeb..71ae4a7d09a 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -3099,6 +3099,8 @@ "Systeemgebruik voor afgelopen 24 uur" "Systeemgebruik voor %s" "App-gebruik voor %s" + "Systeemgebruik sinds de laatste keer volledig opladen tot %s" + "App-gebruik sinds de laatste keer volledig opladen tot %s" "Totaal: minder dan een minuut" "Achtergrond: minder dan een minuut" "Totaal: %s" diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml index 7f54cd5c0b5..62f49212cd7 100644 --- a/res/values-or/strings.xml +++ b/res/values-or/strings.xml @@ -3099,6 +3099,8 @@ "ଗତ 24 ଘଣ୍ଟାର ସିଷ୍ଟମ୍ ବ୍ୟବହାର" "%s ପାଇଁ ସିଷ୍ଟମ୍ ବ୍ୟବହାର" "%s ପାଇଁ ଆପ୍ ବ୍ୟବହାର" + "ଗତ ଥର ସମ୍ପୂର୍ଣ୍ଣ ଚାର୍ଜ ହେବା ପରଠାରୁ %s ପର୍ଯ୍ୟନ୍ତ ସିଷ୍ଟମ ବ୍ୟବହାର" + "ଗତ ଥର ସମ୍ପୂର୍ଣ୍ଣ ଚାର୍ଜ ହେବା ପରଠାରୁ %s ପର୍ଯ୍ୟନ୍ତ ଆପ ବ୍ୟବହାର" "ମୋଟ: ଏକ ମିନିଟରୁ କମ୍" "ପୃଷ୍ଠପଟ: ଏକ ମିନିଟରୁ କମ" "ମୋଟ: %s" diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml index 09f547e5213..58ed0cc0df0 100644 --- a/res/values-pa/strings.xml +++ b/res/values-pa/strings.xml @@ -3099,6 +3099,8 @@ "ਪਿਛਲੇ 24 ਘੰਟਿਆਂ ਦੌਰਾਨ ਸਿਸਟਮ ਦੀ ਵਰਤੋਂ" "%s ਦੌਰਾਨ ਸਿਸਟਮ ਦੀ ਵਰਤੋਂ" "%s ਦੌਰਾਨ ਐਪ ਦੀ ਵਰਤੋਂ" + "ਪਿਛਲੀ ਵਾਰ ਪੂਰਾ ਚਾਰਜ ਕਰਨ ਤੋਂ ਲੈ ਕੇ %s ਤੱਕ ਸਿਸਟਮ ਵਰਤੋਂ" + "ਪਿਛਲੀ ਵਾਰ ਪੂਰਾ ਚਾਰਜ ਕਰਨ ਤੋਂ ਲੈ ਕੇ %s ਤੱਕ ਐਪ ਵਰਤੋਂ" "ਕੁੱਲ: ਇੱਕ ਮਿੰਟ ਤੋਂ ਵੀ ਘੱਟ ਸਮਾਂ" "ਬੈਕਗ੍ਰਾਊਂਡ: ਇੱਕ ਮਿੰਟ ਤੋਂ ਵੀ ਘੱਟ ਸਮਾਂ" "ਕੁੱਲ: %s" diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index a5494af5cd4..2f4af8d27c8 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -3175,6 +3175,8 @@ "Wykorzystanie przez system w ciągu ostatnich 24 godzin" "Wykorzystanie przez system w godz. %s" "Wykorzystanie przez aplikacje w godz. %s" + "Wykorzystanie przez system od ostatniego pełnego naładowania do: %s" + "Wykorzystanie przez aplikacje od ostatniego pełnego naładowania do: %s" "Łącznie: mniej niż minuta" "W tle: mniej niż minuta" "Łącznie: %s" diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml index 39ca361c31c..e2434e9bfe3 100644 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@ -3099,6 +3099,8 @@ "Uso do sistema nas últimas 24h" "Uso do sistema entre %s" "Uso do app em %s" + "Uso do sistema desde a última carga completa %s" + "Uso do app desde a última carga completa %s" "Total: menos de um minuto" "Segundo plano: menos de um minuto" "Total: %s" diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index ef60e4e2640..87cd1709804 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -3099,6 +3099,8 @@ "Utilização do sistema durante as últimas 24 h" "Utilização do sistema durante %s" "Utilização da app durante %s" + "Utilização do sistema desde o último carregamento completo a %s" + "Utilização de apps desde o último carregamento completo a %s" "Total: menos de um min" "Em segundo plano: menos de um min" "Total: %s" diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 39ca361c31c..e2434e9bfe3 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -3099,6 +3099,8 @@ "Uso do sistema nas últimas 24h" "Uso do sistema entre %s" "Uso do app em %s" + "Uso do sistema desde a última carga completa %s" + "Uso do app desde a última carga completa %s" "Total: menos de um minuto" "Segundo plano: menos de um minuto" "Total: %s" diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 5a06e51ff42..6f2fad3894c 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -3137,6 +3137,8 @@ "Utilizarea de către sistem în ultimele 24 h" "Utilizarea de către sistem pentru %s" "Utilizarea de către aplicații pentru %s" + "Utilizarea sistemului de la ultima încărcare completă la %s" + "Utilizarea aplicațiilor de la ultima încărcare completă la %s" "Total: mai puțin de un minut" "În fundal: mai puțin de un minut" "Total: %s" diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index ec732969ba0..425a9ffe722 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -3175,6 +3175,8 @@ "Расход системой за 24 часа" "Использование системой в период %s" "Использование приложениями в период %s" + "Расход системой с момента последней полной зарядки до %s" + "Расход приложениями с момента последней полной зарядки до %s" "Всего: меньше минуты" "В фоновом режиме: меньше минуты" "Всего: %s" diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml index 5283cfdb389..e2cd6d378f9 100644 --- a/res/values-si/strings.xml +++ b/res/values-si/strings.xml @@ -3099,6 +3099,8 @@ "පසුගිය පැය 24 සඳහා පද්ධති භාවිතය" "%s සඳහා පද්ධති භාවිතය" "%s සඳහා යෙදුම් භාවිතය" + "%s වෙත අවසන් පූර්ණ ආරෝපණයේ සිට පද්ධති භාවිතය" + "%s වෙත අවසන් පූර්ණ ආරෝපණයේ සිට යෙදුම් භාවිතය" "මුළු: මිනිත්තුවකට වඩා අඩුය" "පසුබිම: මිනිත්තුවකට වඩා අඩුය" "එකතුව: %s" diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 49cfdafd285..ca835c5bc6b 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -3175,6 +3175,8 @@ "Spotreba batérie systémom za posledných 24 h" "Spotreba batérie systémom: %s" "Spotreba batérie aplikáciou: %s" + "Využitie systému od posledného úplného nabitia do %s" + "Využitie aplikácie od posledného úplného nabitia do %s" "Celkove: menej ako minúta" "Na pozadí: menej ako minúta" "Celkove: %s" diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index 456c93a9a65..c5e442399d3 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -3175,6 +3175,8 @@ "Poraba sistema v zadnjih 24 urah" "Poraba sistema za %s" "Poraba aplikacij za %s" + "Poraba sistema od zadnje polne napolnjenosti baterije do: %s" + "Poraba aplikacij od zadnje polne napolnjenosti baterije do: %s" "Skupno: manj kot minuta" "V ozadju: manj kot minuta" "Skupno: %s" diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml index 1de2c9d72d9..54bc030ed92 100644 --- a/res/values-sq/strings.xml +++ b/res/values-sq/strings.xml @@ -3099,6 +3099,8 @@ "Përdorimi i sistemit për 24 orët e fundit" "Përdorimi i sistemit për: %s" "Përdorimi i aplikacionit për: %s" + "Përdorimi i sistemit që nga karikimi i fundit i plotë deri në %s" + "Përdorimi i aplikacionit që nga karikimi i fundit i plotë deri në %s" "Në total: më pak se një minutë" "Në sfond: më pak se një minutë" "Në total: %s" diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index 54a12f9ed7a..6d67375c48f 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -3137,6 +3137,8 @@ "Потрошња од стране система у последња 24 сата" "Потрошња од стране система за: %s" "Потрошња од стране апликација за: %s" + "Коришћење система од последњег потпуног пуњења до %s" + "Коришћење апликација од последњег потпуног пуњења до %s" "Укупно: мање од минут" "Позадина: мање од минут" "Укупно: %s" diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 740b4e2b968..0f97c0cfa92 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -3099,6 +3099,8 @@ "Systemanvändning för de senaste 24 timmarna" "Systemanvändning för %s" "Appanvändning för %s" + "Systemanvändning sedan batteriet senast var fulladdat till %s" + "Appanvändning sedan batteriet senast var fulladdat till %s" "Totalt: mindre än en minut" "I bakgrunden: mindre än en minut" "Totalt: %s" diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml index 8e093a7d57c..b8a1f159737 100644 --- a/res/values-sw/strings.xml +++ b/res/values-sw/strings.xml @@ -3099,6 +3099,8 @@ "Matumizi ya mfumo katika saa 24 zilizopita" "Matumizi ya mfumo kwa %s" "Matumizi ya programu kwa %s" + "Matumizi ya mfumo tangu betri ilipojaa chaji mara ya mwisho hadi %s" + "Matumizi ya programu tangu betri ilipojaa chaji mara ya mwisho hadi %s" "Jumla: chini ya dakika moja" "Chinichini: chini ya dakika moja" "Jumla: %s" diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml index 140101dec31..bf6501c3619 100644 --- a/res/values-ta/strings.xml +++ b/res/values-ta/strings.xml @@ -3099,6 +3099,8 @@ "கடந்த 24 மணிநேரத்திற்கான சிஸ்டம் உபயோகம்" "%sக்கான சிஸ்டம் உபயோகம்" "%sக்கான ஆப்ஸ் உபயோகம்" + "கடைசியாக முழுச் சார்ஜ் செய்யப்பட்டதிலிருந்து %s வரை சிஸ்டத்தின் உபயோகம்" + "கடைசியாக முழுச் சார்ஜ் செய்யப்பட்டதிலிருந்து %s வரை ஆப்ஸின் உபயோகம்" "மொத்தம்: ஒரு நிமிடத்திற்கும் குறைவு" "பின்னணி: ஒரு நிமிடத்திற்கும் குறைவு" "மொத்தம்: %s" diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml index 4b165b84fb4..97b6a38429e 100644 --- a/res/values-te/strings.xml +++ b/res/values-te/strings.xml @@ -3099,6 +3099,8 @@ "గత 24 గంటలకు సిస్టమ్ వినియోగం" "%s కోసం సిస్టమ్ వినియోగం సమాచారం" "%s కోసం యాప్ వినియోగ సమాచారం" + "చివరిసారి ఫుల్ ఛార్జింగ్ చేసినప్పటి నుండి %s వరకు సిస్టమ్ వినియోగం" + "చివరిసారి ఫుల్ ఛార్జింగ్ చేసినప్పటి నుండి %s వరకు యాప్ వినియోగం" "మొత్తం సమయం: ఒక నిమిషం కన్నా తక్కువ" "బ్యాక్‌గ్రౌండ్ సమయం: ఒక నిమిషం కన్నా తక్కువ" "మొత్తం ఉపయోగం: %s" diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml index 49c4b5c3af8..397b7115d23 100644 --- a/res/values-th/strings.xml +++ b/res/values-th/strings.xml @@ -3099,6 +3099,8 @@ "การใช้งานระบบใน 24 ชม. ที่ผ่านมา" "การใช้งานระบบเมื่อ %s" "การใช้งานแอปเมื่อ %s" + "การใช้งานระบบนับตั้งแต่ชาร์จจนเต็มครั้งล่าสุดจนถึง %s" + "การใช้งานแอปนับตั้งแต่ชาร์จจนเต็มครั้งล่าสุดจนถึง %s" "รวม: ไม่ถึง 1 นาที" "การทำงานในเบื้องหลัง: ไม่ถึง 1 นาที" "รวม: %s" diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml index 1bed55272f7..43cfa6555f3 100644 --- a/res/values-tl/strings.xml +++ b/res/values-tl/strings.xml @@ -3099,6 +3099,8 @@ "Paggamit ng system sa huling 24 na oras" "Paggamit ng system sa %s" "Paggamit ng app sa %s" + "Paggamit ng system mula noong huling na-full charge hanggang %s" + "Paggamit ng app mula noong huling na-full charge hanggang %s" "Kabuuan: wala pang isang minuto" "Background: wala pang isang minuto" "Kabuuan: %s" diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 0977db6be80..c529a0dac48 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -3099,6 +3099,8 @@ "Son 24 saatteki sistem kullanımı" "%s için sistem kullanımı" "%s için uygulama kullanımı" + "Son yapılan tam şarjdan bu yana (%s) sistem kullanımı" + "Son yapılan tam şarjdan bu yana (%s) uygulama kullanımı" "Toplam: Bir dakikadan az" "Arka planda: Bir dakikadan az" "Toplam: %s" diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index afe547328cb..8239f5bc142 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -3175,6 +3175,8 @@ "Споживання системою за останні 24 години" "Споживання на роботу системи (%s)" "Споживання на роботу додатків (%s)" + "Використання системою від останнього повного заряджання до %s" + "Використання додатками від останнього повного заряджання до %s" "Усього: менше ніж хвилина" "У фоновому режимі: менше ніж хвилина" "Усього: %s" diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml index cc1147701cf..7ad9c5c3ea8 100644 --- a/res/values-ur/strings.xml +++ b/res/values-ur/strings.xml @@ -3099,6 +3099,8 @@ "گزشتہ 24 گھنٹے میں سسٹم کا استعمال" "‫%s کے لیے سسٹم کا استعمال" "‫%s کے لیے ایپ کا استعمال" + "پچھلی بار مکمل چارج کرنے کے بعد سے %s تک سسٹم کا استعمال" + "پچھلی بار مکمل چارج کرنے کے بعد سے %s تک ایپ کا استعمال" "کُل: ایک منٹ سے کم" "پس منظر: ایک منٹ سے کم" "کُل: %s" diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml index 74526dbbb7c..92f65e17b50 100644 --- a/res/values-uz/strings.xml +++ b/res/values-uz/strings.xml @@ -3099,6 +3099,8 @@ "Oxirgi 24 soat ichida tizimdan foydalanish" "Tizimdan foydalanish: %s" "Ilovalardan foydalanish: %s" + "Toʻliq quvvatlanganidan %s gacha tizimning quvvat sarfi" + "Toʻliq quvvatlanganidan %s gacha ilovalarning quvvat sarfi" "Jami: bir daqiqadan kam" "Orqa fon rejimida: bir daqiqadan kam" "Jami: %s" diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 51e3727c9fd..dc6f9cd4272 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -3099,6 +3099,8 @@ "Mức sử dụng pin của hệ thống trong 24 giờ qua" "Mức sử dụng pin của hệ thống từ %s" "Mức sử dụng pin của ứng dụng từ %s" + "Mức sử dụng pin của hệ thống kể từ lần sạc đầy gần đây nhất đến %s" + "Mức sử dụng pin của ứng dụng kể từ lần sạc đầy gần đây nhất đến %s" "Tổng: chưa đến 1 phút" "Ở chế độ nền: chưa đến 1 phút" "Tổng: %s" diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 2235bcca4aa..8b1c018b764 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -3099,6 +3099,8 @@ "过去 24 小时内的系统耗电量" "%s的系统耗电量" "%s的应用耗电量" + "自上次充满电到%s的系统耗电量" + "自上次充满电到%s的应用耗电量" "总计:不到 1 分钟" "后台:不到 1 分钟" "总计:%s" diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml index 7a683173ef7..0c1e4085cef 100644 --- a/res/values-zh-rHK/strings.xml +++ b/res/values-zh-rHK/strings.xml @@ -3100,6 +3100,8 @@ "系統在過去 24 小時的電量" "%s的系統電池用量" "%s的應用程式電池用量" + "上次充滿電後至%s 的系統使用情況" + "上次充滿電後至%s 的應用程式使用情況" "總計:不足 1 分鐘" "背景:不足 1 分鐘" "總計:%s" diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 197a606b4ff..88c7e5d7f4f 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -3099,6 +3099,8 @@ "系統在過去 24 小時的電池用量" "%s的系統電池用量" "%s的應用程式電池用量" + "上次充飽電後至%s 的系統耗電量" + "上次充飽電後至%s 的應用程式耗電量" "總計:不到 1 分鐘" "背景:不到 1 分鐘" "總計:%s" diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml index 0e79efd13dc..15b75f4c579 100644 --- a/res/values-zu/strings.xml +++ b/res/values-zu/strings.xml @@ -3100,6 +3100,8 @@ "Ukusetshenziswa kwesistimu emahoreni angama-24 adlule" "Ukusetshenziswa kwesistimu nge-%s" "Ukusetshenziswa kwe-app nge-%s" + "Ukusetshenziswa kwesistimu ukusukela ekushajeni okugcwele ukuya ku-%s" + "Ukusetshenziswa kwe-app ukusukela ekushajeni okugcwele ukuya ku-%s" "Ingqikithi: ngaphansi komzuzu" "Ingemuva: ngaphansi komzuzu" "Inani: %s" From 8470122ad1f435a3b913f53a5d2cfab15cf4ca82 Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Fri, 28 Apr 2023 15:52:25 +0800 Subject: [PATCH 08/10] Fix ImeiInfoPreferenceControllerTest For test case updatePreference_simSlotWithoutSim_notSetEnabled, mSecondSimPreference is a mock, instead of check the default value of isEnabled(), verify it's setEnabled() not called. Fix: 279880808 Test: RobolectricTest Change-Id: I72064820754e053def46bdbf10317189c7ac608f --- .../imei/ImeiInfoPreferenceController.java | 1 - .../imei/ImeiInfoPreferenceControllerTest.java | 12 +++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java index 2c7b5f4262d..2045b9661c0 100644 --- a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java +++ b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java @@ -150,7 +150,6 @@ public class ImeiInfoPreferenceController extends BasePreferenceController { @VisibleForTesting protected void updatePreference(Preference preference, int simSlot) { - SubscriptionInfo subInfo = getSubscriptionInfo(simSlot); preference.setTitle(getTitle(simSlot)); preference.setSummary(getSummary()); } diff --git a/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java index 9d700a62476..6699b34ef95 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java @@ -19,11 +19,14 @@ package com.android.settings.deviceinfo.imei; import static android.telephony.TelephonyManager.PHONE_TYPE_CDMA; import static android.telephony.TelephonyManager.PHONE_TYPE_GSM; import static android.telephony.TelephonyManager.PHONE_TYPE_NONE; + import static com.android.settings.core.BasePreferenceController.AVAILABLE; -import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -32,13 +35,16 @@ import android.content.Context; import android.content.res.Resources; import android.os.UserManager; import android.telephony.TelephonyManager; + import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; + import com.android.settings.R; import com.android.settings.deviceinfo.simstatus.SlotSimStatus; + import org.junit.Before; import org.junit.Ignore; import org.junit.Test; @@ -119,13 +125,13 @@ public class ImeiInfoPreferenceControllerTest { } @Test - public void updatePreference_simSlotWithoutSim_shouldBeEnabled() { + public void updatePreference_simSlotWithoutSim_notSetEnabled() { mSecondController = createPreferenceController(null, "imei_info2", mSecondSimPreference, PHONE_TYPE_NONE); mSecondController.updatePreference(mSecondSimPreference, -1); - assertThat(mSecondSimPreference.isEnabled()).isTrue(); + verify(mSecondSimPreference, never()).setEnabled(anyBoolean()); } @Ignore From b613cc4a1755039aa315fae449aa140de3ffb16a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6llner?= Date: Fri, 28 Apr 2023 15:22:43 +0200 Subject: [PATCH 09/10] SettingsRoboTests: fix device state rotation related tests Fixes: 280015539 Test: atest SettingsRoboTests Change-Id: I0a3cc713f8df0477a172665a60551b456691b17c --- ...iceStateAutoRotateDetailsFragmentTest.java | 26 ++++++++++++++++++- .../SmartAutoRotateControllerTest.java | 15 +++++------ ...eviceStateRotationLockSettingsManager.java | 10 +++++++ 3 files changed, 42 insertions(+), 9 deletions(-) diff --git a/tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateDetailsFragmentTest.java b/tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateDetailsFragmentTest.java index c1268b6ce62..e5940b61432 100644 --- a/tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateDetailsFragmentTest.java +++ b/tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateDetailsFragmentTest.java @@ -16,6 +16,8 @@ package com.android.settings.display; +import static android.provider.Settings.Secure.DEVICE_STATE_ROTATION_LOCK_LOCKED; + import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.spy; @@ -39,6 +41,10 @@ import java.util.List; @RunWith(RobolectricTestRunner.class) public class DeviceStateAutoRotateDetailsFragmentTest { + private static final int FOLDED_STATE = 0; + private static final int HALF_FOLDED_STATE = 1; + private static final int UNFOLDED_STATE = 2; + private static final int REAR_DISPLAY_STATE = 3; private final DeviceStateAutoRotateDetailsFragment mFragment = spy(new DeviceStateAutoRotateDetailsFragment()); @@ -51,6 +57,7 @@ public class DeviceStateAutoRotateDetailsFragmentTest { when(mContext.getApplicationContext()).thenReturn(mContext); when(mFragment.getContext()).thenReturn(mContext); when(mFragment.getResources()).thenReturn(mResources); + setUpPostureMappings(); } @Test @@ -67,7 +74,9 @@ public class DeviceStateAutoRotateDetailsFragmentTest { @Test public void createPreferenceControllers_settableDeviceStates_returnsDeviceStateControllers() { - enableDeviceStateSettableRotationStates(new String[]{"0:1", "1:1"}, + enableDeviceStateSettableRotationStates( + new String[]{FOLDED_STATE + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED, + UNFOLDED_STATE + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED}, new String[]{"Folded", "Unfolded"}); List preferenceControllers = @@ -102,4 +111,19 @@ public class DeviceStateAutoRotateDetailsFragmentTest { DeviceStateRotationLockSettingsManager.getInstance(mContext) .resetStateForTesting(mResources); } + + private void setUpPostureMappings() { + when(mResources.getIntArray( + com.android.internal.R.array.config_foldedDeviceStates)).thenReturn( + new int[]{FOLDED_STATE}); + when(mResources.getIntArray( + com.android.internal.R.array.config_halfFoldedDeviceStates)).thenReturn( + new int[]{HALF_FOLDED_STATE}); + when(mResources.getIntArray( + com.android.internal.R.array.config_openDeviceStates)).thenReturn( + new int[]{UNFOLDED_STATE}); + when(mResources.getIntArray( + com.android.internal.R.array.config_rearDisplayDeviceStates)).thenReturn( + new int[]{REAR_DISPLAY_STATE}); + } } diff --git a/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java b/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java index 4fec38b762d..4596364179d 100644 --- a/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java @@ -53,6 +53,7 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; +import org.robolectric.shadow.api.Shadow; @RunWith(RobolectricTestRunner.class) @Config(shadows = ShadowSensorPrivacyManager.class) @@ -171,16 +172,14 @@ public class SmartAutoRotateControllerTest { } private void lockDeviceStateRotation() { - mDeviceStateAutoRotateSettingsManager.updateSetting( - /* deviceState= */0, /* rotationLocked= */ true); - mDeviceStateAutoRotateSettingsManager.updateSetting( - /* deviceState= */1, /* rotationLocked= */ true); + ShadowDeviceStateRotationLockSettingsManager shadowManager = + Shadow.extract(mDeviceStateAutoRotateSettingsManager); + shadowManager.setRotationLockedForAllStates(true); } private void unlockDeviceStateRotation() { - mDeviceStateAutoRotateSettingsManager.updateSetting( - /* deviceState= */0, /* rotationLocked= */ false); - mDeviceStateAutoRotateSettingsManager.updateSetting( - /* deviceState= */1, /* rotationLocked= */ true); + ShadowDeviceStateRotationLockSettingsManager shadowManager = + Shadow.extract(mDeviceStateAutoRotateSettingsManager); + shadowManager.setRotationLockedForAllStates(false); } } diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDeviceStateRotationLockSettingsManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDeviceStateRotationLockSettingsManager.java index 72df3cc94b3..ed266e3b23e 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDeviceStateRotationLockSettingsManager.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDeviceStateRotationLockSettingsManager.java @@ -27,6 +27,7 @@ import org.robolectric.annotation.Implements; public class ShadowDeviceStateRotationLockSettingsManager { private static boolean sDeviceStateRotationLockEnabled; + private boolean mIsRotationLockedForAllStates; @Implementation public static boolean isDeviceStateRotationLockEnabled(Context context) { @@ -36,4 +37,13 @@ public class ShadowDeviceStateRotationLockSettingsManager { public static void setDeviceStateRotationLockEnabled(boolean enabled) { sDeviceStateRotationLockEnabled = enabled; } + + @Implementation + public boolean isRotationLockedForAllStates() { + return mIsRotationLockedForAllStates; + } + + public void setRotationLockedForAllStates(boolean value) { + mIsRotationLockedForAllStates = value; + } } From 75f566bce92af20ac3f370257d599ae871b09fd8 Mon Sep 17 00:00:00 2001 From: Julia Tuttle Date: Thu, 27 Apr 2023 15:32:09 -0400 Subject: [PATCH 10/10] Fix a couple compiler warnings in Settings Bug: 277938609 Test: builds Change-Id: Ib5e236220dfcfddec60c9277d06ffbde9645bb73 --- .../settings/spa/core/instrumentation/SpaLogProvider.kt | 4 ++-- .../android/settings/spa/network/AirplaneModePreference.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt b/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt index 31d5797bf9a..600a2e64a68 100644 --- a/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt +++ b/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt @@ -123,8 +123,8 @@ class SpaLogData(val id: String, val event: LogEvent, return ElapsedTimeUtils.getElapsedTime(System.currentTimeMillis()) } - //TODO(b/253979024): Will be implemented in subsequent CLs. - private fun getPageIdByEntryId(id: String): String { + //TODO(b/253979024): Will be implemented in subsequent CLs. Remove @Suppress when done. + private fun getPageIdByEntryId(@Suppress("UNUSED_PARAMETER") id: String): String { return "" } } diff --git a/src/com/android/settings/spa/network/AirplaneModePreference.kt b/src/com/android/settings/spa/network/AirplaneModePreference.kt index 4af32211829..462c1216ef9 100644 --- a/src/com/android/settings/spa/network/AirplaneModePreference.kt +++ b/src/com/android/settings/spa/network/AirplaneModePreference.kt @@ -52,7 +52,7 @@ fun AirplaneModePreference() { } private class AirplaneModeController(private val context: Context) : OnAirplaneModeChangedListener { - private var airplaneModeEnabler = AirplaneModeEnabler(context, this)!! + private var airplaneModeEnabler = AirplaneModeEnabler(context, this) private val _airplaneModeState = MutableLiveData() val airplaneModeState: LiveData get() = _airplaneModeState