diff options
author | Samuel Holland <samuel@sholland.org> | 2017-11-24 23:44:18 -0600 |
---|---|---|
committer | Samuel Holland <samuel@sholland.org> | 2017-11-24 23:44:18 -0600 |
commit | f1febcf9b626a97a5aa75029b3ba90c26e468b2f (patch) | |
tree | 7da180360e6b992feacbdbe3111d3d3e4baf7013 | |
parent | 32338556303ab231bcd265e36a1e617e9bfbfe69 (diff) |
ConfigList: Poor man's switch
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r-- | app/src/main/java/com/wireguard/android/backends/VpnService.java | 4 | ||||
-rw-r--r-- | app/src/main/res/layout/config_list_item.xml | 10 |
2 files changed, 6 insertions, 8 deletions
diff --git a/app/src/main/java/com/wireguard/android/backends/VpnService.java b/app/src/main/java/com/wireguard/android/backends/VpnService.java index 25eb4ade..275b719c 100644 --- a/app/src/main/java/com/wireguard/android/backends/VpnService.java +++ b/app/src/main/java/com/wireguard/android/backends/VpnService.java @@ -241,9 +241,9 @@ public class VpnService extends Service @Override protected void onPostExecute(final Boolean result) { + config.setIsEnabled(!result); if (!result) return; - config.setIsEnabled(false); enabledConfigs.remove(config.getName()); preferences.edit().putStringSet(KEY_ENABLED_CONFIGS, enabledConfigs).apply(); if (config.getName().equals(primaryName)) @@ -267,9 +267,9 @@ public class VpnService extends Service @Override protected void onPostExecute(final Boolean result) { + config.setIsEnabled(result); if (!result) return; - config.setIsEnabled(true); enabledConfigs.add(config.getName()); preferences.edit().putStringSet(KEY_ENABLED_CONFIGS, enabledConfigs).apply(); if (config.getName().equals(primaryName)) diff --git a/app/src/main/res/layout/config_list_item.xml b/app/src/main/res/layout/config_list_item.xml index 578db833..87380dee 100644 --- a/app/src/main/res/layout/config_list_item.xml +++ b/app/src/main/res/layout/config_list_item.xml @@ -20,6 +20,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/list_item_background_anim" + android:descendantFocusability="blocksDescendants" android:padding="16dp"> <TextView @@ -34,16 +35,13 @@ android:text="@{key}" android:textStyle="@{item.primary ? Typeface.DEFAULT_BOLD : Typeface.DEFAULT}" /> - <TextView + <Switch android:id="@+id/config_switch" - style="?android:attr/textAppearanceButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/config_name" android:layout_alignParentEnd="true" - android:gravity="center_vertical" - android:onClick="@{() -> item.enabled ? VpnService.instance.disable(item.name) : VpnService.instance.enable(item.name)}" - android:text="@string/toggle" - android:textColor="@{item.enabled ? @android:color/holo_green_dark : @android:color/holo_red_dark}" /> + android:checked="@{item.enabled}" + android:onCheckedChanged="@{(v, checked) -> checked ? VpnService.instance.enable(item.name) : VpnService.instance.disable(item.name)}" /> </RelativeLayout> </layout> |