diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2020-03-19 17:54:32 -0600 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2020-03-19 18:55:45 -0600 |
commit | 8451321a790d38f3a6932edc852cdda5c8469df9 (patch) | |
tree | 0f30e28b1ca9c7c458e56eb5817a8b042b566f6e /ui/src/main/java/com/wireguard/android/preference/KernelModuleDisablerPreference.java | |
parent | 90050a00081dbbc43bddd828cb7d3a8014edc404 (diff) |
preferences: rewrite in kotlin
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'ui/src/main/java/com/wireguard/android/preference/KernelModuleDisablerPreference.java')
-rw-r--r-- | ui/src/main/java/com/wireguard/android/preference/KernelModuleDisablerPreference.java | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/ui/src/main/java/com/wireguard/android/preference/KernelModuleDisablerPreference.java b/ui/src/main/java/com/wireguard/android/preference/KernelModuleDisablerPreference.java deleted file mode 100644 index 885e48b3..00000000 --- a/ui/src/main/java/com/wireguard/android/preference/KernelModuleDisablerPreference.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright © 2020 WireGuard LLC. All Rights Reserved. - * SPDX-License-Identifier: Apache-2.0 - */ - -package com.wireguard.android.preference; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.Intent; -import android.util.AttributeSet; - -import com.wireguard.android.Application; -import com.wireguard.android.R; -import com.wireguard.android.activity.SettingsActivity; -import com.wireguard.android.backend.Tunnel; -import com.wireguard.android.backend.WgQuickBackend; -import com.wireguard.util.NonNullForAll; - -import java.util.ArrayList; -import java.util.Collection; - -import androidx.preference.Preference; -import java9.util.concurrent.CompletableFuture; -import java9.util.stream.Collectors; -import java9.util.stream.StreamSupport; - -@NonNullForAll -public class KernelModuleDisablerPreference extends Preference { - private State state; - - public KernelModuleDisablerPreference(final Context context, final AttributeSet attrs) { - super(context, attrs); - state = Application.getBackend() instanceof WgQuickBackend ? State.ENABLED : State.DISABLED; - } - - @Override - public CharSequence getSummary() { - return getContext().getString(state.summaryResourceId); - } - - @Override - public CharSequence getTitle() { - return getContext().getString(state.titleResourceId); - } - - @SuppressLint("ApplySharedPref") - @Override - protected void onClick() { - if (state == State.DISABLED) { - setState(State.ENABLING); - Application.getSharedPreferences().edit().putBoolean("disable_kernel_module", false).commit(); - } else if (state == State.ENABLED) { - setState(State.DISABLING); - Application.getSharedPreferences().edit().putBoolean("disable_kernel_module", true).commit(); - } - Application.getAsyncWorker().runAsync(() -> Application.getTunnelManager().getTunnels().thenApply(observableTunnels -> { - final Collection<CompletableFuture<Tunnel.State>> c = StreamSupport.stream(observableTunnels.values()).map(t -> t.setState(Tunnel.State.DOWN).toCompletableFuture()).collect(Collectors.toCollection(ArrayList::new)); - return CompletableFuture.allOf(c.toArray(new CompletableFuture[0])).thenRun(() -> { - final Intent restartIntent = new Intent(getContext(), SettingsActivity.class); - restartIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - restartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - Application.get().startActivity(restartIntent); - System.exit(0); - }); - }).join()); - } - - private void setState(final State state) { - if (this.state == state) - return; - this.state = state; - if (isEnabled() != state.shouldEnableView) - setEnabled(state.shouldEnableView); - notifyChanged(); - } - - private enum State { - ENABLED(R.string.module_disabler_enabled_title, R.string.module_disabler_enabled_summary, true), - DISABLED(R.string.module_disabler_disabled_title, R.string.module_disabler_disabled_summary, true), - ENABLING(R.string.module_disabler_disabled_title, R.string.success_application_will_restart, false), - DISABLING(R.string.module_disabler_enabled_title, R.string.success_application_will_restart, false); - - private final boolean shouldEnableView; - private final int summaryResourceId; - private final int titleResourceId; - - State(final int titleResourceId, final int summaryResourceId, final boolean shouldEnableView) { - this.summaryResourceId = summaryResourceId; - this.titleResourceId = titleResourceId; - this.shouldEnableView = shouldEnableView; - } - } -} |