summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hawkwood Glazier <jglazier@google.com> 2023-03-30 11:23:17 +0000
committer Hawkwood Glazier <jglazier@google.com> 2023-04-10 21:01:34 +0000
commit330d1aeda613b9d2a7ed26c0a4c86ffc69ede6d5 (patch)
tree501e906bfbf0c37c7ed93856e77abdf5c539203c
parent45e2e3cd88f293c9654c45a1f905db6493f794de (diff)
Seperate weather/date visibility methods
Bug: 274631066 Test: Manually checked visibility behavior unchanged Change-Id: I3a0dd8eb2635fafdb229d4f42fe8313c96a8bd29
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java26
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java28
2 files changed, 44 insertions, 10 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java
index 9290220b8698..25d17928351a 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java
@@ -109,7 +109,7 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
private final ContentObserver mShowWeatherObserver = new ContentObserver(null) {
@Override
public void onChange(boolean change) {
- setDateWeatherVisibility();
+ setWeatherVisibility();
}
};
@@ -236,6 +236,7 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
updateDoubleLineClock();
setDateWeatherVisibility();
+ setWeatherVisibility();
mKeyguardUnlockAnimationController.addKeyguardUnlockAnimationListener(
mKeyguardUnlockAnimationListener);
@@ -266,6 +267,8 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
mStatusArea.removeView(mDateWeatherView);
addDateWeatherView(index);
}
+ setDateWeatherVisibility();
+ setWeatherVisibility();
}
int index = mStatusArea.indexOfChild(mSmartspaceView);
if (index >= 0) {
@@ -487,16 +490,19 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
}
private void setDateWeatherVisibility() {
- if (mDateWeatherView != null || mWeatherView != null) {
+ if (mDateWeatherView != null) {
mUiExecutor.execute(() -> {
- if (mDateWeatherView != null) {
- mDateWeatherView.setVisibility(
- clockHasCustomWeatherDataDisplay() ? View.GONE : View.VISIBLE);
- }
- if (mWeatherView != null) {
- mWeatherView.setVisibility(
- mSmartspaceController.isWeatherEnabled() ? View.VISIBLE : View.GONE);
- }
+ mDateWeatherView.setVisibility(
+ clockHasCustomWeatherDataDisplay() ? View.GONE : View.VISIBLE);
+ });
+ }
+ }
+
+ private void setWeatherVisibility() {
+ if (mWeatherView != null) {
+ mUiExecutor.execute(() -> {
+ mWeatherView.setVisibility(
+ mSmartspaceController.isWeatherEnabled() ? View.VISIBLE : View.GONE);
});
}
}
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java
index 2f627cb5d9d7..b9f8dd945293 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java
@@ -48,8 +48,10 @@ import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
import com.android.systemui.plugins.ClockAnimations;
import com.android.systemui.plugins.ClockController;
import com.android.systemui.plugins.ClockEvents;
+import com.android.systemui.plugins.ClockFaceConfig;
import com.android.systemui.plugins.ClockFaceController;
import com.android.systemui.plugins.ClockFaceEvents;
+import com.android.systemui.plugins.ClockTickRate;
import com.android.systemui.plugins.log.LogBuffer;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.shared.clocks.AnimatableClockView;
@@ -185,6 +187,10 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase {
when(mClockController.getAnimations()).thenReturn(mClockAnimations);
when(mClockRegistry.createCurrentClock()).thenReturn(mClockController);
when(mClockEventController.getClock()).thenReturn(mClockController);
+ when(mSmallClockController.getConfig())
+ .thenReturn(new ClockFaceConfig(ClockTickRate.PER_MINUTE, false));
+ when(mLargeClockController.getConfig())
+ .thenReturn(new ClockFaceConfig(ClockTickRate.PER_MINUTE, false));
mSliceView = new View(getContext());
when(mView.findViewById(R.id.keyguard_slice_view)).thenReturn(mSliceView);
@@ -367,6 +373,28 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase {
}
@Test
+ public void testChangeClockDateWeatherEnabled_SetsDateWeatherViewVisibility() {
+ ArgumentCaptor<ClockRegistry.ClockChangeListener> listenerArgumentCaptor =
+ ArgumentCaptor.forClass(ClockRegistry.ClockChangeListener.class);
+ when(mSmartspaceController.isEnabled()).thenReturn(true);
+ when(mSmartspaceController.isDateWeatherDecoupled()).thenReturn(true);
+ when(mSmartspaceController.isWeatherEnabled()).thenReturn(true);
+ mController.init();
+ mExecutor.runAllReady();
+ assertEquals(View.VISIBLE, mFakeDateView.getVisibility());
+
+ when(mSmallClockController.getConfig())
+ .thenReturn(new ClockFaceConfig(ClockTickRate.PER_MINUTE, true));
+ when(mLargeClockController.getConfig())
+ .thenReturn(new ClockFaceConfig(ClockTickRate.PER_MINUTE, true));
+ verify(mClockRegistry).registerClockChangeListener(listenerArgumentCaptor.capture());
+ listenerArgumentCaptor.getValue().onCurrentClockChanged();
+
+ mExecutor.runAllReady();
+ assertEquals(View.GONE, mFakeDateView.getVisibility());
+ }
+
+ @Test
public void testGetClock_nullClock_returnsNull() {
when(mClockEventController.getClock()).thenReturn(null);
assertNull(mController.getClock());