Commit 12527be0 authored by Mygod's avatar Mygod Committed by Max Lv

Fix bypass wiped on selecting off

parent 95883bac
...@@ -197,7 +197,7 @@ class AppManager : AppCompatActivity() { ...@@ -197,7 +197,7 @@ class AppManager : AppCompatActivity() {
private lateinit var proxiedApps: HashSet<String> private lateinit var proxiedApps: HashSet<String>
private lateinit var proxiedUidMap: Multimap<Int, String> private lateinit var proxiedUidMap: Multimap<Int, String>
private lateinit var toolbar: Toolbar private lateinit var toolbar: Toolbar
private lateinit var bypassSwitch: RadioButton private lateinit var bypassGroup: RadioGroup
private lateinit var appListView: RecyclerView private lateinit var appListView: RecyclerView
private lateinit var loadingView: View private lateinit var loadingView: View
private lateinit var editQuery: EditText private lateinit var editQuery: EditText
...@@ -258,30 +258,19 @@ class AppManager : AppCompatActivity() { ...@@ -258,30 +258,19 @@ class AppManager : AppCompatActivity() {
DataStore.dirty = true DataStore.dirty = true
} }
val switchListener = { switch: Boolean -> bypassGroup = findViewById(R.id.bypass_group)
DataStore.proxyApps = switch bypassGroup.check(if (DataStore.bypass) R.id.btn_bypass else R.id.btn_on)
bypassGroup.setOnCheckedChangeListener { _, checkedId ->
DataStore.dirty = true DataStore.dirty = true
if (!switch) { when (checkedId) {
finish() R.id.btn_off -> {
DataStore.proxyApps = false
finish()
}
R.id.btn_on -> DataStore.bypass = false
R.id.btn_bypass -> DataStore.bypass = true
} }
} }
val btnOn = findViewById<RadioButton>(R.id.btn_on)
val btnOff = findViewById<RadioButton>(R.id.btn_off)
(if (DataStore.proxyApps) btnOn else btnOff).isChecked = true
btnOn.setOnCheckedChangeListener { _, b ->
if (b) switchListener(true)
}
btnOff.setOnCheckedChangeListener { _, b ->
if (b) switchListener(false)
}
bypassSwitch = findViewById(R.id.btn_bypass)
bypassSwitch.isChecked = DataStore.bypass
bypassSwitch.setOnCheckedChangeListener { _, checked ->
DataStore.bypass = checked
DataStore.dirty = true
}
initProxiedApps() initProxiedApps()
loadingView = findViewById(R.id.loading) loadingView = findViewById(R.id.loading)
...@@ -340,7 +329,7 @@ class AppManager : AppCompatActivity() { ...@@ -340,7 +329,7 @@ class AppManager : AppCompatActivity() {
try { try {
val (enabled, apps) = if (i < 0) Pair(proxiedAppString, "") else val (enabled, apps) = if (i < 0) Pair(proxiedAppString, "") else
Pair(proxiedAppString.substring(0, i), proxiedAppString.substring(i + 1)) Pair(proxiedAppString.substring(0, i), proxiedAppString.substring(i + 1))
bypassSwitch.isChecked = enabled.toBoolean() bypassGroup.check(if (enabled.toBoolean()) R.id.btn_bypass else R.id.btn_on)
DataStore.individual = apps DataStore.individual = apps
DataStore.dirty = true DataStore.dirty = true
Snackbar.make(appListView, R.string.action_import_msg, Snackbar.LENGTH_LONG).show() Snackbar.make(appListView, R.string.action_import_msg, Snackbar.LENGTH_LONG).show()
......
...@@ -23,12 +23,12 @@ ...@@ -23,12 +23,12 @@
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:minWidth="40dp" android:minWidth="40dp"
android:text="@string/mode" android:text="@string/mode"
app:layout_constraintBottom_toBottomOf="@+id/radioGroup" app:layout_constraintBottom_toBottomOf="@+id/bypass_group"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/radioGroup" /> app:layout_constraintTop_toTopOf="@+id/bypass_group" />
<RadioGroup <RadioGroup
android:id="@+id/radioGroup" android:id="@+id/bypass_group"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/radioGroup" /> app:layout_constraintTop_toBottomOf="@+id/bypass_group" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment