ConfigList: Poor man's switch

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Samuel Holland 2017-11-24 23:44:18 -06:00
parent 3233855630
commit f1febcf9b6
2 changed files with 6 additions and 8 deletions

View File

@ -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))

View File

@ -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>