mirror of
https://github.com/wulkanowy/wulkanowy.git
synced 2025-02-21 19:34:44 +01:00
Add 0,00 grade modifier (#596)
This commit is contained in:
parent
24f605c71c
commit
41aa326f42
@ -11,6 +11,8 @@ import dagger.android.AndroidInjector
|
|||||||
import dagger.android.support.DaggerApplication
|
import dagger.android.support.DaggerApplication
|
||||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||||
import eu.davidea.flexibleadapter.utils.Log
|
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.di.DaggerAppComponent
|
||||||
import io.github.wulkanowy.services.sync.SyncWorkerFactory
|
import io.github.wulkanowy.services.sync.SyncWorkerFactory
|
||||||
import io.github.wulkanowy.ui.base.ThemeManager
|
import io.github.wulkanowy.ui.base.ThemeManager
|
||||||
@ -33,6 +35,9 @@ class WulkanowyApp : DaggerApplication(), Configuration.Provider {
|
|||||||
@Inject
|
@Inject
|
||||||
lateinit var themeManager: ThemeManager
|
lateinit var themeManager: ThemeManager
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var sharedPrefProvider: SharedPrefProvider
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var appInfo: AppInfo
|
lateinit var appInfo: AppInfo
|
||||||
|
|
||||||
@ -47,6 +52,7 @@ class WulkanowyApp : DaggerApplication(), Configuration.Provider {
|
|||||||
RxJavaPlugins.setErrorHandler(::onError)
|
RxJavaPlugins.setErrorHandler(::onError)
|
||||||
Lingver.init(this)
|
Lingver.init(this)
|
||||||
themeManager.applyDefaultTheme()
|
themeManager.applyDefaultTheme()
|
||||||
|
migrateSharedPreferences()
|
||||||
|
|
||||||
initLogging()
|
initLogging()
|
||||||
initCrashlytics(this, appInfo)
|
initCrashlytics(this, appInfo)
|
||||||
@ -62,6 +68,13 @@ class WulkanowyApp : DaggerApplication(), Configuration.Provider {
|
|||||||
registerActivityLifecycleCallbacks(ActivityLifecycleLogger())
|
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) {
|
private fun onError(error: Throwable) {
|
||||||
//RxJava's too deep stack traces may cause SOE on older android devices
|
//RxJava's too deep stack traces may cause SOE on older android devices
|
||||||
val cause = error.cause
|
val cause = error.cause
|
||||||
|
@ -8,6 +8,10 @@ import javax.inject.Singleton
|
|||||||
@Singleton
|
@Singleton
|
||||||
class SharedPrefProvider @Inject constructor(private val sharedPref: SharedPreferences) {
|
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) {
|
fun putLong(key: String, value: Long, sync: Boolean = false) {
|
||||||
sharedPref.edit(sync) { putLong(key, value) }
|
sharedPref.edit(sync) { putLong(key, value) }
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ import androidx.work.NetworkType.UNMETERED
|
|||||||
import androidx.work.PeriodicWorkRequestBuilder
|
import androidx.work.PeriodicWorkRequestBuilder
|
||||||
import androidx.work.WorkManager
|
import androidx.work.WorkManager
|
||||||
import io.github.wulkanowy.data.db.SharedPrefProvider
|
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.data.repositories.preferences.PreferencesRepository
|
||||||
import io.github.wulkanowy.services.sync.channels.DebugChannel
|
import io.github.wulkanowy.services.sync.channels.DebugChannel
|
||||||
import io.github.wulkanowy.services.sync.channels.NewEntriesChannel
|
import io.github.wulkanowy.services.sync.channels.NewEntriesChannel
|
||||||
@ -32,10 +33,6 @@ class SyncManager @Inject constructor(
|
|||||||
appInfo: AppInfo
|
appInfo: AppInfo
|
||||||
) {
|
) {
|
||||||
|
|
||||||
companion object {
|
|
||||||
private const val APP_VERSION_CODE_KEY = "app_version_code"
|
|
||||||
}
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
if (now().isHolidays) stopSyncWorker()
|
if (now().isHolidays) stopSyncWorker()
|
||||||
|
|
||||||
|
@ -67,8 +67,8 @@ inline val Grade.colorStringId: Int
|
|||||||
|
|
||||||
fun Grade.changeModifier(plusModifier: Double, minusModifier: Double): Grade {
|
fun Grade.changeModifier(plusModifier: Double, minusModifier: Double): Grade {
|
||||||
return when {
|
return when {
|
||||||
modifier != .0 && plusModifier != .0 && modifier > 0 -> copy(modifier = plusModifier)
|
modifier > 0 -> copy(modifier = plusModifier)
|
||||||
modifier != .0 && minusModifier != .0 && modifier < 0 -> copy(modifier = -minusModifier)
|
modifier < 0 -> copy(modifier = -minusModifier)
|
||||||
else -> this
|
else -> this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string-array name="grade_modifier_entries">
|
<string-array name="grade_modifier_entries">
|
||||||
<item>Domyślna</item>
|
<item>0,0</item>
|
||||||
<item>0,25</item>
|
<item>0,25</item>
|
||||||
<item>0,33</item>
|
<item>0,33</item>
|
||||||
<item>0,5</item>
|
<item>0,5</item>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
<bool name="pref_default_services_wifi_only">false</bool>
|
<bool name="pref_default_services_wifi_only">false</bool>
|
||||||
<bool name="pref_default_notifications_enable">true</bool>
|
<bool name="pref_default_notifications_enable">true</bool>
|
||||||
<bool name="pref_default_notification_debug">false</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_plus">0.33</string>
|
||||||
<string name="pref_default_grade_modifier_minus">0.0</string>
|
<string name="pref_default_grade_modifier_minus">0.33</string>
|
||||||
<bool name="pref_default_fill_message_content">true</bool>
|
<bool name="pref_default_fill_message_content">true</bool>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string-array name="grade_modifier_entries">
|
<string-array name="grade_modifier_entries">
|
||||||
<item>Default</item>
|
<item>0,00</item>
|
||||||
<item>0,25</item>
|
<item>0,25</item>
|
||||||
<item>0,33</item>
|
<item>0,33</item>
|
||||||
<item>0,5</item>
|
<item>0,5</item>
|
||||||
|
@ -41,9 +41,9 @@ class GradeExtensionTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun changeModifier_default() {
|
fun changeModifier_zero() {
|
||||||
assertEquals(.33, createGrade(5, .0, .33).changeModifier(.0, .0).modifier, .0)
|
assertEquals(.0, createGrade(5, .0, .5).changeModifier(.0, .0).modifier, .0)
|
||||||
assertEquals(-.33, createGrade(5, .0, -.33).changeModifier(.0, .0).modifier, .0)
|
assertEquals(.0, createGrade(5, .0, -.5).changeModifier(.0, .0).modifier, .0)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Loading…
x
Reference in New Issue
Block a user