Merge branch 'dash' into avereha/conn

This commit is contained in:
Andrei Vereha 2021-07-11 12:40:01 +02:00
commit c4fc95768e
88 changed files with 1616 additions and 214 deletions

View file

@ -6,15 +6,7 @@ apply plugin: 'com.hiya.jacoco-android'
apply plugin: 'com.google.firebase.crashlytics'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
jacoco {
toolVersion = "0.8.6"
}
tasks.withType(Test) {
jacoco.includeNoLocationClasses = true
jacoco.excludes = ['jdk.internal.*']
}
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
repositories {
mavenCentral()

View file

@ -8,8 +8,8 @@ import androidx.preference.PreferenceFragmentCompat
import androidx.preference.SwitchPreference
import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.BuildConfig
import info.nightscout.androidaps.interfaces.Config
import info.nightscout.androidaps.R
import info.nightscout.androidaps.interfaces.Config
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
@ -37,16 +37,17 @@ class MaintenancePlugin @Inject constructor(
private val config: Config,
private val fileListProvider: PrefFileListProvider,
private val loggerUtils: LoggerUtils
) : PluginBase(PluginDescription()
.mainType(PluginType.GENERAL)
.fragmentClass(MaintenanceFragment::class.java.name)
.alwaysVisible(false)
.alwaysEnabled(true)
.pluginIcon(R.drawable.ic_maintenance)
.pluginName(R.string.maintenance)
.shortName(R.string.maintenance_shortname)
.preferencesId(R.xml.pref_maintenance)
.description(R.string.description_maintenance),
) : PluginBase(
PluginDescription()
.mainType(PluginType.GENERAL)
.fragmentClass(MaintenanceFragment::class.java.name)
.alwaysVisible(false)
.alwaysEnabled(true)
.pluginIcon(R.drawable.ic_maintenance)
.pluginName(R.string.maintenance)
.shortName(R.string.maintenance_shortname)
.preferencesId(R.xml.pref_maintenance)
.description(R.string.description_maintenance),
aapsLogger, resourceHelper, injector
) {
@ -58,7 +59,8 @@ class MaintenancePlugin @Inject constructor(
val zipFile = File(zipDir, constructName())
aapsLogger.debug("zipFile: ${zipFile.absolutePath}")
val zip = zipLogs(zipFile, logs)
val attachmentUri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".fileprovider", zip)
val attachmentUri =
FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".fileprovider", zip)
val emailIntent: Intent = this.sendMail(attachmentUri, recipient, "Log Export")
aapsLogger.debug("sending emailIntent")
context.startActivity(emailIntent)
@ -193,7 +195,12 @@ class MaintenancePlugin @Inject constructor(
*
* @return
*/
private fun sendMail(attachmentUri: Uri, recipient: String, subject: String, body: String): Intent {
private fun sendMail(
attachmentUri: Uri,
recipient: String,
subject: String,
body: String
): Intent {
aapsLogger.debug("sending email to $recipient with subject $subject")
val emailIntent = Intent(Intent.ACTION_SEND)
emailIntent.type = "text/plain"
@ -208,8 +215,9 @@ class MaintenancePlugin @Inject constructor(
override fun preprocessPreferences(preferenceFragment: PreferenceFragmentCompat) {
super.preprocessPreferences(preferenceFragment)
val encryptSwitch = preferenceFragment.findPreference(resourceHelper.gs(R.string.key_maintenance_encrypt_exported_prefs)) as SwitchPreference?
?: return
val encryptSwitch =
preferenceFragment.findPreference(resourceHelper.gs(R.string.key_maintenance_encrypt_exported_prefs)) as SwitchPreference?
?: return
encryptSwitch.isVisible = buildHelper.isEngineeringMode()
encryptSwitch.isEnabled = buildHelper.isEngineeringMode()
}

View file

@ -3,6 +3,7 @@ package info.nightscout.androidaps.plugins.general.nsclient.services
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.content.pm.ResolveInfo
import android.os.*
import androidx.work.OneTimeWorkRequest
import com.google.common.base.Charsets
@ -486,7 +487,7 @@ class NSClientService : DaggerService() {
val intent = Intent(Intents.ACTION_NEW_PROFILE)
intent.putExtras(bundle)
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES)
sendBroadcast(intent)
broadcast(intent)
}
}
}
@ -514,7 +515,7 @@ class NSClientService : DaggerService() {
val intent = Intent(Intents.ACTION_REMOVED_TREATMENT)
intent.putExtras(bundle)
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES)
sendBroadcast(intent)
broadcast(intent)
}
}
if (addedOrUpdatedTreatments.length() > 0) {
@ -531,7 +532,7 @@ class NSClientService : DaggerService() {
val intent = Intent(Intents.ACTION_CHANGED_TREATMENT)
intent.putExtras(bundle)
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES)
sendBroadcast(intent)
broadcast(intent)
}
}
}
@ -579,7 +580,7 @@ class NSClientService : DaggerService() {
val intent = Intent(Intents.ACTION_NEW_SGV)
intent.putExtras(bundle)
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES)
sendBroadcast(intent)
broadcast(intent)
}
}
}
@ -719,6 +720,16 @@ class NSClientService : DaggerService() {
return ret
}
private fun broadcast(intent: Intent) {
val receivers: List<ResolveInfo> = packageManager.queryBroadcastReceivers(intent, 0)
for (resolveInfo in receivers)
resolveInfo.activityInfo.packageName?.let {
intent.setPackage(it)
sendBroadcast(intent)
aapsLogger.debug(LTag.CORE, "Sending broadcast " + intent.action + " to: " + it)
}
}
init {
if (handler == null) {
val handlerThread = HandlerThread(NSClientService::class.java.simpleName + "Handler")

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="objectives_button_start">התחל</string>
<string name="objectives_button_verify">אמת</string>
<string name="objectives_button_verify">סיום</string>
<string name="nth_objective">%1$d. משימה</string>
<string name="objectivenotstarted">מטרה %1$d לא החלה</string>
<string name="objectivenotfinished">משימה %1$d לא בוצעה במלואה</string>

View file

@ -1,54 +1,215 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="dia_whatmeansdia">DIA에 대하여 올바른 것은?</string>
<string name="dia_label_exam">활성 인슐린 지속 시간 (DIA)</string>
<string name="dia_profile">프로파일에 DIA 값을 입력해야 합니다.</string>
<string name="dia_minimumis5h">허용되는 최소값은 5시간입니다.</string>
<string name="dia_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Configuration/Config-Builder.html?#insulin</string>
<string name="dia_meaningisequaltodiapump">AndroidAPS를 사용하기 전에 펌프에서 사용했던 DIA 값이 잘 작동하여 만족했다면, looping을 시작하기 전에 이 값을 변경할 필요는 없습니다.</string>
<string name="dia_valuemustbedetermined">적절한 DIA 값을 스스로 찾아야 합니다.</string>
<string name="hypott_label">저혈당 임시 목표</string>
<string name="hypott_whenhypott">저혈당 임시 목표를 설정하는 가장 중요한 이유는 무엇인가요?</string>
<string name="hypott_wrongbasal">잘못된 basal 양 설정으로 인한 저혈당을 수정하기 위함.</string>
<string name="hypott_preventoversmb">저혈당에 대한 처치로 빠르게 작용하는 탄수화물을 섭취하여 혈당 상승이 있을 때 AndoridAPS가 이를 과수정하는 것을 방지하기 위함.</string>
<string name="hypott_exercise">운동으로 인한 저혈당을 교정하기 위함.</string>
<string name="hypott_0basal">0% 임시 basal이 이미 적용되고 있는 상황에서 혈당이 낮아지는 것을 방지하기 위함.</string>
<string name="hypott_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Usage/temptarget.html</string>
<string name="offlineprofile_whatprofile">어떤 프로파일이 오프라인에서 설정할 수 있습니까?</string>
<string name="offlineprofile_label">주제: 오프라인 프로파일</string>
<string name="offlineprofile_nsprofile">NS 프로파일이 사용될 수 있지만, 오프라인 상에서 설정할 수는 없습니다.</string>
<string name="offlineprofile_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Configuration/Config-Builder.html#profile</string>
<string name="pumpdisconnect_label">AndroidAPS에서 \"펌프 연결 해제\"를 적용하는 이유들</string>
<string name="pumpdisconnect_whattodo">펌프 일시중지할땐 무엇을 해야합니까?</string>
<string name="pumpdisconnect_unnecessary">펌프가 물리적으로 연결되어 있지 않을 때에는 인슐린이 주입되지 않으므로 이 기능이 필요하지 않습니다.</string>
<string name="pumpdisconnect_missinginsulin">이 기능은 펌프가 물리적으로 떨어져 있는 동안에 주입되지 않은 인슐린을 AndroidAPS가 계산하지 않도록 합니다.</string>
<string name="pumpdisconnect_notstop">펌프가 연결된 채로 있다면 이 기능은 인슐린 주입을 멈추지 않습니다.</string>
<string name="pumpdisconnect_openloop">이 기능은 AndroidAPS를 open loop 모드로 전환합니다.</string>
<string name="pumpdisconnect_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Getting-Started/FAQ.html#other-settings</string>
<string name="objectives_label">AndroidAPS 설정들</string>
<string name="objectives2_label">AndroidAPS 설정들</string>
<string name="objectives_howtosave">설정을 백업하는 가장 좋은 방법은 무엇인가요?</string>
<string name="objectives_notesettings">적용된 설정을 따로 기록해둔다면 설정값을 \"내보내기\" 하지 않아도 됩니다.</string>
<string name="objectives_afterobjective">목표를 보두 수행한 뒤 설정값을 \"내보내기\" 합니다.</string>
<string name="objectives_afterchange">설정이 바뀐 부분이 있다면 설정값을 \"내보내기\" 합니다.</string>
<string name="objectives_afterinitialsetup">초기 구성을 마치고, 개별 설정을 입력한 뒤 설정값을 \"내보내기\" 합니다.</string>
<string name="objectives2_maintenance">관리 메뉴에서 설정값을 현재 기기로 \"내보내기\" 합니다.</string>
<string name="objectives2_internalstorage">핸드폰의 Internal Storage/AAPS/preferences 폴더에서 설정값을 찾을 수 있습니다.</string>
<string name="objectives2_cloud">안전한 외부 기기 (예를 들어, 클라우드 드라이브, 컴퓨터에 케이블 연결, email, 등)에 설정 파일을 복사합니다.</string>
<string name="objectives2_easyrestore">핸드폰을 잃어버렸거나 고장난 경우, 백업해놓지 않아도 설정값을 원격으로 쉽게 되살릴 수 있습니다.</string>
<string name="objectives_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Usage/ExportImportSettings.html</string>
<string name="objectives_hint2">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me</string>
<string name="noisycgm_label">노이즈가 심한 CGM의 혈당값</string>
<string name="noisycgm_whattodo">CGM 혈당의 노이즈가 심하다면 어떻게 해야합니까?</string>
<string name="noisycgm_nothing">특별한 조치를 하지 않습니다. - AndroidAPS가 이를 알아서 처리할 것입니다.</string>
<string name="noisycgm_pause">과량주입 또는 과소주입의 가능성을 막기 위해 closed loop 기능을 끕니다.</string>
<string name="noisycgm_replacesensor">지속적인 노이즈나 부정확한 센서를 교체합니다.</string>
<string name="noisycgm_checksmoothing">사용 중인 CGM 어플이 데이터 평활화 기능을 제공하는지 확인합니다.</string>
<string name="noisycgm_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data</string>
<string name="exerciseprofile_label">운동과 프로파일</string>
<string name="exerciseprofile_whattodo">유산소 운동을 할 때 프로파일을 어떻게 설정하는 것이 시스템에 가장 도움이 될까요?</string>
<string name="exerciseprofile_switchprofilebelow100">프로파일을 100% 보다 낮게 변경합니다.</string>
<string name="exerciseprofile_switchprofileabove100">프로파일을 100% 보다 높게 변경합니다.</string>
<string name="exerciseprofile_leaveat100">프로파일을 100%로 그대로 둡니다.</string>
<string name="exerciseprofile_suspendloop">Loop 기능을 중지합니다.</string>
<string name="exerciseprofile_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Usage/temptarget.html#activity-temp-target</string>
<string name="exercise_label">운동과 임시 목표</string>
<string name="exercise_whattodo">유산소 운동을 할 때 임시 목표를 어떻게 설정하는 것이 시스템에 가장 도움이 될까요?</string>
<string name="exercise_settt">운동을 시작하기 전 적절한 시간에 \"운동 시 임시 목표\"가 작동하도록 설정합니다.</string>
<string name="exercise_setfinished">운동이 끝난 후 \"운동 시 임시 목표\"를 설정합니다.</string>
<string name="exercise_setunchanged">임시 목표를 변경하지 않습니다.</string>
<string name="exercise_15g">\"저혈당 임시 목표\"보다 혈당이 떨어질 때까지 기다린 후 빠르게 반응하는 탄수화물 15g을 섭취합니다.</string>
<string name="exercise_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Usage/temptarget.html#activity-temp-target</string>
<string name="suspendloop_label">중지 또는 일시중지된 loop</string>
<string name="suspendloop_doigetinsulin">Loop가 중지/일시중지 되었을때 인슐린이 주입됩니까?</string>
<string name="suspendloop_yes">네, Basal 인슐린은 계속 주입됩니다.</string>
<string name="suspendloop_no">아니오, 인슐린 주입이 모두 중지됩니다.</string>
<string name="basaltest_label">Basal, ISF, and I:C 테스트</string>
<string name="basaltest_when">언제 이 값들을 확인해야할까요?</string>
<string name="basaltest_beforeloop">Looping을 시작하게 전</string>
<string name="basaltest_havingregularhighlow">자주 고혈당 또는 저혈당을 경험할 때</string>
<string name="basaltest_weekly">적어도 일주일에 한 번</string>
<string name="basaltest_fixed">한 번 설정하고 확인하면, 이 값은 계속 변하면 안됨.</string>
<string name="basaltest_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Getting-Started/FAQ.html#androidaps-settings</string>
<string name="prerequisites_label">기본 준비사항</string>
<string name="prerequisites_what">AndroidAPS를 설정하고 사용하기 위해 필수적인 것은 무엇일까요?</string>
<string name="prerequisites_determinedcorrectprofile">유효한 프로파일 정보 (Basal, IC, ISF, DIA).</string>
<string name="prerequisites_computer">Android Studio가 설치되고 환경설정된 컴퓨터</string>
<string name="prerequisites_phone">지원되는 폰.</string>
<string name="prerequisites_pump">Closed loop을 사용할 계획이라면 호환되는 인슐린 펌프</string>
<string name="prerequisites_nightscout">모든 데이터의 log를 보관하고 설정을 검토하기 위한 Nightscout</string>
<string name="prerequisites_tidepoolaccount">Tidepool 계정.</string>
<string name="prerequisites_googleaccount">구글(Google) 계정.</string>
<string name="prerequisites_githubaccount">깃허브(Github) 계정.</string>
<string name="prerequisites_beanandroiddeveloper">프로그래밍이나 코딩을 해 본 경험</string>
<string name="prerequisites_own670g">미니메드(MiniMed) 670G 펌프.</string>
<string name="prerequisites_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Module/module.html</string>
<string name="prerequisites_smartwatch">스마트워치.</string>
<string name="prerequisites_supportedcgm">지원되는 연속혈당측정기(CGM).</string>
<string name="prerequisites2_label">기본 준비사항</string>
<string name="prerequisites2_what">AndroidAPS를 설정하고 사용하기 위해 필수적인 것은 무엇일까요?</string>
<string name="prerequisites2_profile">프로파일을 설정하기 위해 확인된 정보 (ISF, I:C ratio, basal 양, DIA 등).</string>
<string name="prerequisites2_device">호환되는 Android 장치 (예를 들어, 핸드폰, Android 워치, 또는 태블릿).</string>
<string name="prerequisites2_internet">Closed loop을 실행하기 위해서는 AndroidAPS가 인터넷에 연결되어 있어야 함.</string>
<string name="prerequisites2_supportedcgm">지원되는 CGM과 핸드폰 또는 장치에 혈당값을 수신하기 위한 적절한 어플.</string>
<string name="prerequisites2_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Module/module.html</string>
<string name="update_label">AndroidAPS 업데이트하기</string>
<string name="whatistrue">올바른 답변을 모두 체크하세요.</string>
<string name="update_git">컴퓨터에 Git을 설치하고 환경 설정해야 합니다.</string>
<string name="update_asap">AndroidAPS의 업데이트된 버전이 배포되면, 일정 시간이 지난 후 이전 버전은 원격으로 제한됩니다.</string>
<string name="update_keys">Keystore의 위치를 저장하고 기록해두어야 이전에 설치할 때 사용했던 동일한 signing key를 업데이트할 때 사용할 수 있습니다.</string>
<string name="update_neverupdate">시스템이 잘 작동한다면 절대 업데이트하지마세요.</string>
<string name="update_askfriend">만약 apk를 만드는 것이 어렵다면, 친구가 만든 apk를 사용하여 설치할 수 있습니다.</string>
<string name="update_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch</string>
<string name="troubleshooting_label">문제 해결</string>
<string name="troubleshooting_wheretoask">어디에서 AndroidAPS에 대한 도움을 받을 수 있을까요?</string>
<string name="troubleshooting_fb">Facebook의 AndrioidAPS 사용자 그룹에 조언을 요청할 수 있습니다.</string>
<string name="troubleshooting_wiki">AndroidAPS 문서를 읽어야 (그리고 다시 읽어야) 합니다.</string>
<string name="troubleshooting_gitter">AndroidAPS Gitter room에 기술적 문제들을 기록하고, 조언을 요청할 수 있습니다.</string>
<string name="troubleshooting_yourendo">당뇨병 클리닉/내분비내과의사에게 문의해야 합니다.</string>
<string name="troubleshooting_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting</string>
<string name="troubleshooting_hint2">https://www.facebook.com/groups/AndroidAPSUsers/</string>
<string name="troubleshooting_hint3">https://gitter.im/MilosKozak/AndroidAPS</string>
<string name="insulin_label">인슐린 플러그인</string>
<string name="insulin_ultrarapid">어떤 인슐린에서 초-초속효성의 Oref 플러그인을 사용해야 할까요?</string>
<string name="insulin_fiasp">피아스프(Fiasp®)</string>
<string name="insulin_novorapid">노보래피드(NovoRapid®)/노보로그(Novolog®)</string>
<string name="insulin_humalog">휴마로그(Humalog®)</string>
<string name="insulin_actrapid">액트라피드(Actrapid®)/휴말린 R(Humalin R®)/\"보통의\" 인간 인슐린.</string>
<string name="insulin_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Configuration/Config-Builder.html#insulin</string>
<string name="sensitivity_label">민감도 플러그인</string>
<string name="sensitivity_which">올바른 답변을 모두 체크하세요.</string>
<string name="sensitivity_adjust">민감도 플러그인은 AndroidAPS가 일시적 또는 단기적으로 인슐린 민감도를 조절할 수 있도록 합니다. (예를 들어, 호르몬 변화 또는 주입 부위에서 흡수의 문제)</string>
<string name="sensitivity_edit">민감도 플러그인은 프로파일을 수정할 때 사용할 수 있도록 basal 양, I:C ratio, ISF의 추천되는 변화값을 사용자에게 제공합니다.</string>
<string name="sensitivity_cannula">캐뉼라 교체를 입력하면 Autosens 비율은 100%로 되돌아갑니다.</string>
<string name="sensitivity_time">일부 플러그인 옵션은 사용자가 설정 가능한 시간 범위를 갖습니다.</string>
<string name="sensitivity_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Configuration/Sensitivity-detection-and-COB.html</string>
<string name="wrongcarbs_label">탄수화물 입력 오류</string>
<string name="wrongcarbs_whattodo">부적절한 탄수화물을 입력하였다면 어떻게 하여야 합니까?</string>
<string name="wrongcarbs_treatmentstab">관리 메뉴에서 잘못된 입력을 삭제하고, 새로운 탄수화물 양으로 수정합니다.</string>
<string name="wrongcarbs_addinsulin">주입 세트 교체 메뉴의 prime 기능을 사용하여 bolus 인슐린을 주입합니다.</string>
<string name="wrongcarbs_donothing">특별한 조치를 하지 않습니다. - AndroidAPS가 적절한 조정을 할 것입니다.</string>
<string name="wrongcarbs_bolus">홈 화면에서 \"인슐린 (bolus)\" 버튼을 사용하여 bolus 인슐린을 주입합니다.</string>
<string name="wronginsulin_label">인슐린 주입/입력 오류</string>
<string name="wronginsulin_whattodo">만약 펌프 기록에서 보여지는 것보다 인슐린이 적게 주입되었을 때 어떻게 해야 할까요? (예를 들어, 주입 막힘, 캐뉼라 문제, 샤워 후 펌프 재부착을 잊어버렸을 때)</string>
<string name="wronginsulin_careportal">Nightscout 케어포탈에서 인슐린 데이터를 삭제하여 펌프 기록에서 이를 제거합니다.</string>
<string name="wronginsulin_compare">AndroidAPS와 펌프 기록을 비교합니다.</string>
<string name="wronginsulin_prime">\"주입되지 않은\" 인슐린양을 계산하여 시린지/펜 또는 prime 기능을 사용하여 인슐린을 주입합니다.</string>
<string name="wronginsulin_donothing">특별한 조치를 취하지 않고, AndroidAPS가 결과적으로 높은 혈당 정도를 조정할 수 있도록 합니다.</string>
<string name="iob_label">활성 인슐린 (IOB)</string>
<string name="iob_which">올바른 답변을 모두 체크하세요.</string>
<string name="iob_value">IOB 값은 실행된 임시 basal의 영향을 받습니다.</string>
<string name="iob_hightemp">혈당이 목표보다 낮을 경우 높은 임시 basal은 실행되지 않습니다.</string>
<string name="iob_negiob">운동 없이도 음수의 IOB (마이너스 IOB) 구간이 많을 경우, 프로파일이 너무 강한 것이며 인슐린 양을 적게 설정해야 합니다.</string>
<string name="iob_posiob">양수의 IOB (플러스 IOB) 구간이 많을 경우, 인슐린 저항성 또는 입력하지 않은 식사를 의미합니다.</string>
<string name="breadgrams_label">탄수화물 입력과 bolus</string>
<string name="breadgrams_grams">섭취한 탄수화물을 계산하고 기록할 때 gram 단위만을 사용해야 합니다.</string>
<string name="breadgrams_exchange">섭취한 탄수화물은 적절한 변환 방식 (예를 들어, DAFNE \"CHO\" 변환 또는 유럽의 \"Bread Units\")을 이용하여 기록할 수 있습니다.</string>
<string name="breadgrams_decay">AndroidAPS는 탄수화물의 \"소화\"를 예측하고 COB를 계산하기 위해 dynamic model을 사용합니다.</string>
<string name="breadgrams_calc">만약 혈당이 적절한 값을 벗어나면 (너무 낮거나 너무 높은 경우), 탄수화물 또는 교정 인슐린의 제안을 위해 bolus 계산기를 사용할 수 있습니다.</string>
<string name="breadgrams_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-to-carb-ratio-ic-g-u</string>
<string name="extendedcarbs_label">확장 탄수화물 (e-carbs)</string>
<string name="extendedcarbs_handling">c-carbs (확장 탄수화물)을 언제 사용할 수 있을까요?</string>
<string name="extendedcarbs_future">(일정 기간에 걸쳐 인슐린을 나눠서 주입하는 확장 bolus와 유사하게) 일정 기간에 걸쳐 나눠서 탄수화물을 섭취할 계획이 있을 때.</string>
<string name="extendedcarbs_free">AndroidAPS가 모르게 (인슐린 주입없이) 운동 시 섭취하는 \'free\' 탄수화물을 기록하기 위함.</string>
<string name="extendedcarbs_fat">(이후에 나눠서 섭취할) 확장 탄수화물 (e-carbs)은 AndroidAPS가 고지방/고단백질 식이를 조절하는데 도움을 줄 수 있습니다.</string>
<string name="extendedcarbs_rescue">저혈당 처치를 위해 사용한 탄수화물의 제거를 기록하기 위함.</string>
<string name="extendedcarbs_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Usage/Extended-Carbs.html</string>
<string name="nsclient_label">원격 모니터링</string>
<string name="nsclient_howcanyou">어떻게 AndroidAPS를 원격으로 모니터링할 수 있을까요 (예를 들어, 아이들)?</string>
<string name="nsclient_nightscout">NS Client 어플, Nightscout 어플, Nightscout 웹페이지 모두 AndroidAPS를 원격으로 팔로우 할 수 있게 합니다.</string>
<string name="nsclient_dexcomfollow">다른 어플들(예를 들어, Dexcom 팔로우, 팔로우 모드의 xDrip)은 일부 변수들(혈당/센서 수치)을 원격으로 팔로우 할 수 있지만, 알고리즘이 달라 부정확한 IOB 또는 COB 값을 보여줄 수 있습니다.</string>
<string name="nsclient_data">AndroidAPS를 원격으로 팔로우하기 위해서는 Wi-Fi나 모바일/셀룰러 네트워크 데이터를 이용하여 두 기기가 모두 인터넷에 연결되어 있어야 합니다.</string>
<string name="nsclient_fullcontrol">NS Client를 원격 팔로워로 사용하면 모니터링과 AndroidAPS의 완전한 제어가 가능합니다.</string>
<string name="nsclient_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Children/Children.html</string>
<string name="isf_label_exam">인슐린 민감도 (ISF)</string>
<string name="isf_increasingvalue">ISF 값을 올리면 일정한 양의 탄수화물을 다루기 위해 더 많은 인슐린이 주입하게 합니다.</string>
<string name="isf_decreasingvalue">ISF 값을 낮추면 목표 혈당보다 높을 때 교정을 위해 더 많은 인슐린이 주입하게 합니다.</string>
<string name="isf_noeffect">혈당이 목표보다 낮을 때에는 ISF를 높이거나 낮추는 것이 인슐린 주입에 영향을 주지 않습니다.</string>
<string name="isf_preferences">ISF를 AndroidAPS 설정에 입력해야 합니다.</string>
<string name="isf_profile">변경사항을 적용하는데 프로파일에서 ISF 값 변경하는 것으로 충분합니다.</string>
<string name="isf_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u</string>
<string name="isf_hint2">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Usage/Profiles.html</string>
<string name="ic_multiple">프로파일에서 한 개 이상의 I:C ratio를 사용할 수 있습니다.</string>
<string name="ic_isf">프로파일에서 ISF를 바꾸면, I:C ratio도 항상 바꿔줘야 합니다.</string>
<string name="ic_label_exam">인슐린 대 탄수화물 비율 (I:C ratio)</string>
<string name="ic_increasingvalue">높은 I:C ratio은 탄수화물 섭취 시 인슐린을 적게 주입하게 합니다.</string>
<string name="ic_decreasingvalue">높은 I:C ratio은 탄수화물 섭취 시 인슐린을 적게 주입하게 합니다.</string>
<string name="ic_noeffect">COB가 0 인 경우 IC 비율을 변경하면 혈당을 교정하기 위해 다른 양의 인슐린이 주입됩니다.</string>
<string name="ic_different">Bread unit (교환 단위)를 10g 또는 12g으로 계산하면 IC 값도 달라지게 됩니다.</string>
<string name="ic_meaning">IC: 1U의 인슐린으로 bread uits (교환 단위)를 얼마나 섭취할 수 있는 지를 의미합니다.</string>
<string name="ic_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u</string>
<string name="profileswitch_label">프로파일 변경</string>
<string name="profileswitch_pctwillchange">프로파일을 90%로 변경하였을 때, 다음 중 옳은 것은?</string>
<string name="profileswitch_basallower">Basal 양이 10% 감소합니다.</string>
<string name="profileswitch_isfhigher">ISF가 10% 증가합니다.</string>
<string name="profileswitch_iclower">I:C ratio 값이 10% 작은 수가 됩니다.</string>
<string name="profileswitch_unchanged">ISF와 I:C ratio는 변하지 않습니다.</string>
<string name="profileswitch_hint1" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Usage/Profiles.html?highlight=profile%20switch#profile-switch</string>
<string name="profileswitch2_label">프로파일 변경</string>
<string name="profileswitch2_pctwillchange">프로파일을 120%로 변경하였을 때, 다음 중 옳은 것은?</string>
<string name="profileswitch2_bghigher">목표 혈당값이 20% 높아집니다.</string>
<string name="profileswitch2_basalhigher">Basal 양이 20% 증가합니다.</string>
<string name="profileswitch2_bgunchanged">목표 혈당값은 변하지 않습니다.</string>
<string name="profileswitch2_isfhigher">ISF가 20% 증가합니다.</string>
<string name="profileswitchtime_label">프로파일 변경</string>
<string name="profileswitchtime_iwant">평소보다 2시간 먼저 일어난 경우, 변경된 일정을 AndroidAPS에게 어떻게 입력해야 할까요?</string>
<string name="profileswitchtime_2">시간이동 2으로 프로파일을 변경합니다.</string>
<string name="profileswitchtime__2">시간이동 -2으로 프로파일을 변경합니다.</string>
<string name="profileswitchtime_tt">\"식사 전 임시 목표\"로 설정합니다.</string>
<string name="profileswitchtime_100">프로파일을 100% 보다 높게 변경합니다.</string>
<string name="profileswitchtime_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Usage/Profiles.html?highlight=profile%20switch#timeshift</string>
<string name="profileswitch4_label">프로파일의 변화</string>
<string name="profileswitch4_rates">Basal rates, ISF, I:C ratio 등을 프로파일에서 설정해야 합니다.</string>
<string name="profileswitch4_internet">Nightscout 프로파일에서의 변화를 활성화 시키려면, AndroidAPS용 핸드폰이 인터넷에 연결되어 있어야 합니다.</string>
<string name="profileswitch4_sufficient">변경된 것을 실행하려면, 프로파일에서 변화된 값을 수정하기만 하면 됩니다.</string>
<string name="profileswitch4_multi">변화하는 상황 (예를 들어, 호르몬 변화, 교대근무, 평일/주말 생활 방식)에 적응하기 위하여 여러 개의 프로파일을 만들어서 선택할 수 있습니다.</string>
<string name="basalhelp_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy</string>
<string name="basalhelp_label">Basal 양에 대한 도움</string>
<string name="basalhelp_where">Basal값 등과 관련된 도움을 어디서 받아야 하나요?</string>
<string name="basalhelp_diabetesteam">의료진</string>
<string name="basalhelp_google">구글(Google)</string>
<string name="basalhelp_facebook">페이스북(Facebook)</string>
<string name="other_medication_label">다른 약물. 하단의 문구를 읽고, 내용을 수용하면 네모칸에 체크하십시오.</string>
<string name="other_medication_text">AndroidAPS는 혈당을 올리기 위하여 basal값을 내리거나 중단합니다. SGLT2 억제제 (gliflozins) 계열의 약물들은 혈당 상승을 억제하여 DKA (케톤산증)을 일으킬 정도로 위험한 인슐린의 결핍을 유발할 수 있습니다.
\n일반적인 브랜드명은 다음과 같습니다: Invokana®, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®.\n\n본인은 AndroidAPS를 사용할 때 이러한 약물들을 복용하지 않을 것, 또는 이러한 약물들을 복용하기 전에 loop을 비활성화 할 것을 약속합니다.</string>
</resources>

View file

@ -19,7 +19,10 @@
<string name="objectives_autosens_gate">섭취한 탄수화물양을 입력하고 1주일동안 낮시간대에 loop를 성공적으로 사용하여 봅니다</string>
<string name="objectives_ama_objective">AMA(Advanced Meal Assist)같은 낮시간대를 위한 추가적인 기능들을 실행하여 봅니다</string>
<string name="objectives_smb_objective">낮시간대에 SMB(Super Micro Bolus)같은 추가기능을 활성화해 사용해봅니다</string>
<string name="objectives_auto_objective">자동화 사용</string>
<string name="objectives_smb_gate">SMB가 잘 작동하게 하기위해서 wiki를 반드시 읽은 다음 maxIOB 값을 올려보세요! maxIOB=평균 식사 Bolus + 3 x 최대하루 Basal이면 적당한 시작값입니다</string>
<string name="objectives_auto_gate">자동화가 어떻게 작동하는지 설명서를 확인하세요. 간단한 첫 번째 규칙을 만들어 보십시오. 실행하기 전에 AAPS가 알림을 보여주도록 설정합니다. 자동화가 적시에 잘 작동하는 것을 확인하면 알림을 실제 실행으로 변경하십시오.
(https://androidaps.readthedocs.io/en/latest/EN/Usage/Automation.html)</string>
<string name="objectives_bgavailableinns">NS에서 혈당이 확인 가능합니다</string>
<string name="objectives_pumpstatusavailableinns">NS에서 펌프상태가 확인 가능합니다</string>
<string name="objectives_manualenacts">수동 주입</string>
@ -34,9 +37,11 @@
<string name="objectives_useloop">Loop 플러그인 내용을 표시합니다</string>
<string name="objectives_usescale">홈의 혈당 차트를 길게 눌러 차트 시간을 변경하세요</string>
<string name="objectives_button_enter">입력</string>
<string name="enter_code_obtained_from_developers_to_bypass_the_rest_of_objectives">다른 시스템에서 closed loop을 적어도 3개월 동안 사용한 경우 목표를 건너뛸 수 있는 코드를 받을 수 있습니다. 자세한 정보는 https://androidaps.readthedocs.io/en/latest/EN/Usage/Objectives.html#skip-objectives를 참고하십시오.</string>
<string name="codeaccepted">코드 인증</string>
<string name="codeinvalid">잘못된 코드</string>
<string name="objectives_exam_objective">당신의 지식을 확인해봅니다</string>
<string name="objectives_exam_gate">문제들에 대한 공부. 각각의 질문에 네 개의 답변이 주어집니다. 한 개 이상의 정답이 있을 수 있습니다. 올바른 것을 모두 체크하고, 확인을 선택하십시오.</string>
<string name="answerdisabledto">다음 시간까지 답변 불가능: %1$s</string>
<string name="wronganswer">잘못된 답변!</string>
<string name="unfinshed_button">다음 미답변</string>

View file

@ -6,6 +6,7 @@
<string name="treatmentssafety_title">관리 안전설정</string>
<string name="treatmentssafety_maxbolus_title">최대 허용 Bolus [U]</string>
<string name="treatmentssafety_maxcarbs_title">최대 허용 탄수화물 [g]</string>
<string name="nav_preferences_plugin">%1$s 설정</string>
<string name="nav_preferences">설정</string>
<string name="nav_refreshtreatments">NS에서 관리 새로고침</string>
<string name="nav_resetdb">데이터베이스 초기화</string>
@ -19,6 +20,7 @@
<string name="description_food">Nightscout에서 정의된 음식 설정을 표시합니다.</string>
<string name="description_insulin_rapid">휴마로그와 노보래피드에 대한 인슐린 설정</string>
<string name="description_insulin_ultra_rapid">피아스프에 대한 인슐린 설정</string>
<string name="description_insulin_lyumjev">Lyumjev에 대한 인슐린 설정</string>
<string name="description_insulin_free_peak">인슐린활동의 피크를 직접 정의할 수 있습니다. 고급 사용자만 사용해야 합니다.</string>
<string name="description_loop">Loop를 활성화 혹은 비활성화합니다.</string>
<string name="description_ns_client">Nightscout과 데이터 동기화하기</string>
@ -30,11 +32,13 @@
<string name="description_pump_mdi">다회요법으로 관리하는 사용자를 위한 설정</string>
<string name="description_pump_virtual">가상용 펌프를 위한 설정(Open Loop)</string>
<string name="description_sensitivity_aaps">Oref0와 동일한 방법으로 민감도가 계산되지만, 과거 시간을 지정할 수 있습니다. 최소 탄수화물 흡수는 설정에서 최대 탄수화물 흡수 시간으로 부터 계산됩니다.</string>
<string name="description_sensitivity_oref1">민감도가 과거 8시간의 데이터로 부터 계산됩니다. (흡수되지 않은 경우) 탄수화물은 설정에서 설정된 시간이 지나면 없어집니다. UAM(알리지 않은 음식)도 계산합니다.</string>
<string name="description_sensitivity_weighted_average">민감도가 편차의 가중평균으로 계산됩니다. 최근의 편차가 더 가중됩니다. 최소 탄수화물 흡수는 설정에서 최대 탄수화물 흡수 시간으로 부터 계산됩니다. 이 알고리즘의 민감도가 가장 빠릅니다.</string>
<string name="description_source_eversense">패치된 Eversense 앱에서 혈당값 받기</string>
<string name="description_source_glimp">Glimp에서 혈당값 받기</string>
<string name="description_source_mm640g">600SeriesAndroidUploader에서 혈당값 받기</string>
<string name="description_source_ns_client">Nightscout에서 다운로드하여 혈당값 받기</string>
<string name="description_source_xdrip">xDrip+에서 혈당값 받기</string>
<string name="description_treatments">모든 관리를 저장합니다.</string>
<string name="description_wear">WearOS 워치를 이용하여 AndroidAPS를 모니터하고 제어합니다.</string>
<string name="description_xdrip_status_line">xDrip+ 워치페이스에서 Loop정보 보여주기</string>
@ -105,11 +109,14 @@
<string name="changeyourinput">입력값을 변경하세요!</string>
<string name="configbuilder_bgsource">혈당 출처</string>
<string name="configbuilder_bgsource_description">AndroidAPS가 어디에서 데이터를 가져옵니까?</string>
<string name="xdrip">xDrip+</string>
<string name="apsmode_title">APS 모드</string>
<string name="closedloop">Closed Loop</string>
<string name="openloop">Open Loop</string>
<string name="lowglucosesuspend">저혈당 주입정지</string>
<string name="disabledloop">Loop 중지됨</string>
<string name="openloop_newsuggestion">새로운 제안이 있습니다</string>
<string name="carbssuggestion">탄수화물 제안</string>
<string name="unsupportednsversion">지원하지 않는 Nightscout 버전입니다</string>
<string name="treatments_wizard_basaliob_label">Basal IOB</string>
<string name="bolusconstraintapplied">Bolus 제한이 적용되었습니다</string>
@ -124,7 +131,9 @@
<string name="overview_tempbasal_button">임시Basal</string>
<string name="overview_extendedbolus_button">확장 Bolus</string>
<string name="configbuilder_nightscoutversion_label">Nightscout 버전:</string>
<string name="missing_carbs">부족 %1$d g</string>
<string name="exported">설정이 저장되었습니다</string>
<string name="ue_exported">사용자 입력 사항들이 저장됨</string>
<string name="export_to">다음 위치에 설정을 저장하시겠습니까</string>
<string name="import_from">다음 위치에서 설정을 불러오시겠습니까</string>
<string name="setting_imported">설정을 불러왔습니다</string>
@ -134,6 +143,17 @@
<string name="openapsma_maxbasal_summary">이 값은 OpenAPS에서 Max Basal(최대 Basal)로 설정되는 값입니다</string>
<string name="openapsma_maxiob_title">OpenAPS가 주입할수 있는 최대 Basal IOB [U]</string>
<string name="openapsma_maxiob_summary">이 값은 OpenAPS에서 Max IOB라고 부르는 값입니다\n기본값은 0으로 설정되어 있습니다. 몇일 혹은 몇주 정도 사용 후 적절한 값으로 변경할 수 있습니다.</string>
<string name="password_preferences_encrypt_prompt">내보낸 preferences 암호화 하기 위해 마스터 비밀번호가 필요합니다.</string>
<string name="password_preferences_decrypt_prompt">내보낸 preferences를 가져오기 위해서는 마스터 비밀번호가 필요합니다.</string>
<string name="preferences_export_canceled">내보내기 취소됩니다! 환경 설정을 내보내지 않았습니다!</string>
<string name="preferences_import_canceled">가져오고 취소됩니다! 환경설정을 가져오지 않았습니다.</string>
<string name="check_preferences_before_import">가져오기 전에 환경설정을 확인하세요.</string>
<string name="check_preferences_cannot_import">환경 설정을 가져올 수가 없습니다.</string>
<string name="check_preferences_dangerous_import">환경 설정을 가져오면 안됩니다.</string>
<string name="check_preferences_details_btn">환경설정 가져오기 문제 설명</string>
<string name="check_preferences_details_title">환경설정 가져오기 문제의 상세정보</string>
<string name="check_preferences_import_btn">가져오기</string>
<string name="check_preferences_import_anyway_btn">무시하고 가져오기 (위험!)</string>
<string name="end_user_license_agreement">최종 사용자 라이선스 동의서</string>
<string name="end_user_license_agreement_text">이 프로그램을 의학적 결정을 내리는 데 사용해서는 안되며, 여기에 대한 어떠한 보증도 없습니다. 이 프로그램의 품질과 성능에 관한 모든 위험은 사용자에게 있습니다.\nMUST 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.</string>
<string name="end_user_license_agreement_i_understand">모두 이해하였고 동의합니다.</string>
@ -247,6 +267,8 @@
<string name="smscommunicator_invalidphonennumber">SMS폰번호가 유효하지 않습니다</string>
<string name="overview_calibration">보정</string>
<string name="xdripnotinstalled">xDrip+가 설치되지 않았습니다</string>
<string name="calibrationsent">보정이 xDrip으로 전송되었습니다+</string>
<string name="smscommunicator_calibrationsent">보정 전송됨. xDrip에서 수신이 되도록 설정되어 있어야 합니다+.</string>
<string name="pumpsuspended">펌프 일시중지됨</string>
<string name="executing">실행중</string>
<string name="virtualpump_settings">가상펌프 설정</string>
@ -273,6 +295,7 @@
<string name="wear_detailedIOB_title">IOB 자세하게 보여주기</string>
<string name="wear_detailedIOB_summary">워치페이스에 IOB를 Bolus IOB와 Basal IOB로 나누어서 보여줍니다.</string>
<string name="nosuccess">성공하지 못했습니다. 폰을 확인하세요</string>
<string name="notavailable">사용불가</string>
<string name="child">어린이</string>
<string name="teenage">청소년</string>
<string name="adult">성인</string>
@ -285,11 +308,16 @@
<string name="suspendloopfor2h">2시간동안 Loop 일시중지</string>
<string name="suspendloopfor3h">3시간동안 Loop 일시중지</string>
<string name="suspendloopfor10h">10시간동안 Loop 일시중지</string>
<string name="disconnectpump">펌프 일시중지</string>
<string name="disconnectpumpfor15m">15분동안 펌프 일시중지</string>
<string name="disconnectpumpfor30m">30분동안 펌프 일시중지</string>
<string name="disconnectpumpfor1h">1시간동안 펌프 일시중지</string>
<string name="disconnectpumpfor2h">2시간동안 펌프 일시중지</string>
<string name="disconnectpumpfor3h">3시간동안 펌프 일시중지</string>
<string name="duration1h">1시간</string>
<string name="duration2h">2시간</string>
<string name="duration3h">3시간</string>
<string name="duration10h">10시간</string>
<string name="resume">재실행</string>
<string name="reconnect">펌프 재연결</string>
<string name="smscommunicator_wrongduration">기간이 잘못되었습니다.</string>
@ -309,6 +337,8 @@
<string name="show_statuslights">홈화면에 상태 표시등 보여주기</string>
<string name="statuslights_res_warning">주사기량 경고 기준값[U]</string>
<string name="statuslights_res_critical">주사기량 위험 기준값[U]</string>
<string name="basal_shortname">BAS</string>
<string name="activity_shortname">ACT</string>
<string name="nav_about">버전정보</string>
<string name="smscommunicator_missingsmspermission">SMS 권한 누락</string>
<string name="smscommunicator_missingphonestatepermission">전화 상태 권한이 허가되지 않았습니다</string>
@ -317,6 +347,9 @@
<string name="wear_showbgi_summary">BGI를 상태라인에 추가하기</string>
<string name="overview_extendedbolus_cancel_button">확장Bolus 취소</string>
<string name="doprofileswitch">프로파일 변경 실행</string>
<string name="careportal_sensor_label">센서</string>
<string name="careportal_insulin_label">인슐린</string>
<string name="careportal_age_label">나이:</string>
<string name="ns_alarmoptions">알람 옵션</string>
<string name="nsalarm_staledatavalue_label">누락 데이터 기준값 [min]</string>
<string name="nsalarm_urgent_staledatavalue_label">위험 누락 데이터 기준값 [min]</string>
@ -547,6 +580,7 @@
<string name="allow_hardware_pump_text">주의: 활성화하고 펌프에 연결하게되면, AndroidAPS는 프로파일의 Basal설정을 복사해서 기존에 펌프에 저장되어 있던 Basal설정을 덮어쓰게 될것입니다. AndroidAPS의 Basal설정이 올바른지 반드시 확인하세요. 만약 확실치 않거나 Basal설정을 덮어씌우길 원치않는다면, 취소버튼을 누르고 나중에 다시 연결하세요.</string>
<string name="error_adding_treatment_title">관리 데이터가 불완전합니다</string>
<string name="maintenance_settings">정비 설정</string>
<string name="maintenance_email">Email</string>
<string name="maintenance_amount">전송할 로그 수</string>
<string name="maintenance">정비</string>
<string name="maintenance_shortname">MAINT</string>
@ -632,6 +666,7 @@
<string name="low_mark_comment">혈당 정상범위의 하한값(표시 전용)</string>
<string name="high_mark_comment">혈당 정상범위의 상한값(표시 전용)</string>
<string name="age">나이:</string>
<string name="weight_label">몸무게:</string>
<string name="id">ID:</string>
<string name="submit">확인</string>
<string name="mostcommonprofile">가장 많이 사용된 프로파일:</string>
@ -659,4 +694,7 @@
<string name="loop_tbrrequest_time_label">임시 Basal 요청시간</string>
<string name="loop_tbrexecution_time_label">임시 Basal 실행시간</string>
<!-- SMS Communicator & OTP Authenticator -->
<string name="overview_show_predictions">예측</string>
<string name="chart_menu">차트 메뉴</string>
<string name="prime">교체</string>
</resources>

View file

@ -911,6 +911,8 @@ Context | Edit Context</string>
<string name="ns_receive_temp_target_summary">Принимать временные цели, установленные через NS или NSClient</string>
<string name="ns_receive_profile_switch">Получать переключения профиля</string>
<string name="ns_receive_profile_switch_summary">Принимать переключения профиля, введенные через NS или NSClient</string>
<string name="ns_receive_offline_event">Принимать события APS автономно</string>
<string name="ns_receive_offline_event_summary">Принимать события APS введенные через NS или клиент NS автономно</string>
<string name="ns_receive_insulin">Принимать инсулин</string>
<string name="ns_receive_insulin_summary">Принимать инсулин, введенный через NS или NSClient (не подается, только рассчитывается как активный IOB)</string>
<string name="ns_receive_carbs">Принимать углеводы</string>

View file

@ -6,6 +6,7 @@ apply plugin: 'com.hiya.jacoco-android'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
dependencies {

View file

@ -6,6 +6,8 @@
<string name="automation_missing_task_name">작업 이름을 입력하세요.</string>
<string name="automation_missing_trigger">적어도 하나의 트리거를 지정하세요.</string>
<string name="automation_missing_action">적어도 하나의 액션을 지정하세요.</string>
<string name="alarm_message">알람: %1$s</string>
<string name="alarm_short">알람:</string>
<string name="message_short">메세지:</string>
<string name="alreadyenabled">이미 활성화됨</string>
<string name="alreadydisabled">이미 비활성화됨</string>
@ -46,6 +48,8 @@
<string name="use_gps_location">GPS 위치 사용</string>
<string name="use_passive_location">수동 위치 사용</string>
<string name="locationservice">위치 서비스</string>
<string name="onconnect">연결 중</string>
<string name="ondisconnect">연결 해제 중</string>
<string name="short_avgdelta">단기 평균 증분</string>
<string name="long_avgdelta">장기 평균 증분</string>
<string name="delta">증분</string>
@ -69,6 +73,7 @@
<string name="add_short">추가</string>
<string name="copy_short">복사</string>
<string name="temptargetcompared">임시 목표 %1$s</string>
<string name="btdevicecompared">장치에 블루투스 연결 %1$s %2$s</string>
<string name="wifissidcompared">WiFi SSID %1$s %2$s</string>
<string name="autosenscompared">Autosens %1$s %2$s %%</string>
<string name="autosenslabel">Autosens %</string>
@ -82,6 +87,7 @@
<string name="glucose_u">혈당 [%1$s]:</string>
<string name="lastboluslabel">마지막 Bolus</string>
<string name="lastboluscompared">마지막 Bolus 시간 %1$s %2$s 분 전</string>
<string name="triggercoblabel">COB</string>
<string name="cobcompared">COB %1$s %2$.0f</string>
<string name="iob_u">IOB [U]:</string>
<string name="distance_short">거리 [m]:</string>

View file

@ -7,6 +7,7 @@
<string name="automation_missing_trigger">Nurodykite mažiausiai vieną sąlygą.</string>
<string name="automation_missing_action">Nurodykite mažiausiai vieną veiksmą.</string>
<string name="alarm_message">Aliarmas: %1$s</string>
<string name="alarm_short">Aliarmas:</string>
<string name="message_short">Pranešimas:</string>
<string name="alreadyenabled">Jau įjungta</string>
<string name="alreadydisabled">Jau išjungta</string>
@ -87,6 +88,7 @@
<string name="glucose_u">Gliukozė [%1$s]:</string>
<string name="lastboluslabel">Paskutinis bolusas</string>
<string name="lastboluscompared">Paskutinis Bolusas prieš %1$s %2$s min</string>
<string name="triggercoblabel">AAO</string>
<string name="cobcompared">AAO %1$s %2$.0f</string>
<string name="iob_u">AIO [U]:</string>
<string name="distance_short">Atstumas [m]:</string>

View file

@ -1,12 +1,9 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = '1.5.10'
ext {
// kotlin 1.5.0 prevents travis from pass
// remove @kotlin.ExperimentalStdlibApi everywhere when upgrade
kotlin_version = '1.4.32'
coreVersion = '1.5.0'
kotlin_version = '1.5.10'
coreVersion = '1.6.0'
rxjava_version = '2.2.21'
rxandroid_version = '2.1.1'
rxkotlin_version = '2.4.0'
@ -29,7 +26,7 @@ buildscript {
tink_version = '1.5.0'
junit_version = '4.13.2'
mockitoVersion = '3.11.1'
mockitoVersion = '3.11.2'
powermockVersion = '2.0.9'
dexmakerVersion = "1.2"
retrofit2Version = '2.9.0'
@ -46,7 +43,7 @@ buildscript {
maven { url "https://dl.bintray.com/kotlin/kotlinx" }
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.0-alpha02'
classpath 'com.android.tools.build:gradle:4.2.2'
classpath 'com.google.gms:google-services:4.3.8'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
@ -75,7 +72,6 @@ allprojects {
mavenCentral()
maven { url "https://maven.google.com" }
maven { url 'https://jitpack.io' }
maven { url "https://google.bintray.com/flexbox-layout" }
ivy {
url 'https://github.com/'
patternLayout {

View file

@ -6,7 +6,7 @@ apply plugin: 'com.hiya.jacoco-android'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
dependencies {
implementation project(':core')

View file

@ -3,6 +3,7 @@
<string name="description_pump_combo">Accu-Chek Combo pompos integracija, reikalinga Ruffy programėlė</string>
<string name="combo_programming_bolus">Programuojamas bolusas</string>
<string name="combo_pump_state_label">Būsena</string>
<string name="combo_pump_activity_label">Aktyvumas</string>
<string name="combo_no_pump_connection">Nėra ryšio su pompa %1$d min</string>
<string name="combo_tbr_remaining">%1$d%% (liko%2$d min)</string>
<string name="combo_pump_state_initializing">Inicijuojama</string>

View file

@ -8,7 +8,7 @@ apply from: 'core_dependencies.gradle'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
dependencies {
implementation project(':database')

View file

@ -88,7 +88,7 @@ dependencies {
api 'com.google.android.gms:play-services-wearable:17.0.0'
api 'com.google.android.gms:play-services-location:17.1.0'
api("com.google.android:flexbox:2.0.1")
api("com.google.android.flexbox:flexbox:3.0.0")
api("io.socket:socket.io-client:1.0.0") {
// excluding org.json which is provided by Android
exclude group: "org.json", module: "json"

View file

@ -6,6 +6,7 @@ package info.nightscout.androidaps.plugins.pump.common.utils;
import org.joda.time.LocalDateTime;
import org.joda.time.Minutes;
import org.joda.time.Seconds;
import java.util.Calendar;
import java.util.GregorianCalendar;
@ -245,13 +246,17 @@ public class DateTimeUtil {
public static int getATechDateDiferenceAsMinutes(Long date1, Long date2) {
Minutes minutes = Minutes.minutesBetween(toLocalDateTime(date1), toLocalDateTime(date2));
return minutes.getMinutes();
}
public static int getATechDateDiferenceAsSeconds(Long date1, Long date2) {
Seconds seconds = Seconds.secondsBetween(toLocalDateTime(date1), toLocalDateTime(date2));
return seconds.getSeconds();
}
public static long getMillisFromATDWithAddedMinutes(long atd, int minutesDiff) {
GregorianCalendar oldestEntryTime = DateTimeUtil.toGregorianCalendar(atd);
oldestEntryTime.add(Calendar.MINUTE, minutesDiff);

View file

@ -2,54 +2,224 @@
<resources>
<!-- Keys-->
<!-- General-->
<string name="refresh">새로고침</string>
<string name="error">에러</string>
<string name="not_set_short">설정되지 않음</string>
<string name="failedupdatebasalprofile">Basal 프로파일 갱신 실패</string>
<string name="profile_set_ok">Basal 프로파일이 펌프에 업데이트 되었습니다</string>
<string name="invalidinput">사용할수 없는 입력 데이터</string>
<string name="tempbasaldeliveryerror">임시Basal 주입 에러</string>
<string name="waitingforpump">펌프를 기다리는 중</string>
<string name="connectingfor">%1$d 초 동안 연결중</string>
<string name="handshaking">통신 확인</string>
<string name="connecting">연결중</string>
<string name="connected">연결됨</string>
<string name="disconnected">연결 끊김</string>
<string name="disconnecting">연결끊기중</string>
<string name="androidaps_start">AndroidAPS 시작</string>
<string name="formatinsulinunits1">%1$.1f U</string>
<string name="formatinsulinunits">%1$.2f U</string>
<string name="reservoirvalue">%1$.0f / %2$d U</string>
<string name="pump_basebasalrate">%1$.2f U/h</string>
<string name="format_hours">%1$.2f 시간</string>
<string name="format_mins">%1$d 분</string>
<string name="pumpbusy">펌프가 바쁩니다</string>
<string name="connectionerror">펌프 연결 에러</string>
<string name="youareonallowedlimit">허용된 제한값에 도달하였습니다</string>
<string name="objectives">목표</string>
<string name="close">닫기</string>
<string name="please_wait">잠시 기다려 주세요...</string>
<string name="mute">음소거</string>
<string name="reload">새로고침</string>
<string name="stoppressed">정지 누름</string>
<string name="stop">정지</string>
<string name="carbs">탄수화물</string>
<string name="invalidprofile">프로파일이 유효하지 않습니다!!!</string>
<string name="noprofileset">프로파일이 설정되지 않았습니다.</string>
<string name="date">날짜</string>
<string name="units_label">단위</string>
<string name="dia_label">인슐린활동시간(DIA):</string>
<string name="ic_label">인슐린 대 탄수화물 비율(IC):</string>
<string name="isf_label">인슐린 민감도(ISF):</string>
<string name="basal_label">Basal</string>
<string name="target_label">목표:</string>
<string name="initializing">초기화중 ...</string>
<string name="serialnumber">시리얼번호</string>
<string name="battery_label">배터리</string>
<string name="lastconnection_label">마지막 접속</string>
<string name="lastbolus_label">최근 Bolus:</string>
<string name="dailyunits">일 인슐린 총량</string>
<string name="basebasalrate_label">기본 Basal양</string>
<string name="tempbasal_label">임시Basal</string>
<string name="virtualpump_extendedbolus_label">확장Bolus</string>
<string name="reservoir_label">인슐린 잔량</string>
<string name="pumphistory">펌프 이력</string>
<string name="viewprofile">프로파일 보기</string>
<string name="eventtype">이벤트 종류</string>
<string name="mgdl">mg/dl</string>
<string name="mmol">mmol/l</string>
<string name="shortgram">g</string>
<string name="advancedsettings_title">고급 설정</string>
<string name="bluetooth">블루투스</string>
<string name="btwatchdog_title">블루투스 감시기능</string>
<string name="btwatchdog_summary">펌프에 연결이 되지 않을때 폰의 블루투스를 1초간 껐다 켭니다. 블루투스 스택이 정지되는 일부폰에 이 기능이 도움이 됩니다.</string>
<string name="pairing">동기화</string>
<string name="yes"></string>
<string name="no">아니오</string>
<string name="loopdisabled">제한으로 인해 LOOP가 사용불가합니다.</string>
<string name="virtualpump_resultok"></string>
<string name="novalidbasalrate">펌프에서 유효한 Basal양을 읽을 수 없습니다.</string>
<string name="limitingmaxiob">%2$s로 인해 최대 IOB가 %1$.1f U로 제한됩니다.</string>
<string name="unsafeusage">위험한 사용</string>
<string name="pump_unreachable">펌프에 연결할 수 없습니다.</string>
<string name="extended_bolus">확장 Bolus</string>
<string name="pump_time_updated">펌프 시간 업데이트</string>
<string name="exit">종료</string>
<string name="serial_number">시리얼번호</string>
<string name="removerecord">기록 삭제</string>
<string name="loopisdisabled">Loop가 중지중입니다.</string>
<string name="alarm">알람</string>
<string name="disableloop">Loop 중지하기</string>
<string name="enableloop">Loop 실행하기</string>
<string name="resumeloop">Loop 재실행</string>
<string name="suspendloop">Loop 일시중지</string>
<string name="duration_min_label">기간 [min]</string>
<string name="notification">공지</string>
<string name="noprofile">아직 NS에서 프로파일을 로드하지 못했습니다.</string>
<string name="exists">존재합니다.</string>
<string name="notexists">존재하지 않습니다.</string>
<string name="glucose">혈당</string>
<string name="iob">IOB</string>
<string name="cob">COB</string>
<string name="name_short">이름:</string>
<string name="time">시간</string>
<string name="ns_wifi_ssids">와이파이 SSID</string>
<string name="event_time_label">이벤트 시간</string>
<string name="notes_label">노트</string>
<string name="remove_button">삭제</string>
<string name="addnew">새로 추가</string>
<!-- Constraints-->
<string name="limitingbasalratio">%2$s로 인해 최대 Basal양이 %1$.2f U/h으로 제한됩니다.</string>
<string name="pumplimit">펌프 제한</string>
<string name="limitingpercentrate">%2$s로 인해 최대 비율이 %1$d%%로 제한됩니다.</string>
<string name="itmustbepositivevalue">양의 값이어야 합니다.</string>
<string name="limitingbolus">%2$s로 인해 Bolus가 %1$.1f U로 제한됩니다.</string>
<string name="pumpNotInitializedProfileNotSet">펌프가 초기화와 프로파일 설정이 되지 않았습니다!</string>
<!-- Dialogs-->
<string name="confirmation">확인</string>
<string name="message">메시지</string>
<string name="ok"></string>
<string name="cancel">취소</string>
<string name="dismiss">무시</string>
<!-- BlePreCheck-->
<string name="ble_not_supported">BLE(블루투스 저전력) 지원되지 않음</string>
<string name="ble_not_enabled">블루투스가 활성화되지 않았습니다.</string>
<string name="location_not_found_title">위치가 활성화되지 않았습니다.</string>
<string name="location_not_found_message">최신 스마트폰에서 블루투스 검색이 작동하려면 위치가 활성화되어 있어야합니다. AAPS는 당신의 위치를 추적하지 않으며 페어링에 성공한 후 비활성화 할 수 있습니다.</string>
<!-- DateUtil-->
<string name="shorthour">시간</string>
<string name="days"></string>
<string name="hours">시간</string>
<string name="unit_second"></string>
<string name="unit_minute"></string>
<string name="unit_hour"></string>
<string name="unit_day"></string>
<string name="unit_week"></string>
<string name="unit_seconds"></string>
<string name="unit_minutes"></string>
<string name="unit_hours"></string>
<string name="unit_days"></string>
<string name="unit_weeks"></string>
<string name="shortminute"></string>
<string name="shortday"></string>
<!-- Protection-->
<string name="wrongpassword">잘못된 비밀번호</string>
<!-- Profile-->
<string name="basalprofilenotaligned">Basal값이 시간단위로 설정되지 않았습니다: %1$s</string>
<string name="minimalbasalvaluereplaced">지원되는 최소값으로 Basal값이 대체되었습니다:%1$s</string>
<string name="maximumbasalvaluereplaced">지원되는 최대값으로 Basal값이 대체되었습니다:%1$s</string>
<string name="profile_per_unit">/U</string>
<string name="profile_ins_units_per_hour">U/h</string>
<string name="profile_carbs_per_unit">g/U</string>
<!-- ProfileFunction-->
<string name="noprofileselected">프로파일이 선택되지 않았습니다</string>
<string name="startprofile">프로파일 %1$d%%을 %2$d 분 동안 시작</string>
<!-- PumpType-->
<string name="def_extended_note">* 가상 펌프에서는 Basal/Bolus에 대해 범위로 지정이 될 수 없고, 이산값(discrete values)만 지원 됩니다.</string>
<!-- APSResult-->
<string name="canceltemp">임시Basal 취소하기</string>
<string name="let_temp_basal_run">임시Basal 허용</string>
<string name="rate">주입량</string>
<string name="duration">기간</string>
<string name="reason">근거</string>
<string name="nochangerequested">변경사항 없음</string>
<!-- ProfileSwitch-->
<string name="zerovalueinprofile">유효하지 않은 프로파일: %1$s</string>
<!-- Temptarget-->
<!-- TDD-->
<!-- Translator-->
<string name="careportal_bgcheck">혈당 체크</string>
<string name="careportal_announcement">알림</string>
<string name="careportal_note">노트</string>
<string name="careportal_question">의문</string>
<string name="careportal_exercise">운동</string>
<string name="careportal_pumpsitechange">펌프 위치 변경</string>
<string name="careportal_cgmsensorinsert">CGM 센서 삽입</string>
<string name="careportal_cgmsensorstart">CGM 센서 시작</string>
<string name="careportal_insulincartridgechange">인슐린 카트리지 교체</string>
<string name="careportal_profileswitch">프로파일 변경</string>
<string name="careportal_snackbolus">간식Bolus</string>
<string name="careportal_mealbolus">Meal Bolus</string>
<string name="careportal_correctionbolus">교정Bolus</string>
<string name="careportal_combobolus">콤보Bolus</string>
<string name="careportal_tempbasalstart">임시Basal 시작</string>
<string name="careportal_tempbasalend">임시Basal 종료</string>
<string name="careportal_carbscorrection">탄수화물 교정</string>
<string name="careportal_openapsoffline">OpenAPS 오프라인</string>
<string name="careportal_pumpbatterychange">펌프 배터리 교체</string>
<string name="careportal_temporarytarget">임시 목표</string>
<string name="careportal_temporarytargetcancel">임시 목표 취소</string>
<string name="boluswizard">Bolus 마법사</string>
<string name="glucosetype_finger">채혈</string>
<string name="glucosetype_sensor">센서</string>
<string name="manual">수동</string>
<string name="unknown">알수없음</string>
<string name="eatingsoon">식사직전</string>
<string name="hypo">저혈당</string>
<string name="activity">활동</string>
<string name="wear">워치</string>
<string name="automation">자동화</string>
<string name="custom">사용자 정의</string>
<string name="pump">펌프</string>
<string name="loop">Loop</string>
<!-- Command-->
<string name="connectiontimedout">연결시간초과</string>
<!-- PumpEnactResult-->
<string name="enacted">실행</string>
<string name="comment">의견</string>
<string name="success">성공</string>
<string name="percent">퍼센트</string>
<string name="absolute">절대값</string>
<string name="configbuilder_insulin">인슐린</string>
<string name="insulin_unit_shortname">U</string>
<string name="waitingforpumpresult">결과 기다리는 중</string>
<string name="smb_shortname">SMB</string>
<!-- CarbsReq-->
<!-- TDDStatsActivity-->
<string name="cumulative_tdd">누적 일총량</string>
<string name="expweight">지수가중 일총량</string>
<string name="basalrate">Basal</string>
<string name="bolus">Bolus</string>
<string name="tdd">일총량</string>
<string name="ratio">비율</string>
<string name="amount_days">#일</string>
<string name="weight">가중</string>
<string name="warning_Message">교체/채움을 위해 Bolus를 사용한 경우 부정확할 수 있습니다!!</string>
<string name="olddata_Message">오래된 데이터입니다. \"새로고침\"을 누르세요.</string>
<string name="tbb">총 기본 Basal</string>
<string name="tbb2">총기초량 * 2</string>
<!-- Ntp-->
<string name="timedetection">시간 감지</string>
<!-- Maintenance -->
<string name="preferences_import_list_title">가져올 파일을 선택하세요.</string>
<string name="metadata_warning_different_flavour">환경설정은 AAPS (%1$s) 와는 다르게 생성되기 때문에 불러오는 도중 일부 설정이 누락되거나 설정이 되지 않을 수 있습니다. - 가져오기를 수행한 후 설정을 확인하고 업데이트 해주시기 바랍니다.</string>
@ -62,6 +232,17 @@
<string name="running_invalid_version">유효하지 않은 버전을 이용 중입니다. Loop가 비활성화 되었습니다!</string>
<string name="versionavailable">%1$s 버전이 사용 가능합니다.</string>
<!-- Permissions -->
<string name="alert_dialog_storage_permission_text">폰을 재부팅하거나 AndroidAPS를 재시작하세요 \n그렇지 않으면 로그 기록이 되지 않습니다.(알고리즘이 정상적인 작동하는지 확인하기 위해 로그가 필요합니다.)!</string>
<!-- WeekdayPicker -->
<!-- User Entry -->
<string name="ue_action">실행</string>
<plurals name="days">
<item quantity="other">%1$d 일</item>
</plurals>
<plurals name="hours">
<item quantity="other">%1$d 시간</item>
</plurals>
<plurals name="minutes">
<item quantity="other">%1$d 분</item>
</plurals>
</resources>

View file

@ -6,7 +6,7 @@ apply plugin: 'com.hiya.jacoco-android'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
android {
defaultConfig {

View file

@ -1,2 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="danars_pairing">동기화</string>
<string name="danars_nodeviceavailable">현재까지 발견된 기기가 없습니다.</string>
<string name="danars_pairingok">연동완료</string>
<string name="danars_pairingtimedout">연동시간초과</string>
<string name="danars_waitingforpairing">펌프연동 대기중</string>
<string name="danarspump">다나RS</string>
<string name="danarspump_shortname">Dana</string>
<string name="description_pump_dana_rs">다나RS 펌프와 연동</string>
<string name="maxbolusviolation">최대 Bolus 위반</string>
<string name="commanderror">명령 오류</string>
<string name="speederror">속도 오류</string>
<string name="insulinlimitviolation">인슐린 제한 위반</string>
<string name="boluserrorcode">요청: %1$.2fU 전송: %2$.2fU 에러코드: %3$s</string>
<string name="danar_valuenotsetproperly">값이 제대로 설정되지 않았습니다</string>
<string name="danar_setbasalstep001">Basal 단위를 0.01 U/h로 설정하세요</string>
<string name="resetpairing">페어링 정보를 다시 설정하시겠습니까?</string>
<string name="dana_model">%1$s\n모델: %2$02X\n 프로토콜: %3$02X\n 코드: %4$02X</string>
<string name="processinghistory">이벤트 처리중</string>
<string name="danar_enableextendedbolus">펌프에서 확장Bolus를 활성화 하세요</string>
<string name="overview_bolusprogress_delivered">주입됨</string>
<string name="overview_bolusprogress_stoped">정지됨</string>
<string name="unsupportedfirmware">지원되지 않는 펌프 펌웨어</string>
<string name="pumperror">펌프 에러</string>
<string name="lowbattery">배터리 부족</string>
<string name="basalcompare">사전 설정된 Basal양보다 적게 주입</string>
<string name="pumpshutdown">펌프 종료</string>
<string name="batterydischarged">펌프배터리 방전</string>
<string name="occlusion">막힘</string>
<string name="emptyreservoir">빈 주사기</string>
<string name="checkshaft">샤프트를 확인하세요.</string>
<string name="basalmax">최대 Basal</string>
<string name="dailymax">일일 최대</string>
<string name="bloodsugarmeasurementalert">혈당측정알람</string>
<string name="remaininsulinalert">남은 인슐린 양</string>
<string name="missedbolus">놓친 Bolus</string>
<string name="invalidpairing">잘못된 페어링 정보입니다. 새로운 페어링을 요청합니다.</string>
<string name="gettingpumpstatus">펌프 상태 가져오는중</string>
<string name="gettingextendedbolusstatus">확장Bolus 상태 가져오는중</string>
<string name="gettingbolusstatus">Bolus 상태 가져오는중</string>
<string name="gettingtempbasalstatus">임시Basal 상태 가져오는중</string>
<string name="gettingpumpsettings">펌프설정 가져오는중</string>
<string name="gettingpumptime">펌프시간 가져오는중</string>
<string name="largetimedifftitle">큰 시간 차이</string>
<string name="largetimediff">큰 시간 차이:\n펌프의 시간과 1.5시간 이상 차이가 납니다.\n펌프의 이력에서 잘못된 시간을 읽어들임으로써 예상치 못한 행동이 발생하지 않도록 펌프의 시간을 수동으로 변경하세요.\n가능하면 시간을 변경하기 전에 펌프의 이력을 삭제하거나, 설정된 DIA 시간동안 Closed Loop를 비활성화 하세요.</string>
<string name="pairfirst">펌프를 폰과 동기화 하십시오</string>
<string name="approachingdailylimit">인슐린 일 허용량에 근접중</string>
<string name="startingbolus">Bolus 주입을 시작합니다.</string>
<string name="waitingforestimatedbolusend">Bolus 종료를 기다리고 있습니다. %d초 남았습니다.</string>
<string name="stoppingtempbasal">임시Basal 취소중</string>
<string name="settingextendedbolus">확장Bolus 설정중</string>
<string name="stoppingextendedbolus">확장Bolus 취소중</string>
<string name="updatingbasalrates">Basal양 업데이트중</string>
<string name="settingtempbasal">임시Basal 설정중</string>
<string name="waitingfortimesynchronization">시간 동기화 대기중 (%1$d 초)</string>
<string name="wrongpumppassword">펌프 비밀번호가 잘못되었습니다!</string>
<string name="danar_history_alarm">알람</string>
<string name="danar_history_basalhours">Basal 시간</string>
<string name="danar_history_bolus">Boluses</string>
<string name="danar_history_carbohydrates">탄수화물</string>
<string name="danar_history_dailyinsulin">일일 인슐린</string>
<string name="danar_history_errors">에러</string>
<string name="danar_history_glucose">혈당</string>
<string name="danar_history_refill">교체</string>
<string name="danar_history_syspend">중지</string>
<string name="danar_history_prime">교체</string>
<string name="danar_useroptions">사용자 옵션</string>
<string name="danar_timedisplay">시간형식</string>
<string name="danar_buttonscroll">버튼 스크롤</string>
<string name="danar_beep">버튼 누르면 소리가 납니다.</string>
<string name="danar_pumpalarm">알람</string>
<string name="danar_pumpalarm_sound">소리</string>
<string name="danar_pumpalarm_vibrate">진동</string>
<string name="danar_pumpalarm_both">모두</string>
<string name="danar_screentimeout">LCD 시간 [seconds]</string>
<string name="danar_backlight">화면조명 시간 [seconds]</string>
<string name="danar_glucoseunits">혈당 단위</string>
<string name="danar_shutdown">종료 [hours]</string>
<string name="danar_lowreservoir">낮은 주사기량 [Units]</string>
<string name="danar_saveuseroptions">펌프로 옵션 저장</string>
<string name="description_pump_dana_r">다나R 펌프와 연동(다나 RN)</string>
<string name="description_pump_dana_r_korean">내수용 다나R 펌프와 연동(다나 R)</string>
<string name="description_pump_dana_r_v2">업그레이드 펌웨어가 설치된 다나R 펌프와 연동</string>
<string name="danarpump_shortname">DANA</string>
<string name="nobtadapter">블루투스 어댑터를 찾지 못했습니다</string>
<string name="devicenotfound">선택된 기기를 찾지 못했습니다</string>
<string name="danar_switchtouhmode">펌프에서 U/d에서 U/h로 모드를 변경하세요</string>
<string name="danarkoreanpump">다나R 한글</string>
<string name="danarpump">다나R</string>
<string name="pumpdrivercorrected">펌프 드라이버가 수정되었습니다.</string>
<string name="danarv2pump">다나R v2</string>
<string name="danar_disableeasymode">펌프에서 이지모드(EasyUI)를 해제하세요</string>
<string name="profile_set_failed">Basal 프로파일 설정이 실패하였습니다</string>
<string name="danar_bluetooth_status">블루투스 상태</string>
<string name="danar_iob_label">펌프 IOB</string>
<string name="basal_step">Basal 단위</string>
<string name="bolus_step">Bolus 단위</string>
<string name="virtualpump_firmware_label">펌웨어</string>
<string name="danar_pump_settings">다나 펌프 설정</string>
<string name="timeformat12h">12h</string>
<string name="timeformat24h">24h</string>
<string name="option_on">켜짐</string>
<string name="option_off">꺼짐</string>
<string name="danar_bt_name_title">다나R 블루투스</string>
<string name="danars_password_title">펌프 비밀번호 (v1 전용)</string>
<string name="danar_password_title">펌프 비밀번호</string>
<string name="danar_useextended_title">200%%이상 주입 위해 확장 Bolus 사용</string>
<string name="bolusspeed">Bolus 속도</string>
<string name="selectedpump">선택된 펌프</string>
<string name="rs_loginsulinchange_title">주사기 교체 기록</string>
<string name="rs_loginsulinchange_summary">히스토리에서 발견될 때 \"인슐린 교체\"를 실행에서 입력</string>
<string name="rs_logcanulachange_title">Canula 변경 기록</string>
<string name="rs_logcanulachange_summary">히스토리에서 발견될 때 \"인슐린 교체\"를 실행에서 입력</string>
<string name="pin1">PIN1</string>
<string name="pin2">PIN2</string>
<string name="press_ok_on_the_pump">펌프\n에 있는 OK을 누르고 2개의 표시된 번호\n를 입력하는 동안 빼기 버튼을 눌러 화면이 꺼지지 않게 합니다.</string>
<string name="num1pin">1: (12자리)</string>
<string name="num2pin">2: (8자리)</string>
</resources>

View file

@ -6,7 +6,7 @@ apply plugin: 'com.hiya.jacoco-android'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
dependencies {
implementation project(':core')

View file

@ -52,6 +52,6 @@ class MsgStatusBolusExtended(
return (floor(System.currentTimeMillis() / 1000.0) - tempBasalAgoSecs).toLong() * 1000
}
// because there is no fixed timestamp of start allow update of tbr only if tbr start differs more
private fun isWithin3Sec(newStart: Long) = abs(newStart - danaPump.tempBasalStart) < 3000
// because there is no fixed timestamp of start allow update of eb only if tbr start differs more
private fun isWithin3Sec(newStart: Long) = abs(newStart - danaPump.extendedBolusStart) < 3000
}

View file

@ -6,6 +6,7 @@ apply plugin: 'com.hiya.jacoco-android'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
android {
ndkVersion "21.1.6352462"

View file

@ -27,7 +27,7 @@ class DanaRSPacketOptionGetPumpTime(
val sec = byteArrayToInt(getBytes(data, DATA_START + 5, 1))
val time = DateTime(2000 + year, month, day, hour, min, sec)
danaPump.setPumpTime(time.millis)
aapsLogger.debug(LTag.PUMPCOMM, "Pump time " + dateUtil.dateAndTimeString(time.millis))
aapsLogger.debug(LTag.PUMPCOMM, "Pump time " + dateUtil.dateAndTimeAndSecondsString(time.millis))
}
override fun handleMessageNotReceived() {

View file

@ -28,7 +28,7 @@ class DanaRSPacketOptionGetPumpUTCAndTimeZone(
val zoneOffset = getBytes(data, DATA_START + 6, 1)[0].toInt()
val time = DateTime(2000 + year, month, day, hour, min, sec)
danaPump.setPumpTime(time.millis, zoneOffset)
aapsLogger.debug(LTag.PUMPCOMM, "Pump time ${dateUtil.dateAndTimeString(danaPump.getPumpTime())} ZoneOffset: $zoneOffset")
aapsLogger.debug(LTag.PUMPCOMM, "Pump time ${dateUtil.dateAndTimeAndSecondsString(danaPump.getPumpTime())} ZoneOffset: $zoneOffset")
}
override fun handleMessageNotReceived() {

View file

@ -14,7 +14,7 @@ class DanaRSPacketOptionSetPumpTime(
init {
opCode = BleEncryption.DANAR_PACKET__OPCODE_OPTION__SET_PUMP_TIME
aapsLogger.debug(LTag.PUMPCOMM, "Setting pump time " + dateUtil.dateAndTimeString(time))
aapsLogger.debug(LTag.PUMPCOMM, "Setting pump time " + dateUtil.dateAndTimeAndSecondsString(time))
}
override fun getRequestParams(): ByteArray {

View file

@ -16,7 +16,7 @@ class DanaRSPacketOptionSetPumpUTCAndTimeZone(
init {
opCode = BleEncryption.DANAR_PACKET__OPCODE_OPTION__SET_PUMP_UTC_AND_TIME_ZONE
aapsLogger.debug(LTag.PUMPCOMM, "Setting UTC pump time ${dateUtil.dateAndTimeString(time)} ZoneOffset: $zoneOffset")
aapsLogger.debug(LTag.PUMPCOMM, "Setting UTC pump time ${dateUtil.dateAndTimeAndSecondsString(time)} ZoneOffset: $zoneOffset")
}
override fun getRequestParams(): ByteArray {

View file

@ -175,7 +175,7 @@ class DanaRSService : DaggerService() {
sendMessage(DanaRSPacketOptionSetPumpUTCAndTimeZone(injector, dateUtil.now(), offset))
}
danaPump.protocol >= 6 -> { // can set seconds
danaPump.protocol >= 5 -> { // can set seconds
sendMessage(DanaRSPacketOptionSetPumpTime(injector, dateUtil.now()))
}

View file

@ -6,6 +6,7 @@ apply plugin: 'com.hiya.jacoco-android'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
android {
defaultConfig {

View file

@ -186,7 +186,7 @@ class BigAPSMainInfoInquireResponsePacket(
// pump time setting 'yyyy-MM-dd'T'HH:mm:ssZ' “2019-07-04T12:30:30+0530”
val time = DateTime(diaconnG8Pump.year, diaconnG8Pump.month, diaconnG8Pump.day, diaconnG8Pump.hour, diaconnG8Pump.minute, diaconnG8Pump.second)
diaconnG8Pump.setPumpTime(time.millis)
aapsLogger.debug(LTag.PUMPCOMM, "Pump time " + dateUtil.dateAndTimeString(time.millis))
aapsLogger.debug(LTag.PUMPCOMM, "Pump time " + dateUtil.dateAndTimeAndSecondsString(time.millis))
// basal pattern from pump
diaconnG8Pump.pumpProfiles = Array(4) { Array(24) { 0.0 } }

View file

@ -183,7 +183,7 @@ class BigMainInfoInquireResponsePacket(
// pump time setting 'yyyy-MM-dd'T'HH:mm:ssZ' “2019-07-04T12:30:30+0530”
val time = DateTime(diaconnG8Pump.year, diaconnG8Pump.month, diaconnG8Pump.day, diaconnG8Pump.hour, diaconnG8Pump.minute, diaconnG8Pump.second)
diaconnG8Pump.setPumpTime(time.millis)
aapsLogger.debug(LTag.PUMPCOMM, "Pump time " + dateUtil.dateAndTimeString(time.millis))
aapsLogger.debug(LTag.PUMPCOMM, "Pump time " + dateUtil.dateAndTimeAndSecondsString(time.millis))
// basal pattern from pump
diaconnG8Pump.pumpProfiles = Array(4) { Array(24) { 0.0 } }

View file

@ -137,7 +137,7 @@ class DiaconnG8Service : DaggerService() {
val pumpFirmwareVersion = sp.getString(resourceHelper.gs(R.string.pumpversion),"")
if(!StringUtils.emptyString(pumpFirmwareVersion) && PumplogUtil.isPumpVersionGe(pumpFirmwareVersion, 2, 83)) {
if(!StringUtils.emptyString(pumpFirmwareVersion) && PumplogUtil.isPumpVersionGe(pumpFirmwareVersion, 3, 0)) {
sendMessage(BigAPSMainInfoInquirePacket(injector)) // APS Pump Main Info
} else {
sendMessage(BasalLimitInquirePacket(injector)) // basal Limit

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="resetpairing">Zrušit párování</string>
<string name="diaconn_nodeviceavailable">Nejsou k dispozici žádná zařízení</string>
<string name="diaconn_pairing">Párování pumpy Diaconn</string>
<string name="pumperror">Chyba pumpy</string>
<string name="diaconn_g8_history_alarm">Alarmy</string>
<string name="diaconn_g8_history_basalhours">Hodinové bazály</string>
<string name="diaconn_g8_history_bolus">Bolusy</string>
<string name="diaconn_g8_history_dailyinsulin">Denní inzulín</string>
<string name="diaconn_g8_history_errors">Chyby</string>
<string name="diaconn_g8_history_prime">Doplňování</string>
<string name="diaconn_g8_history_refill">Plnění</string>
<string name="diaconn_g8_history_suspend">Pozastavit</string>
<string name="diaconn_g8_pairingok">Spárováno</string>
<string name="diaconn_g8_waitingforpairing">Čekání na párování</string>
<string name="diaconn_firmware_version">Verze</string>
<string name="invalidpairing">Neplatné párovací informace. Spouštění nového párování</string>
<string name="gettingpumpsettings">Nahrávám nastavení pumpy</string>
<string name="gettingpumptime">Nahrávám čas v pumpě</string>
<string name="largetimediff">Velký rozdíl v času:\nČas v pumpě se liší minimálně o 1,5 h.\nProsím upravte čas v pumpě ručně a vymažte historii pumpy.\nPokud je to třeba, pozastavte smyčku alespoň na \"DIA\" hodin.</string>
<string name="largetimedifftitle">Velký rozdíl v času</string>
<string name="approachingdailylimit">Blíží se denní limit inzulínu</string>
<string name="startingbolus">Spouštím bolus</string>
<string name="waitingforestimatedbolusend">Čekání na předpokládaný konec bolusu</string>
<string name="gettingbolusstatus">Nahrávám bolusy</string>
<string name="stoppingtempbasal">Zastavuji dočasný bazál</string>
<string name="settingtempbasal">Nastavuji dočasný bazál</string>
<string name="settingextendedbolus">Nastavuji prodloužený bolus</string>
<string name="stoppingextendedbolus">Zastavuji prodloužený bolus</string>
<string name="updatingbasalrates">Aktualizuji bazály</string>
<string name="description_pump_diaconn_g8">Integrace pumpy pro pumpy Diaconn G8</string>
<string name="diaconn_g8_pump">Diakonn G8</string>
<string name="diaconn_g8_pump_shortname">Diakonn G8</string>
<string name="maxbolusviolation">Překročen maximální bolus</string>
<string name="commanderror">Chyba příkazu</string>
<string name="speederror">Chyba rychlosti</string>
<string name="insulinlimitviolation">Překročen limit inzulínu</string>
<string name="boluserrorcode">Požadováno: %1$.2fU Doručeno: %2$.2fU Chyba: %3$s</string>
<string name="diaconn_g8_valuenotsetproperly">Hodnota nenastavena správně</string>
<string name="diaconn_g8_bt_name_title">Zařízení Bluetooth Diaconn G8</string>
<string name="diaconn_g8_password_title">Heslo k pumpě</string>
<string name="bolusspeed">Rychlost bolusu</string>
<string name="selectedpump">Vybraná pumpa</string>
<string name="diaconn_g8_useextended_title">Použít prodloužené bolusy pro &gt;200%%</string>
<string name="diaconn_g8_visualizeextendedaspercentage_title">Zobrazovat prodloužený bolus v %%</string>
<string name="diaconn_g8_bluetooth_status">Stav Bluetooth</string>
<string name="diagonn_g8_tdd_label">CDD</string>
<string name="bolus_step">Krok bolusu</string>
<string name="basal_step">Krok bazálu</string>
<string name="pump_firmware_label">Firmware</string>
<string name="diagonn_g8_useroptions">UŽIVATELSKÉ VOLBY</string>
<string name="pairfirst">Prosím, spárujte pumpu s telefonem!</string>
<string name="processinghistory">"Zpracovávám Událost "</string>
<string name="apslastLogNum">aps_last_log_num</string>
<string name="apsWrappingCount">aps_wrapping_count</string>
<string name="diaconn_g8_history_tempbasal">Dočasný Bazál</string>
<string name="diaconng8_pump_settings">Nastavení pumpy Diaconn</string>
<string name="diaconn_g8_pumpalarm">Zvuk</string>
<string name="diaconn_g8_pumpalarm_sound">zvuk</string>
<string name="diaconn_g8_pumpalarm_vibrate">vibrovat</string>
<string name="diaconn_g8_pumpalarm_silent">ticho</string>
<string name="diaconn_g8_pumpalarmlevel">Hlasitost alarmu</string>
<string name="diaconn_g8_pumpalarm_intensity_low">nízká</string>
<string name="diaconn_g8_pumpalarm_intensity_middle">střední</string>
<string name="diaconn_g8_pumpalarm_intensity_high">vysoká</string>
<string name="diaconn_g8_screentimeout">Čas před vypnutím displeje [second]</string>
<string name="diaconn_g8_saveuseroptions">ULOŽIT VOLBY DO PUMPY</string>
<string name="diaconn_g8_language">Jazyk</string>
<string name="diaconn_g8_bolus_speed">Rychlost bolusu</string>
<string name="diaconn_g8_pumplang_chiness">Čínština</string>
<string name="diaconn_g8_pumplang_korean">Korejština</string>
<string name="diaconn_g8_pumplang_english">Angličtina</string>
<string name="diaconn_g8_screentimeout_10">"10 "</string>
<string name="diaconn_g8_pumpscreentimeout_10">10</string>
<string name="diaconn_g8_pumpscreentimeout_20">20</string>
<string name="diaconn_g8_pumpscreentimeout_30">30</string>
<string name="diaconn_g8_pumpalarm_low">nízká</string>
<string name="injectionblocked">Aplikace zablokována</string>
<string name="batterywarning">Upozornění na stav baterie</string>
<string name="insulinlackwarning">Upozornění na nedostatek inzulínu</string>
<string name="needbatteryreplace">Je vyžadována výměna baterie</string>
<string name="needinsullinreplace">Je vyžadována výměna inzulínu</string>
<string name="pumpversion">pump_version</string>
<string name="apsIncarnationNo">aps_incarnation_no</string>
<string name="pumpserialno">pump_serial_no</string>
<string name="diaconn_g8_loginsulinchange_title">Zaznamenat výměnu zásobníku</string>
<string name="diaconn_g8_loginsulinchange_summary">Přidat událost \"Výměna inzulínu\" do portálu pěče, pokud je zjištěna v historii</string>
<string name="diaconn_g8_logcanulachange_title">Zaznamenat změnu jehly</string>
<string name="diaconn_g8_logcanulachange_summary">Přidat událost \"Výměna setu\" do portálu pěče, pokud je zjištěna v historii</string>
<string name="diaconn_g8_logbatterychange_summary">Přidat událost \"Výměna baterie\" do portálu pěče, pokud je zjištěna v historii</string>
<string name="diaconn_g8_logbatterychange_title">Zaznamenat výměnu baterie</string>
<string name="diaconn_g8_logsyncinprogress">Probíhá synchronizace logu</string>
<string name="diaconn_g8_loginsulinshorage">Nedostatek inzulínu</string>
<string name="diaconn_g8_logbatteryshorage">Slabá baterie</string>
<string name="diaconn_g8_resetfactoryreset">Resetovat po obnovení továrního nastavení</string>
<string name="diaconn_g8_resetemergencyoff">Resetovat po nouzovém vypnutí</string>
<string name="diaconn_g8_resetbatteryreplacement">Resetovat po výměně baterie</string>
<string name="diaconn_g8_reasoncomplete">Dokončeno</string>
</resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="resetpairing">Kopplung zurücksetzen</string>
<string name="diaconn_nodeviceavailable">Keine Geräte verfügbar</string>
<string name="diaconn_pairing">Diaconn Pumpe verbinden</string>
<string name="pumperror">Pumpenfehler</string>
<string name="diaconn_g8_history_alarm">Alarme</string>
<string name="diaconn_g8_history_basalhours">Basal-Stunden</string>
<string name="diaconn_g8_history_bolus">Boli</string>
<string name="diaconn_g8_history_dailyinsulin">Insulin-Tagesmengen</string>
<string name="diaconn_g8_history_errors">Fehler</string>
<string name="diaconn_g8_history_prime">Füllen</string>
<string name="diaconn_g8_history_refill">Befüllen</string>
<string name="diaconn_g8_history_suspend">Unterbrechen</string>
<string name="diaconn_g8_pairingok">Kopplung OK</string>
<string name="diaconn_g8_waitingforpairing">Warte auf Kopplung</string>
<string name="diaconn_firmware_version">Version</string>
<string name="invalidpairing">Ungültige Kopplungs-Info. Kopple neu.</string>
<string name="gettingpumpsettings">Pumpen-Einstellungen werden ermittelt</string>
<string name="gettingpumptime">Zeiteinstellung der Pumpe wird ermittelt</string>
<string name="largetimediff">Großer Zeitunterschied:\nDie Zeit in der Pumpe weicht um mindestens 1,5 Stunden ab.\nPasse die Zeit auf der Pumpe manuell an und lösche zuvor - falls möglich - die Pumpenhistorie.\nAlternativ kannst Du den Loop für die Stunden der Insulinwirkzeit (DIA) deaktivieren.</string>
<string name="largetimedifftitle">Großer Zeitunterschied Titel</string>
<string name="approachingdailylimit">Tagesinsulin-Limit wird bald erreicht</string>
<string name="startingbolus">Bolus-Abgabe gestartet</string>
<string name="waitingforestimatedbolusend">Warte auf das geschätze Bolus-Ende</string>
<string name="gettingbolusstatus">Status des Bolus wird ermittelt</string>
<string name="stoppingtempbasal">TBR wird abgebrochen</string>
<string name="settingtempbasal">TBR wird gesetzt</string>
<string name="settingextendedbolus">Verzögerter Bolus wird gesetzt</string>
<string name="stoppingextendedbolus">Verzögerter Bolus wird abgebrochen</string>
<string name="updatingbasalrates">Basalrate wird aktualisiert</string>
<string name="description_pump_diaconn_g8">Pumpenintegration für Diaconn G8 Pumpen</string>
<string name="diaconn_g8_pump">Diaconn G8</string>
<string name="diaconn_g8_pump_shortname">Diaconn G8</string>
<string name="maxbolusviolation">Max. Bolus überschritten</string>
<string name="commanderror">Fehler bei Befehlsausführung</string>
<string name="speederror">Geschwindigkeits-Fehler</string>
<string name="insulinlimitviolation">Insulin-Beschränkung verletzt</string>
<string name="boluserrorcode">Angefragt: %1$.2f IE. Abgegeben: %2$.2f IE. Fehlercode: %3$s</string>
<string name="diaconn_g8_valuenotsetproperly">Wert nicht korrekt gesetzt</string>
<string name="diaconn_g8_bt_name_title">Diaconn G8 Bluetooth Gerät</string>
<string name="diaconn_g8_password_title">Pumpen-Passwort</string>
<string name="bolusspeed">Bolus-Geschwindigkeit</string>
<string name="selectedpump">Ausgewählte Pumpe</string>
<string name="diaconn_g8_useextended_title">Benutze verzögerten Bolus für hohe TBR &gt;200%%</string>
<string name="diaconn_g8_visualizeextendedaspercentage_title">Zeige verzögerten Bolus als %% an.</string>
<string name="diaconn_g8_bluetooth_status">Bluetooth-Status</string>
<string name="diagonn_g8_tdd_label">TDD</string>
<string name="bolus_step">Bolus-Schritt</string>
<string name="basal_step">Basal-Schritt</string>
<string name="pump_firmware_label">Firmware</string>
<string name="diagonn_g8_useroptions">BENUTZER-OPTIONEN</string>
<string name="pairfirst">Bitte kopple deine Pumpe mit deinem Telefon!</string>
<string name="processinghistory">"Ereignis wird verarbeitet "</string>
<string name="diaconn_g8_history_tempbasal">Temporäre Basalrate</string>
<string name="diaconng8_pump_settings">Diaconn-Pumpen Einstellungen</string>
<string name="diaconn_g8_pumpalarm">Töne</string>
<string name="diaconn_g8_pumpalarm_sound">Töne</string>
<string name="diaconn_g8_pumpalarm_vibrate">Vibration</string>
<string name="diaconn_g8_pumpalarm_silent">Lautlos</string>
<string name="diaconn_g8_pumpalarmlevel">Alarmintensität</string>
<string name="diaconn_g8_pumpalarm_intensity_low">niedrig</string>
<string name="diaconn_g8_pumpalarm_intensity_middle">mittel</string>
<string name="diaconn_g8_pumpalarm_intensity_high">hoch</string>
<string name="diaconn_g8_screentimeout">LCD-Einschaltdauer [Sek.]</string>
<string name="diaconn_g8_saveuseroptions">OPTION IN PUMPE SPEICHERN</string>
<string name="diaconn_g8_language">Sprache</string>
<string name="diaconn_g8_bolus_speed">Bolus-Geschwindigkeit</string>
<string name="diaconn_g8_pumplang_chiness">Chinesisch</string>
<string name="diaconn_g8_pumplang_korean">Korean</string>
<string name="diaconn_g8_pumplang_english">Englisch</string>
<string name="diaconn_g8_screentimeout_10">"10 "</string>
<string name="diaconn_g8_pumpscreentimeout_10">10</string>
<string name="diaconn_g8_pumpscreentimeout_20">20</string>
<string name="diaconn_g8_pumpscreentimeout_30">30</string>
<string name="diaconn_g8_pumpalarm_low">niedrig</string>
<string name="injectionblocked">Verstopfung</string>
<string name="batterywarning">Akku-Alarm</string>
<string name="insulinlackwarning">Warnung Insulinmangel</string>
<string name="needbatteryreplace">Batteriewechsel erforderlich</string>
<string name="needinsullinreplace">Neues Insulin erforderlich</string>
<string name="diaconn_g8_loginsulinchange_title">Reservoirwechsel aufzeichnen</string>
<string name="diaconn_g8_loginsulinchange_summary">Reservoirwechsel im Careportal hinzufügen, falls dies in der Historie gefunden wird.</string>
<string name="diaconn_g8_logcanulachange_title">Kanülenwechsel protokollieren</string>
<string name="diaconn_g8_logcanulachange_summary">Kanülenwechsel im Careportal hinzufügen, falls dies in der Historie gefunden wird.</string>
<string name="diaconn_g8_logbatterychange_summary">Batteriewechsel im Careportal hinzufügen, falls dies in der Historie gefunden wird.</string>
<string name="diaconn_g8_logbatterychange_title">Batteriewechsel protokollieren</string>
<string name="diaconn_g8_logsyncinprogress">Synchronisierung aufzeichnen</string>
<string name="diaconn_g8_loginsulinshorage">Niedriger Insulinstand</string>
<string name="diaconn_g8_logbatteryshorage">Niedriger Akkustand</string>
<string name="diaconn_g8_logneedleprime">Kanüle füllen :%1$.2f IE</string>
<string name="diaconn_g8_loginjectorprime">Injector füllen:%1$.2fIE</string>
<string name="diaconn_g8_logtubeprime">Katheter füllen: %1$.2fIE</string>
<string name="diaconn_g8_resetfactoryreset">Reset nach Zurücksetzen auf Werkseinstellungen</string>
<string name="diaconn_g8_resetemergencyoff">Reset nach Notfallaus</string>
<string name="diaconn_g8_resetbatteryreplacement">Reset nach Batteriewechsel</string>
<string name="diaconn_g8_resetaftercalibration">Reset nach Kalibrierung</string>
<string name="diaconn_g8_resetpreshipment">Zurücksetzen auf Werkseinstellungen</string>
<string name="diaconn_g8_resetunexpected">Unerwarteter Systemreset</string>
<string name="diaconn_g8_reasoncomplete">Abgeschlossen</string>
<string name="diaconn_g8_reasoninjectonblock">Verstopfung</string>
<string name="diaconn_g8_reasonbatteryshortage">Niedriger Akkustand</string>
<string name="diaconn_g8_reasoninsulinshortage">Niedriger Insulinstand</string>
<string name="diaconn_g8_reasonuserstop">Stop durch Benutzer</string>
<string name="diaconn_g8_reasonsystemreset">System zurücksetzen</string>
<string name="diaconn_g8_reasonother">Andere</string>
<string name="diaconn_g8_reasonemergencystop">Notfall-Stop</string>
<string name="diacon_g8_blockbasal">BASAL</string>
<string name="diacon_g8_blockmealbolus">MAHLZEITEN BOLUS</string>
<string name="diacon_g8_blocknormalbolus">NORMALER BOLUS</string>
<string name="diacon_g8_blocksquarebolus">VERZÖGERTER BOLUS</string>
<string name="diacon_g8_blockdualbolus">DUAL BOLUS</string>
<string name="diacon_g8_blockreplacetube">KATHETER WECHSELN</string>
<string name="diacon_g8_blockreplaceneedle">KANÜLE WECHSELN</string>
<string name="diaconn_g8_logalarmblock">Verstopfung (%s)</string>
<string name="diaconn_g8_lgorelease">Basalabgabe (%s)</string>
<string name="diaconn_g8_lgosuspend">Basal unterbrechen (%s)</string>
<string name="diaconn_g8_logdualnormalsuccess">Dual Bolus abgegeben</string>
<string name="diaconn_g8_logdualsquarestart">Multiwave Bolus gestartet</string>
<string name="diaconn_g8_logdualsquaresuccess">Multiwave Bolus abgegeben</string>
<string name="diaconn_g8_logsquarestart">Verzögerter Bolus gestartet</string>
<string name="diaconn_g8_logsquaresuccess">Verzögerter Bolus abgegeben</string>
<string name="diaconn_g8_logmealfail">Mahlzeit fehlgeschlagen</string>
<string name="diaconn_g8_logsuccess">Erfolgreich</string>
<string name="diaconn_g8_logmealsuccess">Mahlzeit erfolgreich</string>
<string name="key_diaconn_g8_logtubechange">diaconn_g8_logtubechange</string>
<string name="diaconn_g8_errorcode_1">CRC Fehler - Lookup nicht möglich.</string>
<string name="diaconn_g8_errorcode_2">Kann nicht auf fehlerhaften Eingabeparameter gesetzt werden.</string>
<string name="diaconn_g8_errorcode_3">Kann nicht auf fehlerhafte Protokollspezifikation gesetzt werden.</string>
<string name="diaconn_g8_errorcode_4">Essenszeitpunkt eingestellt. Keine Insulingabe möglich.</string>
<string name="diaconn_g8_errorcode_6">Von Pumpe abgebrochen</string>
<string name="diaconn_g8_errorcode_7">Andere Aktionen durchführen, App-Einstellungen beschränkt.</string>
<string name="diaconn_g8_errorcode_8">Weitere Injektion während Bolusgabe nicht möglich.</string>
<string name="diaconn_g8_errorcode_9">Fortsetzen der Basal-Injektion erforderlich</string>
<string name="diaconn_g8_errorcode_10">Abgebrochen, da die Pumpe nicht reagiert.</string>
<string name="diaconn_g8_errorcode_11">Abgabe wegen niedrigem Akkustand nicht möglich.</string>
<string name="diaconn_g8_errorcode_12">Abgabe wegen Insulinmangel nicht möglich.</string>
<string name="diaconn_g8_errorcode_13">Keine Abgabe, da Limit für Einzelabgabe überschritten.</string>
<string name="diaconn_g8_errorcode_14">Keine Abgabe, da Tageslimit überschritten.</string>
<string name="diaconn_g8_errorcode_15">Nach Abschluss der Basaleinrichtung kann Basalgabe erfolgen.</string>
<string name="diaconn_g8_errotpreceivedyet">Der Befehl wurde nicht ausgeführt. Bitte versuche es erneut.</string>
<string name="diaconn_g8_logtubechange_title">Katheterwechsel protokollieren</string>
<string name="diaconn_g8_logtubechange_summary">Katheterwechsel in Notizen hinzufügen, falls dies in der Historie gefunden wird.</string>
<string name="diaconn_g8_logtempstart">TBR Start</string>
<string name="diaconn_g8_errorcode_32">Abgabe eingeschränkt während LGS läuft.</string>
<string name="diaconn_g8_errorcode_33">LGS aktiv, Befehl zum Einschalten zurückgewiesen.</string>
<string name="diaconn_g8_errorcode_34">LGS inaktiv, Befehl zum Ausschalten zurückgewiesen.</string>
<string name="diaconn_g8_errorcode_35">TBR Start ist während einer laufenden TBR nicht möglich.</string>
<string name="diaconn_g8_errorcode_36">TBR kann nicht gestoppt werden, da keine TBR läuft.</string>
</resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="resetpairing">Réinit. Appairage</string>
<string name="diaconn_nodeviceavailable">Aucun appareil disponible</string>
<string name="diaconn_pairing">Appairage pompe Diaconn</string>
<string name="pumperror">Erreur Pompe</string>
<string name="diaconn_g8_history_alarm">Alarmes</string>
<string name="diaconn_g8_history_basalhours">Heures Basal</string>
<string name="diaconn_g8_history_bolus">Bolus</string>
<string name="diaconn_g8_history_dailyinsulin">Insuline quotidienne</string>
<string name="diaconn_g8_history_errors">Erreurs</string>
<string name="diaconn_g8_history_prime">Amorcer</string>
<string name="diaconn_g8_history_refill">Remplir</string>
<string name="diaconn_g8_history_suspend">Suspendre</string>
<string name="diaconn_g8_pairingok">Appairage Ok</string>
<string name="diaconn_g8_waitingforpairing">En attente d\'appairage</string>
<string name="diaconn_firmware_version">Version</string>
<string name="invalidpairing">Appairage invalide. Demande de nouvel appairage</string>
<string name="gettingpumpsettings">Obtenir les paramètres pompe</string>
<string name="gettingpumptime">Obtenir l\'heure de la pompe</string>
<string name="largetimediff">Différence horaire importante:\nL\'heure de la pompe est en écart de plus d\'une heure et demi.\nVeuillez ajuster manuellement l\'heure de la pompe et assurez-vous que la lecture de l\'historique de la pompe ne cause pas de dysfonctionnements.\nSi possible, effacez l\'historique de la pompe avant de modifier l\'heure ou désactivez la Boucle Fermée pour une DAI après la dernière entrée erronée de l\'historique et au minimum une DAI à partir de maintenant.</string>
<string name="largetimedifftitle">Différence horaire importante</string>
<string name="approachingdailylimit">Limite quotidienne d\'insuline proche</string>
<string name="startingbolus">Injection du bolus démarrée</string>
<string name="waitingforestimatedbolusend">En attente de la fin du bolus estimé</string>
<string name="gettingbolusstatus">Obtenir l\'état du bolus</string>
<string name="stoppingtempbasal">Arrêter basal temp</string>
<string name="settingtempbasal">Définir basal temp</string>
<string name="settingextendedbolus">Définir bolus étendu</string>
<string name="stoppingextendedbolus">Arrêter bolus étendu</string>
<string name="updatingbasalrates">Mise à jour des débits basal</string>
<string name="description_pump_diaconn_g8">Intégration de la pompe Diaconn G8</string>
<string name="diaconn_g8_pump">Diaconn G8</string>
<string name="diaconn_g8_pump_shortname">G8</string>
<string name="maxbolusviolation">Violation bolus Max</string>
<string name="commanderror">Erreur de commande</string>
<string name="speederror">Erreur de vitesse</string>
<string name="insulinlimitviolation">Violation de limite d\'insuline</string>
<string name="boluserrorcode">Demandé : %1$.2fU Injecté : %2$.2fU code derreur : %3$s</string>
<string name="diaconn_g8_valuenotsetproperly">Valeur incorrecte définie</string>
<string name="diaconn_g8_bt_name_title">Dispositif Bluetooth Diaconn G8</string>
<string name="diaconn_g8_password_title">Mot de passe pompe</string>
<string name="bolusspeed">Vitesse bolus</string>
<string name="selectedpump">Pompe sélectionnée</string>
<string name="diaconn_g8_useextended_title">Utiliser les bolus étendus pour &gt; 200%%</string>
<string name="diaconn_g8_visualizeextendedaspercentage_title">Afficher le bolus étendu en %%</string>
<string name="diaconn_g8_bluetooth_status">État Bluetooth</string>
<string name="diagonn_g8_tdd_label">DTI</string>
<string name="bolus_step">Incrément Bolus</string>
<string name="basal_step">Incrément Basal</string>
<string name="pump_firmware_label">Firmware</string>
<string name="diagonn_g8_useroptions">OPTIONS UTILISATEUR</string>
<string name="pairfirst">Veuillez appairer votre pompe avec votre téléphone !</string>
<string name="processinghistory">"Traitement d'événement "</string>
<string name="apslastLogNum">aps_last_log_num</string>
<string name="apsWrappingCount">aps_wrapping_count</string>
<string name="diaconn_g8_history_tempbasal">Basal Temp.</string>
<string name="diaconng8_pump_settings">Paramètres pompe Diaconn</string>
<string name="diaconn_g8_pumpalarm">Son</string>
<string name="diaconn_g8_pumpalarm_sound">son</string>
<string name="diaconn_g8_pumpalarm_vibrate">vibration</string>
<string name="diaconn_g8_pumpalarm_silent">muet</string>
<string name="diaconn_g8_pumpalarmlevel">Niveau de l\'alarme</string>
<string name="diaconn_g8_pumpalarm_intensity_low">bas</string>
<string name="diaconn_g8_pumpalarm_intensity_middle">moyen</string>
<string name="diaconn_g8_pumpalarm_intensity_high">haut</string>
<string name="diaconn_g8_screentimeout">Durée affichage LCD [secondes]</string>
<string name="diaconn_g8_saveuseroptions">ENREGISTRER L\'OPTION DANS LA POMPE</string>
<string name="diaconn_g8_language">Langue</string>
<string name="diaconn_g8_bolus_speed">Vitesse bolus</string>
<string name="diaconn_g8_pumplang_chiness">Chinois</string>
<string name="diaconn_g8_pumplang_korean">Coréen</string>
<string name="diaconn_g8_pumplang_english">Anglais</string>
<string name="diaconn_g8_screentimeout_10">"10 "</string>
<string name="diaconn_g8_pumpscreentimeout_10">10</string>
<string name="diaconn_g8_pumpscreentimeout_20">20</string>
<string name="diaconn_g8_pumpscreentimeout_30">30</string>
<string name="diaconn_g8_pumpalarm_low">bas</string>
<string name="injectionblocked">Injection bloquée</string>
<string name="batterywarning">Alerte batterie</string>
<string name="insulinlackwarning">Avertissement manque d\'insuline</string>
<string name="needbatteryreplace">Remplacement de pile requis</string>
<string name="needinsullinreplace">Remplacement de l\'insuline requis</string>
<string name="pumpversion">pump_version</string>
<string name="apsIncarnationNo">aps_incarnation_no</string>
<string name="pumpserialno">pump_serial_no</string>
<string name="diaconn_g8_loginsulinchange_title">Enreg. changement de réservoir</string>
<string name="diaconn_g8_loginsulinchange_summary">Ajouter \"Changement d\'Insuline\" dans careportal si détecté dans l\'historique</string>
<string name="diaconn_g8_logcanulachange_title">Enreg. le changement d\'aiguille</string>
<string name="diaconn_g8_logcanulachange_summary">Ajouter \"Changement de Site\" dans careportal si détecté dans l\'historique</string>
<string name="diaconn_g8_logbatterychange_summary">Ajouter \"Changement de pile\" dans careportal si détecté dans l\'historique</string>
<string name="diaconn_g8_logbatterychange_title">Enreg. changement pile</string>
<string name="diaconn_g8_logsyncinprogress">Enreg. synchronisation en cours</string>
<string name="diaconn_g8_loginsulinshorage">Manque d\'insuline</string>
<string name="diaconn_g8_logbatteryshorage">Pile faible</string>
<string name="diaconn_g8_logneedleprime">Amorçage site :%1$.2fU</string>
<string name="diaconn_g8_loginjectorprime">Amorçage injecteur :%1$.2fU</string>
<string name="diaconn_g8_logtubeprime">Amorçage tubulure :%1$.2fU</string>
<string name="diaconn_g8_resetfactoryreset">Réinit. après configuration usine</string>
<string name="diaconn_g8_resetemergencyoff">Réinit. après la désactivation d\'urgence</string>
<string name="diaconn_g8_resetbatteryreplacement">Réinit. après changement de pile</string>
<string name="diaconn_g8_resetaftercalibration">Réinit. après calibration</string>
<string name="diaconn_g8_resetpreshipment">Réinit. après la configuration de la pré-livraison</string>
<string name="diaconn_g8_resetunexpected">Réinit. inattendue du système</string>
<string name="diaconn_g8_reasoncomplete">Effectué</string>
<string name="diaconn_g8_reasoninjectonblock">Injection bloquée</string>
<string name="diaconn_g8_reasonbatteryshortage">Pile faible</string>
<string name="diaconn_g8_reasoninsulinshortage">Manque d\'insuline</string>
<string name="diaconn_g8_reasonuserstop">Arrêt utilisateur</string>
<string name="diaconn_g8_reasonsystemreset">Réinit. système</string>
<string name="diaconn_g8_reasonother">Autre</string>
<string name="diaconn_g8_reasonemergencystop">Arrêt d\'urgence</string>
<string name="diacon_g8_blockbasal">BASAL</string>
<string name="diacon_g8_blockmealbolus">BOLUS REPAS</string>
<string name="diacon_g8_blocknormalbolus">BOLUS NORMAL</string>
<string name="diacon_g8_blocksquarebolus">BOLUS CARRÉ</string>
<string name="diacon_g8_blockdualbolus">BOLUS MIXTE</string>
<string name="diacon_g8_blockreplacetube">REMPLACER TUBULURE</string>
<string name="diacon_g8_blockreplaceneedle">REMPLACER L\'AIGUILLE</string>
<string name="diacon_g8_blockreplacesyringe">REMPLACER SERINGUE</string>
<string name="diaconn_g8_logalarmblock">Injection bloquée (%s)</string>
<string name="diaconn_g8_lgorelease">autorisation basale (%s)</string>
<string name="diaconn_g8_lgosuspend">suspension basale (%s)</string>
<string name="diaconn_g8_logdualnormalsuccess">Succès du Double Normal</string>
<string name="diaconn_g8_logdualsquarestart">Début du double carré</string>
<string name="diaconn_g8_logdualsquaresuccess">Succès du double carré</string>
<string name="diaconn_g8_logsquarestart">Début du carré</string>
<string name="diaconn_g8_logsquaresuccess">Succès du carré</string>
<string name="diaconn_g8_logmealfail">Repas échoué</string>
<string name="diaconn_g8_logsuccess">Effectué</string>
<string name="diaconn_g8_logmealsuccess">Repas réussi</string>
<string name="key_diaconn_g8_logtubechange">diaconn_g8_logtubechange</string>
<string name="diaconn_g8_errorcode_1">Recherche impossible en raison d\'une erreur CRC de paquets.</string>
<string name="diaconn_g8_errorcode_6">Annulé par la pompe</string>
<string name="diaconn_g8_errorcode_7">Autres actions en cours, limitation des paramètres de l\'application.</string>
<string name="diaconn_g8_errorcode_8">Injection restreint pendant une autre injection de Bolus.</string>
<string name="diaconn_g8_errorcode_9">Reprise de l\'injection basale nécessaire</string>
<string name="diaconn_g8_errorcode_10">Annulé à cause d\'absence de réponse de la pompe.</string>
<string name="diaconn_g8_errorcode_11">L\'injection n\'est pas possible en raison d\'une pile faible.</string>
<string name="diaconn_g8_errorcode_12">Injection impossible en raison de manque d\'insuline.</string>
<string name="diaconn_g8_errotpreceivedyet">Commande non transmise. Veuillez réessayer.</string>
<string name="diaconn_g8_logtubechange_title">Enreg. changement de tubulure</string>
<string name="diaconn_g8_logtubechange_summary">Ajouter \"Changement de tubulure\" à Careportal lorsqu\'il est détecté dans l\'historique</string>
<string name="diaconn_g8_logtempstart">Début Basal Temp.</string>
<string name="diaconn_g8_errorcode_32">En mode AGB, l\'injection d\'insuline est limitée</string>
<string name="diaconn_g8_errorcode_33">Mode AGB activé, la commande de mise en marche est refusée.</string>
<string name="diaconn_g8_errorcode_34">Mode AGB désactivé, la commande d\'arrêt est refusée.</string>
<string name="diaconn_g8_errorcode_35">Début de basal temp. rejeté quand une basal temp. est en cours d\'exécution</string>
<string name="diaconn_g8_errorcode_36">Arrêt de basal temp. rejeté quand une basal temp. n\'est pas en cours d\'exécution</string>
</resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="diaconn_pairing">Associazione micro Diaconn</string>
<string name="pumperror">Errore micro</string>
<string name="diaconn_g8_history_alarm">Allarmi</string>
<string name="diaconn_g8_history_basalhours">Ore basali</string>
<string name="diaconn_g8_history_bolus">Boli</string>
<string name="diaconn_g8_history_dailyinsulin">Insulina giornaliera</string>
<string name="diaconn_g8_history_errors">Errori</string>
<string name="diaconn_g8_history_prime">Caricamento</string>
<string name="diaconn_g8_history_refill">Riempimento</string>
<string name="diaconn_g8_history_suspend">Sospensione</string>
<string name="diaconn_g8_pairingok">Associazione OK</string>
<string name="diaconn_g8_waitingforpairing">In attesa dell\'associazione</string>
<string name="diaconn_firmware_version">Versione</string>
<string name="invalidpairing">Informazioni associazione non valide. Richiesta nuova associazione</string>
<string name="gettingpumpsettings">Ricezione impostazioni micro</string>
<string name="gettingpumptime">Ricezione ora micro</string>
<string name="largetimediff">Grande differenza oraria:\nL\'ora nel micro differisce per più di 1h e 30m. \nRegola l\'ora manualmente e assicurati che la lettura dello storico dal micro non causi comportamenti imprevisti.\nSe possibile, cancella lo storico del micro prima di cambiare l\'ora oppure disabilita il loop chiuso per un tempo corrispondente al tuo valore DIA.</string>
<string name="approachingdailylimit">Si avvicina il limite giornaliero di insulina</string>
<string name="startingbolus">Avvio erogazione bolo</string>
<string name="gettingbolusstatus">Ricezione stato bolo</string>
<string name="stoppingtempbasal">Stop basale temporanea</string>
<string name="settingtempbasal">Impostazione basale temporanea</string>
<string name="settingextendedbolus">Impostazione bolo esteso</string>
<string name="stoppingextendedbolus">Stop bolo esteso</string>
<string name="updatingbasalrates">Aggiornamento velocità basali</string>
<string name="diaconn_g8_pump">Diaconn G8</string>
<string name="diaconn_g8_pump_shortname">Diaconn G8</string>
<string name="maxbolusviolation">Violazione bolo massimo</string>
<string name="commanderror">Errore comando</string>
<string name="speederror">Errore velocità</string>
<string name="insulinlimitviolation">Violazione limite insulina</string>
<string name="boluserrorcode">Chiesto: %1$.2fU Erogato: %2$.2fU Codice errore: %3$s</string>
<string name="diaconn_g8_valuenotsetproperly">Valore non impostato correttamente</string>
<string name="diaconn_g8_password_title">Password micro</string>
<string name="bolusspeed">Velocità bolo</string>
<string name="selectedpump">Micro selezionato</string>
<string name="diaconn_g8_useextended_title">Usa boli estesi per &gt;200%%</string>
<string name="diaconn_g8_visualizeextendedaspercentage_title">Visualizza bolo esteso come %%</string>
<string name="diaconn_g8_bluetooth_status">Stato bluetooth</string>
<string name="diagonn_g8_tdd_label">TDD</string>
<string name="bolus_step">Incremento bolo</string>
<string name="basal_step">Incremento basale</string>
<string name="pump_firmware_label">Firmware</string>
<string name="diagonn_g8_useroptions">OPZIONI UTENTE</string>
<string name="diaconn_g8_reasonother">Altro</string>
<string name="diacon_g8_blockbasal">BASALE</string>
<string name="diacon_g8_blockmealbolus">BOLO PASTO</string>
<string name="diacon_g8_blocknormalbolus">BOLO NORMALE</string>
<string name="diacon_g8_blocksquarebolus">BOLO ONDA QUADRA</string>
<string name="diacon_g8_blockdualbolus">BOLO ONDA DOPPIA</string>
<string name="diaconn_g8_logtempstart">Avvio basale temporanea</string>
</resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -1,53 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="resetpairing" >페어링 초기화</string>
<string name="diaconn_nodeviceavailable" >장비가 존재하지 않습니다.</string>
<string name="diaconn_pairing" >디아콘 펌프 페어링</string>
<string name="pumperror" >펌프 에러</string>
<string name="diaconn_g8_history_alarm" >알람</string>
<string name="diaconn_g8_history_basalhours" >시간당 Basal 주입량</string>
<string name="diaconn_g8_history_bolus" >Boluses</string>
<string name="diaconn_g8_history_dailyinsulin" >하루 주입량</string>
<string name="resetpairing">페어링 초기화</string>
<string name="diaconn_nodeviceavailable">장비가 존재하지 않습니다.</string>
<string name="diaconn_pairing">디아콘 펌프 페어링</string>
<string name="pumperror">펌프 에러</string>
<string name="diaconn_g8_history_alarm">알람</string>
<string name="diaconn_g8_history_basalhours">시간당 Basal 주입량</string>
<string name="diaconn_g8_history_dailyinsulin">하루 주입량</string>
<string name="diaconn_g8_history_refill">교체</string>
<string name="diaconn_g8_history_suspend">중지</string>
<string name="gettingpumpsettings" >펌프상태조회</string>
<string name="gettingpumptime" >펌프시간정보 조회</string>
<string name="largetimediff" >Large time difference:\nTime in pump is off by more than 1.5 hours.\nPlease adjust the time manually on the pump and make sure that reading the history from the pump does not cause unexpected behaviour.\nIf possible, remove the history from the pump before changing the time or disable the closed loop for one DIA after the last wrong history entry but minimum one DIA from now.</string>
<string name="largetimedifftitle" >Large time difference Title</string>
<string name="approachingdailylimit" >Approaching insulin daily limit</string>
<string name="startingbolus" >Bolus 주입 시작</string>
<string name="waitingforestimatedbolusend" >Bolus 주입이 진행 중 입니다.</string>
<string name="gettingbolusstatus" >Bolus 상태 조회</string>
<string name="gettingpumpsettings">펌프상태조회</string>
<string name="gettingpumptime">펌프시간정보 조회</string>
<string name="startingbolus">Bolus 주입 시작</string>
<string name="waitingforestimatedbolusend">Bolus 주입이 진행 중 입니다.</string>
<string name="gettingbolusstatus">Bolus 상태 조회</string>
<string name="stoppingtempbasal">임시Basal 중지</string>
<string name="settingtempbasal" >임시Basal 설정</string>
<string name="settingextendedbolus" >확장 Bolus 설정</string>
<string name="stoppingextendedbolus" >확장 Bolus 중지</string>
<string name="updatingbasalrates" >Basal 패턴 반영</string>
<string name="settingtempbasal">임시Basal 설정</string>
<string name="settingextendedbolus">확장 Bolus 설정</string>
<string name="stoppingextendedbolus">확장 Bolus 중지</string>
<string name="updatingbasalrates">Basal 패턴 반영</string>
<string name="description_pump_diaconn_g8">G2e에서 만든 Diaconn G8 펌프</string>
<string name="diaconn_g8_pump">Diaconn G8</string>
<string name="diaconn_g8_pump_shortname">Diaconn G8</string>
<string name="maxbolusviolation" >Max bolus violation</string>
<string name="commanderror" >Command error</string>
<string name="speederror" >속도 에러</string>
<string name="insulinlimitviolation" >Insulin limit violation</string>
<string name="boluserrorcode" >Asked: %1$.2fU Delivered: %2$.2fU Error code: %3$s</string>
<string name="diaconn_g8_valuenotsetproperly" >Value not set properly</string>
<string name="diaconn_g8_bt_name_title" >Diaconn G8 Bluetooth device</string>
<string name="diaconn_g8_password_title" >Pump Password</string>
<string name="speederror">속도 에러</string>
<string name="bolusspeed">Bolus 주입속도</string>
<string name="selectedpump">펌프를 선택하세요.</string>
<string name="diaconn_g8_bluetooth_status">Bluetooth Status</string>
<string name="diagonn_g8_tdd_label">TDD</string>
<string name="bolus_step">Bolus Step</string>
<string name="basal_step">Basal Step</string>
<string name="pump_firmware_label">Firmware</string>
<string name="diagonn_g8_useroptions">사용자설정</string>
<string name="pairfirst">펌프와 전화기를 페어링해 주세요!</string>
<string name="processinghistory">"Processing Event "</string>
<string name="apslastLogNum">aps_last_log_num</string>
<string name="apsWrappingCount">aps_wrapping_count</string>
<string name="diaconn_g8_history_tempbasal">임시 Basal</string>
<string name="diaconng8_pump_settings">디아콘 펌프 설정</string>
<string name="diaconn_g8_pumpalarm">음향 선택</string>
@ -64,19 +41,12 @@
<string name="diaconn_g8_pumplang_chiness">중국어</string>
<string name="diaconn_g8_pumplang_korean">한국어</string>
<string name="diaconn_g8_pumplang_english">영어</string>
<string name="diaconn_g8_screentimeout_10">"10 "</string>
<string name="diaconn_g8_pumpscreentimeout_10">10</string>
<string name="diaconn_g8_pumpscreentimeout_20">20</string>
<string name="diaconn_g8_pumpscreentimeout_30">30</string>
<string name="diaconn_g8_pumpalarm_low"></string>
<string name="injectionblocked">Bolus 주입막힘</string>
<string name="batterywarning">베터리 경고</string>
<string name="insulinlackwarning">인슐린 부족 경고</string>
<string name="needbatteryreplace">베터리 교체가 필요합니다.</string>
<string name="needinsullinreplace">인슐린 교체가 필요합니다.</string>
<string name="pumpversion">pump_version</string>
<string name="apsIncarnationNo">aps_incarnation_no</string>
<string name="pumpserialno">pump_serial_no</string>
<string name="diaconn_g8_loginsulinchange_title">인슐린 교체</string>
<string name="diaconn_g8_loginsulinchange_summary">로그 동기화 시 케어포털 \"인슐린 교체\" 정보 자동 업로드</string>
<string name="diaconn_g8_logcanulachange_title">바늘 교체</string>
@ -111,9 +81,9 @@
<string name="diacon_g8_blockreplacetube">튜브교체</string>
<string name="diacon_g8_blockreplaceneedle">바늘교체</string>
<string name="diacon_g8_blockreplacesyringe">주사기교체</string>
<string name="diaconn_g8_logalarmblock" >주입막힘 (%s)</string>
<string name="diaconn_g8_lgorelease" >기저 재개 (%s)</string>
<string name="diaconn_g8_lgosuspend" >기저 중지 (%s)</string>
<string name="diaconn_g8_logalarmblock">주입막힘 (%s)</string>
<string name="diaconn_g8_lgorelease">기저 재개 (%s)</string>
<string name="diaconn_g8_lgosuspend">기저 중지 (%s)</string>
<string name="diaconn_g8_logdualnormalsuccess">듀얼 일반 성공</string>
<string name="diaconn_g8_logdualsquarestart">듀얼 스퀘어 시작</string>
<string name="diaconn_g8_logdualsquaresuccess">듀얼 스퀘어 성공</string>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -0,0 +1,8 @@
jacoco {
toolVersion = "0.8.7"
}
tasks.withType(Test) {
jacoco.includeNoLocationClasses = true
jacoco.excludes = ['jdk.internal.*']
}

View file

@ -6,7 +6,7 @@ apply plugin: 'com.hiya.jacoco-android'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
android {
defaultConfig {

View file

@ -4,6 +4,7 @@
<string name="alert_w31_description"><![CDATA[카트리지 내용: <b>%1$s U</b>]]></string>
<string name="alert_w32_description">베터리 교체.</string>
<string name="alert_w33_description">시간/날짜 설정</string>
<string name="alert_w34_description">아큐-첵 지원 문의</string>
<string name="alert_w36_description"><![CDATA[총량: <b>%1$d%%</b><br/>기간: <b>%2$s h</b>]]></string>
<string name="alert_w38_description"><![CDATA[설정: <b>%1$s U</b><br/>주입: <b>%2$s U</b>]]></string>
<string name="alert_m20_description">카트리지를 삽입.</string>
@ -12,9 +13,12 @@
<string name="alert_m23_description">펌프 상태를 체크.</string>
<string name="alert_m24_description">주입세트를 교체.</string>
<string name="alert_m25_description">아큐-첵 지원 문의</string>
<string name="alert_m26_description">카트리지를 교체.</string>
<string name="alert_m27_description">데이터 다운로드 재시작</string>
<string name="alert_m28_description">펌프 상태를 체크.</string>
<string name="alert_m29_description">베터리 타입 설정.</string>
<string name="alert_m30_description">카트리지 타입 설정.</string>
<string name="alert_e6_description">베터리와 카트리지를 교체.</string>
<string name="alert_e10_description">카트리지를 교체.</string>
<string name="alert_e13_description">언어 변경.</string>
</resources>

View file

@ -3,6 +3,7 @@
<string name="alert_r1_title">Bolus 주입.</string>
<string name="alert_r2_title">Bolus 누락</string>
<string name="alert_r3_title">알람 시계</string>
<string name="alert_r4_title">주입세트를 교체</string>
<string name="alert_r7_title">TBR 완료</string>
<string name="alert_w31_title">카트리지 부족</string>
<string name="alert_w32_title">베터리 부족</string>

View file

@ -2,7 +2,9 @@
<resources>
<string name="alert_r7_description"><![CDATA[Kiekis: <b>%1$d%%</b>\nTrukmė: <b>%2$s h</b>]]></string>
<string name="alert_w31_description"><![CDATA[Rezervuaro tūris: <b>%1$s U</b>]]></string>
<string name="alert_w32_description">Pakeiskite bateriją.</string>
<string name="alert_w33_description">Nustatykite laiką/datą.</string>
<string name="alert_w34_description">Kreipkitės į Accu-Chek palaikymo tarnybą.</string>
<string name="alert_w36_description"><![CDATA[Kiekis: <b>%1$d%%</b><br/>Trukmė: <b>%2$s h</b>]]></string>
<string name="alert_w38_description"><![CDATA[Suprogramuota: <b>%1$s U</b><br/>Suleista: <b>%2$s U</b>]]></string>
<string name="alert_m20_description">Įdėkite rezervuarą.</string>
@ -11,9 +13,12 @@
<string name="alert_m23_description">Patikrinkite pompos būseną.</string>
<string name="alert_m24_description">Pakeiskite infuzijos rinkinį.</string>
<string name="alert_m25_description">Kreipkitės į Accu-Chek palaikymo tarnybą.</string>
<string name="alert_m26_description">Pakeiskite rezervuarą.</string>
<string name="alert_m27_description">Iš naujo paleiskite duomenų atsisiuntimą.</string>
<string name="alert_m28_description">Patikrinkite pompos būseną.</string>
<string name="alert_m29_description">Nustatykite baterijos tipą.</string>
<string name="alert_m30_description">Nustatykite rezervuaro tipą.</string>
<string name="alert_e6_description">Pakeiskite bateriją ir rezervuarą.</string>
<string name="alert_e10_description">Pakeiskite rezervuarą.</string>
<string name="alert_e13_description">Pakeiskite kalbą.</string>
</resources>

View file

@ -6,7 +6,7 @@ apply plugin: 'com.hiya.jacoco-android'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
dependencies {
implementation project(':core')

View file

@ -10,6 +10,7 @@ import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.pump.common.defs.PumpType
import info.nightscout.androidaps.plugins.pump.common.sync.PumpDbEntry
import info.nightscout.androidaps.plugins.pump.common.sync.PumpDbEntryTBR
import info.nightscout.androidaps.plugins.pump.common.utils.DateTimeUtil
import info.nightscout.androidaps.plugins.pump.common.utils.StringUtil
import info.nightscout.androidaps.plugins.pump.medtronic.comm.history.pump.MedtronicPumpHistoryDecoder
@ -348,7 +349,7 @@ class MedtronicHistoryData @Inject constructor(
aapsLogger.debug(LTag.PUMP, String.format(Locale.ENGLISH, "ProcessHistoryData: TBRs Processed [count=%d, items=%s]", tbrs.size, gson.toJson(tbrs)))
if (tbrs.isNotEmpty()) {
try {
processTBREntries(tbrs) // TODO not implemented yet
processTBREntries(tbrs)
} catch (ex: Exception) {
aapsLogger.error(LTag.PUMP, "ProcessHistoryData: Error processing TBR entries: " + ex.message, ex)
throw ex
@ -604,7 +605,8 @@ class MedtronicHistoryData @Inject constructor(
processDTO = TempBasalProcessDTO(
itemOne = treatment,
processOperation = TempBasalProcessDTO.Operation.Add,
aapsLogger = aapsLogger
aapsLogger = aapsLogger,
objectType = TempBasalProcessDTO.ObjectType.TemporaryBasal
)
}
}
@ -615,97 +617,114 @@ class MedtronicHistoryData @Inject constructor(
for (tempBasalProcessDTO in processList) {
aapsLogger.debug(LTag.PUMP, "DD: tempBasalProcessDTO.itemOne: " + gson.toJson(tempBasalProcessDTO.itemOne))
aapsLogger.debug(LTag.PUMP, "DD: tempBasalProcessDTO.itemTwo: " + (if (tempBasalProcessDTO.itemTwo == null) "null" else gson.toJson(tempBasalProcessDTO.itemTwo!!)))
val entryWithTempId = findDbEntry(tempBasalProcessDTO.itemOne, tbrRecords)
aapsLogger.debug(LTag.PUMP, "DD: entryWithTempId: " + (if (entryWithTempId == null) "null" else entryWithTempId.toString()))
val tbrEntry = tempBasalProcessDTO.itemOne.getDecodedDataEntry("Object") as TempBasalPair
val tbrEntry = tempBasalProcessDTO.itemOneTbr //.getDecodedDataEntry("Object") as TempBasalPair
aapsLogger.debug(LTag.PUMP, String.format("DD: tbrEntry=%s, tempBasalProcessDTO=%s", gson.toJson(tbrEntry), gson.toJson(tempBasalProcessDTO)))
if (entryWithTempId != null) {
aapsLogger.debug(LTag.PUMP, String.format("DD: tempIdEntry=%s, tbrEntry=%s, tempBasalProcessDTO=%s, pumpType=%s, serial=%s",
gson.toJson(entryWithTempId), gson.toJson(tbrEntry), gson.toJson(tempBasalProcessDTO), medtronicPumpStatus.pumpType, medtronicPumpStatus.serialNumber))
if (tbrEntry != null) {
aapsLogger.debug(LTag.PUMP, "DD: tempIdEntry=${entryWithTempId}, tbrEntry=${tbrEntry}, " +
"tempBasalProcessDTO=${tempBasalProcessDTO}, " +
"pumpType=${medtronicPumpStatus.pumpType}, serial=${medtronicPumpStatus.serialNumber}")
aapsLogger.debug(LTag.PUMP, "BEFORE syncTemporaryBasalWithTempId " +
"[date=${tempBasalProcessDTO.atechDateTime}, dateProcess=${tryToGetByLocalTime(tempBasalProcessDTO.atechDateTime)}, " +
"tbrEntry.insulinRate=${tbrEntry.insulinRate}, duration=${tempBasalProcessDTO.duration * 60L * 1000L}, " +
"isAbsolute=${!tbrEntry.isPercent}, temporaryId=${entryWithTempId.temporaryId}, " +
"pumpId=${tempBasalProcessDTO.pumpId}, pumpType=${medtronicPumpStatus.pumpType}, " +
"pumpSerial=${medtronicPumpStatus.serialNumber}]")
aapsLogger.debug(LTag.PUMP, "syncTemporaryBasalWithTempId " +
"[date=${tempBasalProcessDTO.atechDateTime}, dateProcess=${tryToGetByLocalTime(tempBasalProcessDTO.atechDateTime)}, " +
"tbrEntry.insulinRate=${tbrEntry.insulinRate}, " +
"duration=${tempBasalProcessDTO.durationAsSeconds} s, " +
"isAbsolute=${!tbrEntry.isPercent}, temporaryId=${entryWithTempId.temporaryId}, " +
"pumpId=${tempBasalProcessDTO.pumpId}, pumpType=${medtronicPumpStatus.pumpType}, " +
"pumpSerial=${medtronicPumpStatus.serialNumber}]")
val result = pumpSync.syncTemporaryBasalWithTempId(
tryToGetByLocalTime(tempBasalProcessDTO.atechDateTime),
tbrEntry.insulinRate,
tempBasalProcessDTO.duration * 60L * 1000L,
!tbrEntry.isPercent,
entryWithTempId.temporaryId,
PumpSync.TemporaryBasalType.NORMAL,
tempBasalProcessDTO.pumpId,
medtronicPumpStatus.pumpType,
medtronicPumpStatus.serialNumber)
val result = pumpSync.syncTemporaryBasalWithTempId(
tryToGetByLocalTime(tempBasalProcessDTO.atechDateTime),
tbrEntry.insulinRate,
tempBasalProcessDTO.durationAsSeconds * 1000L,
!tbrEntry.isPercent,
entryWithTempId.temporaryId,
PumpSync.TemporaryBasalType.NORMAL,
tempBasalProcessDTO.pumpId,
medtronicPumpStatus.pumpType,
medtronicPumpStatus.serialNumber)
aapsLogger.debug(LTag.PUMP, String.format(Locale.ENGLISH, "syncTemporaryBasalWithTempId [date=%d, temporaryId=%d, pumpId=%d, rate=%.2f %s, duration=%d, pumpSerial=%s] - Result: %b",
tempBasalProcessDTO.atechDateTime, entryWithTempId.temporaryId, tempBasalProcessDTO.pumpId,
tbrEntry.insulinRate, (if (tbrEntry.isPercent) "%" else "U"), tempBasalProcessDTO.duration,
medtronicPumpStatus.serialNumber, result))
aapsLogger.debug(LTag.PUMP, "syncTemporaryBasalWithTempId - Result: ${result}")
pumpSyncStorage.removeTemporaryBasalWithTemporaryId(entryWithTempId.temporaryId)
tbrRecords.remove(entryWithTempId)
pumpSyncStorage.removeTemporaryBasalWithTemporaryId(entryWithTempId.temporaryId)
tbrRecords.remove(entryWithTempId)
entryWithTempId.pumpId = tempBasalProcessDTO.pumpId
entryWithTempId.date = tryToGetByLocalTime(tempBasalProcessDTO.atechDateTime)
entryWithTempId.pumpId = tempBasalProcessDTO.pumpId
entryWithTempId.date = tryToGetByLocalTime(tempBasalProcessDTO.atechDateTime)
if (isTBRActive(entryWithTempId)) {
medtronicPumpStatus.runningTBR = entryWithTempId
if (isTBRActive(entryWithTempId)) {
medtronicPumpStatus.runningTBR = entryWithTempId
}
} else {
aapsLogger.warn(LTag.PUMP, "tbrEntry (itemOne) is null, shouldn't be.")
}
} else {
val result = pumpSync.syncTemporaryBasalWithPumpId(
tryToGetByLocalTime(tempBasalProcessDTO.atechDateTime),
tbrEntry.insulinRate,
tempBasalProcessDTO.duration * 60L * 1000L,
!tbrEntry.isPercent,
PumpSync.TemporaryBasalType.NORMAL,
tempBasalProcessDTO.pumpId,
medtronicPumpStatus.pumpType,
medtronicPumpStatus.serialNumber)
aapsLogger.debug(LTag.PUMP, String.format(Locale.ENGLISH, "syncTemporaryBasalWithPumpId [date=%d, pumpId=%d, rate=%.2f %s, duration=%d, pumpSerial=%s] - Result: %b",
tempBasalProcessDTO.atechDateTime, tempBasalProcessDTO.pumpId,
tbrEntry.insulinRate, (if (tbrEntry.isPercent) "%" else "U"), tempBasalProcessDTO.duration,
medtronicPumpStatus.serialNumber, result))
if (tbrEntry != null) {
if (medtronicPumpStatus.runningTBR != null) {
if (!isTBRActive(medtronicPumpStatus.runningTBR!!)) {
medtronicPumpStatus.runningTBR = null
aapsLogger.debug(LTag.PUMP, "syncTemporaryBasalWithPumpId [date=${tempBasalProcessDTO.atechDateTime}, " +
"pumpId=${tempBasalProcessDTO.pumpId}, rate=${tbrEntry.insulinRate} U, " +
"duration=${tempBasalProcessDTO.durationAsSeconds} s, pumpSerial=${medtronicPumpStatus.serialNumber}]")
val result = pumpSync.syncTemporaryBasalWithPumpId(
tryToGetByLocalTime(tempBasalProcessDTO.atechDateTime),
tbrEntry.insulinRate,
tempBasalProcessDTO.durationAsSeconds * 1000L,
!tbrEntry.isPercent,
PumpSync.TemporaryBasalType.NORMAL,
tempBasalProcessDTO.pumpId,
medtronicPumpStatus.pumpType,
medtronicPumpStatus.serialNumber)
aapsLogger.debug(LTag.PUMP, "syncTemporaryBasalWithPumpId - Result: $result")
if (medtronicPumpStatus.runningTBR != null) {
if (!isTBRActive(medtronicPumpStatus.runningTBR!!)) {
medtronicPumpStatus.runningTBR = null
}
}
}
if (isTBRActive(tryToGetByLocalTime(tempBasalProcessDTO.atechDateTime), tempBasalProcessDTO.duration)) {
if (medtronicPumpStatus.runningTBR == null) {
medtronicPumpStatus.runningTBR = info.nightscout.androidaps.plugins.pump.common.sync.PumpDbEntry(0L,
tryToGetByLocalTime(tempBasalProcessDTO.atechDateTime),
medtronicPumpStatus.pumpType,
medtronicPumpStatus.serialNumber,
null,
info.nightscout.androidaps.plugins.pump.common.sync.PumpDbEntryTBR(tbrEntry.insulinRate, !tbrEntry.isPercent, tempBasalProcessDTO.duration, PumpSync.TemporaryBasalType.NORMAL),
tempBasalProcessDTO.pumpId)
if (isTBRActive(startTimestamp = tryToGetByLocalTime(tempBasalProcessDTO.atechDateTime),
durationSeconds = tempBasalProcessDTO.durationAsSeconds)) {
if (medtronicPumpStatus.runningTBR == null) {
medtronicPumpStatus.runningTBR = info.nightscout.androidaps.plugins.pump.common.sync.PumpDbEntry(0L,
tryToGetByLocalTime(tempBasalProcessDTO.atechDateTime),
medtronicPumpStatus.pumpType,
medtronicPumpStatus.serialNumber,
null,
PumpDbEntryTBR(rate = tbrEntry.insulinRate,
isAbsolute = !tbrEntry.isPercent,
durationInSeconds = tempBasalProcessDTO.durationAsSeconds,
tbrType = PumpSync.TemporaryBasalType.NORMAL),
tempBasalProcessDTO.pumpId)
}
}
} else {
aapsLogger.warn(LTag.PUMP, "tbrEntry (itemOne) is null, shouldn't be.")
}
}
} // for
} // collection
}
fun isTBRActive(dbEntry: info.nightscout.androidaps.plugins.pump.common.sync.PumpDbEntry): Boolean {
return isTBRActive(dbEntry.date, dbEntry.tbrData!!.durationInMinutes)
fun isTBRActive(dbEntry: PumpDbEntry): Boolean {
return isTBRActive(
startTimestamp = dbEntry.date,
durationSeconds = dbEntry.tbrData!!.durationInSeconds)
}
fun isTBRActive(startTimestamp: Long, durationMin: Int): Boolean {
val endDate = startTimestamp + (durationMin * 60 * 1000)
fun isTBRActive(startTimestamp: Long, durationSeconds: Int): Boolean {
val endDate = startTimestamp + (durationSeconds * 1000)
return (endDate > System.currentTimeMillis())
}
@ -783,20 +802,22 @@ class MedtronicHistoryData @Inject constructor(
private fun processSuspends(tempBasalProcessList: List<TempBasalProcessDTO>) {
for (tempBasalProcess in tempBasalProcessList) {
aapsLogger.debug(LTag.PUMP, "processSuspends::syncTemporaryBasalWithPumpId [date=${tempBasalProcess.itemOne.atechDateTime}, " +
"rate=0.0, duration=${tempBasalProcess.durationAsSeconds} s, type=${PumpSync.TemporaryBasalType.PUMP_SUSPEND}, " +
"pumpId=${tempBasalProcess.itemOne.pumpId}, " +
"pumpSerial=${medtronicPumpStatus.serialNumber}]")
val result = pumpSync.syncTemporaryBasalWithPumpId(
tryToGetByLocalTime(tempBasalProcess.itemOne.atechDateTime),
0.0,
tempBasalProcess.duration * 60 * 1000L,
tempBasalProcess.durationAsSeconds * 1000L,
true,
PumpSync.TemporaryBasalType.PUMP_SUSPEND,
tempBasalProcess.itemOne.pumpId,
medtronicPumpStatus.pumpType,
medtronicPumpStatus.serialNumber)
aapsLogger.debug(LTag.PUMP, String.format(Locale.ENGLISH, "processSuspends::syncTemporaryBasalWithPumpId [date=%d, rate=%.2f, duration=%d, pumpId=%d, pumpSerial=%s] - Result: %b",
tempBasalProcess.itemOne.atechDateTime, 0.0, tempBasalProcess.duration, tempBasalProcess.itemOne.pumpId,
medtronicPumpStatus.serialNumber, result))
aapsLogger.debug(LTag.PUMP, "syncTemporaryBasalWithPumpId: Result: $result")
}
}
@ -815,6 +836,9 @@ class MedtronicHistoryData @Inject constructor(
private fun getSuspendResumeRecordsList(): List<TempBasalProcessDTO> {
val filteredItems = getFilteredItems(newHistory, //
setOf(PumpHistoryEntryType.SuspendPump, PumpHistoryEntryType.ResumePump))
aapsLogger.debug(LTag.PUMP, "SuspendResume Records: $filteredItems")
val outList: MutableList<TempBasalProcessDTO> = mutableListOf()
if (filteredItems.size > 0) {
val filtered2Items: MutableList<PumpHistoryEntry> = mutableListOf()
@ -852,11 +876,16 @@ class MedtronicHistoryData @Inject constructor(
Collections.reverse(filtered2Items)
var i = 0
while (i < filtered2Items.size) {
outList.add(TempBasalProcessDTO(
val tbrProcess = TempBasalProcessDTO(
itemOne = filtered2Items[i],
itemTwo = filtered2Items[i + 1],
processOperation = TempBasalProcessDTO.Operation.Add,
aapsLogger = aapsLogger))
aapsLogger = aapsLogger,
objectType = TempBasalProcessDTO.ObjectType.Suspend)
tbrProcess.itemTwo = filtered2Items[i + 1]
if (tbrProcess.itemTwo != null)
outList.add(tbrProcess)
i += 2
}
@ -868,6 +897,9 @@ class MedtronicHistoryData @Inject constructor(
private fun getNoDeliveryRewindPrimeRecordsList(): List<TempBasalProcessDTO> {
val primeItems: MutableList<PumpHistoryEntry> = getFilteredItems(newHistory, //
setOf(PumpHistoryEntryType.Prime))
aapsLogger.debug(LTag.PUMP, "Prime Records: $primeItems")
val outList: MutableList<TempBasalProcessDTO> = ArrayList()
if (primeItems.size == 0) return outList
val filteredItems: MutableList<PumpHistoryEntry> = getFilteredItems(newHistory, //
@ -877,6 +909,9 @@ class MedtronicHistoryData @Inject constructor(
PumpHistoryEntryType.Bolus,
PumpHistoryEntryType.TempBasalCombined)
)
aapsLogger.debug(LTag.PUMP, "Filtered Records: $filteredItems")
val tempData: MutableList<PumpHistoryEntry> = mutableListOf()
var startedItems = false
var finishedItems = false
@ -915,24 +950,40 @@ class MedtronicHistoryData @Inject constructor(
}
showLogs("NoDeliveryRewindPrimeRecords: Records to evaluate: ", gson.toJson(tempData))
var items: MutableList<PumpHistoryEntry> = getFilteredItems(tempData, PumpHistoryEntryType.Prime)
var itemTwo = items[0]
val itemTwo = items[0]
items = getFilteredItems(tempData, PumpHistoryEntryType.NoDeliveryAlarm)
if (items.size > 0) {
outList.add(TempBasalProcessDTO(
val tbrProcess = TempBasalProcessDTO(
itemOne = items[items.size - 1],
itemTwo = itemTwo,
processOperation = TempBasalProcessDTO.Operation.Add,
aapsLogger = aapsLogger))
aapsLogger = aapsLogger,
objectType = TempBasalProcessDTO.ObjectType.Suspend)
tbrProcess.itemTwo = itemTwo
if (tbrProcess.itemTwo != null)
outList.add(tbrProcess)
return outList
}
items = getFilteredItems(tempData, PumpHistoryEntryType.Rewind)
if (items.size > 0) {
outList.add(TempBasalProcessDTO(
val tbrProcess = TempBasalProcessDTO(
itemOne = items[0],
processOperation = TempBasalProcessDTO.Operation.Add,
aapsLogger = aapsLogger))
aapsLogger = aapsLogger,
objectType = TempBasalProcessDTO.ObjectType.Suspend)
tbrProcess.itemTwo = itemTwo
if (tbrProcess.itemTwo != null)
outList.add(tbrProcess)
return outList
}
return outList
}

View file

@ -1,13 +1,25 @@
package info.nightscout.androidaps.plugins.pump.medtronic.data.dto
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.pump.common.utils.DateTimeUtil
import info.nightscout.androidaps.plugins.pump.medtronic.comm.history.pump.PumpHistoryEntry
class TempBasalProcessDTO constructor(var itemOne: PumpHistoryEntry,
var itemTwo: PumpHistoryEntry? = null,
var processOperation: Operation = Operation.None,
var aapsLogger: AAPSLogger) {
var aapsLogger: AAPSLogger,
var objectType: ObjectType = ObjectType.TemporaryBasal) {
var itemTwo: PumpHistoryEntry? = null
set(value) {
field = value
if (objectType == ObjectType.TemporaryBasal) {
itemTwoTbr = value!!.getDecodedDataEntry("Object") as TempBasalPair
}
}
var itemOneTbr: TempBasalPair? = null
var itemTwoTbr: TempBasalPair? = null
var cancelPresent: Boolean = false
@ -17,20 +29,50 @@ class TempBasalProcessDTO constructor(var itemOne: PumpHistoryEntry,
val pumpId: Long
get() = itemOne.pumpId
val duration: Int
get() = if (itemTwo == null) {
val tbr = itemOne.getDecodedDataEntry("Object") as? TempBasalPair
if (tbr != null)
tbr.durationMinutes
else {
aapsLogger.error("Couldn't find TempBasalPair in entry: $itemOne")
0
val durationAsSeconds: Int
get() {
aapsLogger.debug(LTag.PUMP, "durationAsSeconds: [objectType=$objectType]")
if (objectType == ObjectType.TemporaryBasal) {
if (itemTwo == null) {
if (itemOneTbr != null) {
aapsLogger.debug("TemporaryBasalPair - itemOneSingle: $itemOneTbr")
return itemOneTbr!!.durationMinutes * 60
} else {
aapsLogger.error("Couldn't find TempBasalPair in entry: $itemOne")
return 0
}
} else {
aapsLogger.debug(LTag.PUMP, "Found 2 items for duration: itemOne=$itemOne, itemTwo=$itemTwo")
val secondsDiff = DateTimeUtil.getATechDateDiferenceAsSeconds(itemOne.atechDateTime, itemTwo!!.atechDateTime)
aapsLogger.debug(LTag.PUMP, "Difference in seconds: $secondsDiff")
return secondsDiff
}
} else {
aapsLogger.debug(LTag.PUMP, "Found 2 items for duration (in SuspendMode): itemOne=$itemOne, itemTwo=$itemTwo")
val secondsDiff = DateTimeUtil.getATechDateDiferenceAsSeconds(itemOne.atechDateTime, itemTwo!!.atechDateTime)
aapsLogger.debug(LTag.PUMP, "Difference in seconds: $secondsDiff")
return secondsDiff
}
} else {
DateTimeUtil.getATechDateDiferenceAsMinutes(itemOne.atechDateTime, itemTwo!!.atechDateTime)
}
init {
if (objectType == ObjectType.TemporaryBasal) {
itemOneTbr = itemOne.getDecodedDataEntry("Object") as TempBasalPair
}
}
override fun toString(): String {
return "ItemOne: $itemOne, ItemTwo: $itemTwo, Duration: $durationAsSeconds, Operation: $processOperation, ObjectType: $objectType"
}
enum class Operation {
None, Add, Edit
None,
Add,
Edit
}
enum class ObjectType {
TemporaryBasal,
Suspend,
}
}

View file

@ -25,6 +25,7 @@
<string name="medtronic_bolus_debugging">Bolus/관리 디버깅</string>
<!-- MDT Fragment -->
<!-- MDT Errors -->
<string name="medtronic_errors">에러</string>
<string name="medtronic_error_serial_not_set">일련번호 # 설정되지 않음</string>
<string name="medtronic_error_serial_invalid">일련번호 # 유효하지않음.</string>
<string name="medtronic_error_pump_type_not_set">펌프 타입이 설정되지 않았습니다.</string>
@ -47,6 +48,7 @@
<!-- <string name="medtronic_history_group_statistic">Statistics</string>-->
<!-- <string name="medtronic_history_group_unknown">Unknowns</string>-->
<!-- <string name="medtronic_history_group_all">All</string>-->
<string name="medtronic_pump_history">메드트로닉 펌프 이력</string>
<!-- <string name="medtronic_cmd_profile_not_set">Remote Basal profile setting is not supported. Please modify Basal profile on your pump manually.</string> -->
<string name="medtronic_cmd_cancel_bolus_not_supported">펌프에서 이미 설정된 Bolus를 취소했습니다. 메드트로닉 펌프는 취소를 지원하지 않으므로 수동으로 취소해야합니다. (여전히 취소하길 원한다면) 펌프를 일시 중단 모드로 전환 한 다음 다시 시작하십시오. 다음 업데이트시 (5 분 이내에) 변경 사항을 적용합니다.</string>
<string name="medtronic_cmd_cant_read_tbr">현재 TBR을 읽을 수 없습니다.</string>
@ -69,9 +71,14 @@
<string name="medtronic_cmd_desc_set_tbr">임시 Basal 설정</string>
<string name="medtronic_cmd_desc_set_bolus">Bolus 설정</string>
<string name="medtronic_pump_status_pump_unreachable">펌프에 연결할 수 없습니다</string>
<string name="medtronic_warning">경고</string>
<!-- medtronic_warning -->
<string name="medtronic_pump_connected_now">현재</string>
<!-- combo_pump_connected_now -->
<string name="ago"></string>
<string name="medtronic_notification_check_time_date">펌프 시간 업데이트가 필요합니다.</string>
<!-- combo_notification_check_time_date -->
<string name="common_on">켜짐</string>
<string name="common_off">끄기</string>
<string name="pump_time_updated">펌프 시간 업데이트</string>
</resources>

View file

@ -25,6 +25,7 @@
<string name="medtronic_pump_battery_nimh">NiMH (išplėstinis vaizdas)</string>
<string name="medtronic_bolus_debugging">Boluso/Terapijos Derinimas</string>
<!-- MDT Fragment -->
<string name="rl_battery_label">RileyLink baterija</string>
<!-- MDT Errors -->
<string name="medtronic_errors">Klaidos</string>
<string name="medtronic_error_serial_not_set">Serijos Nr. nenustatytas.</string>
@ -64,13 +65,17 @@
<string name="medtronic_cmd_desc_get_history">Gauti istoriją - Lapas %1$d (%2$d/16)</string>
<string name="medtronic_cmd_desc_get_history_request">Gauti istoriją - Lapas %1$d</string>
<string name="medtronic_cmd_desc_get_time">Gauti pompos laiką</string>
<string name="medtronic_cmd_desc_set_time">Nustatyti pompos laiką</string>
<string name="medtronic_cmd_desc_get_battery_status">Parodyti baterijos būseną</string>
<string name="medtronic_cmd_desc_get_settings">Gauti parametrus</string>
<string name="medtronic_cmd_desc_get_model">Gauti pompos modelį</string>
<string name="medtronic_cmd_desc_get_basal_profile">Gauti bazės profilį</string>
<string name="medtronic_cmd_desc_set_basal_profile">Nustatyti bazės profilį</string>
<string name="medtronic_cmd_desc_get_tbr">Gauti laikiną bazę</string>
<string name="medtronic_cmd_desc_set_tbr">Nustatyti laikiną bazę</string>
<string name="medtronic_cmd_desc_cancel_tbr">Atšaukti laikiną bazę</string>
<string name="medtronic_cmd_desc_set_bolus">Nustatyti bolusą</string>
<string name="medtronic_cmd_desc_get_remaining_insulin">Parodyti insulino likutį</string>
<string name="medtronic_pump_status_pump_unreachable">Pompa nepasiekiama</string>
<string name="medtronic_warning">Perspėjimas</string>
<!-- medtronic_warning -->
@ -84,4 +89,5 @@
<string name="pump_time_updated">Pompos laikas pakeistas</string>
<string name="set_neutral_temps_title">Nustatyti neutralią laikiną bazę</string>
<string name="set_neutral_temps_summary">Jei įjungta, laikina valandinė bazė bus anuliuota iki kiekvienos valandos pabaigos. Šis metodas gali padėti išvengti kai kurių pompų pypsėjimo ar vibravimo.</string>
<string name="mdt_tbr_remaining">%1$.1f vv/h (liko %2$d min)</string>
</resources>

View file

@ -7,7 +7,7 @@ apply plugin: 'com.hiya.jacoco-android'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
dependencies {
implementation project(':core')

View file

@ -2,17 +2,198 @@
<resources>
<!-- Omnipod - Keys -->
<!-- Omnipod - Pod Management -->
<string name="omnipod_common_pod_management_title">Pod valdymas</string>
<string name="omnipod_common_pod_management_heading_actions">Veiksmai</string>
<string name="omnipod_common_pod_management_heading_tools">Įrankiai</string>
<string name="omnipod_common_pod_management_button_activate_pod">Aktyvuoti Pod</string>
<string name="omnipod_common_pod_management_button_deactivate_pod">Išjungti Pod</string>
<string name="omnipod_common_pod_management_button_discard_pod">Išmesti Pod</string>
<string name="omnipod_common_pod_management_discard_pod_confirmation">Jei išmesite Pod, ryšio su juo nebebus galima atkurti. Darykite tai tik tada, kai pastoviai nepavyksta užmegzti ryšio. Jei ryšys visgi yra, naudokite <b>Deaktyvuoti Pod</b> funkciją. \n\nJei norite tęsti, pašalinkite Pod nuo savo kūno!</string>
<string name="omnipod_common_pod_management_button_play_test_beep">Paleisti bandomąjį signalą</string>
<string name="omnipod_common_pod_management_button_playing_test_beep">Bandomasis signalas paleistas…</string>
<string name="omnipod_common_pod_management_button_pod_history">Pod istorija</string>
<!-- Omnipod - Error -->
<string name="omnipod_common_error_pod_not_attached">Nėra aktyvaus Pod</string>
<string name="omnipod_common_error_set_basal_failed">Nepavyko nustatyti bazės profilio.</string>
<string name="omnipod_common_error_bolus_did_not_succeed">Bolusas nepavyko.</string>
<string name="omnipod_common_error_failed_to_set_profile_empty_profile">Nepavyko nustatyti bazinio profilio: gautas tuščias profilis. Įsitikinkite, kad aktyvavote savo bazės profilį.</string>
<string name="omnipod_common_error_set_initial_basal_schedule_no_profile">Nėra aktyvaus profilio. Įsitikinkite, kad bazės profilis aktyvuotas.</string>
<string name="omnipod_common_error_unsupported_custom_command">Nepalaikoma pasirinktinė komanda: %1$s</string>
<string name="omnipod_common_error_failed_to_refresh_status">Nepavyko atnaujinti būsenos</string>
<string name="omnipod_common_error_failed_to_refresh_status_on_startup">Nepavyko atnaujinti būsenos paleidžiant</string>
<string name="omnipod_common_error_failed_to_silence_alerts">Nepavyko nutildyti įspėjimų</string>
<string name="omnipod_common_error_failed_to_suspend_delivery">Nepavyko sustabdyti suleidimo</string>
<string name="omnipod_common_error_failed_to_set_time">Nepavyko nustatyti laiko</string>
<string name="omnipod_common_error_failed_to_resume_delivery">Nepavyko atnaujinti suleidimo</string>
<string name="omnipod_common_error_failed_to_initialize_pod">Nepavyko inicijuoti Pod</string>
<string name="omnipod_common_error_failed_to_insert_cannula">Nepavyko įvesti kaniulės</string>
<string name="omnipod_common_error_pod_fault_activation_time_exceeded">Pod aktyvavimo laikas buvo viršytas. Šis Pod nebegali būti aktyvuotas.</string>
<string name="omnipod_common_error_failed_to_verify_activation_progress">Nepavyko patvirtinti aktyvinimo eigos. Pabandykite pakartoti.</string>
<string name="omnipod_common_error_pod_suspended">Pod sustabdyta</string>
<string name="omnipod_common_error_failed_to_play_test_beep">Nepavyko paleisti bandomojo signalo</string>
<string name="omnipod_common_error_time_out_of_sync">Neatitinka laikas su Pod. Atnaujinkite laiką skirtuke Omnipod.</string>
<string name="omnipod_common_error_unexpected_exception">Įvyko netikėta klaida. Prašome pranešti! (%1$s: %2$s).</string>
<!-- Omnipod - Confirmation -->
<string name="omnipod_common_confirmation">Patvirtinimas</string>
<string name="omnipod_common_confirmation_time_or_timezone_change">Laikas ir/ar laiko zona Pod pakeista.</string>
<string name="omnipod_common_confirmation_expiration_alerts_updated">Įspėjimo konfigūracija Pod atnaujinta.</string>
<string name="omnipod_common_confirmation_time_on_pod_updated">Laikas Pod buvo atnaujintas.</string>
<string name="omnipod_common_confirmation_suspended_delivery">Insulino suleidimas buvo sustabdytas.</string>
<string name="omnipod_common_confirmation_silenced_alerts">Aktyvūs perspėjimai buvo nutildyti.</string>
<string name="omnipod_common_confirmation_delivery_resumed">Insulino suleidimas atnaujintas.</string>
<!-- Omnipod - Overview -->
<string name="omnipod_common_overview_button_set_time">Nustatyti laiką</string>
<string name="omnipod_common_overview_button_suspend_delivery">Sustabdyta</string>
<string name="omnipod_common_overview_button_resume_delivery">Atnaujinti suleidimą</string>
<string name="omnipod_common_overview_button_pod_management">Pod valdymas</string>
<string name="omnipod_common_overview_button_silence_alerts">Tylūs perpėjimai</string>
<string name="omnipod_common_overview_pod_status">Pod būklė</string>
<string name="omnipod_common_overview_total_delivered">Iš viso suleista</string>
<string name="omnipod_common_overview_total_delivered_value">%1$.2f vv</string>
<string name="omnipod_common_overview_pod_unique_id">Unikalus ID</string>
<string name="omnipod_common_overview_lot_number">LOT numeris</string>
<string name="omnipod_common_overview_pod_sequence_number">Eilės Nr.</string>
<string name="omnipod_common_overview_pod_expiry_date">Pod laikas pasibaigs</string>
<string name="omnipod_common_overview_last_connection">Paskutinis prisijungimas</string>
<string name="omnipod_common_overview_last_bolus">Paskutinis bolusas</string>
<string name="omnipod_common_overview_temp_basal_rate">Laikina valandinė bazė</string>
<string name="omnipod_common_overview_base_basal_rate">Pagrindinė valandinė bazė</string>
<string name="omnipod_common_overview_reservoir">Rezervuaras</string>
<string name="omnipod_common_overview_pod_active_alerts">Aktyvaus Pod signalai</string>
<string name="omnipod_common_overview_firmware_version">Programinės įrangos versija</string>
<string name="omnipod_common_overview_time_on_pod">Laikas Pod</string>
<string name="omnipod_common_overview_temp_basal_value">%1$.2fvv/val @%2$s (%3$d/%4$d min)</string>
<string name="omnipod_common_overview_reservoir_value">liko %1$.2f vv</string>
<string name="omnipod_common_overview_reservoir_value_over50">Liko daugiau nei 50 vv</string>
<string name="omnipod_common_overview_errors">Klaidos</string>
<!-- Omnipod - Wizard Base -->
<string name="omnipod_common_wizard_button_cancel">Atšaukti</string>
<string name="omnipod_common_wizard_button_finish">Užbaigti</string>
<string name="omnipod_common_wizard_button_next">Kitas</string>
<string name="omnipod_common_wizard_button_retry">Bandyti dar kartą</string>
<string name="omnipod_common_wizard_button_deactivate_pod">Išjungti Pod</string>
<string name="omnipod_common_wizard_button_discard_pod">Išmesti Pod</string>
<string name="omnipod_common_wizard_exit_confirmation_text">Jūs dar nebaigėte visų veiksmų. Ar tikrai norite išeiti?</string>
<string name="omnipod_common_wizard_exit_confirmation_title">Išeiti</string>
<!-- Omnipod - Pod Activation Wizard -->
<string name="omnipod_common_pod_activation_wizard_start_pod_activation_title">Užpildyti Pod</string>
<string name="omnipod_common_pod_activation_wizard_initialize_pod_title">Inicijuoti Pod</string>
<string name="omnipod_common_pod_activation_wizard_attach_pod_title">Prijunkite Pod</string>
<string name="omnipod_common_pod_activation_wizard_attach_pod_text">Paruoškite infuzijos vietą. Nuimkite adatos apsauginį dangtelį, pleistro apsaugą ir užklijuokite Pod ant infuzijos vietos.\n\nJei kaniulė atšoks, paspauskite <b>Atšaukti</b> ir pakeiskite Pod.\n\nSpauskite <b>Kitas</b>, norėdami įvesti kaniulę ir pradėti leisti insuliną.</string>
<string name="omnipod_common_pod_activation_wizard_attach_pod_confirm_insert_cannula_text">Kai paspausite <b>OK</b>, kaniulė bus įvesta. Įsitikinkite, kad prie infuzijos vietos pritvirtinote Pod.</string>
<string name="omnipod_common_pod_activation_wizard_insert_cannula_title">Įvesti kaniulę</string>
<string name="omnipod_common_pod_activation_wizard_insert_cannula_text">Mėginkite nustatyti pradinį bazės profilį ir įvesti kaniulę.\n\nKai kaniulė bus sėkmingai įvesta, galite paspausti <b>Kitas</b>.</string>
<string name="omnipod_common_pod_activation_wizard_pod_activated_title">Pod aktyvuotas</string>
<string name="omnipod_common_pod_activation_wizard_pod_activated_text">Naujasis Pod yra dabar aktyvus.\n\nJūsų bazės profilis yra suprogramuotas ir kaniulė įvesta.\n\nPatikrinkite, ar kaniulė buvo tinkamai įvesta, ir, jei jaučiate, kad taip nėra, pakeiskite Pod.</string>
<!-- Omnipod - Pod Deactivation Wizard -->
<string name="omnipod_common_pod_deactivation_wizard_start_pod_deactivation_title">Išjungti Pod</string>
<string name="omnipod_common_pod_deactivation_wizard_start_pod_deactivation_text">Spustelėkite<b>Kitas</b>, kad išjungtumėte Pod.\n\n<b>Pastaba:</b> Tai sustabdys insulino leidimą ir išjungs Pod.</string>
<string name="omnipod_common_pod_deactivation_wizard_deactivating_pod_title">Pod išjungiamas</string>
<string name="omnipod_common_pod_deactivation_wizard_deactivating_pod_text">Pod išjungiamas.\n\nKai išjungimas bus sėkmingai baigtas, galite spustelėti <b>Kitas</b>.</string>
<string name="omnipod_common_pod_deactivation_wizard_pod_deactivated_title">Pod išjungtas</string>
<string name="omnipod_common_pod_deactivation_wizard_pod_deactivated_text">Pod išjungtas.\n\nNuimkite Pod nuo kūno ir jį išmeskite.</string>
<string name="omnipod_common_pod_deactivation_wizard_pod_discarded_title">Pod išmestas</string>
<string name="omnipod_common_pod_deactivation_wizard_pod_discarded_text">Pod statusas atmestas. Insulino tiekimas nesustabdytas, nes Pod nebuvo teisingai deaktyvuotas. \n\nPašalinkite Pod nuo savo kūno ir jį utilizuokite.</string>
<string name="omnipod_common_pod_deactivation_wizard_discard_pod_confirmation">Jei atmesite Pod, ryšio su juo nebebus galima užmegzti. Darykite tai tik tada, kai visi bandymai užmegzti ryšį nepavyksta. Ar esate tikras, kad norite atmesti Pod?</string>
<string name="omnipod_common_pod_deactivation_wizard_discard_pod">Išmesti Pod</string>
<!-- Omnipod - Preferences -->
<string name="omnipod_common_preferences_bolus_beeps_enabled">Boluso signalai įjungti</string>
<string name="omnipod_common_preferences_basal_beeps_enabled">Bazės signalai įjungti</string>
<string name="omnipod_common_preferences_smb_beeps_enabled">SMB signalai įjungti</string>
<string name="omnipod_common_preferences_tbr_beeps_enabled">Laikinos bazės signalai įjungti</string>
<string name="omnipod_common_preferences_suspend_delivery_button_enabled">Omnipod skirtuke rodyti mygtuką Sustabdyti tiekimą</string>
<string name="omnipod_common_preferences_time_change_enabled">Vasaros laiko/Laiko juostos aptikimas įgalintas</string>
<string name="omnipod_common_preferences_expiration_reminder_enabled">Galiojimo pabaigos priminimas</string>
<string name="omnipod_common_preferences_expiration_reminder_hours_before_shutdown">Valandos prieš išsijungimą</string>
<string name="omnipod_common_preferences_low_reservoir_alert_enabled">Įgalintas įspėjimas apie žemą rezervuaro lygį</string>
<string name="omnipod_common_preferences_low_reservoir_alert_units">Vienetų skaičius</string>
<string name="omnipod_common_preferences_automatically_silence_alerts">Automatiškai nutildyti Pod perspėjimus</string>
<string name="omnipod_common_preferences_category_other">Kiti</string>
<string name="omnipod_common_preferences_category_alerts">Perspėjimai</string>
<string name="omnipod_common_preferences_category_confirmation_beeps">Patvirtinimo signalai</string>
<!-- Omnipod - Pod Status -->
<string name="omnipod_common_pod_status_no_active_pod">Nėra aktyvaus Pod</string>
<string name="omnipod_common_pod_status_waiting_for_activation">Vykdomas nustatymas (laukiama Pod aktyvavimo)</string>
<string name="omnipod_common_pod_status_waiting_for_cannula_insertion">Vykdomas nustatymas (laukiama kaniulės įvedimo)</string>
<string name="omnipod_common_pod_status_running">Vykdoma</string>
<string name="omnipod_common_pod_status_suspended">Sustabdyta</string>
<string name="omnipod_common_pod_status_pod_fault">Pod klaida</string>
<string name="omnipod_common_pod_status_activation_time_exceeded">Viršytas aktyvinimo laikas</string>
<string name="omnipod_common_pod_status_inactive">Neaktyvus</string>
<string name="omnipod_common_pod_status_pod_fault_description">Pod klaida: %1$03d %2$s</string>
<!-- Omnipod - Commands -->
<string name="omnipod_common_cmd_deactivate_pod">Išjungti Pod</string>
<string name="omnipod_common_cmd_discard_pod">Išmesti Pod</string>
<string name="omnipod_common_cmd_set_bolus">Nustatyti bolusą</string>
<string name="omnipod_common_cmd_cancel_bolus">Atšaukti bolusą</string>
<string name="omnipod_common_cmd_set_tbr">Nustatyti laikiną bazę</string>
<string name="omnipod_common_cmd_cancel_tbr_by_driver">Atšaukti laikiną bazę (vidinis valdiklis)</string>
<string name="omnipod_common_cmd_cancel_tbr">Atšaukti laikiną bazę</string>
<string name="omnipod_common_cmd_set_basal_schedule">Nustatyti bazės tvarkaraštį</string>
<string name="omnipod_common_cmd_get_pod_status">Gauti Pod būseną</string>
<string name="omnipod_common_cmd_get_pod_info">Gauti Pod informaciją</string>
<string name="omnipod_common_cmd_set_time">Nustatyti laiką</string>
<string name="omnipod_common_cmd_configure_alerts">Konfigūruoti perspėjimus</string>
<string name="omnipod_common_cmd_silence_alerts">Tylūs perpėjimai</string>
<string name="omnipod_common_cmd_suspend_delivery">Sustabdyti suleidimą</string>
<string name="omnipod_common_cmd_resume_delivery">Atnaujinti suleidimą</string>
<string name="omnipod_common_cmd_unknown_entry">Nežinomas Įrašas</string>
<string name="omnipod_common_cmd_initialize_pod">Inicijuoti Pod</string>
<string name="omnipod_common_cmd_insert_cannula">Įvesti kaniulę</string>
<string name="omnipod_common_cmd_read_pulse_log">Skaityti Pulse žurnalą</string>
<string name="omnipod_common_cmd_set_fake_suspended_tbr">Nustatykite netikrą laikiną bazę, nes Pod sustabdyta</string>
<string name="omnipod_common_cmd_cancel_fake_suspended_tbr">Atšaukite netikrą laikiną bazę, kuri buvo nustatyta dėl to, kad Pod buvo sustabdyta</string>
<string name="omnipod_common_cmd_split_tbr">Laikina bazė padalinta dėl nežinomos klaidos atšaukiant ją</string>
<string name="omnipod_common_cmd_beep_config">Signalo nustatymai</string>
<string name="omnipod_common_cmd_play_test_beep">Paleisti bandomąjį signalą</string>
<!-- Omnipod - Alerts -->
<string name="omnipod_common_alert_finish_pairing_reminder">Priminimas apie suporavimo pabaigą</string>
<string name="omnipod_common_alert_finish_setup_reminder_reminder">Priminimas apie sąrankos pabaigą</string>
<string name="omnipod_common_alert_expiration">Pod galiojimas greitai baigsis</string>
<string name="omnipod_common_alert_expiration_advisory">Pod galiojimas greitai baigsis</string>
<string name="omnipod_common_alert_shutdown_imminent">Išjungimas yra neišvengiamas</string>
<string name="omnipod_common_alert_low_reservoir">Žemas rezervuaro lygis</string>
<string name="omnipod_common_alert_unknown_alert">Nežinomas perspėjimas</string>
<!-- Omnipod - Short status -->
<string name="omnipod_common_short_status_no_active_pod">Nėra aktyvaus Pod</string>
<string name="omnipod_common_short_status_last_connection">Pask. prisijung.: prieš %1$d min</string>
<string name="omnipod_common_short_status_last_bolus">Pask.Bolusas: %1$s @ %2$s</string>
<string name="omnipod_common_short_status_temp_basal">Laik.bazė: %1$s</string>
<string name="omnipod_common_short_status_extended_bolus">Ištęstas: %1$s</string>
<string name="omnipod_common_short_status_reservoir">Rezerv: %1$svv</string>
<!-- Omnipod - Other -->
<string name="omnipod_common_yes">Taip</string>
<string name="omnipod_common_no">Ne</string>
<string name="omnipod_common_ok">OK</string>
<string name="omnipod_common_cancel">Atšaukti</string>
<string name="omnipod_common_warning">Perspėjimas</string>
<!-- Omnipod - Times -->
<string name="omnipod_common_moments_ago">Neseniai</string>
<string name="omnipod_common_less_than_a_minute_ago">Mažiau nei prieš minutę</string>
<string name="omnipod_common_composite_time">%1$s ir %2$s</string>
<string name="omnipod_common_time_ago">prieš %1$s</string>
<plurals name="omnipod_common_minutes">
<item quantity="one">%1$d min</item>
<item quantity="few">%1$d min</item>
<item quantity="many">%1$d min</item>
<item quantity="other">%1$d min</item>
</plurals>
<plurals name="omnipod_common_hours">
<item quantity="one">%1$d val</item>
<item quantity="few">%1$d val</item>
<item quantity="many">%1$d val</item>
<item quantity="other">%1$d val</item>
</plurals>
<plurals name="omnipod_common_days">
<item quantity="one">%1$d d.</item>
<item quantity="few">%1$d d.</item>
<item quantity="many">%1$d d.</item>
<item quantity="other">%1$d d.</item>
</plurals>
<plurals name="omnipod_common_pod_alerts">
<item quantity="one">Pod aliarmas: %1$s</item>
<item quantity="few">Pod aliarmai: %1$s</item>
<item quantity="many">Pod aliarmai: %1$s</item>
<item quantity="other">Pod aliarmai: %1$s</item>
</plurals>
</resources>

View file

@ -9,7 +9,7 @@ apply plugin: "org.jlleitschuh.gradle.ktlint" // TODO move to `subprojects` sect
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
allOpen {
annotation 'info.nightscout.androidaps.plugins.pump.omnipod.dash.annotations.OpenClass'

View file

@ -1051,7 +1051,10 @@ class OmnipodDashPumpPlugin @Inject constructor(
return Completable.concat(
listOf(
pre,
podStateManager.observeNoActiveCommand(checkNoActiveCommand).ignoreElements(),
if (checkNoActiveCommand)
podStateManager.observeNoActiveCommand()
else
Completable.complete(),
historyEntry
.flatMap { activeCommandEntry(it) }
.ignoreElement(),

View file

@ -243,5 +243,6 @@ class OmnipodDashBleManagerImpl @Inject constructor(
companion object {
const val MAX_NUMBER_OF_CONNECTION_ATTEMPTS = 2
const val CONTROLLER_ID = 4242 // TODO read from preferences or somewhere else.
private const val CONNECT_TIMEOUT_MULTIPLIER = 4
}
}

View file

@ -199,7 +199,7 @@ object ProgramBasalUtil {
val index = ((hourOfDay * 60 + minuteOfHour) / 30).toByte()
val secondOfDay = secondOfMinute + hourOfDay * 3600 + minuteOfHour * 60
val secondsRemaining = ((index + 1) * 1800 - secondOfDay).toShort()
val pulsesRemaining = (pulsesPerSlot!![index.toInt()].toDouble() * secondsRemaining / 1800).toShort()
val pulsesRemaining = (pulsesPerSlot!![index.toInt()].toDouble() * secondsRemaining / 1800).toInt().toShort()
return CurrentSlot(index, (secondsRemaining * 8).toShort(), pulsesRemaining)
}

View file

@ -9,6 +9,7 @@ import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.
import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.DefaultStatusResponse
import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.SetUniqueIdResponse
import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.VersionResponse
import io.reactivex.Completable
import io.reactivex.Maybe
import io.reactivex.Observable
import io.reactivex.Single
@ -91,7 +92,7 @@ interface OmnipodDashPodStateManager {
requestedBolus: Double? = null
): Single<ActiveCommand>
fun updateActiveCommand(): Maybe<CommandConfirmed>
fun observeNoActiveCommand(check: Boolean): Observable<PodEvent>
fun observeNoActiveCommand(): Completable
fun getCommandConfirmationFromState(): CommandConfirmationFromState
fun createLastBolus(requestedUnits: Double, historyId: String, bolusType: DetailedBolusInfo.BolusType)

View file

@ -18,6 +18,7 @@ import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.
import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.SetUniqueIdResponse
import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.VersionResponse
import info.nightscout.androidaps.utils.sharedPreferences.SP
import io.reactivex.Completable
import io.reactivex.Maybe
import io.reactivex.Observable
import io.reactivex.Single
@ -307,13 +308,13 @@ class OmnipodDashPodStateManagerImpl @Inject constructor(
}
@Synchronized
override fun observeNoActiveCommand(check: Boolean): Observable<PodEvent> {
return Observable.defer {
if (activeCommand == null || !check) {
Observable.empty()
override fun observeNoActiveCommand(): Completable {
return Completable.defer {
if (activeCommand == null) {
Completable.complete()
} else {
logger.warn(LTag.PUMP, "Active command already existing: $activeCommand")
Observable.error(
Completable.error(
java.lang.IllegalStateException(
"Trying to send a command " +
"and the last command was not confirmed"
@ -468,7 +469,7 @@ class OmnipodDashPodStateManagerImpl @Inject constructor(
podState.lastStatusResponseReceived = SystemClock.elapsedRealtime()
updateLastBolusFromResponse(response.bolusPulsesRemaining)
if (podState.activationTime == null) {
podState.activationTime = System.currentTimeMillis() - (response.minutesSinceActivation * 60000)
podState.activationTime = System.currentTimeMillis() - (response.minutesSinceActivation * 60_000)
}
store()

View file

@ -1,6 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Omnipod Dash - Description -->
<string name="omnipod_dash_pump_description">Pompos integracija Omnipod Dash (naujas, Bluetooth palaikantis modelis su mėlynu adatos dangteliu).</string>
<!-- Omnipod Dash - Keys -->
<!-- Omnipod Dash - Overview -->
<string name="omnipod_dash_bluetooth_status">Bluetooth statusas</string>
<string name="omnipod_dash_bluetooth_address">Bluetooth adresas</string>
</resources>

View file

@ -6,7 +6,7 @@ apply plugin: 'com.hiya.jacoco-android'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
dependencies {
implementation project(':core')

View file

@ -1,13 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Omnipod Eros - Description -->
<string name="omnipod_eros_pump_description">Pompos integravimas su Omnipod Eros (senesnis modelis su skaidriu adatos dangteliu). Reikalingas RileyLink įrenginys, su 2.0 ir naujesne programinės įrangos versija.</string>
<!-- Omnipod Eros - Keys -->
<!-- Omnipod Eros - Overview -->
<!-- Omnipod Eros - Preferences -->
<string name="omnipod_eros_preferences_riley_link_configuration">RileyLink konfigūravimas</string>
<string name="omnipod_eros_preferences_category_notifications">Pranešimai</string>
<string name="omnipod_eros_preferences_pulse_log_button_enabled">Pod valdymo meniu rodyti mygtuką Pulse log</string>
<string name="omnipod_eros_preferences_riley_link_stats_button_enabled">Pod valdymo meniu rodyti mygtuką RileyLink Stats</string>
<string name="omnipod_eros_preferences_battery_change_logging_enabled">Įgalinti baterijos keitimo registravimą veiksmuose</string>
<string name="omnipod_eros_preferences_category_riley_link">RileyLink</string>
<string name="omnipod_eros_preferences_notification_uncertain_tbr_sound_enabled">Įjungtas garsas neaiškiems laikinos bazės perspėjimams</string>
<string name="omnipod_eros_preferences_notification_uncertain_smb_sound_enabled">Įjungtas garsas neaiškiems SMB perspėjimams</string>
<string name="omnipod_eros_preferences_notification_uncertain_bolus_sound_enabled">Įjungtas garsas neaiškiems bolusų perspėjimams</string>
<!-- Omnipod Eros - History -->
<string name="omnipod_eros_history_title">Pod istorija</string>
<string name="omnipod_eros_history_item_description">Aprašymas</string>
<string name="omnipod_eros_history_item_source">Šaltinis</string>
<string name="omnipod_eros_history_item_date">Data</string>
<string name="omnipod_eros_history_type">Tipas:</string>
<string name="omnipod_eros_history_bolus_value">%1$.2f vv</string>
<string name="omnipod_eros_history_bolus_value_with_carbs">%1$.2f vv, AV=%2$.1f g</string>
<string name="omnipod_eros_history_tbr_value">Kiekis: %1$.2f vv, trukmė: %2$d min</string>
<!-- Omnipod Eros - Short Status -->
<string name="omnipod_eros_short_status_riley_link_battery">RLBatt: %1$d</string>
<!-- Omnipod Eros - Error -->
<string name="omnipod_eros_error_riley_link_address_invalid">RileyLink adresas neteisingas.</string>
<string name="omnipod_eros_error_crc_mismatch">Ryšio klaida: pranešimo vientisumo patikra nepavyko</string>
<string name="omnipod_eros_error_invalid_packet_type">Ryšio klaida: netinkami įvesties iš Pod parametrai</string>
<string name="omnipod_eros_error_invalid_progress_state">Ryšio klaida: Pod būklė yra netinkama</string>
<string name="omnipod_eros_error_invalid_response">Ryšio klaida: gautas netinkamas atsakymas iš Pod</string>
<string name="omnipod_eros_error_invalid_message_sequence_number">Ryšio klaida: iš Pod gautas pranešimas su negaliojančiu serijos numeriu</string>
<string name="omnipod_eros_error_invalid_message_address">Ryšio klaida: iš Pod gautas pranešimas su netinkamu adresu</string>
<string name="omnipod_eros_error_message_decoding_failed">Ryšio klaida: nepavyko iššifruoti pranešimo iš Pod</string>
<string name="omnipod_eros_error_nonce_resync_failed">Ryšio klaida: nepavyko iš naujo sinchronizuoti unikalų kodą</string>
<string name="omnipod_eros_error_nonce_out_of_sync">Ryšio klaida: unikalus kodas nebuvo sinchronizuotas</string>
<string name="omnipod_eros_error_not_enough_data">Ryšio klaida: iš Pod gauta nepakankamai duomenų</string>
<string name="omnipod_eros_error_pod_fault">Aptikta Pod klaida (%1$03d %2$s). Deaktyvuokite Pod ir aktyvuokite naują</string>
<string name="omnipod_eros_error_pod_returned_error_response">Ryšio klaida: Pod pateikė klaidos atsakymą</string>
<string name="omnipod_eros_error_communication_failed_no_response_from_riley_link">Nėra atsakymo iš RileyLink</string>
<string name="omnipod_eros_error_communication_failed_riley_link_interrupted">RileyLink ryšys pertrauktas</string>
<string name="omnipod_eros_error_communication_failed_no_response_from_pod">Nėra atsakymo iš Pod</string>
<string name="omnipod_eros_error_set_basal_failed_delivery_might_be_suspended">Nepavyko nustatyti bazės profilio. Insulino leidimas gali būti nutrauktas! Rankiniu būdu atnaujinkite Pod būseną Omnipod skirtuke ir, jei reikia, atnaujinkite insulino leidimą.</string>
<string name="omnipod_eros_error_set_basal_might_have_failed_delivery_might_be_suspended">Gali būti, kad bazės profilis nebuvo nustatytas. Insulino leidimas gali būti nutrauktas! Rankiniu būdu atnaujinkite Pod būseną Omnipod skirtuke ir, jei reikia, atnaujinkite insulino leidimą.</string>
<string name="omnipod_eros_error_set_basal_failed_delivery_suspended">Nepavyko nustatyti bazės profilio. Insulino leidimas buvo sustabdytas! Rankiniu būdu iš Omnipod skirtuko atnaujinkite insulino leidimą.</string>
<string name="omnipod_eros_error_cancel_temp_basal_failed_uncertain">Gali būti, kad laikinos bazės atšaukti nepavyko. Omnipod skirtuke rankiniu būdu atnaujinkite Pod statusą.</string>
<string name="omnipod_eros_error_set_temp_basal_failed_old_tbr_might_be_cancelled">Nepavyko nustatyti laikinos valandinės bazės. Jei laikina bazė buvo pradėta anksčiau, ji gali būti atšaukta. Rakiniu būdu atnaujinkite Pod būseną Omnipod skirtuke.</string>
<string name="omnipod_eros_error_set_temp_basal_failed_old_tbr_cancelled_new_might_have_failed">Gali būti, kad nepavyko nustatyti laikinos valandinės bazės. Jei laikina bazė buvo nustatyta anksčiau, ji yra atšaukta. Rakiniu būdu atnaujinkite Pod būseną Omnipod skirtuke.</string>
<string name="omnipod_eros_error_set_temp_basal_failed_validation">Laikinos bazės trukmė turi būti didesnis už nulį %1$s min. kartotinis.</string>
<string name="omnipod_eros_error_set_time_failed_delivery_might_be_suspended">Gali būti, kad laikas nebuvo nustatytas. Insulino leidimas gali būti nutrauktas! Rankiniu būdu atnaujinkite Pod būseną Omnipod skirtuke ir, jei reikia, atnaujinkite insulino leidimą.</string>
<string name="omnipod_eros_error_set_time_failed_delivery_suspended">Nepavyko nustatyti laiko. Insulino leidimas sustabdytas! Rankiniu būdu atnaujinkite insulino leidimą iš Omnipod skirtuko.</string>
<string name="omnipod_eros_error_failed_to_read_pulse_log">Nepavyko perskaityti Pulse žurnalo</string>
<string name="omnipod_eros_error_automatic_time_or_timezone_change_failed">Nepavyko automatiškai pakeisti Pod laiko. Jūs turėtumėte sinchronizuoti laiką rankiniu būdu Omnipod skirtuke.</string>
<string name="omnipod_eros_error_operation_not_possible_no_configuration">Operacija negalima.\n\nPirmiausia turite sukonfigūruoti Omnipod pompą prieš atliekant šią operaciją.</string>
<string name="omnipod_eros_error_bolus_failed_uncertain">Nepavyko patikrinti, ar buvo suleistas bolusas. Patikrinkite, ar Pod leidžia bolusą (klausantis boluso garsų). <b>Jei esate tikri, kad bolusas nebuvo suleistas, turite rankiniu būdu ištrinti boluso įrašą iš Terapijos, net jei dabar spustelėjote mygtuką „Atšaukti bolusą“!</b></string>
<string name="omnipod_eros_error_bolus_failed_uncertain_smb">Nepavyko patikrinti, ar SMB (%1$.2fvv) suleistas. <b>Jei esate tikri, kad bolusas nebuvo suleistas, turite rankiniu būdu pašalinti SMB įrašą iš Terapijos.</b></string>
<string name="omnipod_eros_error_tbr_running_but_aaps_not_aware">Pod veikia laikina bazė, bet AAPS neinformuota apie šią laikiną bazę. Atšaukite laikiną bazę rankiniu būdu.</string>
<!-- Omnipod Eros - Pod Management -->
<string name="omnipod_eros_pod_management_button_riley_link_stats">RileyLink statusas</string>
<string name="omnipod_eros_pod_management_waiting_for_riley_link_connection">Laukiama RileyLink ryšio…</string>
<string name="omnipod_eros_pod_management_button_reset_riley_link_config">Išvalyti RileyLink nustatymus</string>
<string name="omnipod_eros_pod_management_button_read_pulse_log">Skaityti Pulse žurnalą</string>
<string name="omnipod_eros_pod_management_button_reading_pulse_log">Skaitomas Pulse žurnalas…</string>
<string name="omnipod_eros_pod_management_pulse_log">Pulse žurnalas</string>
<string name="omnipod_eros_pod_management_pulse_log_value">Pulse žurnalas (nukopijuotas į mainų sritį)</string>
<!-- Omnipod Eros - Pod Activation Wizard -->
<string name="omnipod_eros_pod_activation_wizard_start_pod_activation_text">Užpildykite naują Pod insulinu, kurio pakaktų 3 dienoms.\n\nTaip pat atkreipkite dėmesį į du pyptelėjimus iš Pod, kai pildote. Tai rodo, kad rezervuaras buvo užpildytas mažiausiai 80vv. Visiškai ištuštinkite švirkštą, net jei girdėjote du pyptelėjimus.\n\nUžpildę Pod, spustelėkite <b>Kitas</b>.\n\n<b>Pastaba:</b> vykdant šiuos veiksmus, nenuimkite Pod adatos apsauginio dangtelio.\n<b>Pastaba:</b> padėkite RileyLink vertikalioje pozicijoje ir Pod kelių colių atstumu vienas nuo kito.</string>
<string name="omnipod_eros_pod_activation_wizard_initialize_pod_text">Pabandykite suporuoti naują Pod ir užpildykite jį.\n\nKai inicijavimo procesas bus užbaigtas sėkmingai, galite spustelėti <b>Kitas</b>.\n\n <b>Pastaba:</b> padėkite RileyLink vertikalioje pozicijoje ir Pod kelių colių atstumu vienas nuo kito.</string>
<!-- Omnipod Eros - Other -->
<string name="omnipod_eros_uncertain">neaiški</string>
</resources>

View file

@ -6,7 +6,7 @@ apply plugin: 'com.hiya.jacoco-android'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
dependencies {
implementation project(':core')

View file

@ -59,5 +59,5 @@ data class PumpDbEntryCarbs(var date: Long,
data class PumpDbEntryTBR(var rate: Double,
var isAbsolute: Boolean,
var durationInMinutes: Int,
var durationInSeconds: Int,
var tbrType: PumpSync.TemporaryBasalType)

View file

@ -22,7 +22,7 @@ class PumpSyncStorage @Inject constructor(
val aapsLogger: AAPSLogger
) {
val pumpSyncStorageKey: String = "pump_sync_storage_xstream"
val pumpSyncStorageKey: String = "pump_sync_storage_xstream_v2"
var pumpSyncStorage: MutableMap<String, MutableList<PumpDbEntry>> = mutableMapOf()
var TBR: String = "TBR"
var BOLUS: String = "BOLUS"
@ -32,6 +32,7 @@ class PumpSyncStorage @Inject constructor(
init {
initStorage()
cleanOldStorage();
}
fun initStorage() {
@ -66,6 +67,15 @@ class PumpSyncStorage @Inject constructor(
}
}
fun cleanOldStorage(): Unit {
val oldSpKeys = setOf("pump_sync_storage", "pump_sync_storage_xstream")
for (oldSpKey in oldSpKeys) {
if (sp.contains(oldSpKey))
sp.remove(oldSpKey)
}
}
fun isStorageEmpty(): Boolean {
return pumpSyncStorage[BOLUS]!!.isEmpty() && pumpSyncStorage[TBR]!!.isEmpty()
}
@ -129,7 +139,7 @@ class PumpSyncStorage @Inject constructor(
val response = pumpSync.addTemporaryBasalWithTempId(
timenow,
temporaryBasal.rate,
(temporaryBasal.durationInMinutes * 60L * 1000L),
(temporaryBasal.durationInSeconds * 1000L),
temporaryBasal.isAbsolute,
temporaryId,
temporaryBasal.tbrType,

View file

@ -6,7 +6,7 @@ apply plugin: 'com.hiya.jacoco-android'
apply from: "${project.rootDir}/gradle/android_dependencies.gradle"
apply from: "${project.rootDir}/gradle/android_module_dependencies.gradle"
apply from: "${project.rootDir}/gradle/test_dependencies.gradle"
apply from: "${project.rootDir}/gradle/jacoco_global.gradle"
dependencies {
implementation project(':core')

View file

@ -22,15 +22,23 @@
<string name="medtronic_pump_status">Pompos statusas</string>
<string name="title_activity_rileylink_settings">RileyLink parametrai</string>
<string name="rileylink_title">RileyLink</string>
<string name="rileylink_address">Adresas:</string>
<string name="rileylink_name">Vardas:</string>
<string name="rileylink_battery_level">Baterijos lygis:</string>
<string name="rileylink_battery_level_value">%1$d%%</string>
<string name="rileylink_connection_status">Ryšio būsena:</string>
<string name="rileylink_connection_error">Prisijungimo klaida:</string>
<string name="rileylink_device">Įrenginys</string>
<string name="rileylink_device_type">Įrenginio tipas:</string>
<string name="rileylink_configured_device_model">Nustatytas įrenginio modelis:</string>
<string name="rileylink_connected_device_model">Prijungtas įrenginio modelis:</string>
<string name="rileylink_last_used_frequency">Paskutinis naudotas dažnis:</string>
<string name="rileylink_last_device_contact">Paskutinis įrenginio kontaktas:</string>
<string name="rileylink_firmware_version">Programinės įrangos versija:</string>
<string name="rileylink_firmware_version_value">BLE113: %1$s\nCC110: %2$s</string>
<string name="rileylink_pump_serial_number">Pompos serijos Nr:</string>
<string name="rileylink_pump_frequency">Pompos dažnis:</string>
<string name="rileylink_pump_frequency_value">%1$.2f MHz</string>
<!-- RL State -->
<string name="rileylink_state_bt_init">Inicijuojamas Bluetooth…</string>
<string name="rileylink_state_bt_error">Bluetooth klaida</string>
@ -52,9 +60,12 @@
<string name="rileylink_error_pod_unreachable">Pod nepasiekiamas</string>
<!-- RileyLink - Common -->
<string name="rileylink_target_device_medtronic">Pompa Medtronic</string>
<string name="rileylink_target_device_omnipod">Omnipod (Eros)</string>
<string name="riley_link_common_yes">Taip</string>
<string name="riley_link_common_no">Ne</string>
<!-- RileyLink - Preferences -->
<string name="riley_link_show_battery_level">Rodyti baterijos įkrovimo lygį, gautą iš OrangeLink/EmaLink/DiaLink</string>
<string name="riley_link_show_battery_level_summary">NEVEIKIA su originaliu RileyLink. Gali neveikti su kitomis RileyLink alternatyvomis.</string>
<plurals name="duration_days">
<item quantity="one">%1$d d.</item>
<item quantity="few">%1$d d.</item>

View file

@ -15,7 +15,12 @@ apply plugin: 'kotlin-android'
apply plugin: 'com.hiya.jacoco-android'
jacoco {
toolVersion = "0.8.6"
toolVersion = "0.8.7"
}
tasks.withType(Test) {
jacoco.includeNoLocationClasses = true
jacoco.excludes = ['jdk.internal.*']
}
ext {
@ -150,7 +155,7 @@ dependencies {
}
testImplementation "org.skyscreamer:jsonassert:1.5.0"
testImplementation "org.hamcrest:hamcrest-all:1.3"
implementation "androidx.core:core-ktx:+"
implementation "androidx.core:core-ktx:$coreVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
repositories {

View file

@ -89,6 +89,9 @@
<string name="action_confirm">PATVIRTINTI</string>
<string name="action_timeshift">laiko postūmis</string>
<string name="action_bolus">bolusas</string>
<string name="bolus_progress">Leidžiamas bolusas</string>
<string name="press_to_cancel">paspauskite atšaukimui</string>
<string name="cancel_bolus">ATŠAUKTI BOLUSĄ</string>
<string name="status_pump">Pompa</string>
<string name="status_loop">Ciklas</string>
<string name="status_cpp">CPP (Procentinis dienos profilis)</string>