diff --git a/app/build.gradle b/app/build.gradle
index 3bed3f6..9f45cfb 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -40,7 +40,7 @@ android {
applicationId "com.javinator9889.handwashingreminder"
minSdkVersion 17
targetSdkVersion 29
- versionCode 132
+ versionCode 133
versionName "1.2.0-${gitCommitHash}"
multiDexEnabled true
resConfigs "en", "es"
diff --git a/app/src/main/java/com/javinator9889/handwashingreminder/data/SettingsLoader.kt b/app/src/main/java/com/javinator9889/handwashingreminder/data/SettingsLoader.kt
index 8786c8d..f2608c6 100644
--- a/app/src/main/java/com/javinator9889/handwashingreminder/data/SettingsLoader.kt
+++ b/app/src/main/java/com/javinator9889/handwashingreminder/data/SettingsLoader.kt
@@ -312,6 +312,10 @@ class SettingsLoader(
},
onChangeListener = this@with
).also { deferreds.add(it) }
+ setupPreferenceAsync(
+ Preferences.PERFORMANCE_ANIMATIONS,
+ Ionicons.Icon.ion_battery_low
+ ).also { deferreds.add(it) }
deferreds.awaitAll()
arePreferencesInitialized.set(true)
}
diff --git a/app/src/main/java/com/javinator9889/handwashingreminder/graphics/LottieAdaptedPerformanceAnimationView.kt b/app/src/main/java/com/javinator9889/handwashingreminder/graphics/LottieAdaptedPerformanceAnimationView.kt
index 708d9e9..45e52c6 100644
--- a/app/src/main/java/com/javinator9889/handwashingreminder/graphics/LottieAdaptedPerformanceAnimationView.kt
+++ b/app/src/main/java/com/javinator9889/handwashingreminder/graphics/LottieAdaptedPerformanceAnimationView.kt
@@ -20,29 +20,36 @@ package com.javinator9889.handwashingreminder.graphics
import android.content.Context
import android.util.AttributeSet
+import androidx.preference.PreferenceManager
import com.airbnb.lottie.LottieAnimationView
import com.airbnb.lottie.LottieComposition
import com.airbnb.lottie.LottieOnCompositionLoadedListener
+import com.javinator9889.handwashingreminder.utils.Preferences
import com.javinator9889.handwashingreminder.utils.isHighPerformingDevice
class LottieAdaptedPerformanceAnimationView : LottieAnimationView,
LottieOnCompositionLoadedListener {
- constructor(context: Context): super(context)
- constructor(context: Context, attrs: AttributeSet): super(context, attrs)
- constructor(context: Context, attrs: AttributeSet, attrStyle: Int):
+ constructor(context: Context) : super(context)
+ constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
+ constructor(context: Context, attrs: AttributeSet, attrStyle: Int) :
super(context, attrs, attrStyle)
+ private val areAnimationsEnabled: Boolean
+
init {
addLottieOnCompositionLoadedListener(this)
enableMergePathsForKitKatAndAbove(true)
setCacheComposition(true)
+ val preferences = PreferenceManager.getDefaultSharedPreferences(context)
+ areAnimationsEnabled =
+ preferences.getBoolean(Preferences.PERFORMANCE_ANIMATIONS, true)
}
override fun getDuration(): Long =
if (isHighPerformingDevice()) super.getDuration() else 100L
override fun onCompositionLoaded(composition: LottieComposition?) {
- if (!isHighPerformingDevice()) {
+ if (!isHighPerformingDevice() || !areAnimationsEnabled) {
setMinFrame(maxFrame.toInt())
repeatCount = 0
}
diff --git a/app/src/main/java/com/javinator9889/handwashingreminder/utils/Constants.kt b/app/src/main/java/com/javinator9889/handwashingreminder/utils/Constants.kt
index 8ff8004..3b6ab6f 100644
--- a/app/src/main/java/com/javinator9889/handwashingreminder/utils/Constants.kt
+++ b/app/src/main/java/com/javinator9889/handwashingreminder/utils/Constants.kt
@@ -43,6 +43,7 @@ object Preferences {
const val DONATIONS = "donations"
const val INITIAL_TUTORIAL_DONE = "app:tutorial:is_done"
const val ACTIVITY_MINIMUM_TIME = "activity:gms:minimumInterval"
+ const val PERFORMANCE_ANIMATIONS = "app:performance:animations"
}
object TimeConfig {
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 563cab6..7a50a2b 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -285,4 +285,9 @@
- %d minuto
- %d minutos
+ Opciones de rendimiento de la app
+ Deshabilitar las animaciones en la app
+ Actualmente, las animaciones están activadas.
+ Ten en cuenta que esto puede afectar tanto al rendimiento como a la batería
+ No se mostrará ninguna animación
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ff5966c..e55dd41 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -313,4 +313,9 @@
- %d minute
- %d minutes
+ App\'s performance options
+ Disable app\'s animations
+ Currently, the app will play some animations.
+ Keep in mind that it can affect both performance and battery life
+ No animations will be played
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 4924349..f1e5a8e 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -10,24 +10,24 @@
+ android:title="@string/playstore" />
+ android:title="@string/github" />
+ android:title="@string/linkedin" />
+ android:title="@string/twitter" />
+
+
+