diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-03-18 01:26:39 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-03-18 01:26:39 +0000 |
commit | b56bbca1628b84f336c30c62c3757266907e927d (patch) | |
tree | 7615f9be887c7579d3baab358fac268b6d86e6bd | |
parent | d05aac2012ca188b8e6336638c29675f317d0b3a (diff) | |
parent | d83706f73143b89ae2ecbda621a57eafaf2664e4 (diff) |
Snap for 9769489 from d83706f73143b89ae2ecbda621a57eafaf2664e4 to tm-qpr3-release
Change-Id: I2e0c612437b37fef9dd0aced2807b25107008a99
-rw-r--r-- | src/com/android/wallpaper/config/BaseFlags.kt | 9 | ||||
-rw-r--r-- | src/com/android/wallpaper/picker/customization/ui/binder/ScreenPreviewBinder.kt | 23 |
2 files changed, 26 insertions, 6 deletions
diff --git a/src/com/android/wallpaper/config/BaseFlags.kt b/src/com/android/wallpaper/config/BaseFlags.kt index 5d16e017..ffd76c69 100644 --- a/src/com/android/wallpaper/config/BaseFlags.kt +++ b/src/com/android/wallpaper/config/BaseFlags.kt @@ -52,6 +52,15 @@ abstract class BaseFlags { .firstOrNull { flag -> flag.name == Contract.FlagsTable.FLAG_NAME_MONOCHROMATIC_THEME } ?.value == true } + + fun isAIWallpaperEnabled(context: Context): Boolean { + return runBlocking { getCustomizationProviderClient(context).queryFlags() } + .firstOrNull { flag -> + flag.name == Contract.FlagsTable.FLAG_NAME_WALLPAPER_PICKER_UI_FOR_AIWP + } + ?.value == true + } + private fun getCustomizationProviderClient(context: Context): CustomizationProviderClient { return customizationProviderClient ?: CustomizationProviderClientImpl(context, Dispatchers.IO).also { diff --git a/src/com/android/wallpaper/picker/customization/ui/binder/ScreenPreviewBinder.kt b/src/com/android/wallpaper/picker/customization/ui/binder/ScreenPreviewBinder.kt index 01903142..a703b9a0 100644 --- a/src/com/android/wallpaper/picker/customization/ui/binder/ScreenPreviewBinder.kt +++ b/src/com/android/wallpaper/picker/customization/ui/binder/ScreenPreviewBinder.kt @@ -27,6 +27,7 @@ import android.view.View import android.view.ViewGroup import androidx.cardview.widget.CardView import androidx.core.view.isVisible +import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.lifecycleScope @@ -102,6 +103,19 @@ object ScreenPreviewBinder { val job = lifecycleOwner.lifecycleScope.launch { launch { + val lifecycleObserver = + object : DefaultLifecycleObserver { + override fun onStop(owner: LifecycleOwner) { + super.onStop(owner) + wallpaperConnection?.disconnect() + } + + override fun onPause(owner: LifecycleOwner) { + super.onPause(owner) + wallpaperConnection?.setVisibility(false) + } + } + lifecycleOwner.repeatOnLifecycle(Lifecycle.State.CREATED) { previewSurfaceCallback = WorkspaceSurfaceHolderCallback( @@ -140,9 +154,12 @@ object ScreenPreviewBinder { if (!dimWallpaper) { wallpaperSurface.setZOrderMediaOverlay(true) } + + lifecycleOwner.lifecycle.addObserver(lifecycleObserver) } // Here when destroyed. + lifecycleOwner.lifecycle.removeObserver(lifecycleObserver) workspaceSurface.holder.removeCallback(previewSurfaceCallback) previewSurfaceCallback?.cleanUp() wallpaperSurface.holder.removeCallback(wallpaperSurfaceCallback) @@ -166,9 +183,6 @@ object ScreenPreviewBinder { } } } - - // Here when stopped. - wallpaperConnection?.disconnect() } launch { @@ -212,9 +226,6 @@ object ScreenPreviewBinder { ) } } - - // Here when paused. - wallpaperConnection?.setVisibility(false) } } |