Fix switch to VPN button in Snackbar
This commit is contained in:
@@ -20,13 +20,16 @@
|
||||
|
||||
package com.github.shadowsocks
|
||||
|
||||
import android.content.SharedPreferences
|
||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener
|
||||
import android.os.Bundle
|
||||
import android.support.design.widget.Snackbar
|
||||
import android.support.v14.preference.SwitchPreference
|
||||
import be.mygod.preference.PreferenceFragment
|
||||
import com.github.shadowsocks.utils.{Key, TcpFastOpen}
|
||||
import com.github.shadowsocks.ShadowsocksApplication.app
|
||||
|
||||
class GlobalConfigFragment extends PreferenceFragment {
|
||||
class GlobalConfigFragment extends PreferenceFragment with OnSharedPreferenceChangeListener {
|
||||
override def onCreatePreferences(bundle: Bundle, key: String) {
|
||||
addPreferencesFromResource(R.xml.pref_global)
|
||||
val switch = findPreference(Key.isAutoConnect).asInstanceOf[SwitchPreference]
|
||||
@@ -53,5 +56,16 @@ class GlobalConfigFragment extends PreferenceFragment {
|
||||
tfo.setEnabled(false)
|
||||
tfo.setSummary(getString(R.string.tcp_fastopen_summary_unsupported, java.lang.System.getProperty("os.version")))
|
||||
}
|
||||
app.settings.registerOnSharedPreferenceChangeListener(this)
|
||||
}
|
||||
|
||||
override def onDestroy() {
|
||||
app.settings.unregisterOnSharedPreferenceChangeListener(this)
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
def onSharedPreferenceChanged(pref: SharedPreferences, key: String): Unit = key match {
|
||||
case Key.isNAT => findPreference(key).asInstanceOf[SwitchPreference].setChecked(pref.getBoolean(key, false))
|
||||
case _ =>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -170,7 +170,7 @@ class MainActivity extends Activity with ServiceBoundContext with Drawer.OnDrawe
|
||||
override def onServiceDisconnected(): Unit = changeState(State.IDLE)
|
||||
|
||||
private def addDisableNatToSnackbar(snackbar: Snackbar) = snackbar.setAction(R.string.switch_to_vpn, (_ =>
|
||||
if (state == State.STOPPED) app.editor.putBoolean(Key.isNAT, false)): View.OnClickListener)
|
||||
if (state == State.STOPPED) app.editor.putBoolean(Key.isNAT, false).apply()): View.OnClickListener)
|
||||
|
||||
override def binderDied() {
|
||||
detachService()
|
||||
|
||||
Reference in New Issue
Block a user