diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-06-14 04:59:24 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-06-14 05:06:18 +0200 |
commit | 0d19bf4ec526295ea495d34896778019e75da065 (patch) | |
tree | 069ddd86ba338411653a5c26e6b3570b6f507fbf /app/src/main/java/com/wireguard/android/activity | |
parent | Version bump (diff) | |
download | wireguard-android-0d19bf4ec526295ea495d34896778019e75da065.tar.xz wireguard-android-0d19bf4ec526295ea495d34896778019e75da065.zip |
global: supply backend asynchronously
We can't block for IO, so move everything to async workers or to
callbacks.
Diffstat (limited to 'app/src/main/java/com/wireguard/android/activity')
-rw-r--r-- | app/src/main/java/com/wireguard/android/activity/BaseActivity.java | 12 | ||||
-rw-r--r-- | app/src/main/java/com/wireguard/android/activity/SettingsActivity.java | 22 |
2 files changed, 23 insertions, 11 deletions
diff --git a/app/src/main/java/com/wireguard/android/activity/BaseActivity.java b/app/src/main/java/com/wireguard/android/activity/BaseActivity.java index 7d01ad1f..554eb915 100644 --- a/app/src/main/java/com/wireguard/android/activity/BaseActivity.java +++ b/app/src/main/java/com/wireguard/android/activity/BaseActivity.java @@ -54,11 +54,13 @@ public abstract class BaseActivity extends ThemeChangeAwareActivity { // The selected tunnel must be set before the superclass method recreates fragments. super.onCreate(savedInstanceState); - if (Application.getBackendType() == GoBackend.class) { - final Intent intent = GoBackend.VpnService.prepare(this); - if (intent != null) - startActivityForResult(intent, 0); - } + Application.onHaveBackend(backend -> { + if (backend.getClass() == GoBackend.class) { + final Intent intent = GoBackend.VpnService.prepare(this); + if (intent != null) + startActivityForResult(intent, 0); + } + }); } @Override diff --git a/app/src/main/java/com/wireguard/android/activity/SettingsActivity.java b/app/src/main/java/com/wireguard/android/activity/SettingsActivity.java index 03ae11a0..d91123b4 100644 --- a/app/src/main/java/com/wireguard/android/activity/SettingsActivity.java +++ b/app/src/main/java/com/wireguard/android/activity/SettingsActivity.java @@ -16,6 +16,7 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatDelegate; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceFragmentCompat; +import android.support.v7.preference.PreferenceScreen; import android.view.MenuItem; import com.wireguard.android.Application; @@ -95,12 +96,21 @@ public class SettingsActivity extends ThemeChangeAwareActivity { @Override public void onCreatePreferences(final Bundle savedInstanceState, final String key) { addPreferencesFromResource(R.xml.preferences); - if (Application.getBackendType() != WgQuickBackend.class) { - Preference pref = getPreferenceManager().findPreference("tools_installer"); - getPreferenceScreen().removePreference(pref); - pref = getPreferenceManager().findPreference("restore_on_boot"); - getPreferenceScreen().removePreference(pref); - } + final Preference wgQuickOnlyPrefs[] = { + getPreferenceManager().findPreference("tools_installer"), + getPreferenceManager().findPreference("restore_on_boot") + }; + for (final Preference pref : wgQuickOnlyPrefs) + pref.setVisible(false); + final PreferenceScreen screen = getPreferenceScreen(); + Application.onHaveBackend(backend -> { + for (final Preference pref : wgQuickOnlyPrefs) { + if (backend.getClass() == WgQuickBackend.class) + pref.setVisible(true); + else + screen.removePreference(pref); + } + }); } } } |