Optionally hide default keygaurd weather view

Bug: 274631066
Test: Manually checked relevant views on device
Change-Id: I8bbcd1f15d3c01a2f02d93dc96c4cd6d7afaaf60
This commit is contained in:
Hawkwood Glazier
2023-03-21 18:22:33 +00:00
parent 130d6b7213
commit f22fbb7e83
2 changed files with 31 additions and 7 deletions

View File

@@ -154,6 +154,10 @@ interface ClockFaceEvents {
val tickRate: ClockTickRate
get() = ClockTickRate.PER_MINUTE
/** Call to check whether the clock consumes weather data */
val hasCustomWeatherDataDisplay: Boolean
get() = false
/** Region Darkness specific to the clock face */
fun onRegionDarknessChanged(isDark: Boolean) {}

View File

@@ -110,7 +110,7 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
private final ContentObserver mShowWeatherObserver = new ContentObserver(null) {
@Override
public void onChange(boolean change) {
setWeatherVisibility();
setDateWeatherVisibility();
}
};
@@ -236,7 +236,7 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
);
updateDoubleLineClock();
setWeatherVisibility();
setDateWeatherVisibility();
mKeyguardUnlockAnimationController.addKeyguardUnlockAnimationListener(
mKeyguardUnlockAnimationListener);
@@ -337,6 +337,7 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
}
mCurrentClockSize = clockSize;
setDateWeatherVisibility();
ClockController clock = getClock();
boolean appeared = mView.switchToClock(clockSize, animate);
@@ -457,6 +458,7 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
mClockEventController.setClock(clock);
mView.setClock(clock, mStatusBarStateController.getState());
setDateWeatherVisibility();
}
@Nullable
@@ -478,11 +480,18 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
}
}
private void setWeatherVisibility() {
if (mWeatherView != null) {
mUiExecutor.execute(
() -> mWeatherView.setVisibility(
mSmartspaceController.isWeatherEnabled() ? View.VISIBLE : View.GONE));
private void setDateWeatherVisibility() {
if (mDateWeatherView != null || mWeatherView != null) {
mUiExecutor.execute(() -> {
if (mDateWeatherView != null) {
mDateWeatherView.setVisibility(
clockHasCustomWeatherDataDisplay() ? View.GONE : View.VISIBLE);
}
if (mWeatherView != null) {
mWeatherView.setVisibility(
mSmartspaceController.isWeatherEnabled() ? View.VISIBLE : View.GONE);
}
});
}
}
@@ -511,6 +520,17 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
}
}
/** Returns true if the clock handles the display of weather information */
private boolean clockHasCustomWeatherDataDisplay() {
ClockController clock = getClock();
if (clock == null) {
return false;
}
return ((mCurrentClockSize == LARGE) ? clock.getLargeClock() : clock.getSmallClock())
.getEvents().getHasCustomWeatherDataDisplay();
}
/** Gets the animations for the current clock. */
@Nullable
public ClockAnimations getClockAnimations() {