diff --git a/wear/src/main/java/info/nightscout/androidaps/watchfaces/Steampunk.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/Steampunk.java index 8842d4b531..48f7a4e792 100644 --- a/wear/src/main/java/info/nightscout/androidaps/watchfaces/Steampunk.java +++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/Steampunk.java @@ -125,31 +125,48 @@ public class Steampunk extends BaseWatchFace { if (!rawData.sAvgDelta.equals("--")) { //if a legitimate delta value is received, then... if (rawData.sAvgDelta.substring(0,1).equals("-")) deltaIsNegative = -1f; //if the delta is negative, go counter-clockwise Float AbssAvgDelta = SafeParse.stringToFloat(rawData.sAvgDelta.substring(1)) ; //get rid of the sign so it can be converted to float. + String autogranularity = "0" ; //autogranularity off //ensure the delta gauge is the right units and granularity if (!rawData.sUnits.equals("-")) { if (rawData.sUnits.equals("mmol")) { - if (sharedPrefs.getString("delta_granularity", "2").equals("1")) { //low + if (sharedPrefs.getString("delta_granularity", "2").equals("4")) { //Auto granularity + autogranularity = "1"; // low (init) + if (AbssAvgDelta < 0.3 ) { + autogranularity = "3" ; // high if below 0.3 mmol/l + } else if (AbssAvgDelta < 0.5) { + autogranularity = "2" ; // medium if below 0.5 mmol/l + } + } + if (sharedPrefs.getString("delta_granularity", "2").equals("1") || autogranularity.equals("1")) { //low mLinearLayout.setBackgroundResource(R.drawable.steampunk_gauge_mmol_10); deltaRotationAngle = (AbssAvgDelta * 30f); } - if (sharedPrefs.getString("delta_granularity", "2").equals("2")) { //medium + if (sharedPrefs.getString("delta_granularity", "2").equals("2") || autogranularity.equals("2")) { //medium mLinearLayout.setBackgroundResource(R.drawable.steampunk_gauge_mmol_05); deltaRotationAngle = (AbssAvgDelta * 60f); } - if (sharedPrefs.getString("delta_granularity", "2").equals("3")) { //high + if (sharedPrefs.getString("delta_granularity", "2").equals("3") || autogranularity.equals("3")) { //high mLinearLayout.setBackgroundResource(R.drawable.steampunk_gauge_mmol_03); deltaRotationAngle = (AbssAvgDelta * 100f); } } else { - if (sharedPrefs.getString("delta_granularity", "2").equals("1")) { //low + if (sharedPrefs.getString("delta_granularity", "2").equals("4")) { //Auto granularity + autogranularity = "1"; // low (init) + if (AbssAvgDelta < 5 ) { + autogranularity = "3" ; // high if below 5 mg/dl + } else if (AbssAvgDelta < 10) { + autogranularity = "2" ; // medium if below 10 mg/dl + } + } + if (sharedPrefs.getString("delta_granularity", "2").equals("1") || autogranularity.equals("1")) { //low mLinearLayout.setBackgroundResource(R.drawable.steampunk_gauge_mgdl_20); deltaRotationAngle = (AbssAvgDelta * 1.5f); } - if (sharedPrefs.getString("delta_granularity", "2").equals("2")) { //medium + if (sharedPrefs.getString("delta_granularity", "2").equals("2") || autogranularity.equals("2")) { //medium mLinearLayout.setBackgroundResource(R.drawable.steampunk_gauge_mgdl_10); deltaRotationAngle = (AbssAvgDelta * 3f); } - if (sharedPrefs.getString("delta_granularity", "2").equals("3")) { //high + if (sharedPrefs.getString("delta_granularity", "2").equals("3") || autogranularity.equals("3")) { //high mLinearLayout.setBackgroundResource(R.drawable.steampunk_gauge_mgdl_5); deltaRotationAngle = (AbssAvgDelta * 6f); } diff --git a/wear/src/main/res/values/arrays.xml b/wear/src/main/res/values/arrays.xml index 281da2427c..b3f80eb126 100644 --- a/wear/src/main/res/values/arrays.xml +++ b/wear/src/main/res/values/arrays.xml @@ -21,12 +21,14 @@ @string/pref_low @string/pref_medium @string/pref_high + @string/pref_auto 1 2 3 + 4 diff --git a/wear/src/main/res/values/strings.xml b/wear/src/main/res/values/strings.xml index 29b8bea72e..d003d24a18 100644 --- a/wear/src/main/res/values/strings.xml +++ b/wear/src/main/res/values/strings.xml @@ -55,6 +55,7 @@ Low Medium High + Auto Big Numbers Ring History Light Ring History