Merge remote-tracking branch 'Nightscout/dev' into Autotune/TuneWeekDaysClean
This commit is contained in:
commit
efeeb8a467
108 changed files with 745 additions and 317 deletions
|
@ -0,0 +1,3 @@
|
|||
package info.nightscout.rx.events
|
||||
|
||||
class EventUpdateOverviewCalcProgress(val from: String) : Event()
|
|
@ -0,0 +1,3 @@
|
|||
package info.nightscout.rx.events
|
||||
|
||||
class EventUpdateOverviewGraph(val from: String) : Event()
|
|
@ -0,0 +1,3 @@
|
|||
package info.nightscout.rx.events
|
||||
|
||||
class EventUpdateOverviewIobCob(val from: String) : Event()
|
|
@ -0,0 +1,3 @@
|
|||
package info.nightscout.rx.events
|
||||
|
||||
class EventUpdateOverviewSensitivity(val from: String) : Event()
|
|
@ -6,5 +6,4 @@ import dagger.Module
|
|||
includes = [
|
||||
]
|
||||
)
|
||||
open class SharedModule {
|
||||
}
|
||||
open class SharedModule
|
|
@ -221,6 +221,7 @@ dependencies {
|
|||
implementation project(':pump:omnipod-common')
|
||||
implementation project(':pump:omnipod-eros')
|
||||
implementation project(':pump:omnipod-dash')
|
||||
implementation project(':workflow')
|
||||
|
||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||
|
||||
|
|
|
@ -14,21 +14,21 @@ import dagger.android.HasAndroidInjector
|
|||
import dagger.android.support.DaggerAppCompatActivity
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.databinding.ActivityHistorybrowseBinding
|
||||
import info.nightscout.core.events.EventIobCalculationProgress
|
||||
import info.nightscout.core.utils.fabric.FabricPrivacy
|
||||
import info.nightscout.core.workflow.CalculationWorkflow
|
||||
import info.nightscout.interfaces.Config
|
||||
import info.nightscout.interfaces.overview.OverviewMenus
|
||||
import info.nightscout.interfaces.plugin.ActivePlugin
|
||||
import info.nightscout.interfaces.profile.DefaultValueHelper
|
||||
import info.nightscout.plugins.general.overview.OverviewMenus
|
||||
import info.nightscout.plugins.general.overview.events.EventUpdateOverviewGraph
|
||||
import info.nightscout.plugins.general.overview.graphData.GraphData
|
||||
import info.nightscout.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress
|
||||
import info.nightscout.rx.AapsSchedulers
|
||||
import info.nightscout.rx.bus.RxBus
|
||||
import info.nightscout.rx.events.EventAutosensCalculationFinished
|
||||
import info.nightscout.rx.events.EventCustomCalculationFinished
|
||||
import info.nightscout.rx.events.EventRefreshOverview
|
||||
import info.nightscout.rx.events.EventScale
|
||||
import info.nightscout.rx.events.EventUpdateOverviewGraph
|
||||
import info.nightscout.rx.logging.AAPSLogger
|
||||
import info.nightscout.rx.logging.LTag
|
||||
import info.nightscout.shared.extensions.toVisibility
|
||||
|
|
|
@ -35,6 +35,7 @@ import info.nightscout.rx.di.RxModule
|
|||
import info.nightscout.shared.di.SharedModule
|
||||
import info.nightscout.shared.impl.di.SharedImplModule
|
||||
import info.nightscout.ui.di.UiModule
|
||||
import info.nightscout.workflow.di.WorkflowModule
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Singleton
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
package info.nightscout.androidaps.utils
|
||||
|
|
@ -19,8 +19,6 @@ import info.nightscout.core.workflow.CalculationWorkflow.Companion.MAIN_CALCULAT
|
|||
import info.nightscout.interfaces.iob.IobCobCalculator
|
||||
import info.nightscout.interfaces.plugin.ActivePlugin
|
||||
import info.nightscout.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin
|
||||
import info.nightscout.plugins.iob.iobCobCalculator.IobCobOref1Worker
|
||||
import info.nightscout.plugins.iob.iobCobCalculator.IobCobOrefWorker
|
||||
import info.nightscout.rx.AapsSchedulers
|
||||
import info.nightscout.rx.bus.RxBus
|
||||
import info.nightscout.rx.events.Event
|
||||
|
@ -33,6 +31,20 @@ import info.nightscout.rx.logging.AAPSLogger
|
|||
import info.nightscout.rx.logging.LTag
|
||||
import info.nightscout.shared.interfaces.ResourceHelper
|
||||
import info.nightscout.shared.utils.DateUtil
|
||||
import info.nightscout.workflow.DummyWorker
|
||||
import info.nightscout.workflow.InvokeLoopWorker
|
||||
import info.nightscout.workflow.LoadBgDataWorker
|
||||
import info.nightscout.workflow.PrepareBasalDataWorker
|
||||
import info.nightscout.workflow.PrepareBgDataWorker
|
||||
import info.nightscout.workflow.PrepareBucketedDataWorker
|
||||
import info.nightscout.workflow.PrepareIobAutosensGraphDataWorker
|
||||
import info.nightscout.workflow.PreparePredictionsWorker
|
||||
import info.nightscout.workflow.PrepareTemporaryTargetDataWorker
|
||||
import info.nightscout.workflow.PrepareTreatmentsDataWorker
|
||||
import info.nightscout.workflow.UpdateGraphWorker
|
||||
import info.nightscout.workflow.UpdateIobCobSensWorker
|
||||
import info.nightscout.workflow.iob.IobCobOref1Worker
|
||||
import info.nightscout.workflow.iob.IobCobOrefWorker
|
||||
import io.reactivex.rxjava3.disposables.CompositeDisposable
|
||||
import io.reactivex.rxjava3.kotlin.plusAssign
|
||||
import javax.inject.Inject
|
||||
|
|
|
@ -28,7 +28,7 @@ buildscript {
|
|||
tink_version = '1.7.0'
|
||||
json_version = '20220320'
|
||||
serialization_version = '1.4.1'
|
||||
joda_version = '2.12.1'
|
||||
joda_version = '2.12.1.1'
|
||||
swipe_version = '1.1.0'
|
||||
|
||||
junit_version = '4.13.2'
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.plugins.iob.iobCobCalculator.events
|
||||
package info.nightscout.core.events
|
||||
|
||||
import info.nightscout.core.workflow.CalculationWorkflow
|
||||
import info.nightscout.rx.events.Event
|
|
@ -6,15 +6,26 @@
|
|||
<string name="application_protection">Защита приложения</string>
|
||||
<string name="bolus_protection">Защита болюсов</string>
|
||||
<string name="settings_password">Пароль параметров</string>
|
||||
<string name="settings_pin">ПИН-код настроек</string>
|
||||
<string name="application_password">Пароль приложения</string>
|
||||
<string name="application_pin">PIN-код приложения</string>
|
||||
<string name="bolus_password">Пароль болюсов</string>
|
||||
<string name="bolus_pin">Пин-код болюса</string>
|
||||
<string name="protection_timeout_title">Тайм-аут удержания пароля и пин-кода [s]</string>
|
||||
<string name="protection_timeout_summary">Время до ввода пароля или PIN-кода</string>
|
||||
<string name="biometric">Биометрия</string>
|
||||
<string name="custom_password">Настраиваемый пароль</string>
|
||||
<string name="custom_pin">Настраиваемый пин-код</string>
|
||||
<string name="noprotection">Без защиты</string>
|
||||
<string name="unsecure_fallback_biometric">Небезопасный резервный вход</string>
|
||||
<string name="unsecure_fallback_descriotion_biometric">Биометрической защите требуется главный пароль для безопасности.\n\n Установите главный пароль!</string>
|
||||
<string name="password_set">Пароль задан!</string>
|
||||
<string name="pin_set">PIN-код установлен!</string>
|
||||
<string name="password_not_set">Пароль не задан</string>
|
||||
<string name="pin_not_set">PIN-код не задан</string>
|
||||
<string name="password_not_changed">Пароль не был изменён</string>
|
||||
<string name="pin_not_changed">PIN-код не изменён</string>
|
||||
<string name="pin_cleared">PIN-код очищен!</string>
|
||||
<string name="password_hint">Введите пароль здесь</string>
|
||||
<string name="pin_hint">Введите PIN-код здесь</string>
|
||||
</resources>
|
||||
|
|
|
@ -97,9 +97,7 @@ public class GraphView extends View {
|
|||
lastDown = 0;
|
||||
}
|
||||
} else if (event.getAction() == MotionEvent.ACTION_UP) {
|
||||
if (System.currentTimeMillis() - lastDown < 400) {
|
||||
return true;
|
||||
}
|
||||
return System.currentTimeMillis() - lastDown < 400;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ public interface LabelFormatter {
|
|||
* false if it is a value for the y axis
|
||||
* @return the formatted number as string
|
||||
*/
|
||||
public String formatLabel(double value, boolean isValueX);
|
||||
String formatLabel(double value, boolean isValueX);
|
||||
|
||||
/**
|
||||
* will be called in order to have a
|
||||
|
@ -50,5 +50,5 @@ public interface LabelFormatter {
|
|||
*
|
||||
* @param viewport the used viewport
|
||||
*/
|
||||
public void setViewport(Viewport viewport);
|
||||
void setViewport(Viewport viewport);
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ public class LegendRenderer {
|
|||
/**
|
||||
* wrapped styles
|
||||
*/
|
||||
private Styles mStyles;
|
||||
private final Styles mStyles;
|
||||
|
||||
/**
|
||||
* reference to the graphview
|
||||
|
@ -94,7 +94,7 @@ public class LegendRenderer {
|
|||
/**
|
||||
* paint for the drawing
|
||||
*/
|
||||
private Paint mPaint;
|
||||
private final Paint mPaint;
|
||||
|
||||
/**
|
||||
* cached legend width
|
||||
|
|
|
@ -53,7 +53,7 @@ public class SecondScale {
|
|||
* For the current version this is always
|
||||
* true.
|
||||
*/
|
||||
private boolean mYAxisBoundsManual = true;
|
||||
private final boolean mYAxisBoundsManual = true;
|
||||
|
||||
/**
|
||||
* min y value for the y axis bounds
|
||||
|
|
|
@ -37,5 +37,5 @@ public interface ValueDependentColor<T extends DataPointInterface> {
|
|||
* @return the color that the bar should be drawn with
|
||||
* Generate the int via the android.graphics.Color class.
|
||||
*/
|
||||
public int get(T data);
|
||||
int get(T data);
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ public class BarGraphSeries<E extends DataPointInterface> extends BaseSeries<E>
|
|||
/**
|
||||
* paint to do drawing on canvas
|
||||
*/
|
||||
private Paint mPaint;
|
||||
private final Paint mPaint;
|
||||
|
||||
/**
|
||||
* spacing between the bars in percentage.
|
||||
|
@ -83,7 +83,7 @@ public class BarGraphSeries<E extends DataPointInterface> extends BaseSeries<E>
|
|||
* stores the coordinates of the bars to
|
||||
* trigger tap on series events.
|
||||
*/
|
||||
private Map<RectF, E> mDataPoints = new HashMap<RectF, E>();
|
||||
private final Map<RectF, E> mDataPoints = new HashMap<RectF, E>();
|
||||
|
||||
/**
|
||||
* creates bar series without any data
|
||||
|
|
|
@ -25,6 +25,7 @@ import android.util.Log;
|
|||
import com.jjoe64.graphview.GraphView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
@ -61,7 +62,7 @@ public abstract class BaseSeries<E extends DataPointInterface> implements Series
|
|||
*
|
||||
* will be filled while drawing via {@link #registerDataPoint(float, float, DataPointInterface)}
|
||||
*/
|
||||
private Map<PointF, E> mDataPoints = new HashMap<PointF, E>();
|
||||
private final Map<PointF, E> mDataPoints = new HashMap<PointF, E>();
|
||||
|
||||
/**
|
||||
* title for this series that can be displayed
|
||||
|
@ -84,7 +85,7 @@ public abstract class BaseSeries<E extends DataPointInterface> implements Series
|
|||
* stores the graphviews where this series is used.
|
||||
* Can be more than one.
|
||||
*/
|
||||
private List<GraphView> mGraphViews;
|
||||
private final List<GraphView> mGraphViews;
|
||||
|
||||
/**
|
||||
* creates series without data
|
||||
|
@ -101,9 +102,7 @@ public abstract class BaseSeries<E extends DataPointInterface> implements Series
|
|||
*/
|
||||
public BaseSeries(E[] data) {
|
||||
mGraphViews = new ArrayList<GraphView>();
|
||||
for (E d : data) {
|
||||
mData.add(d);
|
||||
}
|
||||
Collections.addAll(mData, data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -168,7 +167,7 @@ public abstract class BaseSeries<E extends DataPointInterface> implements Series
|
|||
return mData.iterator();
|
||||
} else {
|
||||
return new Iterator<E>() {
|
||||
Iterator<E> org = mData.iterator();
|
||||
final Iterator<E> org = mData.iterator();
|
||||
E nextValue = null;
|
||||
E nextNextValue = null;
|
||||
boolean plusOne = true;
|
||||
|
@ -350,9 +349,7 @@ public abstract class BaseSeries<E extends DataPointInterface> implements Series
|
|||
*/
|
||||
public void resetData(E[] data) {
|
||||
mData.clear();
|
||||
for (E d : data) {
|
||||
mData.add(d);
|
||||
}
|
||||
Collections.addAll(mData, data);
|
||||
checkValueOrder(null);
|
||||
|
||||
// update graphview
|
||||
|
|
|
@ -33,8 +33,8 @@ import java.util.Date;
|
|||
public class DataPoint implements DataPointInterface, Serializable {
|
||||
private static final long serialVersionUID=1428263322645L;
|
||||
|
||||
private double x;
|
||||
private double y;
|
||||
private final double x;
|
||||
private final double y;
|
||||
|
||||
public DataPoint(double x, double y) {
|
||||
this.x=x;
|
||||
|
|
|
@ -32,10 +32,10 @@ public interface DataPointInterface {
|
|||
/**
|
||||
* @return the x value
|
||||
*/
|
||||
public double getX();
|
||||
double getX();
|
||||
|
||||
/**
|
||||
* @return the y value
|
||||
*/
|
||||
public double getY();
|
||||
double getY();
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ public class PointsGraphSeries<E extends DataPointInterface> extends BaseSeries<
|
|||
* interface to implement a custom
|
||||
* drawing for the data points.
|
||||
*/
|
||||
public static interface CustomShape {
|
||||
public interface CustomShape {
|
||||
/**
|
||||
* called when drawing a single data point.
|
||||
* use the x and y coordinates to render your
|
||||
|
@ -201,10 +201,8 @@ public class PointsGraphSeries<E extends DataPointInterface> extends BaseSeries<
|
|||
double orgY = y;
|
||||
|
||||
// overdraw
|
||||
boolean overdraw = false;
|
||||
if (x > graphWidth) { // end right
|
||||
overdraw = true;
|
||||
}
|
||||
boolean overdraw = x > graphWidth;
|
||||
// end right
|
||||
if (y < 0) { // end bottom
|
||||
overdraw = true;
|
||||
}
|
||||
|
|
|
@ -42,22 +42,22 @@ public interface Series<E extends DataPointInterface> {
|
|||
/**
|
||||
* @return the lowest x-value of the data
|
||||
*/
|
||||
public double getLowestValueX();
|
||||
double getLowestValueX();
|
||||
|
||||
/**
|
||||
* @return the highest x-value of the data
|
||||
*/
|
||||
public double getHighestValueX();
|
||||
double getHighestValueX();
|
||||
|
||||
/**
|
||||
* @return the lowest y-value of the data
|
||||
*/
|
||||
public double getLowestValueY();
|
||||
double getLowestValueY();
|
||||
|
||||
/**
|
||||
* @return the highest y-value of the data
|
||||
*/
|
||||
public double getHighestValueY();
|
||||
double getHighestValueY();
|
||||
|
||||
/**
|
||||
* get the values for a specific range. It is
|
||||
|
@ -69,7 +69,7 @@ public interface Series<E extends DataPointInterface> {
|
|||
* @return all datapoints between the from and until x-value
|
||||
* including the from and until data points.
|
||||
*/
|
||||
public Iterator<E> getValues(double from, double until);
|
||||
Iterator<E> getValues(double from, double until);
|
||||
|
||||
/**
|
||||
* Plots the series to the viewport.
|
||||
|
@ -82,25 +82,25 @@ public interface Series<E extends DataPointInterface> {
|
|||
* @param canvas canvas to draw on
|
||||
* @param isSecondScale true if the drawing is for the second scale
|
||||
*/
|
||||
public void draw(GraphView graphView, Canvas canvas, boolean isSecondScale);
|
||||
void draw(GraphView graphView, Canvas canvas, boolean isSecondScale);
|
||||
|
||||
/**
|
||||
* @return the title of the series. Used in the legend
|
||||
*/
|
||||
public String getTitle();
|
||||
String getTitle();
|
||||
|
||||
/**
|
||||
* @return the color of the series. Used in the legend and should
|
||||
* be used for the plotted points or lines.
|
||||
*/
|
||||
public int getColor();
|
||||
int getColor();
|
||||
|
||||
/**
|
||||
* set a listener for tap on a data point.
|
||||
*
|
||||
* @param l listener
|
||||
*/
|
||||
public void setOnDataPointTapListener(OnDataPointTapListener l);
|
||||
void setOnDataPointTapListener(OnDataPointTapListener l);
|
||||
|
||||
/**
|
||||
* called by the tap detector in order to trigger
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
package info.nightscout.interfaces.overview
|
||||
|
||||
import android.content.Context
|
||||
import android.widget.ImageButton
|
||||
|
||||
interface OverviewMenus {
|
||||
enum class CharType {
|
||||
PRE,
|
||||
TREAT,
|
||||
BAS,
|
||||
ABS,
|
||||
IOB,
|
||||
COB,
|
||||
DEV,
|
||||
BGI,
|
||||
SEN,
|
||||
ACT,
|
||||
DEVSLOPE
|
||||
}
|
||||
|
||||
val setting: List<Array<Boolean>>
|
||||
fun loadGraphConfig()
|
||||
fun setupChartMenu(context: Context, chartButton: ImageButton)
|
||||
fun enabledTypes(graph: Int): String
|
||||
fun isEnabledIn(type: CharType): Int
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
package info.nightscout.interfaces.source
|
||||
|
||||
interface DoingOwnUploadSource {
|
||||
}
|
||||
interface DoingOwnUploadSource
|
|
@ -29,6 +29,10 @@
|
|||
<string name="superbolus">Superbolus</string>
|
||||
<string name="pump_paused">Pompe suspendue</string>
|
||||
<string name="and">Et</string>
|
||||
<string name="patient_name_default" comment="This is default patient display name, when user does not provide real one">Patient</string>
|
||||
<string name="result">Résultat</string>
|
||||
<string name="settings">Paramètres</string>
|
||||
<string name="statuslights">Voyants d\'état</string>
|
||||
<string name="do_ns_upload_title">Remonter les Gly vers NS</string>
|
||||
<string name="configbuilder_insulin">Insuline</string>
|
||||
<string name="value_unavailable_short">n/d</string>
|
||||
|
@ -41,6 +45,7 @@
|
|||
<string name="mute5min">Muet pendant 5 minutes</string>
|
||||
<string name="mute">Muet</string>
|
||||
<string name="success">Succès</string>
|
||||
<string name="advancedsettings_title">Paramètres Avancés</string>
|
||||
<!-- Protection-->
|
||||
<string name="unlock_settings">Déverrouiller les paramètres</string>
|
||||
<!-- Pumps -->
|
||||
|
@ -109,6 +114,7 @@
|
|||
<string name="location_not_found_title">Localisation désactivée</string>
|
||||
<string name="location_not_found_message">Afin que la recherche par Bluetooth puisse marcher sur les nouveaux appareils, la localisation doit être activée. AAPS ne trace pas votre position, sauf lorsque vous activez l\'option Message d\'Urgence.</string>
|
||||
<!-- Preferences -->
|
||||
<string name="nav_plugin_preferences">Préférences du plugin</string>
|
||||
<!-- SmsCommunicator -->
|
||||
<string name="smscommunicator_missingsmspermission">Autorisation SMS manquante</string>
|
||||
<plurals name="days">
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
<string name="mute5min">Отключить уведомления на 5 минут</string>
|
||||
<string name="mute">Отключить звук</string>
|
||||
<string name="success">Успешно</string>
|
||||
<string name="advancedsettings_title">Дополнительные настройки</string>
|
||||
<!-- Protection-->
|
||||
<string name="unlock_settings">Разблокировать настройки</string>
|
||||
<!-- Pumps -->
|
||||
|
|
|
@ -24,4 +24,5 @@
|
|||
<string name="detailed_14_days">Podrobně 14 dní</string>
|
||||
<string name="day_tir">Denní TIR</string>
|
||||
<string name="night_tir">Noční TIR</string>
|
||||
<string name="carbs_short" comment="max 6 characters">Sach</string>
|
||||
</resources>
|
||||
|
|
|
@ -24,4 +24,5 @@
|
|||
<string name="detailed_14_days">Détail de 14 jours</string>
|
||||
<string name="day_tir">TIR Jour</string>
|
||||
<string name="night_tir">TIR Nuit</string>
|
||||
<string name="carbs_short" comment="max 6 characters">Gluc.</string>
|
||||
</resources>
|
||||
|
|
|
@ -68,7 +68,8 @@ public class InsightPairingActivity extends DaggerAppCompatActivity implements I
|
|||
@Override
|
||||
public void onServiceConnected(ComponentName name, IBinder binder) {
|
||||
service = ((InsightConnectionService.LocalBinder) binder).getService();
|
||||
if (service.isPaired()) return;
|
||||
if (service.isPaired()) {
|
||||
}
|
||||
else {
|
||||
service.requestConnection(InsightPairingActivity.this);
|
||||
service.registerStateCallback(InsightPairingActivity.this);
|
||||
|
|
|
@ -14,8 +14,8 @@
|
|||
<string name="operating_mode">Mode de fonctionnement</string>
|
||||
<string name="description_pump_insight_local">Intégration des pompes Accu-Chek Insight</string>
|
||||
<string name="not_inserted">Non inséré</string>
|
||||
<string name="tdd_bolus">DTI Bolus</string>
|
||||
<string name="tdd_basal">DTI Basale</string>
|
||||
<string name="tdd_bolus">DTQ Bolus</string>
|
||||
<string name="tdd_basal">DTQ Basale</string>
|
||||
<string name="tbr_formatter">%1$d%% pour %2$d / %3$d min</string>
|
||||
<string name="multiwave_bolus">Bolus mixte</string>
|
||||
<string name="eb_formatter">%1$.2f / %2$.2f U pour %3$d min</string>
|
||||
|
@ -40,7 +40,7 @@
|
|||
<string name="short_status_tbr">DBT : %1$d%% pour %2$d / %3$d min</string>
|
||||
<string name="short_status_extended">Étendue : %1$.2f / %2$.2f U pour %3$d min</string>
|
||||
<string name="short_status_multiwave">Mixte : %1$.2f / %2$.2f U pour %3$d min</string>
|
||||
<string name="short_status_tdd">DTI : %1$.2f</string>
|
||||
<string name="short_status_tdd">DTQ : %1$.2f</string>
|
||||
<string name="short_status_reservoir">Réserv.: %1$.2f U</string>
|
||||
<string name="short_status_battery">Batt.: %1$d%%</string>
|
||||
<string name="release_software_version">Version du logiciel</string>
|
||||
|
|
|
@ -112,8 +112,22 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
|
|||
<string name="maintenance">Maintenance</string>
|
||||
<string name="maintenance_shortname">MAINT</string>
|
||||
<string name="description_maintenance">Fournir différentes fonctions de maintenance (ex : envoyer, supprimer le journal).</string>
|
||||
<string name="database_cleanup">Nettoyer la base de données</string>
|
||||
<string name="cleanup_db_confirm">Voulez-vous nettoyer la base de données ?\nCela supprimera les modifications suivies et les données historiques de plus de 3 mois.</string>
|
||||
<string name="cleared_entries">Entrées effacées</string>
|
||||
<string name="reset_db_confirm">Voulez-vous vraiment réinitialiser les bases de données ?</string>
|
||||
<string name="maintenance_settings">Paramètres de maintenance</string>
|
||||
<string name="maintenance_email">Destinataire de l\'email</string>
|
||||
<string name="maintenance_amount">Nombre de journaux à envoyer</string>
|
||||
<string name="send_all_logs">Envoyer les journaux par e-mail</string>
|
||||
<string name="delete_logs">Supprimer les journaux</string>
|
||||
<string name="configbuilder_nightscoutversion_label">Version Nightscout :</string>
|
||||
<string name="engineering_mode_enabled">Mode ingénierie actif</string>
|
||||
<string name="log_files">Fichiers journaux</string>
|
||||
<string name="nav_logsettings">Paramètres journal</string>
|
||||
<string name="miscellaneous">Divers</string>
|
||||
<string name="nav_resetdb">Réinitialiser les Bases de Données</string>
|
||||
<string name="resettodefaults">Rétablir les valeurs par défaut</string>
|
||||
<!-- Maintenance -->
|
||||
<string name="exported_ago" comment="at placeholder we add pluralized number of hours/minutes">exporté il y a %1$s</string>
|
||||
<string name="exported_at" comment="at placeholder we add export date">exporté à %1$s</string>
|
||||
|
|
|
@ -1,15 +1,22 @@
|
|||
package info.nightscout.plugins.di
|
||||
|
||||
import dagger.Binds
|
||||
import dagger.Module
|
||||
import dagger.android.ContributesAndroidInjector
|
||||
import info.nightscout.interfaces.overview.OverviewMenus
|
||||
import info.nightscout.plugins.general.overview.OverviewFragment
|
||||
import info.nightscout.plugins.general.overview.OverviewMenusImpl
|
||||
import info.nightscout.plugins.general.overview.activities.QuickWizardListActivity
|
||||
import info.nightscout.plugins.general.overview.dialogs.EditQuickWizardDialog
|
||||
import info.nightscout.plugins.general.overview.graphData.GraphData
|
||||
import info.nightscout.plugins.general.overview.notifications.DismissNotificationService
|
||||
import info.nightscout.plugins.general.overview.notifications.NotificationWithAction
|
||||
|
||||
@Module
|
||||
@Module(
|
||||
includes = [
|
||||
OverviewModule.Bindings::class
|
||||
]
|
||||
)
|
||||
@Suppress("unused")
|
||||
abstract class OverviewModule {
|
||||
|
||||
|
@ -19,4 +26,10 @@ abstract class OverviewModule {
|
|||
@ContributesAndroidInjector abstract fun contributesOverviewFragment(): OverviewFragment
|
||||
@ContributesAndroidInjector abstract fun notificationWithActionInjector(): NotificationWithAction
|
||||
@ContributesAndroidInjector abstract fun graphDataInjector(): GraphData
|
||||
|
||||
@Module
|
||||
interface Bindings {
|
||||
|
||||
@Binds fun bindOverviewMenus(overviewMenusImpl: OverviewMenusImpl): OverviewMenus
|
||||
}
|
||||
}
|
|
@ -29,7 +29,7 @@ abstract class SourceModule {
|
|||
@ContributesAndroidInjector abstract fun contributesBGSourceFragment(): BGSourceFragment
|
||||
|
||||
@ContributesAndroidInjector abstract fun contributesNSProfileWorker(): ProfilePlugin.NSProfileWorker
|
||||
@ContributesAndroidInjector abstract fun contributesNSClientSourceWorker(): info.nightscout.plugins.source.NSClientSourcePlugin.NSClientSourceWorker
|
||||
@ContributesAndroidInjector abstract fun contributesNSClientSourceWorker(): NSClientSourcePlugin.NSClientSourceWorker
|
||||
@ContributesAndroidInjector abstract fun contributesXdripWorker(): XdripPlugin.XdripWorker
|
||||
@ContributesAndroidInjector abstract fun contributesDexcomWorker(): DexcomPlugin.DexcomWorker
|
||||
@ContributesAndroidInjector abstract fun contributesMM640gWorker(): MM640gPlugin.MM640gWorker
|
||||
|
@ -43,6 +43,6 @@ abstract class SourceModule {
|
|||
|
||||
@Module
|
||||
interface Bindings {
|
||||
@Binds fun bindNSClientSource(nsClientSourcePlugin: info.nightscout.plugins.source.NSClientSourcePlugin): NSClientSource
|
||||
@Binds fun bindNSClientSource(nsClientSourcePlugin: NSClientSourcePlugin): NSClientSource
|
||||
}
|
||||
}
|
|
@ -29,9 +29,9 @@ import dagger.android.HasAndroidInjector
|
|||
import dagger.android.support.DaggerFragment
|
||||
import info.nightscout.core.extensions.directionToIcon
|
||||
import info.nightscout.core.extensions.valueToUnitsString
|
||||
import info.nightscout.core.iob.iobCobCalculator.GlucoseStatusProvider
|
||||
import info.nightscout.core.graph.OverviewData
|
||||
import info.nightscout.core.iob.displayText
|
||||
import info.nightscout.core.iob.iobCobCalculator.GlucoseStatusProvider
|
||||
import info.nightscout.core.profile.ProfileSealed
|
||||
import info.nightscout.core.ui.UIRunnable
|
||||
import info.nightscout.core.ui.dialogs.OKDialog
|
||||
|
@ -56,6 +56,7 @@ import info.nightscout.interfaces.iob.IobCobCalculator
|
|||
import info.nightscout.interfaces.logging.UserEntryLogger
|
||||
import info.nightscout.interfaces.nsclient.NSSettingsStatus
|
||||
import info.nightscout.interfaces.nsclient.ProcessedDeviceStatusData
|
||||
import info.nightscout.interfaces.overview.OverviewMenus
|
||||
import info.nightscout.interfaces.plugin.ActivePlugin
|
||||
import info.nightscout.interfaces.plugin.PluginBase
|
||||
import info.nightscout.interfaces.profile.DefaultValueHelper
|
||||
|
@ -70,10 +71,6 @@ import info.nightscout.plugins.R
|
|||
import info.nightscout.plugins.aps.loop.events.EventNewOpenLoopNotification
|
||||
import info.nightscout.plugins.databinding.OverviewFragmentBinding
|
||||
import info.nightscout.plugins.general.overview.activities.QuickWizardListActivity
|
||||
import info.nightscout.plugins.general.overview.events.EventUpdateOverviewCalcProgress
|
||||
import info.nightscout.plugins.general.overview.events.EventUpdateOverviewGraph
|
||||
import info.nightscout.plugins.general.overview.events.EventUpdateOverviewIobCob
|
||||
import info.nightscout.plugins.general.overview.events.EventUpdateOverviewSensitivity
|
||||
import info.nightscout.plugins.general.overview.graphData.GraphData
|
||||
import info.nightscout.plugins.general.overview.notifications.NotificationStore
|
||||
import info.nightscout.plugins.general.overview.notifications.events.EventUpdateOverviewNotification
|
||||
|
@ -94,6 +91,10 @@ import info.nightscout.rx.events.EventRefreshOverview
|
|||
import info.nightscout.rx.events.EventScale
|
||||
import info.nightscout.rx.events.EventTempBasalChange
|
||||
import info.nightscout.rx.events.EventTempTargetChange
|
||||
import info.nightscout.rx.events.EventUpdateOverviewCalcProgress
|
||||
import info.nightscout.rx.events.EventUpdateOverviewGraph
|
||||
import info.nightscout.rx.events.EventUpdateOverviewIobCob
|
||||
import info.nightscout.rx.events.EventUpdateOverviewSensitivity
|
||||
import info.nightscout.rx.logging.AAPSLogger
|
||||
import info.nightscout.rx.weardata.EventData
|
||||
import info.nightscout.shared.extensions.runOnUiThread
|
||||
|
|
|
@ -14,6 +14,7 @@ import com.google.gson.Gson
|
|||
import info.nightscout.core.utils.fabric.FabricPrivacy
|
||||
import info.nightscout.interfaces.Config
|
||||
import info.nightscout.interfaces.aps.Loop
|
||||
import info.nightscout.interfaces.overview.OverviewMenus
|
||||
import info.nightscout.plugins.R
|
||||
import info.nightscout.rx.bus.RxBus
|
||||
import info.nightscout.rx.events.EventRefreshOverview
|
||||
|
@ -25,7 +26,7 @@ import javax.inject.Inject
|
|||
import javax.inject.Singleton
|
||||
|
||||
@Singleton
|
||||
class OverviewMenus @Inject constructor(
|
||||
class OverviewMenusImpl @Inject constructor(
|
||||
private val aapsLogger: AAPSLogger,
|
||||
private val rh: ResourceHelper,
|
||||
private val sp: SP,
|
||||
|
@ -33,9 +34,9 @@ class OverviewMenus @Inject constructor(
|
|||
private val config: Config,
|
||||
private val loop: Loop,
|
||||
private val fabricPrivacy: FabricPrivacy
|
||||
) {
|
||||
) : OverviewMenus {
|
||||
|
||||
enum class CharType(@StringRes val nameId: Int, @AttrRes val attrId: Int, @AttrRes val attrTextId: Int, val primary: Boolean, val secondary: Boolean, @StringRes val shortnameId: Int) {
|
||||
enum class CharTypeData(@StringRes val nameId: Int, @AttrRes val attrId: Int, @AttrRes val attrTextId: Int, val primary: Boolean, val secondary: Boolean, @StringRes val shortnameId: Int) {
|
||||
PRE(R.string.overview_show_predictions, R.attr.predictionColor, R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.prediction_shortname),
|
||||
TREAT(R.string.overview_show_treatments, R.attr.cobColor, R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.treatments_shortname),
|
||||
BAS(R.string.overview_show_basals, R.attr.basal, R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.basal_shortname),
|
||||
|
@ -55,9 +56,9 @@ class OverviewMenus @Inject constructor(
|
|||
const val SCALE_ID = 1001
|
||||
}
|
||||
|
||||
fun enabledTypes(graph: Int): String {
|
||||
override fun enabledTypes(graph: Int): String {
|
||||
val r = StringBuilder()
|
||||
for (type in CharType.values()) if (_setting[graph][type.ordinal]) {
|
||||
for (type in CharTypeData.values()) if (_setting[graph][type.ordinal]) {
|
||||
r.append(rh.gs(type.shortnameId))
|
||||
r.append(" ")
|
||||
}
|
||||
|
@ -66,7 +67,7 @@ class OverviewMenus @Inject constructor(
|
|||
|
||||
private var _setting: MutableList<Array<Boolean>> = ArrayList()
|
||||
|
||||
val setting: List<Array<Boolean>>
|
||||
override val setting: List<Array<Boolean>>
|
||||
@Synchronized get() = _setting.toMutableList() // implicitly does a list copy
|
||||
|
||||
@Synchronized
|
||||
|
@ -77,23 +78,23 @@ class OverviewMenus @Inject constructor(
|
|||
}
|
||||
|
||||
@Synchronized
|
||||
fun loadGraphConfig() {
|
||||
override fun loadGraphConfig() {
|
||||
val sts = sp.getString(R.string.key_graph_config, "")
|
||||
if (sts.isNotEmpty()) {
|
||||
_setting = Gson().fromJson(sts, Array<Array<Boolean>>::class.java).toMutableList()
|
||||
// reset when new CharType added
|
||||
for (s in _setting)
|
||||
if (s.size != CharType.values().size) {
|
||||
if (s.size != OverviewMenus.CharType.values().size) {
|
||||
_setting = ArrayList()
|
||||
_setting.add(Array(CharType.values().size) { true })
|
||||
_setting.add(Array(OverviewMenus.CharType.values().size) { true })
|
||||
}
|
||||
} else {
|
||||
_setting = ArrayList()
|
||||
_setting.add(Array(CharType.values().size) { true })
|
||||
_setting.add(Array(OverviewMenus.CharType.values().size) { true })
|
||||
}
|
||||
}
|
||||
|
||||
fun setupChartMenu(context: Context, chartButton: ImageButton) {
|
||||
override fun setupChartMenu(context: Context, chartButton: ImageButton) {
|
||||
val settingsCopy = setting
|
||||
val numOfGraphs = settingsCopy.size // 1 main + x secondary
|
||||
|
||||
|
@ -120,12 +121,12 @@ class OverviewMenus @Inject constructor(
|
|||
dividerItem.isCheckable = true
|
||||
dividerItem.isChecked = true
|
||||
}
|
||||
CharType.values().forEach { m ->
|
||||
CharTypeData.values().forEach { m ->
|
||||
if (g == 0 && !m.primary) return@forEach
|
||||
if (g > 0 && !m.secondary) return@forEach
|
||||
var insert = true
|
||||
if (m == CharType.PRE) insert = predictionsAvailable
|
||||
if (m == CharType.DEVSLOPE) insert = config.isDev()
|
||||
if (m == CharTypeData.PRE) insert = predictionsAvailable
|
||||
if (m == CharTypeData.DEVSLOPE) insert = config.isDev()
|
||||
if (used.contains(m.ordinal)) insert = false
|
||||
for (g2 in g + 1 until numOfGraphs) {
|
||||
if (settingsCopy[g2][m.ordinal]) insert = false
|
||||
|
@ -165,7 +166,7 @@ class OverviewMenus @Inject constructor(
|
|||
|
||||
it.itemId == numOfGraphs -> {
|
||||
// add new empty
|
||||
_setting.add(Array(CharType.values().size) { false })
|
||||
_setting.add(Array(CharTypeData.values().size) { false })
|
||||
}
|
||||
|
||||
it.itemId < 100 -> {
|
||||
|
@ -194,7 +195,7 @@ class OverviewMenus @Inject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
fun isEnabledIn(type: CharType): Int {
|
||||
override fun isEnabledIn(type: OverviewMenus.CharType): Int {
|
||||
val settingsCopy = setting
|
||||
val numOfGraphs = settingsCopy.size // 1 main + x secondary
|
||||
for (g in 0 until numOfGraphs) if (settingsCopy[g][type.ordinal]) return g
|
|
@ -5,31 +5,32 @@ import androidx.annotation.StringRes
|
|||
import androidx.preference.PreferenceFragmentCompat
|
||||
import androidx.preference.SwitchPreference
|
||||
import dagger.android.HasAndroidInjector
|
||||
import info.nightscout.core.events.EventIobCalculationProgress
|
||||
import info.nightscout.core.events.EventNewNotification
|
||||
import info.nightscout.core.extensions.putDouble
|
||||
import info.nightscout.core.extensions.putInt
|
||||
import info.nightscout.core.extensions.putString
|
||||
import info.nightscout.core.extensions.storeDouble
|
||||
import info.nightscout.core.extensions.storeInt
|
||||
import info.nightscout.core.extensions.storeString
|
||||
import info.nightscout.core.events.EventNewNotification
|
||||
import info.nightscout.core.graph.OverviewData
|
||||
import info.nightscout.core.ui.dialogs.OKDialog
|
||||
import info.nightscout.core.utils.fabric.FabricPrivacy
|
||||
import info.nightscout.interfaces.Config
|
||||
import info.nightscout.interfaces.Overview
|
||||
import info.nightscout.interfaces.overview.OverviewMenus
|
||||
import info.nightscout.interfaces.plugin.PluginBase
|
||||
import info.nightscout.interfaces.plugin.PluginDescription
|
||||
import info.nightscout.interfaces.plugin.PluginType
|
||||
import info.nightscout.plugins.R
|
||||
import info.nightscout.plugins.general.overview.events.EventUpdateOverviewCalcProgress
|
||||
import info.nightscout.plugins.general.overview.notifications.NotificationStore
|
||||
import info.nightscout.plugins.general.overview.notifications.NotificationWithAction
|
||||
import info.nightscout.plugins.general.overview.notifications.events.EventUpdateOverviewNotification
|
||||
import info.nightscout.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress
|
||||
import info.nightscout.rx.AapsSchedulers
|
||||
import info.nightscout.rx.bus.RxBus
|
||||
import info.nightscout.rx.events.EventDismissNotification
|
||||
import info.nightscout.rx.events.EventPumpStatusChanged
|
||||
import info.nightscout.rx.events.EventUpdateOverviewCalcProgress
|
||||
import info.nightscout.rx.logging.AAPSLogger
|
||||
import info.nightscout.shared.interfaces.ResourceHelper
|
||||
import info.nightscout.shared.sharedPreferences.SP
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
package info.nightscout.plugins.general.overview.events
|
||||
|
||||
import info.nightscout.rx.events.Event
|
||||
|
||||
class EventUpdateOverviewCalcProgress(val from: String) : Event()
|
|
@ -1,5 +0,0 @@
|
|||
package info.nightscout.plugins.general.overview.events
|
||||
|
||||
import info.nightscout.rx.events.Event
|
||||
|
||||
class EventUpdateOverviewGraph(val from: String) : Event()
|
|
@ -1,5 +0,0 @@
|
|||
package info.nightscout.plugins.general.overview.events
|
||||
|
||||
import info.nightscout.rx.events.Event
|
||||
|
||||
class EventUpdateOverviewIobCob(val from: String) : Event()
|
|
@ -1,5 +0,0 @@
|
|||
package info.nightscout.plugins.general.overview.events
|
||||
|
||||
import info.nightscout.rx.events.Event
|
||||
|
||||
class EventUpdateOverviewSensitivity(val from: String) : Event()
|
|
@ -1,7 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- SMS Communicator & OTP Authenticator -->
|
||||
<string name="smscommunicator">SMS коммуникатор</string>
|
||||
<string name="smscommunicator_shortname">SMS</string>
|
||||
<string name="description_sms_communicator">Выполнить дистанционное управление AAPS при помощи команд SMS.</string>
|
||||
<string name="smscommunicator_code_from_authenticator_for" comment="This is continuation of sentence: To [ACTION] reply with code">из приложения Authenticator для %1$s и дополните пином в конце</string>
|
||||
<string name="smscommunicator_otp_pin">Дополнительный обязательный пин-код в конце маркера</string>
|
||||
<string name="smscommunicator_otp_pin_summary">Дополнительные цифры, которые должны запоминаться и добавляться в конце каждого сгенерированного одноразового пароля</string>
|
||||
<string name="smscommunicator_tab_otp_label">Настройка аутентификации</string>
|
||||
<string name="smscommunicator_code_verify_label">Код для проверки:</string>
|
||||
<string name="smscommunicator_code_verify_hint">OTP + ПИН-код</string>
|
||||
<string name="smscommunicator_code_verify_info">Проверочный код состоит из 6 цифр, отображаемых приложением Authenticator (известным как OTP), за которым следует 3 или более цифр обязательного PIN-кода.</string>
|
||||
<string name="smscommunicator_otp_reset_btn">Сбросить аутентификаторы</string>
|
||||
<string name="smscommunicator_otp_reset_title">Сбросить ключ идентификации</string>
|
||||
<string name="smscommunicator_otp_reset_prompt">Вы действительно хотите сбросить ключ аутентификации? Все сконфигурированные в настоящее время ключи станут недопустимы, и придется их настроить заново.</string>
|
||||
<string name="smscommunicator_otp_reset_successful">Создан новый ключ аутентификации! Для идентификации используйте обновленный QRCode.</string>
|
||||
<string name="smscommunicator_otp_export_title">Экспорт секретного кода OTP</string>
|
||||
<string name="smscommunicator_otp_export_prompt">Вы действительно хотите скопировать пароль OTP в буфер обмена?\n\nЭто может потребоваться только в том случае, если у вашего приложения идентификации проблемы при сканировании QR кода, вы хотите ввести его вручную или настроить аппаратный маркер OTP с помощью специального приложения.</string>
|
||||
<string name="smscommunicator_otp_export_successful">Секретный одноразовый код OTP (в формате Base32) экспортирован и скопирован в буфер обмена. Вставьте его в систему идентификации или аппаратный маркер OTP!</string>
|
||||
<string name="smscommunicator_otp_step1_install_header">1. Установить Аутентификатор</string>
|
||||
<string name="smscommunicator_otp_step2_provisioning_header">2. Сканируйте код для настройки OTP кодов AAPS</string>
|
||||
<string name="smscommunicator_otp_step3_test_header">3. Проверьте одноразовый пароль</string>
|
||||
<string name="smscommunicator_otp_reset_header">Сбросить авторизацию</string>
|
||||
<string name="smscommunicator_otp_install_info">На каждом отслеживающем телефоне установите приложение Authenticator, поддерживающее маркеры TOTP RFC 6238. Популярные бесплатные приложения: \n Authy\n Google Authenticator\n LastPass Authenticator\n FreeOTP Authenticator</string>
|
||||
<string name="smscommunicator_otp_reset_warning">После сброса аутентификатора вы делаете все созданные идентификаторы недействительными. Вам нужно будет снова создать их!</string>
|
||||
<string name="sms_wrong_code">Неверный код. Команда отменена.</string>
|
||||
<string name="sms_timeout_while_waiting">Время ожидания окончания предыдущего соединения с помпой истекло</string>
|
||||
<string name="smscommunicator_allowednumbers">разрешенные телефонные номера</string>
|
||||
<string name="smscommunicator_allowednumbers_summary">+ XXXXXXXXXX; + YYYYYYYYYY</string>
|
||||
<string name="smscommunicator_bolus_reply_with_code">Для подачи болюса %1$.2fед ответьте кодом %2$s</string>
|
||||
<string name="smscommunicator_meal_bolus_reply_with_code">Для подачи болюса %1$.2fед ответьте кодом %2$s</string>
|
||||
<string name="smscommunicator_temptarget_with_code">Чтобы установить временную цель %1$s ответьте кодом %2$s</string>
|
||||
<string name="smscommunicator_temptarget_cancel">Чтобы отменить временную цель ответьте кодом %1$s</string>
|
||||
<string name="smscommunicator_stops_ns_with_code">Чтобы отключить службу удаленных SMS-сообщений ответьте кодом %1$s.\n\n Имейте в виду, что вы сможете вновь активировать ее только с основного телефона AAPS.</string>
|
||||
|
@ -14,6 +42,8 @@
|
|||
<string name="smscommunicator_bolus_delivered">Болюс %1$.2f ед. подан успешно</string>
|
||||
<string name="smscommunicator_meal_bolus_delivered">Болюс на еду %1$.2f ед. подан успешно</string>
|
||||
<string name="smscommunicator_meal_bolus_delivered_tt">Цель %1$s на %2$d минут</string>
|
||||
<string name="smscommunicator_tt_set">Цель %1$s на %2$d минут установлена успешно</string>
|
||||
<string name="smscommunicator_tt_canceled">Временная цель успешно отменена</string>
|
||||
<string name="smscommunicator_remote_commands_allowed">Разрешить команды через смс</string>
|
||||
<string name="smscommunicator_loop_has_been_disabled">Зцикл остановлен</string>
|
||||
<string name="smscommunicator_loop_has_been_enabled">Зцикл активирован</string>
|
||||
|
@ -22,6 +52,7 @@
|
|||
<string name="smscommunicator_pump_connect_fail">Ошибка подключения к помпе</string>
|
||||
<string name="smscommunicator_pump_disconnect_with_code">Для разъединения с помпой на %1$d мин ответьте кодом %2$s</string>
|
||||
<string name="smscommunicator_pump_disconnected">Связь с помпой отключена</string>
|
||||
<string name="smscommunicator_reconnect">Связь с помпой возобновлена</string>
|
||||
<string name="smscommunicator_remote_command_not_allowed">Удаленная команда не разрешена</string>
|
||||
<string name="smscommunicator_remote_bolus_not_allowed">Удаленный болюс недоступен, повторите попытку позже.</string>
|
||||
<string name="smscommunicator_basal_reply_with_code">Для начала подачи базала %1$.2f ед./ч на %2$d мин. ответьте кодом %3$s</string>
|
||||
|
@ -47,24 +78,51 @@
|
|||
<string name="smscommunicator_tempbasal_cancel_failed">Отмена врем базала не состоялась</string>
|
||||
<string name="smscommunicator_extended_cancel_failed">Сбой отмены пролонгированного болюса</string>
|
||||
<string name="smscommunicator_unknown_command">Неизвестная команда или неверный ответ</string>
|
||||
<string name="smscommunicator_another_bolus_in_queue">В очереди есть еще один болюс. Повторите попытку позже.</string>
|
||||
<string name="smscommunicator_wrong_duration">Неверное значение длительности</string>
|
||||
<string name="smscommunicator_loop_suspended">ЗЦикл остановлен</string>
|
||||
<string name="smscommunicator_loop_resumed">ЗЦикл возобновлен</string>
|
||||
<string name="smscommunicator_invalid_phone_number">Неверный номер телефона для смс</string>
|
||||
<string name="smscommunicator_calibration_sent">Калибровка отправлена. В xDrip+ должна быть включена возможность приема.</string>
|
||||
<string name="smscommunicator_calibration_failed">xDrip + не получает калибровки</string>
|
||||
<string name="smscommunicator_message_body">Недопустимое тело сообщения</string>
|
||||
<string name="smscommunicator_report_pump_unreachable_summary">Отправить SMS, если инициируется запись о недоступности помпы</string>
|
||||
<string name="smscommunicator_pump_unreachable">Сообщить о недоступности помпы</string>
|
||||
<string name="wrong_format">Неверный формат</string>
|
||||
<string name="sms_actual_bg">ГК:</string>
|
||||
<string name="sms_last_bg">Предыдущая ГК:</string>
|
||||
<string name="sms_delta">дельта:</string>
|
||||
<string name="sms_iob">IOB: активный инсулин</string>
|
||||
<string name="sms_bolus">болюс:</string>
|
||||
<string name="sms_basal">базал: </string>
|
||||
<string name="sms_min_ago">%1$dмин. назад</string>
|
||||
<string name="sms_loop_suspended_for">Остановлен (на %1$d мин)</string>
|
||||
<string name="sms_read_status_failed">Статус чтения: неудача</string>
|
||||
<string name="sms_profile_switch_created">Переключатель профиля создан</string>
|
||||
<string name="sms_wrong_tbr_duration">Длительность временного базала TBR должна быть кратной %1$d минутам и больше 0.</string>
|
||||
<string name="a11y_otp_qr_code">QR код для создания одноразового пароля</string>
|
||||
<!-- Insulin -->
|
||||
<string name="lyumjev">Lyumjev</string>
|
||||
<string name="description_insulin_rapid">Предустановки для Humalog и Novorapid / Novolog</string>
|
||||
<string name="description_insulin_ultra_rapid">Предустановки для Fiasp</string>
|
||||
<string name="description_insulin_lyumjev">Предустановки для Lyumjev</string>
|
||||
<string name="description_insulin_free_peak">Позволяет самостоятельно задавать пик активности инсулина - только для опытных пользователей</string>
|
||||
<string name="insulin_shortname">ИНС</string>
|
||||
<string name="insulin_oref_peak">Время пика активного инс IOB</string>
|
||||
<string name="insulin_peak_time">Время пика [min]</string>
|
||||
<string name="free_peak_oref">Свободный от пиков Oref</string>
|
||||
<string name="rapid_acting_oref">Быстро действующий Oref</string>
|
||||
<string name="ultra_rapid_oref">Сверхбыстрый Oref</string>
|
||||
<string name="dia_too_short">Значение времени действия инс %1$f слишком мало - применено %2$f!</string>
|
||||
<string name="fast_acting_insulin_comment">Новорапид, Хумалог</string>
|
||||
<string name="ultra_fast_acting_insulin_comment">Фиасп</string>
|
||||
<!-- xDrip status line -->
|
||||
<!-- StatusLine -->
|
||||
<string name="xdrip_status">Cтрока состояния xDrip (часы)</string>
|
||||
<string name="xdrip_status_shortname">Статус xDrip</string>
|
||||
<string name="description_xdrip_status_line">Показать информацию о работе алгоритма ИПЖ на экране смарт-часов xDrip+.</string>
|
||||
<string name="xdrip_status_detailed_iob_title">Показать IOB подробно</string>
|
||||
<string name="xdrip_status_detailed_iob_summary">Показать разбивку IOB на болюсный и базальный IOB на часах</string>
|
||||
<string name="disabled_loop">Зцикл не работает</string>
|
||||
<string name="xdrip_status_show_bgi_title">Показать BGI</string>
|
||||
<string name="xdrip_status_show_bgi_summary">Добавить BGI в строку состояния</string>
|
||||
|
@ -72,21 +130,51 @@
|
|||
<!-- Food-->
|
||||
<string name="food_short">Еда</string>
|
||||
<string name="description_food">Показывает заданные в Nightscout настройки для приема пищи</string>
|
||||
<string name="filter">Фильтр</string>
|
||||
<string name="food">Еда</string>
|
||||
<string name="short_kilo_joul">кДж</string>
|
||||
<string name="short_energy">Энергия</string>
|
||||
<string name="short_protein">Белки</string>
|
||||
<string name="short_fat">Жиры</string>
|
||||
<string name="category">Категория</string>
|
||||
<string name="subcategory">Подкатегория</string>
|
||||
<string name="calculator_label">Калькулятор</string>
|
||||
<!-- Theme switcher dark and light mode-->
|
||||
<string name="theme_switcher_summary">Выберите темную, светлую или системную тему</string>
|
||||
<string name="app_color_scheme">Цветовая схема приложения</string>
|
||||
<string name="dark_theme">Тёмная тема</string>
|
||||
<string name="light_theme">Светлая тема</string>
|
||||
<string name="follow_system_theme">Использовать тему устройства</string>
|
||||
<!-- Profile -->
|
||||
<string name="localprofile">Профиль</string>
|
||||
<string name="localprofile_shortname">ЛП</string>
|
||||
<string name="description_profile_local">Задайте профиль, доступный в автономном режиме.</string>
|
||||
<string name="a11y_add_new_to_list">добавить новый в список</string>
|
||||
<string name="do_you_want_switch_profile">Хотите переключить профиль и сбросить изменения, внесенные в текущий профиль?</string>
|
||||
<string name="save_or_reset_changes_first">Сначала сохраните или сбросьте текущие изменения</string>
|
||||
<string name="delete_current_profile">Удалить текущий профиль?</string>
|
||||
<string name="units_colon">Единицы:</string>
|
||||
<string name="missing_profile_name">Отсутствует название профиля</string>
|
||||
<string name="error_in_ic_values">Ошибка в значении углеводного коэффициента IC</string>
|
||||
<string name="error_in_basal_values">Ошибка в величине базала</string>
|
||||
<string name="error_in_target_values">Ошибка в целевых значениях</string>
|
||||
<string name="error_in_isf_values">Ошибка в значении фактора чувствительности к инсулину ISF</string>
|
||||
<string name="profile_name_contains_dot">Имя профиля содержит точки.\nЭто не поддерживается NS.\nПрофиль не выгружен в NS.</string>
|
||||
<string name="invalid_profile_not_accepted">Неверный профиль %1$s не принят из NS</string>
|
||||
<string name="view">Смотреть</string>
|
||||
<string name="errors">Ошибки</string>
|
||||
<string name="select_profile">Выберите профиль для изменения</string>
|
||||
<string name="profile_name">Название профиля:</string>
|
||||
<string name="a11y_add_new_profile">добавить новый профиль</string>
|
||||
<string name="a11y_clone_profile">клонировать текущий профиль</string>
|
||||
<string name="a11y_delete_current_profile">удалить текущий профиль</string>
|
||||
<string name="dia_short">Время действия инсулина DIA</string>
|
||||
<string name="target_short">ЦЕЛЬ</string>
|
||||
<string name="basal_short">БАЗАЛ</string>
|
||||
<!-- Objectives -->
|
||||
<string name="completed_well_done">Завершено, отлично!</string>
|
||||
<string name="not_completed_yet">Не завершено</string>
|
||||
<string name="time_elapsed">Прошло времени</string>
|
||||
<string name="maxiobset">Максимум активного инсулина IOB установлен правильно</string>
|
||||
<string name="hasbgdata">ГК доступна из выбранного источника</string>
|
||||
<string name="synchaswritepermission">Служба синхронизации имеет разрешение на запись</string>
|
||||
|
@ -245,6 +333,7 @@
|
|||
<string name="overview_show_sensitivity">Чувствительность</string>
|
||||
<string name="overview_show_deviations">Отклонение</string>
|
||||
<string name="overview_show_cob">Активные углеводы COB</string>
|
||||
<string name="overview_show_iob">Активный инсулин IOB</string>
|
||||
<string name="overview_show_basals">Базал</string>
|
||||
<string name="overview_show_abs_insulin">Абсолютный инсулин</string>
|
||||
<string name="prediction_shortname">ОЖИД</string>
|
||||
|
|
|
@ -34,7 +34,7 @@ class ProfileElement(ps: EffectiveProfileSwitch, serialNumber: String, dateUtil:
|
|||
|
||||
init {
|
||||
type = "pumpSettings"
|
||||
val profile: Profile? = ProfileSealed.EPS(ps)
|
||||
val profile: Profile = ProfileSealed.EPS(ps)
|
||||
checkNotNull(profile)
|
||||
for (br in profile.getBasalValues())
|
||||
basalSchedules.Normal.add(BasalRate(br.timeAsSeconds * 1000, br.value))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package info.nightscout.pump.combo.ruffyscripter.history;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Objects;
|
||||
|
||||
public class PumpAlert extends HistoryRecord {
|
||||
public final Integer warningCode;
|
||||
|
@ -23,11 +24,11 @@ public class PumpAlert extends HistoryRecord {
|
|||
PumpAlert pumpAlert = (PumpAlert) o;
|
||||
|
||||
if (timestamp != pumpAlert.timestamp) return false;
|
||||
if (warningCode != null ? !warningCode.equals(pumpAlert.warningCode) : pumpAlert.warningCode != null)
|
||||
if (!Objects.equals(warningCode, pumpAlert.warningCode))
|
||||
return false;
|
||||
if (errorCode != null ? !errorCode.equals(pumpAlert.errorCode) : pumpAlert.errorCode != null)
|
||||
if (!Objects.equals(errorCode, pumpAlert.errorCode))
|
||||
return false;
|
||||
return message != null ? message.equals(pumpAlert.message) : pumpAlert.message == null;
|
||||
return Objects.equals(message, pumpAlert.message);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -719,8 +719,7 @@ object ApplicationLayer {
|
|||
command = extractAppLayerPacketCommand(tpLayerPacket),
|
||||
version = tpLayerPacket.payload[VERSION_BYTE_OFFSET],
|
||||
payload = ArrayList<Byte>(tpLayerPacket.payload.subList(PAYLOAD_BYTES_OFFSET, tpLayerPacket.payload.size))
|
||||
) {
|
||||
}
|
||||
)
|
||||
|
||||
/**
|
||||
* Produces transport layer DATA packet info containing this application layer
|
||||
|
@ -1680,10 +1679,10 @@ object ApplicationLayer {
|
|||
* This is preferred over directly using the [Packet] constructor.
|
||||
*/
|
||||
fun checkAndParseTransportLayerDataPacket(tpLayerPacket: TransportLayer.Packet):
|
||||
ApplicationLayer.Packet {
|
||||
Packet {
|
||||
try {
|
||||
logger(LogLevel.VERBOSE) { "Parsing DATA packet as application layer packet" }
|
||||
val appLayerPacket = ApplicationLayer.Packet(tpLayerPacket)
|
||||
val appLayerPacket = Packet(tpLayerPacket)
|
||||
logger(LogLevel.VERBOSE) {
|
||||
"This is an application layer packet with command ${appLayerPacket.command} and payload ${appLayerPacket.payload.toHexString()}"
|
||||
}
|
||||
|
@ -1709,7 +1708,7 @@ object ApplicationLayer {
|
|||
}
|
||||
|
||||
return appLayerPacket
|
||||
} catch (e: ApplicationLayer.InvalidCommandIDException) {
|
||||
} catch (e: InvalidCommandIDException) {
|
||||
logger(LogLevel.WARN) {
|
||||
"Got an application layer packet with invalid/unknown command ID 0x${e.commandID.toString(16)} " +
|
||||
"service ID ${e.serviceID.name} and payload (with ${e.payload.size} byte(s)) ${e.payload.toHexString()}" +
|
||||
|
@ -1719,7 +1718,7 @@ object ApplicationLayer {
|
|||
} catch (e: ErrorCodeException) {
|
||||
// We already logged the error code, so just pass through the exception
|
||||
throw e
|
||||
} catch (e: ApplicationLayer.ExceptionBase) {
|
||||
} catch (e: ExceptionBase) {
|
||||
logger(LogLevel.ERROR) { "Could not parse DATA packet as application layer packet: $e" }
|
||||
throw e
|
||||
}
|
||||
|
|
|
@ -134,7 +134,7 @@ class PumpIO(
|
|||
// and [List<Byte>.toComboFrame] for details).
|
||||
private val framedComboIO = FramedComboIO(bluetoothDevice)
|
||||
|
||||
private var initialMode: PumpIO.Mode? = null
|
||||
private var initialMode: Mode? = null
|
||||
|
||||
private var transportLayerIO = TransportLayer.IO(
|
||||
pumpStateStore, bluetoothDevice.address, framedComboIO
|
||||
|
|
|
@ -159,8 +159,8 @@ object TransportLayer {
|
|||
|
||||
// Utility function to be able to throw an exception in case of
|
||||
// an invalid command ID in the Packet constructor below.
|
||||
private fun checkedGetCommand(value: Int, bytes: List<Byte>): TransportLayer.Command =
|
||||
TransportLayer.Command.fromInt(value) ?: throw TransportLayer.InvalidCommandIDException(value, bytes)
|
||||
private fun checkedGetCommand(value: Int, bytes: List<Byte>): Command =
|
||||
Command.fromInt(value) ?: throw InvalidCommandIDException(value, bytes)
|
||||
|
||||
/**
|
||||
* Class containing Combo transport layer packet data.
|
||||
|
@ -835,7 +835,7 @@ object TransportLayer {
|
|||
* @throws IncorrectPacketException if expectedCommand is non-null and
|
||||
* the received packet's command does not match expectedCommand.
|
||||
*/
|
||||
suspend fun receive(expectedCommand: Command? = null): TransportLayer.Packet {
|
||||
suspend fun receive(expectedCommand: Command? = null): Packet {
|
||||
// In here, we mainly listen to the packetReceiverChannel
|
||||
// for incoming packets from the packet receiver coroutine.
|
||||
// The actual reception takes place there. startInternal()
|
||||
|
|
|
@ -953,7 +953,7 @@ suspend fun navigateToRTScreen(
|
|||
null
|
||||
}
|
||||
|
||||
if (path?.isEmpty() ?: false)
|
||||
if (path?.isEmpty() == true)
|
||||
return currentParsedScreen
|
||||
|
||||
if (path == null) {
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="info.nightscout.androidaps.plugins.pump.combov2">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||
|
||||
<application>
|
||||
<activity
|
||||
android:name="info.nightscout.pump.combov2.activities.ComboV2PairingActivity"
|
||||
android:name=".activities.ComboV2PairingActivity"
|
||||
android:exported="false"
|
||||
android:theme="@style/AppTheme.NoActionBar" />
|
||||
</application>
|
||||
|
|
|
@ -44,6 +44,7 @@ import info.nightscout.interfaces.queue.CommandQueue
|
|||
import info.nightscout.interfaces.ui.UiInteraction
|
||||
import info.nightscout.interfaces.utils.DecimalFormatter
|
||||
import info.nightscout.interfaces.utils.TimeChangeType
|
||||
import info.nightscout.pump.combov2.activities.ComboV2PairingActivity
|
||||
import info.nightscout.rx.bus.RxBus
|
||||
import info.nightscout.rx.events.EventDismissNotification
|
||||
import info.nightscout.rx.events.EventInitializationChanged
|
||||
|
@ -326,6 +327,8 @@ class ComboV2Plugin @Inject constructor (
|
|||
val pairPref: Preference? = findPreference(rh.gs(R.string.key_combov2_pair_with_pump))
|
||||
val unpairPref: Preference? = findPreference(rh.gs(R.string.key_combov2_unpair_pump))
|
||||
|
||||
pairPref?.intent = Intent(activity, ComboV2PairingActivity::class.java)
|
||||
|
||||
val isInitiallyPaired = pairedStateUIFlow.value
|
||||
pairPref?.isEnabled = !isInitiallyPaired
|
||||
unpairPref?.isEnabled = isInitiallyPaired
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
tools:context=".plugins.pump.combov2.activities.ComboV2PairingActivity">
|
||||
tools:context=".activities.ComboV2PairingActivity">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:id="@+id/header"
|
||||
|
|
|
@ -1,21 +1,123 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="combov2_plugin_name">Accu-Chek Combo</string>
|
||||
<string name="combov2_plugin_description">Nativní integrace pro pumpy Accu-Chek Combo</string>
|
||||
<string name="combov2_could_not_connect">Nelze se připojit k pumpě</string>
|
||||
<string name="combov2_not_paired">Není spárováno s pumpou</string>
|
||||
<string name="combov2_pump_terminated_connection">Spojení ukončené pumpou</string>
|
||||
<string name="combov2_warning">Varování Combo</string>
|
||||
<string name="combov2_error">Chyba Combo</string>
|
||||
<string name="combov2_warning_4">Zavolejte hotline pro aktualizaci</string>
|
||||
<string name="combov2_warning_10">Chyba Bluetooth; opakujte párování</string>
|
||||
<string name="combov2_error_1">Zásobník je prázdný</string>
|
||||
<string name="combov2_error_2">Vybitá baterie</string>
|
||||
<string name="combov2_error_4">Okluze</string>
|
||||
<string name="combov2_error_5">Konec zálohy pumpy</string>
|
||||
<string name="combov2_error_6">Porucha mechaniky</string>
|
||||
<string name="combov2_error_7">Chyba elektroniky</string>
|
||||
<string name="combov2_error_8">Přerušení napájení</string>
|
||||
<string name="combov2_error_9">Vypršela doba zápůjčky</string>
|
||||
<string name="combov2_error_10">Chyba zásobníku</string>
|
||||
<string name="combov2_error_11">Infuzní set není naplněný</string>
|
||||
<string name="combov2_extended_bolus_not_supported">Rozšířený bolus není podporován</string>
|
||||
<string name="combov2_title">Accu-Chek Combo v2</string>
|
||||
<string name="combov2_pair_with_pump_title">Párovat s pumpou</string>
|
||||
<string name="combov2_unpair_pump_title">Zrušit párování pumpy</string>
|
||||
<string name="combov2_driver_state_label">Stav ovladače</string>
|
||||
<string name="combov2_current_activity_label">Současná aktivita</string>
|
||||
<string name="bluetooth_address">Bluetooth MAC adresa</string>
|
||||
<string name="combov2_start_pairing">Začít párovat</string>
|
||||
<string name="combov2_pairing_in_progress">Probíhá Combo párování</string>
|
||||
<string name="combov2_pairing_start_steps">Kroky k provedení párování s Combo:\n\n
|
||||
1. Na vaší pumpě přejděte do nastavení Bluetooth\n
|
||||
2. Zkontrolujte, zda je zařízení již zobrazeno jako spárované. pokud ano, přejděte na obrazovku pumpy \"Odstranit zařízení\" a odstranit/zrušit párování tohoto zařízení\n
|
||||
3. Přejděte na obrazovku pumpy \"Přidat zařízení\" a spárujte na pumpě\n
|
||||
4. Klikněte na tlačítko \"Spustit párování\" níže pro zahájení párování v AndroidAPS\n</string>
|
||||
<string name="combov2_steps_if_no_connection_during_pairing">Po nějaké době se na obrazovce pumpy zobrazí jméno telefonu; stiskněte KONTROLA pro potvrzení.\n\n
|
||||
Po úspěšném dokončení párování, potvrďte dokončení párování na vaší pumpě a vráťte se na hlavní obrazovku pumpy dvojím stisknutím tlačítka KONEC.\n\n
|
||||
Pokud po více než ~5 minutách není navázáno žádné spojení:\n\n
|
||||
1. Stiskněte tlačítko Zpět nebo tlačítko \"Zrušit párování\"\n
|
||||
2. Zrušte párování na Combo (současně stiskněte tlačítka „UP i MENU“ pro zrušení párování)\n
|
||||
3. Zkuste znovu spárovat</string>
|
||||
<string name="combov2_pin_entry_hint">0123456789</string>
|
||||
<string name="combov2_enter_pin">Vložte PIN</string>
|
||||
<string name="combov2_cancel_pairing">Zrušit párování</string>
|
||||
<string name="combov2_pin_hint">10místný PIN</string>
|
||||
<string name="combov2_pairing_finished_successfully">Úspěšně spárováno s Combo</string>
|
||||
<string name="combov2_pairing_cancelled">Párování s Combo zrušeno uživatelem</string>
|
||||
<string name="combov2_pairing_combo_scan_timeout_reached">Časový limit pro vyhledávání Combo dosažen</string>
|
||||
<string name="combov2_pairing_failed_due_to_error">Párování se nezdařilo z důvodu chyby: %1$s</string>
|
||||
<string name="combov2_pairing_aborted_unknown_reasons">Párování přerušeno z neznámých důvodů</string>
|
||||
<string name="combov2_scanning_for_pump">Vyhledávání pumpy</string>
|
||||
<string name="combov2_establishing_bt_connection">Navazování připojení Bluetooth (pokus č. %1$d)</string>
|
||||
<string name="combov2_pairing_performing_handshake">Provádím navazování spojení s pumpou</string>
|
||||
<string name="combov2_pairing_pump_requests_pin">Pumpa vyžaduje desetimístný kód PIN</string>
|
||||
<string name="combov2_pairing_finishing">Dokončování párování</string>
|
||||
<string name="combov2_no_connection_for_n_mins">Žádné spojení během %1$d min</string>
|
||||
<string name="combov2_less_than_one_minute_ago">Před méně než minutou</string>
|
||||
<string name="combov2_setting_current_pump_time">Nastavení aktuálního času pumpy</string>
|
||||
<string name="combov2_setting_current_pump_date">Nastavení aktuálního data pumpy</string>
|
||||
<string name="combov2_not_initialized">Není inicializován</string>
|
||||
<string name="combov2_checking_pump">Kontrola pumpy</string>
|
||||
<string name="combov2_ready">Připraven</string>
|
||||
<string name="combov2_suspended">Pozastaveno</string>
|
||||
<string name="combov2_pump_is_suspended">Pumpa pozastavena</string>
|
||||
<string name="combov2_executing_command">Provádění příkazu</string>
|
||||
<string name="combov2_getting_basal_profile_cmddesc">Načítám bazální profil</string>
|
||||
<string name="combov2_setting_basal_profile_cmddesc">Nastavení bazálního profilu</string>
|
||||
<string name="combov2_setting_tbr_cmddesc">Nastavení %1$d%% dočasného bazálu na %2$d minut</string>
|
||||
<string name="combov2_cancelling_tbr">Zrušení probíhajícího dočasného bazálu</string>
|
||||
<string name="combov2_delivering_bolus_cmddesc">Podávání %1$.1f U</string>
|
||||
<string name="combov2_fetching_tdd_history_cmddesc">Načítám CDD historii</string>
|
||||
<string name="combov2_updating_pump_datetime_cmddesc">Aktualizace data a času v pumpě</string>
|
||||
<string name="combov2_updating_pump_status_cmddesc">Nahrávám stav pumpy</string>
|
||||
<string name="combov2_pairing_pin_failure">PIN nefungoval. Zkontrolujte, zda jste neudělali překlep. Pokud se to stále děje, zrušte a opakujte párování.</string>
|
||||
<string name="combov2_discovery_duration">Délka hledání (v sekundách)</string>
|
||||
<string name="combov2_verbose_logging">Povolit podrobné protokolování</string>
|
||||
<string name="combov2_getting_basal_profile">Získávání bazálního profilu; čtení %1$d. faktoru</string>
|
||||
<string name="combov2_setting_basal_profile">Nastavení bazálního profilu; zapisování %1$d. faktoru</string>
|
||||
<string name="combov2_delivering_bolus">Podávání bolusu (podáno %1$.1f z %2$.1f U)</string>
|
||||
<string name="combov2_cannot_deliver_pump_suspended">Nelze podat bolus - pumpa je pozastavena</string>
|
||||
<string name="combov2_insufficient_insulin_in_reservoir">Nedostatečný inzulin v zásobníku</string>
|
||||
<string name="combov2_bolus_cancelled">Bolus zrušen</string>
|
||||
<string name="combov2_bolus_delivery_failed">Provádění bolusu selhalo. Zdá se, že žádný bolus nebyl podán. Zkontrolujte pumpu a případně pošlete bolus znovu. Jako bezpečnostní opatření podání bolusu není opakováno.</string>
|
||||
<string name="combov2_bolus_not_delivered">Bolus nebyl podán</string>
|
||||
<string name="combov2_cannot_access_pump_data">Nelze získat přístup k datům pumpy; pumpa musí být znovu spárována</string>
|
||||
<string name="combov2_unaccounted_bolus_detected_cancelling_bolus">Zjištěny nečekané bolusy. Z bezpečnostních důvodů bolus zrušen.</string>
|
||||
<string name="combov2_incorrect_active_basal_profile">Nesprávný aktivní bazální profil; profil 1 musí být aktivní, ne profil %1$d</string>
|
||||
<string name="combov2_unrecognized_alert">Nerozpoznaná Combo výstraha</string>
|
||||
<string name="combov2_combo_alert">Combo výstraha</string>
|
||||
<string name="combov2_last_bolus">%1$.1f %2$s (%3$s)</string>
|
||||
<string name="combov2_current_tbr">%1$d%% (zbývá %2$d min)</string>
|
||||
<string name="combov2_current_tbr_less_than_1min">%1$d%% (zbývá méně než 1 min)</string>
|
||||
<string name="combov2_load_tdds_cancelled">Načítání CDD zrušeno</string>
|
||||
<string name="combov2_retrieving_tdds_failed">Načítání CDD selhalo</string>
|
||||
<string name="combov2_no_activity">{fa-bed}</string>
|
||||
<string name="combov2_battery_low_warning">Slabá baterie v pumpě</string>
|
||||
<string name="combov2_reservoir_low_warning">V zásobníku je málo inzulínu</string>
|
||||
<string name="combov2_setting_tbr_succeeded">Nastavení dočasného bazálu bylo úspěšné</string>
|
||||
<string name="combov2_setting_tbr_failed">Nastavení dočasného bazálu selhalo</string>
|
||||
<string name="combov2_hit_unexpected_tbr_limit">Při úpravě dočasného bazálu došlo k neočekávanému limitu: vyžadováno %1$d%%, dosažen limit %1$d%%</string>
|
||||
<string name="combov2_cannot_set_absolute_tbr_if_basal_zero">Nelze nastavit absolutní dočasný bazál, pokud je bazální dávka nulová</string>
|
||||
<string name="combov2_pair_with_pump_summary">Párovat AndroidAPS a Android s momentálně nespárovanou pumpou Accu-Chek Combo</string>
|
||||
<string name="combov2_unpair_pump_summary">Zrušit párování AndroidAPS a Androidu v současné době spárované Accu-Chek Combo</string>
|
||||
<string name="combov2_unknown_tbr_detected">Neznámý dočasný bazál byl zjištěn a zastaven. Procentuální hodnota: %1$d%%; zbývající doba trvání: %2$s</string>
|
||||
<string name="combov2_connection_error">Chyba připojení: %1$s</string>
|
||||
<string name="combov2_short_status_last_connection">Poslední spoj: před %1$d min</string>
|
||||
<string name="combov2_short_status_alert">Výstraha: %s</string>
|
||||
<string name="combov2_short_status_last_bolus">Poslední bolus: %1$sU @ %2$s</string>
|
||||
<string name="combov2_short_status_temp_basal">Doč. bazál: %s</string>
|
||||
<string name="combov2_short_status_reservoir">Zásobník: %dU</string>
|
||||
<string name="combov2_short_status_battery_state_empty">prázdný</string>
|
||||
<string name="combov2_short_status_battery_state_low">nízká</string>
|
||||
<string name="combov2_short_status_battery_state_full">plná</string>
|
||||
<string name="combov2_short_status_battery_state">Bat: %s</string>
|
||||
<string name="combov2_automatic_reservoir_entry">Detekovat a vložit automaticky výmenu zásobníku</string>
|
||||
<string name="combov2_automatic_battery_entry">Detekovat a vložit automaticky výmenu baterie</string>
|
||||
<string name="combov2_note_reservoir_change">Výměna zásobníku inzulínu automaticky vložena ovladačem combov2</string>
|
||||
<string name="combov2_note_battery_change">Výměna baterie automaticky vložena ovladačem combov2</string>
|
||||
<string name="combov2_timezone_changed">Časové pásmo změněno</string>
|
||||
<string name="combov2_datetime_changed">Datum a/nebo čas změněn</string>
|
||||
<string name="combov2_dst_started">Začal letní čas (DST)</string>
|
||||
<string name="combov2_dst_ended">Letní čas (DST) skončil</string>
|
||||
</resources>
|
||||
|
|
|
@ -16,8 +16,9 @@
|
|||
<string name="combov2_error_6">Erreur mécanique</string>
|
||||
<string name="combov2_error_7">Erreur électronique</string>
|
||||
<string name="combov2_error_8">Coupure de l\'alimentation</string>
|
||||
<string name="combov2_error_9">Fin de la pompe de prêt</string>
|
||||
<string name="combov2_error_9">Fin de fonctionnement de la pompe de prêt</string>
|
||||
<string name="combov2_error_10">Erreur de réservoir</string>
|
||||
<string name="combov2_error_11">Ensemble d\'infusion non amorcé</string>
|
||||
<string name="combov2_extended_bolus_not_supported">Le bolus étendu n\'est pas pris en charge</string>
|
||||
<string name="combov2_title">Accu-Chek Combo v2</string>
|
||||
<string name="combov2_pair_with_pump_title">Appairer la pompe</string>
|
||||
|
@ -58,17 +59,59 @@
|
|||
<string name="combov2_setting_tbr_cmddesc">Réglage du DBT %1$d%% pendant %2$d minutes</string>
|
||||
<string name="combov2_cancelling_tbr">Annulation du DBT en cours</string>
|
||||
<string name="combov2_delivering_bolus_cmddesc">Injection de %1$.1fU de bolus en cours</string>
|
||||
<string name="combov2_fetching_tdd_history_cmddesc">Récupération de l\'historique DTI</string>
|
||||
<string name="combov2_fetching_tdd_history_cmddesc">Récupération de l\'historique DTQ</string>
|
||||
<string name="combov2_updating_pump_datetime_cmddesc">Mise à jour date et heure de la pompe</string>
|
||||
<string name="combov2_updating_pump_status_cmddesc">Mise à jour de l\'état pompe</string>
|
||||
<string name="combov2_pairing_pin_failure">Le code PIN n\'a pas fonctionné. Vérifiez s\'il y a eu une faute de frappe. Si cela persiste, annulez et recommencez l\'appairage.</string>
|
||||
<string name="combov2_discovery_duration">Durée de recherche (en secondes)</string>
|
||||
<string name="combov2_verbose_logging">Activer les informations log détaillées de la Combo</string>
|
||||
<string name="combov2_getting_basal_profile">Récupération du profil basal, %1$d valeure(s) lue(s)</string>
|
||||
<string name="combov2_setting_basal_profile">Paramétrage du profil basal, %1$d valeure(s) écrite(s)</string>
|
||||
<string name="combov2_delivering_bolus">Injection du bolus (%1$.1f sur %2$.1f U injectés)</string>
|
||||
<string name="combov2_cannot_deliver_pump_suspended">Impossible d\'injecter le traitement - la pompe est suspendue</string>
|
||||
<string name="combov2_insufficient_insulin_in_reservoir">Insuline insuffisante dans le réservoir</string>
|
||||
<string name="combov2_bolus_cancelled">Bolus annulé</string>
|
||||
<string name="combov2_bolus_delivery_failed">Administration bolus échouée. Il semble qu’aucun bolus n’a été administré. Pour être sûr, veuillez vérifier la pompe pour éviter un double bolus ensuite refaire le bolus une nouvelle fois.</string>
|
||||
<string name="combov2_bolus_not_delivered">Bolus non injecté</string>
|
||||
<string name="combov2_cannot_access_pump_data">Impossible d\'accéder aux données de la pompe, la pompe doit être à nouveau appairée</string>
|
||||
<string name="combov2_unaccounted_bolus_detected_cancelling_bolus">Détection de bolus non comptabilisés. Annulation du bolus pour des raisons de sécurité.</string>
|
||||
<string name="combov2_incorrect_active_basal_profile">Profil actif incorrect, le profil 1 doit être actif et non le profil %1$d</string>
|
||||
<string name="combov2_unrecognized_alert">Alerte Combo inconnue</string>
|
||||
<string name="combov2_combo_alert">Alerte Combo</string>
|
||||
<string name="combov2_last_bolus">%1$.1f %2$s (%3$s)</string>
|
||||
<string name="combov2_current_tbr">%1$d%% (%2$d min restantes)</string>
|
||||
<string name="combov2_current_tbr_less_than_1min">%1$d%% (moins de 1 min restantes)</string>
|
||||
<string name="combov2_load_tdds_cancelled">Chargement des DTQ annulé</string>
|
||||
<string name="combov2_retrieving_tdds_failed">Échec de la récupération des DTQ</string>
|
||||
<string name="combov2_no_activity">{fa-bed}</string>
|
||||
<string name="combov2_battery_empty_indicator">{fa-battery-empty}</string>
|
||||
<string name="combov2_battery_low_indicator">{fa-battery-quarter}</string>
|
||||
<string name="combov2_battery_full_indicator">{fa-battery-full}</string>
|
||||
<string name="combov2_battery_low_warning">Pile pompe faible</string>
|
||||
<string name="combov2_reservoir_low_warning">Niveau réservoir pompe bas</string>
|
||||
<string name="combov2_setting_tbr_succeeded">Paramétrage du DBT réussi</string>
|
||||
<string name="combov2_setting_tbr_failed">Échec du réglage du DBT</string>
|
||||
<string name="combov2_hit_unexpected_tbr_limit">Limite inattendue lors de l’ajustement du DBT: le pourcentage cible de %1$d%%, a dépassé la limite de %1$d%%</string>
|
||||
<string name="combov2_cannot_set_absolute_tbr_if_basal_zero">Impossible de définir le DBT absolu si le débit de basal est zéro</string>
|
||||
<string name="combov2_pair_with_pump_summary">Appairer AndroidAPS et Android avec une pompe Accu-Chek Combo non appariée</string>
|
||||
<string name="combov2_unpair_pump_summary">Dissocier AndroidAPS et Android de la pompe Accu-Chek Combo actuelle</string>
|
||||
<string name="combov2_unknown_tbr_detected">Un DBT inconnu a été détecté et arrêté, pourcentage: %1$d%%, durée restante: %2$s</string>
|
||||
<string name="combov2_connection_error">Erreur de connexion: %1$s</string>
|
||||
<string name="combov2_short_status_last_connection">Dernière connexion : il y a %1$d min</string>
|
||||
<string name="combov2_short_status_alert">Alerte: %s</string>
|
||||
<string name="combov2_short_status_last_bolus">Dernier bolus: %1$sU @ %2$s</string>
|
||||
<string name="combov2_short_status_temp_basal">Temps : %s</string>
|
||||
<string name="combov2_short_status_reservoir">Réserve : %dU</string>
|
||||
<string name="combov2_short_status_battery_state_empty">vide</string>
|
||||
<string name="combov2_short_status_battery_state_low">basse</string>
|
||||
<string name="combov2_short_status_battery_state_full">plein</string>
|
||||
<string name="combov2_short_status_battery_state">Pile: %s</string>
|
||||
<string name="combov2_automatic_reservoir_entry">Détection et enregistrement automatique du changement du réservoir</string>
|
||||
<string name="combov2_automatic_battery_entry">Détection et enregistrement automatique du changement de pile</string>
|
||||
<string name="combov2_note_reservoir_change">Changement de réservoir détecté automatiquement par le pilote ComboV2</string>
|
||||
<string name="combov2_note_battery_change">Changement de pile détecté automatiquement par le pilote ComboV2</string>
|
||||
<string name="combov2_timezone_changed">Fuseau horaire modifié</string>
|
||||
<string name="combov2_datetime_changed">Date et/ou heure modifiée(s)</string>
|
||||
<string name="combov2_dst_started">Changement d\'heure commencé</string>
|
||||
<string name="combov2_dst_ended">Changement d\'heure terminée</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,23 +1,127 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="combov2_plugin_name">Accu Chek Combo</string>
|
||||
<string name="combov2_plugin_description">Нативная интеграция с помпами Accu-Chek Combo</string>
|
||||
<string name="combov2_could_not_connect">Не удалось подключиться к помпе</string>
|
||||
<string name="combov2_not_paired">Нет сопряжения с помпой</string>
|
||||
<string name="combov2_pump_terminated_connection">Помпа прекратила подключение</string>
|
||||
<string name="combov2_warning">Предупреждение от Combo</string>
|
||||
<string name="combov2_error">Ошибка Combo</string>
|
||||
<string name="combov2_warning_4">Позвонить на Горячую линию для обновления</string>
|
||||
<string name="combov2_warning_10">Сбой Bluetooth; повторить сопряжение</string>
|
||||
<string name="combov2_error_1">Резервуар помпы пуст</string>
|
||||
<string name="combov2_error_2">Батарея разряжена</string>
|
||||
<string name="combov2_error_4">закупорка</string>
|
||||
<string name="combov2_error_5">Завершение резервирования данных помпы</string>
|
||||
<string name="combov2_error_6">Механическая ошибка</string>
|
||||
<string name="combov2_error_7">Ошибка электроники</string>
|
||||
<string name="combov2_error_8">Прерывание подачи электропитания</string>
|
||||
<string name="combov2_error_9">Конец операции по сдаче</string>
|
||||
<string name="combov2_error_10">Ошибка резервуара</string>
|
||||
<string name="combov2_error_11">Инфузионный набор не заполнен</string>
|
||||
<string name="combov2_extended_bolus_not_supported">Пролонгированный болюс не поддерживается</string>
|
||||
<string name="combov2_title">Accu Chek Combo v2</string>
|
||||
<string name="combov2_pair_with_pump_title">Сопряжение с помпой</string>
|
||||
<string name="combov2_unpair_pump_title">Разорвать сопряжение с помпой</string>
|
||||
<string name="combov2_driver_state_label">Статус драйвера помпы</string>
|
||||
<string name="combov2_current_activity_label">Текущие действия</string>
|
||||
<string name="bluetooth_address">Адрес Bluetooth</string>
|
||||
<string name="combov2_start_pairing">Начните сопряжение</string>
|
||||
<string name="combov2_pairing_in_progress">Идёт сопряжение с Combo</string>
|
||||
<string name="combov2_pairing_start_steps">Для выполнения сопряжения с Combo:\n\n
|
||||
1. На помпе перейдите в настройки Bluetooth\n
|
||||
2. Проверьте, есть ли здесь ранее сопряженное устройство; если да, то перейдите на экран «Удалить устройство» и удалите его\n
|
||||
3. Перейдите на экран помпы «Добавить устройство» и запустите процесс сопряжение\n
|
||||
4. Нажмите на кнопку «Начать подключение» ниже, чтобы начать сопряжение в AndroidAPS\n</string>
|
||||
<string name="combov2_steps_if_no_connection_during_pairing">Через некоторое время имя телефона отображается на экране насоса, нажмите кнопку-галочку CHECK для подтверждения.\n\n
|
||||
При успешно завершенном подключении, подтвердите это на помпе и вернитесь в главное окно помпы дважды нажав кнопку CHECK.\n\n
|
||||
Если соединение не установлено более чем через ~5 минут:\n\n
|
||||
1. Нажмите кнопку \"Назад\" или кнопку \"Отменить сопряжение\"\n
|
||||
2. Отмените сопряжение на Combo (нажав кнопку ВВЕРХ и кнопку МЕНЮ одновременно)\n
|
||||
3. Повторите процедуру сопряжения заново</string>
|
||||
<string name="combov2_pin_entry_hint">0123456789</string>
|
||||
<string name="combov2_enter_pin">Введите PIN-код</string>
|
||||
<string name="combov2_cancel_pairing">Отменить сопряжение</string>
|
||||
<string name="combov2_pin_hint">10-значный PIN-код</string>
|
||||
<string name="combov2_pairing_finished_successfully">Сопряжение с Combo завершено успешно</string>
|
||||
<string name="combov2_pairing_cancelled">Сопряжение с Combo отменено пользователем</string>
|
||||
<string name="combov2_pairing_combo_scan_timeout_reached">Тайм-аут сканирования Combo</string>
|
||||
<string name="combov2_pairing_failed_due_to_error">Сопряжение не состоялось из-за ошибки: %1$s</string>
|
||||
<string name="combov2_pairing_aborted_unknown_reasons">Сопряжение прервано по неизвестной причине</string>
|
||||
<string name="combov2_scanning_for_pump">Поиск помпы</string>
|
||||
<string name="combov2_establishing_bt_connection">Установка Bluetooth-соединения (попытка № %1$d)</string>
|
||||
<string name="combov2_pairing_performing_handshake">Cинхронизация связи с помпой</string>
|
||||
<string name="combov2_pairing_pump_requests_pin">Помпа запрашивает 10-значный PIN-код</string>
|
||||
<string name="combov2_pairing_finishing">Завершение сопряжения</string>
|
||||
<string name="combov2_no_connection_for_n_mins">Нет соединения на протяжении %1$d минут</string>
|
||||
<string name="combov2_less_than_one_minute_ago">Менее минуты назад</string>
|
||||
<string name="combov2_setting_current_pump_time">Установка времени на помпе</string>
|
||||
<string name="combov2_setting_current_pump_date">Установка даты на помпе</string>
|
||||
<string name="combov2_not_initialized">Нет инициализации</string>
|
||||
<string name="combov2_checking_pump">Проверка помпы</string>
|
||||
<string name="combov2_ready">Помпа готова</string>
|
||||
<string name="combov2_suspended">Помпа остановлена</string>
|
||||
<string name="combov2_pump_is_suspended">Помпа остановлена</string>
|
||||
<string name="combov2_executing_command">Выполнение команды</string>
|
||||
<string name="combov2_getting_basal_profile_cmddesc">Получение базального профиля</string>
|
||||
<string name="combov2_setting_basal_profile_cmddesc">Установка базального профиля</string>
|
||||
<string name="combov2_setting_tbr_cmddesc">Установка %1$d%% врем базала TBR на %2$d минут</string>
|
||||
<string name="combov2_cancelling_tbr">Отмена текущего врем базала TBR</string>
|
||||
<string name="combov2_delivering_bolus_cmddesc">Подается болюс %1$.1f ед</string>
|
||||
<string name="combov2_fetching_tdd_history_cmddesc">Получение суточной истории дозировок TDD</string>
|
||||
<string name="combov2_updating_pump_datetime_cmddesc">Обновление даты и времени помпы</string>
|
||||
<string name="combov2_updating_pump_status_cmddesc">Обновление статуса помпы</string>
|
||||
<string name="combov2_pairing_pin_failure">PIN-код не принят. Проверьте наличие опечаток. Если
|
||||
ошибка повторится, отмените сопряжение и повторите процесс.</string>
|
||||
<string name="combov2_discovery_duration">Время обнаружения (в секундах)</string>
|
||||
<string name="combov2_verbose_logging">Включить подробное журналирование Combo</string>
|
||||
<string name="combov2_getting_basal_profile">Получение базового профиля; %1$d фактор(ов) прочитано</string>
|
||||
<string name="combov2_setting_basal_profile">Получение базового профиля; %1$d фактор(ов) прочитано</string>
|
||||
<string name="combov2_delivering_bolus">Подача болюса (введено %1$.1f из %2$.1f ед.)</string>
|
||||
<string name="combov2_cannot_deliver_pump_suspended">Болюс не подан - помпа остановлена</string>
|
||||
<string name="combov2_insufficient_insulin_in_reservoir">Недостаточно инсулина в резервуаре</string>
|
||||
<string name="combov2_bolus_cancelled">Болюс отменен</string>
|
||||
<string name="combov2_bolus_delivery_failed">Подача болюса не состоялась. Чтобы удостовериться, проверьте помпу во избежание двойного болюса и повторите подачу. Для защиты от ложных срабатываний болюсы не повторяются автоматически.</string>
|
||||
<string name="combov2_bolus_not_delivered">Болюс не подан</string>
|
||||
<string name="combov2_cannot_access_pump_data">Не удается получить данные с помпы; следует заново выполнить сопряжение</string>
|
||||
<string name="combov2_unaccounted_bolus_detected_cancelling_bolus">Обнаружены неучтенные подачи болюса. Отмена болюса по соображениям безопасности.</string>
|
||||
<string name="combov2_incorrect_active_basal_profile">Некорректный активный базальный профиль; должен быть активным профиль 1, а не %1$d</string>
|
||||
<string name="combov2_unrecognized_alert">Неопознанное оповещение Combo</string>
|
||||
<string name="combov2_combo_alert">Оповещение Combo</string>
|
||||
<string name="combov2_last_bolus">%1$.1f%2$s(%3$s)</string>
|
||||
<string name="combov2_current_tbr">%1$d%% (%2$d мин осталось)</string>
|
||||
<string name="combov2_current_tbr_less_than_1min">%1$d%% (осталось меньше 1 минуты)</string>
|
||||
<string name="combov2_load_tdds_cancelled">Загрузка TDD отменена</string>
|
||||
<string name="combov2_retrieving_tdds_failed">Не удалось получить TDD</string>
|
||||
<string name="combov2_no_activity">{fa-bed}</string>
|
||||
<string name="combov2_battery_empty_indicator">{fa-battery-empty}</string>
|
||||
<string name="combov2_battery_low_indicator">{fa-battery-quarter}</string>
|
||||
<string name="combov2_battery_full_indicator">{fa-battery-full}</string>
|
||||
<string name="combov2_battery_low_warning">Низкий заряд батареи помпы</string>
|
||||
<string name="combov2_reservoir_low_warning">Низкий уровень инсулина в картридже помпы</string>
|
||||
<string name="combov2_setting_tbr_succeeded">Настройки TBR выполнены</string>
|
||||
<string name="combov2_setting_tbr_failed">Не удалось установить TBR</string>
|
||||
<string name="combov2_hit_unexpected_tbr_limit">Непредвиденный предел, встретившийся при настройке TBR: целевой процент составил %1$d%%, а достиг предела %1$d%%</string>
|
||||
<string name="combov2_cannot_set_absolute_tbr_if_basal_zero">Невозможно установить абсолютный TBR, если базовая скорость равна нулю</string>
|
||||
<string name="combov2_pair_with_pump_summary">Выполнить сопряжение AndroidAPS и Android с помпой Accu-Chek Combo</string>
|
||||
<string name="combov2_unpair_pump_summary">Отключить AndroidAPS и AndroidAPS от помпы Accu-Chek Combo</string>
|
||||
<string name="combov2_unknown_tbr_detected">Обнаружена и остановлена неизвестная временная базальная скоростьTBR; в процентах: %1$d%%; оставшаяся продолжительность: %2$s</string>
|
||||
<string name="combov2_connection_error">Ошибка соединения: %1$s</string>
|
||||
<string name="combov2_short_status_last_connection">Предыдущее соединение: %1$d мин. назад</string>
|
||||
<string name="combov2_short_status_alert">Предупреждение: %s</string>
|
||||
<string name="combov2_short_status_last_bolus">Предыдущий болюс: %1$s ед. @ %2$s</string>
|
||||
<string name="combov2_short_status_temp_basal">Временн %s</string>
|
||||
<string name="combov2_short_status_reservoir">Резервуар: %dед</string>
|
||||
<string name="combov2_short_status_battery_state_empty">пусто</string>
|
||||
<string name="combov2_short_status_battery_state_low">низкая</string>
|
||||
<string name="combov2_short_status_battery_state_full">заряжена полностью</string>
|
||||
<string name="combov2_short_status_battery_state">Батарея: %s</string>
|
||||
<string name="combov2_automatic_reservoir_entry">Автоматически определять и вносить запись о замене резервуара инсулина</string>
|
||||
<string name="combov2_automatic_battery_entry">Автоматически определять и вносить запись о замене батареи</string>
|
||||
<string name="combov2_note_reservoir_change">Запись о замене резервуара инсулина автоматически вносится драйвером combov2</string>
|
||||
<string name="combov2_note_battery_change">Запись о замене батареи автоматически вносится драйвером combov2</string>
|
||||
<string name="combov2_timezone_changed">Часовой пояс изменен</string>
|
||||
<string name="combov2_datetime_changed">Дата и/или время изменены</string>
|
||||
<string name="combov2_dst_started">Начато летнее/зимнее время (ДСТ)</string>
|
||||
<string name="combov2_dst_ended">Летнее/зимнее время окончено (ДСТ)</string>
|
||||
</resources>
|
||||
|
|
|
@ -12,9 +12,6 @@
|
|||
android:title="@string/combov2_pair_with_pump_title"
|
||||
android:summary="@string/combov2_pair_with_pump_summary"
|
||||
android:shouldDisableView="true">
|
||||
<intent
|
||||
android:targetClass="info.nightscout.pump.combov2.activities.ComboV2PairingActivity"
|
||||
android:targetPackage="info.nightscout.androidaps" />
|
||||
</Preference>
|
||||
|
||||
<Preference
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
<string name="diaconn_g8_useextended_title">Utiliser les bolus étendus pour > 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="diagonn_g8_tdd_label">DTQ</string>
|
||||
<string name="bolus_step">Incrément Bolus</string>
|
||||
<string name="basal_step">Incrément Basal</string>
|
||||
<string name="pump_firmware_label">Firmware</string>
|
||||
|
|
|
@ -37,18 +37,14 @@ import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchConfig;
|
|||
import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchLifecycleEvent;
|
||||
import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchState;
|
||||
import info.nightscout.androidaps.plugins.pump.eopatch.vo.TempBasal;
|
||||
import info.nightscout.interfaces.plugin.ActivePlugin;
|
||||
import info.nightscout.interfaces.profile.ProfileFunction;
|
||||
import info.nightscout.interfaces.pump.DetailedBolusInfo;
|
||||
import info.nightscout.interfaces.pump.PumpSync;
|
||||
import info.nightscout.interfaces.pump.defs.PumpType;
|
||||
import info.nightscout.interfaces.queue.CommandQueue;
|
||||
import info.nightscout.rx.AapsSchedulers;
|
||||
import info.nightscout.rx.bus.RxBus;
|
||||
import info.nightscout.rx.events.EventCustomActionsChanged;
|
||||
import info.nightscout.rx.events.EventPumpStatusChanged;
|
||||
import info.nightscout.rx.events.EventRefreshOverview;
|
||||
import info.nightscout.rx.logging.AAPSLogger;
|
||||
import info.nightscout.shared.interfaces.ResourceHelper;
|
||||
import info.nightscout.shared.sharedPreferences.SP;
|
||||
import info.nightscout.shared.utils.DateUtil;
|
||||
|
@ -63,10 +59,6 @@ public class PatchManager implements IPatchManager {
|
|||
|
||||
@Inject PatchManagerImpl patchManager;
|
||||
@Inject IPreferenceManager pm;
|
||||
@Inject ProfileFunction profileFunction;
|
||||
@Inject ActivePlugin activePlugin;
|
||||
@Inject CommandQueue commandQueue;
|
||||
@Inject AAPSLogger aapsLogger;
|
||||
@Inject ResourceHelper resourceHelper;
|
||||
@Inject RxBus rxBus;
|
||||
@Inject Context context;
|
||||
|
|
|
@ -54,7 +54,6 @@ import info.nightscout.androidaps.plugins.pump.eopatch.ble.task.StopComboBolusTa
|
|||
import info.nightscout.androidaps.plugins.pump.eopatch.ble.task.StopExtBolusTask;
|
||||
import info.nightscout.androidaps.plugins.pump.eopatch.ble.task.StopNowBolusTask;
|
||||
import info.nightscout.androidaps.plugins.pump.eopatch.ble.task.StopTempBasalTask;
|
||||
import info.nightscout.androidaps.plugins.pump.eopatch.ble.task.SyncBasalHistoryTask;
|
||||
import info.nightscout.androidaps.plugins.pump.eopatch.ble.task.TaskBase;
|
||||
import info.nightscout.androidaps.plugins.pump.eopatch.ble.task.TaskFunc;
|
||||
import info.nightscout.androidaps.plugins.pump.eopatch.ble.task.UpdateConnectionTask;
|
||||
|
@ -91,8 +90,6 @@ import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchConfig;
|
|||
import info.nightscout.androidaps.plugins.pump.eopatch.vo.PatchState;
|
||||
import info.nightscout.androidaps.plugins.pump.eopatch.vo.TempBasal;
|
||||
import info.nightscout.interfaces.pump.DetailedBolusInfo;
|
||||
import info.nightscout.interfaces.pump.PumpSync;
|
||||
import info.nightscout.interfaces.pump.defs.PumpType;
|
||||
import info.nightscout.rx.AapsSchedulers;
|
||||
import info.nightscout.rx.logging.AAPSLogger;
|
||||
import info.nightscout.rx.logging.LTag;
|
||||
|
@ -111,7 +108,6 @@ public class PatchManagerImpl {
|
|||
@Inject SP sp;
|
||||
@Inject AAPSLogger aapsLogger;
|
||||
@Inject AapsSchedulers aapsSchedulers;
|
||||
@Inject PumpSync pumpSync;
|
||||
|
||||
@Inject StartBondTask START_BOND;
|
||||
@Inject GetPatchInfoTask GET_PATCH_INFO;
|
||||
|
@ -562,9 +558,6 @@ public class PatchManagerImpl {
|
|||
@Inject
|
||||
PatchStateManager patchStateManager;
|
||||
|
||||
@Inject
|
||||
SyncBasalHistoryTask syncBasalHistoryTask;
|
||||
|
||||
void onAlarmNotification(AlarmNotification notification) throws Throwable {
|
||||
patchStateManager.updatePatchState(PatchState.create(notification.patchState, System.currentTimeMillis()));
|
||||
|
||||
|
|
|
@ -80,10 +80,10 @@ public class PatchStateManager {
|
|||
// Resume --> onBasalResume
|
||||
onBasalResumeState();
|
||||
|
||||
} else if (oldState.isNormalBasalAct() == false) {
|
||||
} else if (!oldState.isNormalBasalAct()) {
|
||||
// Start --> onBasalStarted
|
||||
}
|
||||
} else if (oldState.isNormalBasalPaused() == false && newState.isNormalBasalPaused()) {
|
||||
} else if (!oldState.isNormalBasalPaused() && newState.isNormalBasalPaused()) {
|
||||
if (newState.isTempBasalAct()) {
|
||||
} else {
|
||||
// pause
|
||||
|
@ -93,25 +93,21 @@ public class PatchStateManager {
|
|||
|
||||
/* Temp Basal ------------------------------------------------------------------------------------------- */
|
||||
if (newState.isTempBasalAct()) {
|
||||
if (oldState.isTempBasalAct() == false) {
|
||||
if (!oldState.isTempBasalAct()) {
|
||||
// Start
|
||||
onTempBasalStartState();
|
||||
}
|
||||
}
|
||||
|
||||
boolean tempBasalStopped = false;
|
||||
boolean tempBasalFinished = false;
|
||||
boolean tempBasalFinished = newState.isTempBasalDone() && !newState.isPatchInternalSuspended();
|
||||
|
||||
if (newState.isTempBasalDone() && !newState.isPatchInternalSuspended()) {
|
||||
tempBasalFinished = true;
|
||||
}
|
||||
|
||||
if (oldState.isTempBasalDone() == false) {
|
||||
if (!oldState.isTempBasalDone()) {
|
||||
if (newState.isTempBasalDone()) {
|
||||
tempBasalStopped = true;
|
||||
|
||||
onTempBasalDoneState();
|
||||
} else if (oldState.isTempBasalAct() && newState.isTempBasalAct() == false) {
|
||||
} else if (oldState.isTempBasalAct() && !newState.isTempBasalAct()) {
|
||||
tempBasalStopped = true;
|
||||
|
||||
onTempBasalCancelState();
|
||||
|
@ -126,15 +122,15 @@ public class PatchStateManager {
|
|||
}
|
||||
}
|
||||
|
||||
if (newState.isTempBasalAct() == false && pm.getTempBasalManager().getStartedBasal() != null) {
|
||||
if (!newState.isTempBasalAct() && pm.getTempBasalManager().getStartedBasal() != null) {
|
||||
pm.getTempBasalManager().updateBasalStopped();
|
||||
}
|
||||
|
||||
/* Now Bolus -------------------------------------------------------------------------------------------- */
|
||||
if (oldState.isNowBolusRegAct() == false && newState.isNowBolusRegAct() == true) {
|
||||
if (!oldState.isNowBolusRegAct() && newState.isNowBolusRegAct()) {
|
||||
// Start
|
||||
} else if (oldState.isNowBolusDone() == false) {
|
||||
if (oldState.isNowBolusRegAct() && newState.isNowBolusRegAct() == false) {
|
||||
} else if (!oldState.isNowBolusDone()) {
|
||||
if (oldState.isNowBolusRegAct() && !newState.isNowBolusRegAct()) {
|
||||
// Cancel
|
||||
} else if (newState.isNowBolusDone()) {
|
||||
// Done
|
||||
|
@ -143,23 +139,23 @@ public class PatchStateManager {
|
|||
|
||||
BolusCurrent bolusCurrent = pm.getBolusCurrent();
|
||||
|
||||
if (newState.isNowBolusRegAct() == false && bolusCurrent.historyId(BolusType.NOW) > 0
|
||||
if (!newState.isNowBolusRegAct() && bolusCurrent.historyId(BolusType.NOW) > 0
|
||||
&& bolusCurrent.endTimeSynced(BolusType.NOW)) {
|
||||
bolusCurrent.clearBolus(BolusType.NOW);
|
||||
}
|
||||
|
||||
/* Extended Bolus --------------------------------------------------------------------------------------- */
|
||||
if (oldState.isExtBolusRegAct() == false && newState.isExtBolusRegAct() == true) {
|
||||
if (!oldState.isExtBolusRegAct() && newState.isExtBolusRegAct()) {
|
||||
// Start
|
||||
} else if (oldState.isExtBolusDone() == false) {
|
||||
if (oldState.isExtBolusRegAct() && newState.isExtBolusRegAct() == false) {
|
||||
} else if (!oldState.isExtBolusDone()) {
|
||||
if (oldState.isExtBolusRegAct() && !newState.isExtBolusRegAct()) {
|
||||
// Cancel
|
||||
} else if (newState.isExtBolusDone()) {
|
||||
// Done
|
||||
}
|
||||
}
|
||||
|
||||
if (newState.isExtBolusRegAct() == false && bolusCurrent.historyId(BolusType.EXT) > 0
|
||||
if (!newState.isExtBolusRegAct() && bolusCurrent.historyId(BolusType.EXT) > 0
|
||||
&& bolusCurrent.endTimeSynced(BolusType.EXT)) {
|
||||
bolusCurrent.clearBolus(BolusType.EXT);
|
||||
}
|
||||
|
@ -243,7 +239,7 @@ public class PatchStateManager {
|
|||
if (normalBasal != null) {
|
||||
pm.getNormalBasalManager().updateBasalStarted();
|
||||
normalBasal.updateNormalBasalIndex();
|
||||
pm.flushNormalBasalManager();;
|
||||
pm.flushNormalBasalManager();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -101,7 +101,7 @@ public class SyncBasalHistoryTask extends TaskBase {
|
|||
}
|
||||
|
||||
public synchronized int updateInjected(float[] normal, float[] temp, int start, int end) {
|
||||
if (pm.getPatchState().isPatchInternalSuspended() && pm.getPatchConfig().isInBasalPausedTime() == false) {
|
||||
if (pm.getPatchState().isPatchInternalSuspended() && !pm.getPatchConfig().isInBasalPausedTime()) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ import io.reactivex.rxjava3.core.Single;
|
|||
public class UpdateConnectionTask extends TaskBase {
|
||||
@Inject PatchStateManager patchStateManager;
|
||||
|
||||
private UpdateConnection UPDATE_CONNECTION;
|
||||
private final UpdateConnection UPDATE_CONNECTION;
|
||||
|
||||
@Inject
|
||||
public UpdateConnectionTask() {
|
||||
|
|
|
@ -10,7 +10,7 @@ import kotlin.reflect.KClass
|
|||
|
||||
@MustBeDocumented
|
||||
@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER)
|
||||
@kotlin.annotation.Retention(AnnotationRetention.RUNTIME)
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
@MapKey
|
||||
internal annotation class ViewModelKey(val value: KClass<out ViewModel>)
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ import io.reactivex.rxjava3.subjects.BehaviorSubject
|
|||
* BolusCurrent : 현재 패치에서 진행 중인 '볼루스의 정보'를 표현한 클래스.
|
||||
*/
|
||||
|
||||
class BolusCurrent(): IPreference<BolusCurrent> {
|
||||
class BolusCurrent : IPreference<BolusCurrent> {
|
||||
@Transient
|
||||
private val subject: BehaviorSubject<BolusCurrent> = BehaviorSubject.create()
|
||||
|
||||
|
|
|
@ -22,8 +22,7 @@ class PatchState: IPreference<PatchState> {
|
|||
private val stateBytes: ByteArray
|
||||
var updatedTimestamp: Long = 0
|
||||
|
||||
constructor(): this(ByteArray(SIZE), 0) {
|
||||
}
|
||||
constructor(): this(ByteArray(SIZE), 0)
|
||||
|
||||
constructor(stateBytes: ByteArray, updatedTimestamp: Long) {
|
||||
this.stateBytes = stateBytes
|
||||
|
|
|
@ -92,6 +92,7 @@
|
|||
<string name="patch_communication_succeed_message">Подключено к Patch.</string>
|
||||
<string name="patch_cancel_pairing">Отменить сопряжение</string>
|
||||
<string name="symbol_days">дней</string>
|
||||
<string name="all_dose_unit">  ед</string>
|
||||
<string name="insulin_suspend_msg1">После приостановки текущий болюс & Временный базал будет отменен. \n\nСкорость базала: %1$s ед/ч\nОсталось времени: %2$s\n& инсулина: %3$.2f U</string>
|
||||
<string name="insulin_suspend_msg2">После приостановки текущий болюс будет отменен. \n\n Осталось инсулина: %1$.2f U</string>
|
||||
<string name="insulin_suspend_msg3">После приостановки текущий Временный базал будет отменен.\n\n Скорость базала: %1$s ед/ч\n Осталось времени: %2$s</string>
|
||||
|
|
|
@ -79,10 +79,8 @@ class MedtronicUITask {
|
|||
|
||||
MedtronicCommandType.SetTemporaryBasal -> {
|
||||
val tbr = getTbrSettings()
|
||||
if (tbr != null) {
|
||||
result = communicationManager.setTemporaryBasal(tbr)
|
||||
}
|
||||
}
|
||||
|
||||
MedtronicCommandType.ReadTemporaryBasal -> {
|
||||
result = communicationManager.getTemporaryBasal()
|
||||
|
@ -128,7 +126,7 @@ class MedtronicUITask {
|
|||
}
|
||||
}
|
||||
|
||||
private fun getTbrSettings(): TempBasalPair? {
|
||||
private fun getTbrSettings(): TempBasalPair {
|
||||
return TempBasalPair(getDoubleFromParameters(0)!!, //
|
||||
false, //
|
||||
getIntegerFromParameters(1))
|
||||
|
|
|
@ -13,7 +13,7 @@ import kotlin.reflect.KClass
|
|||
annotation class OmnipodPluginQualifier
|
||||
|
||||
@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER)
|
||||
@kotlin.annotation.Retention(AnnotationRetention.RUNTIME)
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
@MapKey
|
||||
annotation class ViewModelKey(val value: KClass<out ViewModel>)
|
||||
|
||||
|
|
|
@ -309,7 +309,7 @@ class OmnipodDashManagerImpl @Inject constructor(
|
|||
.setUniqueId(podStateManager.uniqueId!!.toInt())
|
||||
.setSequenceNumber(podStateManager.messageSequenceNumber)
|
||||
.setNonce(NONCE)
|
||||
.setNumberOfUnits(Round.roundTo(podStateManager.firstPrimeBolusVolume!! * PodConstants.POD_PULSE_BOLUS_UNITS, POD_PULSE_BOLUS_UNITS))
|
||||
.setNumberOfUnits(Round.roundTo(podStateManager.firstPrimeBolusVolume!! * POD_PULSE_BOLUS_UNITS, POD_PULSE_BOLUS_UNITS))
|
||||
.setDelayBetweenPulsesInEighthSeconds(podStateManager.primePulseRate!!.toByte())
|
||||
.setProgramReminder(ProgramReminder(atStart = false, atEnd = false, atInterval = 0))
|
||||
.build(),
|
||||
|
@ -412,7 +412,7 @@ class OmnipodDashManagerImpl @Inject constructor(
|
|||
)
|
||||
observables.add(
|
||||
observeSendProgramBolusCommand(
|
||||
Round.roundTo(podStateManager.secondPrimeBolusVolume!! * PodConstants.POD_PULSE_BOLUS_UNITS, PodConstants.POD_PULSE_BOLUS_UNITS),
|
||||
Round.roundTo(podStateManager.secondPrimeBolusVolume!! * POD_PULSE_BOLUS_UNITS, POD_PULSE_BOLUS_UNITS),
|
||||
podStateManager.primePulseRate!!.toByte(),
|
||||
confirmationBeeps = false,
|
||||
completionBeeps = false
|
||||
|
|
|
@ -75,7 +75,6 @@ abstract class PumpPluginAbstract protected constructor(
|
|||
protected var displayConnectionMessages = false
|
||||
|
||||
var pumpType: PumpType = PumpType.GENERIC_AAPS
|
||||
get() = field
|
||||
set(value) {
|
||||
field = value
|
||||
pumpDescription.fillFor(value)
|
||||
|
|
|
@ -9,6 +9,5 @@ public enum BasalProfileStatus {
|
|||
NotInitialized, //
|
||||
ProfileOK, //
|
||||
ProfileChanged, //
|
||||
;
|
||||
|
||||
}
|
||||
|
|
|
@ -65,11 +65,11 @@ enum class PumpHistoryEntryGroup(val resourceId: Int, val pumpTypeGroupConfig: P
|
|||
if (pumpTypeGroupConfig == PumpTypeGroupConfig.All) {
|
||||
outList = translatedList!!.stream()
|
||||
.filter { pre -> pre.pumpTypeGroupConfig == PumpTypeGroupConfig.All }
|
||||
.toList();
|
||||
.toList()
|
||||
} else {
|
||||
outList = translatedList!!.stream()
|
||||
.filter { pre -> (pre.pumpTypeGroupConfig == PumpTypeGroupConfig.All || pre.pumpTypeGroupConfig == pumpTypeGroupConfig) }
|
||||
.toList();
|
||||
.toList()
|
||||
}
|
||||
|
||||
return outList
|
||||
|
|
|
@ -28,22 +28,21 @@ enum class PumpUpdateFragmentType {
|
|||
Custom_8
|
||||
;
|
||||
|
||||
final var children: List<PumpUpdateFragmentType>? = null
|
||||
var children: List<PumpUpdateFragmentType>? = null
|
||||
|
||||
constructor() {
|
||||
}
|
||||
constructor()
|
||||
|
||||
constructor(children: List<PumpUpdateFragmentType>) {
|
||||
this.children = children;
|
||||
this.children = children
|
||||
}
|
||||
|
||||
fun isOptionIncluded(type: PumpUpdateFragmentType): Boolean {
|
||||
if (this == type)
|
||||
return true
|
||||
else if (this.children != null && this.children!!.contains(type))
|
||||
return true;
|
||||
return true
|
||||
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
package info.nightscout.pump.common.driver.history
|
||||
|
||||
interface PumpDataConverter {
|
||||
}
|
||||
interface PumpDataConverter
|
|
@ -7,7 +7,7 @@ import java.util.GregorianCalendar
|
|||
abstract class PumpHistoryDataProviderAbstract : PumpHistoryDataProvider {
|
||||
|
||||
override fun getInitialData(): List<PumpHistoryEntry> {
|
||||
return getData(getInitialPeriod());
|
||||
return getData(getInitialPeriod())
|
||||
}
|
||||
|
||||
override fun getSpinnerWidthInPixels(): Int {
|
||||
|
|
|
@ -4,5 +4,4 @@ import info.nightscout.rx.events.Event
|
|||
|
||||
class EventPumpChanged(var serialNumber: String,
|
||||
var connectionAddress: String,
|
||||
var parameters: MutableMap<String, Any>? = null) : Event() {
|
||||
}
|
||||
var parameters: MutableMap<String, Any>? = null) : Event()
|
|
@ -2,5 +2,4 @@ package info.nightscout.pump.common.events
|
|||
|
||||
import info.nightscout.rx.events.Event
|
||||
|
||||
class EventPumpConnectionParametersChanged : Event() {
|
||||
}
|
||||
class EventPumpConnectionParametersChanged : Event()
|
|
@ -77,7 +77,7 @@ data class PumpDbEntryCarbs(var date: Long,
|
|||
var pumpId: Long? = null) {
|
||||
|
||||
constructor(detailedBolusInfo: DetailedBolusInfo,
|
||||
creator: info.nightscout.pump.common.sync.PumpSyncEntriesCreator
|
||||
creator: PumpSyncEntriesCreator
|
||||
) : this(detailedBolusInfo.timestamp,
|
||||
detailedBolusInfo.carbs,
|
||||
creator.model(),
|
||||
|
|
|
@ -110,7 +110,7 @@ class PumpSyncStorage @Inject constructor(
|
|||
return pumpSyncStorageTBR
|
||||
}
|
||||
|
||||
fun addBolusWithTempId(detailedBolusInfo: DetailedBolusInfo, writeToInternalHistory: Boolean, creator: info.nightscout.pump.common.sync.PumpSyncEntriesCreator): Boolean {
|
||||
fun addBolusWithTempId(detailedBolusInfo: DetailedBolusInfo, writeToInternalHistory: Boolean, creator: PumpSyncEntriesCreator): Boolean {
|
||||
val temporaryId = creator.generateTempId(detailedBolusInfo.timestamp)
|
||||
val result = pumpSync.addBolusWithTempId(
|
||||
detailedBolusInfo.timestamp,
|
||||
|
@ -157,7 +157,7 @@ class PumpSyncStorage @Inject constructor(
|
|||
"carbs=${carbsDto.carbs}, pumpSerial=${carbsDto.serialNumber}] - Result: $result")
|
||||
}
|
||||
|
||||
fun addTemporaryBasalRateWithTempId(temporaryBasal: PumpDbEntryTBR, writeToInternalHistory: Boolean, creator: info.nightscout.pump.common.sync.PumpSyncEntriesCreator): Boolean {
|
||||
fun addTemporaryBasalRateWithTempId(temporaryBasal: PumpDbEntryTBR, writeToInternalHistory: Boolean, creator: PumpSyncEntriesCreator): Boolean {
|
||||
val timeNow: Long = System.currentTimeMillis()
|
||||
val temporaryId = creator.generateTempId(timeNow)
|
||||
|
||||
|
|
|
@ -72,14 +72,6 @@ class PumpHistoryActivity : DaggerAppCompatActivity() {
|
|||
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
//filterHistory(selectedGroup)
|
||||
//setHistoryTypeSpinner()
|
||||
//aapsLogger.info(LTag.PUMP, "onResume")
|
||||
//binding.pumpHistoryRoot.requestLayout()
|
||||
}
|
||||
|
||||
private fun setHistoryTypeSpinner() {
|
||||
manualChange = true
|
||||
for (i in typeListFull!!.indices) {
|
||||
|
@ -119,12 +111,12 @@ class PumpHistoryActivity : DaggerAppCompatActivity() {
|
|||
binding.pumpHistoryText.text = historyDataProvider.getText(PumpHistoryText.PUMP_HISTORY)
|
||||
|
||||
binding.pumpHistoryType.adapter = spinnerAdapter
|
||||
binding.pumpHistoryType.getLayoutParams().width = fromDpToSize(historyDataProvider.getSpinnerWidthInPixels())
|
||||
binding.pumpHistoryType.requestLayout();
|
||||
binding.pumpHistoryType.setOnItemSelectedListener(object : AdapterView.OnItemSelectedListener {
|
||||
binding.pumpHistoryType.layoutParams.width = fromDpToSize(historyDataProvider.getSpinnerWidthInPixels())
|
||||
binding.pumpHistoryType.requestLayout()
|
||||
binding.pumpHistoryType.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
|
||||
override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
|
||||
if (manualChange) return
|
||||
val selected = binding.pumpHistoryType.getSelectedItem() as TypeList
|
||||
val selected = binding.pumpHistoryType.selectedItem as TypeList
|
||||
showingType = selected
|
||||
selectedGroup = selected.entryGroup
|
||||
filterHistory(selectedGroup)
|
||||
|
@ -138,7 +130,7 @@ class PumpHistoryActivity : DaggerAppCompatActivity() {
|
|||
if (manualChange) return
|
||||
filterHistory(PumpHistoryEntryGroup.All)
|
||||
}
|
||||
})
|
||||
}
|
||||
binding.pumpHistoryTypeText.requestLayout()
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ object ProfileUtil {
|
|||
return if (stringBuilder.length > 3) stringBuilder.substring(0, stringBuilder.length - 2) else stringBuilder.toString()
|
||||
}
|
||||
|
||||
fun getBasalProfilesDisplayableAsStringOfArray(profile: Profile, pumpType: PumpType): String? {
|
||||
fun getBasalProfilesDisplayableAsStringOfArray(profile: Profile, pumpType: PumpType): String {
|
||||
val stringBuilder = java.lang.StringBuilder()
|
||||
// for (basalValue in profiles) {
|
||||
// val basalValueValue = pumpType.determineCorrectBasalSize(basalValue.value)
|
||||
|
|
|
@ -157,7 +157,7 @@ public abstract class RileyLinkCommunicationManager<T extends RLMessage> {
|
|||
|
||||
// FIXME wakeUp successful !!!!!!!!!!!!!!!!!!
|
||||
|
||||
nextWakeUpRequired = System.currentTimeMillis() + (receiverDeviceAwakeForMinutes * 60 * 1000);
|
||||
nextWakeUpRequired = System.currentTimeMillis() + ((long) receiverDeviceAwakeForMinutes * 60 * 1000);
|
||||
} else {
|
||||
aapsLogger.debug(LTag.PUMPBTCOMM, "Last pump communication was recent, not waking pump.");
|
||||
}
|
||||
|
|
|
@ -40,3 +40,4 @@ include ':pump:pump-common'
|
|||
include ':pump:pump-core'
|
||||
include ':pump:rileylink'
|
||||
include ':plugins:sync'
|
||||
include ':workflow'
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
<!-- Activities-->
|
||||
<string name="activity_monitor">Moniteur d\'activité</string>
|
||||
<string name="do_you_want_reset_stats">Voulez-vous réinitialiser les statistiques d\'activité ?</string>
|
||||
<string name="do_you_want_reset_tdd_stats">Voulez-vous réinitialiser les statistiques de DTQ ?</string>
|
||||
<string name="statistics">Statistiques</string>
|
||||
<string name="calculation_in_progress">Calcul en cours</string>
|
||||
<string name="invalid_age">Âge invalide</string>
|
||||
|
@ -117,8 +118,8 @@
|
|||
<string name="motol_default_profile">Profil par défaut</string>
|
||||
<string name="current_profile">Profil actuel</string>
|
||||
<string name="available_profile">Profils disponibles</string>
|
||||
<string name="format_with_tdd">Âge: %1$d DTI: %2$.0f U</string>
|
||||
<string name="format_with_tdd_and_pct">Âge: %1$d DTI: %2$.0f U %3$d%%</string>
|
||||
<string name="format_with_tdd">Âge: %1$d DTQ: %2$.0f U</string>
|
||||
<string name="format_with_tdd_and_pct">Âge: %1$d DTQ: %2$.0f U %3$d%%</string>
|
||||
<string name="format_with_weight">Âge: %1$d Poids: %2$.0f kg</string>
|
||||
<string name="dpv_default_profile">Profil par défaut DPV</string>
|
||||
<string name="invalid_pct">% saisi invalide</string>
|
||||
|
|
|
@ -102,6 +102,10 @@
|
|||
<string name="careportal_remove_started_events">Удалить записи о начале работы AAPS</string>
|
||||
<string name="hide_loop">Скрыть цикл</string>
|
||||
<string name="show_loop">Показать цикл</string>
|
||||
<string name="user_entry">Запись пользователя</string>
|
||||
<string name="clone_label">Клонировать</string>
|
||||
<string name="show_loop_records">Показать записи цикла</string>
|
||||
<string name="show_hide_records">Скрыть записи цикла</string>
|
||||
<!-- ProfileHelperActivity -->
|
||||
<string name="profile1">Профиль 1</string>
|
||||
<string name="profile2">Профиль 2</string>
|
||||
|
|
|
@ -58,10 +58,6 @@ class DataLayerListenerServiceWear : WearableListenerService() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun onPeerConnected(p0: Node) {
|
||||
super.onPeerConnected(p0)
|
||||
}
|
||||
|
||||
override fun onCapabilityChanged(p0: CapabilityInfo) {
|
||||
super.onCapabilityChanged(p0)
|
||||
handler.post { updateTranscriptionCapability() }
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
<string name="status_pump">Pompe</string>
|
||||
<string name="status_loop">Boucle</string>
|
||||
<string name="status_profile_switch">Changement de profil</string>
|
||||
<string name="status_tdd">DTI</string>
|
||||
<string name="status_tdd">DTQ</string>
|
||||
<string name="activity_carb">GA</string>
|
||||
<string name="activity_IOB">IA</string>
|
||||
<string name="activity_no_status">aucun statut</string>
|
||||
|
|
1
workflow/.gitignore
vendored
Normal file
1
workflow/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/build
|
29
workflow/build.gradle
Normal file
29
workflow/build.gradle
Normal file
|
@ -0,0 +1,29 @@
|
|||
plugins {
|
||||
id 'com.android.library'
|
||||
id 'kotlin-android'
|
||||
id 'kotlin-kapt'
|
||||
id 'kotlin-allopen'
|
||||
id 'com.hiya.jacoco-android'
|
||||
}
|
||||
|
||||
apply from: "${project.rootDir}/core/core-main/android_dependencies.gradle"
|
||||
apply from: "${project.rootDir}/core/core-main/android_module_dependencies.gradle"
|
||||
apply from: "${project.rootDir}/core/core-main/test_dependencies.gradle"
|
||||
apply from: "${project.rootDir}/core/core-main/jacoco_global.gradle"
|
||||
|
||||
android {
|
||||
namespace 'info.nightscout.workflow'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation project(':core:libraries')
|
||||
implementation project(':core:graphview')
|
||||
implementation project(':app-wear-shared:shared')
|
||||
implementation project(':database:entities')
|
||||
implementation project(':database:impl')
|
||||
implementation project(':core:core-main')
|
||||
implementation project(':core:interfaces')
|
||||
implementation project(':core:graph')
|
||||
implementation project(':core:ui')
|
||||
implementation project(':core:utils')
|
||||
}
|
0
workflow/consumer-rules.pro
Normal file
0
workflow/consumer-rules.pro
Normal file
21
workflow/proguard-rules.pro
vendored
Normal file
21
workflow/proguard-rules.pro
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
4
workflow/src/main/AndroidManifest.xml
Normal file
4
workflow/src/main/AndroidManifest.xml
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest>
|
||||
|
||||
</manifest>
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.androidaps.workflow
|
||||
package info.nightscout.workflow
|
||||
|
||||
import android.content.Context
|
||||
import androidx.work.Worker
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.androidaps.workflow
|
||||
package info.nightscout.workflow
|
||||
|
||||
import android.content.Context
|
||||
import androidx.work.Worker
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.androidaps.workflow
|
||||
package info.nightscout.workflow
|
||||
|
||||
import android.content.Context
|
||||
import androidx.work.Worker
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.androidaps.workflow
|
||||
package info.nightscout.workflow
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.DashPathEffect
|
||||
|
@ -8,14 +8,13 @@ import androidx.work.WorkerParameters
|
|||
import androidx.work.workDataOf
|
||||
import com.jjoe64.graphview.series.LineGraphSeries
|
||||
import dagger.android.HasAndroidInjector
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.core.events.EventIobCalculationProgress
|
||||
import info.nightscout.core.graph.OverviewData
|
||||
import info.nightscout.core.graph.data.ScaledDataPoint
|
||||
import info.nightscout.core.utils.receivers.DataWorkerStorage
|
||||
import info.nightscout.core.workflow.CalculationWorkflow
|
||||
import info.nightscout.interfaces.iob.IobCobCalculator
|
||||
import info.nightscout.interfaces.profile.ProfileFunction
|
||||
import info.nightscout.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress
|
||||
import info.nightscout.rx.bus.RxBus
|
||||
import info.nightscout.shared.interfaces.ResourceHelper
|
||||
import javax.inject.Inject
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.androidaps.workflow
|
||||
package info.nightscout.workflow
|
||||
|
||||
import android.content.Context
|
||||
import androidx.work.Worker
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.androidaps.workflow
|
||||
package info.nightscout.workflow
|
||||
|
||||
import android.content.Context
|
||||
import androidx.work.Worker
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.androidaps.workflow
|
||||
package info.nightscout.workflow
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.DashPathEffect
|
||||
|
@ -9,8 +9,7 @@ import androidx.work.workDataOf
|
|||
import com.jjoe64.graphview.series.BarGraphSeries
|
||||
import com.jjoe64.graphview.series.LineGraphSeries
|
||||
import dagger.android.HasAndroidInjector
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.core.iob.iobCobCalculator.data.AutosensDataObject
|
||||
import info.nightscout.core.events.EventIobCalculationProgress
|
||||
import info.nightscout.core.graph.OverviewData
|
||||
import info.nightscout.core.graph.data.DataPointWithLabelInterface
|
||||
import info.nightscout.core.graph.data.DeviationDataPoint
|
||||
|
@ -20,6 +19,7 @@ import info.nightscout.core.graph.data.Scale
|
|||
import info.nightscout.core.graph.data.ScaledDataPoint
|
||||
import info.nightscout.core.iob.combine
|
||||
import info.nightscout.core.iob.copy
|
||||
import info.nightscout.core.iob.iobCobCalculator.data.AutosensDataObject
|
||||
import info.nightscout.core.utils.receivers.DataWorkerStorage
|
||||
import info.nightscout.core.workflow.CalculationWorkflow
|
||||
import info.nightscout.database.ValueWrapper
|
||||
|
@ -28,10 +28,9 @@ import info.nightscout.interfaces.aps.AutosensResult
|
|||
import info.nightscout.interfaces.aps.SMBDefaults
|
||||
import info.nightscout.interfaces.iob.IobCobCalculator
|
||||
import info.nightscout.interfaces.iob.IobTotal
|
||||
import info.nightscout.interfaces.overview.OverviewMenus
|
||||
import info.nightscout.interfaces.profile.ProfileFunction
|
||||
import info.nightscout.interfaces.utils.DecimalFormatter
|
||||
import info.nightscout.plugins.general.overview.OverviewMenus
|
||||
import info.nightscout.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress
|
||||
import info.nightscout.rx.bus.RxBus
|
||||
import info.nightscout.rx.logging.AAPSLogger
|
||||
import info.nightscout.rx.logging.LTag
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.androidaps.workflow
|
||||
package info.nightscout.workflow
|
||||
|
||||
import android.content.Context
|
||||
import androidx.work.Worker
|
||||
|
@ -14,9 +14,9 @@ import info.nightscout.database.impl.AppRepository
|
|||
import info.nightscout.interfaces.Config
|
||||
import info.nightscout.interfaces.aps.Loop
|
||||
import info.nightscout.interfaces.nsclient.ProcessedDeviceStatusData
|
||||
import info.nightscout.interfaces.overview.OverviewMenus
|
||||
import info.nightscout.interfaces.profile.DefaultValueHelper
|
||||
import info.nightscout.interfaces.profile.ProfileFunction
|
||||
import info.nightscout.plugins.general.overview.OverviewMenus
|
||||
import info.nightscout.rx.bus.RxBus
|
||||
import info.nightscout.shared.interfaces.ResourceHelper
|
||||
import info.nightscout.shared.utils.T
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue