commit
f4ce4a1587
|
@ -37,7 +37,7 @@
|
|||
<ConfirmationsSetting value="0" id="Add" />
|
||||
<ConfirmationsSetting value="0" id="Remove" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
|
|
|
@ -43,8 +43,8 @@ android {
|
|||
applicationId "info.nightscout.androidaps"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 23
|
||||
versionCode 1020
|
||||
versionName "1.0.20"
|
||||
versionCode 1100
|
||||
versionName "1.1"
|
||||
buildConfigField "String", "BUILDVERSION", generateGitBuild()
|
||||
}
|
||||
lintOptions {
|
||||
|
|
|
@ -63,6 +63,8 @@
|
|||
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
|
||||
<!-- Receiver from xDrip -->
|
||||
<action android:name="com.eveningoutpost.dexdrip.BgEstimate" />
|
||||
<!-- Receiver from 640g uploader -->
|
||||
<action android:name="com.eveningoutpost.dexdrip.NS_EMULATOR" />
|
||||
<!-- Auto start -->
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
|
|
|
@ -34,6 +34,7 @@ import info.nightscout.androidaps.plugins.Overview.OverviewFragment;
|
|||
import info.nightscout.androidaps.plugins.SafetyFragment.SafetyFragment;
|
||||
import info.nightscout.androidaps.plugins.SimpleProfile.SimpleProfileFragment;
|
||||
import info.nightscout.androidaps.plugins.SmsCommunicator.SmsCommunicatorFragment;
|
||||
import info.nightscout.androidaps.plugins.SourceMM640g.SourceMM640gFragment;
|
||||
import info.nightscout.androidaps.plugins.SourceNSClient.SourceNSClientFragment;
|
||||
import info.nightscout.androidaps.plugins.SourceXdrip.SourceXdripFragment;
|
||||
import info.nightscout.androidaps.plugins.TempBasals.TempBasalsFragment;
|
||||
|
@ -92,6 +93,7 @@ public class MainApp extends Application {
|
|||
if (Config.APS) pluginsList.add(ObjectivesFragment.getPlugin());
|
||||
pluginsList.add(SourceXdripFragment.getPlugin());
|
||||
pluginsList.add(SourceNSClientFragment.getPlugin());
|
||||
pluginsList.add(SourceMM640gFragment.getPlugin());
|
||||
if (Config.SMSCOMMUNICATORENABLED)
|
||||
pluginsList.add(SmsCommunicatorFragment.getPlugin());
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@ import info.nightscout.androidaps.plugins.Objectives.ObjectivesPlugin;
|
|||
import info.nightscout.androidaps.plugins.Overview.OverviewPlugin;
|
||||
import info.nightscout.androidaps.plugins.SmsCommunicator.SmsCommunicatorPlugin;
|
||||
import info.nightscout.androidaps.plugins.SmsCommunicator.events.EventNewSMS;
|
||||
import info.nightscout.androidaps.plugins.SourceMM640g.SourceMM640gPlugin;
|
||||
import info.nightscout.androidaps.plugins.SourceNSClient.SourceNSClientPlugin;
|
||||
import info.nightscout.androidaps.plugins.SourceXdrip.SourceXdripPlugin;
|
||||
import info.nightscout.androidaps.receivers.DataReceiver;
|
||||
|
@ -55,6 +56,7 @@ public class DataService extends IntentService {
|
|||
|
||||
boolean xDripEnabled = false;
|
||||
boolean nsClientEnabled = true;
|
||||
boolean mm640gEnabled = false;
|
||||
|
||||
public DataService() {
|
||||
super("DataService");
|
||||
|
@ -69,9 +71,15 @@ public class DataService extends IntentService {
|
|||
if (ConfigBuilderPlugin.getActiveBgSource().getClass().equals(SourceXdripPlugin.class)) {
|
||||
xDripEnabled = true;
|
||||
nsClientEnabled = false;
|
||||
mm640gEnabled = false;
|
||||
} else if (ConfigBuilderPlugin.getActiveBgSource().getClass().equals(SourceNSClientPlugin.class)) {
|
||||
xDripEnabled = false;
|
||||
nsClientEnabled = true;
|
||||
mm640gEnabled = false;
|
||||
} else if (ConfigBuilderPlugin.getActiveBgSource().getClass().equals(SourceMM640gPlugin.class)) {
|
||||
xDripEnabled = false;
|
||||
nsClientEnabled = false;
|
||||
mm640gEnabled = true;
|
||||
}
|
||||
|
||||
boolean isNSProfile = ConfigBuilderPlugin.getActiveProfile().getClass().equals(NSProfilePlugin.class);
|
||||
|
@ -85,6 +93,10 @@ public class DataService extends IntentService {
|
|||
if (xDripEnabled) {
|
||||
handleNewDataFromXDrip(intent);
|
||||
}
|
||||
} else if (Intents.NS_EMULATOR.equals(action)) {
|
||||
if (mm640gEnabled) {
|
||||
handleNewDataFromMM640g(intent);
|
||||
}
|
||||
} else if (Intents.ACTION_NEW_SGV.equals(action)) {
|
||||
// always handle SGV if NS-Client is the source
|
||||
if (nsClientEnabled) {
|
||||
|
@ -171,6 +183,58 @@ public class DataService extends IntentService {
|
|||
MainApp.bus().post(new EventNewBG());
|
||||
}
|
||||
|
||||
private void handleNewDataFromMM640g(Intent intent) {
|
||||
Bundle bundle = intent.getExtras();
|
||||
if (bundle == null) return;
|
||||
|
||||
final String collection = bundle.getString("collection");
|
||||
if (collection == null) return;
|
||||
|
||||
if (collection.equals("entries")) {
|
||||
final String data = bundle.getString("data");
|
||||
|
||||
if ((data != null) && (data.length() > 0)) {
|
||||
try {
|
||||
final JSONArray json_array = new JSONArray(data);
|
||||
for (int i = 0; i < json_array.length(); i++) {
|
||||
final JSONObject json_object = json_array.getJSONObject(i);
|
||||
final String type = json_object.getString("type");
|
||||
switch (type) {
|
||||
case "sgv":
|
||||
BgReading bgReading = new BgReading();
|
||||
|
||||
bgReading.value = json_object.getDouble("sgv");
|
||||
bgReading.direction = json_object.getString("direction");
|
||||
bgReading.timeIndex = json_object.getLong("date");
|
||||
bgReading.raw = json_object.getDouble("sgv");
|
||||
|
||||
if (bgReading.timeIndex < new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) {
|
||||
if (Config.logIncommingBG)
|
||||
log.debug("Ignoring old MM640g BG " + bgReading.toString());
|
||||
return;
|
||||
}
|
||||
|
||||
if (Config.logIncommingBG)
|
||||
log.debug("MM640g BG " + bgReading.toString());
|
||||
|
||||
try {
|
||||
MainApp.getDbHelper().getDaoBgReadings().createIfNotExists(bgReading);
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
log.debug("Unknown entries type: " + type);
|
||||
}
|
||||
}
|
||||
} catch (JSONException e) {
|
||||
log.error("Got JSON exception: " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
MainApp.bus().post(new EventNewBG());
|
||||
}
|
||||
|
||||
private void handleNewDataFromNSClient(Intent intent) {
|
||||
Bundle bundles = intent.getExtras();
|
||||
if (bundles == null) return;
|
||||
|
@ -282,7 +346,6 @@ public class DataService extends IntentService {
|
|||
handleAddedTreatment(trstr);
|
||||
}
|
||||
}
|
||||
scheduleTreatmentChange();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
@ -304,7 +367,6 @@ public class DataService extends IntentService {
|
|||
handleChangedTreatment(trstr);
|
||||
}
|
||||
}
|
||||
scheduleTreatmentChange();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
@ -328,7 +390,6 @@ public class DataService extends IntentService {
|
|||
removeTreatmentFromDb(_id);
|
||||
}
|
||||
}
|
||||
scheduleTreatmentChange();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
@ -407,6 +468,7 @@ public class DataService extends IntentService {
|
|||
int updated = MainApp.getDbHelper().getDaoTreatments().update(stored);
|
||||
if (Config.logIncommingData)
|
||||
log.debug("Records updated: " + updated);
|
||||
scheduleTreatmentChange();
|
||||
}
|
||||
} else {
|
||||
if (Config.logIncommingData)
|
||||
|
@ -430,6 +492,7 @@ public class DataService extends IntentService {
|
|||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
scheduleTreatmentChange();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -483,6 +546,7 @@ public class DataService extends IntentService {
|
|||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
scheduleTreatmentChange();
|
||||
}
|
||||
|
||||
public void handleDanaRHistoryRecords(JSONObject trJson) throws JSONException, SQLException {
|
||||
|
|
|
@ -29,4 +29,6 @@ public interface Intents {
|
|||
String EXTRA_RAW = "com.eveningoutpost.dexdrip.Extras.Raw";
|
||||
|
||||
String ACTION_NEW_BG_ESTIMATE_NO_DATA = "com.eveningoutpost.dexdrip.BgEstimateNoData";
|
||||
|
||||
String NS_EMULATOR = "com.eveningoutpost.dexdrip.NS_EMULATOR";
|
||||
}
|
||||
|
|
|
@ -6,14 +6,13 @@ import com.j256.ormlite.table.DatabaseTable;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.data.Iob;
|
||||
import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
|
||||
import info.nightscout.client.data.NSProfile;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
import info.nightscout.utils.DecimalFormatter;
|
||||
|
||||
@DatabaseTable(tableName = DatabaseHelper.DATABASE_TEMPBASALS)
|
||||
|
@ -190,16 +189,15 @@ public class TempBasal {
|
|||
}
|
||||
|
||||
public String toString() {
|
||||
DateFormat formatDateToJustTime = new SimpleDateFormat("HH:mm");
|
||||
String extended = isExtended ? "E " : "";
|
||||
|
||||
if (isAbsolute) {
|
||||
return extended + DecimalFormatter.to2Decimal(absolute) + "U/h @" +
|
||||
formatDateToJustTime.format(timeStart) +
|
||||
DateUtil.timeString(timeStart) +
|
||||
" " + getRealDuration() + "/" + duration + "min";
|
||||
} else { // percent
|
||||
return percent + "% @" +
|
||||
formatDateToJustTime.format(timeStart) +
|
||||
DateUtil.timeString(timeStart) +
|
||||
" " + getRealDuration() + "/" + duration + "min";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,9 +13,8 @@ import java.util.List;
|
|||
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.data.Iob;
|
||||
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderFragment;
|
||||
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
|
||||
import info.nightscout.androidaps.plugins.Overview.GraphSeriesExtension.DataPointWithLabelInterface;
|
||||
import info.nightscout.androidaps.plugins.Overview.graphExtensions.DataPointWithLabelInterface;
|
||||
import info.nightscout.client.data.NSProfile;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
import info.nightscout.utils.DecimalFormatter;
|
||||
|
|
|
@ -33,7 +33,6 @@ import org.json.JSONObject;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
|
@ -197,10 +196,8 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
|
|||
eventTime = new Date();
|
||||
dateButton = (Button) view.findViewById(R.id.careportal_newnstreatment_eventdate);
|
||||
timeButton = (Button) view.findViewById(R.id.careportal_newnstreatment_eventtime);
|
||||
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
|
||||
DateFormat tf = DateFormat.getTimeInstance(DateFormat.SHORT);
|
||||
dateButton.setText(df.format(eventTime));
|
||||
timeButton.setText(tf.format(eventTime));
|
||||
dateButton.setText(DateUtil.dateString(eventTime));
|
||||
timeButton.setText(DateUtil.timeString(eventTime));
|
||||
dateButton.setOnClickListener(this);
|
||||
timeButton.setOnClickListener(this);
|
||||
|
||||
|
@ -330,8 +327,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
|
|||
eventTime.setYear(year - 1900);
|
||||
eventTime.setMonth(monthOfYear);
|
||||
eventTime.setDate(dayOfMonth);
|
||||
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
|
||||
dateButton.setText(df.format(eventTime));
|
||||
dateButton.setText(DateUtil.dateString(eventTime));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -339,8 +335,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
|
|||
eventTime.setHours(hourOfDay);
|
||||
eventTime.setMinutes(minute);
|
||||
eventTime.setSeconds(second);
|
||||
DateFormat tf = DateFormat.getTimeInstance(DateFormat.SHORT);
|
||||
timeButton.setText(tf.format(eventTime));
|
||||
timeButton.setText(DateUtil.timeString(eventTime));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ import info.nightscout.androidaps.MainApp;
|
|||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.events.EventInitializationChanged;
|
||||
import info.nightscout.androidaps.interfaces.FragmentBase;
|
||||
import info.nightscout.androidaps.interfaces.PumpInterface;
|
||||
import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog;
|
||||
import info.nightscout.androidaps.plugins.Careportal.OptionsToShow;
|
||||
import info.nightscout.utils.DecimalFormatter;
|
||||
|
@ -55,6 +56,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
|
|||
TextView profileView;
|
||||
TextView baseprofileIC;
|
||||
TextView baseprofileBasal;
|
||||
LinearLayout baseprofileBasalLayout;
|
||||
TextView baseprofileISF;
|
||||
Button profileswitchButton;
|
||||
ImageView percentageIcon;
|
||||
|
@ -79,6 +81,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
|
|||
timeshiftView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_timeshift);
|
||||
profileView = (TextView) layout.findViewById(R.id.circadianpercentageprofile_profileview);
|
||||
baseprofileBasal = (TextView) layout.findViewById(R.id.circadianpercentageprofile_baseprofilebasal);
|
||||
baseprofileBasalLayout = (LinearLayout) layout.findViewById(R.id.circadianpercentageprofile_baseprofilebasal_layout);
|
||||
baseprofileIC = (TextView) layout.findViewById(R.id.circadianpercentageprofile_baseprofileic);
|
||||
baseprofileISF = (TextView) layout.findViewById(R.id.circadianpercentageprofile_baseprofileisf);
|
||||
percentageIcon = (ImageView) layout.findViewById(R.id.circadianpercentageprofile_percentageicon);
|
||||
|
@ -89,6 +92,11 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
|
|||
iceditIcon = (ImageView) layout.findViewById(R.id.circadianpercentageprofile_icedit);
|
||||
isfeditIcon = (ImageView) layout.findViewById(R.id.circadianpercentageprofile_isfedit);
|
||||
|
||||
PumpInterface pump = MainApp.getConfigBuilder();
|
||||
if (!pump.getPumpDescription().isTempBasalCapable) {
|
||||
layout.findViewById(R.id.circadianpercentageprofile_baseprofilebasal_layout).setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
|
||||
mgdlView.setChecked(circadianPercentageProfilePlugin.mgdl);
|
||||
mmolView.setChecked(circadianPercentageProfilePlugin.mmol);
|
||||
|
@ -344,6 +352,12 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
|
|||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
|
||||
if (basalEditDialog != null && basalEditDialog.isVisible()) {
|
||||
basalEditDialog.dismiss();
|
||||
}
|
||||
basalEditDialog = null;
|
||||
|
||||
MainApp.bus().unregister(this);
|
||||
}
|
||||
|
||||
|
|
|
@ -205,6 +205,10 @@ public class ConfigBuilderFragment extends Fragment implements FragmentBase {
|
|||
holder.checkboxVisible.setEnabled(false);
|
||||
}
|
||||
|
||||
if (!plugin.isEnabled(type)) {
|
||||
holder.checkboxVisible.setEnabled(false);
|
||||
}
|
||||
|
||||
// Hide enabled control and force enabled plugin if there is only one plugin available
|
||||
if (type == PluginBase.PUMP || type == PluginBase.TREATMENT || type == PluginBase.TEMPBASAL || type == PluginBase.PROFILE)
|
||||
if (pluginList.size() < 2) {
|
||||
|
|
|
@ -20,7 +20,6 @@ import com.squareup.otto.Subscribe;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
|
@ -32,6 +31,7 @@ import info.nightscout.androidaps.plugins.DanaR.Dialogs.ProfileViewDialog;
|
|||
import info.nightscout.androidaps.plugins.DanaR.History.DanaRHistoryActivity;
|
||||
import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus;
|
||||
import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRNewStatus;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
import info.nightscout.utils.DecimalFormatter;
|
||||
import info.nightscout.utils.SetWarnColor;
|
||||
|
||||
|
@ -188,8 +188,6 @@ public class DanaRFragment extends Fragment implements FragmentBase {
|
|||
|
||||
// GUI functions
|
||||
private void updateGUI() {
|
||||
final DateFormat formatTime = DateFormat.getTimeInstance(DateFormat.SHORT);
|
||||
|
||||
Activity activity = getActivity();
|
||||
if (activity != null && basaBasalRateView != null)
|
||||
activity.runOnUiThread(new Runnable() {
|
||||
|
@ -200,14 +198,14 @@ public class DanaRFragment extends Fragment implements FragmentBase {
|
|||
if (DanaRPlugin.getDanaRPump().lastConnection.getTime() != 0) {
|
||||
Long agoMsec = new Date().getTime() - DanaRPlugin.getDanaRPump().lastConnection.getTime();
|
||||
int agoMin = (int) (agoMsec / 60d / 1000d);
|
||||
lastConnectionView.setText(formatTime.format(DanaRPlugin.getDanaRPump().lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")");
|
||||
lastConnectionView.setText(DateUtil.timeString(DanaRPlugin.getDanaRPump().lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")");
|
||||
SetWarnColor.setColor(lastConnectionView, agoMin, 16d, 31d);
|
||||
}
|
||||
if (DanaRPlugin.getDanaRPump().lastBolusTime.getTime() != 0) {
|
||||
Long agoMsec = new Date().getTime() - DanaRPlugin.getDanaRPump().lastBolusTime.getTime();
|
||||
double agoHours = agoMsec / 60d / 60d / 1000d;
|
||||
if (agoHours < 6) // max 6h back
|
||||
lastBolusView.setText(formatTime.format(DanaRPlugin.getDanaRPump().lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(getPlugin().getDanaRPump().lastBolusAmount) + " U");
|
||||
lastBolusView.setText(DateUtil.timeString(DanaRPlugin.getDanaRPump().lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(getPlugin().getDanaRPump().lastBolusAmount) + " U");
|
||||
else lastBolusView.setText("");
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,6 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.text.DateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
@ -46,6 +45,7 @@ import info.nightscout.androidaps.plugins.DanaR.comm.RecordTypes;
|
|||
import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus;
|
||||
import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRSyncStatus;
|
||||
import info.nightscout.client.data.NSProfile;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
import info.nightscout.utils.DecimalFormatter;
|
||||
import info.nightscout.utils.ToastUtils;
|
||||
|
||||
|
@ -274,9 +274,8 @@ public class DanaRHistoryActivity extends Activity {
|
|||
|
||||
@Override
|
||||
public void onBindViewHolder(HistoryViewHolder holder, int position) {
|
||||
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
|
||||
DanaRHistoryRecord record = historyList.get(position);
|
||||
holder.time.setText(df.format(new Date(record.getRecordDate())));
|
||||
holder.time.setText(DateUtil.dateAndTimeString(record.getRecordDate()));
|
||||
holder.value.setText(DecimalFormatter.to2Decimal(record.getRecordValue()));
|
||||
holder.stringvalue.setText(record.getStringRecordValue());
|
||||
holder.bolustype.setText(record.getBolusType());
|
||||
|
@ -306,11 +305,10 @@ public class DanaRHistoryActivity extends Activity {
|
|||
holder.alarm.setVisibility(View.GONE);
|
||||
break;
|
||||
case RecordTypes.RECORD_TYPE_DAILY:
|
||||
df = DateFormat.getDateInstance(DateFormat.SHORT);
|
||||
holder.dailybasal.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBasal()) + "U");
|
||||
holder.dailybolus.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus()) + "U");
|
||||
holder.dailytotal.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus()+ record.getRecordDailyBasal()) + "U");
|
||||
holder.time.setText(df.format(new Date(record.getRecordDate())));
|
||||
holder.time.setText(DateUtil.dateString(record.getRecordDate()));
|
||||
holder.time.setVisibility(View.VISIBLE);
|
||||
holder.value.setVisibility(View.GONE);
|
||||
holder.stringvalue.setVisibility(View.GONE);
|
||||
|
|
|
@ -6,12 +6,12 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.text.DateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.db.DanaRHistoryRecord;
|
||||
import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRSyncStatus;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
|
||||
public class MsgHistoryAll extends MessageBase {
|
||||
private static Logger log = LoggerFactory.getLogger(MsgHistoryAll.class);
|
||||
|
@ -150,8 +150,7 @@ public class MsgHistoryAll extends MessageBase {
|
|||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
|
||||
ev.message = df.format(new Date(danaRHistoryRecord.getRecordDate()));
|
||||
ev.message = DateUtil.dateAndTimeString(danaRHistoryRecord.getRecordDate());
|
||||
ev.message += " " + messageType;
|
||||
MainApp.bus().post(ev);
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@ import com.squareup.otto.Subscribe;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
|
@ -32,6 +31,7 @@ import info.nightscout.androidaps.plugins.DanaR.Dialogs.ProfileViewDialog;
|
|||
import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus;
|
||||
import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRNewStatus;
|
||||
import info.nightscout.androidaps.plugins.DanaRKorean.History.DanaRHistoryActivity;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
import info.nightscout.utils.DecimalFormatter;
|
||||
import info.nightscout.utils.SetWarnColor;
|
||||
|
||||
|
@ -185,7 +185,6 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase {
|
|||
|
||||
// GUI functions
|
||||
private void updateGUI() {
|
||||
final DateFormat formatTime = DateFormat.getTimeInstance(DateFormat.SHORT);
|
||||
|
||||
Activity activity = getActivity();
|
||||
if (activity != null && basaBasalRateView != null)
|
||||
|
@ -197,7 +196,7 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase {
|
|||
if (DanaRKoreanPlugin.getDanaRPump().lastConnection.getTime() != 0) {
|
||||
Long agoMsec = new Date().getTime() - DanaRKoreanPlugin.getDanaRPump().lastConnection.getTime();
|
||||
int agoMin = (int) (agoMsec / 60d / 1000d);
|
||||
lastConnectionView.setText(formatTime.format(DanaRKoreanPlugin.getDanaRPump().lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")");
|
||||
lastConnectionView.setText(DateUtil.timeString(DanaRKoreanPlugin.getDanaRPump().lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")");
|
||||
SetWarnColor.setColor(lastConnectionView, agoMin, 16d, 31d);
|
||||
}
|
||||
// if (DanaRKoreanPlugin.getDanaRPump().lastBolusTime.getTime() != 0) {
|
||||
|
|
|
@ -31,7 +31,6 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.text.DateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
@ -47,6 +46,7 @@ import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatu
|
|||
import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRSyncStatus;
|
||||
import info.nightscout.androidaps.plugins.DanaRKorean.Services.ExecutionService;
|
||||
import info.nightscout.client.data.NSProfile;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
import info.nightscout.utils.DecimalFormatter;
|
||||
import info.nightscout.utils.ToastUtils;
|
||||
|
||||
|
@ -273,9 +273,8 @@ public class DanaRHistoryActivity extends Activity {
|
|||
|
||||
@Override
|
||||
public void onBindViewHolder(HistoryViewHolder holder, int position) {
|
||||
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
|
||||
DanaRHistoryRecord record = historyList.get(position);
|
||||
holder.time.setText(df.format(new Date(record.getRecordDate())));
|
||||
holder.time.setText(DateUtil.dateAndTimeString(record.getRecordDate()));
|
||||
holder.value.setText(DecimalFormatter.to2Decimal(record.getRecordValue()));
|
||||
holder.stringvalue.setText(record.getStringRecordValue());
|
||||
holder.bolustype.setText(record.getBolusType());
|
||||
|
@ -305,11 +304,10 @@ public class DanaRHistoryActivity extends Activity {
|
|||
holder.alarm.setVisibility(View.GONE);
|
||||
break;
|
||||
case RecordTypes.RECORD_TYPE_DAILY:
|
||||
df = DateFormat.getDateInstance(DateFormat.SHORT);
|
||||
holder.dailybasal.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBasal()) + "U");
|
||||
holder.dailybolus.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus()) + "U");
|
||||
holder.dailytotal.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus()+ record.getRecordDailyBasal()) + "U");
|
||||
holder.time.setText(df.format(new Date(record.getRecordDate())));
|
||||
holder.time.setText(DateUtil.dateString(record.getRecordDate()));
|
||||
holder.time.setVisibility(View.VISIBLE);
|
||||
holder.value.setVisibility(View.GONE);
|
||||
holder.stringvalue.setVisibility(View.GONE);
|
||||
|
|
|
@ -25,6 +25,7 @@ import info.nightscout.androidaps.MainApp;
|
|||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.events.EventInitializationChanged;
|
||||
import info.nightscout.androidaps.interfaces.FragmentBase;
|
||||
import info.nightscout.androidaps.interfaces.PumpInterface;
|
||||
import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog;
|
||||
import info.nightscout.androidaps.plugins.Careportal.OptionsToShow;
|
||||
import info.nightscout.utils.SafeParse;
|
||||
|
@ -70,6 +71,11 @@ public class LocalProfileFragment extends Fragment implements FragmentBase {
|
|||
targetView = new TimeListEdit(getContext(), layout, R.id.localprofile_target, MainApp.sResources.getString(R.string.nsprofileview_target_label), getPlugin().targetLow, getPlugin().targetHigh, new DecimalFormat("0.0"), save);
|
||||
profileswitchButton = (Button) layout.findViewById(R.id.localprofile_profileswitch);
|
||||
|
||||
PumpInterface pump = MainApp.getConfigBuilder();
|
||||
if (!pump.getPumpDescription().isTempBasalCapable) {
|
||||
layout.findViewById(R.id.localprofile_basal).setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
onStatusEvent(null);
|
||||
|
||||
mgdlView.setChecked(localProfilePlugin.mgdl);
|
||||
|
|
|
@ -111,7 +111,7 @@ public class DetermineBasalAdapterJS implements Parcelable {
|
|||
mProfile.add("max_basal", 0);
|
||||
mProfile.add("max_bg", 0);
|
||||
mProfile.add("min_bg", 0);
|
||||
mProfile.add("carbratio", 0);
|
||||
mProfile.add("carb_ratio", 0);
|
||||
mProfile.add("sens", 0);
|
||||
mProfile.add("current_basal", 0);
|
||||
mV8rt.add(PARAM_profile, mProfile);
|
||||
|
@ -280,7 +280,7 @@ public class DetermineBasalAdapterJS implements Parcelable {
|
|||
mProfile.add("min_bg", minBg);
|
||||
mProfile.add("max_bg", maxBg);
|
||||
mProfile.add("target_bg", targetBg);
|
||||
mProfile.add("carbratio", profile.getIc(profile.secondsFromMidnight()));
|
||||
mProfile.add("carb_ratio", profile.getIc(profile.secondsFromMidnight()));
|
||||
mProfile.add("sens", NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()).doubleValue(), units));
|
||||
|
||||
mProfile.add("current_basal", pump.getBaseBasalRate());
|
||||
|
|
|
@ -17,6 +17,7 @@ import org.slf4j.LoggerFactory;
|
|||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.interfaces.FragmentBase;
|
||||
import info.nightscout.androidaps.plugins.Loop.APSResult;
|
||||
import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSMAUpdateGui;
|
||||
import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSMAUpdateResultGui;
|
||||
import info.nightscout.utils.JSONFormatter;
|
||||
|
@ -101,14 +102,20 @@ public class OpenAPSMAFragment extends Fragment implements View.OnClickListener,
|
|||
activity.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (getPlugin().lastAPSResult != null) {
|
||||
glucoseStatusView.setText(JSONFormatter.format(getPlugin().lastDetermineBasalAdapterJS.getGlucoseStatusParam()));
|
||||
currentTempView.setText(JSONFormatter.format(getPlugin().lastDetermineBasalAdapterJS.getCurrentTempParam()));
|
||||
iobDataView.setText(JSONFormatter.format(getPlugin().lastDetermineBasalAdapterJS.getIobDataParam()));
|
||||
profileView.setText(JSONFormatter.format(getPlugin().lastDetermineBasalAdapterJS.getProfileParam()));
|
||||
mealDataView.setText(JSONFormatter.format(getPlugin().lastDetermineBasalAdapterJS.getMealDataParam()));
|
||||
resultView.setText(JSONFormatter.format(getPlugin().lastAPSResult.json));
|
||||
requestView.setText(getPlugin().lastAPSResult.toSpanned());
|
||||
DetermineBasalResult lastAPSResult = getPlugin().lastAPSResult;
|
||||
if (lastAPSResult != null) {
|
||||
resultView.setText(JSONFormatter.format(lastAPSResult.json));
|
||||
requestView.setText(lastAPSResult.toSpanned());
|
||||
}
|
||||
DetermineBasalAdapterJS determineBasalAdapterJS = getPlugin().lastDetermineBasalAdapterJS;
|
||||
if (determineBasalAdapterJS != null) {
|
||||
glucoseStatusView.setText(JSONFormatter.format(determineBasalAdapterJS.getGlucoseStatusParam()));
|
||||
currentTempView.setText(JSONFormatter.format(determineBasalAdapterJS.getCurrentTempParam()));
|
||||
iobDataView.setText(JSONFormatter.format(determineBasalAdapterJS.getIobDataParam()));
|
||||
profileView.setText(JSONFormatter.format(determineBasalAdapterJS.getProfileParam()));
|
||||
mealDataView.setText(JSONFormatter.format(determineBasalAdapterJS.getMealDataParam()));
|
||||
}
|
||||
if (getPlugin().lastAPSRun != null) {
|
||||
lastRunView.setText(getPlugin().lastAPSRun.toLocaleString());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,6 @@ import android.widget.Spinner;
|
|||
|
||||
import org.json.JSONException;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
@ -62,15 +61,14 @@ public class EditQuickWizardDialog extends DialogFragment implements View.OnClic
|
|||
int posFrom = 0;
|
||||
int posTo = 95;
|
||||
ArrayList<CharSequence> timeList = new ArrayList<>();
|
||||
DateFormat df = new SimpleDateFormat("HH:mm");
|
||||
int pos = 0;
|
||||
for (int t = 0; t < 24 * 60 * 60; t += 15 * 60) {
|
||||
timeList.add(df.format(DateUtil.toDate(t)));
|
||||
timeList.add(DateUtil.timeString(DateUtil.toDate(t)));
|
||||
if (entry.validFrom() == t) posFrom = pos;
|
||||
if (entry.validTo() == t) posTo = pos;
|
||||
pos++;
|
||||
}
|
||||
timeList.add(df.format(DateUtil.toDate(24 * 60 * 60 - 60)));
|
||||
timeList.add(DateUtil.timeString(DateUtil.toDate(24 * 60 * 60 - 60)));
|
||||
|
||||
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(getContext(),
|
||||
android.R.layout.simple_spinner_item, timeList);
|
||||
|
|
|
@ -38,7 +38,6 @@ import org.json.JSONObject;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
|
@ -73,9 +72,10 @@ import info.nightscout.androidaps.plugins.Objectives.ObjectivesPlugin;
|
|||
import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
|
||||
import info.nightscout.androidaps.plugins.Overview.Dialogs.NewTreatmentDialog;
|
||||
import info.nightscout.androidaps.plugins.Overview.Dialogs.WizardDialog;
|
||||
import info.nightscout.androidaps.plugins.Overview.GraphSeriesExtension.PointsWithLabelGraphSeries;
|
||||
import info.nightscout.androidaps.plugins.Overview.graphExtensions.PointsWithLabelGraphSeries;
|
||||
import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification;
|
||||
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
|
||||
import info.nightscout.androidaps.plugins.Overview.graphExtensions.TimeAsXAxisLabelFormatter;
|
||||
import info.nightscout.client.data.NSProfile;
|
||||
import info.nightscout.utils.BolusWizard;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
|
@ -101,6 +101,7 @@ public class OverviewFragment extends Fragment {
|
|||
TextView avgdeltaView;
|
||||
TextView runningTempView;
|
||||
TextView baseBasalView;
|
||||
LinearLayout basalLayout;
|
||||
TextView activeProfileView;
|
||||
TextView iobView;
|
||||
TextView apsModeView;
|
||||
|
@ -146,6 +147,7 @@ public class OverviewFragment extends Fragment {
|
|||
avgdeltaView = (TextView) view.findViewById(R.id.overview_avgdelta);
|
||||
runningTempView = (TextView) view.findViewById(R.id.overview_runningtemp);
|
||||
baseBasalView = (TextView) view.findViewById(R.id.overview_basebasal);
|
||||
basalLayout = (LinearLayout) view.findViewById(R.id.overview_basallayout);
|
||||
activeProfileView = (TextView) view.findViewById(R.id.overview_activeprofile);
|
||||
|
||||
iobView = (TextView) view.findViewById(R.id.overview_iob);
|
||||
|
@ -521,7 +523,13 @@ public class OverviewFragment extends Fragment {
|
|||
cancelTempLayout.setVisibility(View.GONE);
|
||||
runningTempView.setVisibility(View.GONE);
|
||||
}
|
||||
baseBasalView.setText(DecimalFormatter.to2Decimal(pump.getBaseBasalRate()) + " U/h");
|
||||
|
||||
if (pump.getPumpDescription().isTempBasalCapable) {
|
||||
basalLayout.setVisibility(View.VISIBLE);
|
||||
baseBasalView.setText(DecimalFormatter.to2Decimal(pump.getBaseBasalRate()) + " U/h");
|
||||
} else {
|
||||
basalLayout.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if (profile != null && profile.getActiveProfile() != null)
|
||||
activeProfileView.setText(profile.getActiveProfile());
|
||||
|
@ -668,27 +676,29 @@ public class OverviewFragment extends Fragment {
|
|||
Double maxBasalValueFound = 0d;
|
||||
|
||||
long now = new Date().getTime();
|
||||
List<BarDataPoint> basalArray = new ArrayList<BarDataPoint>();
|
||||
for (long time = fromTime; time < now; time += 5 * 60 * 1000L) {
|
||||
TempBasal tb = MainApp.getConfigBuilder().getTempBasal(new Date(time));
|
||||
Double basal = 0d;
|
||||
if (tb != null)
|
||||
basalArray.add(new BarDataPoint(time, basal = tb.tempBasalConvertedToAbsolute(new Date(time)), true));
|
||||
else
|
||||
basalArray.add(new BarDataPoint(time, basal = profile.getBasal(NSProfile.secondsFromMidnight(new Date(time))), false));
|
||||
maxBasalValueFound = Math.max(maxBasalValueFound, basal);
|
||||
}
|
||||
BarDataPoint[] basal = new BarDataPoint[basalArray.size()];
|
||||
basal = basalArray.toArray(basal);
|
||||
bgGraph.addSeries(basalsSeries = new BarGraphSeries<DataPoint>(basal));
|
||||
basalsSeries.setValueDependentColor(new ValueDependentColor<DataPoint>() {
|
||||
@Override
|
||||
public int get(DataPoint data) {
|
||||
BarDataPoint point = (BarDataPoint) data;
|
||||
if (point.isTempBasal) return Color.BLUE;
|
||||
else return Color.CYAN;
|
||||
if (pump.getPumpDescription().isTempBasalCapable) {
|
||||
List<BarDataPoint> basalArray = new ArrayList<BarDataPoint>();
|
||||
for (long time = fromTime; time < now; time += 5 * 60 * 1000L) {
|
||||
TempBasal tb = MainApp.getConfigBuilder().getTempBasal(new Date(time));
|
||||
Double basal = 0d;
|
||||
if (tb != null)
|
||||
basalArray.add(new BarDataPoint(time, basal = tb.tempBasalConvertedToAbsolute(new Date(time)), true));
|
||||
else
|
||||
basalArray.add(new BarDataPoint(time, basal = profile.getBasal(NSProfile.secondsFromMidnight(new Date(time))), false));
|
||||
maxBasalValueFound = Math.max(maxBasalValueFound, basal);
|
||||
}
|
||||
});
|
||||
BarDataPoint[] basal = new BarDataPoint[basalArray.size()];
|
||||
basal = basalArray.toArray(basal);
|
||||
bgGraph.addSeries(basalsSeries = new BarGraphSeries<DataPoint>(basal));
|
||||
basalsSeries.setValueDependentColor(new ValueDependentColor<DataPoint>() {
|
||||
@Override
|
||||
public int get(DataPoint data) {
|
||||
BarDataPoint point = (BarDataPoint) data;
|
||||
if (point.isTempBasal) return Color.BLUE;
|
||||
else return Color.CYAN;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// set manual x bounds to have nice steps
|
||||
bgGraph.getViewport().setMaxX(toTime);
|
||||
|
@ -784,10 +794,12 @@ public class OverviewFragment extends Fragment {
|
|||
bgGraph.getGridLabelRenderer().setNumVerticalLabels(numOfHorizLines);
|
||||
|
||||
// set second scale
|
||||
bgGraph.getSecondScale().addSeries(basalsSeries);
|
||||
bgGraph.getSecondScale().setMinY(0);
|
||||
bgGraph.getSecondScale().setMaxY(maxBgValue / lowLine * maxBasalValueFound * 1.2d);
|
||||
bgGraph.getGridLabelRenderer().setVerticalLabelsSecondScaleColor(MainApp.instance().getResources().getColor(R.color.background_material_dark)); // same color as backround = hide
|
||||
if (pump.getPumpDescription().isTempBasalCapable) {
|
||||
bgGraph.getSecondScale().addSeries(basalsSeries);
|
||||
bgGraph.getSecondScale().setMinY(0);
|
||||
bgGraph.getSecondScale().setMaxY(maxBgValue / lowLine * maxBasalValueFound * 1.2d);
|
||||
bgGraph.getGridLabelRenderer().setVerticalLabelsSecondScaleColor(MainApp.instance().getResources().getColor(R.color.background_material_dark)); // same color as backround = hide
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -810,11 +822,10 @@ public class OverviewFragment extends Fragment {
|
|||
|
||||
@Override
|
||||
public void onBindViewHolder(NotificationsViewHolder holder, int position) {
|
||||
DateFormat df = DateFormat.getTimeInstance(DateFormat.SHORT);
|
||||
Notification notification = notificationsList.get(position);
|
||||
holder.dismiss.setTag(notification);
|
||||
holder.text.setText(notification.text);
|
||||
holder.time.setText(df.format(notification.date));
|
||||
holder.time.setText(DateUtil.timeString(notification.date));
|
||||
if (notification.level == Notification.URGENT)
|
||||
holder.cv.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.notificationUrgent));
|
||||
else if (notification.level == Notification.NORMAL)
|
||||
|
|
|
@ -15,17 +15,15 @@ import android.widget.TextView;
|
|||
|
||||
import com.squareup.otto.Subscribe;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
import info.nightscout.androidaps.AgreementActivity;
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.plugins.Overview.Dialogs.EditQuickWizardDialog;
|
||||
import info.nightscout.androidaps.plugins.Overview.OverviewPlugin;
|
||||
import info.nightscout.androidaps.plugins.Overview.QuickWizard;
|
||||
import info.nightscout.androidaps.plugins.Overview.events.EventQuickWizardChange;
|
||||
import info.nightscout.androidaps.plugins.TempBasals.TempBasalsFragment;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
import info.nightscout.utils.DecimalFormatter;
|
||||
|
||||
public class QuickWizardListActivity extends AppCompatActivity implements View.OnClickListener {
|
||||
|
@ -54,9 +52,8 @@ public class QuickWizardListActivity extends AppCompatActivity implements View.O
|
|||
|
||||
@Override
|
||||
public void onBindViewHolder(QuickWizardEntryViewHolder holder, int position) {
|
||||
DateFormat df = new SimpleDateFormat("HH:mm");
|
||||
holder.from.setText(df.format(qvData.get(position).validFromDate()));
|
||||
holder.to.setText(df.format(qvData.get(position).validToDate()));
|
||||
holder.from.setText(DateUtil.timeString(qvData.get(position).validFromDate()));
|
||||
holder.to.setText(DateUtil.timeString(qvData.get(position).validToDate()));
|
||||
holder.buttonText.setText(qvData.get(position).buttonText());
|
||||
holder.carbs.setText(DecimalFormatter.to0Decimal(qvData.get(position).carbs()) + " g");
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.androidaps.plugins.Overview.GraphSeriesExtension;
|
||||
package info.nightscout.androidaps.plugins.Overview.graphExtensions;
|
||||
/**
|
||||
* GraphView
|
||||
* Copyright (C) 2014 Jonas Gehring
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.androidaps.plugins.Overview.GraphSeriesExtension;
|
||||
package info.nightscout.androidaps.plugins.Overview.graphExtensions;
|
||||
|
||||
/**
|
||||
* GraphView
|
||||
|
@ -25,7 +25,6 @@ package info.nightscout.androidaps.plugins.Overview.GraphSeriesExtension;
|
|||
*/
|
||||
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Path;
|
||||
import android.graphics.Point;
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.androidaps.plugins.Overview;
|
||||
package info.nightscout.androidaps.plugins.Overview.graphExtensions;
|
||||
|
||||
import android.content.Context;
|
||||
|
|
@ -26,6 +26,7 @@ import info.nightscout.androidaps.MainApp;
|
|||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.events.EventInitializationChanged;
|
||||
import info.nightscout.androidaps.interfaces.FragmentBase;
|
||||
import info.nightscout.androidaps.interfaces.PumpInterface;
|
||||
import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog;
|
||||
import info.nightscout.androidaps.plugins.Careportal.OptionsToShow;
|
||||
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
|
||||
|
@ -68,6 +69,12 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase {
|
|||
targethighView = (EditText) layout.findViewById(R.id.simpleprofile_targethigh);
|
||||
profileswitchButton = (Button) layout.findViewById(R.id.simpleprofile_profileswitch);
|
||||
|
||||
PumpInterface pump = MainApp.getConfigBuilder();
|
||||
if (!pump.getPumpDescription().isTempBasalCapable) {
|
||||
layout.findViewById(R.id.simpleprofile_basalrate).setVisibility(View.GONE);
|
||||
layout.findViewById(R.id.simpleprofile_basalrate_label).setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
onStatusEvent(null);
|
||||
|
||||
mgdlView.setChecked(simpleProfilePlugin.mgdl);
|
||||
|
|
|
@ -15,13 +15,13 @@ import com.squareup.otto.Subscribe;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.plugins.SmsCommunicator.events.EventSmsCommunicatorUpdateGui;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
|
@ -89,15 +89,14 @@ public class SmsCommunicatorFragment extends Fragment {
|
|||
int messagesToShow = 40;
|
||||
|
||||
int start = Math.max(0, getPlugin().messages.size() - messagesToShow);
|
||||
DateFormat df = DateFormat.getTimeInstance(DateFormat.SHORT);
|
||||
|
||||
String logText = "";
|
||||
for (int x = start; x < getPlugin().messages.size(); x++) {
|
||||
SmsCommunicatorPlugin.Sms sms = getPlugin().messages.get(x);
|
||||
if (sms.received) {
|
||||
logText += df.format(sms.date) + " <<< " + (sms.processed ? "● " : "○ ") + sms.phoneNumber + " <b>" + sms.text + "</b><br>";
|
||||
logText += DateUtil.timeString(sms.date) + " <<< " + (sms.processed ? "● " : "○ ") + sms.phoneNumber + " <b>" + sms.text + "</b><br>";
|
||||
} else if (sms.sent) {
|
||||
logText += df.format(sms.date) + " >>> " + (sms.processed ? "● " : "○ ") + sms.phoneNumber + " <b>" + sms.text + "</b><br>";
|
||||
logText += DateUtil.timeString(sms.date) + " >>> " + (sms.processed ? "● " : "○ ") + sms.phoneNumber + " <b>" + sms.text + "</b><br>";
|
||||
}
|
||||
}
|
||||
logView.setText(Html.fromHtml(logText));
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
package info.nightscout.androidaps.plugins.SourceMM640g;
|
||||
|
||||
|
||||
import android.support.v4.app.Fragment;
|
||||
|
||||
import info.nightscout.androidaps.interfaces.FragmentBase;
|
||||
|
||||
public class SourceMM640gFragment extends Fragment implements FragmentBase {
|
||||
|
||||
private static SourceMM640gPlugin sourceMM640gPlugin = new SourceMM640gPlugin();
|
||||
|
||||
public static SourceMM640gPlugin getPlugin() {
|
||||
return sourceMM640gPlugin;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
package info.nightscout.androidaps.plugins.SourceMM640g;
|
||||
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.interfaces.BgSourceInterface;
|
||||
import info.nightscout.androidaps.interfaces.PluginBase;
|
||||
import info.nightscout.androidaps.plugins.SourceNSClient.SourceNSClientFragment;
|
||||
|
||||
/**
|
||||
* Created by mike on 05.08.2016.
|
||||
*/
|
||||
public class SourceMM640gPlugin implements PluginBase, BgSourceInterface {
|
||||
boolean fragmentEnabled = true;
|
||||
|
||||
@Override
|
||||
public String getFragmentClass() {
|
||||
return SourceMM640gFragment.class.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getType() {
|
||||
return PluginBase.BGSOURCE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return MainApp.instance().getString(R.string.MM640g);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled(int type) {
|
||||
return type == BGSOURCE && fragmentEnabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVisibleInTabs(int type) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBeHidden(int type) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFragmentEnabled(int type, boolean fragmentEnabled) {
|
||||
if (type == BGSOURCE) this.fragmentEnabled = fragmentEnabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFragmentVisible(int type, boolean fragmentVisible) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -17,7 +17,6 @@ import com.squareup.otto.Subscribe;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -27,6 +26,7 @@ import info.nightscout.androidaps.db.TempBasal;
|
|||
import info.nightscout.androidaps.events.EventTempBasalChange;
|
||||
import info.nightscout.androidaps.interfaces.FragmentBase;
|
||||
import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
import info.nightscout.utils.DecimalFormatter;
|
||||
|
||||
|
||||
|
@ -61,13 +61,11 @@ public class TempBasalsFragment extends Fragment implements FragmentBase {
|
|||
|
||||
@Override
|
||||
public void onBindViewHolder(TempBasalsViewHolder holder, int position) {
|
||||
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT);
|
||||
DateFormat enddf = DateFormat.getTimeInstance(DateFormat.SHORT);
|
||||
TempBasal tempBasal = tempBasalList.get(position);
|
||||
if (tempBasal.timeEnd != null) {
|
||||
holder.date.setText(df.format(tempBasal.timeStart) + " - " + enddf.format(tempBasalList.get(position).timeEnd));
|
||||
holder.date.setText(DateUtil.dateAndTimeString(tempBasal.timeStart) + " - " + DateUtil.timeString(tempBasalList.get(position).timeEnd));
|
||||
} else {
|
||||
holder.date.setText(df.format(tempBasal.timeStart));
|
||||
holder.date.setText(DateUtil.dateAndTimeString(tempBasal.timeStart));
|
||||
}
|
||||
holder.duration.setText(DecimalFormatter.to0Decimal(tempBasal.duration) + " min");
|
||||
if (tempBasal.isAbsolute) {
|
||||
|
|
|
@ -23,7 +23,6 @@ import com.squareup.otto.Subscribe;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -35,6 +34,7 @@ import info.nightscout.androidaps.db.Treatment;
|
|||
import info.nightscout.androidaps.events.EventTreatmentChange;
|
||||
import info.nightscout.androidaps.interfaces.FragmentBase;
|
||||
import info.nightscout.client.data.NSProfile;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
import info.nightscout.utils.DecimalFormatter;
|
||||
import info.nightscout.utils.ToastUtils;
|
||||
|
||||
|
@ -76,8 +76,7 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener
|
|||
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
|
||||
if (profile == null)
|
||||
return;
|
||||
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT);
|
||||
holder.date.setText(df.format(treatments.get(position).created_at));
|
||||
holder.date.setText(DateUtil.dateAndTimeString(treatments.get(position).created_at));
|
||||
holder.insulin.setText(DecimalFormatter.to2Decimal(treatments.get(position).insulin) + " U");
|
||||
holder.carbs.setText(DecimalFormatter.to0Decimal(treatments.get(position).carbs) + " g");
|
||||
Iob iob = treatments.get(position).iobCalc(new Date(), profile.getDia());
|
||||
|
|
|
@ -176,7 +176,9 @@ public class PersistentNotificationPlugin implements PluginBase{
|
|||
if(fragmentEnabled){
|
||||
MainApp.bus().register(this);
|
||||
} else {
|
||||
MainApp.bus().unregister(this);
|
||||
try {
|
||||
MainApp.bus().unregister(this);
|
||||
} catch (Exception e) {}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package info.nightscout.utils;
|
||||
|
||||
import android.text.format.DateUtils;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
|
@ -9,6 +11,8 @@ import java.util.TimeZone;
|
|||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
|
||||
/**
|
||||
* The Class DateUtil. A simple wrapper around SimpleDateFormat to ease the handling of iso date string <-> date obj
|
||||
* with TZ
|
||||
|
@ -81,4 +85,30 @@ public class DateUtil {
|
|||
return retval;
|
||||
}
|
||||
|
||||
public static String dateString(Date date) {
|
||||
//return DateUtils.formatDateTime(MainApp.instance(), date.getTime(), DateUtils.FORMAT_SHOW_DATE); this provide month name not number
|
||||
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
|
||||
return df.format(date);
|
||||
}
|
||||
|
||||
public static String dateString(long mills) {
|
||||
//return DateUtils.formatDateTime(MainApp.instance(), mills, DateUtils.FORMAT_SHOW_DATE); this provide month name not number
|
||||
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
|
||||
return df.format(mills);
|
||||
}
|
||||
|
||||
public static String timeString(Date date) {
|
||||
return DateUtils.formatDateTime(MainApp.instance(), date.getTime(), DateUtils.FORMAT_SHOW_TIME);
|
||||
}
|
||||
|
||||
public static String timeString(long mills) {
|
||||
return DateUtils.formatDateTime(MainApp.instance(), mills, DateUtils.FORMAT_SHOW_TIME);
|
||||
}
|
||||
|
||||
public static String dateAndTimeString(Date date) {
|
||||
return dateString(date) + " " + timeString(date);
|
||||
}
|
||||
public static String dateAndTimeString(long mills) {
|
||||
return dateString(mills) + " " + timeString(mills);
|
||||
}
|
||||
}
|
|
@ -23,9 +23,7 @@ import org.json.JSONObject;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
|
@ -84,23 +82,29 @@ public class TimeListEdit {
|
|||
|
||||
for (int i = 0; i < itemsCount(); i++) {
|
||||
View childview = inflater.inflate(R.layout.timelistedit_element, layout, false);
|
||||
childview.setId(View.generateViewId());
|
||||
final Spinner timeSpinner = (Spinner) childview.findViewById(R.id.timelistedit_time);
|
||||
timeSpinner.setId(View.generateViewId());
|
||||
int previous = i == 0 ? -1 * ONEHOURINSECONDS : secondFromMidnight(i - 1);
|
||||
int next = i == itemsCount() - 1 ? 24 * ONEHOURINSECONDS : secondFromMidnight(i + 1);
|
||||
if (i == 0) next = ONEHOURINSECONDS;
|
||||
fillSpinner(timeSpinner, secondFromMidnight(i), previous, next);
|
||||
|
||||
final EditText editText1 = (EditText) childview.findViewById(R.id.timelistedit_edit1);
|
||||
editText1.setId(View.generateViewId());
|
||||
fillNumber(editText1, value1(i));
|
||||
final EditText editText2 = ((EditText) childview.findViewById(R.id.timelistedit_edit2));
|
||||
fillNumber(editText2, value2(i));
|
||||
editText2.setId(View.generateViewId());
|
||||
if (data2 == null) {
|
||||
editText2.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
|
||||
ImageView addbutton = (ImageView) childview.findViewById(R.id.timelistedit_add);
|
||||
addbutton.setId(View.generateViewId());
|
||||
ImageView removebutton = (ImageView) childview.findViewById(R.id.timelistedit_remove);
|
||||
removebutton.setId(View.generateViewId());
|
||||
|
||||
if (itemsCount() == 1 && i == 0) {
|
||||
removebutton.setVisibility(View.GONE);
|
||||
|
@ -218,10 +222,9 @@ public class TimeListEdit {
|
|||
public void fillSpinner(Spinner spinner, int secondsFromMidnight, int previous, int next) {
|
||||
int posInList = 0;
|
||||
ArrayList<CharSequence> timeList = new ArrayList<>();
|
||||
DateFormat df = new SimpleDateFormat("HH:mm");
|
||||
int pos = 0;
|
||||
for (int t = previous + ONEHOURINSECONDS; t < next; t += ONEHOURINSECONDS) {
|
||||
timeList.add(df.format(DateUtil.toDate(t)));
|
||||
timeList.add(DateUtil.timeString(DateUtil.toDate(t)));
|
||||
if (secondsFromMidnight == t) posInList = pos;
|
||||
pos++;
|
||||
}
|
||||
|
@ -326,10 +329,9 @@ public class TimeListEdit {
|
|||
}
|
||||
|
||||
void log() {
|
||||
DateFormat df = new SimpleDateFormat("HH:mm");
|
||||
for (int i = 0; i < data1.length(); i++) {
|
||||
int pos = 0;
|
||||
log.debug(i + ": @" + df.format(DateUtil.toDate(secondFromMidnight(i))) + " " + value1(i) + (data2 != null ? " " + value2(i) : ""));
|
||||
log.debug(i + ": @" + DateUtil.timeString(DateUtil.toDate(secondFromMidnight(i))) + " " + value1(i) + (data2 != null ? " " + value2(i) : ""));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -110,6 +110,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:background="@color/cardColorBackground"
|
||||
android:orientation="horizontal"
|
||||
android:id="@+id/circadianpercentageprofile_baseprofilebasal_layout"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall">
|
||||
|
||||
<TextView
|
||||
|
|
|
@ -118,6 +118,7 @@
|
|||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/overview_basallayout"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
|
|
@ -89,6 +89,7 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/simpleprofile_basalrate_label"
|
||||
android:text="@string/basal_rate"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
|
|
|
@ -141,7 +141,7 @@
|
|||
<string name="openapsma_currenttemp_label">Current temp</string>
|
||||
<string name="objectives_gate_label_string">Gate:</string>
|
||||
<string name="objectives_objective_label_string">Objective:</string>
|
||||
<string name="objectives">Objectives</string>
|
||||
<string name="objectives">Zielsetzungen</string>
|
||||
<string name="nsprofileview_noprofile_text">KEIN PROFIL GESETZT</string>
|
||||
<string name="nsclientnotinstalled">NSClient nicht installiert. Record lost!</string>
|
||||
<string name="ns_sync_use_absolute_title">Verwende absolute statt prozentuelle Basalwerte beim Upload zu NightScout</string>
|
||||
|
@ -161,7 +161,6 @@
|
|||
<string name="careportal_newnstreatment_enteredby_title">Eingegeben durch</string>
|
||||
<string name="careportal_newnstreatment_other">Anderes</string>
|
||||
<string name="careportal_newnstreatment_split_label">Split</string>
|
||||
<string name="configbuilder">Konfigurations Builder</string>
|
||||
<string name="configbuilder_constraints">Constraints</string>
|
||||
<string name="configbuilder_general">Generell</string>
|
||||
<string name="configbuilder_treatments">Treatments</string>
|
||||
|
@ -204,7 +203,7 @@
|
|||
<string name="comment">Kommentar</string>
|
||||
<string name="connected">Verbunden</string>
|
||||
<string name="connecting">Verbinden</string>
|
||||
<string name="connectionerror">Puempen Verbindungsfehler</string>
|
||||
<string name="connectionerror">Pumpen Verbindungsfehler</string>
|
||||
<string name="danar_bt_name_title">DanaR Blueetooth Gerät</string>
|
||||
<string name="danar_iob_label">Pumpen IOB:</string>
|
||||
<string name="danar_pump_settings">DanaR Pumpen Einstellungen</string>
|
||||
|
@ -222,15 +221,14 @@
|
|||
<string name="danar_viewprofile">Profil anzeigen</string>
|
||||
<string name="danarprofile">DanaR Profil Einstellungen</string>
|
||||
<string name="danarprofile_dia">DIA [h]</string>
|
||||
<string name="danarprofile_car">Carbs absorption rate</string>
|
||||
<string name="danarprofile_car">Kohlehydrahte Absorptionsrate</string>
|
||||
<string name="glucosetype_manual">Manuell</string>
|
||||
<string name="danar_dailyunits">Einheiten (Tag)</string>
|
||||
<string name="danar_invalidinput">ungültige Eingabe</string>
|
||||
<string name="danar_valuenotsetproperly">Wert nicht korrekt gesetzt</string>
|
||||
<string name="devicenotfound">ausgewähltes Gerät nicht gefunden</string>
|
||||
<string name="dismiss">ABWEISEN</string>
|
||||
<string name="enacted">Verordnet</string>
|
||||
<string name="end_user_license_agreement">Einbenutzervereinbarung</string>
|
||||
<string name="dismiss">VERWERFEN</string>
|
||||
<string name="end_user_license_agreement">Endbenutzervereinbarung</string>
|
||||
<string name="end_user_license_agreement_i_understand">Ich verstehe und stimme zu</string>
|
||||
<string name="end_user_license_agreement_text">darf nicht eingestzt werden um med. Eintscheidungen zu treffen</string>
|
||||
<string name="failedupdatebasalprofile">Fehler beim aktualisieren der Basalrate</string>
|
||||
|
@ -257,9 +255,9 @@
|
|||
<string name="danar_history_alarm">Alarme</string>
|
||||
<string name="danar_history_bolus">Bolus</string>
|
||||
<string name="danar_history_carbohydrates">Kohlenhydrate</string>
|
||||
<string name="danar_history_dailyinsulin">Inslin-Tagesmengen</string>
|
||||
<string name="danar_history_dailyinsulin">Insulin-Tagesmengen</string>
|
||||
<string name="danar_history_errors">Fehler</string>
|
||||
<string name="danar_history_glucose">Glucose</string>
|
||||
<string name="danar_history_glucose">Glukose</string>
|
||||
<string name="danar_history_refill">Füllmenge</string>
|
||||
<string name="danar_history_syspend">Unterbrechungen</string>
|
||||
<string name="danar_password">Pumpen-Passwort</string>
|
||||
|
@ -279,7 +277,7 @@
|
|||
<string name="actions">Aktionen</string>
|
||||
<string name="androidaps_start">Android APS gestartet</string>
|
||||
<string name="disabledloop">Loop deaktiviert</string>
|
||||
<string name="fillbolus_title">Füllbolus-Standardmengen</string>
|
||||
<string name="fillbolus_title">Vorfüll-Standardmengen</string>
|
||||
<string name="fillwarning">Bitte vergewissern Sie sich, dass die Menge der Spezifikation des Katheters entspricht.</string>
|
||||
<string name="ns_upload_only">Zu NightScout nur hochladen (kein sync)</string>
|
||||
<string name="ns_upload_only_enabled">Bitte deaktivieren Sie \"Zu NightScout nur hochladen\" um dieses Feature zu nutzen.</string>
|
||||
|
@ -288,7 +286,30 @@
|
|||
<string name="occlusion">Verstopfung</string>
|
||||
<string name="overview_bolusprogress_delivered">Abgegeben</string>
|
||||
<string name="overview_bolusprogress_goingtodeliver">%.2fU werden abgegeben werden</string>
|
||||
<string name="primefill">Füllen</string>
|
||||
<string name="primefill">Vorfüllen / Füllen</string>
|
||||
<string name="uploading">Hochladen</string>
|
||||
<string name="es_lang">Spanish</string>
|
||||
<string name="basal_rate">Basalrate:</string>
|
||||
<string name="base_profile_label">Basisprofil:</string>
|
||||
<string name="batterydischarged">Pumpenbatterie entladen</string>
|
||||
<string name="androidaps_tempbasalendnote">Basal Temp Ende</string>
|
||||
<string name="danar_historyreload">neu laden</string>
|
||||
<string name="high_mark">Hoch Markierung</string>
|
||||
<string name="low_mark">Niedrig Markierung</string>
|
||||
<string name="lowbattery">Niedrige Batterie</string>
|
||||
<string name="pumpbusy">Pumpe ist beschäftigt</string>
|
||||
<string name="pumperror">Pumpenfehler</string>
|
||||
<string name="send_to_pump">an Pumpe senden</string>
|
||||
<string name="target_range">Zielbereich:</string>
|
||||
<string name="units">Einheiten:</string>
|
||||
<string name="wrongpumpdriverselected">Falscher Pumpentreiber ausgewählt</string>
|
||||
<string name="danar_refill">Befüllen</string>
|
||||
<string name="danar_disableeasymode">EasyUI mode in Pumpe deaktivieren</string>
|
||||
<string name="danar_basalhour">Basal-Stunde</string>
|
||||
<string name="button1">Knopf 1</string>
|
||||
<string name="button2">Knopf 2</string>
|
||||
<string name="button3">Knopf 3</string>
|
||||
<string name="absorption_rate">Absorptionsrate:</string>
|
||||
<string name="configbuilder">Config Builder</string>
|
||||
<string name="minago">vor %d min</string>
|
||||
</resources>
|
||||
|
|
|
@ -391,6 +391,7 @@
|
|||
<string name="sms_actualbg">BG:</string>
|
||||
<string name="sms_lastbg">Last BG:</string>
|
||||
<string name="mdi">MDI</string>
|
||||
<string name="MM640g">MM640g</string>
|
||||
<string name="ongoingnotificaction">Ongoing Notification</string>
|
||||
<string name="old_data">OLD DATA</string>
|
||||
<string name="minago">%dmin ago</string>
|
||||
|
|
Loading…
Reference in a new issue