1
0
mirror of https://github.com/wulkanowy/wulkanowy.git synced 2025-02-20 20:54:44 +01:00

Add 0,00 grade modifier (#596)

This commit is contained in:
Mikołaj Pich 2019-11-21 17:41:41 +01:00 committed by Rafał Borcz
parent 24f605c71c
commit 41aa326f42
8 changed files with 27 additions and 13 deletions

View File

@ -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

View File

@ -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) }
}

View File

@ -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()

View File

@ -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
}
}

View File

@ -23,7 +23,7 @@
</string-array>
<string-array name="grade_modifier_entries">
<item>Domyślna</item>
<item>0,0</item>
<item>0,25</item>
<item>0,33</item>
<item>0,5</item>

View File

@ -13,7 +13,7 @@
<bool name="pref_default_services_wifi_only">false</bool>
<bool name="pref_default_notifications_enable">true</bool>
<bool name="pref_default_notification_debug">false</bool>
<string name="pref_default_grade_modifier_plus">0.0</string>
<string name="pref_default_grade_modifier_minus">0.0</string>
<string name="pref_default_grade_modifier_plus">0.33</string>
<string name="pref_default_grade_modifier_minus">0.33</string>
<bool name="pref_default_fill_message_content">true</bool>
</resources>

View File

@ -55,7 +55,7 @@
</string-array>
<string-array name="grade_modifier_entries">
<item>Default</item>
<item>0,00</item>
<item>0,25</item>
<item>0,33</item>
<item>0,5</item>

View File

@ -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