Skip to content

Commit 17bfefc

Browse files
committed
Implement upgrade mechanism
1 parent 8bbc87d commit 17bfefc

File tree

3 files changed

+32
-2
lines changed

3 files changed

+32
-2
lines changed

app/src/main/java/com/jmstudios/redmoon/activity/MainActivity.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,11 @@ package com.jmstudios.redmoon.activity
3939
import android.content.Intent
4040
import android.net.Uri
4141
import android.os.Bundle
42+
import android.preference.PreferenceManager
4243
import android.view.Menu
4344
import android.view.MenuItem
4445
import android.widget.Switch
46+
import com.jmstudios.redmoon.BuildConfig
4547

4648
import com.jmstudios.redmoon.R
4749

@@ -51,6 +53,7 @@ import com.jmstudios.redmoon.util.requestOverlayPermission
5153
import com.jmstudios.redmoon.model.Config
5254
import com.jmstudios.redmoon.service.ScreenFilterService
5355
import com.jmstudios.redmoon.util.Log
56+
import com.jmstudios.redmoon.util.appContext
5457

5558
import org.greenrobot.eventbus.EventBus
5659
import org.greenrobot.eventbus.Subscribe
@@ -73,6 +76,8 @@ class MainActivity : ThemedAppCompatActivity() {
7376

7477
// The preview will appear faster if we don't have to start the service
7578
ScreenFilterService.start()
79+
80+
handleUpgrades()
7681
}
7782

7883
override fun onCreateOptionsMenu(menu: Menu): Boolean {
@@ -141,6 +146,22 @@ class MainActivity : ThemedAppCompatActivity() {
141146
finish()
142147
}
143148

149+
private fun handleUpgrades() {
150+
if (Config.fromVersionCode < 26) {
151+
upgradeToggleModePreferences();
152+
}
153+
Config.fromVersionCode = BuildConfig.VERSION_CODE
154+
}
155+
156+
private fun upgradeToggleModePreferences() {
157+
val sharedPrefs = PreferenceManager.getDefaultSharedPreferences(appContext)
158+
val currentToggleMode: String =
159+
sharedPrefs.getString(getString(R.string.pref_key_time_toggle), "manual");
160+
sharedPrefs.edit().remove(getString(R.string.pref_key_time_toggle)).apply()
161+
Config.timeToggle = currentToggleMode != "manual"
162+
Config.useLocation = currentToggleMode == "sun"
163+
}
164+
144165
@Subscribe
145166
fun onFilterIsOnChanged(event: filterIsOnChanged) {
146167
mSwitch.isChecked = Config.filterIsOn

app/src/main/java/com/jmstudios/redmoon/model/Config.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,17 +113,19 @@ object Config {
113113
private val darkThemeFlag: Boolean
114114
get() = getBooleanPref(R.string.pref_key_dark_theme, false)
115115

116-
val timeToggle: Boolean
116+
var timeToggle: Boolean
117117
get() = getBooleanPref(R.string.pref_key_time_toggle, false)
118+
set(t) = putBooleanPref(R.string.pref_key_time_toggle, t)
118119

119120
val customTurnOnTime: String
120121
get() = getStringPref(R.string.pref_key_custom_turn_on_time, "22:00")
121122

122123
val customTurnOffTime: String
123124
get() = getStringPref(R.string.pref_key_custom_turn_off_time, "06:00")
124125

125-
val useLocation: Boolean
126+
var useLocation: Boolean
126127
get() = getBooleanPref(R.string.pref_key_use_location, false)
128+
set(t) = putBooleanPref(R.string.pref_key_use_location, t)
127129

128130
var sunsetTime: String
129131
get() = getStringPref(R.string.pref_key_sunset_time, "19:30")
@@ -160,4 +162,10 @@ object Config {
160162
get() = getBooleanPref(R.string.pref_key_automatic_brightness, true)
161163
set(a) = putBooleanPref(R.string.pref_key_automatic_brightness, a)
162164
//endregion
165+
166+
//region application
167+
var fromVersionCode: Int
168+
get() = getIntPref(R.string.pref_key_from_version_code, 0)
169+
set(c) = putIntPref(R.string.pref_key_from_version_code, c)
170+
//endregion
163171
}

app/src/main/res/values/donottranslate.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
<string name="pref_key_intro_shown" translatable="false">pref_key_intro_shown</string>
6666
<string name="pref_key_secure_suspend" translatable="false">pref_key_automatic_suspend</string>
6767
<string name="pref_key_secure_suspend_header" translatable="false">pref_key_secure_suspend_header</string>
68+
<string name="pref_key_from_version_code" translatable="false">pref_key_from_version_code</string>
6869

6970
<!-- Other -->
7071
<string name="version_name" translatable="false">2.10.0</string>

0 commit comments

Comments
 (0)