diff options
author | Santiago Etchebehere <santie@google.com> | 2023-10-18 07:31:52 -0700 |
---|---|---|
committer | Chris Poultney <poultney@google.com> | 2023-10-19 16:19:56 +0000 |
commit | 953c3eeb6a989f8e8a4e145012992b8449143eef (patch) | |
tree | 595ff8dda133979c046e8e1452cd5d7fcd8a6524 /src/com | |
parent | 4dcfb0d5f0409a33445243ae963b1ff514b89427 (diff) | |
download | ThemePicker-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.kt | 12 |
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() } } ) |