summaryrefslogtreecommitdiff
path: root/src/com
diff options
context:
space:
mode:
authorSantiago Etchebehere <santie@google.com>2023-10-18 07:31:52 -0700
committerChris Poultney <poultney@google.com>2023-10-19 16:19:56 +0000
commit953c3eeb6a989f8e8a4e145012992b8449143eef (patch)
tree595ff8dda133979c046e8e1452cd5d7fcd8a6524 /src/com
parent4dcfb0d5f0409a33445243ae963b1ff514b89427 (diff)
downloadThemePicker-953c3eeb6a989f8e8a4e145012992b8449143eef.tar.gz
Reuse ClockViewFactory
Bug: b/302425391 Test: manually verified that the clock carousel and setting work Change-Id: Ic464db9d6ec5eeb8b18ee27d6a205d217228ace3
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/customization/module/ThemePickerInjector.kt12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/com/android/customization/module/ThemePickerInjector.kt b/src/com/android/customization/module/ThemePickerInjector.kt
index ecd5e57a..9405644b 100644
--- a/src/com/android/customization/module/ThemePickerInjector.kt
+++ b/src/com/android/customization/module/ThemePickerInjector.kt
@@ -15,6 +15,7 @@
*/
package com.android.customization.module
+import android.app.Activity
import android.app.UiModeManager
import android.app.WallpaperManager
import android.content.Context
@@ -107,7 +108,7 @@ internal constructor(
private var clockPickerInteractor: ClockPickerInteractor? = null
private var clockSectionViewModel: ClockSectionViewModel? = null
private var clockCarouselViewModelFactory: ClockCarouselViewModel.Factory? = null
- private var clockViewFactories: MutableMap<Int, ClockViewFactory> = HashMap()
+ private var clockViewFactory: ClockViewFactory? = null
private var clockPickerSnapshotRestorer: ClockPickerSnapshotRestorer? = null
private var notificationsInteractor: NotificationsInteractor? = null
private var notificationSectionViewModelFactory: NotificationSectionViewModel.Factory? = null
@@ -366,8 +367,7 @@ internal constructor(
}
override fun getClockViewFactory(activity: ComponentActivity): ClockViewFactory {
- val activityHashCode = activity.hashCode()
- return clockViewFactories[activityHashCode]
+ return clockViewFactory
?: ClockViewFactoryImpl(
activity.applicationContext,
ScreenSizeCalculator.getInstance()
@@ -376,13 +376,13 @@ internal constructor(
getClockRegistry(activity.applicationContext),
)
.also {
- clockViewFactories[activityHashCode] = it
+ clockViewFactory = it
activity.lifecycle.addObserver(
object : DefaultLifecycleObserver {
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
- clockViewFactories[activityHashCode]?.onDestroy()
- clockViewFactories.remove(activityHashCode)
+ if ((owner as Activity).isChangingConfigurations()) return
+ clockViewFactory?.onDestroy()
}
}
)