Loading packages/SystemUI/src/com/android/keyguard/ClockEventController.kt +11 −5 Original line number Original line Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.view.ViewTreeObserver.OnGlobalLayoutListener import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle import androidx.lifecycle.repeatOnLifecycle import androidx.lifecycle.repeatOnLifecycle import com.android.app.tracing.coroutines.launchTraced as launch import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.customization.R import com.android.systemui.customization.R import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Background Loading Loading @@ -62,6 +63,7 @@ import com.android.systemui.plugins.clocks.WeatherData import com.android.systemui.plugins.clocks.ZenData import com.android.systemui.plugins.clocks.ZenData import com.android.systemui.plugins.clocks.ZenData.ZenMode import com.android.systemui.plugins.clocks.ZenData.ZenMode import com.android.systemui.res.R as SysuiR import com.android.systemui.res.R as SysuiR import com.android.systemui.settings.UserTracker import com.android.systemui.shared.regionsampling.RegionSampler import com.android.systemui.shared.regionsampling.RegionSampler import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback Loading @@ -80,7 +82,6 @@ import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.merge import kotlinx.coroutines.flow.merge import com.android.app.tracing.coroutines.launchTraced as launch /** /** * Controller for a Clock provided by the registry and used on the keyguard. Instantiated by * Controller for a Clock provided by the registry and used on the keyguard. Instantiated by Loading @@ -103,6 +104,7 @@ constructor( private val featureFlags: FeatureFlagsClassic, private val featureFlags: FeatureFlagsClassic, private val zenModeController: ZenModeController, private val zenModeController: ZenModeController, private val zenModeInteractor: ZenModeInteractor, private val zenModeInteractor: ZenModeInteractor, private val userTracker: UserTracker, ) { ) { var loggers = var loggers = listOf( listOf( Loading @@ -120,6 +122,10 @@ constructor( connectClock(value) connectClock(value) } } private fun is24HourFormat(userId: Int? = null): Boolean { return DateFormat.is24HourFormat(context, userId ?: userTracker.userId) } private fun disconnectClock(clock: ClockController?) { private fun disconnectClock(clock: ClockController?) { if (clock == null) { if (clock == null) { return return Loading Loading @@ -186,7 +192,7 @@ constructor( var pastVisibility: Int? = null var pastVisibility: Int? = null override fun onViewAttachedToWindow(view: View) { override fun onViewAttachedToWindow(view: View) { clock.events.onTimeFormatChanged(DateFormat.is24HourFormat(context)) clock.events.onTimeFormatChanged(is24HourFormat()) // Match the asing for view.parent's layout classes. // Match the asing for view.parent's layout classes. smallClockFrame = smallClockFrame = (view.parent as ViewGroup)?.also { frame -> (view.parent as ViewGroup)?.also { frame -> Loading Loading @@ -218,7 +224,7 @@ constructor( largeClockOnAttachStateChangeListener = largeClockOnAttachStateChangeListener = object : OnAttachStateChangeListener { object : OnAttachStateChangeListener { override fun onViewAttachedToWindow(p0: View) { override fun onViewAttachedToWindow(p0: View) { clock.events.onTimeFormatChanged(DateFormat.is24HourFormat(context)) clock.events.onTimeFormatChanged(is24HourFormat()) } } override fun onViewDetachedFromWindow(p0: View) {} override fun onViewDetachedFromWindow(p0: View) {} Loading Loading @@ -358,7 +364,7 @@ constructor( } } override fun onTimeFormatChanged(timeFormat: String?) { override fun onTimeFormatChanged(timeFormat: String?) { clock?.run { events.onTimeFormatChanged(DateFormat.is24HourFormat(context)) } clock?.run { events.onTimeFormatChanged(is24HourFormat()) } } } override fun onTimeZoneChanged(timeZone: TimeZone) { override fun onTimeZoneChanged(timeZone: TimeZone) { Loading @@ -366,7 +372,7 @@ constructor( } } override fun onUserSwitchComplete(userId: Int) { override fun onUserSwitchComplete(userId: Int) { clock?.run { events.onTimeFormatChanged(DateFormat.is24HourFormat(context)) } clock?.run { events.onTimeFormatChanged(is24HourFormat(userId)) } zenModeCallback.onNextAlarmChanged() zenModeCallback.onNextAlarmChanged() } } Loading packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt +4 −0 Original line number Original line Diff line number Diff line Loading @@ -56,6 +56,7 @@ import com.android.systemui.plugins.clocks.ThemeConfig import com.android.systemui.plugins.clocks.ZenData import com.android.systemui.plugins.clocks.ZenData import com.android.systemui.plugins.clocks.ZenData.ZenMode import com.android.systemui.plugins.clocks.ZenData.ZenMode import com.android.systemui.res.R import com.android.systemui.res.R import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.ZenModeController import com.android.systemui.statusbar.policy.ZenModeController Loading Loading @@ -128,6 +129,7 @@ class ClockEventControllerTest : SysuiTestCase() { @Mock private lateinit var largeClockEvents: ClockFaceEvents @Mock private lateinit var largeClockEvents: ClockFaceEvents @Mock private lateinit var parentView: View @Mock private lateinit var parentView: View @Mock private lateinit var keyguardTransitionInteractor: KeyguardTransitionInteractor @Mock private lateinit var keyguardTransitionInteractor: KeyguardTransitionInteractor @Mock private lateinit var userTracker: UserTracker @Mock private lateinit var zenModeController: ZenModeController @Mock private lateinit var zenModeController: ZenModeController private var zenModeControllerCallback: ZenModeController.Callback? = null private var zenModeControllerCallback: ZenModeController.Callback? = null Loading @@ -153,6 +155,7 @@ class ClockEventControllerTest : SysuiTestCase() { .thenReturn(ClockFaceConfig(tickRate = ClockTickRate.PER_MINUTE)) .thenReturn(ClockFaceConfig(tickRate = ClockTickRate.PER_MINUTE)) whenever(smallClockController.theme).thenReturn(ThemeConfig(true, null)) whenever(smallClockController.theme).thenReturn(ThemeConfig(true, null)) whenever(largeClockController.theme).thenReturn(ThemeConfig(true, null)) whenever(largeClockController.theme).thenReturn(ThemeConfig(true, null)) whenever(userTracker.userId).thenReturn(1) zenModeRepository.addMode(MANUAL_DND_INACTIVE) zenModeRepository.addMode(MANUAL_DND_INACTIVE) Loading @@ -177,6 +180,7 @@ class ClockEventControllerTest : SysuiTestCase() { withDeps.featureFlags, withDeps.featureFlags, zenModeController, zenModeController, kosmos.zenModeInteractor, kosmos.zenModeInteractor, userTracker, ) ) underTest.clock = clock underTest.clock = clock Loading Loading
packages/SystemUI/src/com/android/keyguard/ClockEventController.kt +11 −5 Original line number Original line Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.view.ViewTreeObserver.OnGlobalLayoutListener import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle import androidx.lifecycle.repeatOnLifecycle import androidx.lifecycle.repeatOnLifecycle import com.android.app.tracing.coroutines.launchTraced as launch import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.customization.R import com.android.systemui.customization.R import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Background Loading Loading @@ -62,6 +63,7 @@ import com.android.systemui.plugins.clocks.WeatherData import com.android.systemui.plugins.clocks.ZenData import com.android.systemui.plugins.clocks.ZenData import com.android.systemui.plugins.clocks.ZenData.ZenMode import com.android.systemui.plugins.clocks.ZenData.ZenMode import com.android.systemui.res.R as SysuiR import com.android.systemui.res.R as SysuiR import com.android.systemui.settings.UserTracker import com.android.systemui.shared.regionsampling.RegionSampler import com.android.systemui.shared.regionsampling.RegionSampler import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback Loading @@ -80,7 +82,6 @@ import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.merge import kotlinx.coroutines.flow.merge import com.android.app.tracing.coroutines.launchTraced as launch /** /** * Controller for a Clock provided by the registry and used on the keyguard. Instantiated by * Controller for a Clock provided by the registry and used on the keyguard. Instantiated by Loading @@ -103,6 +104,7 @@ constructor( private val featureFlags: FeatureFlagsClassic, private val featureFlags: FeatureFlagsClassic, private val zenModeController: ZenModeController, private val zenModeController: ZenModeController, private val zenModeInteractor: ZenModeInteractor, private val zenModeInteractor: ZenModeInteractor, private val userTracker: UserTracker, ) { ) { var loggers = var loggers = listOf( listOf( Loading @@ -120,6 +122,10 @@ constructor( connectClock(value) connectClock(value) } } private fun is24HourFormat(userId: Int? = null): Boolean { return DateFormat.is24HourFormat(context, userId ?: userTracker.userId) } private fun disconnectClock(clock: ClockController?) { private fun disconnectClock(clock: ClockController?) { if (clock == null) { if (clock == null) { return return Loading Loading @@ -186,7 +192,7 @@ constructor( var pastVisibility: Int? = null var pastVisibility: Int? = null override fun onViewAttachedToWindow(view: View) { override fun onViewAttachedToWindow(view: View) { clock.events.onTimeFormatChanged(DateFormat.is24HourFormat(context)) clock.events.onTimeFormatChanged(is24HourFormat()) // Match the asing for view.parent's layout classes. // Match the asing for view.parent's layout classes. smallClockFrame = smallClockFrame = (view.parent as ViewGroup)?.also { frame -> (view.parent as ViewGroup)?.also { frame -> Loading Loading @@ -218,7 +224,7 @@ constructor( largeClockOnAttachStateChangeListener = largeClockOnAttachStateChangeListener = object : OnAttachStateChangeListener { object : OnAttachStateChangeListener { override fun onViewAttachedToWindow(p0: View) { override fun onViewAttachedToWindow(p0: View) { clock.events.onTimeFormatChanged(DateFormat.is24HourFormat(context)) clock.events.onTimeFormatChanged(is24HourFormat()) } } override fun onViewDetachedFromWindow(p0: View) {} override fun onViewDetachedFromWindow(p0: View) {} Loading Loading @@ -358,7 +364,7 @@ constructor( } } override fun onTimeFormatChanged(timeFormat: String?) { override fun onTimeFormatChanged(timeFormat: String?) { clock?.run { events.onTimeFormatChanged(DateFormat.is24HourFormat(context)) } clock?.run { events.onTimeFormatChanged(is24HourFormat()) } } } override fun onTimeZoneChanged(timeZone: TimeZone) { override fun onTimeZoneChanged(timeZone: TimeZone) { Loading @@ -366,7 +372,7 @@ constructor( } } override fun onUserSwitchComplete(userId: Int) { override fun onUserSwitchComplete(userId: Int) { clock?.run { events.onTimeFormatChanged(DateFormat.is24HourFormat(context)) } clock?.run { events.onTimeFormatChanged(is24HourFormat(userId)) } zenModeCallback.onNextAlarmChanged() zenModeCallback.onNextAlarmChanged() } } Loading
packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt +4 −0 Original line number Original line Diff line number Diff line Loading @@ -56,6 +56,7 @@ import com.android.systemui.plugins.clocks.ThemeConfig import com.android.systemui.plugins.clocks.ZenData import com.android.systemui.plugins.clocks.ZenData import com.android.systemui.plugins.clocks.ZenData.ZenMode import com.android.systemui.plugins.clocks.ZenData.ZenMode import com.android.systemui.res.R import com.android.systemui.res.R import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.ZenModeController import com.android.systemui.statusbar.policy.ZenModeController Loading Loading @@ -128,6 +129,7 @@ class ClockEventControllerTest : SysuiTestCase() { @Mock private lateinit var largeClockEvents: ClockFaceEvents @Mock private lateinit var largeClockEvents: ClockFaceEvents @Mock private lateinit var parentView: View @Mock private lateinit var parentView: View @Mock private lateinit var keyguardTransitionInteractor: KeyguardTransitionInteractor @Mock private lateinit var keyguardTransitionInteractor: KeyguardTransitionInteractor @Mock private lateinit var userTracker: UserTracker @Mock private lateinit var zenModeController: ZenModeController @Mock private lateinit var zenModeController: ZenModeController private var zenModeControllerCallback: ZenModeController.Callback? = null private var zenModeControllerCallback: ZenModeController.Callback? = null Loading @@ -153,6 +155,7 @@ class ClockEventControllerTest : SysuiTestCase() { .thenReturn(ClockFaceConfig(tickRate = ClockTickRate.PER_MINUTE)) .thenReturn(ClockFaceConfig(tickRate = ClockTickRate.PER_MINUTE)) whenever(smallClockController.theme).thenReturn(ThemeConfig(true, null)) whenever(smallClockController.theme).thenReturn(ThemeConfig(true, null)) whenever(largeClockController.theme).thenReturn(ThemeConfig(true, null)) whenever(largeClockController.theme).thenReturn(ThemeConfig(true, null)) whenever(userTracker.userId).thenReturn(1) zenModeRepository.addMode(MANUAL_DND_INACTIVE) zenModeRepository.addMode(MANUAL_DND_INACTIVE) Loading @@ -177,6 +180,7 @@ class ClockEventControllerTest : SysuiTestCase() { withDeps.featureFlags, withDeps.featureFlags, zenModeController, zenModeController, kosmos.zenModeInteractor, kosmos.zenModeInteractor, userTracker, ) ) underTest.clock = clock underTest.clock = clock Loading