Split preferences into different screens to make them simpler, and enable and disable screens depending on options selected.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user