Fix service reattaching on entering settings

This commit is contained in:
Mygod
2017-11-30 22:07:32 -08:00
parent d3903cbc9d
commit 2f682ef3ec
2 changed files with 9 additions and 4 deletions
@@ -32,10 +32,7 @@ import com.takisoft.fix.support.v7.preference.PreferenceFragmentCompatDividers
class GlobalConfigFragment extends PreferenceFragmentCompatDividers {
override def onCreatePreferencesFix(bundle: Bundle, key: String) {
getPreferenceManager.setPreferenceDataStore(app.dataStore)
app.dataStore.putString(Key.serviceMode, app.dataStore.serviceMode) // temporary workaround for support lib bug
app.dataStore.putString(Key.portProxy, app.dataStore.portProxy.toString)
app.dataStore.putString(Key.portLocalDns, app.dataStore.portLocalDns.toString)
app.dataStore.putString(Key.portTransproxy, app.dataStore.portTransproxy.toString)
app.dataStore.initGlobal()
addPreferencesFromResource(R.xml.pref_global)
val switch = findPreference(Key.isAutoConnect).asInstanceOf[SwitchPreference]
switch.setOnPreferenceChangeListener((_, value) => {
@@ -125,4 +125,12 @@ final class OrmLitePreferenceDataStore(dbHelper: DBHelper) extends PreferenceDat
def plugin_=(value: String): Unit = putString(Key.plugin, value)
def dirty: Boolean = getBoolean(Key.dirty)
def dirty_=(value: Boolean): Unit = putBoolean(Key.dirty, value)
def initGlobal() {
// temporary workaround for support lib bug
if (getString(Key.serviceMode) == null) putString(Key.serviceMode, serviceMode)
if (getString(Key.portProxy) == null) putString(Key.portProxy, portProxy.toString)
if (getString(Key.portLocalDns) == null) putString(Key.portLocalDns, portLocalDns.toString)
if (getString(Key.portTransproxy) == null) putString(Key.portTransproxy, portTransproxy.toString)
}
}