diff --git a/packages/SystemUI/src/com/android/keyguard/clock/ClockManager.java b/packages/SystemUI/src/com/android/keyguard/clock/ClockManager.java index 9e2464ea4fbb7..25b6bd635e101 100644 --- a/packages/SystemUI/src/com/android/keyguard/clock/ClockManager.java +++ b/packages/SystemUI/src/com/android/keyguard/clock/ClockManager.java @@ -243,11 +243,12 @@ public final class ClockManager { mPreviewClocks.reloadCurrentClock(); mListeners.forEach((listener, clocks) -> { clocks.reloadCurrentClock(); - ClockPlugin clock = clocks.getCurrentClock(); - if (clock instanceof DefaultClockController) { - listener.onClockChanged(null); + final ClockPlugin clock = clocks.getCurrentClock(); + if (Looper.myLooper() == Looper.getMainLooper()) { + listener.onClockChanged(clock instanceof DefaultClockController ? null : clock); } else { - listener.onClockChanged(clock); + mMainHandler.post(() -> listener.onClockChanged( + clock instanceof DefaultClockController ? null : clock)); } }); }