Seperate weather/date visibility methods

Bug: 274631066
Test: Manually checked visibility behavior unchanged
Change-Id: I3a0dd8eb2635fafdb229d4f42fe8313c96a8bd29
This commit is contained in:
Hawkwood Glazier
2023-03-30 11:23:17 +00:00
parent 45e2e3cd88
commit 330d1aeda6
2 changed files with 44 additions and 10 deletions

View File

@@ -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);
});
}
}

View File

@@ -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);
@@ -366,6 +372,28 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase {
assertEquals(View.VISIBLE, mFakeWeatherView.getVisibility());
}
@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);