Added settings for new Heart Rate Alarms
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="uk.org.openseizuredetector"
|
package="uk.org.openseizuredetector"
|
||||||
android:versionCode="115"
|
android:versionCode="115"
|
||||||
android:versionName="4.1.3m">
|
android:versionName="4.1.3n">
|
||||||
<!-- android:allowBackup="false" -->
|
<!-- android:allowBackup="false" -->
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
<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="no_button_title">NO</string>
|
||||||
<string name="privacy_policy_button_title">Privacy Policy</string>
|
<string name="privacy_policy_button_title">Privacy Policy</string>
|
||||||
<string name="data_sharing_button_title">Data Sharing</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>
|
</resources>
|
||||||
|
|||||||
@@ -90,6 +90,43 @@
|
|||||||
android:key="HRThreshMax"
|
android:key="HRThreshMax"
|
||||||
android:summary="@string/HRThreshMaxSummary"
|
android:summary="@string/HRThreshMaxSummary"
|
||||||
android:title="@string/HRThreshMaxTitle" />
|
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>
|
||||||
|
|
||||||
<PreferenceCategory android:title="@string/O2SatSettingsTitle">
|
<PreferenceCategory android:title="@string/O2SatSettingsTitle">
|
||||||
|
|||||||
Reference in New Issue
Block a user