Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopWallpaperActivity.kt +38 −0 Original line number Diff line number Diff line Loading @@ -17,12 +17,16 @@ package com.android.wm.shell.desktopmode import android.app.TaskInfo import android.app.WallpaperColors import android.app.WallpaperManager import android.content.ComponentName import android.os.Bundle import android.util.Log import android.view.WindowManager import android.window.DesktopExperienceFlags import androidx.activity.addCallback import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsControllerCompat import androidx.fragment.app.FragmentActivity /** Loading @@ -36,6 +40,13 @@ import androidx.fragment.app.FragmentActivity */ class DesktopWallpaperActivity : FragmentActivity() { private var wallpaperManager: WallpaperManager? = null private val wallpaperColorsListener = WallpaperManager.OnColorsChangedListener { colors, which -> updateStatusBarIconColors(colors) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) Log.d(TAG, "onCreate") Loading @@ -55,6 +66,20 @@ class DesktopWallpaperActivity : FragmentActivity() { ) { onBackPressedDispatcher.addCallback(this) { moveTaskToBack(true) } } // Handle wallpaper color changes wallpaperManager = getSystemService(WallpaperManager::class.java) wallpaperManager?.addOnColorsChangedListener(wallpaperColorsListener, mainThreadHandler) // Set the initial color of status bar icons on activity creation. updateStatusBarIconColors( wallpaperManager?.getWallpaperColors(WallpaperManager.FLAG_SYSTEM) ) } override fun onDestroy() { super.onDestroy() wallpaperManager?.removeOnColorsChangedListener(wallpaperColorsListener) } override fun onTopResumedActivityChanged(isTopResumedActivity: Boolean) { Loading @@ -73,6 +98,19 @@ class DesktopWallpaperActivity : FragmentActivity() { } } /** Set the status bar icon colours depending on wallpaper hint. */ private fun updateStatusBarIconColors(wallpaperColors: WallpaperColors?) { wallpaperColors?.colorHints?.let { getWindowInsetsController().isAppearanceLightStatusBars = (it and WallpaperColors.HINT_SUPPORTS_DARK_TEXT) != 0 } } private fun getWindowInsetsController(): WindowInsetsControllerCompat { val window = getWindow() return WindowCompat.getInsetsController(window, window.decorView) } companion object { private const val TAG = "DesktopWallpaperActivity" private const val SYSTEM_UI_PACKAGE_NAME = "com.android.systemui" Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopWallpaperActivity.kt +38 −0 Original line number Diff line number Diff line Loading @@ -17,12 +17,16 @@ package com.android.wm.shell.desktopmode import android.app.TaskInfo import android.app.WallpaperColors import android.app.WallpaperManager import android.content.ComponentName import android.os.Bundle import android.util.Log import android.view.WindowManager import android.window.DesktopExperienceFlags import androidx.activity.addCallback import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsControllerCompat import androidx.fragment.app.FragmentActivity /** Loading @@ -36,6 +40,13 @@ import androidx.fragment.app.FragmentActivity */ class DesktopWallpaperActivity : FragmentActivity() { private var wallpaperManager: WallpaperManager? = null private val wallpaperColorsListener = WallpaperManager.OnColorsChangedListener { colors, which -> updateStatusBarIconColors(colors) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) Log.d(TAG, "onCreate") Loading @@ -55,6 +66,20 @@ class DesktopWallpaperActivity : FragmentActivity() { ) { onBackPressedDispatcher.addCallback(this) { moveTaskToBack(true) } } // Handle wallpaper color changes wallpaperManager = getSystemService(WallpaperManager::class.java) wallpaperManager?.addOnColorsChangedListener(wallpaperColorsListener, mainThreadHandler) // Set the initial color of status bar icons on activity creation. updateStatusBarIconColors( wallpaperManager?.getWallpaperColors(WallpaperManager.FLAG_SYSTEM) ) } override fun onDestroy() { super.onDestroy() wallpaperManager?.removeOnColorsChangedListener(wallpaperColorsListener) } override fun onTopResumedActivityChanged(isTopResumedActivity: Boolean) { Loading @@ -73,6 +98,19 @@ class DesktopWallpaperActivity : FragmentActivity() { } } /** Set the status bar icon colours depending on wallpaper hint. */ private fun updateStatusBarIconColors(wallpaperColors: WallpaperColors?) { wallpaperColors?.colorHints?.let { getWindowInsetsController().isAppearanceLightStatusBars = (it and WallpaperColors.HINT_SUPPORTS_DARK_TEXT) != 0 } } private fun getWindowInsetsController(): WindowInsetsControllerCompat { val window = getWindow() return WindowCompat.getInsetsController(window, window.decorView) } companion object { private const val TAG = "DesktopWallpaperActivity" private const val SYSTEM_UI_PACKAGE_NAME = "com.android.systemui" Loading