summaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
authorTanuj <thetanuj@hotmail.com>2023-03-02 16:26:01 +0530
committerTanuj <thetanuj@hotmail.com>2023-03-02 16:26:01 +0530
commitb56e9ddc3ffeafe7d6464e4813d44e34306da846 (patch)
tree2c2e72ee7d871d3b4439e6ebfeda60d4aadfc160 /app/src/main/java
parentab9a724d80e48b13fc3e794879b26241e7a7ebee (diff)
downloadSidePhOnelauncher-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.kt2
-rw-r--r--app/src/main/java/app/olauncher/helper/Utils.kt12
-rw-r--r--app/src/main/java/app/olauncher/helper/WallpaperWorker.kt31
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())