App re-starts if settings are changed to make sure that new settings are picked up properly.

This commit is contained in:
Graham Jones
2016-01-16 23:03:56 +00:00
parent 6d30e15e15
commit 108e890dcc
3 changed files with 43 additions and 4 deletions

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="uk.org.openseizuredetector" package="uk.org.openseizuredetector"
android:versionCode="18" android:versionCode="19"
android:versionName="2.0b" > android:versionName="2.0c" >
<uses-sdk android:minSdkVersion="14" /> <uses-sdk android:minSdkVersion="14" />

View File

@@ -25,6 +25,8 @@
package uk.org.openseizuredetector; package uk.org.openseizuredetector;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.preference.PreferenceActivity; import android.preference.PreferenceActivity;
import android.os.Bundle; import android.os.Bundle;
@@ -35,12 +37,17 @@ import android.widget.Toast;
import java.util.List; import java.util.List;
public class PrefActivity extends PreferenceActivity { public class PrefActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
private String TAG = "PreferenceActivity"; private String TAG = "PreferenceActivity";
private OsdUtil mUtil;
private boolean mPrefChanged = false;
private Context mContext;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
mUtil = new OsdUtil(getApplicationContext());
mContext = getApplicationContext();
} }
/** /**
@@ -96,10 +103,42 @@ public class PrefActivity extends PreferenceActivity {
Log.v(TAG, "onStart()"); Log.v(TAG, "onStart()");
} }
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
Log.v(TAG, "SharedPreference " + s + " Changed.");
//mUtil.showToast("Shared Preference " + s + " Changed.");
mPrefChanged = true;
}
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
Log.v(TAG, "onStart()"); Log.v(TAG, "onResume()");
SharedPreferences SP = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
SP.registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onPause() {
super.onPause();
SharedPreferences SP = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
SP.unregisterOnSharedPreferenceChangeListener(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.v(TAG, "onDestroy. mPrefChanged=" + mPrefChanged);
if (mPrefChanged) {
mUtil.showToast("Settings Changed - re-starting OpenSeizureDetector....");
Intent intent = new Intent(getApplicationContext(), StartupActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
} }
/** /**