diff --git a/app/src/main/java/io/github/wulkanowy/WulkanowyApp.kt b/app/src/main/java/io/github/wulkanowy/WulkanowyApp.kt index 90b3581c8..eee70891e 100644 --- a/app/src/main/java/io/github/wulkanowy/WulkanowyApp.kt +++ b/app/src/main/java/io/github/wulkanowy/WulkanowyApp.kt @@ -11,6 +11,8 @@ import dagger.android.AndroidInjector import dagger.android.support.DaggerApplication import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.utils.Log +import io.github.wulkanowy.data.db.SharedPrefProvider +import io.github.wulkanowy.data.db.SharedPrefProvider.Companion.APP_VERSION_CODE_KEY import io.github.wulkanowy.di.DaggerAppComponent import io.github.wulkanowy.services.sync.SyncWorkerFactory import io.github.wulkanowy.ui.base.ThemeManager @@ -33,6 +35,9 @@ class WulkanowyApp : DaggerApplication(), Configuration.Provider { @Inject lateinit var themeManager: ThemeManager + @Inject + lateinit var sharedPrefProvider: SharedPrefProvider + @Inject lateinit var appInfo: AppInfo @@ -47,6 +52,7 @@ class WulkanowyApp : DaggerApplication(), Configuration.Provider { RxJavaPlugins.setErrorHandler(::onError) Lingver.init(this) themeManager.applyDefaultTheme() + migrateSharedPreferences() initLogging() initCrashlytics(this, appInfo) @@ -62,6 +68,13 @@ class WulkanowyApp : DaggerApplication(), Configuration.Provider { registerActivityLifecycleCallbacks(ActivityLifecycleLogger()) } + private fun migrateSharedPreferences() { + if (sharedPrefProvider.getLong(APP_VERSION_CODE_KEY, -1) < 48) { // #596 + sharedPrefProvider.delete(getString(R.string.pref_key_grade_modifier_plus)) + sharedPrefProvider.delete(getString(R.string.pref_key_grade_modifier_minus)) + } + } + private fun onError(error: Throwable) { //RxJava's too deep stack traces may cause SOE on older android devices val cause = error.cause diff --git a/app/src/main/java/io/github/wulkanowy/data/db/SharedPrefProvider.kt b/app/src/main/java/io/github/wulkanowy/data/db/SharedPrefProvider.kt index a6d0a067e..6a9533959 100644 --- a/app/src/main/java/io/github/wulkanowy/data/db/SharedPrefProvider.kt +++ b/app/src/main/java/io/github/wulkanowy/data/db/SharedPrefProvider.kt @@ -8,6 +8,10 @@ import javax.inject.Singleton @Singleton class SharedPrefProvider @Inject constructor(private val sharedPref: SharedPreferences) { + companion object { + const val APP_VERSION_CODE_KEY = "app_version_code" + } + fun putLong(key: String, value: Long, sync: Boolean = false) { sharedPref.edit(sync) { putLong(key, value) } } diff --git a/app/src/main/java/io/github/wulkanowy/services/sync/SyncManager.kt b/app/src/main/java/io/github/wulkanowy/services/sync/SyncManager.kt index 98fc35228..6b0469773 100644 --- a/app/src/main/java/io/github/wulkanowy/services/sync/SyncManager.kt +++ b/app/src/main/java/io/github/wulkanowy/services/sync/SyncManager.kt @@ -11,6 +11,7 @@ import androidx.work.NetworkType.UNMETERED import androidx.work.PeriodicWorkRequestBuilder import androidx.work.WorkManager import io.github.wulkanowy.data.db.SharedPrefProvider +import io.github.wulkanowy.data.db.SharedPrefProvider.Companion.APP_VERSION_CODE_KEY import io.github.wulkanowy.data.repositories.preferences.PreferencesRepository import io.github.wulkanowy.services.sync.channels.DebugChannel import io.github.wulkanowy.services.sync.channels.NewEntriesChannel @@ -32,10 +33,6 @@ class SyncManager @Inject constructor( appInfo: AppInfo ) { - companion object { - private const val APP_VERSION_CODE_KEY = "app_version_code" - } - init { if (now().isHolidays) stopSyncWorker() diff --git a/app/src/main/java/io/github/wulkanowy/utils/GradeExtension.kt b/app/src/main/java/io/github/wulkanowy/utils/GradeExtension.kt index c863b030f..22dbc22f5 100644 --- a/app/src/main/java/io/github/wulkanowy/utils/GradeExtension.kt +++ b/app/src/main/java/io/github/wulkanowy/utils/GradeExtension.kt @@ -67,8 +67,8 @@ inline val Grade.colorStringId: Int fun Grade.changeModifier(plusModifier: Double, minusModifier: Double): Grade { return when { - modifier != .0 && plusModifier != .0 && modifier > 0 -> copy(modifier = plusModifier) - modifier != .0 && minusModifier != .0 && modifier < 0 -> copy(modifier = -minusModifier) + modifier > 0 -> copy(modifier = plusModifier) + modifier < 0 -> copy(modifier = -minusModifier) else -> this } } diff --git a/app/src/main/res/values-pl/preferences_values.xml b/app/src/main/res/values-pl/preferences_values.xml index facec3f0b..94cdbcdde 100644 --- a/app/src/main/res/values-pl/preferences_values.xml +++ b/app/src/main/res/values-pl/preferences_values.xml @@ -23,7 +23,7 @@ - Domyślna + 0,0 0,25 0,33 0,5 diff --git a/app/src/main/res/values/preferences_defaults.xml b/app/src/main/res/values/preferences_defaults.xml index 733d71b0c..91b357d93 100644 --- a/app/src/main/res/values/preferences_defaults.xml +++ b/app/src/main/res/values/preferences_defaults.xml @@ -13,7 +13,7 @@ false true false - 0.0 - 0.0 + 0.33 + 0.33 true diff --git a/app/src/main/res/values/preferences_values.xml b/app/src/main/res/values/preferences_values.xml index 52de39e1b..3d2cf1654 100644 --- a/app/src/main/res/values/preferences_values.xml +++ b/app/src/main/res/values/preferences_values.xml @@ -55,7 +55,7 @@ - Default + 0,00 0,25 0,33 0,5 diff --git a/app/src/test/java/io/github/wulkanowy/utils/GradeExtensionTest.kt b/app/src/test/java/io/github/wulkanowy/utils/GradeExtensionTest.kt index 31618fd4f..2bba619f0 100644 --- a/app/src/test/java/io/github/wulkanowy/utils/GradeExtensionTest.kt +++ b/app/src/test/java/io/github/wulkanowy/utils/GradeExtensionTest.kt @@ -41,9 +41,9 @@ class GradeExtensionTest { } @Test - fun changeModifier_default() { - assertEquals(.33, createGrade(5, .0, .33).changeModifier(.0, .0).modifier, .0) - assertEquals(-.33, createGrade(5, .0, -.33).changeModifier(.0, .0).modifier, .0) + fun changeModifier_zero() { + assertEquals(.0, createGrade(5, .0, .5).changeModifier(.0, .0).modifier, .0) + assertEquals(.0, createGrade(5, .0, -.5).changeModifier(.0, .0).modifier, .0) } @Test