Update APK variant daily by default when running or never when disabled

Remove weekly (the old default) and migrate to daily
This commit is contained in:
Julian Raufelder 2022-05-16 13:00:15 +02:00
parent 63daefdcb1
commit 0ff8ac3cb5
No known key found for this signature in database
GPG Key ID: 17EE71F6634E381D
8 changed files with 94 additions and 13 deletions

View File

@ -82,7 +82,7 @@ android {
}
greendao {
schemaVersion 11
schemaVersion 12
}
configurations.all {

View File

@ -580,4 +580,66 @@ class UpgradeDatabaseTest {
}
}
@Test
fun upgrade11To12IfOldDefaultSet() {
Upgrade0To1().applyTo(db, 0)
Upgrade1To2().applyTo(db, 1)
Upgrade2To3(context).applyTo(db, 2)
Upgrade3To4().applyTo(db, 3)
Upgrade4To5().applyTo(db, 4)
Upgrade5To6().applyTo(db, 5)
Upgrade6To7().applyTo(db, 6)
Upgrade7To8().applyTo(db, 7)
Upgrade8To9(sharedPreferencesHandler).applyTo(db, 8)
Upgrade9To10(sharedPreferencesHandler).applyTo(db, 9)
Upgrade10To11().applyTo(db, 10)
sharedPreferencesHandler.setUpdateIntervalInDays(Optional.of(7))
Upgrade11To12(sharedPreferencesHandler).applyTo(db, 11)
Assert.assertThat(sharedPreferencesHandler.updateIntervalInDays(), CoreMatchers.`is`(Optional.of(1)))
}
@Test
fun upgrade11To12MonthlySet() {
Upgrade0To1().applyTo(db, 0)
Upgrade1To2().applyTo(db, 1)
Upgrade2To3(context).applyTo(db, 2)
Upgrade3To4().applyTo(db, 3)
Upgrade4To5().applyTo(db, 4)
Upgrade5To6().applyTo(db, 5)
Upgrade6To7().applyTo(db, 6)
Upgrade7To8().applyTo(db, 7)
Upgrade8To9(sharedPreferencesHandler).applyTo(db, 8)
Upgrade9To10(sharedPreferencesHandler).applyTo(db, 9)
Upgrade10To11().applyTo(db, 10)
sharedPreferencesHandler.setUpdateIntervalInDays(Optional.of(30))
Upgrade11To12(sharedPreferencesHandler).applyTo(db, 11)
Assert.assertThat(sharedPreferencesHandler.updateIntervalInDays(), CoreMatchers.`is`(Optional.of(1)))
}
@Test
fun upgrade11To12MonthlyNever() {
Upgrade0To1().applyTo(db, 0)
Upgrade1To2().applyTo(db, 1)
Upgrade2To3(context).applyTo(db, 2)
Upgrade3To4().applyTo(db, 3)
Upgrade4To5().applyTo(db, 4)
Upgrade5To6().applyTo(db, 5)
Upgrade6To7().applyTo(db, 6)
Upgrade7To8().applyTo(db, 7)
Upgrade8To9(sharedPreferencesHandler).applyTo(db, 8)
Upgrade9To10(sharedPreferencesHandler).applyTo(db, 9)
Upgrade10To11().applyTo(db, 10)
sharedPreferencesHandler.setUpdateIntervalInDays(Optional.absent())
Upgrade11To12(sharedPreferencesHandler).applyTo(db, 11)
Assert.assertThat(sharedPreferencesHandler.updateIntervalInDays(), CoreMatchers.`is`(Optional.absent()))
}
}

View File

@ -29,7 +29,8 @@ class DatabaseUpgrades {
Upgrade7To8 upgrade7To8, //
Upgrade8To9 upgrade8To9, //
Upgrade9To10 upgrade9To10, //
Upgrade10To11 upgrade10To11
Upgrade10To11 upgrade10To11, //
Upgrade11To12 upgrade11To12
) {
availableUpgrades = defineUpgrades( //
@ -43,7 +44,8 @@ class DatabaseUpgrades {
upgrade7To8, //
upgrade8To9, //
upgrade9To10, //
upgrade10To11);
upgrade10To11, //
upgrade11To12);
}
private Map<Integer, List<DatabaseUpgrade>> defineUpgrades(DatabaseUpgrade... upgrades) {

View File

@ -0,0 +1,17 @@
package org.cryptomator.data.db
import com.google.common.base.Optional
import org.cryptomator.util.SharedPreferencesHandler
import org.greenrobot.greendao.database.Database
import javax.inject.Inject
import javax.inject.Singleton
@Singleton
internal class Upgrade11To12 @Inject constructor(private val sharedPreferencesHandler: SharedPreferencesHandler) : DatabaseUpgrade(11, 12) {
override fun internalApplyTo(db: Database, origin: Int) {
when (sharedPreferencesHandler.updateIntervalInDays()) {
Optional.of(7), Optional.of(30) -> sharedPreferencesHandler.setUpdateIntervalInDays(Optional.of(1))
}
}
}

View File

@ -44,14 +44,10 @@
</string-array>
<string-array name="update_interval_entries">
<item>@string/update_interval_1d</item>
<item>@string/update_interval_1w</item>
<item>@string/update_interval_1m</item>
<item>@string/update_interval_never</item>
</string-array>
<string-array name="update_interval_values">
<item>1</item>
<item>7</item>
<item>30</item>
<item>Never</item>
</string-array>
</resources>

View File

@ -600,8 +600,6 @@
<!-- update interval names -->
<string name="update_interval_1d">Once a day</string>
<string name="update_interval_1w">Once a week</string>
<string name="update_interval_1m">Once a month</string>
<string name="update_interval_never" translatable="false">@string/lock_timeout_never</string>
</resources>

View File

@ -244,7 +244,7 @@
android:title="@string/app_name" />
<ListPreference
android:defaultValue="7"
android:defaultValue="1"
android:dialogTitle="@string/dialog_settings_update_check_interval_title"
android:entries="@array/update_interval_entries"
android:entryValues="@array/update_interval_values"

View File

@ -190,8 +190,8 @@ constructor(context: Context) : SharedPreferences.OnSharedPreferenceChangeListen
return defaultSharedPreferences.getBoolean(KEEP_UNLOCKED_WHILE_EDITING, false)
}
private fun updateIntervalInDays(): Optional<Int> {
val updateInterval = defaultSharedPreferences.getValue(UPDATE_INTERVAL, "7")
fun updateIntervalInDays(): Optional<Int> {
val updateInterval = defaultSharedPreferences.getValue(UPDATE_INTERVAL, "1")
if (updateInterval == "Never") {
return Optional.absent()
@ -200,6 +200,12 @@ constructor(context: Context) : SharedPreferences.OnSharedPreferenceChangeListen
return Optional.of(Integer.parseInt(updateInterval))
}
fun setUpdateIntervalInDays(days: Optional<Int>) = if (days.isPresent) {
defaultSharedPreferences.setValue(UPDATE_INTERVAL, days.get().toString())
} else {
defaultSharedPreferences.setValue(UPDATE_INTERVAL, "Never")
}
fun lastUpdateCheck(): Date? {
val date = defaultSharedPreferences.getString(LAST_UPDATE_CHECK, "")
if (date.isNullOrEmpty()) {
@ -254,7 +260,7 @@ constructor(context: Context) : SharedPreferences.OnSharedPreferenceChangeListen
fun vaultsRemovedDuringMigration(): Pair<String, List<String>>? {
val vaultsRemovedDuringMigrationType = defaultSharedPreferences.getString(VAULTS_REMOVED_DURING_MIGRATION_TYPE, null)
val vaultsRemovedDuringMigration = defaultSharedPreferences.getString(VAULTS_REMOVED_DURING_MIGRATION, null)
return if(vaultsRemovedDuringMigrationType != null && vaultsRemovedDuringMigration != null) {
return if (vaultsRemovedDuringMigrationType != null && vaultsRemovedDuringMigration != null) {
Pair(vaultsRemovedDuringMigrationType, ArrayList(vaultsRemovedDuringMigration.split(',')))
} else {
null