Merge branch 'dash' of github.com:0pen-dash/AndroidAPS into avereha/fake-tbr

This commit is contained in:
Andrei Vereha 2021-10-04 17:56:25 +02:00
commit 9ebb7cd82d
46 changed files with 997 additions and 901 deletions

View file

@ -63,7 +63,8 @@ class OverviewData @Inject constructor(
BG, BG,
IOB_COB, IOB_COB,
SENSITIVITY, SENSITIVITY,
GRAPH GRAPH,
PUMPSTATUS
} }
var rangeToDisplay = 6 // for graph var rangeToDisplay = 6 // for graph
@ -72,6 +73,7 @@ class OverviewData @Inject constructor(
var endTime: Long = 0 var endTime: Long = 0
fun reset() { fun reset() {
pumpStatus = ""
calcProgress = "" calcProgress = ""
lastBg = null lastBg = null
temporaryBasal = null temporaryBasal = null
@ -122,6 +124,12 @@ class OverviewData @Inject constructor(
endTime = toTime endTime = toTime
} }
/*
* PUMP STATUS
*/
var pumpStatus: String = ""
/* /*
* CALC PROGRESS * CALC PROGRESS
*/ */

View file

@ -61,7 +61,11 @@ import info.nightscout.androidaps.plugins.source.DexcomPlugin
import info.nightscout.androidaps.plugins.source.XdripPlugin import info.nightscout.androidaps.plugins.source.XdripPlugin
import info.nightscout.androidaps.queue.CommandQueue import info.nightscout.androidaps.queue.CommandQueue
import info.nightscout.androidaps.skins.SkinProvider import info.nightscout.androidaps.skins.SkinProvider
import info.nightscout.androidaps.utils.* import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.DefaultValueHelper
import info.nightscout.androidaps.utils.FabricPrivacy
import info.nightscout.androidaps.utils.ToastUtils
import info.nightscout.androidaps.utils.TrendCalculator
import info.nightscout.androidaps.utils.alertDialogs.OKDialog import info.nightscout.androidaps.utils.alertDialogs.OKDialog
import info.nightscout.androidaps.utils.buildHelper.BuildHelper import info.nightscout.androidaps.utils.buildHelper.BuildHelper
import info.nightscout.androidaps.utils.protection.ProtectionCheck import info.nightscout.androidaps.utils.protection.ProtectionCheck
@ -73,6 +77,7 @@ import info.nightscout.androidaps.utils.wizard.QuickWizard
import io.reactivex.disposables.CompositeDisposable import io.reactivex.disposables.CompositeDisposable
import io.reactivex.rxkotlin.plusAssign import io.reactivex.rxkotlin.plusAssign
import java.util.* import java.util.*
import java.util.concurrent.TimeUnit
import javax.inject.Inject import javax.inject.Inject
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
import kotlin.math.abs import kotlin.math.abs
@ -159,8 +164,6 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
skinProvider.activeSkin().preProcessLandscapeOverviewLayout(dm, view, landscape, resourceHelper.gb(R.bool.isTablet), smallHeight) skinProvider.activeSkin().preProcessLandscapeOverviewLayout(dm, view, landscape, resourceHelper.gb(R.bool.isTablet), smallHeight)
binding.nsclientLayout.visibility = config.NSCLIENT.toVisibility() binding.nsclientLayout.visibility = config.NSCLIENT.toVisibility()
binding.loopPumpStatusLayout.pumpStatus.setBackgroundColor(resourceHelper.gc(R.color.colorInitializingBorder))
binding.notifications.setHasFixedSize(false) binding.notifications.setHasFixedSize(false)
binding.notifications.layoutManager = LinearLayoutManager(view.context) binding.notifications.layoutManager = LinearLayoutManager(view.context)
axisWidth = if (dm.densityDpi <= 120) 3 else if (dm.densityDpi <= 160) 10 else if (dm.densityDpi <= 320) 35 else if (dm.densityDpi <= 420) 50 else if (dm.densityDpi <= 560) 70 else 80 axisWidth = if (dm.densityDpi <= 120) 3 else if (dm.densityDpi <= 160) 10 else if (dm.densityDpi <= 320) 35 else if (dm.densityDpi <= 420) 50 else if (dm.densityDpi <= 560) 70 else 80
@ -189,10 +192,10 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
prepareGraphsIfNeeded(overviewMenus.setting.size) prepareGraphsIfNeeded(overviewMenus.setting.size)
overviewMenus.setupChartMenu(binding.graphsLayout.chartMenuButton) overviewMenus.setupChartMenu(binding.graphsLayout.chartMenuButton)
binding.loopPumpStatusLayout.activeProfile.setOnClickListener(this) binding.activeProfile.setOnClickListener(this)
binding.loopPumpStatusLayout.activeProfile.setOnLongClickListener(this) binding.activeProfile.setOnLongClickListener(this)
binding.loopPumpStatusLayout.tempTarget.setOnClickListener(this) binding.tempTarget.setOnClickListener(this)
binding.loopPumpStatusLayout.tempTarget.setOnLongClickListener(this) binding.tempTarget.setOnLongClickListener(this)
binding.buttonsLayout.acceptTempButton.setOnClickListener(this) binding.buttonsLayout.acceptTempButton.setOnClickListener(this)
binding.buttonsLayout.treatmentButton.setOnClickListener(this) binding.buttonsLayout.treatmentButton.setOnClickListener(this)
binding.buttonsLayout.wizardButton.setOnClickListener(this) binding.buttonsLayout.wizardButton.setOnClickListener(this)
@ -204,7 +207,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
binding.buttonsLayout.quickWizardButton.setOnLongClickListener(this) binding.buttonsLayout.quickWizardButton.setOnLongClickListener(this)
binding.infoLayout.apsMode.setOnClickListener(this) binding.infoLayout.apsMode.setOnClickListener(this)
binding.infoLayout.apsMode.setOnLongClickListener(this) binding.infoLayout.apsMode.setOnLongClickListener(this)
binding.loopPumpStatusLayout.activeProfile.setOnLongClickListener(this) binding.activeProfile.setOnLongClickListener(this)
} }
@Synchronized @Synchronized
@ -245,10 +248,14 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
.toObservable(EventNewOpenLoopNotification::class.java) .toObservable(EventNewOpenLoopNotification::class.java)
.observeOn(aapsSchedulers.io) .observeOn(aapsSchedulers.io)
.subscribe({ scheduleUpdateGUI("EventNewOpenLoopNotification") }, fabricPrivacy::logException)) .subscribe({ scheduleUpdateGUI("EventNewOpenLoopNotification") }, fabricPrivacy::logException))
disposable.add(rxBus disposable += rxBus
.toObservable(EventPumpStatusChanged::class.java) .toObservable(EventPumpStatusChanged::class.java)
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
.subscribe({ updatePumpStatus(it) }, fabricPrivacy::logException)) .delay (30, TimeUnit.MILLISECONDS, aapsSchedulers.main)
.subscribe({
overviewData.pumpStatus = it.getStatus(resourceHelper)
updateGUI("EventPumpStatusChanged", OverviewData.Property.PUMPSTATUS)
}, fabricPrivacy::logException)
refreshLoop = Runnable { refreshLoop = Runnable {
overviewPlugin.refreshLoop("refreshLoop") overviewPlugin.refreshLoop("refreshLoop")
@ -406,18 +413,6 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
} }
} }
private fun updatePumpStatus(event: EventPumpStatusChanged) {
val status = event.getStatus(resourceHelper)
if (status != "") {
binding.loopPumpStatusLayout.pumpStatus.text = status
binding.loopPumpStatusLayout.pumpStatusLayout.visibility = View.VISIBLE
binding.loopPumpStatusLayout.loopLayout.visibility = View.GONE
} else {
binding.loopPumpStatusLayout.pumpStatusLayout.visibility = View.GONE
binding.loopPumpStatusLayout.loopLayout.visibility = View.VISIBLE
}
}
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
private fun processButtonsVisibility() { private fun processButtonsVisibility() {
val lastBG = iobCobCalculator.ads.lastBg() val lastBG = iobCobCalculator.ads.lastBg()
@ -600,14 +595,11 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
// if (what != OverviewData.Property.CALC_PROGRESS) // if (what != OverviewData.Property.CALC_PROGRESS)
// aapsLogger.debug(LTag.UI, "UpdateGui $from $what") // aapsLogger.debug(LTag.UI, "UpdateGui $from $what")
if (profileFunction.getProfile() == null) { if (profileFunction.getProfile() == null) {
binding.loopPumpStatusLayout.pumpStatus.setText(R.string.noprofileset) binding.activeProfile.setText(R.string.noprofileset)
binding.loopPumpStatusLayout.pumpStatusLayout.visibility = View.VISIBLE binding.activeProfile.setBackgroundColor(resourceHelper.gc(R.color.errorAlertBackground))
binding.loopPumpStatusLayout.loopLayout.visibility = View.GONE
return return
} }
binding.notifications.let { notificationStore.updateNotifications(it) } binding.notifications.let { notificationStore.updateNotifications(it) }
binding.loopPumpStatusLayout.pumpStatusLayout.visibility = View.GONE
binding.loopPumpStatusLayout.loopLayout.visibility = View.VISIBLE
val units = profileFunction.getUnits() val units = profileFunction.getUnits()
val pump = activePlugin.activePump val pump = activePlugin.activePump
@ -658,9 +650,9 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
else resourceHelper.gc(R.color.ribbonTextDefault) else resourceHelper.gc(R.color.ribbonTextDefault)
} ?: resourceHelper.gc(R.color.ribbonTextDefault) } ?: resourceHelper.gc(R.color.ribbonTextDefault)
binding.loopPumpStatusLayout.activeProfile.text = profileFunction.getProfileNameWithRemainingTime() binding.activeProfile.text = profileFunction.getProfileNameWithRemainingTime()
binding.loopPumpStatusLayout.activeProfile.setBackgroundColor(profileBackgroundColor) binding.activeProfile.setBackgroundColor(profileBackgroundColor)
binding.loopPumpStatusLayout.activeProfile.setTextColor(profileTextColor) binding.activeProfile.setTextColor(profileTextColor)
} }
OverviewData.Property.TEMPORARY_BASAL -> { OverviewData.Property.TEMPORARY_BASAL -> {
@ -721,9 +713,9 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
if (overviewData.temporaryTarget?.isInProgress(dateUtil) == false) overviewData.temporaryTarget = null if (overviewData.temporaryTarget?.isInProgress(dateUtil) == false) overviewData.temporaryTarget = null
val tempTarget = overviewData.temporaryTarget val tempTarget = overviewData.temporaryTarget
if (tempTarget != null) { if (tempTarget != null) {
binding.loopPumpStatusLayout.tempTarget.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning)) binding.tempTarget.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning))
binding.loopPumpStatusLayout.tempTarget.setBackgroundColor(resourceHelper.gc(R.color.ribbonWarning)) binding.tempTarget.setBackgroundColor(resourceHelper.gc(R.color.ribbonWarning))
binding.loopPumpStatusLayout.tempTarget.text = Profile.toTargetRangeString(tempTarget.lowTarget, tempTarget.highTarget, GlucoseUnit.MGDL, units) + " " + dateUtil.untilString(tempTarget.end, resourceHelper) binding.tempTarget.text = Profile.toTargetRangeString(tempTarget.lowTarget, tempTarget.highTarget, GlucoseUnit.MGDL, units) + " " + dateUtil.untilString(tempTarget.end, resourceHelper)
} else { } else {
// If the target is not the same as set in the profile then oref has overridden it // If the target is not the same as set in the profile then oref has overridden it
profileFunction.getProfile()?.let { profile -> profileFunction.getProfile()?.let { profile ->
@ -731,13 +723,13 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
if (targetUsed != 0.0 && abs(profile.getTargetMgdl() - targetUsed) > 0.01) { if (targetUsed != 0.0 && abs(profile.getTargetMgdl() - targetUsed) > 0.01) {
aapsLogger.debug("Adjusted target. Profile: ${profile.getTargetMgdl()} APS: $targetUsed") aapsLogger.debug("Adjusted target. Profile: ${profile.getTargetMgdl()} APS: $targetUsed")
binding.loopPumpStatusLayout.tempTarget.text = Profile.toTargetRangeString(targetUsed, targetUsed, GlucoseUnit.MGDL, units) binding.tempTarget.text = Profile.toTargetRangeString(targetUsed, targetUsed, GlucoseUnit.MGDL, units)
binding.loopPumpStatusLayout.tempTarget.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning)) binding.tempTarget.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning))
binding.loopPumpStatusLayout.tempTarget.setBackgroundColor(resourceHelper.gc(R.color.tempTargetBackground)) binding.tempTarget.setBackgroundColor(resourceHelper.gc(R.color.tempTargetBackground))
} else { } else {
binding.loopPumpStatusLayout.tempTarget.setTextColor(resourceHelper.gc(R.color.ribbonTextDefault)) binding.tempTarget.setTextColor(resourceHelper.gc(R.color.ribbonTextDefault))
binding.loopPumpStatusLayout.tempTarget.setBackgroundColor(resourceHelper.gc(R.color.ribbonDefault)) binding.tempTarget.setBackgroundColor(resourceHelper.gc(R.color.ribbonDefault))
binding.loopPumpStatusLayout.tempTarget.text = Profile.toTargetRangeString(profile.getTargetLowMgdl(), profile.getTargetHighMgdl(), GlucoseUnit.MGDL, units) binding.tempTarget.text = Profile.toTargetRangeString(profile.getTargetLowMgdl(), profile.getTargetHighMgdl(), GlucoseUnit.MGDL, units)
} }
} }
} }
@ -832,6 +824,12 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
String.format(Locale.ENGLISH, "%.0f%%", autosensData.autosensResult.ratio * 100) String.format(Locale.ENGLISH, "%.0f%%", autosensData.autosensResult.ratio * 100)
} ?: "" } ?: ""
} }
OverviewData.Property.PUMPSTATUS -> {
val status = overviewData.pumpStatus
binding.pumpStatus.text = status
binding.pumpStatusLayout.visibility = (status != "").toVisibility()
}
} }
} }
} }

View file

@ -135,16 +135,22 @@ class OverviewPlugin @Inject constructor(
.toObservable(EventLoopInvoked::class.java) .toObservable(EventLoopInvoked::class.java)
.observeOn(aapsSchedulers.io) .observeOn(aapsSchedulers.io)
.subscribe({ overviewData.preparePredictions("EventLoopInvoked") }, fabricPrivacy::logException) .subscribe({ overviewData.preparePredictions("EventLoopInvoked") }, fabricPrivacy::logException)
disposable.add(rxBus disposable += rxBus
.toObservable(EventNewBasalProfile::class.java) .toObservable(EventNewBasalProfile::class.java)
.observeOn(aapsSchedulers.io) .observeOn(aapsSchedulers.io)
.subscribe({ loadProfile("EventNewBasalProfile") }, fabricPrivacy::logException)) .subscribe({ loadProfile("EventNewBasalProfile") }, fabricPrivacy::logException)
disposable.add(rxBus disposable += rxBus
.toObservable(EventAutosensCalculationFinished::class.java) .toObservable(EventAutosensCalculationFinished::class.java)
.observeOn(aapsSchedulers.io) .observeOn(aapsSchedulers.io)
.subscribe({ .subscribe({
if (it.cause !is EventCustomCalculationFinished) refreshLoop("EventAutosensCalculationFinished") if (it.cause !is EventCustomCalculationFinished) refreshLoop("EventAutosensCalculationFinished")
}, fabricPrivacy::logException)) }, fabricPrivacy::logException)
disposable += rxBus
.toObservable(EventPumpStatusChanged::class.java)
.observeOn(aapsSchedulers.io)
.subscribe({
overviewData.pumpStatus = it.getStatus(resourceHelper)
}, fabricPrivacy::logException)
Thread { loadAll("onResume") }.start() Thread { loadAll("onResume") }.start()
} }

View file

@ -135,6 +135,7 @@ class QueueThread internal constructor(
aapsLogger.debug(LTag.PUMPQUEUE, "disconnected") aapsLogger.debug(LTag.PUMPQUEUE, "disconnected")
return return
} else { } else {
rxBus.send(EventPumpStatusChanged(EventPumpStatusChanged.Status.WAITING_FOR_DISCONNECTION))
aapsLogger.debug(LTag.PUMPQUEUE, "waiting for disconnect") aapsLogger.debug(LTag.PUMPQUEUE, "waiting for disconnect")
SystemClock.sleep(1000) SystemClock.sleep(1000)
} }

View file

@ -273,7 +273,7 @@
style="@style/ButtonSmallFontStyle" style="@style/ButtonSmallFontStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_danarhistory" android:drawableTop="@drawable/ic_pump_history"
android:paddingLeft="0dp" android:paddingLeft="0dp"
android:paddingRight="0dp" android:paddingRight="0dp"
android:text="@string/nav_historybrowser" android:text="@string/nav_historybrowser"

View file

@ -273,7 +273,7 @@
style="@style/ButtonSmallFontStyle" style="@style/ButtonSmallFontStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_danarhistory" android:drawableTop="@drawable/ic_pump_history"
android:paddingLeft="0dp" android:paddingLeft="0dp"
android:paddingRight="0dp" android:paddingRight="0dp"
android:text="@string/nav_historybrowser" android:text="@string/nav_historybrowser"

View file

@ -10,8 +10,7 @@
android:id="@+id/top_part_scrollbar" android:id="@+id/top_part_scrollbar"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1">
tools:ignore="UselessParent">
<LinearLayout <LinearLayout
android:id="@+id/inner_layout" android:id="@+id/inner_layout"
@ -24,9 +23,42 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
<include <LinearLayout
android:id="@+id/loop_pump_status_layout" android:id="@+id/loop_layout"
layout="@layout/overview_loop_pumpstatus_layout" /> android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/active_profile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginEnd="5dp"
android:layout_weight="1"
android:gravity="center_vertical|center_horizontal"
android:paddingTop="6dp"
android:paddingBottom="6dp"
android:text="Profile"
android:textAppearance="?android:attr/textAppearanceSmall"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/temp_target"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_weight="1"
android:gravity="center_vertical|center_horizontal"
android:paddingTop="6dp"
android:paddingBottom="6dp"
android:text="TempTarget"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/mdtp_white"
tools:ignore="HardcodedText" />
</LinearLayout>
<include <include
android:id="@+id/info_layout" android:id="@+id/info_layout"
@ -92,6 +124,28 @@
</ScrollView> </ScrollView>
<LinearLayout
android:id="@+id/pump_status_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone">
<TextView
android:id="@+id/pump_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@color/pumpStatusBackground"
android:gravity="center_vertical|center_horizontal"
android:paddingTop="6dp"
android:paddingBottom="6dp"
android:text="@string/initializing"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
<include <include
android:id="@+id/buttons_layout" android:id="@+id/buttons_layout"
layout="@layout/overview_buttons_layout" /> layout="@layout/overview_buttons_layout" />

View file

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/loop_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/active_profile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginEnd="5dp"
android:layout_weight="1"
android:gravity="center_vertical|center_horizontal"
android:paddingTop="6dp"
android:paddingBottom="6dp"
android:text="Profile"
android:textAppearance="?android:attr/textAppearanceSmall"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/temp_target"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_weight="1"
android:gravity="center_vertical|center_horizontal"
android:paddingTop="6dp"
android:paddingBottom="6dp"
android:text="TempTarget"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/mdtp_white"
tools:ignore="HardcodedText" />
</LinearLayout>
<LinearLayout
android:id="@+id/pump_status_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone">
<TextView
android:id="@+id/pump_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:gravity="center_vertical|center_horizontal"
android:paddingTop="6dp"
android:paddingBottom="6dp"
android:text="@string/initializing"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</LinearLayout>

View file

@ -494,6 +494,7 @@
<string name="dexcomg5_xdripupload_title">Odesílat data do xDrip+</string> <string name="dexcomg5_xdripupload_title">Odesílat data do xDrip+</string>
<string name="dexcomg5_xdripupload_summary">V xDrip+ vyberte zdroj dat 640g/Eversense</string> <string name="dexcomg5_xdripupload_summary">V xDrip+ vyberte zdroj dat 640g/Eversense</string>
<string name="nsclientbg">Glykémie z NS</string> <string name="nsclientbg">Glykémie z NS</string>
<string name="nsclientbgshort">NSGL</string>
<string name="overview_editquickwizard_usebg">Kalkulace glykémie</string> <string name="overview_editquickwizard_usebg">Kalkulace glykémie</string>
<string name="overview_editquickwizard_usebolusiob">Kalkulace bolusového IOB</string> <string name="overview_editquickwizard_usebolusiob">Kalkulace bolusového IOB</string>
<string name="overview_editquickwizard_usebasaliob">Kalkulace bazálního IOB</string> <string name="overview_editquickwizard_usebasaliob">Kalkulace bazálního IOB</string>

View file

@ -494,6 +494,7 @@
<string name="dexcomg5_xdripupload_title">Sende BZ-Werte zu xDrip+</string> <string name="dexcomg5_xdripupload_title">Sende BZ-Werte zu xDrip+</string>
<string name="dexcomg5_xdripupload_summary">Wähle in xDrip+ 640g/Eversense als Daten-Quelle.</string> <string name="dexcomg5_xdripupload_summary">Wähle in xDrip+ 640g/Eversense als Daten-Quelle.</string>
<string name="nsclientbg">Nightscout-Client BZ</string> <string name="nsclientbg">Nightscout-Client BZ</string>
<string name="nsclientbgshort">NS BZ</string>
<string name="overview_editquickwizard_usebg">BZ Berechnung</string> <string name="overview_editquickwizard_usebg">BZ Berechnung</string>
<string name="overview_editquickwizard_usebolusiob">Bolus-IOB Berechnung</string> <string name="overview_editquickwizard_usebolusiob">Bolus-IOB Berechnung</string>
<string name="overview_editquickwizard_usebasaliob">Basal-IOB Berechnung</string> <string name="overview_editquickwizard_usebasaliob">Basal-IOB Berechnung</string>

View file

@ -494,6 +494,7 @@
<string name="dexcomg5_xdripupload_title">שליחת נתוני סוכר אל xDrip</string> <string name="dexcomg5_xdripupload_title">שליחת נתוני סוכר אל xDrip</string>
<string name="dexcomg5_xdripupload_summary">ב-xDrip בחרו 640g/Eversense כמקור נתונים</string> <string name="dexcomg5_xdripupload_summary">ב-xDrip בחרו 640g/Eversense כמקור נתונים</string>
<string name="nsclientbg">רמת סוכר מ-NSClient</string> <string name="nsclientbg">רמת סוכר מ-NSClient</string>
<string name="nsclientbgshort">סוכר NS</string>
<string name="overview_editquickwizard_usebg">חישוב רמת הסוכר</string> <string name="overview_editquickwizard_usebg">חישוב רמת הסוכר</string>
<string name="overview_editquickwizard_usebolusiob">חישוב IOB של בולוס</string> <string name="overview_editquickwizard_usebolusiob">חישוב IOB של בולוס</string>
<string name="overview_editquickwizard_usebasaliob">חישוב IOB של בזאלי</string> <string name="overview_editquickwizard_usebasaliob">חישוב IOB של בזאלי</string>

View file

@ -38,6 +38,9 @@
<string name="glucoseisnotavailable">Glykémie není k dispozici</string> <string name="glucoseisnotavailable">Glykémie není k dispozici</string>
<string name="glucosecomparedmgdl">Glykémie %1$s %2$.0f %3$s</string> <string name="glucosecomparedmgdl">Glykémie %1$s %2$.0f %3$s</string>
<string name="glucosecomparedmmol">Glykémie %1$s %2$.1f %3$s</string> <string name="glucosecomparedmmol">Glykémie %1$s %2$.1f %3$s</string>
<string name="notemptarget">Dočasný cíl neexistuje</string>
<string name="temptargetcomparedmgdl">Dočasný cíl %1$s %2$.0f %3$s</string>
<string name="temptargetcomparedmmol">Dočasný cíl %1$s %2$.1f %3$s</string>
<string name="percentagecompared">Profil pct %1$s %2$d</string> <string name="percentagecompared">Profil pct %1$s %2$d</string>
<string name="iobcompared">IOB %1$s %2$.1f</string> <string name="iobcompared">IOB %1$s %2$.1f</string>
<string name="and">A</string> <string name="and">A</string>
@ -86,6 +89,7 @@
<string name="latitude_short">Zem. šířka:</string> <string name="latitude_short">Zem. šířka:</string>
<string name="longitude_short">Zem. délka:</string> <string name="longitude_short">Zem. délka:</string>
<string name="glucose_u">Glykémie [%1$s]:</string> <string name="glucose_u">Glykémie [%1$s]:</string>
<string name="target_u">Cíl [%1$s]:</string>
<string name="lastboluslabel">Poslední bolus</string> <string name="lastboluslabel">Poslední bolus</string>
<string name="lastboluscompared">Poslední bolus %1$s před %2$s min</string> <string name="lastboluscompared">Poslední bolus %1$s před %2$s min</string>
<string name="triggercoblabel">COB</string> <string name="triggercoblabel">COB</string>

View file

@ -38,6 +38,9 @@
<string name="glucoseisnotavailable">Glukosewert nicht verfügbar</string> <string name="glucoseisnotavailable">Glukosewert nicht verfügbar</string>
<string name="glucosecomparedmgdl">Glukosewert %1$s %2$.0f %3$s</string> <string name="glucosecomparedmgdl">Glukosewert %1$s %2$.0f %3$s</string>
<string name="glucosecomparedmmol">Glukosewert %1$s %2$.1f %3$s</string> <string name="glucosecomparedmmol">Glukosewert %1$s %2$.1f %3$s</string>
<string name="notemptarget">Kein temporäres Ziel vorhanden</string>
<string name="temptargetcomparedmgdl">Temp. Zielwert %1$s %2$.0f %3$s</string>
<string name="temptargetcomparedmmol">Temp. Zielwert %1$s %2$.1f %3$s</string>
<string name="percentagecompared">Profil-Prozentsatz %1$s %2$d</string> <string name="percentagecompared">Profil-Prozentsatz %1$s %2$d</string>
<string name="iobcompared">IOB %1$s %2$.1f</string> <string name="iobcompared">IOB %1$s %2$.1f</string>
<string name="and">Und</string> <string name="and">Und</string>
@ -86,6 +89,7 @@
<string name="latitude_short">Breitengrad:</string> <string name="latitude_short">Breitengrad:</string>
<string name="longitude_short">Längengrad:</string> <string name="longitude_short">Längengrad:</string>
<string name="glucose_u">Glukosewert [%1$s]:</string> <string name="glucose_u">Glukosewert [%1$s]:</string>
<string name="target_u">Zielwert [%1$s]:</string>
<string name="lastboluslabel">Letzter Bolus vor</string> <string name="lastboluslabel">Letzter Bolus vor</string>
<string name="lastboluscompared">Letzter Bolus vor %1$s %2$s Min</string> <string name="lastboluscompared">Letzter Bolus vor %1$s %2$s Min</string>
<string name="triggercoblabel">COB</string> <string name="triggercoblabel">COB</string>

View file

@ -38,6 +38,9 @@
<string name="glucoseisnotavailable">La glycémie n\'est pas disponible</string> <string name="glucoseisnotavailable">La glycémie n\'est pas disponible</string>
<string name="glucosecomparedmgdl">Glycémie %1$s %2$.0f %3$s</string> <string name="glucosecomparedmgdl">Glycémie %1$s %2$.0f %3$s</string>
<string name="glucosecomparedmmol">Glycémie %1$s %2$.1f %3$s</string> <string name="glucosecomparedmmol">Glycémie %1$s %2$.1f %3$s</string>
<string name="notemptarget">La Cible Temp. n\'existe pas</string>
<string name="temptargetcomparedmgdl">Cible Temp. %1$s %2$.0f %3$s</string>
<string name="temptargetcomparedmmol">Cible Temp. %1$s %2$.1f %3$s</string>
<string name="percentagecompared">Profil %% %1$s %2$d</string> <string name="percentagecompared">Profil %% %1$s %2$d</string>
<string name="iobcompared">IA %1$s %2$.1f</string> <string name="iobcompared">IA %1$s %2$.1f</string>
<string name="and">Et</string> <string name="and">Et</string>
@ -86,6 +89,7 @@
<string name="latitude_short">Lat :</string> <string name="latitude_short">Lat :</string>
<string name="longitude_short">Long :</string> <string name="longitude_short">Long :</string>
<string name="glucose_u">Glycémie [%1$s] :</string> <string name="glucose_u">Glycémie [%1$s] :</string>
<string name="target_u">Cible [%1$s]:</string>
<string name="lastboluslabel">Lors du dernier Bolus</string> <string name="lastboluslabel">Lors du dernier Bolus</string>
<string name="lastboluscompared">Heure du dernier bolus %1$s il y a %2$s min</string> <string name="lastboluscompared">Heure du dernier bolus %1$s il y a %2$s min</string>
<string name="triggercoblabel">GA</string> <string name="triggercoblabel">GA</string>

View file

@ -38,6 +38,9 @@
<string name="glucoseisnotavailable">גלוקוז אינו זמין</string> <string name="glucoseisnotavailable">גלוקוז אינו זמין</string>
<string name="glucosecomparedmgdl">גלוקוז %1$s %2$.0f %3$s</string> <string name="glucosecomparedmgdl">גלוקוז %1$s %2$.0f %3$s</string>
<string name="glucosecomparedmmol">גלוקוז %1$s %2$.1f %3$s</string> <string name="glucosecomparedmmol">גלוקוז %1$s %2$.1f %3$s</string>
<string name="notemptarget">ערך המטרה הזמני לא קיים</string>
<string name="temptargetcomparedmgdl">ערך מטרה זמני %1$s %2$.0f %3$s</string>
<string name="temptargetcomparedmmol">ערך מטרה זמני %1$s %2$.1f %3$s</string>
<string name="percentagecompared">אחוז פרופיל %1$s %2$d</string> <string name="percentagecompared">אחוז פרופיל %1$s %2$d</string>
<string name="iobcompared">אינסולין פעיל %1$s %2$.1f</string> <string name="iobcompared">אינסולין פעיל %1$s %2$.1f</string>
<string name="and">וגם</string> <string name="and">וגם</string>
@ -86,6 +89,7 @@
<string name="latitude_short">רוחב:</string> <string name="latitude_short">רוחב:</string>
<string name="longitude_short">אורך:</string> <string name="longitude_short">אורך:</string>
<string name="glucose_u">גלוקוז [%1$s]:</string> <string name="glucose_u">גלוקוז [%1$s]:</string>
<string name="target_u">מטרה [%1$s]:</string>
<string name="lastboluslabel">בולוס אחרון</string> <string name="lastboluslabel">בולוס אחרון</string>
<string name="lastboluscompared">הבולוס האחרון היה לפני %1$s %2$s דק\'</string> <string name="lastboluscompared">הבולוס האחרון היה לפני %1$s %2$s דק\'</string>
<string name="triggercoblabel">פחמ\' פעילות</string> <string name="triggercoblabel">פחמ\' פעילות</string>

View file

@ -38,6 +38,9 @@
<string name="glucoseisnotavailable">Glykémia nedostupná</string> <string name="glucoseisnotavailable">Glykémia nedostupná</string>
<string name="glucosecomparedmgdl">Glykémia %1$s %2$.0f %3$s</string> <string name="glucosecomparedmgdl">Glykémia %1$s %2$.0f %3$s</string>
<string name="glucosecomparedmmol">Glykémia %1$s %2$.1f %3$s</string> <string name="glucosecomparedmmol">Glykémia %1$s %2$.1f %3$s</string>
<string name="notemptarget">Dočasný cieľ neexistuje</string>
<string name="temptargetcomparedmgdl">Doč. cieľ %1$s %2$.0f %3$s</string>
<string name="temptargetcomparedmmol">Doč. cieľ %1$s %2$.1f %3$s</string>
<string name="percentagecompared">Percentuálny profil %1$s %2$d</string> <string name="percentagecompared">Percentuálny profil %1$s %2$d</string>
<string name="iobcompared">IOB %1$s %2$.1f</string> <string name="iobcompared">IOB %1$s %2$.1f</string>
<string name="and">A</string> <string name="and">A</string>
@ -86,6 +89,7 @@
<string name="latitude_short">Lat:</string> <string name="latitude_short">Lat:</string>
<string name="longitude_short">Lon:</string> <string name="longitude_short">Lon:</string>
<string name="glucose_u">Glykémia [%1$s]:</string> <string name="glucose_u">Glykémia [%1$s]:</string>
<string name="target_u">Cieľ [%1$s]:</string>
<string name="lastboluslabel">Od posledného bolusu</string> <string name="lastboluslabel">Od posledného bolusu</string>
<string name="lastboluscompared">Čas posledného bolusu: pred %1$s %2$s min </string> <string name="lastboluscompared">Čas posledného bolusu: pred %1$s %2$s min </string>
<string name="triggercoblabel">COB</string> <string name="triggercoblabel">COB</string>

View file

@ -9,7 +9,7 @@ buildscript {
rxkotlin_version = '2.4.0' rxkotlin_version = '2.4.0'
room_version = '2.3.0' room_version = '2.3.0'
lifecycle_version = '2.3.1' lifecycle_version = '2.3.1'
dagger_version = '2.39' dagger_version = '2.39.1'
coroutinesVersion = '1.4.1' coroutinesVersion = '1.4.1'
activityVersion = '1.3.1' activityVersion = '1.3.1'
fragmentktx_version = '1.3.6' fragmentktx_version = '1.3.6'

View file

@ -10,6 +10,7 @@ class EventPumpStatusChanged : EventStatus {
CONNECTED, CONNECTED,
HANDSHAKING, HANDSHAKING,
PERFORMING, PERFORMING,
WAITING_FOR_DISCONNECTION,
DISCONNECTING, DISCONNECTING,
DISCONNECTED DISCONNECTED
} }
@ -46,12 +47,13 @@ class EventPumpStatusChanged : EventStatus {
// status for startup wizard // status for startup wizard
override fun getStatus(resourceHelper: ResourceHelper): String { override fun getStatus(resourceHelper: ResourceHelper): String {
return when (status) { return when (status) {
Status.CONNECTING -> String.format(resourceHelper.gs(R.string.connectingfor), secondsElapsed) Status.CONNECTING -> String.format(resourceHelper.gs(R.string.connectingfor), secondsElapsed)
Status.HANDSHAKING -> resourceHelper.gs(R.string.handshaking) Status.HANDSHAKING -> resourceHelper.gs(R.string.handshaking)
Status.CONNECTED -> resourceHelper.gs(R.string.connected) Status.CONNECTED -> resourceHelper.gs(R.string.connected)
Status.PERFORMING -> performingAction Status.PERFORMING -> performingAction
Status.DISCONNECTING -> resourceHelper.gs(R.string.disconnecting) Status.WAITING_FOR_DISCONNECTION -> resourceHelper.gs(R.string.waiting_for_disconnection)
Status.DISCONNECTED -> "" Status.DISCONNECTING -> resourceHelper.gs(R.string.disconnecting)
Status.DISCONNECTED -> ""
} }
} }
} }

View file

@ -237,7 +237,10 @@ class AutosensDataStore {
} }
val newBucketedData = ArrayList<InMemoryGlucoseValue>() val newBucketedData = ArrayList<InMemoryGlucoseValue>()
var currentTime = bgReadings[0].timestamp - bgReadings[0].timestamp % T.mins(5).msecs() var currentTime = bgReadings[0].timestamp - bgReadings[0].timestamp % T.mins(5).msecs()
currentTime = adjustToReferenceTime(currentTime) val adjustedTime = adjustToReferenceTime(currentTime)
// after adjusting time may be newer. In this case use T-5min
if (adjustedTime > currentTime) currentTime = adjustedTime - T.mins(5).msecs()
else currentTime = adjustedTime
aapsLogger.debug("Adjusted time " + dateUtil.dateAndTimeAndSecondsString(currentTime)) aapsLogger.debug("Adjusted time " + dateUtil.dateAndTimeAndSecondsString(currentTime))
//log.debug("First reading: " + new Date(currentTime).toLocaleString()); //log.debug("First reading: " + new Date(currentTime).toLocaleString());
while (true) { while (true) {

View file

@ -196,6 +196,7 @@
<string name="careportal_openapsoffline">OpenAPS vypnuto</string> <string name="careportal_openapsoffline">OpenAPS vypnuto</string>
<string name="careportal_pumpbatterychange">Výměna baterie pumpy</string> <string name="careportal_pumpbatterychange">Výměna baterie pumpy</string>
<string name="careportal_temporarytarget">Dočasný cíl</string> <string name="careportal_temporarytarget">Dočasný cíl</string>
<string name="careportal_temporarytargetvalue">Hodnota dočasného cíle</string>
<string name="careportal_temporarytargetcancel">Dočasný cíl konec</string> <string name="careportal_temporarytargetcancel">Dočasný cíl konec</string>
<string name="boluswizard">Bolusová kalkulačka</string> <string name="boluswizard">Bolusová kalkulačka</string>
<string name="glucosetype_finger">Glukoměr</string> <string name="glucosetype_finger">Glukoměr</string>

View file

@ -196,6 +196,7 @@
<string name="careportal_openapsoffline">OpenAPS offline</string> <string name="careportal_openapsoffline">OpenAPS offline</string>
<string name="careportal_pumpbatterychange">Pumpenbatterie-Wechsel</string> <string name="careportal_pumpbatterychange">Pumpenbatterie-Wechsel</string>
<string name="careportal_temporarytarget">Temporäres Ziel</string> <string name="careportal_temporarytarget">Temporäres Ziel</string>
<string name="careportal_temporarytargetvalue">Temporärer Zielwert</string>
<string name="careportal_temporarytargetcancel">Temporäres Ziel abbrechen</string> <string name="careportal_temporarytargetcancel">Temporäres Ziel abbrechen</string>
<string name="boluswizard">Bolus-Rechner</string> <string name="boluswizard">Bolus-Rechner</string>
<string name="glucosetype_finger">Finger</string> <string name="glucosetype_finger">Finger</string>

View file

@ -196,6 +196,7 @@
<string name="careportal_openapsoffline">OpenAPS hors ligne</string> <string name="careportal_openapsoffline">OpenAPS hors ligne</string>
<string name="careportal_pumpbatterychange">Changement pile pompe</string> <string name="careportal_pumpbatterychange">Changement pile pompe</string>
<string name="careportal_temporarytarget">Cible Temp</string> <string name="careportal_temporarytarget">Cible Temp</string>
<string name="careportal_temporarytargetvalue">Valeur de Cible Temporaire</string>
<string name="careportal_temporarytargetcancel">Annuler Cible Temporaire</string> <string name="careportal_temporarytargetcancel">Annuler Cible Temporaire</string>
<string name="boluswizard">Assistant Bolus</string> <string name="boluswizard">Assistant Bolus</string>
<string name="glucosetype_finger">Doigt</string> <string name="glucosetype_finger">Doigt</string>
@ -385,6 +386,20 @@
<string name="uel_loop_removed">BOUCLE SUPPRIMÉE</string> <string name="uel_loop_removed">BOUCLE SUPPRIMÉE</string>
<string name="uel_other">AUTRE</string> <string name="uel_other">AUTRE</string>
<!-- HardLimits --> <!-- HardLimits -->
<string name="profile_low_target">Cible basse du profil</string>
<string name="profile_high_target">Cible haute du profil</string>
<string name="temp_target_low_target">Valeur basse de Cible Temp.</string>
<string name="temp_target_high_target">Valeur haute de Cible Temp.</string>
<string name="temp_target_value">Valeur de Cible Temporaire</string>
<string name="profile_dia">Valeur DAI du profil</string>
<string name="profile_sensitivity_value">Valeur de sensibilité du profil</string>
<string name="profile_max_daily_basal_value">Basale maximale du profil</string>
<string name="current_basal_value">Basale actuelle</string>
<string name="profile_carbs_ratio_value">Rapport glucides/insuline de profil</string>
<string name="valuelimitedto">%1$.2f limité à %2$.2f</string>
<string name="valueoutofrange">\"%1$s\" est en dehors des limites</string>
<string name="value_out_of_hard_limits">\"%1$s\" %2$.2f est en dehors des limites</string>
<string name="basal_value">Valeur de Basal</string>
<plurals name="days"> <plurals name="days">
<item quantity="one">%1$d jour</item> <item quantity="one">%1$d jour</item>
<item quantity="other">%1$d jours</item> <item quantity="other">%1$d jours</item>

View file

@ -196,6 +196,7 @@
<string name="careportal_openapsoffline">OpenAPS במצב לא מקוון</string> <string name="careportal_openapsoffline">OpenAPS במצב לא מקוון</string>
<string name="careportal_pumpbatterychange">החלפת סוללת משאבה</string> <string name="careportal_pumpbatterychange">החלפת סוללת משאבה</string>
<string name="careportal_temporarytarget">ערך מטרה זמני</string> <string name="careportal_temporarytarget">ערך מטרה זמני</string>
<string name="careportal_temporarytargetvalue">ערך המטרה הזמני</string>
<string name="careportal_temporarytargetcancel">ביטול ערך מטרה זמני</string> <string name="careportal_temporarytargetcancel">ביטול ערך מטרה זמני</string>
<string name="boluswizard">אשף בולוס</string> <string name="boluswizard">אשף בולוס</string>
<string name="glucosetype_finger">אצבע</string> <string name="glucosetype_finger">אצבע</string>

View file

@ -196,6 +196,7 @@
<string name="careportal_openapsoffline">OpenAPS vypnuté</string> <string name="careportal_openapsoffline">OpenAPS vypnuté</string>
<string name="careportal_pumpbatterychange">Výmena batérie v pumpe</string> <string name="careportal_pumpbatterychange">Výmena batérie v pumpe</string>
<string name="careportal_temporarytarget">Dočasný cieľ</string> <string name="careportal_temporarytarget">Dočasný cieľ</string>
<string name="careportal_temporarytargetvalue">Hodnota dočasného cieľa</string>
<string name="careportal_temporarytargetcancel">Zrušiť dočasný cieľ</string> <string name="careportal_temporarytargetcancel">Zrušiť dočasný cieľ</string>
<string name="boluswizard">Bolusová kalkulačka</string> <string name="boluswizard">Bolusová kalkulačka</string>
<string name="glucosetype_finger">Prst</string> <string name="glucosetype_finger">Prst</string>
@ -385,6 +386,20 @@
<string name="uel_loop_removed">UZAVRETÝ OKRUH ODSTRÁNENÝ</string> <string name="uel_loop_removed">UZAVRETÝ OKRUH ODSTRÁNENÝ</string>
<string name="uel_other">INÉ</string> <string name="uel_other">INÉ</string>
<!-- HardLimits --> <!-- HardLimits -->
<string name="profile_low_target">Dolný cieľ profilu</string>
<string name="profile_high_target">Horný cieľ profilu</string>
<string name="temp_target_low_target">Dolná hodnota dočasného cieľa</string>
<string name="temp_target_high_target">Horná hodnota dočasného cieľa</string>
<string name="temp_target_value">Hodnota dočasného cieľa</string>
<string name="profile_dia">Profilová hodnota DIA</string>
<string name="profile_sensitivity_value">Profilová hodnota citlivosti</string>
<string name="profile_max_daily_basal_value">Profilová maximálna hodnota bazálu</string>
<string name="current_basal_value">Aktuálna hodnota bazálu</string>
<string name="profile_carbs_ratio_value">Profilový inzulino-sacharidový pomer</string>
<string name="valuelimitedto">%1$.2f obmedzené na %2$.2f</string>
<string name="valueoutofrange">»%1$s« je mimo pevne nastavené limity</string>
<string name="value_out_of_hard_limits">»%1$s« %2$.2f je mimo pevne nastavených limitov</string>
<string name="basal_value">Hodnota bazálu</string>
<plurals name="days"> <plurals name="days">
<item quantity="one">%1$d deň</item> <item quantity="one">%1$d deň</item>
<item quantity="few">%1$d dní</item> <item quantity="few">%1$d dní</item>

View file

@ -12,7 +12,7 @@
<color name="black_overlay">#66000000</color> <color name="black_overlay">#66000000</color>
<!-- Fragments--> <!-- Fragments-->
<color name="colorInitializingBorder">#00695c</color> <color name="pumpStatusBackground">#505050</color>
<!-- Dialogs--> <!-- Dialogs-->
<color name="dialog_title_background">#303030</color> <color name="dialog_title_background">#303030</color>

View file

@ -81,6 +81,7 @@
<string name="connected">Connected</string> <string name="connected">Connected</string>
<string name="disconnected">Disconnected</string> <string name="disconnected">Disconnected</string>
<string name="disconnecting">Disconnecting</string> <string name="disconnecting">Disconnecting</string>
<string name="waiting_for_disconnection">Waiting for disconnection</string>
<string name="androidaps_start">AndroidAPS started</string> <string name="androidaps_start">AndroidAPS started</string>
<string name="formatinsulinunits1">%1$.1f U</string> <string name="formatinsulinunits1">%1$.1f U</string>
<string name="formatinsulinunits">%1$.2f U</string> <string name="formatinsulinunits">%1$.2f U</string>
@ -289,6 +290,8 @@
<string name="loop">Loop</string> <string name="loop">Loop</string>
<string name="ns">NS</string> <string name="ns">NS</string>
<string name="record">Record</string> <string name="record">Record</string>
<string name="reading_pump_history">Reading pump history</string>
<string name="pump_icon">Pump icon</string>
<!-- Command--> <!-- Command-->
<string name="connectiontimedout">Connection timed out</string> <string name="connectiontimedout">Connection timed out</string>

View file

@ -64,6 +64,8 @@ class DanaFragment : DaggerFragment() {
private val loopHandler = Handler(Looper.getMainLooper()) private val loopHandler = Handler(Looper.getMainLooper())
private lateinit var refreshLoop: Runnable private lateinit var refreshLoop: Runnable
private var pumpStatus = ""
private var pumpStatusIcon = "{fa-bluetooth-b}"
private var _binding: DanarFragmentBinding? = null private var _binding: DanarFragmentBinding? = null
@ -87,10 +89,8 @@ class DanaFragment : DaggerFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
binding.danaPumpstatus.setBackgroundColor(resourceHelper.gc(R.color.colorInitializingBorder))
binding.history.setOnClickListener { startActivity(Intent(context, DanaHistoryActivity::class.java)) } binding.history.setOnClickListener { startActivity(Intent(context, DanaHistoryActivity::class.java)) }
binding.viewprofile.setOnClickListener { binding.viewProfile.setOnClickListener {
val profile = danaPump.createConvertedProfile()?.getDefaultProfileJson() val profile = danaPump.createConvertedProfile()?.getDefaultProfileJson()
?: return@setOnClickListener ?: return@setOnClickListener
val profileName = danaPump.createConvertedProfile()?.getDefaultProfileName() val profileName = danaPump.createConvertedProfile()?.getDefaultProfileName()
@ -152,31 +152,25 @@ class DanaFragment : DaggerFragment() {
.toObservable(EventPumpStatusChanged::class.java) .toObservable(EventPumpStatusChanged::class.java)
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
.subscribe({ .subscribe({
when (it.status) { pumpStatusIcon = when (it.status) {
EventPumpStatusChanged.Status.CONNECTING -> EventPumpStatusChanged.Status.CONNECTING ->
@Suppress("SetTextI18n") "{fa-bluetooth-b spin} ${it.secondsElapsed}s"
binding.btconnection.text = "{fa-bluetooth-b spin} ${it.secondsElapsed}s"
EventPumpStatusChanged.Status.CONNECTED -> EventPumpStatusChanged.Status.CONNECTED ->
@Suppress("SetTextI18n") "{fa-bluetooth}"
binding.btconnection.text = "{fa-bluetooth}"
EventPumpStatusChanged.Status.DISCONNECTED -> EventPumpStatusChanged.Status.DISCONNECTED ->
@Suppress("SetTextI18n") "{fa-bluetooth-b}"
binding.btconnection.text = "{fa-bluetooth-b}"
else -> { else ->
} "{fa-bluetooth-b}"
}
if (it.getStatus(resourceHelper) != "") {
binding.danaPumpstatus.text = it.getStatus(resourceHelper)
binding.danaPumpstatuslayout.visibility = View.VISIBLE
} else {
binding.danaPumpstatuslayout.visibility = View.GONE
} }
binding.btconnection.text = pumpStatusIcon
pumpStatus = it.getStatus(resourceHelper)
binding.pumpStatus.text = pumpStatus
binding.pumpStatusLayout.visibility = (pumpStatus != "").toVisibility()
}, fabricPrivacy::logException) }, fabricPrivacy::logException)
binding.danaPumpstatus.text = ""
binding.danaPumpstatuslayout.visibility = View.GONE pumpStatus = ""
@Suppress("SetTextI18n") pumpStatusIcon = "{fa-bluetooth-b}"
binding.btconnection.text = "{fa-bluetooth-b}"
updateGUI() updateGUI()
} }
@ -185,6 +179,8 @@ class DanaFragment : DaggerFragment() {
super.onPause() super.onPause()
disposable.clear() disposable.clear()
loopHandler.removeCallbacks(refreshLoop) loopHandler.removeCallbacks(refreshLoop)
pumpStatus = ""
pumpStatusIcon = "{fa-bluetooth-b}"
} }
@Synchronized @Synchronized
@ -197,6 +193,11 @@ class DanaFragment : DaggerFragment() {
@Synchronized @Synchronized
fun updateGUI() { fun updateGUI() {
if (_binding == null) return if (_binding == null) return
binding.btconnection.text = pumpStatusIcon
binding.pumpStatus.text = pumpStatus
binding.pumpStatusLayout.visibility = (pumpStatus != "").toVisibility()
binding.queue.text = commandQueue.spannedStatus()
binding.queueStatusLayout.visibility = (commandQueue.spannedStatus().toString() != "").toVisibility()
val pump = danaPump val pump = danaPump
val plugin: Pump = activePlugin.activePump val plugin: Pump = activePlugin.activePump
if (pump.lastConnection != 0L) { if (pump.lastConnection != 0L) {
@ -225,18 +226,9 @@ class DanaFragment : DaggerFragment() {
warnColors.setColorInverse(binding.reservoir, pump.reservoirRemainingUnits, 50.0, 20.0) warnColors.setColorInverse(binding.reservoir, pump.reservoirRemainingUnits, 50.0, 20.0)
binding.battery.text = "{fa-battery-" + pump.batteryRemaining / 25 + "}" binding.battery.text = "{fa-battery-" + pump.batteryRemaining / 25 + "}"
warnColors.setColorInverse(binding.battery, pump.batteryRemaining.toDouble(), 51.0, 26.0) warnColors.setColorInverse(binding.battery, pump.batteryRemaining.toDouble(), 51.0, 26.0)
binding.iob.text = resourceHelper.gs(R.string.formatinsulinunits, pump.iob)
binding.firmware.text = resourceHelper.gs(R.string.dana_model, pump.modelFriendlyName(), pump.hwModel, pump.protocol, pump.productCode) binding.firmware.text = resourceHelper.gs(R.string.dana_model, pump.modelFriendlyName(), pump.hwModel, pump.protocol, pump.productCode)
binding.basalstep.text = pump.basalStep.toString() binding.basalBolusStep.text = pump.basalStep.toString() + "/" + pump.bolusStep.toString()
binding.bolusstep.text = pump.bolusStep.toString()
binding.serialNumber.text = pump.serialNumber binding.serialNumber.text = pump.serialNumber
val status = commandQueue.spannedStatus()
if (status.toString() == "") {
binding.queue.visibility = View.GONE
} else {
binding.queue.visibility = View.VISIBLE
binding.queue.text = status
}
val icon = if (danaPump.pumpType() == PumpType.DANA_I) R.drawable.ic_dana_i else R.drawable.ic_dana_rs val icon = if (danaPump.pumpType() == PumpType.DANA_I) R.drawable.ic_dana_i else R.drawable.ic_dana_rs
binding.danaIcon.setImageDrawable(context?.let { ContextCompat.getDrawable(it, icon) }) binding.danaIcon.setImageDrawable(context?.let { ContextCompat.getDrawable(it, icon) })
//hide user options button if not an RS pump or old firmware //hide user options button if not an RS pump or old firmware

File diff suppressed because it is too large Load diff

View file

@ -28,7 +28,7 @@
android:contentDescription="@string/pumphistory" android:contentDescription="@string/pumphistory"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_danarhistory" /> app:srcCompat="@drawable/ic_pump_history" />
<TextView <TextView
android:id="@+id/textView2" android:id="@+id/textView2"

View file

@ -108,8 +108,6 @@
<string name="profile_set_failed">Setting of basal profile failed</string> <string name="profile_set_failed">Setting of basal profile failed</string>
<string name="danar_bluetooth_status">Bluetooth status</string> <string name="danar_bluetooth_status">Bluetooth status</string>
<string name="danar_iob_label">Pump IOB</string> <string name="danar_iob_label">Pump IOB</string>
<string name="basal_step">Basal Step</string>
<string name="bolus_step">Bolus Step</string>
<string name="virtualpump_firmware_label">Firmware</string> <string name="virtualpump_firmware_label">Firmware</string>
<string name="danar_pump_settings">Dana pump settings</string> <string name="danar_pump_settings">Dana pump settings</string>
<string name="timeformat12h">12h</string> <string name="timeformat12h">12h</string>
@ -131,5 +129,6 @@
<string name="press_ok_on_the_pump">Press OK on the pump\nand enter 2 displayed numbers\nKeep display on pump ON by pressing minus button until you finish entering code.</string> <string name="press_ok_on_the_pump">Press OK on the pump\nand enter 2 displayed numbers\nKeep display on pump ON by pressing minus button until you finish entering code.</string>
<string name="num1pin">1: (12 digits)</string> <string name="num1pin">1: (12 digits)</string>
<string name="num2pin">2: (8 digits)</string> <string name="num2pin">2: (8 digits)</string>
<string name="basal_bolus_step">Basal/bolus step</string>
</resources> </resources>

View file

@ -190,6 +190,7 @@ class DanaRSService : DaggerService() {
aapsLogger.debug(LTag.PUMPCOMM, "Pump time difference: $timeDiff seconds") aapsLogger.debug(LTag.PUMPCOMM, "Pump time difference: $timeDiff seconds")
} }
} }
rxBus.send(EventPumpStatusChanged(resourceHelper.gs(R.string.reading_pump_history)))
loadEvents() loadEvents()
// RS doesn't provide exact timestamp = rely on history // RS doesn't provide exact timestamp = rely on history
val eb = pumpSync.expectedPumpState().extendedBolus val eb = pumpSync.expectedPumpState().extendedBolus

View file

@ -10,6 +10,8 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import dagger.android.support.DaggerFragment import dagger.android.support.DaggerFragment
import info.nightscout.androidaps.activities.TDDStatsActivity import info.nightscout.androidaps.activities.TDDStatsActivity
import info.nightscout.androidaps.diaconn.activities.DiaconnG8HistoryActivity
import info.nightscout.androidaps.diaconn.activities.DiaconnG8UserOptionsActivity
import info.nightscout.androidaps.diaconn.databinding.DiaconnG8FragmentBinding import info.nightscout.androidaps.diaconn.databinding.DiaconnG8FragmentBinding
import info.nightscout.androidaps.diaconn.events.EventDiaconnG8NewStatus import info.nightscout.androidaps.diaconn.events.EventDiaconnG8NewStatus
import info.nightscout.androidaps.events.EventExtendedBolusChange import info.nightscout.androidaps.events.EventExtendedBolusChange
@ -74,10 +76,9 @@ class DiaconnG8Fragment : DaggerFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
binding.diaconnG8Pumpstatus.setBackgroundColor(resourceHelper.gc(R.color.colorInitializingBorder)) binding.history.setOnClickListener { startActivity(Intent(context, DiaconnG8HistoryActivity::class.java)) }
binding.history.setOnClickListener { startActivity(Intent(context, info.nightscout.androidaps.diaconn.activities.DiaconnG8HistoryActivity::class.java)) }
binding.stats.setOnClickListener { startActivity(Intent(context, TDDStatsActivity::class.java)) } binding.stats.setOnClickListener { startActivity(Intent(context, TDDStatsActivity::class.java)) }
binding.userOptions.setOnClickListener { startActivity(Intent(context, info.nightscout.androidaps.diaconn.activities.DiaconnG8UserOptionsActivity::class.java)) } binding.userOptions.setOnClickListener { startActivity(Intent(context, DiaconnG8UserOptionsActivity::class.java)) }
binding.btconnection.setOnClickListener { binding.btconnection.setOnClickListener {
aapsLogger.debug(LTag.PUMP, "Clicked connect to pump") aapsLogger.debug(LTag.PUMP, "Clicked connect to pump")
diaconnG8Pump.lastConnection = 0 diaconnG8Pump.lastConnection = 0

View file

@ -36,6 +36,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"
android:layout_marginRight="5dp" android:layout_marginRight="5dp"
android:background="@color/pumpStatusBackground"
android:gravity="center_vertical|center_horizontal" android:gravity="center_vertical|center_horizontal"
android:text="@string/initializing" android:text="@string/initializing"
android:textAppearance="?android:attr/textAppearanceSmall" /> android:textAppearance="?android:attr/textAppearanceSmall" />
@ -678,7 +679,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" android:layout_weight="1"
android:drawableTop="@drawable/ic_danarhistory" android:drawableTop="@drawable/ic_pump_history"
android:paddingLeft="0dp" android:paddingLeft="0dp"
android:paddingRight="0dp" android:paddingRight="0dp"
android:text="@string/pumphistory" /> android:text="@string/pumphistory" />

View file

@ -21,7 +21,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:contentDescription="@string/pumphistory" android:contentDescription="@string/pumphistory"
app:srcCompat="@drawable/ic_danarhistory" /> app:srcCompat="@drawable/ic_pump_history" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -63,6 +63,38 @@
<string name="diaconn_g8_pumpalarmlevel">Hlasitosť alarmu</string> <string name="diaconn_g8_pumpalarmlevel">Hlasitosť alarmu</string>
<string name="diaconn_g8_pumpalarm_intensity_low">nízka</string> <string name="diaconn_g8_pumpalarm_intensity_low">nízka</string>
<string name="diaconn_g8_pumpalarm_intensity_middle">stredná</string> <string name="diaconn_g8_pumpalarm_intensity_middle">stredná</string>
<string name="diaconn_g8_pumpalarm_intensity_high">vysoká</string>
<string name="diaconn_g8_screentimeout">Čas pred vypnutím displeja [sekundy]</string>
<string name="diaconn_g8_saveuseroptions">ULOŽIŤ NASTAVENIA DO PUMPY</string>
<string name="diaconn_g8_language">Jazyk</string>
<string name="diaconn_g8_bolus_speed">Rýchlosť bolusu</string>
<string name="diaconn_g8_pumplang_chiness">Čínština</string>
<string name="diaconn_g8_pumplang_korean">Kórejčina</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ízka</string>
<string name="injectionblocked">Zablokované vydávanie</string>
<string name="batterywarning">Upozornenie na nízky stav batérie</string>
<string name="insulinlackwarning">Upozornenie na nedostatok inzulínu</string>
<string name="needbatteryreplace">Je požadovaná výmena batérie</string>
<string name="needinsullinreplace">Je požadovaná výmena 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">Zaznamenať výmenu zásobníka</string>
<string name="diaconn_g8_loginsulinchange_summary">Pridať udalosť \"Výmena inzulínu\" do portálu starostlivosti, pokiaľ je zistená v histórii</string>
<string name="diaconn_g8_logcanulachange_title">Zaznamenať výmenu kanyly</string>
<string name="diaconn_g8_logcanulachange_summary">Pridať udalosť \"Výmena setu\" do portálu starostlivosti, pokiaľ je zistená v histórii</string>
<string name="diaconn_g8_logbatterychange_summary">Pridať udalosť \"Výmena batérie\" do portálu starostlivosti, pokiaľ je zistená v histórii</string>
<string name="diaconn_g8_logbatterychange_title">Zaznamenať výmenu batérie</string>
<string name="diaconn_g8_logsyncinprogress">Prebieha synchronizácia logov</string>
<string name="diaconn_g8_loginsulinshorage">Nedostatok inzulínu</string>
<string name="diaconn_g8_logbatteryshorage">Slabá batéria</string>
<string name="diaconn_g8_logneedleprime">Plnenie ihly :%1$.2fJI</string>
<string name="diaconn_g8_logtubeprime">Plnenie hadičky :%1$.2fJI</string>
<string name="diaconn_g8_resetfactoryreset">Resetovať po obnovení na továrenské nastavenia</string> <string name="diaconn_g8_resetfactoryreset">Resetovať po obnovení na továrenské nastavenia</string>
<string name="diaconn_g8_resetemergencyoff">Resetovať po núdzovom vypnutí</string> <string name="diaconn_g8_resetemergencyoff">Resetovať po núdzovom vypnutí</string>
<string name="diaconn_g8_resetbatteryreplacement">Resetovať po výmene batérie</string> <string name="diaconn_g8_resetbatteryreplacement">Resetovať po výmene batérie</string>

View file

@ -90,8 +90,6 @@ class MedtronicFragment : DaggerFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
binding.pumpStatus.setBackgroundColor(resourceHelper.gc(R.color.colorInitializingBorder))
binding.rlStatus.text = resourceHelper.gs(RileyLinkServiceState.NotStarted.resourceId) binding.rlStatus.text = resourceHelper.gs(RileyLinkServiceState.NotStarted.resourceId)
binding.pumpStatusIcon.setTextColor(Color.WHITE) binding.pumpStatusIcon.setTextColor(Color.WHITE)

View file

@ -32,6 +32,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"
android:layout_marginRight="5dp" android:layout_marginRight="5dp"
android:background="@color/pumpStatusBackground"
android:gravity="center_vertical|center_horizontal" android:gravity="center_vertical|center_horizontal"
android:text="@string/initializing" android:text="@string/initializing"
android:textAppearance="?android:attr/textAppearanceSmall" /> android:textAppearance="?android:attr/textAppearanceSmall" />
@ -557,7 +558,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:drawableTop="@drawable/ic_danarhistory" android:drawableTop="@drawable/ic_pump_history"
android:paddingLeft="0dp" android:paddingLeft="0dp"
android:paddingRight="0dp" android:paddingRight="0dp"
android:text="@string/pumphistory" /> android:text="@string/pumphistory" />

View file

@ -111,6 +111,10 @@
<string name="omnipod_common_preferences_category_other">Jiné</string> <string name="omnipod_common_preferences_category_other">Jiné</string>
<string name="omnipod_common_preferences_category_alerts">Výstrahy</string> <string name="omnipod_common_preferences_category_alerts">Výstrahy</string>
<string name="omnipod_common_preferences_category_confirmation_beeps">Potvrzovací pípnutí</string> <string name="omnipod_common_preferences_category_confirmation_beeps">Potvrzovací pípnutí</string>
<string name="omnipod_common_preferences_category_notifications">Oznámení</string>
<string name="omnipod_common_preferences_notification_uncertain_tbr_sound_enabled">Zvuk pro nejistý dočasný bazál povolen</string>
<string name="omnipod_common_preferences_notification_uncertain_smb_sound_enabled">Zvuk oznámení pro nejisté SMB povoleno</string>
<string name="omnipod_common_preferences_notification_uncertain_bolus_sound_enabled">Zvuk oznámení pro nejistý bolus povolen</string>
<!-- Omnipod - Pod Status --> <!-- Omnipod - Pod Status -->
<string name="omnipod_common_pod_status_no_active_pod">Žádný aktivní Pod</string> <string name="omnipod_common_pod_status_no_active_pod">Žádný aktivní Pod</string>
<string name="omnipod_common_pod_status_waiting_for_activation">Probíhá nastavování (čeká se na aktivaci Podu)</string> <string name="omnipod_common_pod_status_waiting_for_activation">Probíhá nastavování (čeká se na aktivaci Podu)</string>

View file

@ -111,6 +111,10 @@
<string name="omnipod_common_preferences_category_other">Autres</string> <string name="omnipod_common_preferences_category_other">Autres</string>
<string name="omnipod_common_preferences_category_alerts">Alertes</string> <string name="omnipod_common_preferences_category_alerts">Alertes</string>
<string name="omnipod_common_preferences_category_confirmation_beeps">Bips de confirmation</string> <string name="omnipod_common_preferences_category_confirmation_beeps">Bips de confirmation</string>
<string name="omnipod_common_preferences_category_notifications">Notifications</string>
<string name="omnipod_common_preferences_notification_uncertain_tbr_sound_enabled">Son pour les notifications DBT incertains activé</string>
<string name="omnipod_common_preferences_notification_uncertain_smb_sound_enabled">Son pour les notifications SMB incertains activé</string>
<string name="omnipod_common_preferences_notification_uncertain_bolus_sound_enabled">Son pour les notifications bolus incertains activé</string>
<!-- Omnipod - Pod Status --> <!-- Omnipod - Pod Status -->
<string name="omnipod_common_pod_status_no_active_pod">Pas de Pod actif</string> <string name="omnipod_common_pod_status_no_active_pod">Pas de Pod actif</string>
<string name="omnipod_common_pod_status_waiting_for_activation">Configuration en cours (en attente d\'activation du Pod)</string> <string name="omnipod_common_pod_status_waiting_for_activation">Configuration en cours (en attente d\'activation du Pod)</string>

View file

@ -111,6 +111,8 @@
<string name="omnipod_common_preferences_category_other">Altro</string> <string name="omnipod_common_preferences_category_other">Altro</string>
<string name="omnipod_common_preferences_category_alerts">Avvisi</string> <string name="omnipod_common_preferences_category_alerts">Avvisi</string>
<string name="omnipod_common_preferences_category_confirmation_beeps">BIP di conferma</string> <string name="omnipod_common_preferences_category_confirmation_beeps">BIP di conferma</string>
<string name="omnipod_common_preferences_category_notifications">Notifiche</string>
<string name="omnipod_common_preferences_notification_uncertain_tbr_sound_enabled">Suono notifiche TBR incerto abilitato</string>
<!-- Omnipod - Pod Status --> <!-- Omnipod - Pod Status -->
<string name="omnipod_common_pod_status_no_active_pod">Nessun pod attivo</string> <string name="omnipod_common_pod_status_no_active_pod">Nessun pod attivo</string>
<string name="omnipod_common_pod_status_waiting_for_activation">Configurazione in corso (attesa attivazione pod)</string> <string name="omnipod_common_pod_status_waiting_for_activation">Configurazione in corso (attesa attivazione pod)</string>

View file

@ -111,6 +111,10 @@
<string name="omnipod_common_preferences_category_other">Iné</string> <string name="omnipod_common_preferences_category_other">Iné</string>
<string name="omnipod_common_preferences_category_alerts">Výstrahy</string> <string name="omnipod_common_preferences_category_alerts">Výstrahy</string>
<string name="omnipod_common_preferences_category_confirmation_beeps">Potvrdzovacie pípnutia</string> <string name="omnipod_common_preferences_category_confirmation_beeps">Potvrdzovacie pípnutia</string>
<string name="omnipod_common_preferences_category_notifications">Notifikácie</string>
<string name="omnipod_common_preferences_notification_uncertain_tbr_sound_enabled">Zvuk upozornenia pre neistý dočasný bazál povolený</string>
<string name="omnipod_common_preferences_notification_uncertain_smb_sound_enabled">Zvuk upozornenia pre neistý SMB povolený</string>
<string name="omnipod_common_preferences_notification_uncertain_bolus_sound_enabled">Zvuk upozornenia pre neistý bolus povolený</string>
<!-- Omnipod - Pod Status --> <!-- Omnipod - Pod Status -->
<string name="omnipod_common_pod_status_no_active_pod">Žiadny aktívny Pod</string> <string name="omnipod_common_pod_status_no_active_pod">Žiadny aktívny Pod</string>
<string name="omnipod_common_pod_status_waiting_for_activation">Prebieha inštalácia (čaká sa na aktiváciu Podu)</string> <string name="omnipod_common_pod_status_waiting_for_activation">Prebieha inštalácia (čaká sa na aktiváciu Podu)</string>

View file

@ -4,6 +4,18 @@
<string name="omnipod_dash_pump_description">Intégration de la pompe Omnipod Dash (le nouveau modèle Bluetooth, avec un bouchon d\'aiguille bleue).</string> <string name="omnipod_dash_pump_description">Intégration de la pompe Omnipod Dash (le nouveau modèle Bluetooth, avec un bouchon d\'aiguille bleue).</string>
<!-- Omnipod Dash - Keys --> <!-- Omnipod Dash - Keys -->
<!-- Omnipod Dash - Overview --> <!-- Omnipod Dash - Overview -->
<string name="omnipod_dash_overview_bluetooth_status">État Bluetooth</string>
<string name="omnipod_dash_overview_bluetooth_address">Adresse Bluetooth</string>
<string name="omnipod_dash_overview_firmware_version_value">Firmware %1$s / Bluetooth %2$s</string>
<string name="omnipod_dash_overview_bluetooth_connection_quality">Qualité de connexion</string>
<string name="omnipod_dash_overview_delivery_status">État de l\'injection</string>
<!-- Omnipod Dash - Pod Activation Wizard --> <!-- Omnipod Dash - Pod Activation Wizard -->
<string name="omnipod_dash_pod_activation_wizard_start_pod_activation_text">Remplissez avec suffisamment d\'insuline pour 3 jours.\n\nVous devez entendre deux bips lors du remplissage du Pod. Ils indiquent que la quantité minimale de 85u a été ajouté. Assurez-vous de vider complètement la seringue de remplissage après avoir entendu les deux bips.\n\nAprès le remplissage du Pod, vous pouvez presser<b>Suivant</b>\n\n<b>Remarque :</b>N\'enlever pas la protection de l\'aiguille du Pod à cette étape.</string>
<string name="omnipod_dash_pod_activation_wizard_initialize_pod_text">Tentative d\'appairage de d\'amorçage du nouveau Pod.\n\nUne fois le processus d\'initialisation terminé avec succès, vous pouvez appuyer sur <b>Suivant</b>.</string>
<string name="omnipod_common_preferences_notification_delivery_suspended_sound_enabled">Son activé en cas de notification de pause d\'injection</string>
<!-- Exceptions --> <!-- Exceptions -->
<string name="omnipod_dash_failed_to_connect">Echec de connexion au pod</string>
<string name="omnipod_dash_found_too_many_pods">Trop de pods trouvés pour l\'activation</string>
<string name="omnipod_dash_scan_failed">Impossible de trouver un pod disponible pour l\'activation</string>
<string name="omnipod_dash_generic_error">Erreur générique : %1$s</string>
</resources> </resources>

View file

@ -4,6 +4,15 @@
<string name="omnipod_dash_pump_description">Integrazione del microinfusore Omnipod Dash (il nuovo modello, abilitato al Bluetooth e con la protezione ago di colore blu).</string> <string name="omnipod_dash_pump_description">Integrazione del microinfusore Omnipod Dash (il nuovo modello, abilitato al Bluetooth e con la protezione ago di colore blu).</string>
<!-- Omnipod Dash - Keys --> <!-- Omnipod Dash - Keys -->
<!-- Omnipod Dash - Overview --> <!-- Omnipod Dash - Overview -->
<string name="omnipod_dash_overview_bluetooth_status">Stato bluetooth</string>
<string name="omnipod_dash_overview_bluetooth_address">Indirizzo bluetooth</string>
<string name="omnipod_dash_overview_firmware_version_value">Firmware %1$s / Bluetooth %2$s</string>
<string name="omnipod_dash_overview_bluetooth_connection_quality">Qualità connessione</string>
<string name="omnipod_dash_overview_delivery_status">Stato erogazione</string>
<!-- Omnipod Dash - Pod Activation Wizard --> <!-- Omnipod Dash - Pod Activation Wizard -->
<!-- Exceptions --> <!-- Exceptions -->
<string name="omnipod_dash_failed_to_connect">Impossibile connettersi al pod</string>
<string name="omnipod_dash_found_too_many_pods">Trovati troppi pod per l\'attivazione</string>
<string name="omnipod_dash_scan_failed">Nessun pod disponibile per l\'attivazione</string>
<string name="omnipod_dash_generic_error">Errore generico: %1$s</string>
</resources> </resources>

View file

@ -4,6 +4,18 @@
<string name="omnipod_dash_pump_description">Integrácia pumpy pre Omnipod Dash (nový model s funkciou Bluetooth a modrým krytom).</string> <string name="omnipod_dash_pump_description">Integrácia pumpy pre Omnipod Dash (nový model s funkciou Bluetooth a modrým krytom).</string>
<!-- Omnipod Dash - Keys --> <!-- Omnipod Dash - Keys -->
<!-- Omnipod Dash - Overview --> <!-- Omnipod Dash - Overview -->
<string name="omnipod_dash_overview_bluetooth_status">Stav Bluetooth</string>
<string name="omnipod_dash_overview_bluetooth_address">Adresa Bluetooth</string>
<string name="omnipod_dash_overview_firmware_version_value">Firmware %1$s / Bluetooth %2$s</string>
<string name="omnipod_dash_overview_bluetooth_connection_quality">Kvalita pripojenia</string>
<string name="omnipod_dash_overview_delivery_status">Stav doručenia</string>
<!-- Omnipod Dash - Pod Activation Wizard --> <!-- Omnipod Dash - Pod Activation Wizard -->
<string name="omnipod_dash_pod_activation_wizard_start_pod_activation_text">Naplňte nový Pod dostatkom inzulínu na 3 dni.\n\nČakajte na dve pípnutia z Podu v priebehu procesu plnenia. Tieto indikujú, že minimálne množstvo 85U bolo naplnené. Uistite sa, že striekačka je úplne vyprázdnená a to aj po vypočutí dvoch pípnutí.\n\nPo naplnení Podu, prosím, stlačte <b>Ďalšia</b>.\n\n<b>Poznámka:</b> zatiaľ nesnímajte kryt z ihly Podu.</string>
<string name="omnipod_dash_pod_activation_wizard_initialize_pod_text">Systém sa snaží spárovať s novým Podom a naplniť ho.\n\nAkonáhle bude inicializační proces úspešne dokončený, môžete stlačiť tlačítko <b>Ďalšia</b>.</string>
<string name="omnipod_common_preferences_notification_delivery_suspended_sound_enabled">Zvuk oznámenia pri pozastavenom podávaní povolený</string>
<!-- Exceptions --> <!-- Exceptions -->
<string name="omnipod_dash_failed_to_connect">Nepodarilo sa pripojiť k Podu</string>
<string name="omnipod_dash_found_too_many_pods">Našlo sa príliš veľa Podov na aktiváciu</string>
<string name="omnipod_dash_scan_failed">Nemôžem nájsť dostupný Pod na aktiváciu</string>
<string name="omnipod_dash_generic_error">Všeobecná chyba: %1$s</string>
</resources> </resources>

View file

@ -2,9 +2,18 @@
<resources> <resources>
<string name="open_humans">Open Humans</string> <string name="open_humans">Open Humans</string>
<string name="open_humans_short">OH</string> <string name="open_humans_short">OH</string>
<string name="open_humans_description">Open Humans vám umožňuje nahrávať dáta vášho diabetu a darovať ich vedeckým projektom.</string>
<string name="logout">Odhlásiť</string> <string name="logout">Odhlásiť</string>
<string name="setup">Nastaviť</string>
<string name="setup_completed_info">Open Humans bol nastavený. Pokiaľ chcete prestať nahrávať, kliknite na \"Odhlásiť\".</string>
<string name="not_setup_info">Open Humans je momentálne neaktívny. Ak chcete začať nahrávať dáta, kliknite na tlačítko \"Nastaviť\".</string>
<string name="project_member_id">ID člena projektu: %1$s</string>
<string name="only_upload_if_connected_to_wifi">Odoslať iba ak ste pripojený k Wi-Fi</string> <string name="only_upload_if_connected_to_wifi">Odoslať iba ak ste pripojený k Wi-Fi</string>
<string name="only_upload_if_charging">Odoslať iba pri nabíjaní</string> <string name="only_upload_if_charging">Odoslať iba pri nabíjaní</string>
<string name="open_humans_uploading">Nahrávanie na Open Humans…</string>
<string name="open_humans_notifications">Notifikácie Open Humans</string>
<string name="uploading_to_open_humans">AndroidAPS nahráva na Open Humans. To môže chvíľu trvať.</string>
<string name="you_have_been_signed_out_of_open_humans">Boli ste odhlásený z Open Humans</string> <string name="you_have_been_signed_out_of_open_humans">Boli ste odhlásený z Open Humans</string>
<string name="click_here_to_sign_in_again_if_this_wasnt_on_purpose">Kliknite sem, ak sa chcete prihlásiť znova, v prípade, že sa to stalo nedopatrením.</string> <string name="click_here_to_sign_in_again_if_this_wasnt_on_purpose">Kliknite sem, ak sa chcete prihlásiť znova, v prípade, že sa to stalo nedopatrením.</string>
<string name="upload_now">Nahrať teraz</string>
</resources> </resources>