diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2017-11-27 03:13:34 +0100 |
---|---|---|
committer | Samuel Holland <samuel@sholland.org> | 2017-11-27 03:13:34 +0100 |
commit | 09d04937b9e33daa6cbba04ce174c2bcc9dc69f9 (patch) | |
tree | 9e8624bbc218a0f454f15effbeb97c9f50261598 /app/src/main/java | |
parent | 93efdcae60bc003784f40138103359c411409549 (diff) |
Settings: show quick tile config if no primary is defined
This seems like a horrific set of hacks.
Diffstat (limited to 'app/src/main/java')
3 files changed, 16 insertions, 2 deletions
diff --git a/app/src/main/java/com/wireguard/android/ConfigListPreference.java b/app/src/main/java/com/wireguard/android/ConfigListPreference.java index 131b0a43..e0bcc672 100644 --- a/app/src/main/java/com/wireguard/android/ConfigListPreference.java +++ b/app/src/main/java/com/wireguard/android/ConfigListPreference.java @@ -34,4 +34,6 @@ public class ConfigListPreference extends ListPreference { public ConfigListPreference(final Context context) { this(context, null); } + + public void show() { showDialog(null); } } diff --git a/app/src/main/java/com/wireguard/android/QuickTileService.java b/app/src/main/java/com/wireguard/android/QuickTileService.java index 31ebe568..e512b1ad 100644 --- a/app/src/main/java/com/wireguard/android/QuickTileService.java +++ b/app/src/main/java/com/wireguard/android/QuickTileService.java @@ -30,7 +30,13 @@ public class QuickTileService extends TileService { else service.enable(config.getName()); } else { - startActivityAndCollapse(new Intent(this, ConfigActivity.class)); + if (service != null && service.getConfigs().isEmpty()) { + startActivityAndCollapse(new Intent(this, ConfigActivity.class)); + } else { + final Intent intent = new Intent(this, SettingsActivity.class); + intent.putExtra("showQuickTile", true); + startActivityAndCollapse(intent); + } } } diff --git a/app/src/main/java/com/wireguard/android/SettingsActivity.java b/app/src/main/java/com/wireguard/android/SettingsActivity.java index 6fa3f897..be9f5bf4 100644 --- a/app/src/main/java/com/wireguard/android/SettingsActivity.java +++ b/app/src/main/java/com/wireguard/android/SettingsActivity.java @@ -10,7 +10,11 @@ public class SettingsActivity extends Activity { protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); final FragmentTransaction transaction = getFragmentManager().beginTransaction(); - transaction.replace(android.R.id.content, new SettingsFragment()).commit(); + final Bundle args = new Bundle(); + args.putBoolean("showQuickTile", getIntent().getBooleanExtra("showQuickTile", false)); + final SettingsFragment fragment = new SettingsFragment(); + fragment.setArguments(args); + transaction.replace(android.R.id.content, fragment).commit(); } public static class SettingsFragment extends PreferenceFragment { @@ -18,6 +22,8 @@ public class SettingsActivity extends Activity { public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); + if (getArguments().getBoolean("showQuickTile")) + ((ConfigListPreference) findPreference("primary_config")).show(); } } } |