Merge pull request #2 from MilosKozak/dev

Dev
This commit is contained in:
samihusseingit 2017-09-05 13:07:45 +02:00 committed by GitHub
commit d35729d874
72 changed files with 1636 additions and 1538 deletions

View file

@ -44,7 +44,7 @@ android {
minSdkVersion 21
targetSdkVersion 23
versionCode 1500
version "1.5g"
version "1.52"
buildConfigField "String", "VERSION", '"' + version + '"'
buildConfigField "String", "BUILDVERSION", generateGitBuild()
}

View file

@ -95,9 +95,10 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
if (ev.lock) {
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "AAPS");
mWakeLock.acquire();
if (!mWakeLock.isHeld())
mWakeLock.acquire();
} else {
if (mWakeLock != null)
if (mWakeLock != null && mWakeLock.isHeld())
mWakeLock.release();
}
}
@ -206,7 +207,8 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
@Override
public void onDestroy() {
if (mWakeLock != null)
mWakeLock.release();
if (mWakeLock.isHeld())
mWakeLock.release();
super.onDestroy();
}

View file

@ -30,11 +30,11 @@ import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderFragment;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.ConstraintsObjectives.ObjectivesFragment;
import info.nightscout.androidaps.plugins.ConstraintsSafety.SafetyPlugin;
import info.nightscout.androidaps.plugins.InsulinFastacting.InsulinFastactingFragment;
import info.nightscout.androidaps.plugins.InsulinFastactingProlonged.InsulinFastactingProlongedFragment;
import info.nightscout.androidaps.plugins.InsulinOrefCurves.InsulinOrefFreePeakFragment;
import info.nightscout.androidaps.plugins.InsulinOrefCurves.InsulinOrefRapidActingFragment;
import info.nightscout.androidaps.plugins.InsulinOrefCurves.InsulinOrefUltraRapidActingFragment;
import info.nightscout.androidaps.plugins.Insulin.InsulinFastactingPlugin;
import info.nightscout.androidaps.plugins.Insulin.InsulinFastactingProlongedPlugin;
import info.nightscout.androidaps.plugins.Insulin.InsulinOrefFreePeakPlugin;
import info.nightscout.androidaps.plugins.Insulin.InsulinOrefRapidActingPlugin;
import info.nightscout.androidaps.plugins.Insulin.InsulinOrefUltraRapidActingPlugin;
import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.plugins.Loop.LoopFragment;
import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalFragment;
@ -47,11 +47,11 @@ import info.nightscout.androidaps.plugins.ProfileCircadianPercentage.CircadianPe
import info.nightscout.androidaps.plugins.ProfileLocal.LocalProfileFragment;
import info.nightscout.androidaps.plugins.ProfileNS.NSProfileFragment;
import info.nightscout.androidaps.plugins.ProfileSimple.SimpleProfileFragment;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRFragment;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPlugin;
import info.nightscout.androidaps.plugins.PumpDanaR.services.DanaRExecutionService;
import info.nightscout.androidaps.plugins.PumpDanaRKorean.DanaRKoreanFragment;
import info.nightscout.androidaps.plugins.PumpDanaRKorean.DanaRKoreanPlugin;
import info.nightscout.androidaps.plugins.PumpDanaRKorean.services.DanaRKoreanExecutionService;
import info.nightscout.androidaps.plugins.PumpDanaRv2.DanaRv2Fragment;
import info.nightscout.androidaps.plugins.PumpDanaRv2.DanaRv2Plugin;
import info.nightscout.androidaps.plugins.PumpDanaRv2.services.DanaRv2ExecutionService;
import info.nightscout.androidaps.plugins.PumpMDI.MDIPlugin;
import info.nightscout.androidaps.plugins.PumpVirtual.VirtualPumpPlugin;
@ -100,8 +100,6 @@ public class MainApp extends Application {
log.info("Version: " + BuildConfig.VERSION_NAME);
log.info("BuildVersion: " + BuildConfig.BUILDVERSION);
Answers.getInstance().logCustom(new CustomEvent("AppStart"));
sBus = new Bus(ThreadEnforcer.ANY);
sInstance = this;
sResources = getResources();
@ -114,17 +112,17 @@ public class MainApp extends Application {
pluginsList.add(OverviewFragment.getPlugin());
pluginsList.add(IobCobCalculatorPlugin.getPlugin());
if (Config.ACTION) pluginsList.add(ActionsFragment.getPlugin());
pluginsList.add(InsulinFastactingFragment.getPlugin());
pluginsList.add(InsulinFastactingProlongedFragment.getPlugin());
pluginsList.add(InsulinOrefRapidActingFragment.getPlugin());
pluginsList.add(InsulinOrefUltraRapidActingFragment.getPlugin());
pluginsList.add(InsulinOrefFreePeakFragment.getPlugin());
pluginsList.add(InsulinFastactingPlugin.getPlugin());
pluginsList.add(InsulinFastactingProlongedPlugin.getPlugin());
pluginsList.add(InsulinOrefRapidActingPlugin.getPlugin());
pluginsList.add(InsulinOrefUltraRapidActingPlugin.getPlugin());
pluginsList.add(InsulinOrefFreePeakPlugin.getPlugin());
pluginsList.add(SensitivityOref0Plugin.getPlugin());
pluginsList.add(SensitivityAAPSPlugin.getPlugin());
pluginsList.add(SensitivityWeightedAveragePlugin.getPlugin());
if (Config.DANAR) pluginsList.add(DanaRFragment.getPlugin());
if (Config.DANAR) pluginsList.add(DanaRKoreanFragment.getPlugin());
if (Config.DANARv2) pluginsList.add(DanaRv2Fragment.getPlugin());
if (Config.DANAR) pluginsList.add(DanaRPlugin.getPlugin());
if (Config.DANAR) pluginsList.add(DanaRKoreanPlugin.getPlugin());
if (Config.DANARv2) pluginsList.add(DanaRv2Plugin.getPlugin());
pluginsList.add(CareportalFragment.getPlugin());
if (Config.MDI) pluginsList.add(MDIPlugin.getPlugin());
if (Config.VIRTUALPUMP) pluginsList.add(VirtualPumpPlugin.getInstance());
@ -158,6 +156,11 @@ public class MainApp extends Application {
MainApp.getConfigBuilder().initialize();
}
NSUpload.uploadAppStart();
if (MainApp.getConfigBuilder().isClosedModeEnabled())
Answers.getInstance().logCustom(new CustomEvent("AppStart-ClosedLoop"));
else
Answers.getInstance().logCustom(new CustomEvent("AppStart"));
startKeepAliveService();
@ -263,8 +266,6 @@ public class MainApp extends Application {
@Nullable
public static InsulinInterface getInsulinIterfaceById(int id) {
ArrayList<PluginBase> newList = new ArrayList<>();
if (pluginsList != null) {
for (PluginBase p : pluginsList) {
if (p.getType() == PluginBase.INSULIN && ((InsulinInterface) p).getId() == id)
@ -321,11 +322,11 @@ public class MainApp extends Application {
}
@Nullable
public static PluginBase getSpecificPlugin(Class pluginClass) {
public static <T extends PluginBase> T getSpecificPlugin(Class<T> pluginClass) {
if (pluginsList != null) {
for (PluginBase p : pluginsList) {
if (p.getClass() == pluginClass)
return p;
if (pluginClass.isAssignableFrom(p.getClass()))
return (T) p;
}
} else {
log.error("pluginsList=null");

View file

@ -14,7 +14,7 @@ import android.preference.PreferenceManager;
import info.nightscout.androidaps.events.EventPreferenceChange;
import info.nightscout.androidaps.events.EventRefreshGui;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.plugins.InsulinOrefCurves.InsulinOrefFreePeakPlugin;
import info.nightscout.androidaps.plugins.Insulin.InsulinOrefFreePeakPlugin;
import info.nightscout.androidaps.plugins.PumpDanaR.BluetoothDevicePreference;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPlugin;
import info.nightscout.androidaps.plugins.PumpDanaRKorean.DanaRKoreanPlugin;
@ -123,9 +123,9 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre
addPreferencesFromResource(R.xml.pref_profile);
}
if (Config.DANAR) {
DanaRPlugin danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class);
DanaRKoreanPlugin danaRKoreanPlugin = (DanaRKoreanPlugin) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class);
DanaRv2Plugin danaRv2Plugin = (DanaRv2Plugin) MainApp.getSpecificPlugin(DanaRv2Plugin.class);
DanaRPlugin danaRPlugin = MainApp.getSpecificPlugin(DanaRPlugin.class);
DanaRKoreanPlugin danaRKoreanPlugin = MainApp.getSpecificPlugin(DanaRKoreanPlugin.class);
DanaRv2Plugin danaRv2Plugin = MainApp.getSpecificPlugin(DanaRv2Plugin.class);
if (danaRPlugin.isEnabled(PluginBase.PUMP) || danaRKoreanPlugin.isEnabled(PluginBase.PUMP)) {
addPreferencesFromResource(R.xml.pref_danar);
}
@ -136,16 +136,16 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre
addPreferencesFromResource(R.xml.pref_danarprofile);
}
}
VirtualPumpPlugin virtualPumpPlugin = (VirtualPumpPlugin) MainApp.getSpecificPlugin(VirtualPumpPlugin.class);
VirtualPumpPlugin virtualPumpPlugin = MainApp.getSpecificPlugin(VirtualPumpPlugin.class);
if (virtualPumpPlugin != null && virtualPumpPlugin.isEnabled(PluginBase.PUMP)) {
addPreferencesFromResource(R.xml.pref_virtualpump);
}
InsulinOrefFreePeakPlugin insulinOrefFreePeakPlugin = (InsulinOrefFreePeakPlugin) MainApp.getSpecificPlugin(InsulinOrefFreePeakPlugin.class);
InsulinOrefFreePeakPlugin insulinOrefFreePeakPlugin = MainApp.getSpecificPlugin(InsulinOrefFreePeakPlugin.class);
if(insulinOrefFreePeakPlugin.isEnabled(PluginBase.INSULIN)){
addPreferencesFromResource(R.xml.pref_insulinoreffreepeak);
}
NSClientInternalPlugin nsClientInternalPlugin = (NSClientInternalPlugin) MainApp.getSpecificPlugin(NSClientInternalPlugin.class);
NSClientInternalPlugin nsClientInternalPlugin = MainApp.getSpecificPlugin(NSClientInternalPlugin.class);
if (nsClientInternalPlugin != null && nsClientInternalPlugin.isEnabled(PluginBase.GENERAL)) {
addPreferencesFromResource(R.xml.pref_nsclientinternal);
}
@ -157,13 +157,13 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre
addPreferencesFromResource(R.xml.pref_advanced);
if (Config.WEAR) {
WearPlugin wearPlugin = (WearPlugin) MainApp.getSpecificPlugin(WearPlugin.class);
WearPlugin wearPlugin = MainApp.getSpecificPlugin(WearPlugin.class);
if (wearPlugin != null && wearPlugin.isEnabled(PluginBase.GENERAL)) {
addPreferencesFromResource(R.xml.pref_wear);
}
}
StatuslinePlugin statuslinePlugin = (StatuslinePlugin) MainApp.getSpecificPlugin(StatuslinePlugin.class);
StatuslinePlugin statuslinePlugin = MainApp.getSpecificPlugin(StatuslinePlugin.class);
if (statuslinePlugin != null && statuslinePlugin.isEnabled(PluginBase.GENERAL)) {
addPreferencesFromResource(R.xml.pref_xdripstatus);
}

View file

@ -17,7 +17,6 @@ import info.nightscout.androidaps.interfaces.InsulinInterface;
public class DetailedBolusInfo {
public long date = System.currentTimeMillis();
public InsulinInterface insulinInterface = MainApp.getConfigBuilder().getActiveInsulin();
public String eventType = CareportalEvent.MEALBOLUS;
public double insulin = 0;
public double carbs = 0;

View file

@ -187,7 +187,7 @@ public class ExtendedBolus implements Interval, DataPointWithLabelInterface {
if (calcdate > dia_ago && calcdate <= time) {
double tempBolusSize = absoluteRate() * spacing / 60d;
Treatment tempBolusPart = new Treatment(insulinInterface, dia);
Treatment tempBolusPart = new Treatment();
tempBolusPart.insulin = tempBolusSize;
tempBolusPart.date = calcdate;

View file

@ -223,7 +223,7 @@ public class TemporaryBasal implements Interval {
double tempBolusSize = netBasalRate * tempBolusSpacing / 60d;
netBasalAmount += tempBolusSize;
Treatment tempBolusPart = new Treatment(insulinInterface, dia);
Treatment tempBolusPart = new Treatment();
tempBolusPart.insulin = tempBolusSize;
tempBolusPart.date = calcdate;

View file

@ -8,8 +8,6 @@ import com.j256.ormlite.table.DatabaseTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import info.nightscout.androidaps.Constants;
@ -17,7 +15,6 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.data.Iob;
import info.nightscout.androidaps.interfaces.InsulinInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.plugins.Overview.graphExtensions.DataPointWithLabelInterface;
import info.nightscout.androidaps.plugins.Overview.graphExtensions.PointsWithLabelGraphSeries;
import info.nightscout.utils.DateUtil;
@ -51,31 +48,13 @@ public class Treatment implements DataPointWithLabelInterface {
public boolean isSMB = false;
@DatabaseField
public int insulinInterfaceID = InsulinInterface.FASTACTINGINSULIN;
public int insulinInterfaceID = InsulinInterface.FASTACTINGINSULIN; // currently unused, will be used in the future
@DatabaseField
public double dia = Constants.defaultDIA;
public double dia = Constants.defaultDIA; // currently unused, will be used in the future
public Treatment() {
}
public Treatment(long date) {
this.date = date;
}
public Treatment(InsulinInterface insulin) {
insulinInterfaceID = insulin.getId();
dia = insulin.getDia();
}
public Treatment(InsulinInterface insulin, double dia) {
insulinInterfaceID = insulin.getId();
this.dia = dia;
}
public long getMillisecondsFromStart() {
return System.currentTimeMillis() - date;
}
public String toString() {
return "Treatment{" +
"date= " + date +
@ -170,7 +149,10 @@ public class Treatment implements DataPointWithLabelInterface {
@Override
public int getColor() {
return Color.CYAN;
if (isValid)
return Color.CYAN;
else
return MainApp.instance().getResources().getColor(android.R.color.holo_red_light);
}
@Override

View file

@ -69,8 +69,8 @@ public class FillDialog extends DialogFragment implements OnClickListener {
insulin = (TextView) view.findViewById(R.id.treatments_newtreatment_insulinamount);
Double maxInsulin = MainApp.getConfigBuilder().applyBolusConstraints(Constants.bolusOnlyForCheckLimit);
editInsulin = new PlusMinusEditText(view, R.id.treatments_newtreatment_insulinamount, R.id.treatments_newtreatment_insulinamount_plus, R.id.treatments_newtreatment_insulinamount_minus, 0d, 0d, maxInsulin, 0.05d, new DecimalFormat("0.00"), false);
double bolusstep = MainApp.getConfigBuilder().getPumpDescription().bolusStep;
editInsulin = new PlusMinusEditText(view, R.id.treatments_newtreatment_insulinamount, R.id.treatments_newtreatment_insulinamount_plus, R.id.treatments_newtreatment_insulinamount_minus, 0d, 0d, maxInsulin, bolusstep, new DecimalFormat("0.00"), false);
//setup preset buttons
Button button1 = (Button) view.findViewById(R.id.fill_preset_button1);
@ -164,7 +164,7 @@ public class FillDialog extends DialogFragment implements OnClickListener {
DetailedBolusInfo detailedBolusInfo = new DetailedBolusInfo();
detailedBolusInfo.insulin = finalInsulinAfterConstraints;
detailedBolusInfo.context = context;
detailedBolusInfo.source = Source.NONE;
detailedBolusInfo.source = Source.USER;
detailedBolusInfo.isValid = false; // do not count it in IOB (for pump history)
PumpEnactResult result = pump.deliverTreatment(detailedBolusInfo);
if (!result.success) {

View file

@ -9,6 +9,7 @@ import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.squareup.otto.Subscribe;
@ -16,10 +17,13 @@ import com.squareup.otto.Subscribe;
import info.nightscout.androidaps.BuildConfig;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore;
import info.nightscout.androidaps.db.CareportalEvent;
import info.nightscout.androidaps.events.EventCareportalEventChange;
import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog;
import info.nightscout.androidaps.plugins.Common.SubscriberFragment;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.Overview.OverviewFragment;
public class CareportalFragment extends SubscriberFragment implements View.OnClickListener {
@ -32,6 +36,8 @@ public class CareportalFragment extends SubscriberFragment implements View.OnCli
TextView pbage;
View statsLayout;
LinearLayout butonsLayout;
View noProfileView;
static public CareportalPlugin getPlugin() {
if (careportalPlugin == null) {
@ -95,6 +101,18 @@ public class CareportalFragment extends SubscriberFragment implements View.OnCli
statsLayout = (View) view.findViewById(R.id.careportal_stats);
noProfileView = (View) view.findViewById(R.id.profileview_noprofile);
butonsLayout = (LinearLayout) view.findViewById(R.id.careportal_buttons);
ProfileStore profileStore = ConfigBuilderPlugin.getActiveProfileInterface().getProfile();
if (profileStore == null) {
noProfileView.setVisibility(View.VISIBLE);
butonsLayout.setVisibility(View.GONE);
} else {
noProfileView.setVisibility(View.GONE);
butonsLayout.setVisibility(View.VISIBLE);
}
if (BuildConfig.NSCLIENTOLNY)
statsLayout.setVisibility(View.GONE); // visible on overview

View file

@ -2,10 +2,8 @@ package info.nightscout.androidaps.plugins.ConfigBuilder;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -22,7 +20,6 @@ import com.crashlytics.android.answers.CustomEvent;
import java.util.ArrayList;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.events.EventConfigBuilderChange;
@ -35,7 +32,7 @@ import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.ProfileInterface;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.interfaces.SensitivityInterface;
import info.nightscout.androidaps.plugins.InsulinFastacting.InsulinFastactingPlugin;
import info.nightscout.androidaps.plugins.Insulin.InsulinFastactingPlugin;
import info.nightscout.androidaps.plugins.ProfileNS.NSProfilePlugin;
import info.nightscout.androidaps.plugins.PumpVirtual.VirtualPumpPlugin;
import info.nightscout.androidaps.plugins.SensitivityOref0.SensitivityOref0Plugin;
@ -58,8 +55,6 @@ public class ConfigBuilderFragment extends Fragment {
TextView pumpLabel;
ListView loopListView;
TextView loopLabel;
ListView treatmentsListView;
TextView treatmentsLabel;
ListView profileListView;
TextView profileLabel;
ListView apsListView;
@ -76,27 +71,16 @@ public class ConfigBuilderFragment extends Fragment {
PluginCustomAdapter bgsourceDataAdapter = null;
PluginCustomAdapter pumpDataAdapter = null;
PluginCustomAdapter loopDataAdapter = null;
PluginCustomAdapter treatmentsDataAdapter = null;
PluginCustomAdapter profileDataAdapter = null;
PluginCustomAdapter apsDataAdapter = null;
PluginCustomAdapter constraintsDataAdapter = null;
PluginCustomAdapter generalDataAdapter = null;
boolean smallWidth;
// TODO: sorting
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.configbuilder_fragment, container, false);
//check screen width
final DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
int screen_width = dm.widthPixels;
smallWidth = screen_width < Constants.SMALL_WIDTH;
insulinListView = (ListView) view.findViewById(R.id.configbuilder_insulinlistview);
sensitivityListView = (ListView) view.findViewById(R.id.configbuilder_sensitivitylistview);
bgsourceListView = (ListView) view.findViewById(R.id.configbuilder_bgsourcelistview);
@ -105,8 +89,6 @@ public class ConfigBuilderFragment extends Fragment {
pumpLabel = (TextView) view.findViewById(R.id.configbuilder_pumplabel);
loopListView = (ListView) view.findViewById(R.id.configbuilder_looplistview);
loopLabel = (TextView) view.findViewById(R.id.configbuilder_looplabel);
treatmentsListView = (ListView) view.findViewById(R.id.configbuilder_treatmentslistview);
treatmentsLabel = (TextView) view.findViewById(R.id.configbuilder_treatmentslabel);
profileListView = (ListView) view.findViewById(R.id.configbuilder_profilelistview);
profileLabel = (TextView) view.findViewById(R.id.configbuilder_profilelabel);
apsListView = (ListView) view.findViewById(R.id.configbuilder_apslistview);
@ -141,48 +123,43 @@ public class ConfigBuilderFragment extends Fragment {
}
void setViews() {
insulinDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(InsulinInterface.class, PluginBase.INSULIN), PluginBase.INSULIN);
insulinDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(InsulinInterface.class, PluginBase.INSULIN), PluginBase.INSULIN);
insulinListView.setAdapter(insulinDataAdapter);
setListViewHeightBasedOnChildren(insulinListView);
bgsourceDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(BgSourceInterface.class, PluginBase.BGSOURCE), PluginBase.BGSOURCE);
bgsourceDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(BgSourceInterface.class, PluginBase.BGSOURCE), PluginBase.BGSOURCE);
bgsourceListView.setAdapter(bgsourceDataAdapter);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.BGSOURCE).size() == 0)
bgsourceLabel.setVisibility(View.GONE);
setListViewHeightBasedOnChildren(bgsourceListView);
pumpDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.PUMP), PluginBase.PUMP);
pumpDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.PUMP), PluginBase.PUMP);
pumpListView.setAdapter(pumpDataAdapter);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.PUMP).size() == 0)
pumpLabel.setVisibility(View.GONE);
setListViewHeightBasedOnChildren(pumpListView);
loopDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.LOOP), PluginBase.LOOP);
loopDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.LOOP), PluginBase.LOOP);
loopListView.setAdapter(loopDataAdapter);
setListViewHeightBasedOnChildren(loopListView);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.LOOP).size() == 0)
loopLabel.setVisibility(View.GONE);
treatmentsDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.TREATMENT), PluginBase.TREATMENT);
treatmentsListView.setAdapter(treatmentsDataAdapter);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.TREATMENT).size() == 0)
treatmentsLabel.setVisibility(View.GONE);
setListViewHeightBasedOnChildren(treatmentsListView);
profileDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(ProfileInterface.class, PluginBase.PROFILE), PluginBase.PROFILE);
profileDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(ProfileInterface.class, PluginBase.PROFILE), PluginBase.PROFILE);
profileListView.setAdapter(profileDataAdapter);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.PROFILE).size() == 0)
profileLabel.setVisibility(View.GONE);
setListViewHeightBasedOnChildren(profileListView);
apsDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.APS), PluginBase.APS);
apsDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.APS), PluginBase.APS);
apsListView.setAdapter(apsDataAdapter);
setListViewHeightBasedOnChildren(apsListView);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.APS).size() == 0)
apsLabel.setVisibility(View.GONE);
sensivityDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(SensitivityInterface.class, PluginBase.SENSITIVITY), PluginBase.SENSITIVITY);
sensivityDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(SensitivityInterface.class, PluginBase.SENSITIVITY), PluginBase.SENSITIVITY);
sensitivityListView.setAdapter(sensivityDataAdapter);
setListViewHeightBasedOnChildren(sensitivityListView);
constraintsDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(ConstraintsInterface.class, PluginBase.CONSTRAINTS), PluginBase.CONSTRAINTS);
constraintsDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInListByInterface(ConstraintsInterface.class, PluginBase.CONSTRAINTS), PluginBase.CONSTRAINTS);
constraintsListView.setAdapter(constraintsDataAdapter);
setListViewHeightBasedOnChildren(constraintsListView);
if (MainApp.getSpecificPluginsVisibleInList(PluginBase.CONSTRAINTS).size() == 0)
constraintsLabel.setVisibility(View.GONE);
generalDataAdapter = new PluginCustomAdapter(getContext(), smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.GENERAL), PluginBase.GENERAL);
generalDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsVisibleInList(PluginBase.GENERAL), PluginBase.GENERAL);
generalListView.setAdapter(generalDataAdapter);
setListViewHeightBasedOnChildren(generalListView);
@ -217,7 +194,7 @@ public class ConfigBuilderFragment extends Fragment {
PluginViewHolder holder = null;
if (view == null) {
view = LayoutInflater.from(parent.getContext()).inflate(smallWidth?R.layout.configbuilder_smallitem :R.layout.configbuilder_simpleitem, null);
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.configbuilder_simpleitem, null);
holder = new PluginViewHolder();
holder.name = (TextView) view.findViewById(R.id.configbuilder_simpleitem_name);
@ -307,6 +284,10 @@ public class ConfigBuilderFragment extends Fragment {
}
}
if (plugin.isEnabled(type)) {
view.setBackgroundColor(MainApp.sResources.getColor(R.color.configBuilderSelectedBackground));
}
return view;
}

View file

@ -32,10 +32,20 @@ public class DetailedBolusInfoStorage {
log.debug("Existing info: " + new Date(infoTime).toLocaleString());
if (bolustime > infoTime - 60 * 1000 && bolustime < infoTime + 60 * 1000) {
found = store.get(i);
store.remove(i);
break;
}
}
return found;
}
public static void remove(long bolustime) {
for (int i = 0; i < store.size(); i++) {
long infoTime = store.get(i).date;
if (bolustime > infoTime - 60 * 1000 && bolustime < infoTime + 60 * 1000) {
log.debug("Removing info: " + new Date(infoTime).toLocaleString());
store.remove(i);
break;
}
}
}
}

View file

@ -3,6 +3,8 @@ package info.nightscout.androidaps.plugins.ConstraintsSafety;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Objects;
import info.nightscout.androidaps.BuildConfig;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
@ -161,17 +163,17 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface {
Double origRate = absoluteRate;
if (absoluteRate > maxBasal) {
absoluteRate = maxBasal;
if (Config.logConstraintsChanges && origPercentRate != Constants.basalPercentOnlyForCheckLimit)
if (Config.logConstraintsChanges && !Objects.equals(origPercentRate, Constants.basalPercentOnlyForCheckLimit))
log.debug("Limiting rate " + origRate + " by maxBasal preference to " + absoluteRate + "U/h");
}
if (absoluteRate > maxBasalMult * profile.getBasal()) {
absoluteRate = Math.floor(maxBasalMult * profile.getBasal() * 100) / 100;
if (Config.logConstraintsChanges && origPercentRate != Constants.basalPercentOnlyForCheckLimit)
if (Config.logConstraintsChanges && !Objects.equals(origPercentRate, Constants.basalPercentOnlyForCheckLimit))
log.debug("Limiting rate " + origRate + " by maxBasalMult to " + absoluteRate + "U/h");
}
if (absoluteRate > profile.getMaxDailyBasal() * maxBasalFromDaily) {
absoluteRate = profile.getMaxDailyBasal() * maxBasalFromDaily;
if (Config.logConstraintsChanges && origPercentRate != Constants.basalPercentOnlyForCheckLimit)
if (Config.logConstraintsChanges && !Objects.equals(origPercentRate, Constants.basalPercentOnlyForCheckLimit))
log.debug("Limiting rate " + origRate + " by 3 * maxDailyBasal to " + absoluteRate + "U/h");
}
@ -180,7 +182,7 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface {
percentRateAfterConst = Round.ceilTo((double) percentRateAfterConst, 10d).intValue();
else percentRateAfterConst = Round.floorTo((double) percentRateAfterConst, 10d).intValue();
if (Config.logConstraintsChanges && origPercentRate != Constants.basalPercentOnlyForCheckLimit)
if (Config.logConstraintsChanges && !Objects.equals(origPercentRate, Constants.basalPercentOnlyForCheckLimit))
log.debug("Recalculated percent rate " + percentRate + "% to " + percentRateAfterConst + "%");
return percentRateAfterConst;
}

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinFastacting;
package info.nightscout.androidaps.plugins.Insulin;
import android.content.Context;
import android.graphics.Color;
@ -9,7 +9,6 @@ import com.jjoe64.graphview.series.DataPoint;
import com.jjoe64.graphview.series.LineGraphSeries;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import info.nightscout.androidaps.data.Iob;
@ -39,14 +38,14 @@ public class ActivityGraph extends GraphView {
double dia = insulin.getDia();
int hours = (int) Math.floor(dia + 1);
Treatment t = new Treatment(insulin, dia);
Treatment t = new Treatment();
t.date = 0;
t.insulin = 1d;
LineGraphSeries<DataPoint> activitySeries = null;
LineGraphSeries<DataPoint> iobSeries = null;
List<DataPoint> activityArray = new ArrayList<DataPoint>();
List<DataPoint> iobArray = new ArrayList<DataPoint>();
List<DataPoint> activityArray = new ArrayList<>();
List<DataPoint> iobArray = new ArrayList<>();
for (long time = 0; time <= hours * 60 * 60 * 1000; time += 5 * 60 * 1000L) {
Iob iob = t.iobCalc(time, dia);
@ -56,7 +55,7 @@ public class ActivityGraph extends GraphView {
DataPoint[] activityDataPoints = new DataPoint[activityArray.size()];
activityDataPoints = activityArray.toArray(activityDataPoints);
addSeries(activitySeries = new LineGraphSeries<DataPoint>(activityDataPoints));
addSeries(activitySeries = new LineGraphSeries<>(activityDataPoints));
activitySeries.setThickness(8);
getViewport().setXAxisBoundsManual(true);
@ -68,7 +67,7 @@ public class ActivityGraph extends GraphView {
DataPoint[] iobDataPoints = new DataPoint[iobArray.size()];
iobDataPoints = iobArray.toArray(iobDataPoints);
getSecondScale().addSeries(iobSeries = new LineGraphSeries<DataPoint>(iobDataPoints));
getSecondScale().addSeries(iobSeries = new LineGraphSeries<>(iobDataPoints));
iobSeries.setDrawBackground(true);
iobSeries.setColor(Color.MAGENTA);
iobSeries.setBackgroundColor(Color.argb(70, 255, 0, 255));

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinFastacting;
package info.nightscout.androidaps.plugins.Insulin;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
@ -17,6 +17,14 @@ public class InsulinFastactingPlugin implements PluginBase, InsulinInterface {
private static boolean fragmentEnabled = true;
private static boolean fragmentVisible = false;
private static InsulinFastactingPlugin plugin = null;
public static InsulinFastactingPlugin getPlugin() {
if (plugin == null)
plugin = new InsulinFastactingPlugin();
return plugin;
}
@Override
public int getType() {
return INSULIN;
@ -24,7 +32,7 @@ public class InsulinFastactingPlugin implements PluginBase, InsulinInterface {
@Override
public String getFragmentClass() {
return InsulinFastactingFragment.class.getName();
return InsulinFragment.class.getName();
}
@Override

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinFastactingProlonged;
package info.nightscout.androidaps.plugins.Insulin;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
@ -17,6 +17,14 @@ public class InsulinFastactingProlongedPlugin implements PluginBase, InsulinInte
private static boolean fragmentEnabled = false;
private static boolean fragmentVisible = false;
private static InsulinFastactingProlongedPlugin plugin = null;
public static InsulinFastactingProlongedPlugin getPlugin() {
if (plugin == null)
plugin = new InsulinFastactingProlongedPlugin();
return plugin;
}
@Override
public int getType() {
return INSULIN;
@ -24,7 +32,7 @@ public class InsulinFastactingProlongedPlugin implements PluginBase, InsulinInte
@Override
public String getFragmentClass() {
return InsulinFastactingProlongedFragment.class.getName();
return InsulinFragment.class.getName();
}
@Override

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinFastacting;
package info.nightscout.androidaps.plugins.Insulin;
import android.os.Bundle;
import android.support.v4.app.Fragment;
@ -14,13 +14,7 @@ import info.nightscout.androidaps.R;
* Created by mike on 17.04.2017.
*/
public class InsulinFastactingFragment extends Fragment {
static InsulinFastactingPlugin insulinFastactingPlugin = new InsulinFastactingPlugin();
static public InsulinFastactingPlugin getPlugin() {
return insulinFastactingPlugin;
}
public class InsulinFragment extends Fragment {
TextView insulinName;
TextView insulinComment;
TextView insulinDia;
@ -47,10 +41,10 @@ public class InsulinFastactingFragment extends Fragment {
}
private void updateGUI() {
insulinName.setText(insulinFastactingPlugin.getFriendlyName());
insulinComment.setText(insulinFastactingPlugin.getComment());
insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + new Double(insulinFastactingPlugin.getDia()).toString() + "h");
insulinGraph.show(insulinFastactingPlugin);
insulinName.setText(MainApp.getConfigBuilder().getActiveInsulin().getFriendlyName());
insulinComment.setText(MainApp.getConfigBuilder().getActiveInsulin().getComment());
insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(MainApp.getConfigBuilder().getActiveInsulin().getDia()) + "h");
insulinGraph.show(MainApp.getConfigBuilder().getActiveInsulin());
}
}

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
package info.nightscout.androidaps.plugins.Insulin;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
package info.nightscout.androidaps.plugins.Insulin;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
@ -13,6 +13,14 @@ public class InsulinOrefFreePeakPlugin extends InsulinOrefBasePlugin {
private static boolean fragmentEnabled = false;
private static boolean fragmentVisible = false;
private static InsulinOrefFreePeakPlugin plugin = null;
public static InsulinOrefFreePeakPlugin getPlugin() {
if (plugin == null)
plugin = new InsulinOrefFreePeakPlugin();
return plugin;
}
public static final int DEFAULT_PEAK = 75;
@Override
@ -27,7 +35,7 @@ public class InsulinOrefFreePeakPlugin extends InsulinOrefBasePlugin {
@Override
public String getFragmentClass() {
return InsulinOrefFreePeakFragment.class.getName();
return InsulinFragment.class.getName();
}
@Override

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
package info.nightscout.androidaps.plugins.Insulin;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
@ -12,6 +12,14 @@ public class InsulinOrefRapidActingPlugin extends InsulinOrefBasePlugin {
private static boolean fragmentEnabled = false;
private static boolean fragmentVisible = false;
private static InsulinOrefRapidActingPlugin plugin = null;
public static InsulinOrefRapidActingPlugin getPlugin() {
if (plugin == null)
plugin = new InsulinOrefRapidActingPlugin();
return plugin;
}
public static final int PEAK = 75;
@Override
@ -26,7 +34,7 @@ public class InsulinOrefRapidActingPlugin extends InsulinOrefBasePlugin {
@Override
public String getFragmentClass() {
return InsulinOrefRapidActingFragment.class.getName();
return InsulinFragment.class.getName();
}
@Override

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
package info.nightscout.androidaps.plugins.Insulin;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
@ -12,6 +12,14 @@ public class InsulinOrefUltraRapidActingPlugin extends InsulinOrefBasePlugin {
private static boolean fragmentEnabled = false;
private static boolean fragmentVisible = false;
private static InsulinOrefUltraRapidActingPlugin plugin = null;
public static InsulinOrefUltraRapidActingPlugin getPlugin() {
if (plugin == null)
plugin = new InsulinOrefUltraRapidActingPlugin();
return plugin;
}
public static final int PEAK = 55;
@Override
@ -26,7 +34,7 @@ public class InsulinOrefUltraRapidActingPlugin extends InsulinOrefBasePlugin {
@Override
public String getFragmentClass() {
return InsulinOrefUltraRapidActingFragment.class.getName();
return InsulinFragment.class.getName();
}
@Override

View file

@ -1,57 +0,0 @@
package info.nightscout.androidaps.plugins.InsulinFastactingProlonged;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.plugins.InsulinFastacting.ActivityGraph;
/**
* Created by mike on 17.04.2017.
*/
public class InsulinFastactingProlongedFragment extends Fragment {
static InsulinFastactingProlongedPlugin insulinFastactingProlongedPlugin = new InsulinFastactingProlongedPlugin();
static public InsulinFastactingProlongedPlugin getPlugin() {
return insulinFastactingProlongedPlugin;
}
TextView insulinName;
TextView insulinComment;
TextView insulinDia;
ActivityGraph insulinGraph;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.insulin_fragment, container, false);
insulinName = (TextView) view.findViewById(R.id.insulin_name);
insulinComment = (TextView) view.findViewById(R.id.insulin_comment);
insulinDia = (TextView) view.findViewById(R.id.insulin_dia);
insulinGraph = (ActivityGraph) view.findViewById(R.id.insuling_graph);
updateGUI();
return view;
}
@Override
public void onResume() {
super.onResume();
updateGUI();
}
private void updateGUI() {
insulinName.setText(insulinFastactingProlongedPlugin.getFriendlyName());
insulinComment.setText(insulinFastactingProlongedPlugin.getComment());
insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + new Double(insulinFastactingProlongedPlugin.getDia()).toString() + "h");
insulinGraph.show(insulinFastactingProlongedPlugin);
}
}

View file

@ -1,58 +0,0 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.plugins.InsulinFastacting.ActivityGraph;
/**
* Created by adrian on 14/08/17.
*/
public class InsulinOrefFreePeakFragment extends Fragment {
static InsulinOrefFreePeakPlugin insulinPlugin = new InsulinOrefFreePeakPlugin();
static public InsulinOrefFreePeakPlugin getPlugin() {
return insulinPlugin;
}
TextView insulinName;
TextView insulinComment;
TextView insulinDia;
ActivityGraph insulinGraph;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.insulin_fragment, container, false);
insulinName = (TextView) view.findViewById(R.id.insulin_name);
insulinComment = (TextView) view.findViewById(R.id.insulin_comment);
insulinDia = (TextView) view.findViewById(R.id.insulin_dia);
insulinGraph = (ActivityGraph) view.findViewById(R.id.insuling_graph);
updateGUI();
return view;
}
@Override
public void onResume() {
super.onResume();
updateGUI();
}
private void updateGUI() {
insulinName.setText(insulinPlugin.getFriendlyName());
insulinComment.setText(insulinPlugin.getComment());
insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + new Double(insulinPlugin.getDia()).toString() + "h");
insulinGraph.show(insulinPlugin);
}
}

View file

@ -1,57 +0,0 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.plugins.InsulinFastacting.ActivityGraph;
/**
* Created by adrian on 14/08/17.
*/
public class InsulinOrefRapidActingFragment extends Fragment {
static InsulinOrefRapidActingPlugin insulinPlugin = new InsulinOrefRapidActingPlugin();
static public InsulinOrefRapidActingPlugin getPlugin() {
return insulinPlugin;
}
TextView insulinName;
TextView insulinComment;
TextView insulinDia;
ActivityGraph insulinGraph;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.insulin_fragment, container, false);
insulinName = (TextView) view.findViewById(R.id.insulin_name);
insulinComment = (TextView) view.findViewById(R.id.insulin_comment);
insulinDia = (TextView) view.findViewById(R.id.insulin_dia);
insulinGraph = (ActivityGraph) view.findViewById(R.id.insuling_graph);
updateGUI();
return view;
}
@Override
public void onResume() {
super.onResume();
updateGUI();
}
private void updateGUI() {
insulinName.setText(insulinPlugin.getFriendlyName());
insulinComment.setText(insulinPlugin.getComment());
insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + new Double(insulinPlugin.getDia()).toString() + "h");
insulinGraph.show(insulinPlugin);
}
}

View file

@ -1,58 +0,0 @@
package info.nightscout.androidaps.plugins.InsulinOrefCurves;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.plugins.InsulinFastacting.ActivityGraph;
/**
* Created by adrian on 14/08/17.
*/
public class InsulinOrefUltraRapidActingFragment extends Fragment {
static InsulinOrefUltraRapidActingPlugin insulinPlugin = new InsulinOrefUltraRapidActingPlugin();
static public InsulinOrefUltraRapidActingPlugin getPlugin() {
return insulinPlugin;
}
TextView insulinName;
TextView insulinComment;
TextView insulinDia;
ActivityGraph insulinGraph;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.insulin_fragment, container, false);
insulinName = (TextView) view.findViewById(R.id.insulin_name);
insulinComment = (TextView) view.findViewById(R.id.insulin_comment);
insulinDia = (TextView) view.findViewById(R.id.insulin_dia);
insulinGraph = (ActivityGraph) view.findViewById(R.id.insuling_graph);
updateGUI();
return view;
}
@Override
public void onResume() {
super.onResume();
updateGUI();
}
private void updateGUI() {
insulinName.setText(insulinPlugin.getFriendlyName());
insulinComment.setText(insulinPlugin.getComment());
insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + new Double(insulinPlugin.getDia()).toString() + "h");
insulinGraph.show(insulinPlugin);
}
}

View file

@ -50,7 +50,7 @@ public class UploadQueue {
public void run() {
log.debug("QUEUE adding: " + dbr.data);
MainApp.getDbHelper().create(dbr);
NSClientInternalPlugin plugin = (NSClientInternalPlugin) MainApp.getSpecificPlugin(NSClientInternalPlugin.class);
NSClientInternalPlugin plugin = MainApp.getSpecificPlugin(NSClientInternalPlugin.class);
if (plugin != null) {
plugin.resend("newdata");
}

View file

@ -183,7 +183,7 @@ public class BroadcastTreatment {
ret.add(newarr);
}
newarr = new JSONArray();
count = 200;
count = 100;
}
newarr.put(array.get(i));
--count;

View file

@ -6,6 +6,7 @@ import org.json.JSONException;
import org.json.JSONObject;
import java.util.Date;
import java.util.Objects;
/*
{
@ -188,7 +189,7 @@ public class NSSettingsStatus {
return result;
}
}
if (settingsO.has("alarmTimeagoWarnMins") && what == "alarmTimeagoWarnMins"){
if (settingsO.has("alarmTimeagoWarnMins") && Objects.equals(what, "alarmTimeagoWarnMins")){
Double result = settingsO.getDouble(what);
return result;
}

View file

@ -32,7 +32,7 @@ public class AckAlarmReceiver extends BroadcastReceiver {
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
AckAlarmReceiver.class.getSimpleName());
NSClientInternalPlugin nsClientInternalPlugin = (NSClientInternalPlugin) MainApp.getSpecificPlugin(NSClientInternalPlugin.class);
NSClientInternalPlugin nsClientInternalPlugin = MainApp.getSpecificPlugin(NSClientInternalPlugin.class);
if (!nsClientInternalPlugin.isEnabled(PluginBase.GENERAL)) {
return;
}

View file

@ -32,7 +32,7 @@ public class DBAccessReceiver extends BroadcastReceiver {
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
DBAccessReceiver.class.getSimpleName());
NSClientInternalPlugin nsClientInternalPlugin = (NSClientInternalPlugin) MainApp.getSpecificPlugin(NSClientInternalPlugin.class);
NSClientInternalPlugin nsClientInternalPlugin = MainApp.getSpecificPlugin(NSClientInternalPlugin.class);
if (!nsClientInternalPlugin.isEnabled(PluginBase.GENERAL)) {
return;
}

View file

@ -188,7 +188,7 @@ public class NSClientService extends Service {
nsAPIhashCode = Hashing.sha1().hashString(nsAPISecret, Charsets.UTF_8).toString();
MainApp.bus().post(new EventNSClientStatus("Initializing"));
if (((NSClientInternalPlugin)MainApp.getSpecificPlugin(NSClientInternalPlugin.class)).paused) {
if (MainApp.getSpecificPlugin(NSClientInternalPlugin.class).paused) {
MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "paused"));
MainApp.bus().post(new EventNSClientStatus("Paused"));
} else if (!nsEnabled) {
@ -421,7 +421,7 @@ public class NSClientService extends Service {
MainApp.bus().post(new EventNSClientNewLog("DATA", "Data packet #" + dataCounter++ + (isDelta ? " delta" : " full")));
if (data.has("profiles")) {
JSONArray profiles = (JSONArray) data.getJSONArray("profiles");
JSONArray profiles = data.getJSONArray("profiles");
if (profiles.length() > 0) {
JSONObject profile = (JSONObject) profiles.get(profiles.length() - 1);
profileStore = new ProfileStore(profile);

View file

@ -14,6 +14,7 @@ import java.io.IOException;
import java.util.Date;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.data.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal;
@ -224,6 +225,11 @@ public class DetermineBasalAdapterAMAJS {
mProfile.add("temptargetSet", tempTargetSet);
mProfile.add("autosens_adjust_targets", SP.getBoolean("openapsama_autosens_adjusttargets", true));
mProfile.add("min_5m_carbimpact", SP.getDouble("openapsama_min_5m_carbimpact", 3d));
if (units.equals(Constants.MMOL)) {
mProfile.add("out_units", "mmol/L");
}
mV8rt.add(PARAM_profile, mProfile);
mCurrentTemp = new V8Object(mV8rt);

View file

@ -13,6 +13,7 @@ import org.slf4j.LoggerFactory;
import java.io.IOException;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.data.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal;
@ -242,6 +243,11 @@ public class DetermineBasalAdapterMAJS {
mProfile.add("sens", Profile.toMgdl(profile.getIsf().doubleValue(), units));
mProfile.add("current_basal", pump.getBaseBasalRate());
if (units.equals(Constants.MMOL)) {
mProfile.add("out_units", "mmol/L");
}
mCurrentTemp.add("duration", MainApp.getConfigBuilder().getTempBasalRemainingMinutesFromHistory());
mCurrentTemp.add("rate", MainApp.getConfigBuilder().getTempBasalAbsoluteRateHistory());

View file

@ -29,7 +29,7 @@ import info.nightscout.utils.SafeParse;
public class EditQuickWizardDialog extends DialogFragment implements View.OnClickListener {
QuickWizard.QuickWizardEntry entry = new QuickWizard().newEmptyItem();
QuickWizard quickWizard = ((OverviewPlugin) MainApp.getSpecificPlugin(OverviewPlugin.class)).quickWizard;
QuickWizard quickWizard = MainApp.getSpecificPlugin(OverviewPlugin.class).quickWizard;
EditText buttonEdit;
EditText carbsEdit;

View file

@ -20,6 +20,7 @@ import com.crashlytics.android.answers.Answers;
import com.crashlytics.android.answers.CustomEvent;
import java.text.DecimalFormat;
import java.util.Objects;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
@ -86,7 +87,7 @@ public class NewTreatmentDialog extends DialogFragment implements OnClickListene
confirmMessage += getString(R.string.bolus) + ": " + insulinAfterConstraints + "U";
confirmMessage += "\n" + getString(R.string.carbs) + ": " + carbsAfterConstraints + "g";
if (insulinAfterConstraints - insulin != 0 || carbsAfterConstraints != carbs)
if (insulinAfterConstraints - insulin != 0 || !Objects.equals(carbsAfterConstraints, carbs))
confirmMessage += "\n" + getString(R.string.constraintapllied);
final double finalInsulinAfterConstraints = insulinAfterConstraints;

View file

@ -129,7 +129,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
@Override
public void onResume() {
super.onPause();
super.onResume();
MainApp.bus().register(this);
}
@ -243,7 +243,8 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
editBg.setParams(0d, 0d, 500d, 0.1d, new DecimalFormat("0.0"), false, textWatcher);
editCarbs.setParams(0d, 0d, (double) maxCarbs, 1d, new DecimalFormat("0"), false, textWatcher);
editCorr.setParams(0d, -maxCorrection, maxCorrection, 0.05d, new DecimalFormat("0.00"), false, textWatcher);
double bolusstep = MainApp.getConfigBuilder().getPumpDescription().bolusStep;
editCorr.setParams(0d, -maxCorrection, maxCorrection, bolusstep, new DecimalFormat("0.00"), false, textWatcher);
editCarbTime.setParams(0d, -60d, 60d, 5d, new DecimalFormat("0"), false);
initDialog();

View file

@ -56,7 +56,7 @@ public class NotificationStore {
}
store.add(n);
WearPlugin wearPlugin = (WearPlugin) MainApp.getSpecificPlugin(WearPlugin.class);
WearPlugin wearPlugin = MainApp.getSpecificPlugin(WearPlugin.class);
if(wearPlugin!= null && wearPlugin.isEnabled()) {
wearPlugin.overviewNotification(n.id, "OverviewNotification:\n" + n.text);
}

View file

@ -55,6 +55,7 @@ import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
@ -615,7 +616,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
finalLastRun.lastEnact = new Date();
finalLastRun.lastOpenModeAccept = new Date();
NSUpload.uploadDeviceStatus();
ObjectivesPlugin objectivesPlugin = (ObjectivesPlugin) MainApp.getSpecificPlugin(ObjectivesPlugin.class);
ObjectivesPlugin objectivesPlugin = MainApp.getSpecificPlugin(ObjectivesPlugin.class);
if (objectivesPlugin != null) {
ObjectivesPlugin.manualEnacts++;
ObjectivesPlugin.saveProgress();
@ -912,6 +913,34 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
return;
}
Double lowLine = SP.getDouble("low_mark", 0d);
Double highLine = SP.getDouble("high_mark", 0d);
//Start with updating the BG as it is unaffected by loop.
// **** BG value ****
if (lastBG != null) {
int color = MainApp.sResources.getColor(R.color.inrange);
if (lastBG.valueToUnits(units) < lowLine)
color = MainApp.sResources.getColor(R.color.low);
else if (lastBG.valueToUnits(units) > highLine)
color = MainApp.sResources.getColor(R.color.high);
bgView.setText(lastBG.valueToUnitsToString(units));
arrowView.setText(lastBG.directionToSymbol());
bgView.setTextColor(color);
arrowView.setTextColor(color);
GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
if (glucoseStatus != null) {
deltaView.setText("Δ " + Profile.toUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units) + " " + units);
if (avgdeltaView != null)
avgdeltaView.setText("øΔ15m: " + Profile.toUnitsString(glucoseStatus.short_avgdelta, glucoseStatus.short_avgdelta * Constants.MGDL_TO_MMOLL, units) +
" øΔ40m: " + Profile.toUnitsString(glucoseStatus.long_avgdelta, glucoseStatus.long_avgdelta * Constants.MGDL_TO_MMOLL, units));
} else {
deltaView.setText("Δ " + MainApp.sResources.getString(R.string.notavailable));
if (avgdeltaView != null)
avgdeltaView.setText("");
}
}
// open loop mode
final LoopPlugin.LastRun finalLastRun = LoopPlugin.lastRun;
if (Config.APS && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable) {
@ -1105,8 +1134,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
treatmentButton.setVisibility(View.GONE);
}
Double lowLine = SP.getDouble("low_mark", 0d);
Double highLine = SP.getDouble("high_mark", 0d);
if (lowLine < 1) {
lowLine = Profile.fromMgdlToUnits(OverviewPlugin.bgTargetLow, units);
}
@ -1115,28 +1143,8 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
}
// **** BG value ****
if (lastBG != null) {
int color = MainApp.sResources.getColor(R.color.inrange);
if (lastBG.valueToUnits(units) < lowLine)
color = MainApp.sResources.getColor(R.color.low);
else if (lastBG.valueToUnits(units) > highLine)
color = MainApp.sResources.getColor(R.color.high);
bgView.setText(lastBG.valueToUnitsToString(units));
arrowView.setText(lastBG.directionToSymbol());
bgView.setTextColor(color);
arrowView.setTextColor(color);
GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
if (glucoseStatus != null) {
deltaView.setText("Δ " + Profile.toUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units) + " " + units);
if (avgdeltaView != null)
avgdeltaView.setText("øΔ15m: " + Profile.toUnitsString(glucoseStatus.short_avgdelta, glucoseStatus.short_avgdelta * Constants.MGDL_TO_MMOLL, units) +
" øΔ40m: " + Profile.toUnitsString(glucoseStatus.long_avgdelta, glucoseStatus.long_avgdelta * Constants.MGDL_TO_MMOLL, units));
} else {
deltaView.setText("Δ " + MainApp.sResources.getString(R.string.notavailable));
if (avgdeltaView != null)
avgdeltaView.setText("");
}
} else {
if (lastBG == null) { //left this here as it seems you want to exit at this point if it is null...
return;
}
Integer flag = bgView.getPaintFlags();
@ -1598,8 +1606,6 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
for (int tx = 0; tx < treatments.size(); tx++) {
Treatment t = treatments.get(tx);
if (!t.isValid)
continue;
if (t.getX() < fromTime || t.getX() > endTime) continue;
t.setY(getNearestBg((long) t.getX(), bgReadingsArray));
filteredTreatments.add(t);
@ -1740,7 +1746,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
public void onBindViewHolder(NotificationsViewHolder holder, int position) {
Notification notification = notificationsList.get(position);
holder.dismiss.setTag(notification);
if(notification.text == MainApp.sResources.getString(R.string.nsalarm_staledata))
if(Objects.equals(notification.text, MainApp.sResources.getString(R.string.nsalarm_staledata)))
holder.dismiss.setText("snooze");
holder.text.setText(notification.text);
holder.time.setText(DateUtil.timeString(notification.date));

View file

@ -124,7 +124,7 @@ public class QuickWizardListActivity extends AppCompatActivity implements View.O
llm = new LinearLayoutManager(this);
recyclerView.setLayoutManager(llm);
RecyclerViewAdapter adapter = new RecyclerViewAdapter(((OverviewPlugin) MainApp.getSpecificPlugin(OverviewPlugin.class)).quickWizard, getSupportFragmentManager());
RecyclerViewAdapter adapter = new RecyclerViewAdapter(MainApp.getSpecificPlugin(OverviewPlugin.class).quickWizard, getSupportFragmentManager());
recyclerView.setAdapter(adapter);
adButton = (Button) findViewById(R.id.overview_quickwizardactivity_add_button);
@ -164,7 +164,7 @@ public class QuickWizardListActivity extends AppCompatActivity implements View.O
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
RecyclerViewAdapter adapter = new RecyclerViewAdapter(((OverviewPlugin) MainApp.getSpecificPlugin(OverviewPlugin.class)).quickWizard, getSupportFragmentManager());
RecyclerViewAdapter adapter = new RecyclerViewAdapter(MainApp.getSpecificPlugin(OverviewPlugin.class).quickWizard, getSupportFragmentManager());
recyclerView.swapAdapter(adapter, false);
}
});

View file

@ -109,7 +109,7 @@ public class NSProfilePlugin implements PluginBase, ProfileInterface {
PumpInterface pump = MainApp.getConfigBuilder();
if (SP.getBoolean("syncprofiletopump", false)) {
if (pump.setNewBasalProfile(MainApp.getConfigBuilder().getProfile()) == PumpInterface.SUCCESS) {
SmsCommunicatorPlugin smsCommunicatorPlugin = (SmsCommunicatorPlugin) MainApp.getSpecificPlugin(SmsCommunicatorPlugin.class);
SmsCommunicatorPlugin smsCommunicatorPlugin = MainApp.getSpecificPlugin(SmsCommunicatorPlugin.class);
if (smsCommunicatorPlugin != null && smsCommunicatorPlugin.isEnabled(PluginBase.GENERAL)) {
smsCommunicatorPlugin.sendNotificationToAllNumbers(MainApp.sResources.getString(R.string.profile_set_ok));
}

View file

@ -39,15 +39,6 @@ import info.nightscout.utils.SetWarnColor;
public class DanaRFragment extends SubscriberFragment {
private static Logger log = LoggerFactory.getLogger(DanaRFragment.class);
private static DanaRPlugin danaRPlugin;
public static DanaRPlugin getPlugin() {
if (danaRPlugin == null) {
danaRPlugin = new DanaRPlugin();
}
return danaRPlugin;
}
private static Handler sHandler;
private static HandlerThread sHandlerThread;
@ -146,7 +137,7 @@ public class DanaRFragment extends SubscriberFragment {
sHandler.post(new Runnable() {
@Override
public void run() {
DanaRPlugin.sExecutionService.connect("Connect request from GUI");
MainApp.getConfigBuilder().refreshDataFromPump("Connect request from GUI");
}
}
);
@ -218,11 +209,21 @@ public class DanaRFragment extends SubscriberFragment {
dailyUnitsView.setText(DecimalFormatter.to0Decimal(pump.dailyTotalUnits) + " / " + pump.maxDailyTotalUnits + " U");
SetWarnColor.setColor(dailyUnitsView, pump.dailyTotalUnits, pump.maxDailyTotalUnits * 0.75d, pump.maxDailyTotalUnits * 0.9d);
basaBasalRateView.setText("( " + (pump.activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(getPlugin().getBaseBasalRate()) + " U/h");
if (MainApp.getConfigBuilder().isInHistoryRealTempBasalInProgress()) {
tempBasalView.setText(MainApp.getConfigBuilder().getRealTempBasalFromHistory(System.currentTimeMillis()).toStringFull());
basaBasalRateView.setText("( " + (pump.activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(MainApp.getConfigBuilder().getBaseBasalRate()) + " U/h");
// DanaRPlugin, DanaRKoreanPlugin
if (MainApp.getConfigBuilder().isFakingTempsByExtendedBoluses()) {
if (MainApp.getConfigBuilder().isInHistoryRealTempBasalInProgress()) {
tempBasalView.setText(MainApp.getConfigBuilder().getRealTempBasalFromHistory(System.currentTimeMillis()).toStringFull());
} else {
tempBasalView.setText("");
}
} else {
tempBasalView.setText("");
// v2 plugin
if (MainApp.getConfigBuilder().isTempBasalInProgress()) {
tempBasalView.setText(MainApp.getConfigBuilder().getTempBasalFromHistory(System.currentTimeMillis()).toStringFull());
} else {
tempBasalView.setText("");
}
}
if (MainApp.getConfigBuilder().isInHistoryExtendedBoluslInProgress()) {
extendedBolusView.setText(MainApp.getConfigBuilder().getExtendedBolusFromHistory(System.currentTimeMillis()).toString());

View file

@ -69,6 +69,14 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C
private static DanaRPump pump = DanaRPump.getInstance();
private static boolean useExtendedBoluses = false;
private static DanaRPlugin plugin = null;
public static DanaRPlugin getPlugin() {
if (plugin == null)
plugin = new DanaRPlugin();
return plugin;
}
public static PumpDescription pumpDescription = new PumpDescription();
public DanaRPlugin() {
@ -80,7 +88,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C
MainApp.bus().register(this);
pumpDescription.isBolusCapable = true;
pumpDescription.bolusStep = 0.1d;
pumpDescription.bolusStep = 0.05d;
pumpDescription.isExtendedBolusCapable = true;
pumpDescription.extendedBolusStep = 0.05d;
@ -104,7 +112,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C
pumpDescription.isRefillingCapable = true;
}
ServiceConnection mConnection = new ServiceConnection() {
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceDisconnected(ComponentName name) {
log.debug("Service is disconnected");
@ -298,7 +306,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, DanaRInterface, C
ConfigBuilderPlugin configBuilderPlugin = MainApp.getConfigBuilder();
detailedBolusInfo.insulin = configBuilderPlugin.applyBolusConstraints(detailedBolusInfo.insulin);
if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0) {
Treatment t = new Treatment(detailedBolusInfo.insulinInterface);
Treatment t = new Treatment();
boolean connectionOK = false;
if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0) connectionOK = sExecutionService.bolus(detailedBolusInfo.insulin, (int) detailedBolusInfo.carbs, t);
PumpEnactResult result = new PumpEnactResult();

View file

@ -318,7 +318,7 @@ public class DanaRExecutionService extends Service {
}
Date now = new Date();
if (danaRPump.lastSettingsRead.getTime() + 60 * 60 * 1000L < now.getTime() || !((DanaRPlugin)MainApp.getSpecificPlugin(DanaRPlugin.class)).isInitialized()) {
if (danaRPump.lastSettingsRead.getTime() + 60 * 60 * 1000L < now.getTime() || !MainApp.getSpecificPlugin(DanaRPlugin.class).isInitialized()) {
mSerialIOThread.sendMessage(new MsgSettingShippingInfo());
mSerialIOThread.sendMessage(new MsgSettingActiveProfile());
mSerialIOThread.sendMessage(new MsgSettingMeal());

View file

@ -1,248 +0,0 @@
package info.nightscout.androidaps.plugins.PumpDanaRKorean;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.squareup.otto.Subscribe;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.events.EventExtendedBolusChange;
import info.nightscout.androidaps.events.EventPumpStatusChanged;
import info.nightscout.androidaps.events.EventTempBasalChange;
import info.nightscout.androidaps.plugins.Common.SubscriberFragment;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPump;
import info.nightscout.androidaps.plugins.PumpDanaR.Dialogs.ProfileViewDialog;
import info.nightscout.androidaps.plugins.PumpDanaR.activities.DanaRHistoryActivity;
import info.nightscout.androidaps.plugins.PumpDanaR.activities.DanaRStatsActivity;
import info.nightscout.androidaps.plugins.PumpDanaR.events.EventDanaRNewStatus;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.SetWarnColor;
public class DanaRKoreanFragment extends SubscriberFragment {
private static Logger log = LoggerFactory.getLogger(DanaRKoreanFragment.class);
private static DanaRKoreanPlugin danaRKoreanPlugin = new DanaRKoreanPlugin();
public static DanaRKoreanPlugin getPlugin() {
return danaRKoreanPlugin;
}
private static Handler sHandler;
private static HandlerThread sHandlerThread;
private Handler loopHandler = new Handler();
private Runnable refreshLoop = null;
TextView lastConnectionView;
TextView btConnectionView;
TextView lastBolusView;
TextView dailyUnitsView;
TextView basaBasalRateView;
TextView tempBasalView;
TextView extendedBolusView;
TextView batteryView;
TextView reservoirView;
TextView iobView;
TextView firmwareView;
TextView basalStepView;
TextView bolusStepView;
Button viewProfileButton;
Button historyButton;
Button statsButton;
public DanaRKoreanFragment() {
if (sHandlerThread == null) {
sHandlerThread = new HandlerThread(DanaRKoreanFragment.class.getSimpleName());
sHandlerThread.start();
sHandler = new Handler(sHandlerThread.getLooper());
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (refreshLoop == null) {
refreshLoop = new Runnable() {
@Override
public void run() {
updateGUI();
loopHandler.postDelayed(refreshLoop, 60 * 1000L);
}
};
loopHandler.postDelayed(refreshLoop, 60 * 1000L);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.danar_fragment, container, false);
btConnectionView = (TextView) view.findViewById(R.id.danar_btconnection);
lastConnectionView = (TextView) view.findViewById(R.id.danar_lastconnection);
lastBolusView = (TextView) view.findViewById(R.id.danar_lastbolus);
dailyUnitsView = (TextView) view.findViewById(R.id.danar_dailyunits);
basaBasalRateView = (TextView) view.findViewById(R.id.danar_basabasalrate);
tempBasalView = (TextView) view.findViewById(R.id.danar_tempbasal);
extendedBolusView = (TextView) view.findViewById(R.id.danar_extendedbolus);
batteryView = (TextView) view.findViewById(R.id.danar_battery);
reservoirView = (TextView) view.findViewById(R.id.danar_reservoir);
iobView = (TextView) view.findViewById(R.id.danar_iob);
firmwareView = (TextView) view.findViewById(R.id.danar_firmware);
viewProfileButton = (Button) view.findViewById(R.id.danar_viewprofile);
historyButton = (Button) view.findViewById(R.id.danar_history);
statsButton = (Button) view.findViewById(R.id.danar_stats);
basalStepView = (TextView) view.findViewById(R.id.danar_basalstep);
bolusStepView = (TextView) view.findViewById(R.id.danar_bolusstep);
viewProfileButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager manager = getFragmentManager();
ProfileViewDialog profileViewDialog = new ProfileViewDialog();
profileViewDialog.show(manager, "ProfileViewDialog");
}
});
historyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), DanaRHistoryActivity.class));
}
});
statsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), DanaRStatsActivity.class));
}
});
btConnectionView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sHandler.post(new Runnable() {
@Override
public void run() {
DanaRKoreanPlugin.sExecutionService.connect("Connect request from GUI");
}
}
);
}
});
updateGUI();
return view;
}
@Subscribe
public void onStatusEvent(final EventPumpStatusChanged c) {
Activity activity = getActivity();
if (activity != null) {
activity.runOnUiThread(
new Runnable() {
@Override
public void run() {
if (c.sStatus == EventPumpStatusChanged.CONNECTING)
btConnectionView.setText("{fa-bluetooth-b spin} " + c.sSecondsElapsed + "s");
else if (c.sStatus == EventPumpStatusChanged.CONNECTED)
btConnectionView.setText("{fa-bluetooth}");
else if (c.sStatus == EventPumpStatusChanged.DISCONNECTED)
btConnectionView.setText("{fa-bluetooth-b}");
}
}
);
}
}
@Subscribe
public void onStatusEvent(final EventDanaRNewStatus s) {
updateGUI();
}
@Subscribe
public void onStatusEvent(final EventTempBasalChange s) {
updateGUI();
}
@Subscribe
public void onStatusEvent(final EventExtendedBolusChange s) {
updateGUI();
}
// GUI functions
@Override
protected void updateGUI() {
Activity activity = getActivity();
if (activity != null && basaBasalRateView != null)
activity.runOnUiThread(new Runnable() {
@SuppressLint("SetTextI18n")
@Override
public void run() {
DanaRPump pump = DanaRPump.getInstance();
if (pump.lastConnection.getTime() != 0) {
Long agoMsec = System.currentTimeMillis() - pump.lastConnection.getTime();
int agoMin = (int) (agoMsec / 60d / 1000d);
lastConnectionView.setText(DateUtil.timeString(pump.lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")");
SetWarnColor.setColor(lastConnectionView, agoMin, 16d, 31d);
}
// if (pump.lastBolusTime.getTime() != 0) {
// Long agoMsec = System.currentTimeMillis() - pump.lastBolusTime.getTime();
// double agoHours = agoMsec / 60d / 60d / 1000d;
// if (agoHours < 6) // max 6h back
// lastBolusView.setText(formatTime.format(pump.lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(pump.lastBolusAmount) + " U");
// else lastBolusView.setText("");
// }
dailyUnitsView.setText(DecimalFormatter.to0Decimal(pump.dailyTotalUnits) + " / " + pump.maxDailyTotalUnits + " U");
SetWarnColor.setColor(dailyUnitsView, pump.dailyTotalUnits, pump.maxDailyTotalUnits * 0.75d, pump.maxDailyTotalUnits * 0.9d);
basaBasalRateView.setText("( " + (pump.activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(danaRKoreanPlugin.getBaseBasalRate()) + " U/h");
if (MainApp.getConfigBuilder().isInHistoryRealTempBasalInProgress()) {
tempBasalView.setText(MainApp.getConfigBuilder().getRealTempBasalFromHistory(System.currentTimeMillis()).toStringFull());
} else {
tempBasalView.setText("");
}
if (MainApp.getConfigBuilder().isInHistoryExtendedBoluslInProgress()) {
extendedBolusView.setText(MainApp.getConfigBuilder().getExtendedBolusFromHistory(System.currentTimeMillis()).toString());
} else {
extendedBolusView.setText("");
}
reservoirView.setText(DecimalFormatter.to0Decimal(pump.reservoirRemainingUnits) + " / 300 U");
SetWarnColor.setColorInverse(reservoirView, pump.reservoirRemainingUnits, 50d, 20d);
batteryView.setText("{fa-battery-" + (pump.batteryRemaining / 25) + "}");
SetWarnColor.setColorInverse(batteryView, pump.batteryRemaining, 51d, 26d);
iobView.setText(pump.iob + " U");
if (pump.isNewPump) {
firmwareView.setText(String.format(MainApp.sResources.getString(R.string.danar_model), pump.model, pump.protocol, pump.productCode));
} else {
firmwareView.setText("OLD");
}
basalStepView.setText("" + pump.basalStep);
bolusStepView.setText("" + pump.bolusStep);
}
});
}
}

View file

@ -23,6 +23,8 @@ import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.DetailedBolusInfo;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore;
import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.ExtendedBolus;
import info.nightscout.androidaps.db.TemporaryBasal;
@ -36,12 +38,11 @@ import info.nightscout.androidaps.interfaces.ProfileInterface;
import info.nightscout.androidaps.interfaces.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore;
import info.nightscout.androidaps.plugins.Overview.Notification;
import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.ProfileNS.NSProfilePlugin;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRFragment;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPump;
import info.nightscout.androidaps.plugins.PumpDanaRKorean.services.DanaRKoreanExecutionService;
import info.nightscout.utils.DateUtil;
@ -57,7 +58,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, DanaRInterf
@Override
public String getFragmentClass() {
return DanaRKoreanFragment.class.getName();
return DanaRFragment.class.getName();
}
static boolean fragmentPumpEnabled = false;
@ -70,9 +71,15 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, DanaRInterf
private static DanaRPump pump = DanaRPump.getInstance();
private static boolean useExtendedBoluses = false;
public static PumpDescription pumpDescription = new PumpDescription();
private static DanaRKoreanPlugin plugin = null;
String textStatus = "";
public static DanaRKoreanPlugin getPlugin() {
if (plugin == null)
plugin = new DanaRKoreanPlugin();
return plugin;
}
public static PumpDescription pumpDescription = new PumpDescription();
public DanaRKoreanPlugin() {
useExtendedBoluses = SP.getBoolean("danar_useextended", false);
@ -107,7 +114,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, DanaRInterf
pumpDescription.isRefillingCapable = true;
}
ServiceConnection mConnection = new ServiceConnection() {
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceDisconnected(ComponentName name) {
log.debug("Service is disconnected");
@ -301,7 +308,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, DanaRInterf
ConfigBuilderPlugin configBuilderPlugin = MainApp.getConfigBuilder();
detailedBolusInfo.insulin = configBuilderPlugin.applyBolusConstraints(detailedBolusInfo.insulin);
if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0) {
Treatment t = new Treatment(detailedBolusInfo.insulinInterface);
Treatment t = new Treatment();
boolean connectionOK = false;
if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0)
connectionOK = sExecutionService.bolus(detailedBolusInfo.insulin, (int) detailedBolusInfo.carbs, t);

View file

@ -315,7 +315,7 @@ public class DanaRKoreanExecutionService extends Service {
}
Date now = new Date();
if (danaRPump.lastSettingsRead.getTime() + 60 * 60 * 1000L < now.getTime() || !((DanaRKoreanPlugin)MainApp.getSpecificPlugin(DanaRKoreanPlugin.class)).isInitialized()) {
if (danaRPump.lastSettingsRead.getTime() + 60 * 60 * 1000L < now.getTime() || !MainApp.getSpecificPlugin(DanaRKoreanPlugin.class).isInitialized()) {
mSerialIOThread.sendMessage(new MsgSettingShippingInfo());
mSerialIOThread.sendMessage(new MsgSettingMeal());
mSerialIOThread.sendMessage(new MsgSettingBasal_k());

View file

@ -1,250 +0,0 @@
package info.nightscout.androidaps.plugins.PumpDanaRv2;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.squareup.otto.Subscribe;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.events.EventExtendedBolusChange;
import info.nightscout.androidaps.events.EventPumpStatusChanged;
import info.nightscout.androidaps.events.EventTempBasalChange;
import info.nightscout.androidaps.plugins.Common.SubscriberFragment;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPump;
import info.nightscout.androidaps.plugins.PumpDanaR.Dialogs.ProfileViewDialog;
import info.nightscout.androidaps.plugins.PumpDanaR.activities.DanaRHistoryActivity;
import info.nightscout.androidaps.plugins.PumpDanaR.activities.DanaRStatsActivity;
import info.nightscout.androidaps.plugins.PumpDanaR.events.EventDanaRNewStatus;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.SetWarnColor;
public class DanaRv2Fragment extends SubscriberFragment {
private static Logger log = LoggerFactory.getLogger(DanaRv2Fragment.class);
private static DanaRv2Plugin danaRPlugin;
public static DanaRv2Plugin getPlugin() {
if (danaRPlugin == null) {
danaRPlugin = new DanaRv2Plugin();
}
return danaRPlugin;
}
private static Handler sHandler;
private static HandlerThread sHandlerThread;
private Handler loopHandler = new Handler();
private Runnable refreshLoop = null;
TextView lastConnectionView;
TextView btConnectionView;
TextView lastBolusView;
TextView dailyUnitsView;
TextView basaBasalRateView;
TextView tempBasalView;
TextView extendedBolusView;
TextView batteryView;
TextView reservoirView;
TextView iobView;
TextView firmwareView;
TextView basalStepView;
TextView bolusStepView;
Button viewProfileButton;
Button historyButton;
Button statsButton;
public DanaRv2Fragment() {
if (sHandlerThread == null) {
sHandlerThread = new HandlerThread(DanaRv2Fragment.class.getSimpleName());
sHandlerThread.start();
sHandler = new Handler(sHandlerThread.getLooper());
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (refreshLoop == null) {
refreshLoop = new Runnable() {
@Override
public void run() {
updateGUI();
loopHandler.postDelayed(refreshLoop, 60 * 1000L);
}
};
loopHandler.postDelayed(refreshLoop, 60 * 1000L);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.danar_fragment, container, false);
btConnectionView = (TextView) view.findViewById(R.id.danar_btconnection);
lastConnectionView = (TextView) view.findViewById(R.id.danar_lastconnection);
lastBolusView = (TextView) view.findViewById(R.id.danar_lastbolus);
dailyUnitsView = (TextView) view.findViewById(R.id.danar_dailyunits);
basaBasalRateView = (TextView) view.findViewById(R.id.danar_basabasalrate);
tempBasalView = (TextView) view.findViewById(R.id.danar_tempbasal);
extendedBolusView = (TextView) view.findViewById(R.id.danar_extendedbolus);
batteryView = (TextView) view.findViewById(R.id.danar_battery);
reservoirView = (TextView) view.findViewById(R.id.danar_reservoir);
iobView = (TextView) view.findViewById(R.id.danar_iob);
firmwareView = (TextView) view.findViewById(R.id.danar_firmware);
viewProfileButton = (Button) view.findViewById(R.id.danar_viewprofile);
historyButton = (Button) view.findViewById(R.id.danar_history);
statsButton = (Button) view.findViewById(R.id.danar_stats);
basalStepView = (TextView) view.findViewById(R.id.danar_basalstep);
bolusStepView = (TextView) view.findViewById(R.id.danar_bolusstep);
viewProfileButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager manager = getFragmentManager();
ProfileViewDialog profileViewDialog = new ProfileViewDialog();
profileViewDialog.show(manager, "ProfileViewDialog");
}
});
historyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), DanaRHistoryActivity.class));
}
});
statsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), DanaRStatsActivity.class));
}
});
btConnectionView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sHandler.post(new Runnable() {
@Override
public void run() {
DanaRv2Plugin.sExecutionService.connect("Connect request from GUI");
}
}
);
}
});
updateGUI();
return view;
}
@Subscribe
public void onStatusEvent(final EventPumpStatusChanged c) {
Activity activity = getActivity();
if (activity != null) {
activity.runOnUiThread(
new Runnable() {
@Override
public void run() {
if (c.sStatus == EventPumpStatusChanged.CONNECTING)
btConnectionView.setText("{fa-bluetooth-b spin} " + c.sSecondsElapsed + "s");
else if (c.sStatus == EventPumpStatusChanged.CONNECTED)
btConnectionView.setText("{fa-bluetooth}");
else if (c.sStatus == EventPumpStatusChanged.DISCONNECTED)
btConnectionView.setText("{fa-bluetooth-b}");
}
}
);
}
}
@Subscribe
public void onStatusEvent(final EventDanaRNewStatus s) {
updateGUI();
}
@Subscribe
public void onStatusEvent(final EventTempBasalChange s) {
updateGUI();
}
@Subscribe
public void onStatusEvent(final EventExtendedBolusChange s) {
updateGUI();
}
// GUI functions
@Override
protected void updateGUI() {
Activity activity = getActivity();
if (activity != null && basaBasalRateView != null)
activity.runOnUiThread(new Runnable() {
@SuppressLint("SetTextI18n")
@Override
public void run() {
DanaRPump pump = DanaRPump.getInstance();
if (pump.lastConnection.getTime() != 0) {
Long agoMsec = System.currentTimeMillis() - pump.lastConnection.getTime();
int agoMin = (int) (agoMsec / 60d / 1000d);
lastConnectionView.setText(DateUtil.timeString(pump.lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")");
SetWarnColor.setColor(lastConnectionView, agoMin, 16d, 31d);
}
if (pump.lastBolusTime.getTime() != 0) {
Long agoMsec = System.currentTimeMillis() - pump.lastBolusTime.getTime();
double agoHours = agoMsec / 60d / 60d / 1000d;
if (agoHours < 6) // max 6h back
lastBolusView.setText(DateUtil.timeString(pump.lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + MainApp.sResources.getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(DanaRPump.getInstance().lastBolusAmount) + " U");
else lastBolusView.setText("");
}
dailyUnitsView.setText(DecimalFormatter.to0Decimal(pump.dailyTotalUnits) + " / " + pump.maxDailyTotalUnits + " U");
SetWarnColor.setColor(dailyUnitsView, pump.dailyTotalUnits, pump.maxDailyTotalUnits * 0.75d, pump.maxDailyTotalUnits * 0.9d);
basaBasalRateView.setText("( " + (pump.activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(getPlugin().getBaseBasalRate()) + " U/h");
if (MainApp.getConfigBuilder().isTempBasalInProgress()) {
tempBasalView.setText(MainApp.getConfigBuilder().getTempBasalFromHistory(System.currentTimeMillis()).toStringFull());
} else {
tempBasalView.setText("");
}
if (MainApp.getConfigBuilder().isInHistoryExtendedBoluslInProgress()) {
extendedBolusView.setText(MainApp.getConfigBuilder().getExtendedBolusFromHistory(System.currentTimeMillis()).toString());
} else {
extendedBolusView.setText("");
}
reservoirView.setText(DecimalFormatter.to0Decimal(pump.reservoirRemainingUnits) + " / 300 U");
SetWarnColor.setColorInverse(reservoirView, pump.reservoirRemainingUnits, 50d, 20d);
batteryView.setText("{fa-battery-" + (pump.batteryRemaining / 25) + "}");
SetWarnColor.setColorInverse(batteryView, pump.batteryRemaining, 51d, 26d);
iobView.setText(pump.iob + " U");
if (pump.isNewPump) {
firmwareView.setText(String.format(MainApp.sResources.getString(R.string.danar_model), pump.model, pump.protocol, pump.productCode));
} else {
firmwareView.setText("OLD");
}
basalStepView.setText("" + pump.basalStep);
bolusStepView.setText("" + pump.bolusStep);
}
});
}
}

View file

@ -4,9 +4,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.os.IBinder;
import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
import com.squareup.otto.Subscribe;
@ -25,6 +23,8 @@ import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.DetailedBolusInfo;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore;
import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.ExtendedBolus;
import info.nightscout.androidaps.db.TemporaryBasal;
@ -37,13 +37,12 @@ import info.nightscout.androidaps.interfaces.ProfileInterface;
import info.nightscout.androidaps.interfaces.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore;
import info.nightscout.androidaps.plugins.ConfigBuilder.DetailedBolusInfoStorage;
import info.nightscout.androidaps.plugins.Overview.Notification;
import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.ProfileNS.NSProfilePlugin;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRFragment;
import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPump;
import info.nightscout.androidaps.plugins.PumpDanaRv2.services.DanaRv2ExecutionService;
import info.nightscout.utils.DateUtil;
@ -58,7 +57,7 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface,
@Override
public String getFragmentClass() {
return DanaRv2Fragment.class.getName();
return DanaRFragment.class.getName();
}
static boolean fragmentPumpEnabled = false;
@ -68,20 +67,26 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface,
public static DanaRv2ExecutionService sExecutionService;
private static DanaRv2Plugin plugin = null;
public static DanaRv2Plugin getPlugin() {
if (plugin == null)
plugin = new DanaRv2Plugin();
return plugin;
}
private static DanaRPump pump = DanaRPump.getInstance();
public static PumpDescription pumpDescription = new PumpDescription();
public DanaRv2Plugin() {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext());
Context context = MainApp.instance().getApplicationContext();
Intent intent = new Intent(context, DanaRv2ExecutionService.class);
context.bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
MainApp.bus().register(this);
pumpDescription.isBolusCapable = true;
pumpDescription.bolusStep = 0.1d;
pumpDescription.bolusStep = 0.05d;
pumpDescription.isExtendedBolusCapable = true;
pumpDescription.extendedBolusStep = 0.05d;
@ -105,7 +110,7 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface,
pumpDescription.isRefillingCapable = true;
}
ServiceConnection mConnection = new ServiceConnection() {
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceDisconnected(ComponentName name) {
log.debug("Service is disconnected");
@ -288,10 +293,20 @@ public class DanaRv2Plugin implements PluginBase, PumpInterface, DanaRInterface,
detailedBolusInfo.insulin = configBuilderPlugin.applyBolusConstraints(detailedBolusInfo.insulin);
if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0) {
DetailedBolusInfoStorage.add(detailedBolusInfo); // will be picked up on reading history
Treatment t = new Treatment(detailedBolusInfo.insulinInterface);
// v2 stores end time for bolus, we need to adjust time
// delivery speed is 12 U/min
detailedBolusInfo.date += detailedBolusInfo.insulin / 12d * 60 * 1000;
// clean carbs to prevent counting them as twice because they will picked up as another record
// I don't think it's necessary to copy DetailedBolusInfo right now for carbs records
double carbs = detailedBolusInfo.carbs;
detailedBolusInfo.carbs = 0;
int carbTime = detailedBolusInfo.carbTime;
detailedBolusInfo.carbTime = 0;
Treatment t = new Treatment();
boolean connectionOK = false;
if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0)
connectionOK = sExecutionService.bolus(detailedBolusInfo.insulin, (int) detailedBolusInfo.carbs, System.currentTimeMillis() + detailedBolusInfo.carbTime * 60 * 1000 + 1000, t); // +1000 to make the record different
if (detailedBolusInfo.insulin > 0 || carbs > 0)
connectionOK = sExecutionService.bolus(detailedBolusInfo.insulin, (int) carbs, System.currentTimeMillis() + carbTime * 60 * 1000 + 1000, t); // +1000 to make the record different
PumpEnactResult result = new PumpEnactResult();
result.success = connectionOK;
result.bolusDelivered = t.insulin;

View file

@ -67,15 +67,10 @@ public class MsgHistoryEvents_v2 extends MessageBase {
if (detailedBolusInfo == null) {
log.debug("DetailedBolusInfo not found for " + datetime.toLocaleString());
detailedBolusInfo = new DetailedBolusInfo();
} else {
log.debug("DetailedBolusInfo found for " + datetime.toLocaleString() + ": " + new Date(detailedBolusInfo.date).toLocaleString());
detailedBolusInfo.carbTime = 0;
detailedBolusInfo.carbs = 0;
}
detailedBolusInfo.date = datetime.getTime();
detailedBolusInfo.source = Source.PUMP;
detailedBolusInfo.pumpId = datetime.getTime();
detailedBolusInfo.source = Source.PUMP;
switch (recordCode) {
case DanaRPump.TEMPSTART:
@ -102,11 +97,13 @@ public class MsgHistoryEvents_v2 extends MessageBase {
detailedBolusInfo.insulin = param1 / 100d;
boolean newRecord = MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo);
log.debug((newRecord ? "**NEW** " : "") + "EVENT BOLUS (" + recordCode + ") " + datetime.toLocaleString() + " Bolus: " + (param1 / 100d) + "U Duration: " + param2 + "min");
DetailedBolusInfoStorage.remove(detailedBolusInfo.date);
break;
case DanaRPump.DUALBOLUS:
detailedBolusInfo.insulin = param1 / 100d;
newRecord = MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo);
log.debug((newRecord ? "**NEW** " : "") + "EVENT DUALBOLUS (" + recordCode + ") " + datetime.toLocaleString() + " Bolus: " + (param1 / 100d) + "U Duration: " + param2 + "min");
DetailedBolusInfoStorage.remove(detailedBolusInfo.date);
break;
case DanaRPump.DUALEXTENDEDSTART:
log.debug("EVENT DUALEXTENDEDSTART (" + recordCode + ") " + datetime.toLocaleString() + " Amount: " + (param1 / 100d) + "U Duration: " + param2 + "min");
@ -134,8 +131,12 @@ public class MsgHistoryEvents_v2 extends MessageBase {
log.debug("EVENT PROFILECHANGE (" + recordCode + ") " + datetime.toLocaleString() + " No: " + param1 + " CurrentRate: " + (param2 / 100d) + "U/h");
break;
case DanaRPump.CARBS:
detailedBolusInfo.carbs = param1;
newRecord = MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo);
DetailedBolusInfo emptyCarbsInfo = new DetailedBolusInfo();
emptyCarbsInfo.carbs = param1;
emptyCarbsInfo.date = datetime.getTime();
emptyCarbsInfo.source = Source.PUMP;
emptyCarbsInfo.pumpId = datetime.getTime();
newRecord = MainApp.getConfigBuilder().addToHistoryTreatment(emptyCarbsInfo);
log.debug((newRecord ? "**NEW** " : "") + "EVENT CARBS (" + recordCode + ") " + datetime.toLocaleString() + " Carbs: " + param1 + "g");
break;
default:

View file

@ -289,7 +289,7 @@ public class DanaRv2ExecutionService extends Service {
}
Date now = new Date();
if (danaRPump.lastSettingsRead.getTime() + 60 * 60 * 1000L < now.getTime() || !((DanaRv2Plugin)MainApp.getSpecificPlugin(DanaRv2Plugin.class)).isInitialized()) {
if (danaRPump.lastSettingsRead.getTime() + 60 * 60 * 1000L < now.getTime() || !MainApp.getSpecificPlugin(DanaRv2Plugin.class).isInitialized()) {
mSerialIOThread.sendMessage(new MsgSettingShippingInfo());
mSerialIOThread.sendMessage(new MsgSettingActiveProfile());
mSerialIOThread.sendMessage(new MsgSettingMeal());

View file

@ -269,7 +269,7 @@ public class SmsCommunicatorPlugin implements PluginBase {
switch (splited[1].toUpperCase()) {
case "DISABLE":
case "STOP":
LoopPlugin loopPlugin = (LoopPlugin) MainApp.getSpecificPlugin(LoopPlugin.class);
LoopPlugin loopPlugin = MainApp.getSpecificPlugin(LoopPlugin.class);
if (loopPlugin != null && loopPlugin.isEnabled(PluginBase.LOOP)) {
loopPlugin.setFragmentEnabled(PluginBase.LOOP, false);
PumpEnactResult result = MainApp.getConfigBuilder().cancelTempBasal(true);
@ -283,7 +283,7 @@ public class SmsCommunicatorPlugin implements PluginBase {
break;
case "ENABLE":
case "START":
loopPlugin = (LoopPlugin) MainApp.getSpecificPlugin(LoopPlugin.class);
loopPlugin = MainApp.getSpecificPlugin(LoopPlugin.class);
if (loopPlugin != null && !loopPlugin.isEnabled(PluginBase.LOOP)) {
loopPlugin.setFragmentEnabled(PluginBase.LOOP, true);
reply = MainApp.sResources.getString(R.string.smscommunicator_loophasbeenenabled);
@ -294,7 +294,7 @@ public class SmsCommunicatorPlugin implements PluginBase {
Answers.getInstance().logCustom(new CustomEvent("SMS_Loop_Start"));
break;
case "STATUS":
loopPlugin = (LoopPlugin) MainApp.getSpecificPlugin(LoopPlugin.class);
loopPlugin = MainApp.getSpecificPlugin(LoopPlugin.class);
if (loopPlugin != null) {
if (loopPlugin.isEnabled(PluginBase.LOOP)) {
if (loopPlugin.isSuspended())
@ -371,12 +371,12 @@ public class SmsCommunicatorPlugin implements PluginBase {
}
break;
case "DANAR":
DanaRPlugin danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class);
DanaRPlugin danaRPlugin = MainApp.getSpecificPlugin(DanaRPlugin.class);
if (danaRPlugin != null && danaRPlugin.isEnabled(PluginBase.PUMP)) {
reply = danaRPlugin.shortStatus(true);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
DanaRKoreanPlugin danaRKoreanPlugin = (DanaRKoreanPlugin) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class);
DanaRKoreanPlugin danaRKoreanPlugin = MainApp.getSpecificPlugin(DanaRKoreanPlugin.class);
if (danaRKoreanPlugin != null && danaRKoreanPlugin.isEnabled(PluginBase.PUMP)) {
reply = danaRKoreanPlugin.shortStatus(true);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
@ -463,7 +463,7 @@ public class SmsCommunicatorPlugin implements PluginBase {
bolusWaitingForConfirmation.processed = true;
PumpInterface pumpInterface = MainApp.getConfigBuilder();
if (pumpInterface != null) {
danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class);
danaRPlugin = MainApp.getSpecificPlugin(DanaRPlugin.class);
DetailedBolusInfo detailedBolusInfo = new DetailedBolusInfo();
detailedBolusInfo.insulin = bolusWaitingForConfirmation.bolusRequested;
detailedBolusInfo.source = Source.USER;
@ -486,7 +486,7 @@ public class SmsCommunicatorPlugin implements PluginBase {
tempBasalWaitingForConfirmation.processed = true;
PumpInterface pumpInterface = MainApp.getConfigBuilder();
if (pumpInterface != null) {
danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class);
danaRPlugin = MainApp.getSpecificPlugin(DanaRPlugin.class);
PumpEnactResult result = pumpInterface.setTempBasalAbsolute(tempBasalWaitingForConfirmation.tempBasal, 30, false);
if (result.success) {
reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_tempbasalset), result.absolute, result.duration);
@ -505,7 +505,7 @@ public class SmsCommunicatorPlugin implements PluginBase {
cancelTempBasalWaitingForConfirmation.processed = true;
PumpInterface pumpInterface = MainApp.getConfigBuilder();
if (pumpInterface != null) {
danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class);
danaRPlugin = MainApp.getSpecificPlugin(DanaRPlugin.class);
PumpEnactResult result = pumpInterface.cancelTempBasal(true);
if (result.success) {
reply = MainApp.sResources.getString(R.string.smscommunicator_tempbasalcanceled);

View file

@ -413,7 +413,7 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface {
@Override
public boolean addToHistoryTreatment(DetailedBolusInfo detailedBolusInfo) {
Treatment treatment = new Treatment(detailedBolusInfo.insulinInterface);
Treatment treatment = new Treatment();
treatment.date = detailedBolusInfo.date;
treatment.source = detailedBolusInfo.source;
treatment.pumpId = detailedBolusInfo.pumpId;
@ -427,7 +427,7 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface {
boolean newRecordCreated = MainApp.getDbHelper().createOrUpdate(treatment);
//log.debug("Adding new Treatment record" + treatment.toString());
if (detailedBolusInfo.carbTime != 0) {
Treatment carbsTreatment = new Treatment(detailedBolusInfo.insulinInterface);
Treatment carbsTreatment = new Treatment();
carbsTreatment.source = detailedBolusInfo.source;
carbsTreatment.pumpId = detailedBolusInfo.pumpId; // but this should never happen
carbsTreatment.date = detailedBolusInfo.date + detailedBolusInfo.carbTime * 60 * 1000L + 1000L; // add 1 sec to make them different records

View file

@ -6,7 +6,6 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Paint;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
@ -28,14 +27,11 @@ import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileIntervals;
import info.nightscout.androidaps.db.ProfileSwitch;
import info.nightscout.androidaps.db.Source;
import info.nightscout.androidaps.db.TempTarget;
import info.nightscout.androidaps.events.EventProfileSwitchChange;
import info.nightscout.androidaps.events.EventTempTargetChange;
import info.nightscout.androidaps.plugins.Common.SubscriberFragment;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.NSUpload;
import info.nightscout.utils.OKDialog;
import info.nightscout.utils.SP;
/**
@ -61,8 +57,7 @@ public class TreatmentsProfileSwitchFragment extends SubscriberFragment implemen
@Override
public ProfileSwitchViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.treatments_profileswitch_item, viewGroup, false);
ProfileSwitchViewHolder ProfileSwitchViewHolder = new ProfileSwitchViewHolder(v);
return ProfileSwitchViewHolder;
return new ProfileSwitchViewHolder(v);
}
@Override
@ -187,14 +182,18 @@ public class TreatmentsProfileSwitchFragment extends SubscriberFragment implemen
public void onClick(View view) {
switch (view.getId()) {
case R.id.profileswitch_refreshfromnightscout:
OKDialog.show(getActivity(), MainApp.sResources.getString(R.string.confirmation), MainApp.sResources.getString(R.string.refresheventsfromnightscout) + "?", new Runnable() {
@Override
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext());
builder.setTitle(this.getContext().getString(R.string.confirmation));
builder.setMessage(this.getContext().getString(R.string.refresheventsfromnightscout) + "?");
builder.setPositiveButton(this.getContext().getString(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MainApp.getDbHelper().resetProfileSwitch();
Intent restartNSClient = new Intent(Intents.ACTION_RESTART);
MainApp.instance().getApplicationContext().sendBroadcast(restartNSClient);
}
});
builder.setNegativeButton(this.getContext().getString(R.string.cancel), null);
builder.show();
break;
}
}

View file

@ -242,7 +242,7 @@ public class ActionStringHandler {
} else if("opencpp".equals(act[0])){
Object activeProfile = MainApp.getConfigBuilder().getActiveProfileInterface();
CircadianPercentageProfilePlugin cpp = (CircadianPercentageProfilePlugin) MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class);
CircadianPercentageProfilePlugin cpp = MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class);
if(cpp == null || activeProfile==null || cpp != activeProfile){
sendError("CPP not activated!");
@ -256,7 +256,7 @@ public class ActionStringHandler {
} else if("cppset".equals(act[0])){
Object activeProfile = MainApp.getConfigBuilder().getActiveProfileInterface();
CircadianPercentageProfilePlugin cpp = (CircadianPercentageProfilePlugin) MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class);
CircadianPercentageProfilePlugin cpp = MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class);
if(cpp == null || activeProfile==null || cpp != activeProfile){
sendError("CPP not activated!");
@ -271,9 +271,9 @@ public class ActionStringHandler {
} else if("tddstats".equals(act[0])){
Object activePump = MainApp.getConfigBuilder().getActivePump();
PumpInterface dana = (PumpInterface) MainApp.getSpecificPlugin(DanaRPlugin.class);
PumpInterface danaV2 = (PumpInterface) MainApp.getSpecificPlugin(DanaRv2Plugin.class);
PumpInterface danaKorean = (PumpInterface) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class);
PumpInterface dana = MainApp.getSpecificPlugin(DanaRPlugin.class);
PumpInterface danaV2 = MainApp.getSpecificPlugin(DanaRv2Plugin.class);
PumpInterface danaKorean = MainApp.getSpecificPlugin(DanaRKoreanPlugin.class);
if((dana == null || dana != activePump) &&
@ -336,7 +336,7 @@ public class ActionStringHandler {
DateFormat df = new SimpleDateFormat("dd.MM.");
String message = "";
CircadianPercentageProfilePlugin cpp = (CircadianPercentageProfilePlugin) MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class);
CircadianPercentageProfilePlugin cpp = MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class);
boolean isCPP = (cpp!= null && cpp.isEnabled(PluginBase.PROFILE));
double refTDD = 100;
if(isCPP) refTDD = cpp.baseBasalSum()*2;
@ -572,7 +572,7 @@ public class ActionStringHandler {
private static void setCPP(int percentage, int timeshift) {
Object activeProfile = MainApp.getConfigBuilder().getActiveProfileInterface();
CircadianPercentageProfilePlugin cpp = (CircadianPercentageProfilePlugin) MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class);
CircadianPercentageProfilePlugin cpp = MainApp.getSpecificPlugin(CircadianPercentageProfilePlugin.class);
if(cpp == null || activeProfile==null || cpp != activeProfile){
sendError("CPP not activated!");

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

View file

@ -22,353 +22,372 @@
android:layout_height="wrap_content" />
<TextView
android:id="@+id/profileview_noprofile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="15dp"
android:text="@string/careportal_activity_label" />
android:gravity="center_horizontal"
android:text="@string/noprofileset"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@android:color/holo_red_light"
android:textStyle="bold"
android:visibility="gone" />
<android.support.v7.widget.GridLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:padding="10dip"
app:columnCount="3">
<Button
android:id="@+id/careportal_bgcheck"
style="@style/ButtonSmallFontStyle"
android:layout_width="0px"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_bgcheck"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_bgcheck"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="0" />
<Button
android:id="@+id/careportal_exercise"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_exercise"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_exercise"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="0" />
<Button
android:id="@+id/careportal_temporarytarget"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_cgm_target"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_temporarytarget"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="0" />
</android.support.v7.widget.GridLayout>
<TextView
<LinearLayout
android:id="@+id/careportal_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="15dp"
android:text="@string/careportal_carbsandbolus_label" />
android:orientation="vertical">
<android.support.v7.widget.GridLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:padding="10dip"
app:columnCount="3">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="15dp"
android:text="@string/careportal_activity_label" />
<Button
android:id="@+id/careportal_snackbolus"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_bolus_snack"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_snackbolus"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="1" />
<android.support.v7.widget.GridLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:padding="10dip"
app:columnCount="3">
<Button
android:id="@+id/careportal_mealbolus"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_bolus_meal"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_mealbolus"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="1" />
<Button
android:id="@+id/careportal_bgcheck"
style="@style/ButtonSmallFontStyle"
android:layout_width="0px"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_bgcheck"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_bgcheck"
<Button
android:id="@+id/careportal_correctionbolus"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_bolus_correction"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_correctionbolus"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="1" />
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="0" />
<Button
android:id="@+id/careportal_carbscorrection"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_bolus_carbs"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_carbscorrection"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="2" />
<Button
android:id="@+id/careportal_exercise"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_exercise"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_exercise"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="0" />
<Button
android:id="@+id/careportal_combobolus"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_bolus_correction"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_combobolus"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="2" />
<Button
android:id="@+id/careportal_tempbasalstart"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_basal_start"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_tempbasalstart"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="2" />
<Button
android:id="@+id/careportal_tempbasalend"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_basal_end"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_tempbasalend"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="3" />
</android.support.v7.widget.GridLayout>
<Button
android:id="@+id/careportal_temporarytarget"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_cgm_target"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_temporarytarget"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="0" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="15dp"
android:text="@string/careportal_cgm_label" />
<android.support.v7.widget.GridLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:padding="10dip"
app:columnCount="3">
<Button
android:id="@+id/careportal_cgmsensorstart"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_cgm_start"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_cgmsensorstart"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="1" />
</android.support.v7.widget.GridLayout>
<Button
android:id="@+id/careportal_cgmsensorinsert"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_cgm_insert"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_cgmsensorinsert"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="1" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="15dp"
android:text="@string/careportal_carbsandbolus_label" />
<android.support.v7.widget.GridLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:padding="10dip"
app:columnCount="3">
<Button
android:id="@+id/careportal_snackbolus"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_bolus_snack"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_snackbolus"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="1" />
<Button
android:id="@+id/careportal_mealbolus"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_bolus_meal"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_mealbolus"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="1" />
<Button
android:id="@+id/careportal_correctionbolus"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_bolus_correction"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_correctionbolus"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="1" />
<Button
android:id="@+id/careportal_carbscorrection"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_bolus_carbs"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_carbscorrection"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="2" />
<Button
android:id="@+id/careportal_combobolus"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_bolus_correction"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_combobolus"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="2" />
<Button
android:id="@+id/careportal_tempbasalstart"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_basal_start"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_tempbasalstart"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="2" />
<Button
android:id="@+id/careportal_tempbasalend"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_basal_end"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_tempbasalend"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="3" />
</android.support.v7.widget.GridLayout>
<Button
android:id="@+id/careportal_openapsoffline"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_aaps_offline"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_openapsoffline"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="1" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="15dp"
android:text="@string/careportal_cgm_label" />
<android.support.v7.widget.GridLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:padding="10dip"
app:columnCount="3">
<Button
android:id="@+id/careportal_cgmsensorstart"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_cgm_start"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_cgmsensorstart"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="1" />
<Button
android:id="@+id/careportal_announcement"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_announcement"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_announcement"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="4" />
<Button
android:id="@+id/careportal_question"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_question"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_question"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="4" />
<Button
android:id="@+id/careportal_note"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_note"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_note"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="4" />
</android.support.v7.widget.GridLayout>
<Button
android:id="@+id/careportal_cgmsensorinsert"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_cgm_insert"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_cgmsensorinsert"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="1" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="15dp"
android:text="@string/careportal_pump_label" />
<android.support.v7.widget.GridLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:padding="10dip"
app:columnCount="3">
<Button
android:id="@+id/careportal_pumpsitechange"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_pump_canula"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_pumpsitechange"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="0" />
<Button
android:id="@+id/careportal_insulincartridgechange"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_pump_cartridge"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_insulincartridgechange"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="0" />
<Button
android:id="@+id/careportal_profileswitch"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_cgm_profile"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_profileswitch"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="0" />
<Button
android:id="@+id/careportal_openapsoffline"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_aaps_offline"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_openapsoffline"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="1" />
<Button
android:id="@+id/careportal_pumpbatterychange"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_pump_battery"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_pumpbatterychange"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="6" />
<Button
android:id="@+id/careportal_announcement"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_announcement"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_announcement"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="4" />
</android.support.v7.widget.GridLayout>
<Button
android:id="@+id/careportal_question"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_question"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_question"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="4" />
<Button
android:id="@+id/careportal_note"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_note"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_note"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="4" />
</android.support.v7.widget.GridLayout>
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="15dp"
android:text="@string/careportal_pump_label" />
<android.support.v7.widget.GridLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:padding="10dip"
app:columnCount="3">
<Button
android:id="@+id/careportal_pumpsitechange"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_pump_canula"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_pumpsitechange"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="0" />
<Button
android:id="@+id/careportal_insulincartridgechange"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_pump_cartridge"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_insulincartridgechange"
app:layout_column="1"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="0" />
<Button
android:id="@+id/careportal_profileswitch"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_cgm_profile"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_profileswitch"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="0" />
<Button
android:id="@+id/careportal_pumpbatterychange"
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:drawableTop="@drawable/icon_cp_pump_battery"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_pumpbatterychange"
app:layout_column="0"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_row="6" />
</android.support.v7.widget.GridLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</FrameLayout>

View file

@ -1,4 +1,5 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -25,173 +26,193 @@
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/configbuilder_profilelabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:background="@color/mdtp_circle_color"
android:paddingLeft="5dp"
android:text="@string/configbuilder_profile"
android:textAllCaps="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/black"
android:textStyle="bold" />
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="false"
android:layout_alignParentRight="true"
android:layout_weight="1"
android:paddingRight="10dp"
app:srcCompat="@drawable/visibility_black_16x16" />
</RelativeLayout>
<ListView
android:id="@+id/configbuilder_profilelistview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:background="@color/cardColorBackground" />
<TextView
android:id="@+id/configbuilder_insulinlabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:background="@color/mdtp_circle_color"
android:paddingLeft="5dp"
android:text="@string/configbuilder_insulin"
android:textAllCaps="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/black"
android:textStyle="bold" />
<ListView
android:id="@+id/configbuilder_insulinlistview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/cardColorBackground" />
<TextView
android:id="@+id/configbuilder_bgsourcelabel"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginBottom="5dp"
android:background="@color/mdtp_circle_color"
android:paddingLeft="5dp"
android:text="@string/configbuilder_bgsource"
android:textAllCaps="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/black"
android:textStyle="bold" />
<ListView
android:id="@+id/configbuilder_bgsourcelistview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/cardColorBackground" />
<TextView
android:id="@+id/configbuilder_pumplabel"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginBottom="5dp"
android:background="@color/mdtp_circle_color"
android:paddingLeft="5dp"
android:text="@string/configbuilder_pump"
android:textAllCaps="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/black"
android:textStyle="bold" />
<ListView
<ListView
android:id="@+id/configbuilder_pumplistview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/cardColorBackground" />
<TextView
android:layout_width="wrap_content"
android:id="@+id/configbuilder_sensitivitylabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginBottom="5dp"
android:background="@color/mdtp_circle_color"
android:paddingLeft="5dp"
android:text="@string/configbuilder_sensitivity"
android:textAllCaps="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/black"
android:textStyle="bold" />
<ListView
<ListView
android:id="@+id/configbuilder_sensitivitylistview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/cardColorBackground" />
<TextView
android:id="@+id/configbuilder_apslabel"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginBottom="5dp"
android:background="@color/mdtp_circle_color"
android:paddingLeft="5dp"
android:text="@string/configbuilder_aps"
android:textAllCaps="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/black"
android:textStyle="bold" />
<ListView
<ListView
android:id="@+id/configbuilder_apslistview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/cardColorBackground" />
<TextView
android:id="@+id/configbuilder_looplabel"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginBottom="5dp"
android:background="@color/mdtp_circle_color"
android:paddingLeft="5dp"
android:text="@string/configbuilder_loop"
android:textAllCaps="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/black"
android:textStyle="bold" />
<ListView
<ListView
android:id="@+id/configbuilder_looplistview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/cardColorBackground" />
<TextView
android:id="@+id/configbuilder_profilelabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="@string/configbuilder_profile"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textStyle="bold" />
<ListView
android:id="@+id/configbuilder_profilelistview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/cardColorBackground" />
<TextView
android:id="@+id/configbuilder_treatmentslabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="@string/configbuilder_treatments"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textStyle="bold" />
<ListView
android:id="@+id/configbuilder_treatmentslistview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/cardColorBackground" />
<TextView
android:id="@+id/configbuilder_constraintslabel"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginBottom="5dp"
android:background="@color/mdtp_circle_color"
android:paddingLeft="5dp"
android:text="@string/configbuilder_constraints"
android:textAllCaps="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/black"
android:textStyle="bold" />
<ListView
<ListView
android:id="@+id/configbuilder_constraintslistview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/cardColorBackground" />
<TextView
android:layout_width="wrap_content"
android:id="@+id/configbuilder_generallabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginBottom="5dp"
android:background="@color/mdtp_circle_color"
android:paddingLeft="5dp"
android:text="@string/configbuilder_general"
android:textAllCaps="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/black"
android:textStyle="bold" />
<ListView
android:id="@+id/configbuilder_generallistview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/cardColorBackground" />
</LinearLayout>

View file

@ -9,35 +9,23 @@
android:id="@+id/configbuilder_simpleitem_checkboxenabled"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:focusable="false"
android:focusableInTouchMode="false"
android:text="@string/enabled" />
<CheckBox
android:id="@+id/configbuilder_simpleitem_checkboxvisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:focusable="false"
android:focusableInTouchMode="false"
android:text="@string/visible" />
<ImageView
android:id="@+id/configbuilder_simpleitem_upimage"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@android:drawable/arrow_up_float"
android:contentDescription="@string/up" />
android:gravity="center_vertical" />
<TextView
android:id="@+id/configbuilder_simpleitem_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text=""
android:textStyle="bold" />
android:layout_weight="1"
android:text="ConfigBuilder plugin text" />
<CheckBox
android:id="@+id/configbuilder_simpleitem_checkboxvisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:focusable="false"
android:focusableInTouchMode="false" />
</LinearLayout>

View file

@ -1,48 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/configbuilder_simpleitem_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text=""
android:textStyle="bold" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<CheckBox
android:id="@+id/configbuilder_simpleitem_checkboxenabled"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:focusable="false"
android:focusableInTouchMode="false"
android:text="@string/enabled" />
<CheckBox
android:id="@+id/configbuilder_simpleitem_checkboxvisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:focusable="false"
android:focusableInTouchMode="false"
android:text="@string/visible" />
<ImageView
android:id="@+id/configbuilder_simpleitem_upimage"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@android:drawable/arrow_up_float"
android:contentDescription="@string/up" />
</LinearLayout>
</LinearLayout>

View file

@ -3,7 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="info.nightscout.androidaps.plugins.InsulinFastacting.InsulinFastactingFragment">
tools:context="info.nightscout.androidaps.plugins.Insulin.InsulinFragment">
<ScrollView
android:layout_width="match_parent"
@ -35,7 +35,7 @@
android:layout_margin="10dp"
android:textAppearance="?android:attr/textAppearanceMedium" />
<info.nightscout.androidaps.plugins.InsulinFastacting.ActivityGraph
<info.nightscout.androidaps.plugins.Insulin.ActivityGraph
android:id="@+id/insuling_graph"
android:layout_width="match_parent"
android:layout_margin="20dp"

View file

@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="info.nightscout.androidaps.plugins.InsulinFastacting.InsulinFastactingFragment">
tools:context="info.nightscout.androidaps.plugins.Overview.Dialogs.CalibrationDialog">
<ScrollView
android:layout_width="match_parent"

View file

@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="info.nightscout.androidaps.plugins.InsulinFastacting.InsulinFastactingFragment">
tools:context="info.nightscout.androidaps.plugins.Actions.dialogs.NewExtendedBolusDialog">
<ScrollView
android:layout_width="match_parent"

View file

@ -5,7 +5,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="info.nightscout.androidaps.plugins.InsulinFastacting.InsulinFastactingFragment">
tools:context="info.nightscout.androidaps.plugins.Actions.dialogs.NewTempBasalDialog">
<ScrollView
android:layout_width="match_parent"

View file

@ -82,7 +82,7 @@
<string name="profileviewer">NS Профил</string>
<string name="simpleprofile">Обикновен профил</string>
<string name="tempbasal">TempBasal</string>
<string name="treatments">Treatments</string>
<string name="treatments">Лечения</string>
<string name="virtualpump">Виртуална помпа</string>
<string name="careportal">Careportal</string>
@ -91,13 +91,13 @@
<string name="configbuilder_treatments">Treatments</string>
<string name="configbuilder_tempbasals">Временен базал</string>
<string name="configbuilder_profile">Профил</string>
<string name="configbuilder_aps">APS</string>
<string name="configbuilder_aps">Алгоритъм за APS</string>
<string name="configbuilder_general">Общи</string>
<string name="days">дни</string>
<string name="objectives_minimalduration">Минимална продължителност</string>
<string name="configbuilder_constraints">Ограничения</string>
<string name="loop">Цикъл</string>
<string name="configbuilder_loop">Цикъл</string>
<string name="loop">Loop</string>
<string name="configbuilder_loop">Loop</string>
<string name="loop_aps_label">APS</string>
<string name="loop_constraintsprocessed_label">След ограничения</string>
<string name="loop_setbypump_label">Зададено на помпата</string>
@ -106,7 +106,7 @@
<string name="cancel">Откажи</string>
<string name="noapsselected">НЕ Е ИЗБРАН APS ИЛИ НЯМА РЕЗУЛТАТ ОТ НЕГО</string>
<string name="safety">Сигурност</string>
<string name="openapsma_disabled">Плъгина е изключен</string>
<string name="openapsma_disabled">Модула е изключен</string>
<string name="constraints_violation">Нарушено ограничение</string>
<string name="treatmentdeliveryerror">Грешка при подаване на болус</string>
<string name="tempbasaldeliveryerror">Грешка при подаване на временен базал</string>
@ -130,10 +130,10 @@
<string name="nsclient">NSClient</string>
<string name="apsmode_title">APS режим</string>
<string name="closedloop">Затворен цикъл</string>
<string name="openloop">Отворен цикъл</string>
<string name="disabledloop">изключен</string>
<string name="disableloop">Изключи</string>
<string name="closedloop">Closed Loop</string>
<string name="openloop">Open Loop</string>
<string name="disabledloop">Loop изключен</string>
<string name="disableloop">Изключи Loop</string>
<string name="enableloop">Включи</string>
<string name="openloop_newsuggestion">Има ново предложение</string>
<string name="unsupportedclientver">Несъвместима версия на NSClient</string>
@ -142,7 +142,7 @@
<string name="objectives_bgavailableinns">КЗ да се вижда в NS</string>
<string name="objectives_pumpstatusavailableinns">Статуса на помпа да е достъпен в NS</string>
<string name="objectives_manualenacts">Ръчно приложени</string>
<string name="loopdisabled">ЦИКЪЛА Е СПРЯН ОТ ОГРАНИЧЕНИЯТА</string>
<string name="loopdisabled">LOOP Е СПРЯН ОТ ОГРАНИЧЕНИЯТА</string>
<string name="cs_lang">Czech</string>
<string name="en_lang">English</string>
<string name="treatments_wizard_basaliob_label">Базален IOB</string>
@ -180,7 +180,7 @@
<string name="careportal_newnstreatment_notes_label">Бележки</string>
<string name="careportal_newnstreatment_eventtime_label">Време на събитие</string>
<string name="careportal_newnstreatment_profile_label">Профил</string>
<string name="careportal_newnstreatment_enteredby_title">Въведен от</string>
<string name="careportal_newnstreatment_enteredby_title">Въведено от</string>
<string name="careportal_newnstreatment_glucosetype">Тип КЗ</string>
<string name="noprofile">Още не е зареден профила от NS</string>
<string name="overview_tempbasal_button">Временен базал</string>
@ -283,7 +283,7 @@
<string name="danar_history_glucose">КЗ</string>
<string name="danar_history_refill">Пълнене</string>
<string name="danar_history_syspend">Спиране</string>
<string name="danar_history_connectingfor" formatted="false">Свързване с помпата за %d сек.</string>
<string name="danar_history_connectingfor" formatted="false">Свързва се с помпата за %d сек.</string>
<string name="danar_password_title">Парола за помпата</string>
<string name="wrongpumppassword">Грешна парола за помпата!</string>
<string name="pumpbusy">Помпата е заета</string>
@ -294,15 +294,15 @@
<string name="overview_bolusprogress_stoppressed">Натиснат е СТОП!</string>
<string name="waitingforpump">Очаква помпата</string>
<string name="waitingforpumpclicktorefresh">Очаква резутат. Натисни за обновяване.</string>
<string name="overview_bolusprogress_goingtodeliver" formatted="false">Ще доставя %.2fЕ</string>
<string name="overview_bolusprogress_goingtodeliver" formatted="false">Ще достави %.2fЕ</string>
<string name="objectives_0_objective">Настройка на визуализацията и наблюдението, а също и анализиране на базалните нужди и коефициенти</string>
<string name="objectives_1_gate">Работете в Отворен режим няколко дни и ръчно прилагайте на много временни базали</string>
<string name="objectives_1_objective">Стартиране на Отворен режим </string>
<string name="objectives_1_gate">Работете в Open Loop няколко дни и ръчно прилагайте на много временни базали</string>
<string name="objectives_1_objective">Стартиране на Open Loop </string>
<string name="objectives_2_gate">Определяне на макс. лимит на базалния инсулин и настройване в помпата и програмата</string>
<string name="objectives_2_objective">Разбиране на вашият Отворен режим, включително препоръчваните временни базали</string>
<string name="objectives_3_objective">Стартиране на Затворен цикъл с изключване на базал при ниска КЗ</string>
<string name="objectives_3_gate">Стартиране на Затворен цикъл с макс. IOB=0 без твърде много събития тип ниска КЗ</string>
<string name="objectives_4_objective">Настройване на Затворения цикъл чрез повишаване на максималният IOB над 0 и понижаване на целевите нива на КЗ</string>
<string name="objectives_2_objective">Разбиране на вашият Open Loop, включително препоръчваните временни базали</string>
<string name="objectives_3_objective">Стартиране на Closed Loop с изключване на базал при ниска КЗ</string>
<string name="objectives_3_gate">Стартиране на Closed Loop с макс. IOB=0 без твърде много събития тип ниска КЗ</string>
<string name="objectives_4_objective">Настройване на Closed Loop чрез повишаване на максималният IOB над 0 и понижаване на целевите нива на КЗ</string>
<string name="objectives_4_gate">Прекарайте няколко дни по този начин, като поне една нощ нямате аларма за ниска КЗ.</string>
<string name="objectives_5_objective">Настройване на базалния инсулин и коефициенти ако е необходимо и активиране на auto-sens</string>
<string name="objectives_5_gate">Една седмица успешно дневно използване с редовно въвеждане на въглехидрати</string>
@ -355,8 +355,8 @@
<string name="units">Единици:</string>
<string name="mgdl">мг/дл</string>
<string name="mmol">ммол/л</string>
<string name="dia">DIA(време на действие на инсулина):</string>
<string name="target_range">Целеви диапазон:</string>
<string name="dia">DIA:</string>
<string name="target_range">Целева КЗ:</string>
<string name="edit_base_basal">Редактирай базални стойности</string>
<string name="edit_base_isf">Редактирай Инс. чувствителност</string>
<string name="edit_base_ic">Редактирай Инс./ВХ</string>
@ -387,7 +387,7 @@
<string name="mdi">Писалки</string>
<string name="MM640g">MM640g</string>
<string name="ongoingnotificaction">Текущи известия</string>
<string name="old_data">ПЕКАЛЕНО СТАРИ ДАННИ</string>
<string name="old_data">СТАРИ ДАННИ</string>
<string name="minago">преди %d мин</string>
<string name="sms_minago">%dmin ago</string>
<string name="localprofile">Локален профил</string>
@ -440,14 +440,14 @@
<string name="always_use_shortavg">Използвай краткоср. Δ вместо разлика от последната КЗ</string>
<string name="always_use_shortavg_summary">Полезно при данни за КЗ с много шум</string>
<string name="advancedsettings_title">Разширени настройки</string>
<string name="danar_model" formatted="false">Медел: %02X Протокол: %02X Код: %02X</string>
<string name="danar_model" formatted="false">Модел: %02X Протокол: %02X Код: %02X</string>
<string name="profile">Профил</string>
<string name="openapsama_max_daily_safety_multiplier_summary">По подразбиране: 3 Това е основен параметър в сигурността на OpenAPS. Той ограничава максималният базал да бъде 3 пъти най-голямата стойност от дневните базали. Не би трябвало да има нужа от промяна, защото от опит сме проверили, че максимумите са “3x от най-високия дневен; 4x от текущия”.</string>
<string name="openapsama_current_basal_safety_multiplier_summary">По подразбиране: 4\nТова е другият основен параметър в сигурността на OpenAPS, и другата половина от "3x от най-високия дневен; 4x от текущия". Това означава, че независимо от макс базал настроен в помпата, стойността на базала не може да е по-висока от тази стойност умножена по стойността на базала за текущият час от денонощието. Това е с цел да предпази от прекалено високи стойности на максималния базал преди да разбират как работи алгоритъма. Повечето от Вас няма да имат нужда от смяна на тази стойност и могат да се справят с настойки на другите параметри.</string>
<string name="openapsama_autosens_max_summary">По подразбиране: 1.2\nТова е максималният множител на autosens (а скоро autotune) за да позволи 20% максимален лимит на autosens коефициента, който от своя страна настройва базалите, колко може да намали ISF, и колко ниско може да свали целевата КЗ.</string>
<string name="openapsama_autosens_min_summary">По подразбиране: 0.7\nДругата част от сигурността на autosens, слагайки ограничение на колко ниско може да ограничи базалите, колко да повиши чувствителността (ISF) и целевите КЗ.</string>
<string name="openapsama_autosens_adjusttargets_summary">По подразбиране: разрешено\nТова позволява на autosens да променя и целевите КЗ(освен чувствителност и базал).</string>
<string name="openapsama_bolussnooze_dia_divisor_summary">По подразбиране: 2\nBolus snooze се активира след като поставите болус за основно хранене, така цикъла няма да пуснка/намаля базалите веднага след като сте се хранили. Примерът тук е с 2; така при 3 часа DIA това ще означава че bolus snooze ще бъде внимателно изместен 1.5 часа (3DIA/2).</string>
<string name="openapsama_bolussnooze_dia_divisor_summary">По подразбиране: 2\nBolus snooze се активира след като поставите болус за основно хранене, така Loop няма да пуснка/намаля базалите веднага след като сте се хранили. Примерът тук е с 2; така при 3 часа DIA това ще означава че bolus snooze ще бъде внимателно изместен 1.5 часа (3DIA/2).</string>
<string name="openapsama_min_5m_carbimpact_summary">По подразбиране: 3.0\nТова е настройка на количеството на покачване на КЗ при усвояване на въглехидратите за всеки 5 минути. По подразбиране 3мг/дл/5мин. Това се отразява на това колко бързо се усвояват COB според алгоритъма, и как това се отразява в предвиждането на КЗ, когато тя не се покачва или пада с различен темп от очакваното.</string>
<string name="openapsama_link_to_preferncejson_doc_txt">Attention!\nNormally you do not have to change these values below. Please CLICK HERE and READ the text and make sure you UNDERSTAND it before change any of these values.</string>
<string name="openapsama_link_to_preferncejson_doc">http://openaps.readthedocs.io/en/latest/docs/walkthrough/phase-3/beyond-low-glucose-suspend.html</string>
@ -487,7 +487,7 @@
<string name="nsclientinternal">вътрешен NSClient</string>
<string name="nsclientinternal_shortname">NSCI</string>
<string name="nsclientinternal_url">URL:</string>
<string name="nsclientinternal_autoscroll">Autoscroll</string>
<string name="nsclientinternal_autoscroll">Автопревъртане</string>
<string name="restart">Рестарт</string>
<string name="nsclientinternal_title">Вътрешен NSClient</string>
<string name="nsclientinternal_url_title">Nightscout адрес</string>
@ -511,16 +511,16 @@
<string name="patientage_summary">Изберете възраст за определяне лимитите на безопасност</string>
<string name="Glimp">Glimp</string>
<string name="batteryoptimalizationerror">Устройството изглежда не подържа изключване на оптимизиране на батерията!</string>
<string name="pleaseallowpermission">Моля, позволете рарешение</string>
<string name="pleaseallowpermission">Моля, добавете рарешение</string>
<string name="needwhitelisting" formatted="false">%s се нуждае от зключване на оптимизиране на батерията за пълна функционалност</string>
<string name="loopsuspended">Цикъл изключен</string>
<string name="loopsuspended">Loop изключен</string>
<string name="loopsuspendedfor" formatted="false">Изключен (%d мин)</string>
<string name="loopsuperbolusfor" formatted="false">Суперболус (%d мин)</string>
<string name="loopmenu">Меню Цикъл</string>
<string name="suspendloopfor1h">Изключи цикъла за 1ч</string>
<string name="suspendloopfor2h">Изключи цикъла за 2ч</string>
<string name="suspendloopfor3h">Изключи цикъла за 3ч</string>
<string name="suspendloopfor10h">Изключи цикъла за 10 ч</string>
<string name="loopmenu">Меню Loop</string>
<string name="suspendloopfor1h">Изключи Loop за 1ч</string>
<string name="suspendloopfor2h">Изключи Loop за 2ч</string>
<string name="suspendloopfor3h">Изключи Loop за 3ч</string>
<string name="suspendloopfor10h">Изключи Loop за 10 ч</string>
<string name="disconnectpumpfor30m">Изключи помпата за 30 мин.</string>
<string name="disconnectpumpfor1h">Изключи помпата за 1 ч</string>
<string name="disconnectpumpfor2h">Изключи помпата за 2 ч</string>
@ -540,7 +540,7 @@
<string name="fastactinginsulin">Бързодействащ инсулин</string>
<string name="fastactinginsulincomment">Novorapid, Novolog, Humalog</string>
<string name="insulin_shortname">ИНС</string>
<string name="fastactinginsulinprolonged">Бързодействащ инсулин с удължаване</string>
<string name="fastactinginsulinprolonged">Бързодействащ инсулин с удължение</string>
<string name="enablesuperbolus">Разреши използването на Суперболус</string>
<string name="enablesuperbolus_summary">Разреши функцията суперболус в съветника. Не я разрешавайте докато не научите какво наистина прави. ТОВА МОЖЕ ДА СЪЗДАДЕ ОПАСНОСТ ОТ ПРЕДОЗИРАНЕ С ИНСУЛИН.</string>
<string name="iob">IOB</string>
@ -631,4 +631,23 @@
<string name="wear_detailedIOB_summary">Раздели IOB от болус и от базал на часовника</string>
<string name="wear_detailedIOB_title">Покажи подробен IOB</string>
<string name="app_name">AndroidAPS</string>
<string name="activate_profile">Активирай профила</string>
<string name="careportal_activity_label">АКТИВНОСТ И ОБРАТНА ВРЪЗКА</string>
<string name="careportal_carbsandbolus_label">ХРАНА И БОЛУС</string>
<string name="careportal_cgm_label">CGM &amp; OPENAPS</string>
<string name="careportal_newnstreatment_duration_min_label">Продължителност [мин.]</string>
<string name="careportal_pump_label">ПОМПА</string>
<string name="date">Дата</string>
<string name="dia_too_short" formatted="false">DIA от %s е твърде кратка - използвай %s вместо това!</string>
<string name="free_peak_oref">Със свободен пик по Oref</string>
<string name="insulin_oref_peak">Пик на кривата на IOB</string>
<string name="insulin_peak_time">Време на пик [мин.]</string>
<string name="invalid">НЕВАЛИДНО</string>
<string name="nl_lang">Dutch</string>
<string name="overview_newtempbasal_basalabsolute">Базална стойност [Е/ч]</string>
<string name="rapid_acting_oref">Бързодействащ по Oref</string>
<string name="ratio_short">SEN</string>
<string name="sv_lang">Swedish</string>
<string name="ultrafastactinginsulincomment">Fiasp</string>
<string name="ultrarapid_oref">Ултра бързодействащ по Oref</string>
</resources>

View file

@ -607,7 +607,7 @@
<string name="ru_lang">Ruština</string>
<string name="sensitivity_warning">Při zapnuté detektci sensitivity nezapomeňte vkládat všechny sacharidy. Jinak budou odchylky mylně vyhodnocovány jako změna sensitivity !!</string>
<string name="sensitivityaaps">Sensitivita AAPS</string>
<string name="sensitivityoref0">Sensotivita Oref0</string>
<string name="sensitivityoref0">Sensitivita Oref0</string>
<string name="sensitivityweightedaverage">Sensitivita vážený průměr</string>
<string name="openaps">OpenAPS</string>
<string name="openaps_short">OAPS</string>
@ -620,4 +620,13 @@
<string name="uploader">Uploader</string>
<string name="uploader_short">UPLD</string>
<string name="app_name">AndroidAPS</string>
<string name="activate_profile">AKTIVOVAT PROFIL</string>
<string name="danar_visualizeextendedaspercentage_title">Zobrazovat prodloužený bolus v %</string>
<string name="date">Datum</string>
<string name="dia_too_short" formatted="false">DIA %s je příliž krátké - použito %s !</string>
<string name="insulin_oref_peak">Čas vrcholu IOB křivky</string>
<string name="insulin_peak_time">Vrchol křivky [min]</string>
<string name="invalid">NEPLATNÝ</string>
<string name="nl_lang">Nizozemština</string>
<string name="sv_lang">Švédština</string>
</resources>

View file

@ -156,7 +156,7 @@
<string name="edit_base_ic">Modifica Base-IC:</string>
<string name="edit_base_isf">Modifica Base-ISF:</string>
<string name="el_lang">Greco</string>
<string name="en_lang">Inglese</string>
<string name="en_lang">English</string>
<string name="enabled">Abilitare</string>
<string name="enableloop">Abilitare Loop</string>

View file

@ -42,7 +42,7 @@
<string name="treatments_newtreatment_carbsamount_label">탄수화물 양</string>
<string name="treatments_wizard_bg_label">혈당</string>
<string name="treatments_wizard_carbs_label">탄수화물</string>
<string name="treatments_wizard_correction_label">Corr</string>
<string name="treatments_wizard_correction_label">교정</string>
<string name="treatments_wizard_unit_label">U</string>
<string name="treatments_wizard_bolusiob_label">식사주입 IOB</string>
<string name="treatments_wizard_total_label"></string>
@ -98,7 +98,7 @@
<string name="configbuilder_loop">Loop</string>
<string name="loop_aps_label">APS</string>
<string name="loop_constraintsprocessed_label">제약 적용 후</string>
<string name="loop_setbypump_label">펌프 설정</string>
<string name="loop_setbypump_label">펌프 설정</string>
<string name="openapsma_lastenact_label">최근 주입</string>
<string name="ok">OK</string>
<string name="cancel">취소</string>
@ -107,7 +107,7 @@
<string name="openapsma_disabled">플러그인이 사용불가능 합니다</string>
<string name="constraints_violation">제한 위반</string>
<string name="treatmentdeliveryerror">식사주입 전송 에러</string>
<string name="tempbasaldeliveryerror">임시기초 전송 에러</string>
<string name="tempbasaldeliveryerror">임시기초주입 전송 에러</string>
<string name="overview_newtempbasal_basalpercent">기초주입 값 [%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = 현재)</string>
<string name="setbasalquestion">새 임시기초주입 적용:</string>
@ -224,7 +224,7 @@
<string name="devicenotfound">선택된 기기를 찾지 못했습니다</string>
<string name="connectionerror">펌프 연결 에러</string>
<string name="danar_iob_label">펌프 IOB</string>
<string name="danar_dailyunits">하루 인슐린양</string>
<string name="danar_dailyunits">일 인슐린 총량</string>
<string name="danar_lastbolus">최근 식사주입:</string>
<string name="hoursago">시간 전</string>
<string name="danar_invalidinput">사용할수 없는 입력 데이터</string>
@ -245,7 +245,7 @@
<string name="smscommunicator_calibrationreplywithcode" formatted="false">보정값 %.2f을 전송하려면 %s 를 입력하고 답장하세요</string>
<string name="smscommunicator_bolusfailed">Bolus failed</string>
<string name="bolusdelivered" formatted="false">Bolus %.2fU delivered successfully</string>
<string name="bolusrequested" formatted="false">Going to deliver %.2fU</string>
<string name="bolusrequested" formatted="false">%.2fU 주입 예정입니다.</string>
<string name="smscommunicator_bolusdelivered" formatted="false">Bolus %.2fU delivered successfully</string>
<string name="bolusdelivering" formatted="false">%.2fU 주입중</string>
<string name="smscommunicator_remotecommandsallowed">SMS 원격 명령 사용하기</string>
@ -271,7 +271,7 @@
<string name="danar_glucose">혈당</string>
<string name="danar_carbohydrate">탄수화물</string>
<string name="danar_alarm">알람</string>
<string name="danar_totaluploaded" formatted="false">Total %d records uploaded</string>
<string name="danar_totaluploaded" formatted="false">총 %d 기록들이 업로드되었습니다.</string>
<string name="danar_sbolus">S bolus</string>
<string name="danar_history_alarm">알람</string>
<string name="danar_history_basalhours">기초주입 시간</string>
@ -294,19 +294,19 @@
<string name="waitingforpump">펌프를 기다리는 중</string>
<string name="waitingforpumpclicktorefresh">펌프를 기다리고 있습니다. 새로고침 하려면 클릭하세요.</string>
<string name="overview_bolusprogress_goingtodeliver" formatted="false">%.2fU을 주입합니다</string>
<string name="objectives_0_objective">나이트스카우트를 세팅하고, 기초주입과 비율을 분석한다.</string>
<string name="objectives_0_objective">표시설정과 모니터링설정을 완료하고, 기초주입과 비율을 분석한다.</string>
<string name="objectives_0_gate">나이트스카우트에서 혈당 데이터가 잘 들어오는지, 펌프데이터가 업로드 되는지 확인한다.</string>
<string name="objectives_1_objective">Open Loop를 시작한다.</string>
<string name="objectives_1_gate">Open Loop 모드에서 몇일동안 사용해보고, 수동으로 여러번 임시기초주입을 해본다.</string>
<string name="objectives_1_gate">Open Loop 모드에서 몇일간 사용하여보고, 임시기초주입을 여러번 수동으로 실행하여본다.</string>
<string name="objectives_2_objective">임시기초주입 추천기능을 포함해서, Open Loop에 대해 이해한다.</string>
<string name="objectives_2_gate">이 경험을 토대로, 최대 기초주입량을 결정하고 이를 펌프와 설정에 입력한다.</string>
<string name="objectives_3_objective">Closed Loop를 시작하고 저혈당인슐린 중지 기능을 사용해본다.</string>
<string name="objectives_3_gate">최대 IOB = 0 인 상태로 Closed Loop를 몇일동안 실행시켜 본다. 저혈당 인슐린일시중지가 많이 발생하지 않도록 한다.</string>
<string name="objectives_4_objective">Closed Loop를 조정하고, 최대 IOB를 0 이상으로 올려서 서서히 혈당 목표치를 낮춘다.</string>
<string name="objectives_4_gate">혈당을 낮추기 전에 최소한 하루는 저혈당 혈당 알람없게 하고 몇일간 사용해본다.</string>
<string name="objectives_4_objective">Closed Loop를 조정하 최대 IOB를 0 이상으로 올려서 서서히 혈당 목표치를 낮춘다.</string>
<string name="objectives_4_gate">혈당을 낮추기 전에 몇일간 사용해보되 최소한 하루는 저혈당 혈당 알람이 발생하지 않도록 해본다.</string>
<string name="objectives_5_objective">필요하면 기초주입과 비율을 조절하고, auto-sens를 활성화한다.</string>
<string name="objectives_5_gate">평소 먹는 탄수화물 입력하면서 Loop를 실행하고 1주일간 성공적으로 낮시간을 관리한다.</string>
<string name="objectives_6_objective">AMA(Advanced Meal Assist)같은 주간용을 위한 추가적인 기능들을 실행하여 본다.</string>
<string name="objectives_5_gate">평소의 탄수화물을 입력하면서 1주일동안 낮시간대에 loop를 성공적으로 사용해본다.</string>
<string name="objectives_6_objective">AMA(Advanced Meal Assist)같은 낮시간대를 위한 추가적인 기능들을 실행하여 본다.</string>
<string name="youareonallowedlimit">허용된 제한값에 도달하였습니다</string>
<string name="noprofileselected">프로파일이 선택되지 않았습니다</string>
<string name="smscommunicator_loophasbeendisabled">Loop가 중지되었습니다.</string>
@ -320,10 +320,10 @@
<string name="smscommunicator_basalreplywithcode" formatted="false">기초주입 %.2fU/h 을 실행하려면 %s 를 입력하고 답장하세요</string>
<string name="smscommunicator_suspendreplywithcode" formatted="false">%d분동안 Loop 일시중지하려면 %s 를 입력하고 답장하세요</string>
<string name="smscommunicator_tempbasalset" formatted="false">Temp basal %.2fU/h for %d min started successfully</string>
<string name="smscommunicator_tempbasalfailed">임시기초 시작을 실패하였습니다.</string>
<string name="smscommunicator_tempbasalfailed">Temp basal start failed</string>
<string name="smscommunicator_basalstopreplywithcode" formatted="false">임시기초주입을 중지하려면 %s 를 입력하고 답장하세요</string>
<string name="smscommunicator_tempbasalcanceled">임시기초가 취소되었습니다.</string>
<string name="smscommunicator_tempbasalcancelfailed">임시기초 취소를 실패하였습니다.</string>
<string name="smscommunicator_tempbasalcanceled">Temp basal canceled</string>
<string name="smscommunicator_tempbasalcancelfailed">Canceling temp basal failed</string>
<string name="smscommunicator_unknowncommand">알려지지 않은 명령이거나 잘못된 답장입니다.</string>
<string name="quickwizard">빠른마법사</string>
<string name="quickwizardsettings">빠른마법사 설정</string>
@ -343,7 +343,7 @@
<string name="pumpNotInitialized">펌프가 초기화 되지 않았습니다!</string>
<string name="pumpNotInitializedProfileNotSet">펌프가 초기화와 프로파일 설정이 되지 않았습니다!</string>
<string name="primefill">공기/채움</string>
<string name="fillwarning">Please make sure the amount matches the specification of your infusion set!</string>
<string name="fillwarning">양이 인퓨전세트의 사양과 일치하는지 확인하세요!</string>
<string name="othersettings_title">기타</string>
<string name="fillbolus_title">공기/채움 기본 인슐린양</string>
<string name="button1">버튼1</string>
@ -412,8 +412,8 @@
<string name="danar_stats_ratio">비율</string>
<string name="danar_stats_amount_days">#일</string>
<string name="danar_stats_weight">가중</string>
<string name="danar_stats_warning_Message">Possibly inaccurate if using boluses for priming/filling!</string>
<string name="danar_stats_olddata_Message">Old Data Please Press "RELOAD"</string>
<string name="danar_stats_warning_Message">공기/채움을 위해 식사주입을 사용한 경우 부정확할 수 있습니다!!</string>
<string name="danar_stats_olddata_Message">오래된 데이터입니다. "새로고침"을 누르세요.</string>
<string name="danar_stats_tbb">총기초량</string>
<string name="danar_stats_tbb2">총기초량 * 2</string>
<string name="initializing">초기화중 ...</string>
@ -437,19 +437,19 @@
<string name="smscommunicator_shortname">SMS</string>
<string name="short_tabtitles">탭 이름 단축</string>
<string name="prefs_delta_title">Delta Settings</string>
<string name="always_use_shortavg">Always use short average delta instead of simple delta</string>
<string name="always_use_shortavg_summary">Useful when data from unfiltered sources like xDrip gets noisy.</string>
<string name="always_use_shortavg">단순델타값 대신 단기평균델타값을 항상 사용합니다.</string>
<string name="always_use_shortavg_summary">xDrip의 혈당데이터에 노이즈가 심할경우 유용합니다.</string>
<string name="advancedsettings_title">고급 설정</string>
<string name="danar_model" formatted="false">Model: %02X Protocol: %02X Code: %02X</string>
<string name="profile">프로파일</string>
<string name="openapsama_max_daily_safety_multiplier_summary">Default value: 3\nThis is a key OpenAPS safety cap. What this does is limit your basals to be 3x (in this people) your biggest basal rate. You likely will not need to change this, but you should be aware thats what is discussed about “3x max daily; 4x current” for safety caps.</string>
<string name="openapsama_current_basal_safety_multiplier_summary">Default value: 4\nThis is the other half of the key OpenAPS safety caps, and the other half of “3x max daily; 4x current” of the safety caps. This means your basal, regardless of max basal set on your pump, cannot be any higher than this number times the current level of your basal. This is to prevent people from getting into dangerous territory by setting excessively high max basals before understanding how the algorithm works. Again, the default is 4x; most people will never need to adjust this and are instead more likely to need to adjust other settings if they feel like they are “running into” this safety cap.</string>
<string name="openapsama_autosens_max_summary">Default value: 1.2\nThis is a multiplier cap for autosens (and soon autotune) to set a 20% max limit on how high the autosens ratio can be, which in turn determines how high autosens can adjust basals, how low it can adjust ISF, and how low it can set the BG target.</string>
<string name="openapsama_autosens_min_summary">Default value: 0.7\nThe other side of the autosens safety limits, putting a cap on how low autosens can adjust basals, and how high it can adjust ISF and BG targets.</string>
<string name="openapsama_autosens_adjusttargets_summary">Default value: true\nThis is used to allow autosens to adjust BG targets, in addition to ISF and basals.</string>
<string name="openapsama_bolussnooze_dia_divisor_summary">Default value: 2\nBolus snooze is enacted after you do a meal bolus, so the loop wont counteract with low temps when youve just eaten. The example here and default is 2; so a 3 hour DIA means that bolus snooze will be gradually phased out over 1.5 hours (3DIA/2).</string>
<string name="openapsama_min_5m_carbimpact_summary">Default value: 3.0\nThis is a setting for default carb absorption impact per 5 minutes. The default is an expected 3mg/dl/5min. This affects how fast COB are decayed, and how much carb absorption is assumed in calculating future predicted BG, when BG is falling more than expected, or not rising as much as expected.</string>
<string name="openapsama_link_to_preferncejson_doc_txt">주의!\n보통의 경우 아래의 값을 변경하면 안됩니다. 이 값들을 변경하기 전에 반드시 이곳을 클릭하고 글을 정독해서 확실하게 이해를 하여야 합니다..</string>
<string name="openapsama_max_daily_safety_multiplier_summary">기본값: 3\n이 값은 중요한 OpenAPS 안전장치입니다. 이 값의 역할은 펌프에 설정되어 있는 최대기초주입량보다 3배를 초과할 수 없게 제한하는 것입니다. 이 값을 변경할 필요는 없을 것이지만, 안전을 위해 "3x max daily; 4x current"이 의미하는 바를 알고 있어야 합니다.</string>
<string name="openapsama_current_basal_safety_multiplier_summary">기본값: 4\n이 값은 "3x max daily; 4x current"의 나머지 절반에 해당하는 또 다른 중요한 OpenAPS 안전장치입니다. 이 값은 펌프에 설정된 최대기초주입량과 관계없이, 설정된 현재시간의 기초주입량에 이 값을 곱한 양을 초과할 수 없게됩니다. 이는 알고리즘의 작동 방식을 이해하기 전에 과도하게 높은 최대 기본을 설정하여 위험한 상황에 빠지지 않도록 보호하기 위한 것입니다. 다시한번, 기본 값은 4배인 것을 알아두세요; 일반적으로 이것을 조정할 필요는 전혀 없으며, 대신 이 안전장치를 변경해야할것처럼 생각이 된다면, 다른 설정을 변경해야 할 가능성이 더 큽니다.</string>
<string name="openapsama_autosens_max_summary">기본값: 1.2\n이 값은 autosens가 autosens 비율을 얼마나 높게 할 수 있는지에 대한 최대 한계를 20%로 설정하는 승수장치입니다. 이는 autosens가 얼마나 높게 기초주입량을 조절할수 있는지, ISF를 얼마나 낮게 조절할수 있는지, 혈당 목표범위를 얼마나 낮게 설정할수 있는지를 결정합니다.</string>
<string name="openapsama_autosens_min_summary">기본값: 0.7\nautosens 안전 제한의 나머지 부분입니다. 이는 기초주입량을 얼마나 낮게 조절할 수 있는지, ISF와 혈당 목표범위를 얼마나 높게 설정할 수 있는지를 결정합니다.</string>
<string name="openapsama_autosens_adjusttargets_summary">기본값: 활성\n이것은 autosens가 ISF와 기초주입뿐만 아니라, 혈당 목표범위를 조절할 수 있게 합니다.</string>
<string name="openapsama_bolussnooze_dia_divisor_summary">기본값: 2\n식사주입 후 Bolus snooze가 수행되게 되고, 따라서 식사주입 직후엔 loop가 low temp에 대응하지 않게 됩니다. 기본값이 2일때 예제는 다음과 같습니다; DIA가 3시간일 경우 bolus snooz는 점차적으로 1.5시간에 걸쳐 단계적으로 사라지게 됩니다.(3DIA/2).</string>
<string name="openapsama_min_5m_carbimpact_summary">기본값: 3\n이것은 5분당 기본 탄수화물 흡수량에 대한 설정입니다. 예상되는 기본값은 3mg/dl/5min입니다. 이는 혈당이 예상보다 빨리 떨어지거나 오를때, 얼마나 빨리 COB가 감쇠하는지와 혈당예측을 위한 계산시 탄수화물 흡수량이 얼마나 될것으로 예상되는지에 영향을 미치게 됩니다.</string>
<string name="openapsama_link_to_preferncejson_doc_txt">주의!\n보통의 경우 아래의 값을 변경하면 안됩니다. 이 값들을 변경하기 전에 반드시 이곳을 클릭하고 글을 정독해서 확실하게 이해를 하여야 합니다.</string>
<string name="openapsama_link_to_preferncejson_doc">http://openaps.readthedocs.io/en/latest/docs/walkthrough/phase-3/beyond-low-glucose-suspend.html</string>
<string name="error_only_numeric_digits_allowed">숫자만 입력가능합니다.</string>
<string name="error_only_numeric_digits_range_allowed">이 범위(%1$s - %2$s)안에 해당하는 숫자만 입력가능합니다.</string>
@ -468,10 +468,10 @@
<string name="smscommunicator_calibrationsent">보정 전송됨. xDrip에서 수신이 되도록 설정되어 있어야 합니다.</string>
<string name="smscommunicator_calibrationfailed">xDrip에서 보정을 받지 못합니다.</string>
<string name="dont_show_again">다시 보지 않기</string>
<string name="pumpsuspendedclicktorefresh">펌프 일시중지. 상태를 새로고치려면 클릭하세요</string>
<string name="pumpsuspendedclicktorefresh">펌프 일시중지. 상태를 새로고치려면 클릭하세요.</string>
<string name="pumpsuspended">펌프 일시중지됨</string>
<string name="gettingpumpstatus">펌프 상태 가져오는중</string>
<string name="settingtempbasal">임시 기초주입 설정중</string>
<string name="settingtempbasal">임시기초주입 설정중</string>
<string name="stoppingtempbasal">임시기초주입 취소중</string>
<string name="settingextendedbolus">확장식사주입 설정중</string>
<string name="stoppingextendedbolus">확장식사주입 취소중</string>
@ -535,8 +535,8 @@
<string name="disconnectpumpfor10h">10시간동안 펌프 일시중지</string>
<string name="resume">재시작</string>
<string name="smscommunicator_wrongduration">기간이 잘못되었습니다.</string>
<string name="smscommunicator_loopsuspended">Loop 일시중지됨</string>
<string name="smscommunicator_loopresumed">Loop 재시작됨</string>
<string name="smscommunicator_loopsuspended">Loop가 일시중지되었습니다.</string>
<string name="smscommunicator_loopresumed">Loop가 재시작되었습니다.</string>
<string name="treatments_wizard_bgtrend_label">15분 추이</string>
<string name="treatments_wizard_cob_label">COB</string>
<string name="superbolus">Superbolus</string>
@ -549,8 +549,8 @@
<string name="ultrafastactinginsulincomment">Fiasp</string>
<string name="insulin_shortname">INS</string>
<string name="fastactinginsulinprolonged">Fast Acting Insulin Prolonged</string>
<string name="enablesuperbolus">Enable superbolus in wizard</string>
<string name="enablesuperbolus_summary">Enable superbolus functionality in wizard. Do not enable until you learn what it really does. IT MAY CAUSE INSULIN OVERDOSE IF USED BLINDLY!</string>
<string name="enablesuperbolus">마법사에서 Superbolus 활성화하기</string>
<string name="enablesuperbolus_summary">마법사에서 Superbolus 기능을 활성화합니다. 어떤 기능인지 확실히 알기전까지 활성화 하지 마세요. 제대로 알지 못하고 사용하면 일슐린이 과다 주입될 수 있습니다!</string>
<string name="iob">IOB</string>
<string name="cob">COB</string>
<string name="predictionshortlabel">PRE</string>
@ -559,7 +559,7 @@
<string name="virtualpump_lastconnection_label">최근 연결</string>
<string name="danar_bluetooth_status">블루투스 상태</string>
<string name="nav_about">About</string>
<string name="smscommunicator_missingsmspermission">Missing SMS permission</string>
<string name="smscommunicator_missingsmspermission">SMS 권한 누락</string>
<string name="dev">DEV</string>
<string name="xdripstatus_settings">xDrip 상태(워치)</string>
<string name="xdripstatus">xDrip 상태표시라인(워치)</string>
@ -573,9 +573,9 @@
<string name="extendedbolus">확장식사</string>
<string name="temptarget">임시목표</string>
<string name="overview_extendedbolus_cancel_button">확장 식사주입 취소</string>
<string name="careportal_sensorage_label">센서 나이</string>
<string name="careportal_canulaage_label">캐뉼라 나이</string>
<string name="careportal_insulinage_label">인슐린 나이</string>
<string name="careportal_sensorage_label">센서 사용기간</string>
<string name="careportal_canulaage_label">캐뉼라 사용기간</string>
<string name="careportal_insulinage_label">인슐린 사용기간</string>
<string name="hours">시간</string>
<string name="overview_newtempbasal_basaltype_label">기초주입 종류</string>
<string name="isfmissing">프로파일에서 ISF가 누락되었습니다. 가본값을 사용합니다.</string>
@ -584,7 +584,7 @@
<string name="targetmissing">프로파일에서 목표범위가 누락되었습니다. 가본값을 사용합니다.</string>
<string name="invalidprofile">프로파일이 잘못되었습니다 !!!</string>
<string name="profileswitch">프로파일변경</string>
<string name="careportal_pbage_label">펌프 배터리 나이</string>
<string name="careportal_pbage_label">펌프배터리사용기간</string>
<string name="careportal_pumpbatterychange">펌프 배터리 교체</string>
<string name="ns_alarmoptions">알람 옵션</string>
<string name="nsalarm_urgenthigh">Urgent high</string>
@ -596,11 +596,11 @@
<string name="nsalarm_urgentstaledata">Urgent stale data</string>
<string name="nsalarm_staledatavalue_label">Stale data threshold [min]</string>
<string name="nsalarm_urgent_staledatavalue_label">Urgent stale data threshold [min]</string>
<string name="openapsama_autosens_period">Interval for autosens [h]</string>
<string name="openapsama_autosens_period_summary">Amount of hours in the past for sensitivity detection (carbs absorption time is excluded)</string>
<string name="openapsama_autosens_period">autosens 시간 [h]</string>
<string name="openapsama_autosens_period_summary">민감도를 감지하기 위해 계산될 총 시간 (탄수화물 흡수 시간은 제외됩니다.)</string>
<string name="ratio_short">SEN</string>
<string name="do_not_track_profile_switch">Ignore profile switch events</string>
<string name="do_not_track_profile_switch_summary">All profile switch events are ignored and active profile is always used</string>
<string name="do_not_track_profile_switch">프로파일 변경 이벤트 무시하기</string>
<string name="do_not_track_profile_switch_summary">모든 프로파일 변경 이벤트는 무시되고, 항상 활성 프로파일이 사용됩니다.</string>
<string name="pump">Pump</string>
<string name="openaps">OpenAPS</string>
<string name="device">Device</string>
@ -610,8 +610,8 @@
<string name="sensitivityoref0">Sensitivity Oref0</string>
<string name="sensitivityaaps">Sensitivity AAPS</string>
<string name="absorptionsettings_title">흡수 설정</string>
<string name="absorption_maxtime_title">Meal max absorption time [h]</string>
<string name="absorption_maxtime_summary">Time in hours where is expected all carbs from meal will be absorbed</string>
<string name="absorption_maxtime_title">식사 최대 흡수 시간 [h]</string>
<string name="absorption_maxtime_summary">식사로 섭취한 탄수화물이 모두 흡수될기까지 예상되는 시간</string>
<string name="danar_visualizeextendedaspercentage_title">확장식사주입을 %로 표시하기</string>
<string name="careportal_sensorage_label_short">SAGE</string>
<string name="careportal_insulinage_label_short">IAGE</string>
@ -623,7 +623,7 @@
<string name="virtualpump_extendedbolus_label_short">EXT</string>
<string name="lock_screen">화면 잠금</string>
<string name="lock_screen_short">잠금</string>
<string name="sensitivity_warning">By turning on Autosense feature remember to enter all eated carbs. Otherwise carbs deviations will be identified wrong as sensitivity change !!</string>
<string name="sensitivity_warning">Autosense 기능을 켜면 모든 섭취된 탄수화물양을 입력하십시오. 그렇지 않으면 탄수화물 편차(deviations)가 민감도 변화로 잘못 인식될것입니다!!</string>
<string name="sensitivityweightedaverage">Sensitivity WeightedAverage</string>
<string name="mdtp_ok">OK</string>
<string name="mdtp_cancel">Cancel</string>
@ -632,7 +632,7 @@
<string name="cpp_valuesnotstored">Values not stored!</string>
<string name="wear_overviewnotifications">개요 알림</string>
<string name="wear_overviewnotifications_summary">개요 알림을 웨어확인메세지로 전달합니다.</string>
<string name="ns_localbroadcasts">(xDrip 같은) 다른 앱으로 브로드캐스트를 활성화합니다.</string>
<string name="ns_localbroadcasts">(xDrip 같은) 다른 앱으로 브로드캐스트를 활성화합니다.</string>
<string name="ns_localbroadcasts_title">Local Broadcasts 활성화하기</string>
<string name="careportal_activity_label">활동 &amp; 조절</string>
<string name="careportal_carbsandbolus_label">탄수화물 &amp; 식사주입</string>

View file

@ -1,4 +1,653 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">AndroidAPS</string>
</resources>
<string name="Glimp">Glimp</string>
<string name="MM640g">MM640g</string>
<string name="absolute">Absoluut</string>
<string name="absorption_maxtime_summary">Verwachte tijd in uren vooraleer alle koolhydraten opgenomen zijn</string>
<string name="absorption_maxtime_title">Max absorbtietijd maaltijd [u]</string>
<string name="absorptionsettings_title">Opname instellingen</string>
<string name="actions">Acties</string>
<string name="actions_shortname">ACT</string>
<string name="activity">Actief</string>
<string name="adult">Volwassene</string>
<string name="advancedsettings_title">Uitgebreide instellingen</string>
<string name="alert_dialog_storage_permission_text">Herstart je telefoon of herstart AndroidAPS vanuit de systeem instellingen a.u.b. anders zal AndroidAPS geen logboek hebben (Belangrijk om te controleren of de algoritmes correct werken)!</string>
<string name="always_use_shortavg_summary">Nuttig wanneer gevens van niet gefilterde bronnes zoals Xdrip wispelturig zijn</string>
<string name="androidaps_start">AndroidAPS gestart</string>
<string name="approachingdailylimit">Insuline daglimiet bereikt</string>
<string name="apsmode_title">APS Mode</string>
<string name="youareonallowedlimit">Limiet bereikt</string>
<string name="xdripstatus_shortname">xds</string>
<string name="xdripstatus_settings">xDrip Status (Horloge)</string>
<string name="xdripstatus">xDrip Statuslijn (Horloge)</string>
<string name="xdripnotinstalled">xDrip+ niet geïnstalleerd</string>
<string name="xdrip">xDrip</string>
<string name="wrongpumppassword">Verkeerd pomp wachtwoord!</string>
<string name="wrongpumpdriverselected">Verkeerde pomp driver geselecteerd</string>
<string name="wrongpassword">Verkeerd wachtwoord</string>
<string name="wear_showbgi_title">Toon BGI</string>
<string name="wear_showbgi_summary">Voeg BGI toe aan status lijn</string>
<string name="wear_shortname">WEAR</string>
<string name="wear_settings">Wear instellingen</string>
<string name="wear_overviewnotifications_summary">Geef de overzicht notificaties door als wear bevestigings berichten</string>
<string name="wear_overviewnotifications">Overzicht Notificaties</string>
<string name="wear_detailedIOB_title">Toon gedetailleerde IOB</string>
<string name="wear_detailedIOB_summary">Splits IOB in bolus en basaal op de watchface</string>
<string name="wear">Wear</string>
<string name="waitingforpumpresult">Wacht op het resultaat</string>
<string name="waitingforpumpclicktorefresh">Wacht op pomp. Klik om te vernieuwen.</string>
<string name="waitingforpump">Wacht op pomp</string>
<string name="vitualpump_label">VIRTUELE POMP</string>
<string name="visible">Zichtbaar</string>
<string name="virtualpump_uploadstatus_title">Upload status naar NS</string>
<string name="virtualpump_tempbasal_label">Tijdelijk basaal</string>
<string name="virtualpump_sqlerror">SQL Storing</string>
<string name="virtualpump_shortname">VP</string>
<string name="virtualpump_settings">Virtuele pomp instellingen</string>
<string name="virtualpump_resultok">OK</string>
<string name="virtualpump_reservoir_label">Reservoir</string>
<string name="virtualpump_lastconnection_label">Laatste verbinding</string>
<string name="virtualpump_firmware_label">Firmware</string>
<string name="virtualpump_extendedbolus_label_short">EXT</string>
<string name="virtualpump_extendedbolus_label">Vertraagde bolus</string>
<string name="virtualpump_battery_label">Batterij</string>
<string name="virtualpump">Virtuele Pomp</string>
<string name="uploading">Uploaden</string>
<string name="uploader_short">UPLD</string>
<string name="uploader">Uploader</string>
<string name="updatingbasalrates">Bijwerken basaal patroon</string>
<string name="up">Omhoog</string>
<string name="unsupportednsversion">Niet ondersteunde versie van Nightscout</string>
<string name="unsupportedclientver">Niet ondersteunde versie van NSClient</string>
<string name="unlock_settings">Instellingen ontgrendelen</string>
<string name="units">Eenheden:</string>
<string name="treatmentssafety_maxcarbs_title">Max toegestaane koolhydraten [g]</string>
<string name="basal">Basaal</string>
<string name="basal_short">BAS</string>
<string name="basalmissing">Basaal ontbreekt in profiel. Standaard actief</string>
<string name="basalshortlabel">BAS</string>
<string name="base_profile_label">Basis Profiel</string>
<string name="batterydischarged">Pomp Batterij Leeg</string>
<string name="batteryoptimalizationerror">Toestel ondersteund klaarblijkelijk geen baterij optimalisatie vrijschakeling!</string>
<string name="bg_lang">български</string>
<string name="bolus">Bolus</string>
<string name="bolus_step">Bolus Stap</string>
<string name="bolusdelivered" formatted="false">Bolus %.2fU succesvol toegediend</string>
<string name="bolusdelivering" formatted="false">Toedienen %.2fU</string>
<string name="bolusrequested" formatted="false">Klaar om %.2fE toe te dienen</string>
<string name="button1">Knop 1</string>
<string name="button2">Knop 2</string>
<string name="button3">Knop 3</string>
<string name="calibrationsent">Kalibratie naat xDrip verzonden</string>
<string name="cancel">Annuleer</string>
<string name="canceltemp">Annuleer tijdelijk basaal</string>
<string name="carbs">Koolhydraten</string>
<string name="careportal">Careportal</string>
<string name="careportal_announcement">Mededeling</string>
<string name="careportal_bgcheck">BG Controle</string>
<string name="careportal_canulaage_label">Ouderdom katheter</string>
<string name="careportal_canulaage_label_short">CAGE</string>
<string name="careportal_carbsandbolus_label">KOOLHYDRATEN &amp; BOLUS</string>
<string name="careportal_carbscorrection">Koolhydraten correctie</string>
<string name="careportal_cgm_label">CGM &amp; OPENAPS</string>
<string name="careportal_cgmsensorinsert">CGM Sensor geplaatst</string>
<string name="careportal_cgmsensorstart">CGM Sensor Start</string>
<string name="careportal_combobolus">Multiwave bolus</string>
<string name="careportal_correctionbolus">Correctie bolus</string>
<string name="careportal_exercise">Sport</string>
<string name="careportal_insulinage_label">Insuline leeftijd</string>
<string name="careportal_insulinage_label_short">IAGE</string>
<string name="careportal_insulincartridgechange">Insuline ampul wissel</string>
<string name="careportal_mealbolus">Maaltijd bolus</string>
<string name="careportal_newnstreatment_absolute_label">Absoluut</string>
<string name="careportal_newnstreatment_carbs_label">Koolhydraten</string>
<string name="careportal_newnstreatment_duration_label">Tijdsduur</string>
<string name="careportal_newnstreatment_duration_min_label">Tijdsduur [min]</string>
<string name="careportal_newnstreatment_enteredby_title">Ingegeven door</string>
<string name="careportal_newnstreatment_eventtime_label">Gebeurtenis tijdstip</string>
<string name="careportal_newnstreatment_eventtype">Gebeurtenis type</string>
<string name="careportal_newnstreatment_glucosetype">Glucose type</string>
<string name="careportal_newnstreatment_insulin_label">Insuline</string>
<string name="careportal_newnstreatment_meter">Meter</string>
<string name="careportal_newnstreatment_notes_label">Notities</string>
<string name="careportal_newnstreatment_other">Andere</string>
<string name="careportal_newnstreatment_percent_label">Percent</string>
<string name="careportal_newnstreatment_profile_label">Profiel</string>
<string name="careportal_newnstreatment_sensor">Sensor</string>
<string name="careportal_newnstreatment_split_label">Splitzen</string>
<string name="careportal_note">Notitie</string>
<string name="careportal_openapsoffline">OpenAPS Offline</string>
<string name="careportal_pbage_label">Leeftijd batterij</string>
<string name="careportal_profileswitch">Profiel wissel</string>
<string name="careportal_pump_label">Pomp</string>
<string name="careportal_pumpbatterychange">Pomp batterij wissel</string>
<string name="careportal_pumpsitechange">Infusieplaats wissel</string>
<string name="careportal_question">Vraag</string>
<string name="careportal_sensorage_label">Leeftijd sensor</string>
<string name="careportal_sensorage_label_short">SAGE</string>
<string name="careportal_shortname">CP</string>
<string name="careportal_snackbolus">Snack bolus</string>
<string name="careportal_tempbasalend">Einde tijdelijk basaal</string>
<string name="careportal_tempbasalstart">Begin tijdelijk basaal</string>
<string name="careportal_temporarytarget">Tijdelijk streefdoel</string>
<string name="careportal_temporarytargetcancel">Tijdelijk streefdoel annuleren</string>
<string name="changeyourinput">Wijzig het ingegevene!</string>
<string name="child">Kind</string>
<string name="clearlog">Logboek wissen</string>
<string name="closedloop">Closed loop</string>
<string name="cob">COB</string>
<string name="comment">Commentaar</string>
<string name="configbuilder">Configurator</string>
<string name="configbuilder_aps">APS</string>
<string name="configbuilder_bgsource">BG bron</string>
<string name="configbuilder_constraints">Beperkingen</string>
<string name="configbuilder_general">Algemeen</string>
<string name="configbuilder_insulin">insuline</string>
<string name="clear_queue">Ledig wachtrij</string>
<string name="configbuilder_loop">Loop</string>
<string name="configbuilder_nightscoutversion_label">Nightscout versie:</string>
<string name="configbuilder_profile">Profiel</string>
<string name="configbuilder_pump">Pomp</string>
<string name="configbuilder_sensitivity">Gevoeligheid detectie</string>
<string name="configbuilder_shortname">CONF</string>
<string name="configbuilder_tempbasals">Tijdelijke basalen</string>
<string name="configbuilder_treatments">Behandelingen</string>
<string name="confirmation">Bevestiging</string>
<string name="connected">Verbonden</string>
<string name="connecting">Verbinden</string>
<string name="connectionerror">Pomp verbindings storing</string>
<string name="constraintapllied">Beperking toegepast</string>
<string name="constraints_violation">In strijd met beperkingen</string>
<string name="copied_to_clipboard">Gekopieerd naar klembord</string>
<string name="copy_to_clipboard">Kopieren naar klembord</string>
<string name="correctionbous">Correctie</string>
<string name="cpp_notloadedplugins">Niet alle profielen zijn geladen!</string>
<string name="cpp_sync_setting_missing">Moet geactiveerd worden om waardes naat de pomp te verzenden!</string>
<string name="cpp_valuesnotstored">Waarden niet opgeslagen!</string>
<string name="cs_lang">Čeština</string>
<string name="danar_alarm">Alarm</string>
<string name="danar_basalhour">Basaal uur</string>
<string name="danar_bluetooth_status">Bluetooh status</string>
<string name="danar_bt_name_title">DanaR Bluetooth toestel</string>
<string name="danar_carbohydrate">Koolhydraten</string>
<string name="danar_dailyunits">Dag totaal</string>
<string name="danar_disableeasymode">EasyUI modus in pomp deactiveren</string>
<string name="danar_enableextendedbolus">Activeer vertraagde bolussen op de pomp</string>
<string name="danar_error">Storing</string>
<string name="danar_glucose">glucose</string>
<string name="danar_history">Geschiedenis</string>
<string name="danar_history_alarm">Alarm</string>
<string name="restart">Herstart</string>
<string name="result">Resultaat</string>
<string name="resume">Hervatten</string>
<string name="save">Opslaan</string>
<string name="safety">Veiligheid</string>
<string name="send">VERZEND</string>
<string name="send_calibration" formatted="false">Verzend calibratie %.1f naar xDrip?</string>
<string name="send_to_pump">VERZEND NAAR POMP</string>
<string name="sensitivity_warning">Vergeet niet alle gegeten koolhydraten in te geven bij het activeren van de Autosens functie. Anders zullen BG wijzigingen door maaltijden foutief geïnterpreteerd worden!!</string>
<string name="sensitivityaaps">Gevoeligheid AAPS</string>
<string name="sensitivityoref0">Gevoeligheid Oref0</string>
<string name="setbasalquestion">Accepteer nieuw tijdelijk basaal:</string>
<string name="setextendedbolusquestion">Stel nieuwe vertraagde bolus in:</string>
<string name="setting_imported">Instellingen geïnporteerd</string>
<string name="settingextendedbolus">Instellingen vertraagde bolus</string>
<string name="settings_password">Wachtwoord voor instelligen</string>
<string name="settingtempbasal">Instellingen tijdelijk basaal</string>
<string name="show_queue">Toon wachtrij</string>
<string name="simpleprofile">Eenvoudig profiel</string>
<string name="simpleprofile_shortname">EP</string>
<string name="sms_actualbg">BG:</string>
<string name="sms_basal">Basaal:</string>
<string name="sms_bolus">Bolus:</string>
<string name="sms_iob">IOB</string>
<string name="sms_lastbg">Laatste BG:</string>
<string name="smscommunicator">SMS Communicator</string>
<string name="smscommunicator_allowednumbers">Geautoriseerde telefoon nummers</string>
<string name="smscommunicator_allowednumbers_summary">+XXXXXXXXXX;+YYYYYYYYYY</string>
<string name="smscommunicator_basalreplywithcode" formatted="false">Om het basaal %.2fU/u te starten antwoord met de code %s</string>
<string name="smscommunicator_basalstopreplywithcode">Om het tijdelijke basaal te stoppen antwoord met de code %s</string>
<string name="smscommunicator_bolusdelivered" formatted="false">Bolus %.2fU succesvol toegediend</string>
<string name="smscommunicator_bolusfailed">Bolus mislukt</string>
<string name="smscommunicator_bolusreplywithcode" formatted="false">Om de bolus %.2fU toe te dienen antwoord met de code %s</string>
<string name="smscommunicator_calibrationfailed">XDrip ontvangt geen callibraties</string>
<string name="smscommunicator_calibrationreplywithcode" formatted="false">Om calibratie %.2f te verzenden antwoord met de code %s</string>
<string name="smscommunicator_calibrationsent">Callibratie verzonden. Het ontvangen van callibraties moet actief zijn in xDrip.</string>
<string name="ko_lang">한국어</string>
<string name="language">Taal</string>
<string name="localprofile">Lokaal profiel</string>
<string name="localprofile_shortname">LP</string>
<string name="lock_screen">Vergrendel scherm</string>
<string name="lock_screen_short">Vergrendel</string>
<string name="loop">Loop</string>
<string name="loop_aps_label">APS</string>
<string name="loop_constraintsprocessed_label">Berekening met toepassing van limieten</string>
<string name="loop_setbypump_label">Gedefinieerd door de pomp</string>
<string name="loop_shortname">LOOP</string>
<string name="it_lang">Italiano</string>
<string name="nl_lang">Nederlands</string>
<string name="isfmissing">ISF ontbreekt in profiel. Standaard waarden toegepast.</string>
<string name="glucosetype_finger">Vingerprik</string>
<string name="glucosetype_sensor">Sensor</string>
<string name="high_mark">Hoog grens</string>
<string name="hours">Uren</string>
<string name="icmissing">KH ratio ontbreekt in profieel. Standaard waarde toegepast</string>
<string name="import_from">Importeer instellingen van</string>
<string name="initializing">Initialisering</string>
<string name="openapsama_link_to_preferncejson_doc">http://openaps.readthedocs.io/en/latest/docs/walkthrough/phase-3/beyond-low-glucose-suspend.html</string>
<string name="danar_history_bolus">Bulossen</string>
<string name="danar_history_carbohydrates">Koolhydraten</string>
<string name="danar_history_errors">Storing</string>
<string name="danar_history_glucose">Glucose</string>
<string name="danar_history_refill">Hervullen</string>
<string name="danar_history_syspend">Onderbreken</string>
<string name="danar_historyreload">Vernieuw</string>
<string name="days">Dagen</string>
<string name="de_lang">Deutsch</string>
<string name="deliver_now">Toedienen</string>
<string name="device">Toestel</string>
<string name="devicenotfound">Geselecteerd toestel niet gevonden</string>
<string name="disabledloop">Loop gedeactiveerd</string>
<string name="disableloop">Loop deactiveren</string>
<string name="disconnected">Niet verbonden</string>
<string name="disconnecting">Verbreken</string>
<string name="disconnectpumpfor10h">Verbreek verbinding 10u met pomp</string>
<string name="disconnectpumpfor1h">Verbreek verbinding 1u met pomp</string>
<string name="disconnectpumpfor2h">Verbreek verbinding 2u met pomp</string>
<string name="disconnectpumpfor30m">Verbreek verbinding 30min met pomp</string>
<string name="disconnectpumpfor3h">Verbreek verbinding 3u met pomp</string>
<string name="dismiss">NEGEER</string>
<string name="do_not_track_profile_switch">Negeer profiel wijzigingen</string>
<string name="iob">IOB</string>
<string name="invalidprofile">Ongeldig profiel !!!</string>
<string name="insulin_shortname">INS</string>
<string name="glucose">Glucose</string>
<string name="gettingpumpstatus">Opvragen pomp status</string>
<string name="en_lang">English</string>
<string name="enableloop">Activeer Loop</string>
<string name="end_user_license_agreement">Eind gebruiker overeenkomst</string>
<string name="enablesuperbolus_summary">Activeer de superbolus functie in de wizard. Activeer deze niet tot je begrijpt wat dit doet. OVERDOSISEN ZIJN MOGELIJK BIJ ONWETENDHEID</string>
<string name="enablesuperbolus">Activeer superbolus in de wizard</string>
<string name="enabled">Geactiveerd</string>
<string name="dont_show_again">Toon niet opnieuw</string>
<string name="eatingsoon">Eet binnenkort</string>
<string name="edit_base_basal">Verander basaal patroon</string>
<string name="old_data">Oude gegevens</string>
<string name="openaps">OpenAPS</string>
<string name="openaps_short">OAPS</string>
<string name="openapsama">OpenAPS AMA</string>
<string name="danar_lastbolus">Laatste bolus</string>
<string name="danar_password_title">Pomp wachtwoord</string>
<string name="danar_pump_settings">DanaR pomp instellingen</string>
<string name="danar_refill">Hervullen</string>
<string name="danar_stats_amount_days"># Dagen</string>
<string name="end_user_license_agreement_i_understand">Begrepen en goedgekeurd</string>
<string name="entertreatmentquestion">Nieuwe behandeling ingeven:</string>
<string name="error_field_must_not_be_empty">Veld mag niet leeg zijn</string>
<string name="extendedbolus">Vertraagde bolus</string>
<string name="failedupdatebasalprofile">Update basaal profiel mislukt</string>
<string name="fastactinginsulin">Snel werkende insuline</string>
<string name="fastactinginsulincomment">Novorapid, Novolog, Humalog</string>
<string name="filenotfound">Bestand niet gevonden</string>
<string name="fillbolus_title">Vull standaard hoeveelheid.</string>
<string name="fillwarning">Verzeker u dat de vulhoeveelheid overeenkomt met de infusieset!</string>
<string name="exported">Voorkeuren geexporteerd</string>
<string name="es_lang">Español</string>
<string name="executing">Uitvoeren</string>
<string name="export_to">Exporteer instellingen naar</string>
<string name="error_phone_not_valid">Telefoon nummer niet conform</string>
<string name="error_only_numeric_digits_range_allowed" formatted="false">Alleen numerike waarden binnen het bereik %1$s - %2$s toegelaten.</string>
<string name="error_only_numeric_digits_allowed">Alleen numerieke waarden toegelaten.</string>
<string name="el_lang">Ελληνικά</string>
<string name="nsclientinternal_secret_title">NS API geheim</string>
<string name="nsclientinternal_shortname">NSCI</string>
<string name="nsclientinternal_title">NSClient</string>
<string name="nsclientinternal_url">URL:</string>
<string name="nsclientinternal_url_dialogmessage">Nightscout URL ingeven</string>
<string name="nsclientinternal_url_title">Nightscout URL</string>
<string name="nsprofileview_target_label">Doelstelling</string>
<string name="nsprofileview_isf_label">ISF</string>
<string name="nsclientinternal_secret_dialogtitle">NS API geheim</string>
<string name="danar_invalidinput">Verkeerde ingave</string>
<string name="danar_iob_label">Pomp IOB</string>
<string name="basal_rate">Basaal:</string>
<string name="circadian_percentage_profile_shortname">CPP</string>
<string name="danar_history_dailyinsulin">Dagtotaal insuline</string>
<string name="danar_stats_date">Datum</string>
<string name="danar_stats_tbb">Totaal basaal</string>
<string name="danar_stats_weight">Gewicht</string>
<string name="danar_switchtouhmode">Wijzig de mudus U/d naar U/u op de pomp</string>
<string name="danar_useextended_title">Gebruik vertraagde bolussen voor >200%</string>
<string name="danar_valuenotsetproperly">Waarde niet correct ingesteld</string>
<string name="danar_viewprofile">Profiel bekijken</string>
<string name="danar_visualizeextendedaspercentage_title">Toon vertraagde bolussen in % aan</string>
<string name="danarkoreanpump">DanaR Korean</string>
<string name="danarprofile">DanaR profiel instellingen</string>
<string name="danarprofile_dia">PIA [u]</string>
<string name="danarprofile_dia_summary">Periode van insuline activiteit</string>
<string name="danarpump">DanaR</string>
<string name="danarpump_shortname">DANA</string>
<string name="danarv2pump">DanaRv2</string>
<string name="dev">DEV</string>
<string name="nobtadapter">Geen bluetooth adapter gevonden</string>
<string name="nochangerequested">Geen aanpassing noodzakelijk</string>
<string name="noprofile">Nog geen profiel geladen van NS</string>
<string name="noprofileselected">Geen profiel geselecteerd</string>
<string name="noprofileset">Geen profiel ingesteld</string>
<string name="nosuccess">Niet geslaagd - controleer de telefoon</string>
<string name="notavailable">Niet beschikbaar</string>
<string name="nowritepermission">NSCLIENT heeft geen schrijfrechten. Verkeerd API geheim?</string>
<string name="nightscout">Nightscout</string>
<string name="ok">Ok</string>
<string name="danar_stats_basalrate">Basaal</string>
<string name="loopdisabled">Loop gedeactiveerd door beperkingen</string>
<string name="loopmenu">Loop menu</string>
<string name="loopsuperbolusfor" formatted="false">Superbolus (%d m)</string>
<string name="loopsuspended">Loop pauzeren</string>
<string name="loopsuspendedfor" formatted="false">Pauzeer (%d m)</string>
<string name="lowbattery">Batterij bijna leeg</string>
<string name="manual">Maneel</string>
<string name="mdi">MDI</string>
<string name="mdtp_cancel">Afbreken</string>
<string name="mdtp_ok">OK</string>
<string name="mealbolus">Maaltijd bolus</string>
<string name="mgdl">mg/dl</string>
<string name="missing">Te weinig</string>
<string name="mmol">mmol/l</string>
<string name="nav_about">Over</string>
<string name="nav_backup">Backup</string>
<string name="nav_exit">Exit</string>
<string name="nav_export">Exporteer instellingen</string>
<string name="nav_import">Importeer instellingen</string>
<string name="nav_preferences">Voorkeuren</string>
<string name="nav_refreshtreatments">Haal wijzigingen op van NS</string>
<string name="nav_resetdb">Reset databanken</string>
<string name="nav_show_logcat">Toon logboek</string>
<string name="nav_test_alert">Test alarm</string>
<string name="needwhitelisting" formatted="false">%s benodigd batterij omptimalistaie vrijwaring voor performate werking</string>
<string name="ns_alarmoptions">Alarm opties</string>
<string name="ns_noupload">Geen upload naar NS</string>
<string name="ns_upload_only">Enkel NS upload (sync. gedeactiveerd)</string>
<string name="nsalarm_high">Hoog</string>
<string name="nsalarm_low">Laag</string>
<string name="nsalarm_summary" formatted="false">Ingesteld op %f</string>
<string name="nsalarm_urgenthigh">Zeer hoog</string>
<string name="nsalarm_urgentlow">Zeer laag</string>
<string name="nsclient">NSClient</string>
<string name="nsclientinternal">NSClient</string>
<string name="nsclientinternal_autoscroll">Autoscroll</string>
<string name="nsclientinternal_devicename_dialogtitle">Toestelnaam ingeven</string>
<string name="nsclientinternal_devicename_title">Toestel naam</string>
<string name="nsclientinternal_secret_dialogmessage">Geen NS API geheim op (min 12 kar.)</string>
<string name="treatmentssafety_maxbolus_title">Max toegestane bolus [E]</string>
<string name="treatments_wizard_unit_label">E</string>
<string name="treatments_wizard_total_label">Totaal</string>
<string name="treatments_wizard_correction_label">Correctie</string>
<string name="treatments_wizard_cob_label">COB</string>
<string name="treatments_wizard_carbs_label">Koolhydraten</string>
<string name="treatments_wizard_bolusiob_label">Bolus IOB</string>
<string name="treatments_wizard_bgtrend_label">15min trend</string>
<string name="treatments_wizard_bg_label">BG</string>
<string name="treatments_wizard_basaliob_label">Basaal IOB</string>
<string name="treatments_shortname">BEHAND</string>
<string name="treatments_newtreatment_insulinamount_label">Insuline hoeveelheid</string>
<string name="treatments_newtreatment_carbsamount_label">Koolhydraten hoeveelheid</string>
<string name="treatments_iobtotal_label_string">Totale IOB:</string>
<string name="treatments_iobactivitytotal_label_string">Totale IOB activiteit:</string>
<string name="treatments_iob_label_string">IOB:</string>
<string name="smscommunicator_invalidphonennumber">Foutief SMS telefoon nummer</string>
<string name="smscommunicator_loophasbeendisabled">Loop was uitgeschakeld</string>
<string name="smscommunicator_loophasbeenenabled">Loop was ingeschakeld</string>
<string name="smscommunicator_loopisdisabled">Loop is uitgeschakeld</string>
<string name="smscommunicator_loopisenabled">Loop is ingeschakeld</string>
<string name="treatments_insulin_label_string">Insuline:</string>
<string name="treatments_carbs_label_string">Koolhydraten:</string>
<string name="treatments_activity_string">Actief:</string>
<string name="treatments">Behandeling</string>
<string name="treatmentdeliveryerror">Bolus toedien storing</string>
<string name="basalvaluebelowminimum">Basaal onder minimum. Profiel niet ingesteld!</string>
<string name="overview_newtempbasal_percent_label">% (100% = actueel)</string>
<string name="danar_stats_bolus">Bolus</string>
<string name="openapsma_request_label">Voorstel</string>
<string name="openloop">Open loop</string>
<string name="openloop_newsuggestion">Nieuw voorstel beschikbaar</string>
<string name="othersettings_title">Andere</string>
<string name="openapsma_nopump">Geen pomp beschikbaar</string>
<string name="overview">Overzicht</string>
<string name="overview_bolus_label">Bolus</string>
<string name="overview_bolusprogress_delivered">Toegediend</string>
<string name="overview_bolusprogress_goingtodeliver" formatted="false">Er worden %.2fE toegediend</string>
<string name="overview_bolusprogress_stop">Stop</string>
<string name="overview_bolusprogress_stoped">Gestopt</string>
<string name="overview_bolusprogress_stoppressed">STOP INGEDRUKT</string>
<string name="overview_calibration">Kalibratie</string>
<string name="danar_stats_olddata_Message">Oude gegevens druk \"VERNIEUW\" a.u.b.</string>
<string name="hoursago">u geleden</string>
<string name="minago">%d min geleden</string>
<string name="reason">Berekening</string>
<string name="rate">Dosis</string>
<string name="duration">Periode</string>
<string name="openapsma_scriptdebugdata_label">Script debug</string>
<string name="openapsma_mealdata_label">Maaltijd gegevens</string>
<string name="nsprofileview_units_label">éénheid</string>
<string name="objectives">Doelen</string>
<string name="objectives_0_gate">Controleren dat BG beschikbaar is op Nightscout en dat de insulinepomp data is geupload</string>
<string name="objectives_0_objective">Opzetten van visualisatie en monitoring eveneens onalyze van basaal en ratio\'s</string>
<string name="objectives_1_gate">Werking in Open Loop modus voor enkele dagen, manueel vele tijdelijke basalen instellen</string>
<string name="objectives_1_objective">Starten met de Open Loop modus</string>
<string name="objectives_2_gate">Gebaseerd op deze ervarinegen beslissen wat het maximale basaal mag zijn en dit in de pomp instellen</string>
<string name="objectives_2_objective">De Open Loop begrijpen, inclusief de voorgestelde tijdelijke basalen</string>
<string name="objectives_3_gate">In gesloten Loop werken met een max. IOB = 0 voor enkele dagen met een beperkt aantal LBG</string>
<string name="objectives_3_objective">Starten met gesloten Loop met lage glucose begrenzing</string>
<string name="objectives_4_gate">Gebruik enkele dagen en ten miinste 1 naght zonder een laag BG alarm voordat je je BG doel laat dalen</string>
<string name="objectives_bgavailableinns">BG beschikbaar op NS</string>
<string name="objectives_5_objective">Pas het basaal en de ratios aan indien nodig, activeer hierna de auto-sens optie</string>
<string name="openapsma_run">Bereken nu</string>
<string name="openapsama_autosens_adjusttargets_summary">Standaardwaarde: waar Dit wordt gebruikt om autosens de bevoegdheid te geven BG doelen aan te passen alsook ISF en basalen</string>
<string name="openapsama_autosens_period">Interval voor autosens [u]</string>
<string name="openapsama_autosens_period_summary">Aantal uren in het verleden voor gevoeligheids detectie (koolhy. absorbtie tijd niet meegerekend)</string>
<string name="openapsama_useautosens">Gebruik de AMA autosens functie</string>
<string name="openapsma">OpenAPS MA</string>
<string name="openapsma_autosensdata_label">Autosens gegevens</string>
<string name="openapsma_disabled">Plugin is gedeactiveerd</string>
<string name="openapsma_noglucosedata">Geen BG gegevens beschikbaar</string>
<string name="openapsma_noprofile">Geen profiel beschikbaar</string>
<string name="openapsma_maxiob_title">Maximaal basaal IOB OpenAPS kan toedienen [E]</string>
<string name="openapsma_profile_label">Profiel</string>
<string name="openapsma_valueoutofrange">Waarde %s is buiten de toegestane limieten</string>
<string name="virtualpump_basebasalrate_label">Basis basale dosis</string>
<string name="openapsma_lastrun_label">Laatse berekening</string>
<string name="openapsma_lastenact_label">Laatste uitvoering</string>
<string name="openapsma_glucosestatus_label">Glucose gegevens</string>
<string name="openapsma_currenttemp_label">Actueel</string>
<string name="openapsma_inputparameters_label">Berekende gegevens</string>
<string name="openapsma_iobdata_label">IOB gegevens</string>
<string name="openapsma_maxbasal_summary">DIt is de maximale waarde waarop het basaal door OpenAPS ingesteld kan worden</string>
<string name="profileswitch">Profiel wissel</string>
<string name="profileviewer">NS Profiel</string>
<string name="profileviewer_shortname">NSPROFIEL</string>
<string name="pump">Pomp</string>
<string name="overview_tempbasal_button">Tijdelijk basaal</string>
<string name="tempbasal">Tijdelijk basaal</string>
<string name="temptarget">Tijdelijk streefdoel</string>
<string name="objectives_gate_label_string">Actie</string>
<string name="objectives_button_start">Start</string>
<string name="objectives_button_verify">Controleer</string>
<string name="queue">Wachtend:</string>
<string name="paused">Gepauzeerd</string>
<string name="patientage">Leeftijd Patient</string>
<string name="overview_editquickwizardlistactivity_add">Voeg toe</string>
<string name="profile">Profiel</string>
<string name="percent">Percent</string>
<string name="patientage_summary">Kies leeftijd van de patient voor veiligheids limieten</string>
<string name="percentagefactor_hint">Percentage factor waarmee het basaal profiel mag vermenigvuldigd worden</string>
<string name="pleaseallowpermission">Sta wijzigingen toe</string>
<string name="predictionshortlabel">PRE</string>
<string name="target_range">Streefdoel:</string>
<string name="overview_extendedbolus_button">Vertraagde bolus</string>
<string name="overview_extendedbolus_cancel_button">Annuleer vertraagde bolus</string>
<string name="overview_newtempbasal_basalabsolute">Basale waarde [E/u]</string>
<string name="careportal_newnstreatment_carbtime_label">KH tijdsduur</string>
<string name="refresheventsfromnightscout">Haal wijzigingen op van NS</string>
<string name="reloadprofile">Herlaad profiel</string>
<string name="restartingapp">Sluiten van applicatie om instellingen bij te werken</string>
<string name="objectives_objective_label_string">Doel:</string>
<string name="smscommunicator_remotebolusnotallowed">Bolus via sms niet toegestaan</string>
<string name="smscommunicator_missingsmspermission">Geen SMS bevoegdheid</string>
<string name="smscommunicator_remotecommandsallowed">Sta SMS bevelen toe</string>
<string name="smscommunicator_shortname">SMS</string>
<string name="suspendloopfor10h">Onderbreek loop voor 10u</string>
<string name="suspendloopfor1h">Onderbreek loop voor 1u</string>
<string name="suspendloopfor2h">Onderbreek loop voor 2u</string>
<string name="suspendloopfor3h">Onderbreek loop voor 3u</string>
<string name="sv_lang">svenska</string>
<string name="teenage">Tiener</string>
<string name="tempbasaldeliveryerror">Tijdelijk basaal toedien storing</string>
<string name="tempbasals_iobtotal_label_string">Totale IOB:</string>
<string name="ru_lang">русский</string>
<string name="avgdelta">Gemiddeld verschil</string>
<string name="always_use_shortavg">Gebruik altijd kleine gemiddelde verschillen ipv gewone verschillen</string>
<string name="array_of_elements">Tabel met %d elementen. Actuele waarde:</string>
<string name="overview_quickwizard_item_remove_button">Verwijder</string>
<string name="overview_quickwizard_item_edit_button">Wijzig</string>
<string name="overview_shortname">Home</string>
<string name="overview_editquickwizard_valid">Geldigheid:</string>
<string name="overview_editquickwizard_carbs">Koolhydraten:</string>
<string name="overview_editquickwizard_buttontext">Knop tekst:</string>
<string name="overview_calibration_bg_label">Kalibratie</string>
<string name="overview_calculator_label">Bolus wizard</string>
<string name="danar_ebolus">E bolus</string>
<string name="danar_dsbolus">DS bolus</string>
<string name="danar_debolus">DE bolus</string>
<string name="danar_history_basalhours">Basale uren</string>
<string name="overview_newtempbasal_basalpercent">Basale waarde [%]</string>
<string name="overview_newtempbasal_basaltype_label">Basaal type</string>
<string name="basal_step">Basaal stap</string>
<string name="bolusconstraintapplied">Bolus limiet ingesteld</string>
<string name="carbsconstraintapplied">KH limiet ingesteld</string>
<string name="circadian_percentage_profile">CircadianPercentageProfiel</string>
<string name="danar_sbolus">S Bolus</string>
<string name="danar_stats">DanaR Statistiek</string>
<string name="danar_stats_cumulative_tdd">Cumulative TDD</string>
<string name="danar_stats_expweight">Exponentieel verhoogt TDD</string>
<string name="danar_stats_ratio">Ratio</string>
<string name="danar_stats_tbb2">TBB * 2</string>
<string name="danar_stats_tdd">TDD</string>
<string name="danar_stats_warning_Message">Mogelijks inacuraat bij gebruik van bolussen om infusieset te vullen</string>
<string name="delta">Verschil</string>
<string name="dia">DIA:</string>
<string name="do_not_track_profile_switch_summary">Alle profiel wijzigingen worden genegeerd, aktief profiel wordt gebruikt</string>
<string name="edit_base_ic">Basis-IC aanpassen:</string>
<string name="edit_base_isf">Basis-ISF aanpassen:</string>
<string name="enacted">Uitgevoerd</string>
<string name="fastactinginsulinprolonged">Fast Acting Insulin Prolonged</string>
<string name="long_avgdelta">Groot gemiddeld verschil</string>
<string name="low_mark">LAAG grens</string>
<string name="noapsselected">GEEN APS GESLECTEERD OF TOEGEKENT RESULTAAT</string>
<string name="ns_localbroadcasts">Activeer delen met andere apps (zoals xDrip).</string>
<string name="ns_localbroadcasts_title">Activeer locaal delen</string>
<string name="ns_logappstartedevent">Log app start naar NS</string>
<string name="ns_noupload_summary">AAPS is verbonden met NS maar er worden geen wijzigingen uitgevoerd op NS</string>
<string name="ns_sync_use_absolute_title">Gebruik altijd absolute basale waarden</string>
<string name="nsclientnotinstalled">NSClient niet geïnstalleerd. Gegevens verloren!</string>
<string name="nsprofileview_activeprofile_label">Actief profiel</string>
<string name="nsprofileview_basal_label">Basaal</string>
<string name="nsprofileview_dia_label">DIA</string>
<string name="nsprofileview_ic_label">KH ratio</string>
<string name="nsalarm_staledata">Oude gegevens</string>
<string name="nsalarm_staledatavalue_label">Oude gegevens sinds [min]</string>
<string name="nsalarm_urgent_staledatavalue_label">Alarm oude gegevens sinds [min]</string>
<string name="nsalarm_urgentstaledata">Dringend oude gegevens vernieuwen</string>
<string name="nsclientinternal_devicename_dialogmessage">Dit zal worden gebruikt in het Ingegeven door vak</string>
<string name="oaps_shortname">OAPS</string>
<string name="objectives_6_objective">Activeren van extra functies tijdens de dag zoals AMA</string>
<string name="objectives_manualenacts">Manuele correcties</string>
<string name="objectives_minimalduration">Minimale tijdsduur</string>
<string name="objectives_pumpstatusavailableinns">Pomp status beschikbaar op NS</string>
<string name="objectives_shortname">DOEL</string>
<string name="occlusion">Afsluiting</string>
<string name="ongoingnotificaction">Lopende berichten</string>
<string name="open_settings_on_wear">Opene instellingen op Wear</string>
<string name="openapsma_maxbasal_title">Maximale E/u dat OpenAPS kan toedienen</string>
<string name="prefs_delta_title">Verschil instellingen</string>
<string name="prefs_range_title">Bereik voor visualisatie</string>
<string name="primefill">Ontlucht/vul</string>
<string name="profile_set_failed">Instelln van basaal profiel mislukt</string>
<string name="profile_set_ok">Basaal profiel in pomp bijgewerkt</string>
<string name="tempbasals_iob_label_string">IOB:</string>
<string name="tempbasals_netinsulin_label_string">Ins:</string>
<string name="tempbasals_netratio_label_string">Ratio:</string>
<string name="tempbasals_realduration_label_string">Tijdsduur:</string>
<string name="tempbasals_shortname">TB</string>
<string name="temptargetrange_shortname">TT</string>
<string name="treatmentssafety_title">Behandeling veiligheden</string>
<string name="pumperror">Pomp storing</string>
<string name="timeshift_hint">Tijd in uren waarbij het profiel cilindrische verschoven wordt</string>
<string name="objectives_4_objective">Inregelen van de closed loop, verhoog de max IOB boven 0 en laat gelijdelijk het BG doel dalen</string>
<string name="careportal_pbage_label_short">PBAGE</string>
<string name="openapsama_autosens_max_summary">Standaard waarde: 1.2 Dit betekent dat de verhoging voor autosense ratio (en autotune ratio) is ingesteld op max 20%. Maw. een limiet in hoever je basaal kan verhooght worden en hoeveel je ISF en BG doel verlaagd kan worden.</string>
<string name="ns_upload_only_summary">Enkel NS upload. Heeft geen effect op de SGV tot als een lokale bron zoals xDipp geselecteerd is. Heeft geen effect op de profielen wanneer het ns profiel is gekozen.</string>
<string name="pumpNotInitialized">Pomp niet geïnitialiseerd</string>
<string name="pumpNotInitializedProfileNotSet">Pomp niet geïnitialiseerd, profiel niet gekozen!</string>
<string name="pumpbusy">Pomp is in gebruik</string>
<string name="pumpshutdown">Pomp uitschakelen</string>
<string name="pumpsuspended">Pomp onderbreken</string>
<string name="pumpsuspendedclicktorefresh">Pomp onderbroken. Klik om de status te vernieuwen</string>
<string name="quickwizard">Instelassisten</string>
<string name="quickwizardsettings">Instelassistent instellingen</string>
<string name="ratio_short">SEN</string>
<string name="removerecord">Verwijder gegeven:</string>
<string name="resend_all_data">Verzend alle gegevens opnieuw</string>
<string name="reset_db_confirm">Wil je echt de databank wissen?</string>
<string name="sensitivity_shortname">SENS</string>
<string name="short_avgdelta">Klein gemiddeld verschil</string>
<string name="short_tabtitles">Kleine tab tittels</string>
<string name="sms_delta">Verschil:</string>
<string name="sms_minago">%dmin geleden</string>
<string name="smscommunicator_loopresumed">Loop hervat</string>
<string name="smscommunicator_loopsuspended">Loop onderbroken</string>
<string name="smscommunicator_remotebasalnotallowed">Basale instellingen op afstand zijn niet toegestaan</string>
<string name="smscommunicator_remotecalibrationnotallowed">Kalibratie op afstand is niet toegestaan</string>
<string name="smscommunicator_remotecommandnotallowed">Bevelen op astand zijn niet toegestaan</string>
<string name="smscommunicator_tempbasalcanceled">Tijdelijk basaal afgebroken</string>
<string name="smscommunicator_tempbasalcancelfailed">Afbreken van tijdelijk basaal mislukt</string>
<string name="targetmissing">Streefdoel ontbreekt in profiel. Standaard waarde wordt gebruikt</string>
<string name="smscommunicator_tempbasalfailed">Start tijdelijk basaal mislukt</string>
<string name="openapsma_maxiob_summary">Deze waarde wordt de MAx IOB in OpenAPS context genoemt. Dit is standaard 0. Na enkele dagen of weken naargelang uw vertrouwen kan je dit getal wijzigen.</string>
<string name="prefs_range_summary">Hoge en lage grens voor grafieken op het overzicht en op Wear</string>
<string name="smscommunicator_unknowncommand">Onbekend bevel of verkeerd antwoord</string>
<string name="smscommunicator_wrongduration">Verkeerde tijdsduur</string>
<string name="status">Status:</string>
<string name="stoppingextendedbolus">Stoppen van vertraagde bolus</string>
<string name="stoppingtempbasal">Stoppen van tijdelijk basaal</string>
<string name="success">Succes</string>
<string name="superbolus">Superbolus</string>
<string name="openapsama_link_to_preferncejson_doc_txt">Opgelet! Onderstaande waardes moeten normaal gezien niet worden aangepast. KLIK HIER en LEES de tekst zodat je alles volledig BEGRIJPT voordat je een waarde wijzigt.</string>
<string name="openapsama_autosens_min_summary">Standaard waarde: 0.7 Dit is de andere kan van de autosens veiligheid limiet. Dit zet een limiet op hoe laag het basaal kan aangepast worden, en hoe hoog het ISF en het BG doel</string>
<string name="openapsama_bolussnooze_dia_divisor_summary">Standaard waarde: 2 Bolus snooze is actief nadat je een maaltijd bolus toegediend hebt, zodat de loop geen tegenvoorstel met een verlaagd tijdelijk basaal doet nadat je gegeten hebt. Het voorbeeld hier van van standaard 2; dus een 3 u DIA betekent dat de bolus snooze gemiddeld 1.5u actief is (3DIA/2).</string>
<string name="openapsama_current_basal_safety_multiplier_summary">Standaard waarde: 4 Dit is een combinatie van enerzijds het OpenAPS veiligheid limieten en anderzijds van “3 x max dagelijks basaal ; 4x actueel”. Dit betekent dat het basaal niet hoger kan ingesteld worden dan het ingestelde nummer keer het actueel basaal waarbij de limiet in de pomp geen invloed heeft.Dit is een veiligheidsmaatregel om te vermijden dat patiënten in gevaarlijke laag bereik komen zonder te snappen hoe het algoritme werkt. Nogmaals de standaard waarde is 4x; de meeste zullen deze waarde nooit moeten aanpassen maar zullen eerder andere waardes moeten aanpassen als ze tegen een limiet aanstoten.</string>
<string name="objectives_5_gate">1 week succesvol loop gedurende de dag met geregeld KH ingave</string>
<string name="syncprofiletopump_title">Synchroniseer profiel met de pomp</string>
<string name="careportal_activity_label">ACTIVITIJD &amp; FEEDBACK</string>
<string name="danar_model" formatted="false">Model: %02X Protokoll: %02X Code: %02X</string>
<string name="danar_history_connectingfor">Verbonden gedurende %d s</string>
<string name="danar_totaluploaded">Totaal %d gegevens geupload</string>
<string name="openapsma_valuelimitedto" formatted="false">%.2f gelimitteerd tot %.2f</string>
<string name="smscommunicator_suspendreplywithcode" formatted="false">Om de loop te onderbreken voor %d minuten antwoord met de code %s</string>
<string name="smscommunicator_tempbasalset" formatted="false">Tijdelijk basaal %.2fE/u voor %d minuten succesvol gestart</string>
<string name="sensitivityweightedaverage">Gemiddelde gevoeligheid</string>
<string name="end_user_license_agreement_text">Dit mag niet gebruikt worden om medische besluiten te trekken. Er is geen garantie voor dit programma voor de werking en het gebruik van dit programma. Tenzij anders beschreven in het copy right. Gebruikers en andere partijen leven dit programma zoals het momenteel is, dit zonder enige garantie.</string>
<string name="openapsama_max_daily_safety_multiplier_summary">Standaard waarde: 3.0 Dit is een belangrijke veiligheid parameter van OpenAPS. Dit limiteert je basaal met een max va 3 maal je hoogste basale dosis. Normaal hoef je deze niet te veranderen. Het is echter belangrijk dat je de ingebouwde limieten kent</string>
<string name="openapsama_min_5m_carbimpact_summary">"Standaard waarde: 3.0 Dit is de instelling voor standaard KH absorbeer impact per 5 minuten. Deze standaard waarde slaat op 3mg/dl/5min. Dit heeft effect op hoe snel COB uitgewerkt zijn en hoeveel KH absorptie zal worden gebruikt in het berekenen van de volgende BG en dit wanneer de BG sneller daalt of stijgt dan verwacht. "</string>
<string name="activate_profile">Activeer profiel</string>
<string name="date">Datum</string>
<string name="free_peak_oref">Free-Peak Oref</string>
<string name="dia_too_short" formatted="false">DIA van %s te kort - %s wordt inplaats gebruikt!\"</string>
<string name="insulin_oref_peak">IOB curve piek tijd</string>
<string name="insulin_peak_time">Piek tijd [min]</string>
<string name="invalid">Ongeldig</string>
<string name="rapid_acting_oref">Snel-werkende Oref</string>
<string name="ultrafastactinginsulincomment">Fiasp</string>
<string name="ultrarapid_oref">Ultra-Rapid Oref</string>
</resources>

View file

@ -53,7 +53,7 @@
<string name="careportal_newnstreatment_absolute_label">абсолют</string>
<string name="careportal_newnstreatment_carbs_label">углеводы</string>
<string name="careportal_newnstreatment_carbtime_label">действие углеводов</string>
<string name="careportal_newnstreatment_duration_label">продолжительность действия</string>
<string name="careportal_newnstreatment_duration_label">Длительность действия</string>
<string name="careportal_newnstreatment_enteredby_title">кем введено</string>
<string name="careportal_newnstreatment_eventtime_label">время события</string>
<string name="careportal_newnstreatment_eventtype">тип события</string>
@ -191,7 +191,7 @@
<string name="edit_base_ic">редактировать инсулин/ВХ:</string>
<string name="edit_base_isf">редактировать чувствительность к инсулину:</string>
<string name="el_lang">греческий</string>
<string name="en_lang">английский</string>
<string name="en_lang">English</string>
<string name="enabled">активировано</string>
<string name="enableloop">активировать цикличность</string>
<string name="enablesuperbolus">активировать суперболюс</string>
@ -221,7 +221,7 @@
<string name="glucosetype_finger">палец</string>
<string name="glucosetype_sensor">сенсор</string>
<string name="high_mark">ВЕРХНЯЯ отметка</string>
<string name="hoursago">час/а/ов назад</string>
<string name="hoursago">час. назад</string>
<string name="import_from">импортировать настройки из</string>
<string name="initializing">инициализация...</string>
<string name="insulin_shortname">ИНС</string>
@ -382,7 +382,7 @@
<string name="overview_editquickwizard_valid">использовать до:</string>
<string name="overview_editquickwizardlistactivity_add">добавить</string>
<string name="overview_extendedbolus_button">расширенный болюс</string>
<string name="overview_newtempbasal_basalpercent">величина базала</string>
<string name="overview_newtempbasal_basalpercent">величина базала (%)</string>
<string name="overview_newtempbasal_percent_label">% (100% = current)</string>
<string name="overview_quickwizard_item_edit_button">редактировать</string>
<string name="overview_quickwizard_item_remove_button">удалить</string>
@ -559,8 +559,95 @@
<string name="xdrip">xdrip</string>
<string name="xdripnotinstalled">xdrip+ не установлен</string>
<string name="xdripstatus">строка состояния xdrip (часы)</string>
<string name="xdripstatus_settings">"состояние xdrip (часы) "</string>
<string name="xdripstatus_settings">состояние xdrip (часы)</string>
<string name="xdripstatus_shortname">xds</string>
<string name="youareonallowedlimit">разрешенный предел достигнут</string>
<string name="app_name">AndroidAPS</string>
<string name="absorption_maxtime_summary">Ожидаемое время усваивания всех углеводов пищи в часах</string>
<string name="absorption_maxtime_title">Максимальное время усваимости пищи</string>
<string name="absorptionsettings_title">Настройки усваиваемости</string>
<string name="activate_profile">АКТИВИРОВАТЬ ПРОФИЛЬ</string>
<string name="basal_short">БАЗ</string>
<string name="basalmissing">Базал отсутствует в профиле. Применяются данные по умолчанию</string>
<string name="careportal_activity_label">АКТИВНОСТЬ</string>
<string name="careportal_canulaage_label">канюля проработала</string>
<string name="careportal_canulaage_label_short">ВозрКан</string>
<string name="careportal_carbsandbolus_label">УГЛЕВОДЫ ; БОЛЮС</string>
<string name="careportal_cgm_label">МОНИТОРИНГ; OPENAPS</string>
<string name="careportal_insulinage_label">Инсулин проработал</string>
<string name="careportal_insulinage_label_short">ВозрИнс</string>
<string name="careportal_newnstreatment_duration_min_label">Длительность (мин)</string>
<string name="careportal_pbage_label">Батарея помпы работает</string>
<string name="careportal_pbage_label_short">ВозрБат</string>
<string name="careportal_pump_label">ПОМПА</string>
<string name="careportal_pumpbatterychange">замена батареи помпы</string>
<string name="careportal_sensorage_label">сенсор пропаботал</string>
<string name="careportal_sensorage_label_short">ВОЗРСенс</string>
<string name="configbuilder_sensitivity">определение чувствительности</string>
<string name="cpp_notloadedplugins">не все профили загружены!</string>
<string name="cpp_sync_setting_missing">требует активации для отправки данных на помпу!</string>
<string name="cpp_valuesnotstored">Данные не сохранены!</string>
<string name="danar_visualizeextendedaspercentage_title">Просмотреть расширенный болюс %</string>
<string name="danarv2pump">DanaRv2</string>
<string name="date">дата</string>
<string name="device">устройство</string>
<string name="dia_too_short">ачение длительности работы инс %s слишком мало - применено $s</string>
<string name="do_not_track_profile_switch">не отслеживать смены профиля</string>
<string name="do_not_track_profile_switch_summary">все смены профиля игнорируются; используется только активный профиль</string>
<string name="extendedbolus">расширенный болюс</string>
<string name="free_peak_oref">Акуу-Зуфл Щкуа</string>
<string name="hours">час</string>
<string name="icmissing">соотношение инс-углев отсутствует в профиле. применено соотн. по умолчанию</string>
<string name="insulin_oref_peak">Время пика действующего инс IOB</string>
<string name="insulin_peak_time">время пика (в мин.)</string>
<string name="invalid">НЕВЕРНО</string>
<string name="invalidprofile">Неверный профиль !!!</string>
<string name="isfmissing">фактор чувствительности к инс. отутствует в профиле. Применен фактор по умолчанию</string>
<string name="lock_screen">блокировка экрана</string>
<string name="lock_screen_short">блок</string>
<string name="mdtp_cancel">отмена</string>
<string name="mdtp_ok">OK</string>
<string name="nl_lang">Голландский</string>
<string name="ns_alarmoptions">опции оповещения</string>
<string name="ns_localbroadcasts">Активировать передачу на другие приложения (напр. xDrip)</string>
<string name="ns_localbroadcasts_title">Активировать локальную передачу</string>
<string name="nsalarm_high">Высокий</string>
<string name="nsalarm_low">Низкий</string>
<string name="nsalarm_staledata">Нет данных</string>
<string name="nsalarm_staledatavalue_label">Порог устаревших данных (мин)</string>
<string name="nsalarm_summary">сейчас установлен на %f</string>
<string name="nsalarm_urgent_staledatavalue_label">Порог тревоги из-за устаревших данных (мин)</string>
<string name="nsalarm_urgenthigh">Тревога выс</string>
<string name="nsalarm_urgentlow">Тревога низкий</string>
<string name="nsalarm_urgentstaledata">Тревога нет данных</string>
<string name="openaps">OpenAPS</string>
<string name="openaps_short">OAPS</string>
<string name="overview_extendedbolus_cancel_button">отмена расшир болюса</string>
<string name="overview_newtempbasal_basalabsolute">значения базала (ед/ч)</string>
<string name="overview_newtempbasal_basaltype_label">тип базала</string>
<string name="profileswitch">смена профиля</string>
<string name="pump">помпа</string>
<string name="rapid_acting_oref">быстро действующий Oref</string>
<string name="ratio_short">СООТН</string>
<string name="refresheventsfromnightscout">обновить данные из NS</string>
<string name="ru_lang">heccrbq</string>
<string name="sensitivity_shortname">Xedcnd</string>
<string name="sensitivity_warning">Активируя Autosense не забывайте вводить все съеденные углеводы. Иначе отклонения в углеводах будут неверно определены как изменение чувствительности !!</string>
<string name="sensitivityaaps">Чувствительность AAPS</string>
<string name="sensitivityoref0">Чувствительность Oref0</string>
<string name="sensitivityweightedaverage">средневзвешенная чувствительность</string>
<string name="sv_lang">Шведский</string>
<string name="targetmissing">Целевое значение отсутствует в профиле. Применено значение по умолчанию</string>
<string name="tempbasal">ВремБазал</string>
<string name="temptarget">ВремЦель</string>
<string name="ultrafastactinginsulincomment">Fiasp</string>
<string name="ultrarapid_oref">Сверхбыстрый Oref</string>
<string name="unsupportednsversion">Неподдерживаемая версия Nightscout</string>
<string name="uploader">uploader</string>
<string name="uploader_short">UPLD</string>
<string name="virtualpump_extendedbolus_label_short">ПРОДЛ</string>
<string name="wear_overviewnotifications">Просмотр уведомлений</string>
<string name="wear_overviewnotifications_summary">Пропустить уведомления как потдтвержденные от Wear</string>
<string name="openapsama_autosens_period">интервал для autosens (ч)</string>
<string name="openapsama_autosens_period_summary">Время в часах в прошлом для определения чувствительности (время усвоения углеводов исключается)</string>
</resources>

View file

@ -176,7 +176,7 @@
<string name="duration">Duration</string>
<string name="eatingsoon">Äta snart</string>
<string name="edit_base_basal">Ändra Base-Basal:</string>
<string name="en_lang">Engelska</string>
<string name="en_lang">English</string>
<string name="enabled">Startad</string>
<string name="enableloop">Starta loop</string>
<string name="enablesuperbolus">Aktivera superbolus i kalkylatorn</string>
@ -586,4 +586,5 @@
<string name="nsalarm_urgenthigh">Bråttom hög</string>
<string name="nsalarm_urgentlow">Bråttom låg</string>
<string name="nsalarm_urgentstaledata">Bråttom gammal data</string>
<string name="app_name">AndroidAPS</string>
</resources>

View file

@ -34,6 +34,7 @@
<color name="cardObjectiveText">#779ECB</color>
<color name="linearBlockBackground">#3e3d3d</color>
<color name="configBuilderSelectedBackground">#262525</color>
<color name="colorAcceptTempButton">#f4d700</color>
<color name="colorTreatmentButton">#67dfe8</color>

View file

@ -697,7 +697,7 @@
<string name="free_peak_oref">Free-Peak Oref</string>
<string name="rapid_acting_oref">Rapid-Acting Oref</string>
<string name="ultrarapid_oref">Ultra-Rapid Oref</string>
<string name="dia_too_short" formatted="false">"DIA of %s too short - using %s instead!"</string>
<string name="dia_too_short" formatted="false">DIA of %s too short - using %s instead!</string>
<string name="activate_profile">ACTIVATE PROFILE</string>
<string name="date">Date</string>
<string name="invalid">INVALID</string>