aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/android/activity
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-06-14 04:59:24 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2018-06-14 05:06:18 +0200
commit0d19bf4ec526295ea495d34896778019e75da065 (patch)
tree069ddd86ba338411653a5c26e6b3570b6f507fbf /app/src/main/java/com/wireguard/android/activity
parentVersion bump (diff)
downloadwireguard-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.java12
-rw-r--r--app/src/main/java/com/wireguard/android/activity/SettingsActivity.java22
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);
+ }
+ });
}
}
}