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();
}
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9ed7bb3e..232dfc56 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -29,7 +29,7 @@
Persistent keepalive
No configuration selected
Pre-shared key
- Primary configuration
+ Quick tile configuration
This configuration will be controlled by the quick settings tile
Private key
Public key