Remove the flag isCarouselInTransition
The clock vertical shift issue when onTimeTick is resolved.
We no longer need to inspect if we are scrolling the carousel.
1. Remove isCarouselInTransition. It's not really idea to create a state
in a view and reference it externally. The view should be as
stateless as possible.
2. Remove onTimeTick when populating, since this looks weird when we
have second level clocks that the second arm moves every time when
populateing
Test: Manually tested time tick does not make clock view vertically
shift
Bug: 278850684
Change-Id: I6478a4467f7d9e3091a709a5978a042fa65d3d3b
diff --git a/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt b/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
index 7bdd4fc..f455600 100644
--- a/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
@@ -106,9 +106,7 @@
LifecycleEventObserver { source, event ->
when (event) {
Lifecycle.Event.ON_RESUME -> {
- clockViewFactory.registerTimeTicker(source) {
- !carouselView.isCarouselInTransition
- }
+ clockViewFactory.registerTimeTicker(source)
}
Lifecycle.Event.ON_PAUSE -> {
clockViewFactory.unregisterTimeTicker(source)
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt b/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
index 059e498..3cf5471 100644
--- a/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
@@ -36,8 +36,6 @@
attrs,
) {
- var isCarouselInTransition = false
-
val carousel: Carousel
private val motionLayout: MotionLayout
private lateinit var adapter: ClockCarouselAdapter
@@ -72,7 +70,6 @@
startId: Int,
endId: Int
) {
- isCarouselInTransition = true
val scalingDownClockId = adapter.clockIds[carousel.currentIndex]
val scalingUpIdx =
if (endId == R.id.next) (carousel.currentIndex + 1) % adapter.count()
@@ -125,7 +122,6 @@
}
override fun onTransitionCompleted(motionLayout: MotionLayout?, currentId: Int) {
- isCarouselInTransition = false
setCardAnimationState(currentId == R.id.start)
}
@@ -197,8 +193,6 @@
clockHostView.removeAllViews()
val clockView = onGetClockController(clockIds[index]).largeClock.view
- // Making sure the large clock tick to the correct time
- onGetClockController(clockIds[index]).largeClock.events.onTimeTick()
// The clock view might still be attached to an existing parent. Detach before adding to
// another parent.
(clockView.parent as? ViewGroup)?.removeView(clockView)
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt b/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
index cf154d5..3c7bab1 100644
--- a/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
@@ -67,21 +67,13 @@
}
fun registerTimeTicker(owner: LifecycleOwner) {
- registerTimeTicker(owner, null)
- }
-
- fun registerTimeTicker(owner: LifecycleOwner, shouldTimeTick: (() -> Boolean)?) {
val hashCode = owner.hashCode()
if (timeTickListeners.keys.contains(hashCode)) {
return
}
timeTickListeners[hashCode] =
- TimeTicker.registerNewReceiver(activity.applicationContext) {
- if (shouldTimeTick == null || shouldTimeTick()) {
- onTimeTick()
- }
- }
+ TimeTicker.registerNewReceiver(activity.applicationContext) { onTimeTick() }
}
private fun onTimeTick() {