Split preferences into different screens to make them simpler, and enable and disable screens depending on options selected.

This commit is contained in:
Graham Jones
2015-11-17 17:07:13 +00:00
parent f5e5c7e093
commit 16a9207ded
8 changed files with 446 additions and 3 deletions

View File

@@ -24,14 +24,138 @@
*/
package uk.org.openseizuredetector;
import android.content.SharedPreferences;
import android.preference.PreferenceActivity;
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.util.Log;
import android.widget.Toast;
import java.util.List;
public class PrefActivity extends PreferenceActivity {
private String TAG = "PreferenceActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
}
/**
* Populate the activity with the top-level headers.
*/
@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.preference_headers, target);
SharedPreferences SP = PreferenceManager
.getDefaultSharedPreferences(this.getApplicationContext());
String dataSourceStr = SP.getString("DataSource", "pebble");
Log.v(TAG, "onBuildHeaders DataSource = " + dataSourceStr);
Boolean cameraEnabled = SP.getBoolean("UseIpCamera", false);
Log.v(TAG, "onBuildHeaders cameraEnabled = " + cameraEnabled);
for (int i = 0; i < target.size(); i++) {
Header h = target.get(i);
Log.v(TAG,"found - "+h.title.toString());
if (h.title.toString().equals("Pebble Datasource")) {
Log.v(TAG, "found Pebble Datasource Header");
if (!dataSourceStr.equals("pebble")) {
Log.v(TAG, "Removing pebble settings header");
target.remove(i);
i = i-1;
}
}
if (h.title.toString().equals("Network Datasource")) {
Log.v(TAG, "found Network Datasource Header");
if (!dataSourceStr.equals("network")) {
Log.v(TAG, "Removing network settings header");
target.remove(i);
i = i -1;
}
}
if (h.title.toString().equals("Camera Settings")) {
Log.v(TAG, "found Camera Settings Header");
if (!cameraEnabled) {
Log.v(TAG, "Removing camera settings header");
target.remove(i);
i = i-1;
}
}
}
}
@Override
public void onStart() {
super.onStart();
invalidateHeaders();
Log.v(TAG, "onStart()");
}
@Override
public void onResume() {
super.onResume();
Log.v(TAG, "onStart()");
}
/**
* This fragment shows the preferences for the first header.
*/
public static class GeneralPrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.general_prefs);
}
}
/**
* This fragment contains a second-level set of preference that you
* can get to by tapping an item in the first preferences fragment.
*/
public static class AlarmPrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.alarm_prefs);
}
}
public static class PebbleDatasourcePrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.pebble_datasource_prefs);
}
}
public static class NetworkDatasourcePrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.network_datasource_prefs);
}
}
public static class CameraPrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.camera_prefs);
}
}
}