From 5f397430f4e280bbd872cb252633470fac153955 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 5 Sep 2024 17:09:05 +0200 Subject: [PATCH] obey the disable animation setting for gifs --- .../habitrpg/android/habitica/HabiticaBaseApplication.kt | 9 +++++++++ .../common/habitica/extensions/DataBindingUtils.kt | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt index 8591bfa63..2ce31d473 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt @@ -14,6 +14,7 @@ import android.database.sqlite.SQLiteDatabase import android.os.Build import android.os.Build.VERSION.SDK_INT import android.os.Bundle +import android.provider.Settings import android.util.Log import androidx.appcompat.app.AppCompatDelegate import androidx.core.content.edit @@ -38,6 +39,7 @@ import com.habitrpg.android.habitica.modules.AuthenticationHandler import com.habitrpg.android.habitica.ui.activities.BaseActivity import com.habitrpg.android.habitica.ui.activities.LoginActivity import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper +import com.habitrpg.common.habitica.extensions.DataBindingUtils import com.habitrpg.common.habitica.extensions.setupCoil import com.habitrpg.common.habitica.helpers.ExceptionHandler import com.habitrpg.common.habitica.helpers.LanguageHelper @@ -114,6 +116,12 @@ abstract class HabiticaBaseApplication : Application(), Application.ActivityLife // endregion + + var animationsEnabled: Boolean = + !(Settings.Global.getFloat(contentResolver, Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f) == 0f + && Settings.Global.getFloat(contentResolver, Settings.Global.TRANSITION_ANIMATION_SCALE, 1.0f) == 0f + && Settings.Global.getFloat(contentResolver, Settings.Global.WINDOW_ANIMATION_SCALE, 1.0f) == 0f) + override fun onCreate() { super.onCreate() @@ -140,6 +148,7 @@ abstract class HabiticaBaseApplication : Application(), Application.ActivityLife AppCompatDelegate.setCompatVectorFromResourcesEnabled(true) setupCoil() + DataBindingUtils.disableAnimations = !animationsEnabled ExceptionHandler.init { Analytics.logException(it) diff --git a/common/src/main/java/com/habitrpg/common/habitica/extensions/DataBindingUtils.kt b/common/src/main/java/com/habitrpg/common/habitica/extensions/DataBindingUtils.kt index 9c7c67168..b6164f158 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/extensions/DataBindingUtils.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/extensions/DataBindingUtils.kt @@ -4,6 +4,7 @@ import android.content.Context import android.graphics.PorterDuff import android.graphics.drawable.Animatable import android.graphics.drawable.Drawable +import android.provider.Settings import android.view.View import android.view.animation.Animation import android.view.animation.Transformation @@ -106,7 +107,7 @@ object DataBindingUtils { else -> imageName } return name + - if (imageFormat == null && FILEFORMAT_MAP.containsKey(imageName)) { + if (!disableAnimations && imageFormat == null && FILEFORMAT_MAP.containsKey(imageName)) { "." + FILEFORMAT_MAP[imageName] } else { ".${imageFormat ?: "png"}" @@ -166,6 +167,7 @@ object DataBindingUtils { private var lastSubstitutionCheck: Date? = null var configManager: AppConfigManager? = null + var disableAnimations = false init { val tempMap = mutableMapOf()