App re-starts if settings are changed to make sure that new settings are picked up properly.
This commit is contained in:
Binary file not shown.
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="uk.org.openseizuredetector"
|
||||
android:versionCode="18"
|
||||
android:versionName="2.0b" >
|
||||
android:versionCode="19"
|
||||
android:versionName="2.0c" >
|
||||
|
||||
<uses-sdk android:minSdkVersion="14" />
|
||||
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
|
||||
package uk.org.openseizuredetector;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.os.Bundle;
|
||||
@@ -35,12 +37,17 @@ import android.widget.Toast;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PrefActivity extends PreferenceActivity {
|
||||
public class PrefActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
private String TAG = "PreferenceActivity";
|
||||
private OsdUtil mUtil;
|
||||
private boolean mPrefChanged = false;
|
||||
private Context mContext;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
mUtil = new OsdUtil(getApplicationContext());
|
||||
mContext = getApplicationContext();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -96,10 +103,42 @@ public class PrefActivity extends PreferenceActivity {
|
||||
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
|
||||
public void 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();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user