Loading bliss/src/foundation/e/bliss/blur/BlurWallpaperProvider.kt +30 −2 Original line number Diff line number Diff line Loading @@ -10,7 +10,12 @@ package foundation.e.bliss.blur import android.annotation.SuppressLint import android.app.WallpaperManager import android.content.Context import android.graphics.* import android.graphics.Bitmap import android.graphics.Canvas import android.graphics.Color import android.graphics.ColorMatrix import android.graphics.ColorMatrixColorFilter import android.graphics.Paint import android.util.DisplayMetrics import android.view.WindowManager import android.widget.Toast Loading Loading @@ -58,6 +63,8 @@ class BlurWallpaperProvider(val context: Context) { private var updatePending = false private var isLiveWallpaper = false init { isEnabled = getEnabledStatus() updateAsync() Loading @@ -69,6 +76,10 @@ class BlurWallpaperProvider(val context: Context) { Executors.THREAD_POOL_EXECUTOR.execute(mUpdateRunnable) } fun setLiveWallpaper(isLive: Boolean) { isLiveWallpaper = isLive } @SuppressLint("MissingPermission") private fun updateWallpaper() { if (applyTask != null) { Loading @@ -93,7 +104,12 @@ class BlurWallpaperProvider(val context: Context) { var wallpaper = try { mWallpaperManager.drawable.toBitmap() val wall = mWallpaperManager.drawable.toBitmap() if (isLiveWallpaper) { createTransparentBitmap(wall.width, wall.height) } else { wall } } catch (e: Exception) { runOnMainThread { val msg = "Failed: ${e.message}" Loading Loading @@ -138,6 +154,18 @@ class BlurWallpaperProvider(val context: Context) { } } private fun createTransparentBitmap(width: Int, height: Int): Bitmap { val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888) val canvas = Canvas(bitmap) val paint = Paint().apply { color = Color.argb(0, 255, 255, 255) // White with transparency isAntiAlias = true } canvas.drawRect(0f, 0f, width.toFloat(), height.toFloat(), paint) return bitmap } private fun notifyWallpaperChanged() { mListeners.forEach(Listener::onWallpaperChanged) } Loading src/com/android/launcher3/util/WallpaperOffsetInterpolator.java +8 −1 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ public class WallpaperOffsetInterpolator { private boolean mRegistered = false; private IBinder mWindowToken; private boolean mWallpaperIsLiveWallpaper; private static boolean mWallpaperIsLiveWallpaper; private boolean mLockedToDefaultPage; private int mNumScreens; Loading Loading @@ -214,11 +214,17 @@ public class WallpaperOffsetInterpolator { // Updating the boolean on a background thread is fine as the assignments are atomic mWallpaperIsLiveWallpaper = WallpaperManager.getInstance(mWorkspace.getContext()) .getWallpaperInfo() != null; setIsLiveWallpaper(); BlurWallpaperProvider.Companion.getInstanceNoCreate().updateAsync(); updateOffset(); }); } public static void setIsLiveWallpaper() { BlurWallpaperProvider.Companion.getInstanceNoCreate().setLiveWallpaper( mWallpaperIsLiveWallpaper); } private static final int MSG_START_ANIMATION = 1; private static final int MSG_UPDATE_OFFSET = 2; private static final int MSG_APPLY_OFFSET = 3; Loading Loading @@ -307,6 +313,7 @@ public class WallpaperOffsetInterpolator { private void setOffsetSafely(IBinder token) { try { mWM.setWallpaperOffsets(token, mCurrentOffset, 0.5f); setIsLiveWallpaper(); BlurWallpaperProvider.Companion.getInstanceNoCreate() .setWallpaperOffset(mCurrentOffset); } catch (IllegalArgumentException e) { Loading Loading
bliss/src/foundation/e/bliss/blur/BlurWallpaperProvider.kt +30 −2 Original line number Diff line number Diff line Loading @@ -10,7 +10,12 @@ package foundation.e.bliss.blur import android.annotation.SuppressLint import android.app.WallpaperManager import android.content.Context import android.graphics.* import android.graphics.Bitmap import android.graphics.Canvas import android.graphics.Color import android.graphics.ColorMatrix import android.graphics.ColorMatrixColorFilter import android.graphics.Paint import android.util.DisplayMetrics import android.view.WindowManager import android.widget.Toast Loading Loading @@ -58,6 +63,8 @@ class BlurWallpaperProvider(val context: Context) { private var updatePending = false private var isLiveWallpaper = false init { isEnabled = getEnabledStatus() updateAsync() Loading @@ -69,6 +76,10 @@ class BlurWallpaperProvider(val context: Context) { Executors.THREAD_POOL_EXECUTOR.execute(mUpdateRunnable) } fun setLiveWallpaper(isLive: Boolean) { isLiveWallpaper = isLive } @SuppressLint("MissingPermission") private fun updateWallpaper() { if (applyTask != null) { Loading @@ -93,7 +104,12 @@ class BlurWallpaperProvider(val context: Context) { var wallpaper = try { mWallpaperManager.drawable.toBitmap() val wall = mWallpaperManager.drawable.toBitmap() if (isLiveWallpaper) { createTransparentBitmap(wall.width, wall.height) } else { wall } } catch (e: Exception) { runOnMainThread { val msg = "Failed: ${e.message}" Loading Loading @@ -138,6 +154,18 @@ class BlurWallpaperProvider(val context: Context) { } } private fun createTransparentBitmap(width: Int, height: Int): Bitmap { val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888) val canvas = Canvas(bitmap) val paint = Paint().apply { color = Color.argb(0, 255, 255, 255) // White with transparency isAntiAlias = true } canvas.drawRect(0f, 0f, width.toFloat(), height.toFloat(), paint) return bitmap } private fun notifyWallpaperChanged() { mListeners.forEach(Listener::onWallpaperChanged) } Loading
src/com/android/launcher3/util/WallpaperOffsetInterpolator.java +8 −1 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ public class WallpaperOffsetInterpolator { private boolean mRegistered = false; private IBinder mWindowToken; private boolean mWallpaperIsLiveWallpaper; private static boolean mWallpaperIsLiveWallpaper; private boolean mLockedToDefaultPage; private int mNumScreens; Loading Loading @@ -214,11 +214,17 @@ public class WallpaperOffsetInterpolator { // Updating the boolean on a background thread is fine as the assignments are atomic mWallpaperIsLiveWallpaper = WallpaperManager.getInstance(mWorkspace.getContext()) .getWallpaperInfo() != null; setIsLiveWallpaper(); BlurWallpaperProvider.Companion.getInstanceNoCreate().updateAsync(); updateOffset(); }); } public static void setIsLiveWallpaper() { BlurWallpaperProvider.Companion.getInstanceNoCreate().setLiveWallpaper( mWallpaperIsLiveWallpaper); } private static final int MSG_START_ANIMATION = 1; private static final int MSG_UPDATE_OFFSET = 2; private static final int MSG_APPLY_OFFSET = 3; Loading Loading @@ -307,6 +313,7 @@ public class WallpaperOffsetInterpolator { private void setOffsetSafely(IBinder token) { try { mWM.setWallpaperOffsets(token, mCurrentOffset, 0.5f); setIsLiveWallpaper(); BlurWallpaperProvider.Companion.getInstanceNoCreate() .setWallpaperOffset(mCurrentOffset); } catch (IllegalArgumentException e) { Loading