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