Settings: show quick tile config if no primary is defined

This seems like a horrific set of hacks.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld 2017-11-27 03:13:34 +01:00 committed by Samuel Holland
parent b0bb46382c
commit ad16d2cc7b
4 changed files with 17 additions and 3 deletions

View File

@ -34,4 +34,6 @@ public class ConfigListPreference extends ListPreference {
public ConfigListPreference(final Context context) {
this(context, null);
}
public void show() { showDialog(null); }
}

View File

@ -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);
}
}
}

View File

@ -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();
}
}
}

View File

@ -29,7 +29,7 @@
<string name="persistent_keepalive">Persistent keepalive</string>
<string name="placeholder_text">No configuration selected</string>
<string name="pre_shared_key">Pre-shared key</string>
<string name="primary_config">Primary configuration</string>
<string name="primary_config">Quick tile configuration</string>
<string name="primary_config_summary">This configuration will be controlled by the quick settings tile</string>
<string name="private_key">Private key</string>
<string name="public_key">Public key</string>