Added settings for new Heart Rate Alarms
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="uk.org.openseizuredetector"
|
||||
android:versionCode="115"
|
||||
android:versionName="4.1.3m">
|
||||
android:versionName="4.1.3n">
|
||||
<!-- android:allowBackup="false" -->
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||
|
||||
83
app/src/main/java/uk/org/openseizuredetector/SdAlgHr.java
Normal file
83
app/src/main/java/uk/org/openseizuredetector/SdAlgHr.java
Normal file
@@ -0,0 +1,83 @@
|
||||
package uk.org.openseizuredetector;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Handler;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.util.Log;
|
||||
|
||||
public class SdAlgHr {
|
||||
private final static String TAG = "SdAlgHr";
|
||||
private Context mContext;
|
||||
private OsdUtil mUtil;
|
||||
private boolean mSimpleHrAlarmActive;
|
||||
private double mSimpleHrAlarmThreshMin;
|
||||
private double mSimpleHrAlarmThreshMax;
|
||||
|
||||
private boolean mAdaptiveHrAlarmActive;
|
||||
private double mAdaptiveHrAlarmWindowSecs;
|
||||
private int mAdaptiveHrAlarmWindowDp;
|
||||
private double mAdaptiveHrAlarmThresh;
|
||||
private boolean mAverageHrAlarmActive;
|
||||
private double mAverageHrAlarmWindowSecs;
|
||||
private int mAverageHrAlarmWindowDp;
|
||||
private double mAverageHrAlarmThreshMin;
|
||||
private double mAverageHrAlarmThreshMax;
|
||||
|
||||
|
||||
public SdAlgHr(Context context) {
|
||||
Log.d(TAG, "SdAlgHr Constructor");
|
||||
mContext = context;
|
||||
mUtil = new OsdUtil(mContext, new Handler());
|
||||
}
|
||||
|
||||
public void close() {
|
||||
Log.d(TAG, "close()");
|
||||
}
|
||||
|
||||
public float getAlarmState(SdData sdData) {
|
||||
return (0);
|
||||
}
|
||||
|
||||
private double readDoublePref(SharedPreferences SP, String prefName, String defVal) {
|
||||
String prefValStr;
|
||||
double retVal = -1;
|
||||
try {
|
||||
prefValStr = SP.getString(prefName, defVal);
|
||||
retVal = Double.parseDouble(prefValStr);
|
||||
} catch (Exception ex) {
|
||||
Log.v(TAG, "readDoublePref() - Problem with preference!");
|
||||
mUtil.writeToSysLogFile(TAG+".readDoublePref() - Problem with preference!");
|
||||
mUtil.showToast(TAG+":"+mContext.getString(R.string.problem_parsing_preferences));
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
private void updatePrefs() {
|
||||
/**
|
||||
* updatePrefs() - update basic settings from the SharedPreferences
|
||||
* - defined in res/xml/prefs.xml
|
||||
*/
|
||||
Log.i(TAG, "updatePrefs()");
|
||||
mUtil.writeToSysLogFile(TAG+".updatePrefs()");
|
||||
|
||||
SharedPreferences SP = PreferenceManager
|
||||
.getDefaultSharedPreferences(mContext);
|
||||
mSimpleHrAlarmActive = SP.getBoolean("HRAlarmActive", false);
|
||||
mSimpleHrAlarmThreshMin = readDoublePref(SP, "HRThreshMin", "20");
|
||||
mSimpleHrAlarmThreshMax = readDoublePref(SP, "HRThreshMax", "150");
|
||||
|
||||
|
||||
mAdaptiveHrAlarmActive = SP.getBoolean("HRAdaptiveAlarmActive", false);
|
||||
mAdaptiveHrAlarmWindowSecs = readDoublePref(SP, "HRAdaptiveAlarmWindowSecs", "30");
|
||||
mAdaptiveHrAlarmWindowDp = (int)Math.round(mAdaptiveHrAlarmWindowSecs/5.0);
|
||||
mAdaptiveHrAlarmThresh = readDoublePref(SP, "HRAdaptiveAlarmThresh", "20");
|
||||
|
||||
mAverageHrAlarmActive = SP.getBoolean("HRAverageAlarmActive", false);
|
||||
mAverageHrAlarmWindowSecs = readDoublePref(SP, "HRAverageAlarmWindowSecs", "120");
|
||||
mAverageHrAlarmWindowDp = (int)Math.round(mAverageHrAlarmWindowSecs/5.0);
|
||||
mAverageHrAlarmThreshMin = readDoublePref(SP, "HRAverageAlarmThreshMin", "40");
|
||||
mAverageHrAlarmThreshMax = readDoublePref(SP, "HRAverageAlarmThreshMax", "120");
|
||||
|
||||
}
|
||||
}
|
||||
@@ -488,4 +488,17 @@
|
||||
<string name="no_button_title">NO</string>
|
||||
<string name="privacy_policy_button_title">Privacy Policy</string>
|
||||
<string name="data_sharing_button_title">Data Sharing</string>
|
||||
<string name="HRAdaptiveAlarmEnabledTitle">Enable Adaptive Threshold Heart Rate Alarm</string>
|
||||
<string name="HRAdaptiveAlarmWindowTitle">Moving Average Time Window (seconds)</string>
|
||||
<string name="HRAdaptiveAlarmWindowSummary">Window must be a multiple of 5 seconds</string>
|
||||
<string name="HRAdaptiveThreshTitle">Adaptive Threshold Offset (bpm)</string>
|
||||
<string name="HRAdaptiveThreshSummary">The alarm threshold offset from the average measured Heart Rate (bpm)</string>
|
||||
<string name="HRAverageAlarmEnabledTitle">Enable Alarm based on rolling average heart rate</string>
|
||||
<string name="HRAverageAlarmEnabledSummary" />
|
||||
<string name="HRAverageThreshMinSummary">Lower Heart Rate Threshold for Average Heart Rate Alarm</string>
|
||||
<string name="HRAverageThreshMinTitle">Lower Threshold for Average Heart Rate Alarm</string>
|
||||
<string name="HRAverageThreshMaxSummary">Upper Heart Rate Threshold for Average Heart Rate Alarm</string>
|
||||
<string name="HRAverageThreshMaxTitle">Upper Threshold for Average Heart Rate Alarm</string>
|
||||
<string name="HRAverageAlarmWindowTitle">Window size (in seconds) for Average Heart Rate Calculation</string>
|
||||
<string name="HRAverageAlarmWindowSummary">Window size (in seconds) for Average Heart Rate Calculation - must be a factor of 5 seconds.</string>
|
||||
</resources>
|
||||
|
||||
@@ -90,6 +90,43 @@
|
||||
android:key="HRThreshMax"
|
||||
android:summary="@string/HRThreshMaxSummary"
|
||||
android:title="@string/HRThreshMaxTitle" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="HRAdaptiveAlarmActive"
|
||||
android:summary="@string/HRAlarmEnabledSummary"
|
||||
android:title="@string/HRAdaptiveAlarmEnabledTitle" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="30"
|
||||
android:key="HRAdaptiveAlarmWindowSecs"
|
||||
android:summary="@string/HRAdaptiveAlarmWindowSummary"
|
||||
android:title="@string/HRAdaptiveAlarmWindowTitle" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="20"
|
||||
android:key="HRAdaptiveAlarmThresh"
|
||||
android:summary="@string/HRAdaptiveThreshSummary"
|
||||
android:title="@string/HRAdaptiveThreshTitle" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="HRAverageAlarmActive"
|
||||
android:summary="@string/HRAverageAlarmEnabledSummary"
|
||||
android:title="@string/HRAverageAlarmEnabledTitle" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="40"
|
||||
android:key="HRAverageAlarmThreshMin"
|
||||
android:summary="@string/HRAverageThreshMinSummary"
|
||||
android:title="@string/HRAverageThreshMinTitle" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="120"
|
||||
android:key="HRAverageAlarmThreshMax"
|
||||
android:summary="@string/HRAverageThreshMaxSummary"
|
||||
android:title="@string/HRAverageThreshMaxTitle" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="120"
|
||||
android:key="HRAverageAlarmWindowSecs"
|
||||
android:summary="@string/HRAverageAlarmWindowSummary"
|
||||
android:title="@string/HRAverageAlarmWindowTitle" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/O2SatSettingsTitle">
|
||||
|
||||
Reference in New Issue
Block a user