From 64446f07c5de59e566fa671a7f38ae40649c8163 Mon Sep 17 00:00:00 2001 From: diabetesdt1 Date: Thu, 17 Aug 2017 12:40:14 +0200 Subject: [PATCH 01/21] Update strings.xml added more translations, but please review the Objectiv-Strings, it was not so easy, so i hope i have translated it right. Then, the most german varibles are translated. --- app/src/main/res/values-de/strings.xml | 55 ++++++++++++++++++++------ 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 99275d8cb8..d18ba3bdfd 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -155,18 +155,18 @@ Eingegeben durch Anderes Split - Constraints + Einschränkungen Generell Treatments - Constraint applied! - Constraints violation + Einschränkungen sind aktiv! + Einschränkungen wurden verletzt oder Limit erreicht Czech Gesetzt durch Pumpe - LOOP DISABLED BY CONSTRAINTS - After processed constraints + LOOP DEAKTIVIERT DURCH DIE ZIELSETZUNGEN + Nach dem die Zielsetzungen bearbeitet wurden Loop Manual enacts - Carbs constraint applied + Kohlenhydrate Einschränkung erreicht Reset Datenbanken Minimale Dauer Erneure Behandlungen von NS @@ -300,7 +300,7 @@ Knopf 3 Config Builder vor %d min - "AKT" + AKT WEAR VP TREAT @@ -317,7 +317,7 @@ DANA "CONF" "CPP" - "CP" + CP Bitte verwenden Sie nur Ziffern. Pflichtfeld Telefonnummer ist nicht gültig. @@ -462,7 +462,7 @@ Aktiviere lokalen Broadcast. Logge App-Start in NS Kein Upload zu NS - Alle an NS gesendete Daten verworfen. AAPS ist verbunden, aber keine Änderungen in NS ist fertig + Alle an NS gesendete Daten werden verworfen. AAPS ist verbunden, aber es wird keine Änderungen in NS gemacht Hoch Niedrig Gesetzt zu %f @@ -478,9 +478,9 @@ Nightscout URL eingeben Nightscout URL Verifiziere, dass der BZ und Pumpen Insulin Daten in Nightscout erfolgreich hoch geladen wurden - Konfiguriere Anzeige und das Monitoring und analysiere Basal und die Faktoren + Konfiguriere die Anzeige und das Monitoring (NS) und analysiere die Basal-Rate und die Faktoren Lasse den OpenLoop Modus für ein paar Tage laufen und setzte manuell temp Basal-Raten - Starte ein OpenLoop + Starte den OpenLoop Modus VERALTETE DATEN Laufende Benachrichtigungen Öffne Einstellungen auf der Uhr @@ -496,7 +496,7 @@ Basal Wert [U/h] Profil Setzten vom Basal Profil fehlgeschlagen - Basal Profil in der Pumpe erfolgreich aktualisiert + Basal Profil in der Pumpe aktualisiert Profilwechsel Pumpe Pumpe nicht initialisiert! @@ -561,7 +561,7 @@ Durschnittliche Sensitivität Einstellung Extended Bolus vor %dMin - "Um das temp Basal zu stoppen, antworte mit dem Code %s" + Um das temp Basal zu stoppen, antworte mit dem Code %s Bolus %.2fU erfolgreich abgegeben xDrip hat die Kalbrierung nicht erhalten Um die Kalibrierung %.2f zu senden, antworte mit dem Code %s @@ -591,4 +591,33 @@ Model: %02X Protokoll: %02X Code: %02X Empfindlichkeitserkennung COB + Aktiviere SuperBolus Funktion im Wizard. Nicht aktivieren, wenn du nicht weißt, was es macht! ES KANN ZU EINER ÜBERDOSIERUNG AN INSULIN KOMMEN, WENN DU ES BLIND BENUTZT! + Verstehe das OpenLoop und die temp Basal Empfehlungen + Verwende AMA Autosense Funktion + Um Basal mit %.2fU/h zu starten, antworte mit dem Cod %s + Fiasp + Ultra-Rapid Oref + Zeige die Übersichtsbenachrichtigungen auch als Wear Bestätigungsmeldung auf der Uhr an. + Kurzes durschnitts delta + Rapid-Acting Oref + Default Eintrag: true. Erlaubt Autosense den Ziel-BZ-Bereich in Verbindung mit ISF und Basal anzupassen. + Intervall für Autosense [h] + Anzahl der Stunde von der Vergangenheit, die verwendet werden um die Sensitivität zu erkennen (Kohlenhydrate absorptuinszeit ist nicht enthalten) + Anhand von dieser Erfahre, entscheide wie hoch max Basal sein sollte und setzte dies in der Pumpe und den Einstellungen + Lasse es im ClosedLoop Modus mit max IOB = 0 für ein paar Tage laufen ohne zu viele Unterzuckeren zu haben + Starte den ClosedLoop Modus mit Abschaltung bei niedrigen Werte + Lasse es ein paar Tage laufen ohne das du in der Nacht Niedrig-Alarme (UZ) bekommst, bevor der BZ fällt + Passe den ClosedLoop an und erhöhe max IOB über 0 und setzte den niedrig BZ-Wert etwas runter + Lasse es 1 Woche lang erfolgreich tagsüber laufen mit ganz normalen Kohlenhydrat Eingabe + Passe Basal und Faktoren an, wenn benötigt, und aktiviere dann die Autosense-Funktion + Aktiviere zusätzliche Funktionen tagsüber, wie z.B. den Mahlzeitenassistent + Stark veraltete Daten + Stark veraltete Daten nach [min] + Dutch + Peak Time [min] + IOB Kurve Peak Time + Free-Peak Oref + DIA von %s ist zu kurz - verwende stattdessen %s! + Möglicherweise ungenau, wenn zum befüllen ein Bolus verwendet wurde! + Verhältnis From ef42193d95b646ca8706f379c22460e33b0e5ccb Mon Sep 17 00:00:00 2001 From: diabetesdt1 Date: Thu, 17 Aug 2017 22:06:10 +0200 Subject: [PATCH 02/21] Update strings.xml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Contraints translated with "Beschränkungen" (but not in the Config-Builder -> the Option to activate/show the Contraints-Tab) objectives_*_ updated dia_too_short updated --- app/src/main/res/values-de/strings.xml | 36 +++++++++++++------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index d18ba3bdfd..64fd87a44a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -144,7 +144,7 @@ NO APS SELECTED OR PROVIDED RESULT Test Alarm Avg. delta - Bolus Einschränkung angewendet + Bolus Beschränkung angewendet Ankündigung BZ Check Kohlehydrat Korrektur @@ -155,18 +155,18 @@ Eingegeben durch Anderes Split - Einschränkungen + Beschränkungen Generell Treatments - Einschränkungen sind aktiv! - Einschränkungen wurden verletzt oder Limit erreicht + Beschränkungen sind aktiv! + Beschränkungen wurden verletzt oder Limit erreicht Czech Gesetzt durch Pumpe - LOOP DEAKTIVIERT DURCH DIE ZIELSETZUNGEN - Nach dem die Zielsetzungen bearbeitet wurden + LOOP DEAKTIVIERT DURCH DIE BESCHRÄNKUNG + Nach Beschränkungen Loop Manual enacts - Kohlenhydrate Einschränkung erreicht + Kohlenhydrate Beschränkung erreicht Reset Datenbanken Minimale Dauer Erneure Behandlungen von NS @@ -591,25 +591,25 @@ Model: %02X Protokoll: %02X Code: %02X Empfindlichkeitserkennung COB - Aktiviere SuperBolus Funktion im Wizard. Nicht aktivieren, wenn du nicht weißt, was es macht! ES KANN ZU EINER ÜBERDOSIERUNG AN INSULIN KOMMEN, WENN DU ES BLIND BENUTZT! - Verstehe das OpenLoop und die temp Basal Empfehlungen - Verwende AMA Autosense Funktion - Um Basal mit %.2fU/h zu starten, antworte mit dem Cod %s + Aktiviere die SuperBolus-Funktion im Wizard. Nicht aktivieren, wenn du nicht weißt, was es macht! ES KANN ZU EINER ÜBERDOSIERUNG AN INSULIN KOMMEN, WENN DU ES BLIND BENUTZT! + "Verstehen des OpenLoops und der Temp-Basal-Empfehlungen + Verwende AMA Autosense + Um Basal mit %.2fU/h zu starten, antworte mit dem Code %s Fiasp Ultra-Rapid Oref Zeige die Übersichtsbenachrichtigungen auch als Wear Bestätigungsmeldung auf der Uhr an. - Kurzes durschnitts delta + Kurzes Durschnitts-Delta Rapid-Acting Oref Default Eintrag: true. Erlaubt Autosense den Ziel-BZ-Bereich in Verbindung mit ISF und Basal anzupassen. Intervall für Autosense [h] Anzahl der Stunde von der Vergangenheit, die verwendet werden um die Sensitivität zu erkennen (Kohlenhydrate absorptuinszeit ist nicht enthalten) - Anhand von dieser Erfahre, entscheide wie hoch max Basal sein sollte und setzte dies in der Pumpe und den Einstellungen + Anhand von dieser Erfahrung, entscheide wie hoch max Basal sein sollte und setzte dies in der Pumpe und den Einstellungen Lasse es im ClosedLoop Modus mit max IOB = 0 für ein paar Tage laufen ohne zu viele Unterzuckeren zu haben Starte den ClosedLoop Modus mit Abschaltung bei niedrigen Werte - Lasse es ein paar Tage laufen ohne das du in der Nacht Niedrig-Alarme (UZ) bekommst, bevor der BZ fällt - Passe den ClosedLoop an und erhöhe max IOB über 0 und setzte den niedrig BZ-Wert etwas runter - Lasse es 1 Woche lang erfolgreich tagsüber laufen mit ganz normalen Kohlenhydrat Eingabe - Passe Basal und Faktoren an, wenn benötigt, und aktiviere dann die Autosense-Funktion + Verwende es ein paar Tage, ohne das du in der Nacht ein Niedrig-Alarme (UZ) bekommst, bevor der BZ fällt + Fein-Einstellung des Closed-Loops, Erhöhen von max IOB über 0 und langsames Heruntersetzen des Zielbereichs. + Eine Woche erfolgreiches Looping am Tag mit regelmäßiger Kohlenhydrat-Eingabe + Passe Basal und Faktoren an, falls notwendig, und aktiviere dann die Autosense-Funktion Aktiviere zusätzliche Funktionen tagsüber, wie z.B. den Mahlzeitenassistent Stark veraltete Daten Stark veraltete Daten nach [min] @@ -617,7 +617,7 @@ Peak Time [min] IOB Kurve Peak Time Free-Peak Oref - DIA von %s ist zu kurz - verwende stattdessen %s! + DIA von %s ist zu kurz - aaps nutzt stattdessen %s! Möglicherweise ungenau, wenn zum befüllen ein Bolus verwendet wurde! Verhältnis From efb9bed3fa1b932e0e5352403ac6d6a1de4b1f32 Mon Sep 17 00:00:00 2001 From: diabetesdt1 Date: Thu, 17 Aug 2017 22:21:09 +0200 Subject: [PATCH 03/21] Update strings.xml --- app/src/main/res/values-de/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 64fd87a44a..c8317565ee 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -606,7 +606,7 @@ Anhand von dieser Erfahrung, entscheide wie hoch max Basal sein sollte und setzte dies in der Pumpe und den Einstellungen Lasse es im ClosedLoop Modus mit max IOB = 0 für ein paar Tage laufen ohne zu viele Unterzuckeren zu haben Starte den ClosedLoop Modus mit Abschaltung bei niedrigen Werte - Verwende es ein paar Tage, ohne das du in der Nacht ein Niedrig-Alarme (UZ) bekommst, bevor der BZ fällt + Verwende es ein paar Tage, und zumindest eine Nacht ohne Niedrig-Alarme (UZ), bevor du den BZ-Zielbereich senkst. Fein-Einstellung des Closed-Loops, Erhöhen von max IOB über 0 und langsames Heruntersetzen des Zielbereichs. Eine Woche erfolgreiches Looping am Tag mit regelmäßiger Kohlenhydrat-Eingabe Passe Basal und Faktoren an, falls notwendig, und aktiviere dann die Autosense-Funktion @@ -618,6 +618,6 @@ IOB Kurve Peak Time Free-Peak Oref DIA von %s ist zu kurz - aaps nutzt stattdessen %s! - Möglicherweise ungenau, wenn zum befüllen ein Bolus verwendet wurde! + Möglicherweise ungenau, wenn zum Befüllen ein Bolus verwendet wurde! Verhältnis From 4f3b5f551a6389edd24cc22555d4de0a22ccae21 Mon Sep 17 00:00:00 2001 From: Susan Date: Fri, 18 Aug 2017 20:58:54 +0200 Subject: [PATCH 04/21] moved the code of the bg update to the top before all the loop logic happens, so there would be no delay --- .../plugins/Overview/OverviewFragment.java | 55 +++++++++++-------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 342f6bd20f..ef916429fe 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -912,6 +912,34 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, return; } + Double lowLine = SP.getDouble("low_mark", 0d); + Double highLine = SP.getDouble("high_mark", 0d); + + //Start with updating the BG as it is unaffected by loop. + // **** BG value **** + if (lastBG != null) { + int color = MainApp.sResources.getColor(R.color.inrange); + if (lastBG.valueToUnits(units) < lowLine) + color = MainApp.sResources.getColor(R.color.low); + else if (lastBG.valueToUnits(units) > highLine) + color = MainApp.sResources.getColor(R.color.high); + bgView.setText(lastBG.valueToUnitsToString(units)); + arrowView.setText(lastBG.directionToSymbol()); + bgView.setTextColor(color); + arrowView.setTextColor(color); + GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData(); + if (glucoseStatus != null) { + deltaView.setText("Δ " + Profile.toUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units) + " " + units); + if (avgdeltaView != null) + avgdeltaView.setText("øΔ15m: " + Profile.toUnitsString(glucoseStatus.short_avgdelta, glucoseStatus.short_avgdelta * Constants.MGDL_TO_MMOLL, units) + + " øΔ40m: " + Profile.toUnitsString(glucoseStatus.long_avgdelta, glucoseStatus.long_avgdelta * Constants.MGDL_TO_MMOLL, units)); + } else { + deltaView.setText("Δ " + MainApp.sResources.getString(R.string.notavailable)); + if (avgdeltaView != null) + avgdeltaView.setText(""); + } + } + // open loop mode final LoopPlugin.LastRun finalLastRun = LoopPlugin.lastRun; if (Config.APS && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable) { @@ -1105,8 +1133,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, treatmentButton.setVisibility(View.GONE); } - Double lowLine = SP.getDouble("low_mark", 0d); - Double highLine = SP.getDouble("high_mark", 0d); + if (lowLine < 1) { lowLine = Profile.fromMgdlToUnits(OverviewPlugin.bgTargetLow, units); } @@ -1115,28 +1142,8 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, } // **** BG value **** - if (lastBG != null) { - int color = MainApp.sResources.getColor(R.color.inrange); - if (lastBG.valueToUnits(units) < lowLine) - color = MainApp.sResources.getColor(R.color.low); - else if (lastBG.valueToUnits(units) > highLine) - color = MainApp.sResources.getColor(R.color.high); - bgView.setText(lastBG.valueToUnitsToString(units)); - arrowView.setText(lastBG.directionToSymbol()); - bgView.setTextColor(color); - arrowView.setTextColor(color); - GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData(); - if (glucoseStatus != null) { - deltaView.setText("Δ " + Profile.toUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units) + " " + units); - if (avgdeltaView != null) - avgdeltaView.setText("øΔ15m: " + Profile.toUnitsString(glucoseStatus.short_avgdelta, glucoseStatus.short_avgdelta * Constants.MGDL_TO_MMOLL, units) + - " øΔ40m: " + Profile.toUnitsString(glucoseStatus.long_avgdelta, glucoseStatus.long_avgdelta * Constants.MGDL_TO_MMOLL, units)); - } else { - deltaView.setText("Δ " + MainApp.sResources.getString(R.string.notavailable)); - if (avgdeltaView != null) - avgdeltaView.setText(""); - } - } else { + if (lastBG == null) { //left this here as it seems you want to exit at this point if it is null... + return; } Integer flag = bgView.getPaintFlags(); From ce4aee67d050aa0f7e851aef99382f32113cfb03 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sat, 19 Aug 2017 02:50:48 +0200 Subject: [PATCH 05/21] Fix initalizing profile with default values. --- .../java/info/nightscout/androidaps/data/Profile.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/data/Profile.java b/app/src/main/java/info/nightscout/androidaps/data/Profile.java index ac7cc0edd0..89157570ed 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/Profile.java +++ b/app/src/main/java/info/nightscout/androidaps/data/Profile.java @@ -75,7 +75,7 @@ public class Profile { ic = json.getJSONArray("carbratio"); if (getIc(0) == null) { int defaultIC = 25; - isf = new JSONArray("[{\"time\":\"00:00\",\"value\":\"" + defaultIC + "\",\"timeAsSeconds\":\"0\"}]"); + ic = new JSONArray("[{\"time\":\"00:00\",\"value\":\"" + defaultIC + "\",\"timeAsSeconds\":\"0\"}]"); Notification noic = new Notification(Notification.IC_MISSING, MainApp.sResources.getString(R.string.icmissing), Notification.URGENT); MainApp.bus().post(new EventNewNotification(noic)); } else { @@ -84,7 +84,7 @@ public class Profile { basal = json.getJSONArray("basal"); if (getBasal(0) == null) { double defaultBasal = 0.1d; - isf = new JSONArray("[{\"time\":\"00:00\",\"value\":\"" + defaultBasal + "\",\"timeAsSeconds\":\"0\"}]"); + basal = new JSONArray("[{\"time\":\"00:00\",\"value\":\"" + defaultBasal + "\",\"timeAsSeconds\":\"0\"}]"); Notification nobasal = new Notification(Notification.BASAL_MISSING, MainApp.sResources.getString(R.string.basalmissing), Notification.URGENT); MainApp.bus().post(new EventNewNotification(nobasal)); } else { @@ -93,7 +93,7 @@ public class Profile { targetLow = json.getJSONArray("target_low"); if (getTargetLow(0) == null) { double defaultLow = units.equals(Constants.MGDL) ? 120 : 6; - isf = new JSONArray("[{\"time\":\"00:00\",\"value\":\"" + defaultLow + "\",\"timeAsSeconds\":\"0\"}]"); + targetLow = new JSONArray("[{\"time\":\"00:00\",\"value\":\"" + defaultLow + "\",\"timeAsSeconds\":\"0\"}]"); Notification notarget = new Notification(Notification.TARGET_MISSING, MainApp.sResources.getString(R.string.targetmissing), Notification.URGENT); MainApp.bus().post(new EventNewNotification(notarget)); } else { @@ -102,7 +102,7 @@ public class Profile { targetHigh = json.getJSONArray("target_high"); if (getTargetHigh(0) == null) { double defaultHigh = units.equals(Constants.MGDL) ? 160 : 8; - isf = new JSONArray("[{\"time\":\"00:00\",\"value\":\"" + defaultHigh + "\",\"timeAsSeconds\":\"0\"}]"); + targetHigh = new JSONArray("[{\"time\":\"00:00\",\"value\":\"" + defaultHigh + "\",\"timeAsSeconds\":\"0\"}]"); Notification notarget = new Notification(Notification.TARGET_MISSING, MainApp.sResources.getString(R.string.targetmissing), Notification.URGENT); MainApp.bus().post(new EventNewNotification(notarget)); } else { From 36c25cbd4569f0cd403df188d80b15c10ae11da9 Mon Sep 17 00:00:00 2001 From: warstar2187 Date: Sat, 19 Aug 2017 21:35:03 +0900 Subject: [PATCH 06/21] Update strings.xml --- app/src/main/res/values-ko/strings.xml | 329 ++++++++++++++++++------- 1 file changed, 235 insertions(+), 94 deletions(-) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 0365cc5461..33cf3ef855 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -1,10 +1,10 @@ - Treatments 안전설정 + 관리 안전설정 최대 허용 식사주입인슐린 [U] 최대 허용 탄수화물 [g] 설정 - NS에서 Treatments 새로고침 + NS에서 관리 새로고침 백업 테스트 알람 데이터베이스 초기화 @@ -50,7 +50,7 @@ 가상 펌프 기본 기초주입량 임시기초주입 - 확장 식사주입 + 확장식사주입 배터리 인슐린 잔량 OK @@ -58,7 +58,7 @@ 최근 실행 입력 변수 혈당 상태 - Current temp + 현재 임시기초 IOB 데이터 프로파일 식사 데이터 @@ -68,24 +68,25 @@ No pump available 변경사항 없음 요청 - Rate + 주입량 기간 근거 혈당 Delta Delta: Avg. delta - Config Builder + 구성 관리자 목표 OpenAPS MA - Overview + 개요 NS 프로파일 Simple 프로파일 - Treatments + 임시기초 + 관리 가상펌프 - Careportal + 케어포털 펌프 - Treatments + 관리 임시기초주입 프로파일 APS @@ -96,8 +97,8 @@ Loop Loop APS - After processed constraints - Set by pump + 제약 적용 후 + 펌프로 설정 최근 주입 OK 취소 @@ -106,7 +107,7 @@ 플러그인이 사용불가능 합니다 제한 위반 식사주입 전송 에러 - Tempbasal delivery error + 임시기초 전송 에러 기초주입 값 [%] % (100% = 현재) 새 임시기초주입 적용: @@ -128,9 +129,12 @@ APS 모드 Closed Loop Open Loop - Loop Disabled + Loop 비활성화됨 + Loop 비활성화하기 + Loop 활성화하기 새로운 제안이 있습니다 지원하지 않는 NSClient 버전입니다 + 지원하지 않는 Nightscout 버전입니다 NSClient 가 설치되지 않았습니다. 기록이 삭제됩니다! NS에서 혈당데이터가 확인 가능합니다. NS에서 펌프상태가 확인 가능합니다. @@ -141,40 +145,40 @@ 기초주입 IOB 식사주입 제한이 적용되었습니다 탄수화물 제한이 적용되었습니다 - BG Check - Announcement - Note - Question - Exercise - Pump Site Change - CGM Sensor Insert - CGM Sensor Start - Insulin Cartridge Change + 혈당 체크 + 알림 + 노트 + 의문 + 운동 + 펌프 위치 변경 + CGM 센서 삽입 + CGM 센서 시작 + 인슐린 카트리지 교체 프로파일 변경 - Snack Bolus - Meal Bolus - Correction Bolus - Combo Bolus - Temp Basal Start - Temp Basal End - Carbs correction - OpenAPS Offline - Event type - Other - Meter - Sensor - Carbs - Insulin - Carb time - Split - Duration - Percent - Absolute - Notes - Event time - Profile + 간식 주입 + 식사 주입 + 교정 주입 + 콤보 주입 + 임시 기초 시작 + 임시 기초 종료 + 탄수화물 교정 + OpenAPS 오프라인 + 이벤트 종류 + 기타 + 측정기 + 센서 + 탄수화물 + 인슐린 + 탄수화물 시간 + 분할 + 기간 + 퍼센트 + 절대값 + 노트 + 이벤트 시간 + 프로파일 Entered By - Glucose type + 혈당 종류 아직 NS에서 프로파일을 로드하지 못했습니다. 임시기초주입 확장식사주입 @@ -191,13 +195,17 @@ 파일을 찾을 수 없습니다 설정 저장하기 설정 불러오기 + Dutch German Spanish Greek + Italian + Russian + Swedish 임시기초주입 최대량 [U/hr] 이 값은 OpenAPS에서 Max Basal(임시기초주입 최대량)로 설정되는 값입니다 OpenAPS가 주입할수 있는 최대 기초주입 IOB [U] - 이 값은 OpenAPS에서 Max IOB라고 부르는 값입니다\n기본값은 0으로 설정되어 있습니다. 몇일 혹은 몇주 정도 사용 후에 적정한 정도에 따라 값을 조정할 수 있습니다. + 이 값은 OpenAPS에서 Max IOB라고 부르는 값입니다\n기본값은 0으로 설정되어 있습니다. 몇일 혹은 몇주 정도 사용 후 적절한 값으로 변경할 수 있습니다. Bulgarian 닫기 언어 @@ -208,16 +216,15 @@ 프로파일을 펌프에 동기화하기 다나R 펌프 설정 Nightscout - End User License Agreement + 최종 사용자 라이선스 동의서 MUST NOT BE USED TO MAKE MEDICAL DECISIONS. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - I UNDERSTAND AND AGREE + 모두 이해하였고 동의합니다. 저장 블루투스 어댑터를 찾지 못했습니다 선택된 기기를 찾지 못했습니다 펌프 연결 에러 - 최근 연결 펌프 IOB - Daily units + 하루 인슐린양 최근 식사주입: 시간 전 사용할수 없는 입력 데이터 @@ -246,14 +253,14 @@ Finger Sensor Manual - Temporary Target - Temporary Target Cancel + 임시 목표 + 임시 목표 취소 DanaR 프로파일 설정 인슐린활동시간(DIA) [h] Duration of Insulin Activity 기초주입 프로파일 갱신 실패 - History - Reload + 과거기록 + 새로고침 업로드중 E bolus DS bolus @@ -263,11 +270,11 @@ basal hour 혈당 탄수화물 - alarm + 알람 Total %d records uploaded S bolus - Alarms - Basal Hours + 알람 + 기초주입 시간 식사주입 탄수화물 일일 인슐린 @@ -284,8 +291,8 @@ 막힘 정지 정지 누름 - Waiting for pump - 펌프를 기다리고 있습니다. Click to refresh. + 펌프를 기다리는 중 + 펌프를 기다리고 있습니다. 새로고침 하려면 클릭하세요. %.2fU을 주입합니다 나이트스카우트를 세팅하고, 기초주입과 비율을 분석한다. 나이트스카우트에서 혈당 데이터가 잘 들어오는지, 펌프데이터가 업로드 되는지 확인한다. @@ -309,15 +316,17 @@ %.2f limited to %.2f 값 %s 은 하드리밋(Hard Limit)를 벗어났습니다 원격 기초주입설정이 허가되지 않았습니다 + 원격 명령이 허가되지 않았습니다 기초주입 %.2fU/h 을 실행하려면 %s 를 입력하고 답장하세요 + %d분동안 Loop 일시중지하려면 %s 를 입력하고 답장하세요 Temp basal %.2fU/h for %d min started successfully - Temp basal start failed + 임시기초 시작을 실패하였습니다. 임시기초주입을 중지하려면 %s 를 입력하고 답장하세요 - Temp basal canceled - Canceling temp basal failed - 알려지지 않은 명령이거나 잘못된 답장입니다 - 퀵마법사 - 퀵마법사 설정 + 임시기초가 취소되었습니다. + 임시기초 취소를 실패하였습니다. + 알려지지 않은 명령이거나 잘못된 답장입니다. + 빠른마법사 + 빠른마법사 설정 버튼명: 탄수화물: 유효기간: @@ -327,10 +336,10 @@ Meal Corr 한국어 - 액션 + 실행 AndroidAPS 시작 - NS upload only (disabled sync) - NS upload only. 로컬소스(xDrip)가 선택되지 않으면 SGV에는 효력이 없습니다. NS프로파일이 사용중이라면 프로파일에는 효력이 없습니다. + NS에 업로드만 하기(동기화 불능) + NS에 업로드만 하기. 로컬소스(xDrip)가 선택되지 않으면 SGV에는 효력이 없습니다. NS프로파일이 사용중이라면 프로파일에는 효력이 없습니다. 펌프가 초기화 되지 않았습니다! 펌프가 초기화와 프로파일 설정이 되지 않았습니다! 공기/채움 @@ -347,14 +356,14 @@ mg/dl mmol/l DIA: - Target range: + 목표 범위: Edit Base-Basal: Edit Base-ISF: Edit Base-IC: Base Profile: CircadianPercentageProfile 차트 표시 범위 - Overview/스마트워치 차트 표시용 고/저혈당 선 + 개요/스마트워치 차트 표시용 고/저혈당 선 저혈당 선 고혈당 선 웨어 @@ -366,7 +375,7 @@ 펌프배터리 방전 다나R 한글 펌프 드라이버가 잘못 선택되었습니다 - Basal rate: + 기초주입량: 기초주입 프로파일 설정이 실패하였습니다 기초주입 프로파일이 펌프에 업데이트 되었습니다 펌프에서 EasyUI모드를 해제하세요 @@ -377,36 +386,37 @@ Last BG: MDI MM640g - Ongoing Notification + 연속 알림 OLD DATA - %dmin ago + %d분전 %dmin ago Local Profile OpenAPS AMA Short avg. delta Long avg. delta Array of %d elements.\nActual value: - Autosens data + Autosens 정보 Script debug AMA autosens 기능 사용하기 + NS에서 이벤트 새로고침 Eating Soon Activity Remove record: - DanaR Stats - Cumulative TDD - Exponentially Weighted TDD - Basal - Bolus - TDD - Date - Ratio - # Days - Weight + DanaR 통계 + 누적 일총량 + 지수가중 일총량 + 기초주입 + 식사주입 + 일총량 + 날짜 + 비율 + #일 + 가중 Possibly inaccurate if using boluses for priming/filling! Old Data Please Press "RELOAD" - Total Base Basal - TBB * 2 - Initializing ... + 총기초량 + 총기초량 * 2 + 초기화중 ... ACT CONF LOOP @@ -430,7 +440,6 @@ Always use short average delta instead of simple delta Useful when data from unfiltered sources like xDrip gets noisy. 고급 설정 - Firmware: Model: %02X Protocol: %02X Code: %02X 프로파일 Default value: 3\nThis is a key OpenAPS safety cap. What this does is limit your basals to be 3x (in this people) your biggest basal rate. You likely will not need to change this, but you should be aware that’s what is discussed about “3x max daily; 4x current” for safety caps. @@ -449,7 +458,7 @@ SMS폰번호가 유효하지 않습니다 Copy To Clipboard Copied to clipboard - Show log + 로그 보기 보정 혈당 보정 보정값 %.1f을 xDrip에 전송하시겠습니까? @@ -458,7 +467,7 @@ 원격보정이 허용되지 않았습니다 보정 전송됨. xDrip에서 수신이 되도록 설정되어 있어야 합니다. xDrip에서 보정을 받지 못합니다. - Don\'t show again + 다시 보지 않기 펌프 일시중지. 상태를 새로고치려면 클릭하세요 펌프 일시중지됨 펌프 상태 가져오는중 @@ -496,17 +505,149 @@ Status: Paused Clear log - NSCLIENT이 쓰기 권한이 없습니다. 잘못된 API secret? + NSCLIENT이 쓰기 권한이 없습니다. 잘못된 API secret인지 확인해보세요 웨어 설정 IOB 자세하게 보여주기 워치페이스에 IOB를 식사주입IOB와 기초주입IOB로 나누어서 보여줍니다. not successful - please check phone - Not available + 알수없음 나이 어린이 청소년 성인 안전제한을 설정하기 위해 당뇨인의 나이를 선택하세요 - Italian + Glimp + Device does not appear to support battery optimization whitelisting! + 권한을 허용하세요. + %s needs battery optimalization whitelisting for proper performance + Loop 일시중지 + 일시중지중 (%d분) + Superbolus (%d분) + Loop 메뉴 + 1시간동안 Loop 일시중지 + 2시간동안 Loop 일시중지 + 3시간동안 Loop 일시중지 + 10시간동안 Loop 일시중지 + 30분동안 펌프 일시중지 + 1시간동안 펌프 일시중지 + 2시간동안 펌프 일시중지 + 3시간동안 펌프 일시중지 + 10시간동안 펌프 일시중지 + 재시작 + 기간이 잘못되었습니다. + Loop 일시중지됨 + Loop 재시작됨 + 15분 추이 + COB + Superbolus + 앱시작을 NS에 기록하기 + 설정을 적용하기위해 앱을 종료합니다. + DanaRv2 + 인슐린 + Fast Acting Insulin + Novorapid, Novolog, Humalog + Fiasp + INS + Fast Acting Insulin Prolonged + Enable superbolus in wizard + Enable superbolus functionality in wizard. Do not enable until you learn what it really does. IT MAY CAUSE INSULIN OVERDOSE IF USED BLINDLY! + IOB + COB + PRE + BAS + 펌웨어 + 최근 연결 + 블루투스 상태 + About + Missing SMS permission + DEV + xDrip 상태(워치) + xDrip 상태표시라인(워치) + xds + BGI 보기 + BGI를 상태라인에 추가하기 + NS에 업로드하지 않기 + NS로 보낼 모든 데이터가 버려집니다. AAPS는 NS에 연결되어 있지만 NS에는 변화가 없을것입니다. + 기초주입 최소단위 + 식사주입 최소단위 + 확장식사 + 임시목표 + 확장 식사주입 취소 + 센서 나이 + 캐뉼라 나이 + 인슐린 나이 + 시간 + 기초주입 종류 + 프로파일에서 ISF가 누락되었습니다. 가본값을 사용합니다. + 프로파일에서 IC가 누락되었습니다. 가본값을 사용합니다. + 프로파일에서 기초주입량이 누락되었습니다. 가본값을 사용합니다. + 프로파일에서 목표범위가 누락되었습니다. 가본값을 사용합니다. + 프로파일이 잘못되었습니다 !!! + 프로파일변경 + 펌프 배터리 나이 + 펌프 배터리 교체 + 알람 옵션 + Urgent high + High + Low + Urgent low + Currently set to %f + Stale data + Urgent stale data + Stale data threshold [min] + Urgent stale data threshold [min] + Interval for autosens [h] + Amount of hours in the past for sensitivity detection (carbs absorption time is excluded) + SEN + Ignore profile switch events + All profile switch events are ignored and active profile is always used + Pump + OpenAPS + Device + Uploader + 민감도 감지 + SENS + Sensitivity Oref0 + Sensitivity AAPS + 흡수 설정 + Meal max absorption time [h] + Time in hours where is expected all carbs from meal will be absorbed + 확장식사주입을 %로 표시하기 + SAGE + IAGE + CAGE + PBAGE + OAPS + UPLD + BAS + EXT + 화면 잠금 + 잠금 + By turning on Autosense feature remember to enter all eated carbs. Otherwise carbs deviations will be identified wrong as sensitivity change !! + Sensitivity WeightedAverage + OK + Cancel + needs to be activated to send values to the pump! + Not all profiles loaded! + Values not stored! + 개요 알림 + 개요 알림을 웨어확인메세지로 전달합니다. + (xDrip 같은) 다른 앱으로 브로드캐스트를 활성화합니다. + Local Broadcasts 활성화하기 + 활동 & 조절 + 탄수화물 & 식사주입 + CGM & OPENAPS + 펌프 + Basal value [U/h] + Duration [min] + IOB Curve Peak Time + Peak Time [min] + Free-Peak Oref + Rapid-Acting Oref + Ultra-Rapid Oref + "DIA of %s too short - using %s instead!" + ACTIVATE PROFILE + Date + INVALID AndroidAPS From d49eea854c342973aa19faa63d133594317023f2 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Sat, 19 Aug 2017 20:12:37 +0200 Subject: [PATCH 07/21] Multiply time passed instead of divide dia. --- .../main/java/info/nightscout/androidaps/db/Treatment.java | 4 +--- .../androidaps/plugins/Treatments/TreatmentsPlugin.java | 6 +++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java index aebd52ac30..971e1d55f1 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java +++ b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java @@ -183,10 +183,8 @@ public class Treatment implements DataPointWithLabelInterface { public Iob iobCalc(long time, double dia) { if (!isValid) return new Iob(); - InsulinInterface insulinInterface = MainApp.getInsulinIterfaceById(insulinInterfaceID); - if (insulinInterface == null) - insulinInterface = ConfigBuilderPlugin.getActiveInsulin(); + InsulinInterface insulinInterface = ConfigBuilderPlugin.getActiveInsulin(); return insulinInterface.iobCalcForTreatment(this, time, dia); } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java index acaecac190..44b54876ef 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java @@ -185,7 +185,11 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { total.iob += tIOB.iobContrib; total.activity += tIOB.activityContrib; if (!t.isSMB) { - Iob bIOB = t.iobCalc(time, dia / SP.getDouble("openapsama_bolussnooze_dia_divisor", 2.0)); + // instead of dividing the DIA that only worked on the bilinear curves, + // multiply the time the treatment is seen active. + long timeSinceTreatent = t.date - time; + long snoozeTime = t.date - (long)(timeSinceTreatent * SP.getDouble("openapsama_bolussnooze_dia_divisor", 2.0)); + Iob bIOB = t.iobCalc(snoozeTime, dia); total.bolussnooze += bIOB.iobContrib; } else { total.basaliob += t.insulin; From 9c2808bf6f163182b4fb8be9b8b7274f7d03dcdf Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Sat, 19 Aug 2017 20:37:25 +0200 Subject: [PATCH 08/21] small refactoring --- .../androidaps/plugins/Treatments/TreatmentsPlugin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java index 44b54876ef..5178c8484e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java @@ -187,8 +187,8 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { if (!t.isSMB) { // instead of dividing the DIA that only worked on the bilinear curves, // multiply the time the treatment is seen active. - long timeSinceTreatent = t.date - time; - long snoozeTime = t.date - (long)(timeSinceTreatent * SP.getDouble("openapsama_bolussnooze_dia_divisor", 2.0)); + long timeSinceTreatment = time - t.date; + long snoozeTime = t.date + (long)(timeSinceTreatment * SP.getDouble("openapsama_bolussnooze_dia_divisor", 2.0)); Iob bIOB = t.iobCalc(snoozeTime, dia); total.bolussnooze += bIOB.iobContrib; } else { From a18e2b4641e9b65adf52948cf727d18b921e9d43 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 20 Aug 2017 19:42:41 +0200 Subject: [PATCH 09/21] fix of fix :( --- .../nightscout/androidaps/data/Profile.java | 22 ++++++++++++++----- .../plugins/Overview/OverviewFragment.java | 4 ++-- .../plugins/Wear/ActionStringHandler.java | 2 +- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/data/Profile.java b/app/src/main/java/info/nightscout/androidaps/data/Profile.java index 89157570ed..984d92c4e5 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/Profile.java +++ b/app/src/main/java/info/nightscout/androidaps/data/Profile.java @@ -333,7 +333,7 @@ public class Profile { public double getMaxDailyBasal() { Double max = 0d; for (Integer hour = 0; hour < 24; hour++) { - double value = getBasal((Integer)(hour * 60 * 60)); + double value = getBasal((Integer) (hour * 60 * 60)); if (value > max) max = value; } return max; @@ -378,6 +378,11 @@ public class Profile { else return value * Constants.MMOLL_TO_MGDL; } + public static Double toMmol(Double value, String units) { + if (units.equals(Constants.MGDL)) return value * Constants.MGDL_TO_MMOLL; + else return value; + } + public static Double fromMgdlToUnits(Double value, String units) { if (units.equals(Constants.MGDL)) return value; else return value * Constants.MGDL_TO_MMOLL; @@ -393,9 +398,16 @@ public class Profile { else return DecimalFormatter.to1Decimal(valueInMmol); } - // targets are stored in mg/dl - public static String toTargetRangeString(double low, double high, String units) { - if (low == high) return toUnitsString(low, Profile.fromMgdlToUnits(low, Constants.MMOL), units); - else return toUnitsString(low, Profile.fromMgdlToUnits(low, Constants.MMOL), units) + " - " + toUnitsString(high, Profile.fromMgdlToUnits(high, Constants.MMOL), units); + // targets are stored in mg/dl but profile vary + public static String toTargetRangeString(double low, double high, String sourceUnits, String units) { + double lowMgdl = toMgdl(low, sourceUnits); + double highMgdl = toMgdl(high, sourceUnits); + double lowMmol = toMmol(low, sourceUnits); + double highMmol = toMmol(high, sourceUnits); + if (low == high) + return toUnitsString(lowMgdl, lowMmol, units); + else + return toUnitsString(lowMgdl, lowMmol, units) + " - " + toUnitsString(highMgdl, highMmol, units); + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 342f6bd20f..f50da429d7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -952,11 +952,11 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, tempTargetView.setTextColor(Color.BLACK); tempTargetView.setBackgroundColor(MainApp.sResources.getColor(R.color.tempTargetBackground)); tempTargetView.setVisibility(View.VISIBLE); - tempTargetView.setText(Profile.toTargetRangeString(tempTarget.low, tempTarget.high, units)); + tempTargetView.setText(Profile.toTargetRangeString(tempTarget.low, tempTarget.high, Constants.MGDL, units)); } else { tempTargetView.setTextColor(Color.WHITE); tempTargetView.setBackgroundColor(MainApp.sResources.getColor(R.color.tempTargetDisabledBackground)); - tempTargetView.setText(Profile.toTargetRangeString(profile.getTargetLow(), profile.getTargetHigh(), units)); + tempTargetView.setText(Profile.toTargetRangeString(profile.getTargetLow(), profile.getTargetHigh(), units, units)); tempTargetView.setVisibility(View.VISIBLE); } if (Config.NSCLIENT && tempTarget == null) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index a4bbd34f1c..66d673a5fb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -472,7 +472,7 @@ public class ActionStringHandler { //Check for Temp-Target: TempTarget tempTarget = MainApp.getConfigBuilder().getTempTargetFromHistory(System.currentTimeMillis()); if (tempTarget != null) { - ret += "Temp Target: " + Profile.toTargetRangeString(tempTarget.low, tempTarget.low, profile.getUnits()); + ret += "Temp Target: " + Profile.toTargetRangeString(tempTarget.low, tempTarget.low, Constants.MGDL, profile.getUnits()); ret += "\nuntil: " + DateUtil.timeString(tempTarget.originalEnd()); ret += "\n\n"; } From c91988081f764a70f83fd5532e3c4e416d84bca6 Mon Sep 17 00:00:00 2001 From: Patrik Nilsson Date: Mon, 21 Aug 2017 00:01:12 +0200 Subject: [PATCH 10/21] Update strings.xml Updated some changes. Milos, I jjust copied the hole SV xml-file. :-) --- app/src/main/res/values-sv/strings.xml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 91d1dec374..f8aff3bad7 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -73,7 +73,7 @@ Pump Kanyl Byte Fråga CP - Bolus för Mellis + Snack Bolus Temp Basal Slut Temp Basal Start Temp Mål BG @@ -142,7 +142,7 @@ Datum Exponentiellt viktad TDD Gammal Data Vg tryck \"Ladda om\" - Ratio + Kvot Använd förlängd bolus med >200% Värde ej korrekt angivet Se profil @@ -169,7 +169,7 @@ Frånkoppla pump i 2 h Frånkoppla pump i 30 min Frånkoppla pump i 3 h - AVBÖJ + TA BORT Ignorera profilbyten Alla profilbyten ignoreras och aktiv profil används alltid Visa inte detta igen @@ -329,7 +329,7 @@ Enheter: Säkerhet vid behandling Max tillåtna KH (g) - Max tillåten + Max tillåten bolus [E] E TOTAL Korr @@ -581,5 +581,9 @@ Delta: IOB: %dmin sedan - AndroidAPS - \ No newline at end of file + Gammal data tröskelvärde + Bråttom gammal data tröskelvärde + Bråttom hög + Bråttom låg + Bråttom gammal data + From 6b0bf5860cadf0bb8a4302297847d1b8f6d1ef7f Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Tue, 22 Aug 2017 00:41:23 +0200 Subject: [PATCH 11/21] Use bolusstep as step for insulin correction in wizard --- .../androidaps/plugins/Overview/Dialogs/WizardDialog.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java index c68bbb19d7..befd6c30f4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java @@ -243,7 +243,8 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com editBg.setParams(0d, 0d, 500d, 0.1d, new DecimalFormat("0.0"), false, textWatcher); editCarbs.setParams(0d, 0d, (double) maxCarbs, 1d, new DecimalFormat("0"), false, textWatcher); - editCorr.setParams(0d, -maxCorrection, maxCorrection, 0.05d, new DecimalFormat("0.00"), false, textWatcher); + double bolusstep = MainApp.getConfigBuilder().getPumpDescription().bolusStep; + editCorr.setParams(0d, -maxCorrection, maxCorrection, bolusstep, new DecimalFormat("0.00"), false, textWatcher); editCarbTime.setParams(0d, -60d, 60d, 5d, new DecimalFormat("0"), false); initDialog(); From 3f8dea1197d46c6149857c95626c0411105b9705 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Tue, 22 Aug 2017 12:56:17 +0200 Subject: [PATCH 12/21] add invalid treatments to charts in "invalid" colour --- .../java/info/nightscout/androidaps/db/Treatment.java | 8 ++++---- .../androidaps/plugins/Overview/OverviewFragment.java | 2 -- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java index 971e1d55f1..78eee7f437 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java +++ b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java @@ -8,8 +8,6 @@ import com.j256.ormlite.table.DatabaseTable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Date; -import java.util.List; import java.util.Objects; import info.nightscout.androidaps.Constants; @@ -17,7 +15,6 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.data.Iob; import info.nightscout.androidaps.interfaces.InsulinInterface; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; -import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.plugins.Overview.graphExtensions.DataPointWithLabelInterface; import info.nightscout.androidaps.plugins.Overview.graphExtensions.PointsWithLabelGraphSeries; import info.nightscout.utils.DateUtil; @@ -170,7 +167,10 @@ public class Treatment implements DataPointWithLabelInterface { @Override public int getColor() { - return Color.CYAN; + if (isValid) + return Color.CYAN; + else + return MainApp.instance().getResources().getColor(android.R.color.holo_red_light); } @Override diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index f50da429d7..edb9863a59 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -1598,8 +1598,6 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, for (int tx = 0; tx < treatments.size(); tx++) { Treatment t = treatments.get(tx); - if (!t.isValid) - continue; if (t.getX() < fromTime || t.getX() > endTime) continue; t.setY(getNearestBg((long) t.getX(), bgReadingsArray)); filteredTreatments.add(t); From 7ea33c7de466807bf6bdde104424a8d5134e5d4c Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Tue, 22 Aug 2017 12:57:03 +0200 Subject: [PATCH 13/21] bugfix: fill as invalid treatments if triggered from phone --- .../androidaps/plugins/Actions/dialogs/FillDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java index 8a4ec0be38..9618b2c0b5 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java @@ -164,7 +164,7 @@ public class FillDialog extends DialogFragment implements OnClickListener { DetailedBolusInfo detailedBolusInfo = new DetailedBolusInfo(); detailedBolusInfo.insulin = finalInsulinAfterConstraints; detailedBolusInfo.context = context; - detailedBolusInfo.source = Source.NONE; + detailedBolusInfo.source = Source.USER; detailedBolusInfo.isValid = false; // do not count it in IOB (for pump history) PumpEnactResult result = pump.deliverTreatment(detailedBolusInfo); if (!result.success) { From 4d33e1df977b7cbf4d775d75760a2fc8d651e214 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Tue, 22 Aug 2017 13:02:56 +0200 Subject: [PATCH 14/21] Use bolusstep granularity in fill dialog --- .../androidaps/plugins/Actions/dialogs/FillDialog.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java index 9618b2c0b5..8a4d4001cb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java @@ -69,8 +69,8 @@ public class FillDialog extends DialogFragment implements OnClickListener { insulin = (TextView) view.findViewById(R.id.treatments_newtreatment_insulinamount); Double maxInsulin = MainApp.getConfigBuilder().applyBolusConstraints(Constants.bolusOnlyForCheckLimit); - - editInsulin = new PlusMinusEditText(view, R.id.treatments_newtreatment_insulinamount, R.id.treatments_newtreatment_insulinamount_plus, R.id.treatments_newtreatment_insulinamount_minus, 0d, 0d, maxInsulin, 0.05d, new DecimalFormat("0.00"), false); + double bolusstep = MainApp.getConfigBuilder().getPumpDescription().bolusStep; + editInsulin = new PlusMinusEditText(view, R.id.treatments_newtreatment_insulinamount, R.id.treatments_newtreatment_insulinamount_plus, R.id.treatments_newtreatment_insulinamount_minus, 0d, 0d, maxInsulin, bolusstep, new DecimalFormat("0.00"), false); //setup preset buttons Button button1 = (Button) view.findViewById(R.id.fill_preset_button1); From d5ea2a2f08abbcfc21a86dfb1a76a155cba8e83b Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Tue, 22 Aug 2017 13:26:48 +0200 Subject: [PATCH 15/21] correct supercall --- .../androidaps/plugins/Overview/Dialogs/WizardDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java index befd6c30f4..bda03a8a27 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java @@ -129,7 +129,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com @Override public void onResume() { - super.onPause(); + super.onResume(); MainApp.bus().register(this); } From 97d0140614063f84f863f17e071c828bdf1390a4 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sat, 19 Aug 2017 19:56:16 +0200 Subject: [PATCH 16/21] Remove now unused dia, insulinInterfaceId from Treatment. --- .../androidaps/data/DetailedBolusInfo.java | 1 - .../androidaps/db/ExtendedBolus.java | 2 +- .../androidaps/db/TemporaryBasal.java | 2 +- .../nightscout/androidaps/db/Treatment.java | 23 ------------------- .../InsulinFastacting/ActivityGraph.java | 11 ++++----- .../plugins/PumpDanaR/DanaRPlugin.java | 4 ++-- .../PumpDanaRKorean/DanaRKoreanPlugin.java | 6 ++--- .../plugins/PumpDanaRv2/DanaRv2Plugin.java | 6 ++--- .../plugins/Treatments/TreatmentsPlugin.java | 4 ++-- 9 files changed, 15 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/data/DetailedBolusInfo.java b/app/src/main/java/info/nightscout/androidaps/data/DetailedBolusInfo.java index aa54ac100f..2d928a5541 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/DetailedBolusInfo.java +++ b/app/src/main/java/info/nightscout/androidaps/data/DetailedBolusInfo.java @@ -17,7 +17,6 @@ import info.nightscout.androidaps.interfaces.InsulinInterface; public class DetailedBolusInfo { public long date = System.currentTimeMillis(); - public InsulinInterface insulinInterface = MainApp.getConfigBuilder().getActiveInsulin(); public String eventType = CareportalEvent.MEALBOLUS; public double insulin = 0; public double carbs = 0; diff --git a/app/src/main/java/info/nightscout/androidaps/db/ExtendedBolus.java b/app/src/main/java/info/nightscout/androidaps/db/ExtendedBolus.java index 32a9eca24c..0bd929030f 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/ExtendedBolus.java +++ b/app/src/main/java/info/nightscout/androidaps/db/ExtendedBolus.java @@ -187,7 +187,7 @@ public class ExtendedBolus implements Interval, DataPointWithLabelInterface { if (calcdate > dia_ago && calcdate <= time) { double tempBolusSize = absoluteRate() * spacing / 60d; - Treatment tempBolusPart = new Treatment(insulinInterface, dia); + Treatment tempBolusPart = new Treatment(); tempBolusPart.insulin = tempBolusSize; tempBolusPart.date = calcdate; diff --git a/app/src/main/java/info/nightscout/androidaps/db/TemporaryBasal.java b/app/src/main/java/info/nightscout/androidaps/db/TemporaryBasal.java index 751e679699..3c8f95f5af 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/TemporaryBasal.java +++ b/app/src/main/java/info/nightscout/androidaps/db/TemporaryBasal.java @@ -223,7 +223,7 @@ public class TemporaryBasal implements Interval { double tempBolusSize = netBasalRate * tempBolusSpacing / 60d; netBasalAmount += tempBolusSize; - Treatment tempBolusPart = new Treatment(insulinInterface, dia); + Treatment tempBolusPart = new Treatment(); tempBolusPart.insulin = tempBolusSize; tempBolusPart.date = calcdate; diff --git a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java index 971e1d55f1..fe16a54049 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java +++ b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java @@ -50,32 +50,9 @@ public class Treatment implements DataPointWithLabelInterface { @DatabaseField public boolean isSMB = false; - @DatabaseField - public int insulinInterfaceID = InsulinInterface.FASTACTINGINSULIN; - @DatabaseField - public double dia = Constants.defaultDIA; - public Treatment() { } - public Treatment(long date) { - this.date = date; - } - - public Treatment(InsulinInterface insulin) { - insulinInterfaceID = insulin.getId(); - dia = insulin.getDia(); - } - - public Treatment(InsulinInterface insulin, double dia) { - insulinInterfaceID = insulin.getId(); - this.dia = dia; - } - - public long getMillisecondsFromStart() { - return System.currentTimeMillis() - date; - } - public String toString() { return "Treatment{" + "date= " + date + diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/InsulinFastacting/ActivityGraph.java b/app/src/main/java/info/nightscout/androidaps/plugins/InsulinFastacting/ActivityGraph.java index 5458337782..3eda06fb37 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/InsulinFastacting/ActivityGraph.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/InsulinFastacting/ActivityGraph.java @@ -9,7 +9,6 @@ import com.jjoe64.graphview.series.DataPoint; import com.jjoe64.graphview.series.LineGraphSeries; import java.util.ArrayList; -import java.util.Date; import java.util.List; import info.nightscout.androidaps.data.Iob; @@ -39,14 +38,14 @@ public class ActivityGraph extends GraphView { double dia = insulin.getDia(); int hours = (int) Math.floor(dia + 1); - Treatment t = new Treatment(insulin, dia); + Treatment t = new Treatment(); t.date = 0; t.insulin = 1d; LineGraphSeries activitySeries = null; LineGraphSeries iobSeries = null; - List activityArray = new ArrayList(); - List iobArray = new ArrayList(); + List activityArray = new ArrayList<>(); + List iobArray = new ArrayList<>(); for (long time = 0; time <= hours * 60 * 60 * 1000; time += 5 * 60 * 1000L) { Iob iob = t.iobCalc(time, dia); @@ -56,7 +55,7 @@ public class ActivityGraph extends GraphView { DataPoint[] activityDataPoints = new DataPoint[activityArray.size()]; activityDataPoints = activityArray.toArray(activityDataPoints); - addSeries(activitySeries = new LineGraphSeries(activityDataPoints)); + addSeries(activitySeries = new LineGraphSeries<>(activityDataPoints)); activitySeries.setThickness(8); getViewport().setXAxisBoundsManual(true); @@ -68,7 +67,7 @@ public class ActivityGraph extends GraphView { DataPoint[] iobDataPoints = new DataPoint[iobArray.size()]; iobDataPoints = iobArray.toArray(iobDataPoints); - getSecondScale().addSeries(iobSeries = new LineGraphSeries(iobDataPoints)); + getSecondScale().addSeries(iobSeries = new LineGraphSeries<>(iobDataPoints)); iobSeries.setDrawBackground(true); iobSeries.setColor(Color.MAGENTA); iobSeries.setBackgroundColor(Color.argb(70, 255, 0, 255)); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRPlugin.java index 2e01ee662d..bc5b23ad92 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRPlugin.java @@ -104,7 +104,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C pumpDescription.isRefillingCapable = true; } - ServiceConnection mConnection = new ServiceConnection() { + private ServiceConnection mConnection = new ServiceConnection() { public void onServiceDisconnected(ComponentName name) { log.debug("Service is disconnected"); @@ -298,7 +298,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C ConfigBuilderPlugin configBuilderPlugin = MainApp.getConfigBuilder(); detailedBolusInfo.insulin = configBuilderPlugin.applyBolusConstraints(detailedBolusInfo.insulin); if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0) { - Treatment t = new Treatment(detailedBolusInfo.insulinInterface); + Treatment t = new Treatment(); boolean connectionOK = false; if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0) connectionOK = sExecutionService.bolus(detailedBolusInfo.insulin, (int) detailedBolusInfo.carbs, t); PumpEnactResult result = new PumpEnactResult(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/DanaRKoreanPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/DanaRKoreanPlugin.java index 84552946ae..354db54c48 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/DanaRKoreanPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/DanaRKoreanPlugin.java @@ -72,8 +72,6 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, DanaRInterf public static PumpDescription pumpDescription = new PumpDescription(); - String textStatus = ""; - public DanaRKoreanPlugin() { useExtendedBoluses = SP.getBoolean("danar_useextended", false); @@ -107,7 +105,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, DanaRInterf pumpDescription.isRefillingCapable = true; } - ServiceConnection mConnection = new ServiceConnection() { + private ServiceConnection mConnection = new ServiceConnection() { public void onServiceDisconnected(ComponentName name) { log.debug("Service is disconnected"); @@ -301,7 +299,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, DanaRInterf ConfigBuilderPlugin configBuilderPlugin = MainApp.getConfigBuilder(); detailedBolusInfo.insulin = configBuilderPlugin.applyBolusConstraints(detailedBolusInfo.insulin); if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0) { - Treatment t = new Treatment(detailedBolusInfo.insulinInterface); + Treatment t = new Treatment(); boolean connectionOK = false; if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0) connectionOK = sExecutionService.bolus(detailedBolusInfo.insulin, (int) detailedBolusInfo.carbs, t); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/DanaRv2Plugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/DanaRv2Plugin.java index 0697a69af7..ca1e1e6e3e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/DanaRv2Plugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/DanaRv2Plugin.java @@ -73,8 +73,6 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface, public static PumpDescription pumpDescription = new PumpDescription(); public DanaRv2Plugin() { - SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - Context context = MainApp.instance().getApplicationContext(); Intent intent = new Intent(context, DanaRv2ExecutionService.class); context.bindService(intent, mConnection, Context.BIND_AUTO_CREATE); @@ -105,7 +103,7 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface, pumpDescription.isRefillingCapable = true; } - ServiceConnection mConnection = new ServiceConnection() { + private ServiceConnection mConnection = new ServiceConnection() { public void onServiceDisconnected(ComponentName name) { log.debug("Service is disconnected"); @@ -288,7 +286,7 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface, detailedBolusInfo.insulin = configBuilderPlugin.applyBolusConstraints(detailedBolusInfo.insulin); if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0) { DetailedBolusInfoStorage.add(detailedBolusInfo); // will be picked up on reading history - Treatment t = new Treatment(detailedBolusInfo.insulinInterface); + Treatment t = new Treatment(); boolean connectionOK = false; if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0) connectionOK = sExecutionService.bolus(detailedBolusInfo.insulin, (int) detailedBolusInfo.carbs, System.currentTimeMillis() + detailedBolusInfo.carbTime * 60 * 1000 + 1000, t); // +1000 to make the record different diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java index 5178c8484e..0f5a6c582e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java @@ -413,7 +413,7 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { @Override public boolean addToHistoryTreatment(DetailedBolusInfo detailedBolusInfo) { - Treatment treatment = new Treatment(detailedBolusInfo.insulinInterface); + Treatment treatment = new Treatment(); treatment.date = detailedBolusInfo.date; treatment.source = detailedBolusInfo.source; treatment.pumpId = detailedBolusInfo.pumpId; @@ -427,7 +427,7 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { boolean newRecordCreated = MainApp.getDbHelper().createOrUpdate(treatment); //log.debug("Adding new Treatment record" + treatment.toString()); if (detailedBolusInfo.carbTime != 0) { - Treatment carbsTreatment = new Treatment(detailedBolusInfo.insulinInterface); + Treatment carbsTreatment = new Treatment(); carbsTreatment.source = detailedBolusInfo.source; carbsTreatment.pumpId = detailedBolusInfo.pumpId; // but this should never happen carbsTreatment.date = detailedBolusInfo.date + detailedBolusInfo.carbTime * 60 * 1000L + 1000L; // add 1 sec to make them different records From 59c7dbef277241e595ec87a3fb8cb333d847f6ae Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sat, 19 Aug 2017 03:15:20 +0200 Subject: [PATCH 17/21] Fix some warnings / simplify a bit. --- .../plugins/InsulinFastacting/InsulinFastactingFragment.java | 2 +- .../InsulinFastactingProlongedFragment.java | 2 +- .../plugins/InsulinOrefCurves/InsulinOrefFreePeakFragment.java | 2 +- .../InsulinOrefCurves/InsulinOrefRapidActingFragment.java | 2 +- .../InsulinOrefCurves/InsulinOrefUltraRapidActingFragment.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/InsulinFastacting/InsulinFastactingFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/InsulinFastacting/InsulinFastactingFragment.java index 84741656f5..f62d063193 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/InsulinFastacting/InsulinFastactingFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/InsulinFastacting/InsulinFastactingFragment.java @@ -49,7 +49,7 @@ public class InsulinFastactingFragment extends Fragment { private void updateGUI() { insulinName.setText(insulinFastactingPlugin.getFriendlyName()); insulinComment.setText(insulinFastactingPlugin.getComment()); - insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + new Double(insulinFastactingPlugin.getDia()).toString() + "h"); + insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(insulinFastactingPlugin.getDia()) + "h"); insulinGraph.show(insulinFastactingPlugin); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/InsulinFastactingProlonged/InsulinFastactingProlongedFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/InsulinFastactingProlonged/InsulinFastactingProlongedFragment.java index e1d0143934..1747f5f4ab 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/InsulinFastactingProlonged/InsulinFastactingProlongedFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/InsulinFastactingProlonged/InsulinFastactingProlongedFragment.java @@ -50,7 +50,7 @@ public class InsulinFastactingProlongedFragment extends Fragment { private void updateGUI() { insulinName.setText(insulinFastactingProlongedPlugin.getFriendlyName()); insulinComment.setText(insulinFastactingProlongedPlugin.getComment()); - insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + new Double(insulinFastactingProlongedPlugin.getDia()).toString() + "h"); + insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(insulinFastactingProlongedPlugin.getDia()) + "h"); insulinGraph.show(insulinFastactingProlongedPlugin); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/InsulinOrefCurves/InsulinOrefFreePeakFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/InsulinOrefCurves/InsulinOrefFreePeakFragment.java index 5db351fea5..f7120369b3 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/InsulinOrefCurves/InsulinOrefFreePeakFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/InsulinOrefCurves/InsulinOrefFreePeakFragment.java @@ -51,7 +51,7 @@ public class InsulinOrefFreePeakFragment extends Fragment { private void updateGUI() { insulinName.setText(insulinPlugin.getFriendlyName()); insulinComment.setText(insulinPlugin.getComment()); - insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + new Double(insulinPlugin.getDia()).toString() + "h"); + insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(insulinPlugin.getDia()) + "h"); insulinGraph.show(insulinPlugin); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/InsulinOrefCurves/InsulinOrefRapidActingFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/InsulinOrefCurves/InsulinOrefRapidActingFragment.java index ef11435805..e30c087d21 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/InsulinOrefCurves/InsulinOrefRapidActingFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/InsulinOrefCurves/InsulinOrefRapidActingFragment.java @@ -51,7 +51,7 @@ public class InsulinOrefRapidActingFragment extends Fragment { private void updateGUI() { insulinName.setText(insulinPlugin.getFriendlyName()); insulinComment.setText(insulinPlugin.getComment()); - insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + new Double(insulinPlugin.getDia()).toString() + "h"); + insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(insulinPlugin.getDia()) + "h"); insulinGraph.show(insulinPlugin); } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/InsulinOrefCurves/InsulinOrefUltraRapidActingFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/InsulinOrefCurves/InsulinOrefUltraRapidActingFragment.java index f09ba4e01d..ea05c7f2e7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/InsulinOrefCurves/InsulinOrefUltraRapidActingFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/InsulinOrefCurves/InsulinOrefUltraRapidActingFragment.java @@ -51,7 +51,7 @@ public class InsulinOrefUltraRapidActingFragment extends Fragment { private void updateGUI() { insulinName.setText(insulinPlugin.getFriendlyName()); insulinComment.setText(insulinPlugin.getComment()); - insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + new Double(insulinPlugin.getDia()).toString() + "h"); + insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(insulinPlugin.getDia()) + "h"); insulinGraph.show(insulinPlugin); } From 30372897c00e3ffd949b3a9b00dd22011ab2f5d3 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sat, 19 Aug 2017 03:22:43 +0200 Subject: [PATCH 18/21] Generify MainApp.getSpecificPlugin. --- .../java/info/nightscout/androidaps/MainApp.java | 8 +++----- .../androidaps/PreferencesActivity.java | 16 ++++++++-------- .../plugins/NSClientInternal/UploadQueue.java | 2 +- .../receivers/AckAlarmReceiver.java | 2 +- .../receivers/DBAccessReceiver.java | 2 +- .../services/NSClientService.java | 4 ++-- .../Overview/Dialogs/EditQuickWizardDialog.java | 2 +- .../plugins/Overview/NotificationStore.java | 2 +- .../plugins/Overview/OverviewFragment.java | 2 +- .../activities/QuickWizardListActivity.java | 4 ++-- .../plugins/ProfileNS/NSProfilePlugin.java | 2 +- .../services/DanaRExecutionService.java | 2 +- .../services/DanaRKoreanExecutionService.java | 2 +- .../services/DanaRv2ExecutionService.java | 2 +- .../SmsCommunicator/SmsCommunicatorPlugin.java | 16 ++++++++-------- .../plugins/Wear/ActionStringHandler.java | 14 +++++++------- 16 files changed, 40 insertions(+), 42 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java index f83f47d299..96b3a23d7b 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainApp.java +++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java @@ -263,8 +263,6 @@ public class MainApp extends Application { @Nullable public static InsulinInterface getInsulinIterfaceById(int id) { - ArrayList newList = new ArrayList<>(); - if (pluginsList != null) { for (PluginBase p : pluginsList) { if (p.getType() == PluginBase.INSULIN && ((InsulinInterface) p).getId() == id) @@ -321,11 +319,11 @@ public class MainApp extends Application { } @Nullable - public static PluginBase getSpecificPlugin(Class pluginClass) { + public static T getSpecificPlugin(Class pluginClass) { if (pluginsList != null) { for (PluginBase p : pluginsList) { - if (p.getClass() == pluginClass) - return p; + if (pluginClass.isAssignableFrom(p.getClass())) + return (T) p; } } else { log.error("pluginsList=null"); diff --git a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java index d486e898ce..5c3372123e 100644 --- a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java @@ -123,9 +123,9 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre addPreferencesFromResource(R.xml.pref_profile); } if (Config.DANAR) { - DanaRPlugin danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class); - DanaRKoreanPlugin danaRKoreanPlugin = (DanaRKoreanPlugin) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class); - DanaRv2Plugin danaRv2Plugin = (DanaRv2Plugin) MainApp.getSpecificPlugin(DanaRv2Plugin.class); + DanaRPlugin danaRPlugin = MainApp.getSpecificPlugin(DanaRPlugin.class); + DanaRKoreanPlugin danaRKoreanPlugin = MainApp.getSpecificPlugin(DanaRKoreanPlugin.class); + DanaRv2Plugin danaRv2Plugin = MainApp.getSpecificPlugin(DanaRv2Plugin.class); if (danaRPlugin.isEnabled(PluginBase.PUMP) || danaRKoreanPlugin.isEnabled(PluginBase.PUMP)) { addPreferencesFromResource(R.xml.pref_danar); } @@ -136,16 +136,16 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre addPreferencesFromResource(R.xml.pref_danarprofile); } } - VirtualPumpPlugin virtualPumpPlugin = (VirtualPumpPlugin) MainApp.getSpecificPlugin(VirtualPumpPlugin.class); + VirtualPumpPlugin virtualPumpPlugin = MainApp.getSpecificPlugin(VirtualPumpPlugin.class); if (virtualPumpPlugin != null && virtualPumpPlugin.isEnabled(PluginBase.PUMP)) { addPreferencesFromResource(R.xml.pref_virtualpump); } - InsulinOrefFreePeakPlugin insulinOrefFreePeakPlugin = (InsulinOrefFreePeakPlugin) MainApp.getSpecificPlugin(InsulinOrefFreePeakPlugin.class); + InsulinOrefFreePeakPlugin insulinOrefFreePeakPlugin = MainApp.getSpecificPlugin(InsulinOrefFreePeakPlugin.class); if(insulinOrefFreePeakPlugin.isEnabled(PluginBase.INSULIN)){ addPreferencesFromResource(R.xml.pref_insulinoreffreepeak); } - NSClientInternalPlugin nsClientInternalPlugin = (NSClientInternalPlugin) MainApp.getSpecificPlugin(NSClientInternalPlugin.class); + NSClientInternalPlugin nsClientInternalPlugin = MainApp.getSpecificPlugin(NSClientInternalPlugin.class); if (nsClientInternalPlugin != null && nsClientInternalPlugin.isEnabled(PluginBase.GENERAL)) { addPreferencesFromResource(R.xml.pref_nsclientinternal); } @@ -157,13 +157,13 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre addPreferencesFromResource(R.xml.pref_advanced); if (Config.WEAR) { - WearPlugin wearPlugin = (WearPlugin) MainApp.getSpecificPlugin(WearPlugin.class); + WearPlugin wearPlugin = MainApp.getSpecificPlugin(WearPlugin.class); if (wearPlugin != null && wearPlugin.isEnabled(PluginBase.GENERAL)) { addPreferencesFromResource(R.xml.pref_wear); } } - StatuslinePlugin statuslinePlugin = (StatuslinePlugin) MainApp.getSpecificPlugin(StatuslinePlugin.class); + StatuslinePlugin statuslinePlugin = MainApp.getSpecificPlugin(StatuslinePlugin.class); if (statuslinePlugin != null && statuslinePlugin.isEnabled(PluginBase.GENERAL)) { addPreferencesFromResource(R.xml.pref_xdripstatus); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java index 24231de63f..76a2855478 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java @@ -50,7 +50,7 @@ public class UploadQueue { public void run() { log.debug("QUEUE adding: " + dbr.data); MainApp.getDbHelper().create(dbr); - NSClientInternalPlugin plugin = (NSClientInternalPlugin) MainApp.getSpecificPlugin(NSClientInternalPlugin.class); + NSClientInternalPlugin plugin = MainApp.getSpecificPlugin(NSClientInternalPlugin.class); if (plugin != null) { plugin.resend("newdata"); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/AckAlarmReceiver.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/AckAlarmReceiver.java index 413d37d55d..6bdf824b7c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/AckAlarmReceiver.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/AckAlarmReceiver.java @@ -32,7 +32,7 @@ public class AckAlarmReceiver extends BroadcastReceiver { PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, AckAlarmReceiver.class.getSimpleName()); - NSClientInternalPlugin nsClientInternalPlugin = (NSClientInternalPlugin) MainApp.getSpecificPlugin(NSClientInternalPlugin.class); + NSClientInternalPlugin nsClientInternalPlugin = MainApp.getSpecificPlugin(NSClientInternalPlugin.class); if (!nsClientInternalPlugin.isEnabled(PluginBase.GENERAL)) { return; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java index d8ed48dba5..3546a1d5e0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java @@ -32,7 +32,7 @@ public class DBAccessReceiver extends BroadcastReceiver { PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, DBAccessReceiver.class.getSimpleName()); - NSClientInternalPlugin nsClientInternalPlugin = (NSClientInternalPlugin) MainApp.getSpecificPlugin(NSClientInternalPlugin.class); + NSClientInternalPlugin nsClientInternalPlugin = MainApp.getSpecificPlugin(NSClientInternalPlugin.class); if (!nsClientInternalPlugin.isEnabled(PluginBase.GENERAL)) { return; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index 21f863fe10..cbc18acbca 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -188,7 +188,7 @@ public class NSClientService extends Service { nsAPIhashCode = Hashing.sha1().hashString(nsAPISecret, Charsets.UTF_8).toString(); MainApp.bus().post(new EventNSClientStatus("Initializing")); - if (((NSClientInternalPlugin)MainApp.getSpecificPlugin(NSClientInternalPlugin.class)).paused) { + if (MainApp.getSpecificPlugin(NSClientInternalPlugin.class).paused) { MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "paused")); MainApp.bus().post(new EventNSClientStatus("Paused")); } else if (!nsEnabled) { @@ -421,7 +421,7 @@ public class NSClientService extends Service { MainApp.bus().post(new EventNSClientNewLog("DATA", "Data packet #" + dataCounter++ + (isDelta ? " delta" : " full"))); if (data.has("profiles")) { - JSONArray profiles = (JSONArray) data.getJSONArray("profiles"); + JSONArray profiles = data.getJSONArray("profiles"); if (profiles.length() > 0) { JSONObject profile = (JSONObject) profiles.get(profiles.length() - 1); profileStore = new ProfileStore(profile); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/EditQuickWizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/EditQuickWizardDialog.java index 352c158c1e..1179841098 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/EditQuickWizardDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/EditQuickWizardDialog.java @@ -29,7 +29,7 @@ import info.nightscout.utils.SafeParse; public class EditQuickWizardDialog extends DialogFragment implements View.OnClickListener { QuickWizard.QuickWizardEntry entry = new QuickWizard().newEmptyItem(); - QuickWizard quickWizard = ((OverviewPlugin) MainApp.getSpecificPlugin(OverviewPlugin.class)).quickWizard; + QuickWizard quickWizard = MainApp.getSpecificPlugin(OverviewPlugin.class).quickWizard; EditText buttonEdit; EditText carbsEdit; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/NotificationStore.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/NotificationStore.java index e869d1191b..8c70d3eea6 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/NotificationStore.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/NotificationStore.java @@ -56,7 +56,7 @@ public class NotificationStore { } store.add(n); - WearPlugin wearPlugin = (WearPlugin) MainApp.getSpecificPlugin(WearPlugin.class); + WearPlugin wearPlugin = MainApp.getSpecificPlugin(WearPlugin.class); if(wearPlugin!= null && wearPlugin.isEnabled()) { wearPlugin.overviewNotification(n.id, "OverviewNotification:\n" + n.text); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index f50da429d7..663a3a1a85 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -615,7 +615,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, finalLastRun.lastEnact = new Date(); finalLastRun.lastOpenModeAccept = new Date(); NSUpload.uploadDeviceStatus(); - ObjectivesPlugin objectivesPlugin = (ObjectivesPlugin) MainApp.getSpecificPlugin(ObjectivesPlugin.class); + ObjectivesPlugin objectivesPlugin = MainApp.getSpecificPlugin(ObjectivesPlugin.class); if (objectivesPlugin != null) { ObjectivesPlugin.manualEnacts++; ObjectivesPlugin.saveProgress(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/activities/QuickWizardListActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/activities/QuickWizardListActivity.java index ef2ebe240c..9fc731b4f5 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/activities/QuickWizardListActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/activities/QuickWizardListActivity.java @@ -124,7 +124,7 @@ public class QuickWizardListActivity extends AppCompatActivity implements View.O llm = new LinearLayoutManager(this); recyclerView.setLayoutManager(llm); - RecyclerViewAdapter adapter = new RecyclerViewAdapter(((OverviewPlugin) MainApp.getSpecificPlugin(OverviewPlugin.class)).quickWizard, getSupportFragmentManager()); + RecyclerViewAdapter adapter = new RecyclerViewAdapter(MainApp.getSpecificPlugin(OverviewPlugin.class).quickWizard, getSupportFragmentManager()); recyclerView.setAdapter(adapter); adButton = (Button) findViewById(R.id.overview_quickwizardactivity_add_button); @@ -164,7 +164,7 @@ public class QuickWizardListActivity extends AppCompatActivity implements View.O activity.runOnUiThread(new Runnable() { @Override public void run() { - RecyclerViewAdapter adapter = new RecyclerViewAdapter(((OverviewPlugin) MainApp.getSpecificPlugin(OverviewPlugin.class)).quickWizard, getSupportFragmentManager()); + RecyclerViewAdapter adapter = new RecyclerViewAdapter(MainApp.getSpecificPlugin(OverviewPlugin.class).quickWizard, getSupportFragmentManager()); recyclerView.swapAdapter(adapter, false); } }); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ProfileNS/NSProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ProfileNS/NSProfilePlugin.java index 32d3f625d3..758521d5a8 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ProfileNS/NSProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ProfileNS/NSProfilePlugin.java @@ -109,7 +109,7 @@ public class NSProfilePlugin implements PluginBase, ProfileInterface { PumpInterface pump = MainApp.getConfigBuilder(); if (SP.getBoolean("syncprofiletopump", false)) { if (pump.setNewBasalProfile(MainApp.getConfigBuilder().getProfile()) == PumpInterface.SUCCESS) { - SmsCommunicatorPlugin smsCommunicatorPlugin = (SmsCommunicatorPlugin) MainApp.getSpecificPlugin(SmsCommunicatorPlugin.class); + SmsCommunicatorPlugin smsCommunicatorPlugin = MainApp.getSpecificPlugin(SmsCommunicatorPlugin.class); if (smsCommunicatorPlugin != null && smsCommunicatorPlugin.isEnabled(PluginBase.GENERAL)) { smsCommunicatorPlugin.sendNotificationToAllNumbers(MainApp.sResources.getString(R.string.profile_set_ok)); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/services/DanaRExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/services/DanaRExecutionService.java index a1d8ecff87..606eab3794 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/services/DanaRExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/services/DanaRExecutionService.java @@ -318,7 +318,7 @@ public class DanaRExecutionService extends Service { } Date now = new Date(); - if (danaRPump.lastSettingsRead.getTime() + 60 * 60 * 1000L < now.getTime() || !((DanaRPlugin)MainApp.getSpecificPlugin(DanaRPlugin.class)).isInitialized()) { + if (danaRPump.lastSettingsRead.getTime() + 60 * 60 * 1000L < now.getTime() || !MainApp.getSpecificPlugin(DanaRPlugin.class).isInitialized()) { mSerialIOThread.sendMessage(new MsgSettingShippingInfo()); mSerialIOThread.sendMessage(new MsgSettingActiveProfile()); mSerialIOThread.sendMessage(new MsgSettingMeal()); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/services/DanaRKoreanExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/services/DanaRKoreanExecutionService.java index f7ad5976b5..b7c9f8ca2c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/services/DanaRKoreanExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRKorean/services/DanaRKoreanExecutionService.java @@ -315,7 +315,7 @@ public class DanaRKoreanExecutionService extends Service { } Date now = new Date(); - if (danaRPump.lastSettingsRead.getTime() + 60 * 60 * 1000L < now.getTime() || !((DanaRKoreanPlugin)MainApp.getSpecificPlugin(DanaRKoreanPlugin.class)).isInitialized()) { + if (danaRPump.lastSettingsRead.getTime() + 60 * 60 * 1000L < now.getTime() || !MainApp.getSpecificPlugin(DanaRKoreanPlugin.class).isInitialized()) { mSerialIOThread.sendMessage(new MsgSettingShippingInfo()); mSerialIOThread.sendMessage(new MsgSettingMeal()); mSerialIOThread.sendMessage(new MsgSettingBasal_k()); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/services/DanaRv2ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/services/DanaRv2ExecutionService.java index 98d869e09c..0ac333787a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/services/DanaRv2ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/services/DanaRv2ExecutionService.java @@ -289,7 +289,7 @@ public class DanaRv2ExecutionService extends Service { } Date now = new Date(); - if (danaRPump.lastSettingsRead.getTime() + 60 * 60 * 1000L < now.getTime() || !((DanaRv2Plugin)MainApp.getSpecificPlugin(DanaRv2Plugin.class)).isInitialized()) { + if (danaRPump.lastSettingsRead.getTime() + 60 * 60 * 1000L < now.getTime() || !MainApp.getSpecificPlugin(DanaRv2Plugin.class).isInitialized()) { mSerialIOThread.sendMessage(new MsgSettingShippingInfo()); mSerialIOThread.sendMessage(new MsgSettingActiveProfile()); mSerialIOThread.sendMessage(new MsgSettingMeal()); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java index 1cf17881af..bb6fb80132 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java @@ -269,7 +269,7 @@ public class SmsCommunicatorPlugin implements PluginBase { switch (splited[1].toUpperCase()) { case "DISABLE": case "STOP": - LoopPlugin loopPlugin = (LoopPlugin) MainApp.getSpecificPlugin(LoopPlugin.class); + LoopPlugin loopPlugin = MainApp.getSpecificPlugin(LoopPlugin.class); if (loopPlugin != null && loopPlugin.isEnabled(PluginBase.LOOP)) { loopPlugin.setFragmentEnabled(PluginBase.LOOP, false); PumpEnactResult result = MainApp.getConfigBuilder().cancelTempBasal(true); @@ -283,7 +283,7 @@ public class SmsCommunicatorPlugin implements PluginBase { break; case "ENABLE": case "START": - loopPlugin = (LoopPlugin) MainApp.getSpecificPlugin(LoopPlugin.class); + loopPlugin = MainApp.getSpecificPlugin(LoopPlugin.class); if (loopPlugin != null && !loopPlugin.isEnabled(PluginBase.LOOP)) { loopPlugin.setFragmentEnabled(PluginBase.LOOP, true); reply = MainApp.sResources.getString(R.string.smscommunicator_loophasbeenenabled); @@ -294,7 +294,7 @@ public class SmsCommunicatorPlugin implements PluginBase { Answers.getInstance().logCustom(new CustomEvent("SMS_Loop_Start")); break; case "STATUS": - loopPlugin = (LoopPlugin) MainApp.getSpecificPlugin(LoopPlugin.class); + loopPlugin = MainApp.getSpecificPlugin(LoopPlugin.class); if (loopPlugin != null) { if (loopPlugin.isEnabled(PluginBase.LOOP)) { if (loopPlugin.isSuspended()) @@ -371,12 +371,12 @@ public class SmsCommunicatorPlugin implements PluginBase { } break; case "DANAR": - DanaRPlugin danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class); + DanaRPlugin danaRPlugin = MainApp.getSpecificPlugin(DanaRPlugin.class); if (danaRPlugin != null && danaRPlugin.isEnabled(PluginBase.PUMP)) { reply = danaRPlugin.shortStatus(true); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } - DanaRKoreanPlugin danaRKoreanPlugin = (DanaRKoreanPlugin) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class); + DanaRKoreanPlugin danaRKoreanPlugin = MainApp.getSpecificPlugin(DanaRKoreanPlugin.class); if (danaRKoreanPlugin != null && danaRKoreanPlugin.isEnabled(PluginBase.PUMP)) { reply = danaRKoreanPlugin.shortStatus(true); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); @@ -463,7 +463,7 @@ public class SmsCommunicatorPlugin implements PluginBase { bolusWaitingForConfirmation.processed = true; PumpInterface pumpInterface = MainApp.getConfigBuilder(); if (pumpInterface != null) { - danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class); + danaRPlugin = MainApp.getSpecificPlugin(DanaRPlugin.class); DetailedBolusInfo detailedBolusInfo = new DetailedBolusInfo(); detailedBolusInfo.insulin = bolusWaitingForConfirmation.bolusRequested; detailedBolusInfo.source = Source.USER; @@ -486,7 +486,7 @@ public class SmsCommunicatorPlugin implements PluginBase { tempBasalWaitingForConfirmation.processed = true; PumpInterface pumpInterface = MainApp.getConfigBuilder(); if (pumpInterface != null) { - danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class); + danaRPlugin = MainApp.getSpecificPlugin(DanaRPlugin.class); PumpEnactResult result = pumpInterface.setTempBasalAbsolute(tempBasalWaitingForConfirmation.tempBasal, 30, false); if (result.success) { reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_tempbasalset), result.absolute, result.duration); @@ -505,7 +505,7 @@ public class SmsCommunicatorPlugin implements PluginBase { cancelTempBasalWaitingForConfirmation.processed = true; PumpInterface pumpInterface = MainApp.getConfigBuilder(); if (pumpInterface != null) { - danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class); + danaRPlugin = MainApp.getSpecificPlugin(DanaRPlugin.class); PumpEnactResult result = pumpInterface.cancelTempBasal(true); if (result.success) { reply = MainApp.sResources.getString(R.string.smscommunicator_tempbasalcanceled); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index 66d673a5fb..e60e30d158 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -242,7 +242,7 @@ public class ActionStringHandler { } else if("opencpp".equals(act[0])){ Object activeProfile = MainApp.getConfigBuilder().getActiveProfileInterface(); - CircadianPercentageProfilePlugin cpp = (CircadianPercentageProfilePlugin) MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class); + CircadianPercentageProfilePlugin cpp = MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class); if(cpp == null || activeProfile==null || cpp != activeProfile){ sendError("CPP not activated!"); @@ -256,7 +256,7 @@ public class ActionStringHandler { } else if("cppset".equals(act[0])){ Object activeProfile = MainApp.getConfigBuilder().getActiveProfileInterface(); - CircadianPercentageProfilePlugin cpp = (CircadianPercentageProfilePlugin) MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class); + CircadianPercentageProfilePlugin cpp = MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class); if(cpp == null || activeProfile==null || cpp != activeProfile){ sendError("CPP not activated!"); @@ -271,9 +271,9 @@ public class ActionStringHandler { } else if("tddstats".equals(act[0])){ Object activePump = MainApp.getConfigBuilder().getActivePump(); - PumpInterface dana = (PumpInterface) MainApp.getSpecificPlugin(DanaRPlugin.class); - PumpInterface danaV2 = (PumpInterface) MainApp.getSpecificPlugin(DanaRv2Plugin.class); - PumpInterface danaKorean = (PumpInterface) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class); + PumpInterface dana = MainApp.getSpecificPlugin(DanaRPlugin.class); + PumpInterface danaV2 = MainApp.getSpecificPlugin(DanaRv2Plugin.class); + PumpInterface danaKorean = MainApp.getSpecificPlugin(DanaRKoreanPlugin.class); if((dana == null || dana != activePump) && @@ -336,7 +336,7 @@ public class ActionStringHandler { DateFormat df = new SimpleDateFormat("dd.MM."); String message = ""; - CircadianPercentageProfilePlugin cpp = (CircadianPercentageProfilePlugin) MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class); + CircadianPercentageProfilePlugin cpp = MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class); boolean isCPP = (cpp!= null && cpp.isEnabled(PluginBase.PROFILE)); double refTDD = 100; if(isCPP) refTDD = cpp.baseBasalSum()*2; @@ -572,7 +572,7 @@ public class ActionStringHandler { private static void setCPP(int percentage, int timeshift) { Object activeProfile = MainApp.getConfigBuilder().getActiveProfileInterface(); - CircadianPercentageProfilePlugin cpp = (CircadianPercentageProfilePlugin) MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class); + CircadianPercentageProfilePlugin cpp = MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class); if(cpp == null || activeProfile==null || cpp != activeProfile){ sendError("CPP not activated!"); From 56423028f6856206747e6365fe3b3eaaa6f06e30 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sun, 20 Aug 2017 10:52:06 +0200 Subject: [PATCH 19/21] Fix comparing non-primitives. --- .../plugins/ConstraintsSafety/SafetyPlugin.java | 10 ++++++---- .../NSClientInternal/data/NSSettingsStatus.java | 3 ++- .../plugins/Overview/Dialogs/NewTreatmentDialog.java | 3 ++- .../androidaps/plugins/Overview/OverviewFragment.java | 3 ++- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsSafety/SafetyPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsSafety/SafetyPlugin.java index c685cd472d..6880d1a21e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsSafety/SafetyPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsSafety/SafetyPlugin.java @@ -3,6 +3,8 @@ package info.nightscout.androidaps.plugins.ConstraintsSafety; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Objects; + import info.nightscout.androidaps.BuildConfig; import info.nightscout.androidaps.Config; import info.nightscout.androidaps.Constants; @@ -161,17 +163,17 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface { Double origRate = absoluteRate; if (absoluteRate > maxBasal) { absoluteRate = maxBasal; - if (Config.logConstraintsChanges && origPercentRate != Constants.basalPercentOnlyForCheckLimit) + if (Config.logConstraintsChanges && !Objects.equals(origPercentRate, Constants.basalPercentOnlyForCheckLimit)) log.debug("Limiting rate " + origRate + " by maxBasal preference to " + absoluteRate + "U/h"); } if (absoluteRate > maxBasalMult * profile.getBasal()) { absoluteRate = Math.floor(maxBasalMult * profile.getBasal() * 100) / 100; - if (Config.logConstraintsChanges && origPercentRate != Constants.basalPercentOnlyForCheckLimit) + if (Config.logConstraintsChanges && !Objects.equals(origPercentRate, Constants.basalPercentOnlyForCheckLimit)) log.debug("Limiting rate " + origRate + " by maxBasalMult to " + absoluteRate + "U/h"); } if (absoluteRate > profile.getMaxDailyBasal() * maxBasalFromDaily) { absoluteRate = profile.getMaxDailyBasal() * maxBasalFromDaily; - if (Config.logConstraintsChanges && origPercentRate != Constants.basalPercentOnlyForCheckLimit) + if (Config.logConstraintsChanges && !Objects.equals(origPercentRate, Constants.basalPercentOnlyForCheckLimit)) log.debug("Limiting rate " + origRate + " by 3 * maxDailyBasal to " + absoluteRate + "U/h"); } @@ -180,7 +182,7 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface { percentRateAfterConst = Round.ceilTo((double) percentRateAfterConst, 10d).intValue(); else percentRateAfterConst = Round.floorTo((double) percentRateAfterConst, 10d).intValue(); - if (Config.logConstraintsChanges && origPercentRate != Constants.basalPercentOnlyForCheckLimit) + if (Config.logConstraintsChanges && !Objects.equals(origPercentRate, Constants.basalPercentOnlyForCheckLimit)) log.debug("Recalculated percent rate " + percentRate + "% to " + percentRateAfterConst + "%"); return percentRateAfterConst; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSSettingsStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSSettingsStatus.java index 4829af714e..c2c3aa036f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSSettingsStatus.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSSettingsStatus.java @@ -6,6 +6,7 @@ import org.json.JSONException; import org.json.JSONObject; import java.util.Date; +import java.util.Objects; /* { @@ -188,7 +189,7 @@ public class NSSettingsStatus { return result; } } - if (settingsO.has("alarmTimeagoWarnMins") && what == "alarmTimeagoWarnMins"){ + if (settingsO.has("alarmTimeagoWarnMins") && Objects.equals(what, "alarmTimeagoWarnMins")){ Double result = settingsO.getDouble(what); return result; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewTreatmentDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewTreatmentDialog.java index 0eb8d93720..e2edb1e76a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewTreatmentDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewTreatmentDialog.java @@ -20,6 +20,7 @@ import com.crashlytics.android.answers.Answers; import com.crashlytics.android.answers.CustomEvent; import java.text.DecimalFormat; +import java.util.Objects; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; @@ -86,7 +87,7 @@ public class NewTreatmentDialog extends DialogFragment implements OnClickListene confirmMessage += getString(R.string.bolus) + ": " + insulinAfterConstraints + "U"; confirmMessage += "\n" + getString(R.string.carbs) + ": " + carbsAfterConstraints + "g"; - if (insulinAfterConstraints - insulin != 0 || carbsAfterConstraints != carbs) + if (insulinAfterConstraints - insulin != 0 || !Objects.equals(carbsAfterConstraints, carbs)) confirmMessage += "\n" + getString(R.string.constraintapllied); final double finalInsulinAfterConstraints = insulinAfterConstraints; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 663a3a1a85..8ad00bf642 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -55,6 +55,7 @@ import java.util.Calendar; import java.util.Date; import java.util.Iterator; import java.util.List; +import java.util.Objects; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; @@ -1740,7 +1741,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, public void onBindViewHolder(NotificationsViewHolder holder, int position) { Notification notification = notificationsList.get(position); holder.dismiss.setTag(notification); - if(notification.text == MainApp.sResources.getString(R.string.nsalarm_staledata)) + if(Objects.equals(notification.text, MainApp.sResources.getString(R.string.nsalarm_staledata))) holder.dismiss.setText("snooze"); holder.text.setText(notification.text); holder.time.setText(DateUtil.timeString(notification.date)); From bde57fde5f57aad167d0212a53e0f615307e4319 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Tue, 22 Aug 2017 18:28:36 +0200 Subject: [PATCH 20/21] Don't change schema. --- .../main/java/info/nightscout/androidaps/db/Treatment.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java index fe16a54049..fba0a84e5c 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java +++ b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java @@ -50,6 +50,11 @@ public class Treatment implements DataPointWithLabelInterface { @DatabaseField public boolean isSMB = false; + @DatabaseField + public int insulinInterfaceID = InsulinInterface.FASTACTINGINSULIN; // currently unused, will be used in the future + @DatabaseField + public double dia = Constants.defaultDIA; // currently unused, will be used in the future + public Treatment() { } From d6a27c1af029d67e1f9aef87cbdb7759e867bb14 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Wed, 23 Aug 2017 13:28:07 +0200 Subject: [PATCH 21/21] 1.5h --- app/build.gradle | 2 +- app/src/main/java/info/nightscout/androidaps/MainApp.java | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index c12c150513..8585b54e63 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ android { minSdkVersion 21 targetSdkVersion 23 versionCode 1500 - version "1.5g" + version "1.5h" buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", generateGitBuild() } diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java index 96b3a23d7b..338b5f2e07 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainApp.java +++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java @@ -100,8 +100,6 @@ public class MainApp extends Application { log.info("Version: " + BuildConfig.VERSION_NAME); log.info("BuildVersion: " + BuildConfig.BUILDVERSION); - Answers.getInstance().logCustom(new CustomEvent("AppStart")); - sBus = new Bus(ThreadEnforcer.ANY); sInstance = this; sResources = getResources(); @@ -158,6 +156,11 @@ public class MainApp extends Application { MainApp.getConfigBuilder().initialize(); } NSUpload.uploadAppStart(); + if (MainApp.getConfigBuilder().isClosedModeEnabled()) + Answers.getInstance().logCustom(new CustomEvent("AppStart-ClosedLoop")); + else + Answers.getInstance().logCustom(new CustomEvent("AppStart")); + startKeepAliveService();