From af2deeb84f1798e36a8a0e4f89645fdc1bc864b6 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Tue, 5 Oct 2021 01:34:16 +0000 Subject: [PATCH 1/6] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: Ib1326efcb60599fed6f7c9841fab7f259c57c0c3 --- packages/SettingsLib/res/values-eu/strings.xml | 2 +- packages/SettingsLib/res/values-ky/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml index a7f5eac5542ba..de974371ee863 100644 --- a/packages/SettingsLib/res/values-eu/strings.xml +++ b/packages/SettingsLib/res/values-eu/strings.xml @@ -304,7 +304,7 @@ "USB bidezko arazketa garapen-xedeetarako soilik dago diseinatuta. Erabil ezazu ordenagailuaren eta gailuaren artean datuak kopiatzeko, aplikazioak gailuan jakinarazi gabe instalatzeko eta erregistro-datuak irakurtzeko." "Hari gabeko arazketa baimendu nahi duzu?" "Hari gabeko arazketa garapen-xedeetarako soilik dago diseinatuta. Erabil ezazu ordenagailuaren eta gailuaren artean datuak kopiatzeko, gailuan aplikazioak jakinarazi gabe instalatzeko eta erregistroko datuak irakurtzeko." - "Aurretik baimendutako ordenagailu guztiei USB bidezko arazketarako sarbidea baliogabetu nahi diezu?" + "Aurretik baimendutako ordenagailu guztiei USB bidezko arazketarako sarbidea kendu nahi diezu?" "Baimendu garapenerako ezarpenak?" "Ezarpen hauek garapen-xedeetarako pentsatu dira soilik. Baliteke ezarpenen eraginez gailua matxuratzea edo funtzionamendu okerra izatea." "Egiaztatu USB bidezko aplik." diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml index 7387985cf4578..29510a7fc4225 100644 --- a/packages/SettingsLib/res/values-ky/strings.xml +++ b/packages/SettingsLib/res/values-ky/strings.xml @@ -305,7 +305,7 @@ "Мүчүлүштүктөрдү Wi-Fi аркылуу оңдоого уруксат бересизби?" "Мүчүлүштүктөрдү Wi-Fi аркылуу аныктоо – өндүрүү максатында гана түзүлгөн. Аны компьютериңиз менен түзмөгүңүздүн ортосунда маалыматты алмашуу, колдонмолорду түзмөгүңүзгө эскертүүсүз орнотуу жана маалыматтар таржымалын окуу үчүн колдонсоңуз болот." "Сиз мурун USB жөндөөлөрүнө уруксат берген бардык компүтерлердин жеткиси жокко чыгарылсынбы?" - "Жөндөөлөрдү өзгөртүү" + "Параметрлерди өзгөртүү" "Бул орнотуулар өндүрүүчүлөр үчүн гана берилген. Булар түзмөгүңүздүн колдонмолорун бузулушуна же туура эмес иштешине алып келиши мүмкүн." "Орнотулуучу колдонмону текшерүү" "ADB/ADT аркылуу орнотулган колдонмолордун коопсуздугу текшерилет." From 08f91a61d094f424c03266d6049ffe4a3f6f2a1b Mon Sep 17 00:00:00 2001 From: Soonil Nagarkar Date: Tue, 5 Oct 2021 11:31:13 -0700 Subject: [PATCH 2/6] Fix bug unregistering stationary listener Bug: 196997374 Test: manual + presubmit Change-Id: I1b2a9c7d36c23db0814d5d8a69726c7763facf5d --- .../StationaryThrottlingLocationProvider.java | 1 + ...tionaryThrottlingLocationProviderTest.java | 25 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/location/provider/StationaryThrottlingLocationProvider.java b/services/core/java/com/android/server/location/provider/StationaryThrottlingLocationProvider.java index ad87c45308f81..cc51cea05160b 100644 --- a/services/core/java/com/android/server/location/provider/StationaryThrottlingLocationProvider.java +++ b/services/core/java/com/android/server/location/provider/StationaryThrottlingLocationProvider.java @@ -154,6 +154,7 @@ public final class StationaryThrottlingLocationProvider extends DelegateLocation mDeviceStationaryHelper.removeListener(this); mDeviceStationary = false; mDeviceStationaryRealtimeMs = Long.MIN_VALUE; + onThrottlingChangedLocked(false); } } } diff --git a/services/tests/mockingservicestests/src/com/android/server/location/provider/StationaryThrottlingLocationProviderTest.java b/services/tests/mockingservicestests/src/com/android/server/location/provider/StationaryThrottlingLocationProviderTest.java index 63996f0e021c9..4d6f49e5d2231 100644 --- a/services/tests/mockingservicestests/src/com/android/server/location/provider/StationaryThrottlingLocationProviderTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/location/provider/StationaryThrottlingLocationProviderTest.java @@ -90,7 +90,7 @@ public class StationaryThrottlingLocationProviderTest { } @Test - public void testThrottle() { + public void testThrottle_stationaryExit() { ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(50).build(); mProvider.getController().setRequest(request); @@ -112,6 +112,29 @@ public class StationaryThrottlingLocationProviderTest { verify(mListener, after(75).times(3)).onReportLocation(any(LocationResult.class)); } + @Test + public void testThrottle_idleExit() { + ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(50).build(); + + mProvider.getController().setRequest(request); + verify(mDelegate).onSetRequest(request); + + mDelegateProvider.reportLocation(createLocationResult("test_provider", mRandom)); + verify(mListener, times(1)).onReportLocation(any(LocationResult.class)); + + mInjector.getDeviceIdleHelper().setIdle(true); + verify(mDelegate, never()).onSetRequest(ProviderRequest.EMPTY_REQUEST); + + mInjector.getDeviceStationaryHelper().setStationary(true); + verify(mDelegate).onSetRequest(ProviderRequest.EMPTY_REQUEST); + verify(mListener, timeout(75).times(2)).onReportLocation(any(LocationResult.class)); + verify(mListener, timeout(75).times(3)).onReportLocation(any(LocationResult.class)); + + mInjector.getDeviceIdleHelper().setIdle(false); + verify(mDelegate, times(2)).onSetRequest(request); + verify(mListener, after(75).times(3)).onReportLocation(any(LocationResult.class)); + } + @Test public void testThrottle_NoInitialLocation() { ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(50).build(); From bdfe493f43bf5e62e1068cae2c97a8ac0ae94ae5 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Wed, 6 Oct 2021 06:22:36 +0000 Subject: [PATCH 3/6] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I253214683e8d2ab78c6103322959a13cd66e77a1 --- core/res/res/values-bg/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index fb9c88654981d..0baf2f1f09697 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -2097,7 +2097,7 @@ "Това известие бе класирано по-високо. Докоснете, за да изпратите отзиви." "Това известие бе класирано по-ниско. Докоснете, за да изпратите отзиви." "Подобрени известия" - "Предложените действия и отговори вече се предоставят от функцията за подобрени известия. Адаптивните известия за Android вече не се поддържат." + "Предложените действия и отговори вече се предоставят от функцията за подо­брени известия. Адаптивните известия за Android вече не се поддържат." "OK" "Изключване" "Научете повече" From cfaf33a9ff98cd22d6187a6c587150270b33ef7f Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Wed, 6 Oct 2021 10:24:45 +0000 Subject: [PATCH 4/6] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I0138af073e3df4dfc6bf030ae9924eb93d6f8822 --- packages/SystemUI/res/values-es/strings.xml | 4 ++-- packages/SystemUI/res/values-nb/strings.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index b2a414fee9b2c..b7f23d6d6e6ac 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -124,8 +124,8 @@ "No se han podido obtener los permisos" "No se ha podido empezar a grabar la pantalla" "Opciones de transferencia de archivos por USB" - "Activar como reproductor de medios (MTP)" - "Activar como cámara (PTP)" + "Montar como reproductor de medios (MTP)" + "Montar como cámara (PTP)" "Instalar Android File Transfer para Mac" "Atrás" "Inicio" diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml index 4b878bc63def2..4f40c5738c5ce 100644 --- a/packages/SystemUI/res/values-nb/strings.xml +++ b/packages/SystemUI/res/values-nb/strings.xml @@ -602,8 +602,8 @@ "Automatisk medieteksting" "Verktøytips for teksting" "Overlegg med teksting" - "slå på" - "slå av" + "aktivér" + "deaktiver" "Bytt enhet for lydutgang" "Appen er festet" "Gjør at den vises til du løsner den. Trykk og hold inne Tilbake og Oversikt for å løsne den." From 3fac0854c27c7d2feb23c1b99169e0a952088547 Mon Sep 17 00:00:00 2001 From: Beverly Date: Tue, 5 Oct 2021 20:05:31 -0400 Subject: [PATCH 5/6] Update dozing state on clock view attached Else, the clock may animate in at the wrong font weight. Test: atest AnimatableClockControllerTest Test: manually swipe away all notifications on LS, see the large clock animate in at full font weight Fixes: 201615075 Change-Id: I139e5a5c88551f23f99decff3e7ffc8bdaa5bba4 --- .../keyguard/AnimatableClockController.java | 30 ++-- .../KeyguardClockSwitchController.java | 13 +- .../KeyguardClockSwitchControllerTest.java | 3 +- .../AnimatableClockControllerTest.java | 144 ++++++++++++++++++ 4 files changed, 177 insertions(+), 13 deletions(-) create mode 100644 packages/SystemUI/tests/src/com/android/systemui/keyguard/AnimatableClockControllerTest.java diff --git a/packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java b/packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java index efcf40a662582..a383cab94c366 100644 --- a/packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java +++ b/packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java @@ -20,12 +20,16 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.res.Resources; import android.graphics.Color; import android.icu.text.NumberFormat; +import androidx.annotation.VisibleForTesting; + import com.android.settingslib.Utils; import com.android.systemui.R; import com.android.systemui.broadcast.BroadcastDispatcher; +import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.phone.KeyguardBypassController; import com.android.systemui.statusbar.policy.BatteryController; @@ -67,20 +71,20 @@ public class AnimatableClockController extends ViewController mAttachCaptor = + ArgumentCaptor.forClass(View.OnAttachStateChangeListener.class); + private View.OnAttachStateChangeListener mAttachListener; + + @Captor private ArgumentCaptor mStatusBarStateCaptor; + private StatusBarStateController.StateListener mStatusBarStateCallback; + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + mStaticMockSession = mockitoSession() + .mockStatic(Utils.class) + .strictness(Strictness.LENIENT) // it's ok if mocked classes aren't used + .startMocking(); + when(Utils.getColorAttrDefaultColor(anyObject(), anyInt())).thenReturn(0); + + mAnimatableClockController = new AnimatableClockController( + mClockView, + mStatusBarStateController, + mBroadcastDispatcher, + mBatteryController, + mKeyguardUpdateMonitor, + mBypassController, + mResources + ); + mAnimatableClockController.init(); + captureAttachListener(); + } + + @After + public void tearDown() { + mStaticMockSession.finishMocking(); + } + + @Test + public void testOnAttachedUpdatesDozeStateToTrue() { + // GIVEN dozing + when(mStatusBarStateController.isDozing()).thenReturn(true); + when(mStatusBarStateController.getDozeAmount()).thenReturn(1f); + + // WHEN the clock view gets attached + mAttachListener.onViewAttachedToWindow(mClockView); + + // THEN the clock controller updated its dozing state to true + assertTrue(mAnimatableClockController.isDozing()); + } + + @Test + public void testOnAttachedUpdatesDozeStateToFalse() { + // GIVEN not dozing + when(mStatusBarStateController.isDozing()).thenReturn(false); + when(mStatusBarStateController.getDozeAmount()).thenReturn(0f); + + // WHEN the clock view gets attached + mAttachListener.onViewAttachedToWindow(mClockView); + + // THEN the clock controller updated its dozing state to false + assertFalse(mAnimatableClockController.isDozing()); + } + + private void captureAttachListener() { + verify(mClockView).addOnAttachStateChangeListener(mAttachCaptor.capture()); + mAttachListener = mAttachCaptor.getValue(); + } +} From 5b26a98abac9c92bc6c428a706f9416c92dbb186 Mon Sep 17 00:00:00 2001 From: Soonil Nagarkar Date: Wed, 6 Oct 2021 10:09:39 -0700 Subject: [PATCH 6/6] Fix bug checking incorrect AppOp Bug: 199684120 Test: manual Change-Id: I3afe345537f2fe8141e781886a4352dd1a472d1b --- .../server/location/injector/LocationPermissionsHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/location/injector/LocationPermissionsHelper.java b/services/core/java/com/android/server/location/injector/LocationPermissionsHelper.java index a47c48fa16d47..2df21017156da 100644 --- a/services/core/java/com/android/server/location/injector/LocationPermissionsHelper.java +++ b/services/core/java/com/android/server/location/injector/LocationPermissionsHelper.java @@ -100,7 +100,7 @@ public abstract class LocationPermissionsHelper { return false; } - return mAppOps.checkOpNoThrow(permissionLevel, identity); + return mAppOps.checkOpNoThrow(LocationPermissions.asAppOp(permissionLevel), identity); } protected abstract boolean hasPermission(String permission, CallerIdentity callerIdentity);