diff options
| author | Tanuj <thetanuj@hotmail.com> | 2023-03-02 16:26:01 +0530 |
|---|---|---|
| committer | Tanuj <thetanuj@hotmail.com> | 2023-03-02 16:26:01 +0530 |
| commit | b56e9ddc3ffeafe7d6464e4813d44e34306da846 (patch) | |
| tree | 2c2e72ee7d871d3b4439e6ebfeda60d4aadfc160 /app/src/main/java | |
| parent | ab9a724d80e48b13fc3e794879b26241e7a7ebee (diff) | |
| download | SidePhOnelauncher-b56e9ddc3ffeafe7d6464e4813d44e34306da846.tar.gz SidePhOnelauncher-b56e9ddc3ffeafe7d6464e4813d44e34306da846.tar.bz2 SidePhOnelauncher-b56e9ddc3ffeafe7d6464e4813d44e34306da846.zip | |
Fixed wallpaper scaling issue
Diffstat (limited to 'app/src/main/java')
| -rw-r--r-- | app/src/main/java/app/olauncher/MainViewModel.kt | 2 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/helper/Utils.kt | 12 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/helper/WallpaperWorker.kt | 31 |
3 files changed, 27 insertions, 18 deletions
diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt index 8558ee2..09be03e 100644 --- a/app/src/main/java/app/olauncher/MainViewModel.kt +++ b/app/src/main/java/app/olauncher/MainViewModel.kt @@ -198,7 +198,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { } fun cancelWallpaperWorker() { - WorkManager.getInstance(appContext).cancelUniqueWork(Constants.WALLPAPER_WORKER_NAME) + WorkManager.getInstance(appContext).cancelAllWork() prefs.dailyWallpaperUrl = "" } diff --git a/app/src/main/java/app/olauncher/helper/Utils.kt b/app/src/main/java/app/olauncher/helper/Utils.kt index 9c080de..26aa209 100644 --- a/app/src/main/java/app/olauncher/helper/Utils.kt +++ b/app/src/main/java/app/olauncher/helper/Utils.kt @@ -272,10 +272,14 @@ suspend fun getWallpaperBitmap(originalImage: Bitmap, width: Int, height: Int): val originalHeight: Float = originalImage.height.toFloat() val canvas = Canvas(background) - val scale: Float = height / originalHeight - - val xTranslation: Float = (width - originalWidth * scale) / 2.0f - val yTranslation = 0.0f + val heightScale: Float = height / originalHeight + val widthScale: Float = width / originalWidth + val scale = maxOf(heightScale, widthScale) + + val (xTranslation, yTranslation) = if (heightScale > widthScale) + Pair((width - originalWidth * heightScale) / 2.0f, 0f) + else + Pair(0f, (height - originalHeight * widthScale) / 2.0f) val transformation = Matrix() transformation.postTranslate(xTranslation, yTranslation) diff --git a/app/src/main/java/app/olauncher/helper/WallpaperWorker.kt b/app/src/main/java/app/olauncher/helper/WallpaperWorker.kt index 6dcf7e7..7786985 100644 --- a/app/src/main/java/app/olauncher/helper/WallpaperWorker.kt +++ b/app/src/main/java/app/olauncher/helper/WallpaperWorker.kt @@ -10,24 +10,29 @@ import kotlinx.coroutines.coroutineScope class WallpaperWorker(appContext: Context, workerParams: WorkerParameters) : CoroutineWorker(appContext, workerParams) { + private val prefs = Prefs(applicationContext) + override suspend fun doWork(): Result = coroutineScope { - val wallType = checkWallpaperType() - val wallpaperUrl = getTodaysWallpaper(wallType) - if (Prefs(applicationContext).dailyWallpaperUrl == wallpaperUrl) { - Result.success() - } - val success = setWallpaper( - applicationContext, - wallpaperUrl - ) - if (success) { - Prefs(applicationContext).dailyWallpaperUrl = wallpaperUrl + val success = if (prefs.dailyWallpaper) { + val wallType = checkWallpaperType() + val wallpaperUrl = getTodaysWallpaper(wallType) + if (prefs.dailyWallpaperUrl == wallpaperUrl) + true + else { + prefs.dailyWallpaperUrl = wallpaperUrl + setWallpaper(applicationContext, wallpaperUrl) + } + } else + true + + if (success) Result.success() - } else Result.retry() + else + Result.retry() } private fun checkWallpaperType(): String { - return when (Prefs(applicationContext).appTheme) { + return when (prefs.appTheme) { AppCompatDelegate.MODE_NIGHT_YES -> Constants.WALL_TYPE_DARK AppCompatDelegate.MODE_NIGHT_NO -> Constants.WALL_TYPE_LIGHT else -> if (applicationContext.isDarkThemeOn()) |
