allow profile to be null
This commit is contained in:
parent
9a1d7b2c9f
commit
4f43feb12e
27 changed files with 190 additions and 270 deletions
|
@ -96,7 +96,7 @@ public class DataService extends IntentService {
|
||||||
dexcomG5Enabled = true;
|
dexcomG5Enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean isNSProfile = ConfigBuilderPlugin.getActiveProfileInterface().getClass().equals(NSProfilePlugin.class);
|
boolean isNSProfile = MainApp.getConfigBuilder().getActiveProfileInterface().getClass().equals(NSProfilePlugin.class);
|
||||||
|
|
||||||
boolean acceptNSData = !SP.getBoolean(R.string.key_ns_upload_only, false);
|
boolean acceptNSData = !SP.getBoolean(R.string.key_ns_upload_only, false);
|
||||||
Bundle bundles = intent.getExtras();
|
Bundle bundles = intent.getExtras();
|
||||||
|
|
|
@ -78,53 +78,12 @@ public class Profile {
|
||||||
if (json.has("timezone"))
|
if (json.has("timezone"))
|
||||||
timeZone = TimeZone.getTimeZone(json.getString("timezone"));
|
timeZone = TimeZone.getTimeZone(json.getString("timezone"));
|
||||||
isf = json.getJSONArray("sens");
|
isf = json.getJSONArray("sens");
|
||||||
if (getIsf(0) == null) {
|
|
||||||
int defaultISF = units.equals(Constants.MGDL) ? 400 : 20;
|
|
||||||
isf = new JSONArray("[{\"time\":\"00:00\",\"value\":\"" + defaultISF + "\",\"timeAsSeconds\":\"0\"}]");
|
|
||||||
Notification noisf = new Notification(Notification.ISF_MISSING, MainApp.sResources.getString(R.string.isfmissing), Notification.URGENT);
|
|
||||||
MainApp.bus().post(new EventNewNotification(noisf));
|
|
||||||
} else {
|
|
||||||
MainApp.bus().post(new EventDismissNotification(Notification.ISF_MISSING));
|
|
||||||
}
|
|
||||||
ic = json.getJSONArray("carbratio");
|
ic = json.getJSONArray("carbratio");
|
||||||
if (getIc(0) == null) {
|
|
||||||
int defaultIC = 25;
|
|
||||||
ic = new JSONArray("[{\"time\":\"00:00\",\"value\":\"" + defaultIC + "\",\"timeAsSeconds\":\"0\"}]");
|
|
||||||
Notification noic = new Notification(Notification.IC_MISSING, MainApp.sResources.getString(R.string.icmissing), Notification.URGENT);
|
|
||||||
MainApp.bus().post(new EventNewNotification(noic));
|
|
||||||
} else {
|
|
||||||
MainApp.bus().post(new EventDismissNotification(Notification.IC_MISSING));
|
|
||||||
}
|
|
||||||
basal = json.getJSONArray("basal");
|
basal = json.getJSONArray("basal");
|
||||||
if (getBasal(0) == null) {
|
|
||||||
double defaultBasal = 0.1d;
|
|
||||||
basal = new JSONArray("[{\"time\":\"00:00\",\"value\":\"" + defaultBasal + "\",\"timeAsSeconds\":\"0\"}]");
|
|
||||||
Notification nobasal = new Notification(Notification.BASAL_MISSING, MainApp.sResources.getString(R.string.basalmissing), Notification.URGENT);
|
|
||||||
MainApp.bus().post(new EventNewNotification(nobasal));
|
|
||||||
} else {
|
|
||||||
MainApp.bus().post(new EventDismissNotification(Notification.BASAL_MISSING));
|
|
||||||
}
|
|
||||||
targetLow = json.getJSONArray("target_low");
|
targetLow = json.getJSONArray("target_low");
|
||||||
if (getTargetLow(0) == null) {
|
|
||||||
double defaultLow = units.equals(Constants.MGDL) ? 120 : 6;
|
|
||||||
targetLow = new JSONArray("[{\"time\":\"00:00\",\"value\":\"" + defaultLow + "\",\"timeAsSeconds\":\"0\"}]");
|
|
||||||
Notification notarget = new Notification(Notification.TARGET_MISSING, MainApp.sResources.getString(R.string.targetmissing), Notification.URGENT);
|
|
||||||
MainApp.bus().post(new EventNewNotification(notarget));
|
|
||||||
} else {
|
|
||||||
MainApp.bus().post(new EventDismissNotification(Notification.TARGET_MISSING));
|
|
||||||
}
|
|
||||||
targetHigh = json.getJSONArray("target_high");
|
targetHigh = json.getJSONArray("target_high");
|
||||||
if (getTargetHigh(0) == null) {
|
|
||||||
double defaultHigh = units.equals(Constants.MGDL) ? 160 : 8;
|
|
||||||
targetHigh = new JSONArray("[{\"time\":\"00:00\",\"value\":\"" + defaultHigh + "\",\"timeAsSeconds\":\"0\"}]");
|
|
||||||
Notification notarget = new Notification(Notification.TARGET_MISSING, MainApp.sResources.getString(R.string.targetmissing), Notification.URGENT);
|
|
||||||
MainApp.bus().post(new EventNewNotification(notarget));
|
|
||||||
} else {
|
|
||||||
MainApp.bus().post(new EventDismissNotification(Notification.TARGET_MISSING));
|
|
||||||
}
|
|
||||||
} catch (JSONException e) {
|
} catch (JSONException e) {
|
||||||
log.error("Unhandled exception", e);
|
log.error("Unhandled exception", e);
|
||||||
ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.invalidprofile));
|
|
||||||
isValid = false;
|
isValid = false;
|
||||||
isValidated = true;
|
isValidated = true;
|
||||||
}
|
}
|
||||||
|
@ -164,6 +123,11 @@ public class Profile {
|
||||||
}
|
}
|
||||||
|
|
||||||
private LongSparseArray<Double> convertToSparseArray(JSONArray array) {
|
private LongSparseArray<Double> convertToSparseArray(JSONArray array) {
|
||||||
|
if (array == null) {
|
||||||
|
isValid = false;
|
||||||
|
return new LongSparseArray<>();
|
||||||
|
}
|
||||||
|
|
||||||
double multiplier = getMultiplier(array);
|
double multiplier = getMultiplier(array);
|
||||||
|
|
||||||
LongSparseArray<Double> sparse = new LongSparseArray<>();
|
LongSparseArray<Double> sparse = new LongSparseArray<>();
|
||||||
|
@ -379,6 +343,8 @@ public class Profile {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getIsfList() {
|
public String getIsfList() {
|
||||||
|
if (isf_v == null)
|
||||||
|
isf_v = convertToSparseArray(isf);
|
||||||
return getValuesList(isf_v, null, new DecimalFormat("0.0"), getUnits() + "/U");
|
return getValuesList(isf_v, null, new DecimalFormat("0.0"), getUnits() + "/U");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -397,6 +363,8 @@ public class Profile {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getIcList() {
|
public String getIcList() {
|
||||||
|
if (ic_v == null)
|
||||||
|
ic_v = convertToSparseArray(ic);
|
||||||
return getValuesList(ic_v, null, new DecimalFormat("0.0"), " g/U");
|
return getValuesList(ic_v, null, new DecimalFormat("0.0"), " g/U");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -481,6 +449,10 @@ public class Profile {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTargetList() {
|
public String getTargetList() {
|
||||||
|
if (targetLow_v == null)
|
||||||
|
targetLow_v = convertToSparseArray(targetLow);
|
||||||
|
if (targetHigh_v == null)
|
||||||
|
targetHigh_v = convertToSparseArray(targetHigh);
|
||||||
return getValuesList(targetLow_v, targetHigh_v, new DecimalFormat("0.0"), getUnits());
|
return getValuesList(targetLow_v, targetHigh_v, new DecimalFormat("0.0"), getUnits());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,10 +3,14 @@ package info.nightscout.androidaps.data;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v4.util.LongSparseArray;
|
import android.support.v4.util.LongSparseArray;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import info.nightscout.androidaps.interfaces.Interval;
|
import info.nightscout.androidaps.interfaces.Interval;
|
||||||
|
import info.nightscout.utils.DateUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by mike on 09.05.2017.
|
* Created by mike on 09.05.2017.
|
||||||
|
@ -16,6 +20,7 @@ import info.nightscout.androidaps.interfaces.Interval;
|
||||||
// When no interval match the lastest record without duration is used
|
// When no interval match the lastest record without duration is used
|
||||||
|
|
||||||
public class ProfileIntervals<T extends Interval> {
|
public class ProfileIntervals<T extends Interval> {
|
||||||
|
private static Logger log = LoggerFactory.getLogger(ProfileIntervals.class);
|
||||||
|
|
||||||
private LongSparseArray<T> rawData = new LongSparseArray<>(); // oldest at index 0
|
private LongSparseArray<T> rawData = new LongSparseArray<>(); // oldest at index 0
|
||||||
|
|
||||||
|
@ -51,6 +56,11 @@ public class ProfileIntervals<T extends Interval> {
|
||||||
public synchronized Interval getValueToTime(long time) {
|
public synchronized Interval getValueToTime(long time) {
|
||||||
int index = binarySearch(time);
|
int index = binarySearch(time);
|
||||||
if (index >= 0) return rawData.valueAt(index);
|
if (index >= 0) return rawData.valueAt(index);
|
||||||
|
// if we request data older than first record, use oldest instead
|
||||||
|
if (rawData.size() > 0) {
|
||||||
|
log.debug("Requested profile for time: " + DateUtil.dateAndTimeString(time) + ". Providing oldest record: " + rawData.valueAt(0).toString());
|
||||||
|
return rawData.valueAt(0);
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1709,7 +1709,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
|
||||||
if (trJson.has("profileJson"))
|
if (trJson.has("profileJson"))
|
||||||
profileSwitch.profileJson = trJson.getString("profileJson");
|
profileSwitch.profileJson = trJson.getString("profileJson");
|
||||||
else {
|
else {
|
||||||
ProfileStore store = ConfigBuilderPlugin.getActiveProfileInterface().getProfile();
|
ProfileStore store = MainApp.getConfigBuilder().getActiveProfileInterface().getProfile();
|
||||||
Profile profile = store.getSpecificProfile(profileSwitch.profileName);
|
Profile profile = store.getSpecificProfile(profileSwitch.profileName);
|
||||||
if (profile != null) {
|
if (profile != null) {
|
||||||
profileSwitch.profileJson = profile.getData().toString();
|
profileSwitch.profileJson = profile.getData().toString();
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class CareportalFragment extends SubscriberFragment implements View.OnCli
|
||||||
noProfileView = view.findViewById(R.id.profileview_noprofile);
|
noProfileView = view.findViewById(R.id.profileview_noprofile);
|
||||||
butonsLayout = (LinearLayout) view.findViewById(R.id.careportal_buttons);
|
butonsLayout = (LinearLayout) view.findViewById(R.id.careportal_buttons);
|
||||||
|
|
||||||
ProfileStore profileStore = ConfigBuilderPlugin.getActiveProfileInterface().getProfile();
|
ProfileStore profileStore = MainApp.getConfigBuilder().getActiveProfileInterface().getProfile();
|
||||||
if (profileStore == null) {
|
if (profileStore == null) {
|
||||||
noProfileView.setVisibility(View.VISIBLE);
|
noProfileView.setVisibility(View.VISIBLE);
|
||||||
butonsLayout.setVisibility(View.GONE);
|
butonsLayout.setVisibility(View.GONE);
|
||||||
|
|
|
@ -59,6 +59,7 @@ import info.nightscout.utils.FabricPrivacy;
|
||||||
import info.nightscout.utils.DateUtil;
|
import info.nightscout.utils.DateUtil;
|
||||||
import info.nightscout.utils.NSUpload;
|
import info.nightscout.utils.NSUpload;
|
||||||
import info.nightscout.utils.NumberPicker;
|
import info.nightscout.utils.NumberPicker;
|
||||||
|
import info.nightscout.utils.OKDialog;
|
||||||
import info.nightscout.utils.SP;
|
import info.nightscout.utils.SP;
|
||||||
import info.nightscout.utils.SafeParse;
|
import info.nightscout.utils.SafeParse;
|
||||||
import info.nightscout.utils.Translator;
|
import info.nightscout.utils.Translator;
|
||||||
|
@ -73,7 +74,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
|
||||||
|
|
||||||
Profile profile;
|
Profile profile;
|
||||||
ProfileStore profileStore;
|
ProfileStore profileStore;
|
||||||
String units;
|
String units = Constants.MGDL;
|
||||||
|
|
||||||
TextView eventTypeText;
|
TextView eventTypeText;
|
||||||
LinearLayout layoutPercent;
|
LinearLayout layoutPercent;
|
||||||
|
@ -168,19 +169,24 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
|
||||||
|
|
||||||
// profile
|
// profile
|
||||||
profile = MainApp.getConfigBuilder().getProfile();
|
profile = MainApp.getConfigBuilder().getProfile();
|
||||||
profileStore = ConfigBuilderPlugin.getActiveProfileInterface().getProfile();
|
profileStore = MainApp.getConfigBuilder().getActiveProfileInterface().getProfile();
|
||||||
ArrayList<CharSequence> profileList;
|
if (profileStore == null) {
|
||||||
units = profile != null ? profile.getUnits() : Constants.MGDL;
|
if (options.eventType == R.id.careportal_profileswitch) {
|
||||||
profileList = profileStore.getProfileList();
|
log.error("Profile switch called but plugin doesn't contain valid profile");
|
||||||
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(getContext(),
|
}
|
||||||
R.layout.spinner_centered, profileList);
|
} else {
|
||||||
profileSpinner.setAdapter(adapter);
|
ArrayList<CharSequence> profileList;
|
||||||
// set selected to actual profile
|
units = profile != null ? profile.getUnits() : Constants.MGDL;
|
||||||
for (int p = 0; p < profileList.size(); p++) {
|
profileList = profileStore.getProfileList();
|
||||||
if (profileList.get(p).equals(MainApp.getConfigBuilder().getProfileName(false)))
|
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<>(getContext(),
|
||||||
profileSpinner.setSelection(p);
|
R.layout.spinner_centered, profileList);
|
||||||
|
profileSpinner.setAdapter(adapter);
|
||||||
|
// set selected to actual profile
|
||||||
|
for (int p = 0; p < profileList.size(); p++) {
|
||||||
|
if (profileList.get(p).equals(MainApp.getConfigBuilder().getProfileName(false)))
|
||||||
|
profileSpinner.setSelection(p);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final Double bg = Profile.fromMgdlToUnits(GlucoseStatus.getGlucoseStatusData() != null ? GlucoseStatus.getGlucoseStatusData().glucose : 0d, units);
|
final Double bg = Profile.fromMgdlToUnits(GlucoseStatus.getGlucoseStatusData() != null ? GlucoseStatus.getGlucoseStatusData().glucose : 0d, units);
|
||||||
|
|
||||||
// temp target
|
// temp target
|
||||||
|
@ -720,7 +726,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
|
||||||
profileSwitch.source = Source.USER;
|
profileSwitch.source = Source.USER;
|
||||||
profileSwitch.profileName = profileName;
|
profileSwitch.profileName = profileName;
|
||||||
profileSwitch.profileJson = profileStore.getSpecificProfile(profileName).getData().toString();
|
profileSwitch.profileJson = profileStore.getSpecificProfile(profileName).getData().toString();
|
||||||
profileSwitch.profilePlugin = ConfigBuilderPlugin.getActiveProfileInterface().getClass().getName();
|
profileSwitch.profilePlugin = MainApp.getConfigBuilder().getActiveProfileInterface().getClass().getName();
|
||||||
profileSwitch.durationInMinutes = duration;
|
profileSwitch.durationInMinutes = duration;
|
||||||
profileSwitch.isCPP = percentage != 100 || timeshift != 0;
|
profileSwitch.isCPP = percentage != 100 || timeshift != 0;
|
||||||
profileSwitch.timeshift = timeshift;
|
profileSwitch.timeshift = timeshift;
|
||||||
|
@ -752,7 +758,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
|
||||||
profileSwitch.source = Source.USER;
|
profileSwitch.source = Source.USER;
|
||||||
profileSwitch.profileName = MainApp.getConfigBuilder().getProfileName(System.currentTimeMillis(), false);
|
profileSwitch.profileName = MainApp.getConfigBuilder().getProfileName(System.currentTimeMillis(), false);
|
||||||
profileSwitch.profileJson = MainApp.getConfigBuilder().getProfile().getData().toString();
|
profileSwitch.profileJson = MainApp.getConfigBuilder().getProfile().getData().toString();
|
||||||
profileSwitch.profilePlugin = ConfigBuilderPlugin.getActiveProfileInterface().getClass().getName();
|
profileSwitch.profilePlugin = MainApp.getConfigBuilder().getActiveProfileInterface().getClass().getName();
|
||||||
profileSwitch.durationInMinutes = duration;
|
profileSwitch.durationInMinutes = duration;
|
||||||
profileSwitch.isCPP = percentage != 100 || timeshift != 0;
|
profileSwitch.isCPP = percentage != 100 || timeshift != 0;
|
||||||
profileSwitch.timeshift = timeshift;
|
profileSwitch.timeshift = timeshift;
|
||||||
|
|
|
@ -200,7 +200,7 @@ public class ConfigBuilderPlugin implements PluginBase, ConstraintsInterface, Tr
|
||||||
return activeBgSource;
|
return activeBgSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ProfileInterface getActiveProfileInterface() {
|
public ProfileInterface getActiveProfileInterface() {
|
||||||
return activeProfile;
|
return activeProfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -760,33 +760,21 @@ public class ConfigBuilderPlugin implements PluginBase, ConstraintsInterface, Tr
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getProfileName(long time, boolean customized) {
|
public String getProfileName(long time, boolean customized) {
|
||||||
boolean ignoreProfileSwitchEvents = SP.getBoolean(R.string.key_do_not_track_profile_switch, false);
|
ProfileSwitch profileSwitch = getProfileSwitchFromHistory(time);
|
||||||
if (!ignoreProfileSwitchEvents) {
|
if (profileSwitch != null) {
|
||||||
ProfileSwitch profileSwitch = getProfileSwitchFromHistory(time);
|
if (profileSwitch.profileJson != null) {
|
||||||
if (profileSwitch != null) {
|
return customized ? profileSwitch.getCustomizedName() : profileSwitch.profileName;
|
||||||
if (profileSwitch.profileJson != null) {
|
} else {
|
||||||
return customized ? profileSwitch.getCustomizedName() : profileSwitch.profileName;
|
Profile profile = activeProfile.getProfile().getSpecificProfile(profileSwitch.profileName);
|
||||||
} else {
|
if (profile != null)
|
||||||
Profile profile = activeProfile.getProfile().getSpecificProfile(profileSwitch.profileName);
|
return profileSwitch.profileName;
|
||||||
if (profile != null)
|
|
||||||
return profileSwitch.profileName;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Unable to determine profile, failover to default
|
return MainApp.gs(R.string.noprofileselected);
|
||||||
String defaultProfile = activeProfile.getProfile().getDefaultProfileName();
|
|
||||||
if (defaultProfile != null)
|
|
||||||
return defaultProfile;
|
|
||||||
// If default from plugin fails .... create empty
|
|
||||||
return "Default";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isProfileValid(String from) {
|
public boolean isProfileValid(String from) {
|
||||||
return getProfile() != null && getProfile().isValid(from) &&
|
return getProfile() != null && getProfile().isValid(from);
|
||||||
activeProfile != null &&
|
|
||||||
activeProfile.getProfile() != null &&
|
|
||||||
activeProfile.getProfile().getDefaultProfile() != null &&
|
|
||||||
activeProfile.getProfile().getDefaultProfile().isValid(from);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -806,41 +794,16 @@ public class ConfigBuilderPlugin implements PluginBase, ConstraintsInterface, Tr
|
||||||
return null; //app not initialized
|
return null; //app not initialized
|
||||||
}
|
}
|
||||||
//log.debug("Profile for: " + new Date(time).toLocaleString() + " : " + getProfileName(time));
|
//log.debug("Profile for: " + new Date(time).toLocaleString() + " : " + getProfileName(time));
|
||||||
boolean ignoreProfileSwitchEvents = SP.getBoolean(R.string.key_do_not_track_profile_switch, false);
|
ProfileSwitch profileSwitch = getProfileSwitchFromHistory(time);
|
||||||
if (!ignoreProfileSwitchEvents) {
|
if (profileSwitch != null) {
|
||||||
ProfileSwitch profileSwitch = getProfileSwitchFromHistory(time);
|
if (profileSwitch.profileJson != null) {
|
||||||
if (profileSwitch != null) {
|
return profileSwitch.getProfileObject();
|
||||||
if (profileSwitch.profileJson != null) {
|
} else if (activeProfile.getProfile() != null) {
|
||||||
return profileSwitch.getProfileObject();
|
Profile profile = activeProfile.getProfile().getSpecificProfile(profileSwitch.profileName);
|
||||||
} else if (activeProfile.getProfile() != null) {
|
if (profile != null)
|
||||||
Profile profile = activeProfile.getProfile().getSpecificProfile(profileSwitch.profileName);
|
return profile;
|
||||||
if (profile != null)
|
|
||||||
return profile;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Unable to determine profile, failover to default
|
|
||||||
if (activeProfile.getProfile() == null) {
|
|
||||||
log.debug("getProfile activeProfile.getProfile() == null: returning null (activeProfile=" + activeProfile.getClass().getSimpleName() + ")");
|
|
||||||
return null; //app not initialized
|
|
||||||
}
|
|
||||||
Profile defaultProfile = activeProfile.getProfile().getDefaultProfile();
|
|
||||||
if (defaultProfile != null)
|
|
||||||
return defaultProfile;
|
|
||||||
// If default from plugin fails .... create empty
|
|
||||||
try {
|
|
||||||
Notification noisf = new Notification(Notification.ISF_MISSING, MainApp.sResources.getString(R.string.isfmissing), Notification.URGENT);
|
|
||||||
MainApp.bus().post(new EventNewNotification(noisf));
|
|
||||||
Notification noic = new Notification(Notification.IC_MISSING, MainApp.sResources.getString(R.string.icmissing), Notification.URGENT);
|
|
||||||
MainApp.bus().post(new EventNewNotification(noic));
|
|
||||||
Notification nobasal = new Notification(Notification.BASAL_MISSING, MainApp.sResources.getString(R.string.basalmissing), Notification.URGENT);
|
|
||||||
MainApp.bus().post(new EventNewNotification(nobasal));
|
|
||||||
Notification notarget = new Notification(Notification.TARGET_MISSING, MainApp.sResources.getString(R.string.targetmissing), Notification.URGENT);
|
|
||||||
MainApp.bus().post(new EventNewNotification(notarget));
|
|
||||||
return new Profile(new JSONObject("{\"dia\":\"3\",\"carbratio\":[{\"time\":\"00:00\",\"value\":\"20\"}],\"carbs_hr\":\"20\",\"delay\":\"20\",\"sens\":[{\"time\":\"00:00\",\"value\":\"20\"}],\"timezone\":\"UTC\",\"basal\":[{\"time\":\"00:00\",\"value\":\"0.1\"}],\"target_low\":[{\"time\":\"00:00\",\"value\":\"6\"}],\"target_high\":[{\"time\":\"00:00\",\"value\":\"8\"}],\"startDate\":\"1970-01-01T00:00:00.000Z\",\"units\":\"mmol\"}}"), 100, 0);
|
|
||||||
} catch (JSONException e) {
|
|
||||||
log.error("Unhandled exception", e);
|
|
||||||
}
|
|
||||||
log.debug("getProfile at the end: returning null");
|
log.debug("getProfile at the end: returning null");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -400,7 +400,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
|
||||||
|
|
||||||
private void initDialog() {
|
private void initDialog() {
|
||||||
Profile profile = MainApp.getConfigBuilder().getProfile();
|
Profile profile = MainApp.getConfigBuilder().getProfile();
|
||||||
ProfileStore profileStore = ConfigBuilderPlugin.getActiveProfileInterface().getProfile();
|
ProfileStore profileStore = MainApp.getConfigBuilder().getActiveProfileInterface().getProfile();
|
||||||
|
|
||||||
if (profile == null) {
|
if (profile == null) {
|
||||||
ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.noprofile));
|
ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.noprofile));
|
||||||
|
@ -444,7 +444,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calculateInsulin() {
|
private void calculateInsulin() {
|
||||||
ProfileStore profileStore = ConfigBuilderPlugin.getActiveProfileInterface().getProfile();
|
ProfileStore profileStore = MainApp.getConfigBuilder().getActiveProfileInterface().getProfile();
|
||||||
if (profileSpinner == null || profileSpinner.getSelectedItem() == null || profileStore == null)
|
if (profileSpinner == null || profileSpinner.getSelectedItem() == null || profileStore == null)
|
||||||
return; // not initialized yet
|
return; // not initialized yet
|
||||||
String selectedAlternativeProfile = profileSpinner.getSelectedItem().toString();
|
String selectedAlternativeProfile = profileSpinner.getSelectedItem().toString();
|
||||||
|
|
|
@ -187,7 +187,9 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
|
||||||
|
|
||||||
final Object updateSync = new Object();
|
final Object updateSync = new Object();
|
||||||
|
|
||||||
public enum CHARTTYPE {PRE,BAS, IOB, COB, DEV, SEN};
|
public enum CHARTTYPE {PRE, BAS, IOB, COB, DEV, SEN}
|
||||||
|
|
||||||
|
;
|
||||||
private static final ScheduledExecutorService worker = Executors.newSingleThreadScheduledExecutor();
|
private static final ScheduledExecutorService worker = Executors.newSingleThreadScheduledExecutor();
|
||||||
private static ScheduledFuture<?> scheduledUpdate = null;
|
private static ScheduledFuture<?> scheduledUpdate = null;
|
||||||
|
|
||||||
|
@ -344,7 +346,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
|
||||||
SpannableString s;
|
SpannableString s;
|
||||||
PopupMenu popup = new PopupMenu(v.getContext(), v);
|
PopupMenu popup = new PopupMenu(v.getContext(), v);
|
||||||
|
|
||||||
if(predictionsAvailable) {
|
if (predictionsAvailable) {
|
||||||
item = popup.getMenu().add(Menu.NONE, CHARTTYPE.PRE.ordinal(), Menu.NONE, "Predictions");
|
item = popup.getMenu().add(Menu.NONE, CHARTTYPE.PRE.ordinal(), Menu.NONE, "Predictions");
|
||||||
title = item.getTitle();
|
title = item.getTitle();
|
||||||
s = new SpannableString(title);
|
s = new SpannableString(title);
|
||||||
|
@ -464,7 +466,9 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
|
||||||
} else if (v == activeProfileView) {
|
} else if (v == activeProfileView) {
|
||||||
menu.setHeaderTitle(MainApp.sResources.getString(R.string.profile));
|
menu.setHeaderTitle(MainApp.sResources.getString(R.string.profile));
|
||||||
menu.add(MainApp.sResources.getString(R.string.danar_viewprofile));
|
menu.add(MainApp.sResources.getString(R.string.danar_viewprofile));
|
||||||
menu.add(MainApp.sResources.getString(R.string.careportal_profileswitch));
|
if (MainApp.getConfigBuilder().getActiveProfileInterface().getProfile() != null) {
|
||||||
|
menu.add(MainApp.sResources.getString(R.string.careportal_profileswitch));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,10 +42,7 @@ public class Notification {
|
||||||
public static final int APPROACHING_DAILY_LIMIT = 11;
|
public static final int APPROACHING_DAILY_LIMIT = 11;
|
||||||
public static final int NSCLIENT_NO_WRITE_PERMISSION = 12;
|
public static final int NSCLIENT_NO_WRITE_PERMISSION = 12;
|
||||||
public static final int MISSING_SMS_PERMISSION = 13;
|
public static final int MISSING_SMS_PERMISSION = 13;
|
||||||
public static final int ISF_MISSING = 14;
|
|
||||||
public static final int IC_MISSING = 15;
|
|
||||||
public static final int BASAL_MISSING = 16;
|
|
||||||
public static final int TARGET_MISSING = 17;
|
|
||||||
public static final int NSANNOUNCEMENT = 18;
|
public static final int NSANNOUNCEMENT = 18;
|
||||||
public static final int NSALARM = 19;
|
public static final int NSALARM = 19;
|
||||||
public static final int NSURGENTALARM = 20;
|
public static final int NSURGENTALARM = 20;
|
||||||
|
|
|
@ -14,47 +14,55 @@ import com.squareup.otto.Subscribe;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import butterknife.BindView;
|
||||||
|
import butterknife.ButterKnife;
|
||||||
|
import butterknife.OnItemSelected;
|
||||||
import info.nightscout.androidaps.MainApp;
|
import info.nightscout.androidaps.MainApp;
|
||||||
import info.nightscout.androidaps.R;
|
import info.nightscout.androidaps.R;
|
||||||
import info.nightscout.androidaps.data.Profile;
|
import info.nightscout.androidaps.data.Profile;
|
||||||
import info.nightscout.androidaps.data.ProfileStore;
|
import info.nightscout.androidaps.data.ProfileStore;
|
||||||
import info.nightscout.androidaps.plugins.Common.SubscriberFragment;
|
import info.nightscout.androidaps.plugins.Common.SubscriberFragment;
|
||||||
import info.nightscout.androidaps.plugins.ProfileNS.events.EventNSProfileUpdateGUI;
|
import info.nightscout.androidaps.plugins.ProfileNS.events.EventNSProfileUpdateGUI;
|
||||||
|
import info.nightscout.androidaps.plugins.Treatments.fragments.ProfileGraph;
|
||||||
import info.nightscout.utils.DecimalFormatter;
|
import info.nightscout.utils.DecimalFormatter;
|
||||||
import info.nightscout.utils.FabricPrivacy;
|
import info.nightscout.utils.FabricPrivacy;
|
||||||
|
|
||||||
|
import static butterknife.OnItemSelected.Callback.NOTHING_SELECTED;
|
||||||
|
|
||||||
public class NSProfileFragment extends SubscriberFragment implements AdapterView.OnItemSelectedListener {
|
|
||||||
private Spinner profileSpinner;
|
public class NSProfileFragment extends SubscriberFragment {
|
||||||
private TextView noProfile;
|
@BindView(R.id.nsprofile_spinner)
|
||||||
private TextView units;
|
Spinner profileSpinner;
|
||||||
private TextView dia;
|
@BindView(R.id.profileview_noprofile)
|
||||||
private TextView activeProfile;
|
TextView noProfile;
|
||||||
private TextView ic;
|
@BindView(R.id.profileview_invalidprofile)
|
||||||
private TextView isf;
|
TextView invalidProfile;
|
||||||
private TextView basal;
|
@BindView(R.id.profileview_units)
|
||||||
private TextView target;
|
TextView units;
|
||||||
|
@BindView(R.id.profileview_dia)
|
||||||
|
TextView dia;
|
||||||
|
@BindView(R.id.profileview_activeprofile)
|
||||||
|
TextView activeProfile;
|
||||||
|
@BindView(R.id.profileview_ic)
|
||||||
|
TextView ic;
|
||||||
|
@BindView(R.id.profileview_isf)
|
||||||
|
TextView isf;
|
||||||
|
@BindView(R.id.profileview_basal)
|
||||||
|
TextView basal;
|
||||||
|
@BindView(R.id.profileview_target)
|
||||||
|
TextView target;
|
||||||
|
@BindView(R.id.basal_graph)
|
||||||
|
ProfileGraph basalGraph;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
try {
|
try {
|
||||||
View layout = inflater.inflate(R.layout.nsprofile_fragment, container, false);
|
View view = inflater.inflate(R.layout.nsprofile_fragment, container, false);
|
||||||
|
|
||||||
profileSpinner = (Spinner) layout.findViewById(R.id.nsprofile_spinner);
|
|
||||||
noProfile = (TextView) layout.findViewById(R.id.profileview_noprofile);
|
|
||||||
units = (TextView) layout.findViewById(R.id.profileview_units);
|
|
||||||
dia = (TextView) layout.findViewById(R.id.profileview_dia);
|
|
||||||
activeProfile = (TextView) layout.findViewById(R.id.profileview_activeprofile);
|
|
||||||
ic = (TextView) layout.findViewById(R.id.profileview_ic);
|
|
||||||
isf = (TextView) layout.findViewById(R.id.profileview_isf);
|
|
||||||
basal = (TextView) layout.findViewById(R.id.profileview_basal);
|
|
||||||
target = (TextView) layout.findViewById(R.id.profileview_target);
|
|
||||||
|
|
||||||
profileSpinner.setOnItemSelectedListener(this);
|
|
||||||
|
|
||||||
|
unbinder = ButterKnife.bind(this, view);
|
||||||
updateGUI();
|
updateGUI();
|
||||||
return layout;
|
return view;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
FabricPrivacy.logException(e);
|
FabricPrivacy.logException(e);
|
||||||
}
|
}
|
||||||
|
@ -66,12 +74,7 @@ public class NSProfileFragment extends SubscriberFragment implements AdapterView
|
||||||
public void onStatusEvent(final EventNSProfileUpdateGUI ev) {
|
public void onStatusEvent(final EventNSProfileUpdateGUI ev) {
|
||||||
Activity activity = getActivity();
|
Activity activity = getActivity();
|
||||||
if (activity != null)
|
if (activity != null)
|
||||||
activity.runOnUiThread(new Runnable() {
|
activity.runOnUiThread(() -> updateGUI());
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
updateGUI();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -97,9 +100,9 @@ public class NSProfileFragment extends SubscriberFragment implements AdapterView
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@OnItemSelected(R.id.nsprofile_spinner)
|
||||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
public void onItemSelected(Spinner spinner, int position) {
|
||||||
String name = parent.getItemAtPosition(position).toString();
|
String name = spinner.getItemAtPosition(position).toString();
|
||||||
|
|
||||||
ProfileStore store = NSProfilePlugin.getPlugin().getProfile();
|
ProfileStore store = NSProfilePlugin.getPlugin().getProfile();
|
||||||
if (store != null) {
|
if (store != null) {
|
||||||
|
@ -112,12 +115,18 @@ public class NSProfileFragment extends SubscriberFragment implements AdapterView
|
||||||
isf.setText(profile.getIsfList());
|
isf.setText(profile.getIsfList());
|
||||||
basal.setText(profile.getBasalList());
|
basal.setText(profile.getBasalList());
|
||||||
target.setText(profile.getTargetList());
|
target.setText(profile.getTargetList());
|
||||||
|
basalGraph.show(profile);
|
||||||
}
|
}
|
||||||
|
if (profile.isValid("NSProfileFragment"))
|
||||||
|
invalidProfile.setVisibility(View.GONE);
|
||||||
|
else
|
||||||
|
invalidProfile.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@OnItemSelected(value = R.id.nsprofile_spinner, callback = NOTHING_SELECTED)
|
||||||
public void onNothingSelected(AdapterView<?> parent) {
|
public void onNothingSelected() {
|
||||||
|
invalidProfile.setVisibility(View.VISIBLE);
|
||||||
noProfile.setVisibility(View.VISIBLE);
|
noProfile.setVisibility(View.VISIBLE);
|
||||||
units.setText("");
|
units.setText("");
|
||||||
dia.setText("");
|
dia.setText("");
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class BGSourceFragment extends SubscriberFragment {
|
||||||
RecyclerViewAdapter adapter = new RecyclerViewAdapter(MainApp.getDbHelper().getAllBgreadingsDataFromTime(now - MILLS_TO_THE_PAST, false));
|
RecyclerViewAdapter adapter = new RecyclerViewAdapter(MainApp.getDbHelper().getAllBgreadingsDataFromTime(now - MILLS_TO_THE_PAST, false));
|
||||||
recyclerView.setAdapter(adapter);
|
recyclerView.setAdapter(adapter);
|
||||||
|
|
||||||
profile = ConfigBuilderPlugin.getActiveProfileInterface().getProfile().getDefaultProfile();
|
profile = MainApp.getConfigBuilder().getActiveProfileInterface().getProfile().getDefaultProfile();
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
|
@ -12,6 +12,9 @@ import android.widget.TextView;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import butterknife.BindView;
|
||||||
|
import butterknife.ButterKnife;
|
||||||
|
import butterknife.Unbinder;
|
||||||
import info.nightscout.androidaps.MainApp;
|
import info.nightscout.androidaps.MainApp;
|
||||||
import info.nightscout.androidaps.R;
|
import info.nightscout.androidaps.R;
|
||||||
import info.nightscout.androidaps.data.Profile;
|
import info.nightscout.androidaps.data.Profile;
|
||||||
|
@ -30,19 +33,36 @@ public class ProfileViewerDialog extends DialogFragment {
|
||||||
|
|
||||||
private static Logger log = LoggerFactory.getLogger(ProfileViewDialog.class);
|
private static Logger log = LoggerFactory.getLogger(ProfileViewDialog.class);
|
||||||
|
|
||||||
private TextView noProfile;
|
@BindView(R.id.profileview_noprofile)
|
||||||
private TextView units;
|
TextView noProfile;
|
||||||
private TextView dia;
|
@BindView(R.id.profileview_invalidprofile)
|
||||||
private TextView activeProfile;
|
TextView invalidProfile;
|
||||||
private TextView ic;
|
@BindView(R.id.profileview_units)
|
||||||
private TextView isf;
|
TextView units;
|
||||||
private TextView basal;
|
@BindView(R.id.profileview_dia)
|
||||||
private TextView target;
|
TextView dia;
|
||||||
private View dateDelimiter;
|
@BindView(R.id.profileview_activeprofile)
|
||||||
private LinearLayout dateLayout;
|
TextView activeProfile;
|
||||||
private TextView dateTextView;
|
@BindView(R.id.profileview_ic)
|
||||||
private Button refreshButton;
|
TextView ic;
|
||||||
private ProfileGraph basalGraph;
|
@BindView(R.id.profileview_isf)
|
||||||
|
TextView isf;
|
||||||
|
@BindView(R.id.profileview_basal)
|
||||||
|
TextView basal;
|
||||||
|
@BindView(R.id.profileview_target)
|
||||||
|
TextView target;
|
||||||
|
@BindView(R.id.profileview_datedelimiter)
|
||||||
|
View dateDelimiter;
|
||||||
|
@BindView(R.id.profileview_datelayout)
|
||||||
|
LinearLayout dateLayout;
|
||||||
|
@BindView(R.id.profileview_date)
|
||||||
|
TextView dateTextView;
|
||||||
|
@BindView(R.id.profileview_reload)
|
||||||
|
Button refreshButton;
|
||||||
|
@BindView(R.id.basal_graph)
|
||||||
|
ProfileGraph basalGraph;
|
||||||
|
|
||||||
|
private Unbinder unbinder;
|
||||||
|
|
||||||
public static ProfileViewerDialog newInstance(long time) {
|
public static ProfileViewerDialog newInstance(long time) {
|
||||||
ProfileViewerDialog dialog = new ProfileViewerDialog();
|
ProfileViewerDialog dialog = new ProfileViewerDialog();
|
||||||
|
@ -61,31 +81,26 @@ public class ProfileViewerDialog extends DialogFragment {
|
||||||
time = getArguments().getLong("time");
|
time = getArguments().getLong("time");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroyView() {
|
||||||
|
super.onDestroyView();
|
||||||
|
if (unbinder != null)
|
||||||
|
unbinder.unbind();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
View layout = inflater.inflate(R.layout.profileviewer_fragment, container, false);
|
View view = inflater.inflate(R.layout.profileviewer_fragment, container, false);
|
||||||
|
|
||||||
|
unbinder = ButterKnife.bind(this, view);
|
||||||
|
|
||||||
noProfile = (TextView) layout.findViewById(R.id.profileview_noprofile);
|
|
||||||
units = (TextView) layout.findViewById(R.id.profileview_units);
|
|
||||||
dia = (TextView) layout.findViewById(R.id.profileview_dia);
|
|
||||||
activeProfile = (TextView) layout.findViewById(R.id.profileview_activeprofile);
|
|
||||||
ic = (TextView) layout.findViewById(R.id.profileview_ic);
|
|
||||||
isf = (TextView) layout.findViewById(R.id.profileview_isf);
|
|
||||||
basal = (TextView) layout.findViewById(R.id.profileview_basal);
|
|
||||||
target = (TextView) layout.findViewById(R.id.profileview_target);
|
|
||||||
refreshButton = (Button) layout.findViewById(R.id.profileview_reload);
|
|
||||||
refreshButton.setVisibility(View.GONE);
|
refreshButton.setVisibility(View.GONE);
|
||||||
dateDelimiter = layout.findViewById(R.id.profileview_datedelimiter);
|
|
||||||
dateDelimiter.setVisibility(View.VISIBLE);
|
dateDelimiter.setVisibility(View.VISIBLE);
|
||||||
dateLayout = (LinearLayout) layout.findViewById(R.id.profileview_datelayout);
|
|
||||||
dateLayout.setVisibility(View.VISIBLE);
|
dateLayout.setVisibility(View.VISIBLE);
|
||||||
dateTextView = (TextView) layout.findViewById(R.id.profileview_date);
|
|
||||||
basalGraph = (ProfileGraph) layout.findViewById(R.id.basal_graph);
|
|
||||||
|
|
||||||
setContent();
|
setContent();
|
||||||
return layout;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -114,6 +129,11 @@ public class ProfileViewerDialog extends DialogFragment {
|
||||||
basal.setText(profile.getBasalList());
|
basal.setText(profile.getBasalList());
|
||||||
target.setText(profile.getTargetList());
|
target.setText(profile.getTargetList());
|
||||||
basalGraph.show(profile);
|
basalGraph.show(profile);
|
||||||
|
|
||||||
|
if (profile.isValid("ProfileViewDialog"))
|
||||||
|
invalidProfile.setVisibility(View.GONE);
|
||||||
|
else
|
||||||
|
invalidProfile.setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
noProfile.setVisibility(View.VISIBLE);
|
noProfile.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
|
|
||||||
<include
|
<include
|
||||||
layout="@layout/profileviewer_fragment"
|
layout="@layout/profileviewer_fragment"
|
||||||
layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
|
@ -13,6 +13,17 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/profileview_invalidprofile"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:text="@string/invalidprofile"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceLarge"
|
||||||
|
android:textColor="@android:color/holo_red_light"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/profileview_noprofile"
|
android:id="@+id/profileview_noprofile"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -61,6 +72,7 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
android:id="@+id/profileview_datedelimiter"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="2dip"
|
android:layout_height="2dip"
|
||||||
android:layout_marginBottom="5dp"
|
android:layout_marginBottom="5dp"
|
||||||
|
@ -68,14 +80,13 @@
|
||||||
android:layout_marginRight="20dp"
|
android:layout_marginRight="20dp"
|
||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="5dp"
|
||||||
android:background="@color/listdelimiter"
|
android:background="@color/listdelimiter"
|
||||||
android:id="@+id/profileview_datedelimiter"
|
android:visibility="gone" />
|
||||||
android:visibility="gone"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/profileview_datelayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:id="@+id/profileview_datelayout"
|
|
||||||
android:visibility="gone">
|
android:visibility="gone">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
@ -333,11 +344,13 @@
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<info.nightscout.androidaps.plugins.Treatments.fragments.ProfileGraph
|
<info.nightscout.androidaps.plugins.Treatments.fragments.ProfileGraph
|
||||||
android:id="@+id/basal_graph"
|
android:id="@+id/basal_graph"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_margin="20dp"
|
android:layout_height="100dip"
|
||||||
android:layout_height="100dip" />
|
android:layout_margin="20dp" />
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="2dip"
|
android:layout_height="2dip"
|
||||||
|
@ -393,11 +406,11 @@
|
||||||
android:background="@color/listdelimiter" />
|
android:background="@color/listdelimiter" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
android:id="@+id/profileview_reload"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/reloadprofile"
|
|
||||||
android:id="@+id/profileview_reload"
|
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:text="@string/reloadprofile"
|
||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
|
@ -562,10 +562,6 @@
|
||||||
<string name="careportal_insulinage_label">Възраст на инсулина</string>
|
<string name="careportal_insulinage_label">Възраст на инсулина</string>
|
||||||
<string name="hours">часа</string>
|
<string name="hours">часа</string>
|
||||||
<string name="overview_newtempbasal_basaltype_label">Тип базал</string>
|
<string name="overview_newtempbasal_basaltype_label">Тип базал</string>
|
||||||
<string name="isfmissing">ISF липсва в профила. По подразбиране.</string>
|
|
||||||
<string name="icmissing">IC липсва в профила. По подразбиране.</string>
|
|
||||||
<string name="basalmissing">Базал липсва в профила. По подразбиране.</string>
|
|
||||||
<string name="targetmissing">Целева КЗ липсва в профила. По подразбиране.</string>
|
|
||||||
<string name="invalidprofile">Грешен профил !!!</string>
|
<string name="invalidprofile">Грешен профил !!!</string>
|
||||||
<string name="profileswitch">Смяна на профил</string>
|
<string name="profileswitch">Смяна на профил</string>
|
||||||
<string name="careportal_pbage_label">Възраст на батерията на помпата</string>
|
<string name="careportal_pbage_label">Възраст на батерията на помпата</string>
|
||||||
|
@ -582,8 +578,6 @@
|
||||||
<string name="nsalarm_urgent_staledatavalue_label">Много стари данни при повече от [мин]</string>
|
<string name="nsalarm_urgent_staledatavalue_label">Много стари данни при повече от [мин]</string>
|
||||||
<string name="openapsama_autosens_period">Интервал за autosens [ч]</string>
|
<string name="openapsama_autosens_period">Интервал за autosens [ч]</string>
|
||||||
<string name="openapsama_autosens_period_summary">Брой часове назад за определяне на чувствителността (приемът на въглехидрати е изключен)</string>
|
<string name="openapsama_autosens_period_summary">Брой часове назад за определяне на чувствителността (приемът на въглехидрати е изключен)</string>
|
||||||
<string name="do_not_track_profile_switch">Игнорирай събитията от тип Смяна на профил</string>
|
|
||||||
<string name="do_not_track_profile_switch_summary">Всички смени на профила се игнорират и винаги се използва текущия профил</string>
|
|
||||||
<string name="pump">Помпа</string>
|
<string name="pump">Помпа</string>
|
||||||
<string name="openaps">OpenAPS</string>
|
<string name="openaps">OpenAPS</string>
|
||||||
<string name="device">Устройство</string>
|
<string name="device">Устройство</string>
|
||||||
|
|
|
@ -555,14 +555,10 @@
|
||||||
<string name="danarv2pump">DanaRv2</string>
|
<string name="danarv2pump">DanaRv2</string>
|
||||||
<string name="dev">ODCH</string>
|
<string name="dev">ODCH</string>
|
||||||
<string name="device">Zařízení</string>
|
<string name="device">Zařízení</string>
|
||||||
<string name="do_not_track_profile_switch">Ignorovat přepnutí profilu</string>
|
|
||||||
<string name="do_not_track_profile_switch_summary">Všechny záznamy přepnutí profilu jsou ignorovány a vždy je použit aktivní profil</string>
|
|
||||||
<string name="extendedbolus">ProdlouženýBolus</string>
|
<string name="extendedbolus">ProdlouženýBolus</string>
|
||||||
<string name="hours">hodin</string>
|
<string name="hours">hodin</string>
|
||||||
<string name="icmissing">I:S chybí. Je použita výchozí hodnota.</string>
|
|
||||||
<string name="invalidprofile">Chybný profil !!!</string>
|
<string name="invalidprofile">Chybný profil !!!</string>
|
||||||
<string name="iob">IOB</string>
|
<string name="iob">IOB</string>
|
||||||
<string name="isfmissing">Senzitivita chybí. Je použita výchozí hodnota.</string>
|
|
||||||
<string name="lock_screen">Zámek obrazovky</string>
|
<string name="lock_screen">Zámek obrazovky</string>
|
||||||
<string name="lock_screen_short">Zámek</string>
|
<string name="lock_screen_short">Zámek</string>
|
||||||
<string name="mdtp_cancel">Zrušit</string>
|
<string name="mdtp_cancel">Zrušit</string>
|
||||||
|
@ -592,7 +588,6 @@
|
||||||
<string name="xdripstatus_settings">Status z xDripu (hodinky)</string>
|
<string name="xdripstatus_settings">Status z xDripu (hodinky)</string>
|
||||||
<string name="xdripstatus_shortname">xds</string>
|
<string name="xdripstatus_shortname">xds</string>
|
||||||
<string name="virtualpump_extendedbolus_label_short">EXT</string>
|
<string name="virtualpump_extendedbolus_label_short">EXT</string>
|
||||||
<string name="targetmissing">Chybí cílový rozsah. Použity výchozí hodnoty.</string>
|
|
||||||
<string name="tempbasal">DočasnýBazál</string>
|
<string name="tempbasal">DočasnýBazál</string>
|
||||||
<string name="temptarget">DočasnýCíl</string>
|
<string name="temptarget">DočasnýCíl</string>
|
||||||
<string name="wear_overviewnotifications">Oznámení na hodinkách</string>
|
<string name="wear_overviewnotifications">Oznámení na hodinkách</string>
|
||||||
|
@ -609,7 +604,6 @@
|
||||||
<string name="openaps_short">OAPS</string>
|
<string name="openaps_short">OAPS</string>
|
||||||
<string name="danar_bluetooth_status">Bluetooth status</string>
|
<string name="danar_bluetooth_status">Bluetooth status</string>
|
||||||
<string name="careportal_activity_label">AKTIVITA & ZPĚTNÁ VAZBA</string>
|
<string name="careportal_activity_label">AKTIVITA & ZPĚTNÁ VAZBA</string>
|
||||||
<string name="basalmissing">Chybějící bazál v profilu. Použita výchozí hodnota</string>
|
|
||||||
<string name="basal_step">Krok bazálu</string>
|
<string name="basal_step">Krok bazálu</string>
|
||||||
<string name="basal_short">BAZ</string>
|
<string name="basal_short">BAZ</string>
|
||||||
<string name="unsupportednsversion">Nepodporovaná verze Nightscoutu</string>
|
<string name="unsupportednsversion">Nepodporovaná verze Nightscoutu</string>
|
||||||
|
|
|
@ -354,7 +354,6 @@
|
||||||
<string name="app_name">AndroidAPS</string>
|
<string name="app_name">AndroidAPS</string>
|
||||||
<string name="basal_short">BAS</string>
|
<string name="basal_short">BAS</string>
|
||||||
<string name="basal_step">Basal-Schritt</string>
|
<string name="basal_step">Basal-Schritt</string>
|
||||||
<string name="basalmissing">Basalraten fehlen im Profil. Verwende Standard-Werte.</string>
|
|
||||||
<string name="basalvaluebelowminimum">Wert der Basalrate unter Minimum. Profil nicht gesetzt!</string>
|
<string name="basalvaluebelowminimum">Wert der Basalrate unter Minimum. Profil nicht gesetzt!</string>
|
||||||
<string name="batteryoptimalizationerror">Smartphone untertützt anscheinend das Deaktivieren der Akku-Leistungsoptimierung nicht!</string>
|
<string name="batteryoptimalizationerror">Smartphone untertützt anscheinend das Deaktivieren der Akku-Leistungsoptimierung nicht!</string>
|
||||||
<string name="bolus_step">Bolus-Schritt</string>
|
<string name="bolus_step">Bolus-Schritt</string>
|
||||||
|
@ -369,7 +368,6 @@
|
||||||
<string name="paused">Pausiert</string>
|
<string name="paused">Pausiert</string>
|
||||||
<string name="patientage">Patientenalter</string>
|
<string name="patientage">Patientenalter</string>
|
||||||
<string name="patientage_summary">Bitte wähle das Pateintenalter, um die Sicherheits-Limits festzulegen</string>
|
<string name="patientage_summary">Bitte wähle das Pateintenalter, um die Sicherheits-Limits festzulegen</string>
|
||||||
<string name="targetmissing">BZ-Zielbereich fehlt im Profil. Verwende Standardwerte.</string>
|
|
||||||
<string name="teenage">Teenager</string>
|
<string name="teenage">Teenager</string>
|
||||||
<string name="tempbasaldeliveryerror">TBR Abgabe-Fehler</string>
|
<string name="tempbasaldeliveryerror">TBR Abgabe-Fehler</string>
|
||||||
<string name="temptarget">Temporäres Ziel</string>
|
<string name="temptarget">Temporäres Ziel</string>
|
||||||
|
@ -415,8 +413,6 @@
|
||||||
<string name="disconnectpumpfor15m">Trenne Pumpe für 15 Min.</string>
|
<string name="disconnectpumpfor15m">Trenne Pumpe für 15 Min.</string>
|
||||||
<string name="disconnectpumpfor30m">Trenne Pumpe für 30 Min.</string>
|
<string name="disconnectpumpfor30m">Trenne Pumpe für 30 Min.</string>
|
||||||
<string name="disconnectpumpfor3h">Trenne Pumpe für 3 h</string>
|
<string name="disconnectpumpfor3h">Trenne Pumpe für 3 h</string>
|
||||||
<string name="do_not_track_profile_switch">Ignoriere Profilwechsel</string>
|
|
||||||
<string name="do_not_track_profile_switch_summary">Alle Profilwechsel werden ignoriert und nur das aktive Profil verwendet</string>
|
|
||||||
<string name="dont_show_again">Nicht erneut anzeigen</string>
|
<string name="dont_show_again">Nicht erneut anzeigen</string>
|
||||||
<string name="eatingsoon">Bald essen</string>
|
<string name="eatingsoon">Bald essen</string>
|
||||||
<string name="edit_base_basal">Bearbeite Basis-Basal:</string>
|
<string name="edit_base_basal">Bearbeite Basis-Basal:</string>
|
||||||
|
@ -531,9 +527,7 @@
|
||||||
<string name="danarprofile_dia_summary">Dauer der Insulinwirkung</string>
|
<string name="danarprofile_dia_summary">Dauer der Insulinwirkung</string>
|
||||||
<string name="edit_base_ic">Bearbeite Basis-IC:</string>
|
<string name="edit_base_ic">Bearbeite Basis-IC:</string>
|
||||||
<string name="edit_base_isf">Bearbeite Basis-ISF:</string>
|
<string name="edit_base_isf">Bearbeite Basis-ISF:</string>
|
||||||
<string name="icmissing">IC-Angabe fehlt im Profil. Verwende Standard-Wert.</string>
|
|
||||||
<string name="insulin_shortname">INS</string>
|
<string name="insulin_shortname">INS</string>
|
||||||
<string name="isfmissing">ISF fehlt im Profil. Verwende Standard-Wert.</string>
|
|
||||||
<string name="lock_screen_short">Sperr</string>
|
<string name="lock_screen_short">Sperr</string>
|
||||||
<string name="needwhitelisting">%s benötigt Batterie-Optimierungs-Whitelisting, um korrekt arbeiten zu können</string>
|
<string name="needwhitelisting">%s benötigt Batterie-Optimierungs-Whitelisting, um korrekt arbeiten zu können</string>
|
||||||
<string name="nsalarm_staledata">Veraltete Daten</string>
|
<string name="nsalarm_staledata">Veraltete Daten</string>
|
||||||
|
|
|
@ -560,10 +560,6 @@
|
||||||
<string name="careportal_insulinage_label">Χρόνος ζωής Ινσουλίνης</string>
|
<string name="careportal_insulinage_label">Χρόνος ζωής Ινσουλίνης</string>
|
||||||
<string name="hours">ώρες</string>
|
<string name="hours">ώρες</string>
|
||||||
<string name="overview_newtempbasal_basaltype_label">Τύπος Βασικού</string>
|
<string name="overview_newtempbasal_basaltype_label">Τύπος Βασικού</string>
|
||||||
<string name="isfmissing">"Λείπει ο ISF στο προφίλ.Χρησιμοποιείται το προκαθορισμένο "</string>
|
|
||||||
<string name="icmissing">"Λείπει ο IC στο προφίλ.Χρησιμοποιείται το προκαθορισμένο "</string>
|
|
||||||
<string name="basalmissing">"Λείπει ο Βασικός στο προφίλ.Χρησιμοποιείται το προκαθορισμένο "</string>
|
|
||||||
<string name="targetmissing">"Λείπει ο στόχος στο προφίλ.Χρησιμοποιείται το προκαθορισμένο "</string>
|
|
||||||
<string name="invalidprofile">Μη έγκυρο προφίλ!!!</string>
|
<string name="invalidprofile">Μη έγκυρο προφίλ!!!</string>
|
||||||
<string name="profileswitch">ΜΕταβείτε στο προφίλ</string>
|
<string name="profileswitch">ΜΕταβείτε στο προφίλ</string>
|
||||||
<string name="careportal_pbage_label">Χρόνος ζωής μπαταρίας αντλίας</string>
|
<string name="careportal_pbage_label">Χρόνος ζωής μπαταρίας αντλίας</string>
|
||||||
|
@ -581,8 +577,6 @@
|
||||||
<string name="openapsama_autosens_period">"Εσωτερικά διαστήματα για autosense [h] "</string>
|
<string name="openapsama_autosens_period">"Εσωτερικά διαστήματα για autosense [h] "</string>
|
||||||
<string name="openapsama_autosens_period_summary">Ποσότητα ωρών κατά το παρελθόν για ανίχνευση ευαισθησίας (εξαιρείται ο χρόνος απορρόφησης υδατανθράκων)</string>
|
<string name="openapsama_autosens_period_summary">Ποσότητα ωρών κατά το παρελθόν για ανίχνευση ευαισθησίας (εξαιρείται ο χρόνος απορρόφησης υδατανθράκων)</string>
|
||||||
<string name="ratio_short">SEN</string>
|
<string name="ratio_short">SEN</string>
|
||||||
<string name="do_not_track_profile_switch">Αγνοήστε τα συμβάντα αλλαγής προφίλ</string>
|
|
||||||
<string name="do_not_track_profile_switch_summary">;Ola τα συμβάντα αλλαγής προφίλ αγνοήθηκαν και χρησιμοποιείτε πάντα το ενεργό προφίλ</string>
|
|
||||||
<string name="pump">Αντλία</string>
|
<string name="pump">Αντλία</string>
|
||||||
<string name="openaps">OpenAPS</string>
|
<string name="openaps">OpenAPS</string>
|
||||||
<string name="device">Συσκευή</string>
|
<string name="device">Συσκευή</string>
|
||||||
|
|
|
@ -565,10 +565,6 @@
|
||||||
<string name="careportal_insulinage_label">Edad insulina</string>
|
<string name="careportal_insulinage_label">Edad insulina</string>
|
||||||
<string name="hours">horas</string>
|
<string name="hours">horas</string>
|
||||||
<string name="overview_newtempbasal_basaltype_label">Tipo base</string>
|
<string name="overview_newtempbasal_basaltype_label">Tipo base</string>
|
||||||
<string name="isfmissing">Falta ISF en perfil. Usando ajuste por defecto.</string>
|
|
||||||
<string name="icmissing">Falta IC en perfil. Usando ajuste por defecto.</string>
|
|
||||||
<string name="basalmissing">Falta base en perfil. Usando ajuste por defecto.</string>
|
|
||||||
<string name="targetmissing">"Falta objectivo en perfil. Usando ajuste por defecto. "</string>
|
|
||||||
<string name="invalidprofile">Perfil invalido !!!</string>
|
<string name="invalidprofile">Perfil invalido !!!</string>
|
||||||
<string name="profileswitch">CambioPerfil</string>
|
<string name="profileswitch">CambioPerfil</string>
|
||||||
<string name="careportal_pbage_label">Edad bateria bomba</string>
|
<string name="careportal_pbage_label">Edad bateria bomba</string>
|
||||||
|
@ -586,8 +582,6 @@
|
||||||
<string name="openapsama_autosens_period">Interval para autosens [h]</string>
|
<string name="openapsama_autosens_period">Interval para autosens [h]</string>
|
||||||
<string name="openapsama_autosens_period_summary">Horas en el pasado para detectar sensividad (tiempo de absorcion de carbohidratos no incluidos)</string>
|
<string name="openapsama_autosens_period_summary">Horas en el pasado para detectar sensividad (tiempo de absorcion de carbohidratos no incluidos)</string>
|
||||||
<string name="ratio_short">SEN</string>
|
<string name="ratio_short">SEN</string>
|
||||||
<string name="do_not_track_profile_switch">"Ignora evenos de cambio de perfil "</string>
|
|
||||||
<string name="do_not_track_profile_switch_summary">"Totos los cambios de perfil son ignorados y se usa siempre el perfil actual "</string>
|
|
||||||
<string name="pump">Bomba</string>
|
<string name="pump">Bomba</string>
|
||||||
<string name="openaps">OpenAPS</string>
|
<string name="openaps">OpenAPS</string>
|
||||||
<string name="device">Aparato</string>
|
<string name="device">Aparato</string>
|
||||||
|
|
|
@ -557,10 +557,6 @@
|
||||||
<string name="careportal_insulinage_label">Durée d\'insuline</string>
|
<string name="careportal_insulinage_label">Durée d\'insuline</string>
|
||||||
<string name="hours">Heures</string>
|
<string name="hours">Heures</string>
|
||||||
<string name="overview_newtempbasal_basaltype_label">Type du Basal</string>
|
<string name="overview_newtempbasal_basaltype_label">Type du Basal</string>
|
||||||
<string name="isfmissing">"Facteur SI manquant dans le profile. Utilisez les valeurs par défaut. "</string>
|
|
||||||
<string name="icmissing">I:G manquant dans le profile. Utilisez les valeurs par défaut.</string>
|
|
||||||
<string name="basalmissing">Basal manquant dans le profile. Utilisez les valeurs par défaut</string>
|
|
||||||
<string name="targetmissing">Cible manquante dans le profile. Utilisez les valeurs par défaut</string>
|
|
||||||
<string name="invalidprofile">Profile incorrect!!!</string>
|
<string name="invalidprofile">Profile incorrect!!!</string>
|
||||||
<string name="profileswitch">Changement de Profil</string>
|
<string name="profileswitch">Changement de Profil</string>
|
||||||
<string name="careportal_pbage_label">Durée batterie pompe</string>
|
<string name="careportal_pbage_label">Durée batterie pompe</string>
|
||||||
|
@ -578,8 +574,6 @@
|
||||||
<string name="openapsama_autosens_period">"l’intervalle pour autosens [h] "</string>
|
<string name="openapsama_autosens_period">"l’intervalle pour autosens [h] "</string>
|
||||||
<string name="openapsama_autosens_period_summary">Le nombre d’heures écoulées pour la détection de sensibilité (le temps d’absorption des glucides est exclu)</string>
|
<string name="openapsama_autosens_period_summary">Le nombre d’heures écoulées pour la détection de sensibilité (le temps d’absorption des glucides est exclu)</string>
|
||||||
<string name="ratio_short">SEN</string>
|
<string name="ratio_short">SEN</string>
|
||||||
<string name="do_not_track_profile_switch">Ignorer les événements de changement de profil</string>
|
|
||||||
<string name="do_not_track_profile_switch_summary">Tout les événements de changement de profils sont ignorés et le profil actif reste le seul profil en activité continue</string>
|
|
||||||
<string name="pump">Pompe</string>
|
<string name="pump">Pompe</string>
|
||||||
<string name="openaps">OpenAPS</string>
|
<string name="openaps">OpenAPS</string>
|
||||||
<string name="device">Dispositif</string>
|
<string name="device">Dispositif</string>
|
||||||
|
|
|
@ -571,10 +571,6 @@
|
||||||
<string name="careportal_insulinage_label">인슐린 사용기간</string>
|
<string name="careportal_insulinage_label">인슐린 사용기간</string>
|
||||||
<string name="hours">시간</string>
|
<string name="hours">시간</string>
|
||||||
<string name="overview_newtempbasal_basaltype_label">기초주입 종류</string>
|
<string name="overview_newtempbasal_basaltype_label">기초주입 종류</string>
|
||||||
<string name="isfmissing">프로파일에서 ISF가 누락되었습니다. 가본값을 사용합니다.</string>
|
|
||||||
<string name="icmissing">프로파일에서 IC가 누락되었습니다. 가본값을 사용합니다.</string>
|
|
||||||
<string name="basalmissing">프로파일에서 기초주입량이 누락되었습니다. 가본값을 사용합니다.</string>
|
|
||||||
<string name="targetmissing">프로파일에서 목표범위가 누락되었습니다. 가본값을 사용합니다.</string>
|
|
||||||
<string name="invalidprofile">프로파일이 잘못되었습니다 !!!</string>
|
<string name="invalidprofile">프로파일이 잘못되었습니다 !!!</string>
|
||||||
<string name="profileswitch">프로파일변경</string>
|
<string name="profileswitch">프로파일변경</string>
|
||||||
<string name="careportal_pbage_label">펌프배터리사용기간</string>
|
<string name="careportal_pbage_label">펌프배터리사용기간</string>
|
||||||
|
@ -592,8 +588,6 @@
|
||||||
<string name="openapsama_autosens_period">autosens 시간 [h]</string>
|
<string name="openapsama_autosens_period">autosens 시간 [h]</string>
|
||||||
<string name="openapsama_autosens_period_summary">민감도를 감지하기 위해 계산될 총 시간 (탄수화물 흡수 시간은 제외됩니다.)</string>
|
<string name="openapsama_autosens_period_summary">민감도를 감지하기 위해 계산될 총 시간 (탄수화물 흡수 시간은 제외됩니다.)</string>
|
||||||
<string name="ratio_short">SEN</string>
|
<string name="ratio_short">SEN</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="pump">Pump</string>
|
||||||
<string name="openaps">OpenAPS</string>
|
<string name="openaps">OpenAPS</string>
|
||||||
<string name="device">Device</string>
|
<string name="device">Device</string>
|
||||||
|
|
|
@ -63,7 +63,6 @@
|
||||||
<string name="treatmentssafety_maxcarbs_title">Max toegestaane koolhydraten [g]</string>
|
<string name="treatmentssafety_maxcarbs_title">Max toegestaane koolhydraten [g]</string>
|
||||||
<string name="basal">Basaal</string>
|
<string name="basal">Basaal</string>
|
||||||
<string name="basal_short">BAS</string>
|
<string name="basal_short">BAS</string>
|
||||||
<string name="basalmissing">Basaal ontbreekt in profiel. Standaard actief</string>
|
|
||||||
<string name="basalshortlabel">BAS</string>
|
<string name="basalshortlabel">BAS</string>
|
||||||
<string name="base_profile_label">Basis Profiel</string>
|
<string name="base_profile_label">Basis Profiel</string>
|
||||||
<string name="batterydischarged">Pomp Batterij Leeg</string>
|
<string name="batterydischarged">Pomp Batterij Leeg</string>
|
||||||
|
@ -221,12 +220,10 @@
|
||||||
<string name="loop_shortname">LOOP</string>
|
<string name="loop_shortname">LOOP</string>
|
||||||
<string name="it_lang">Italiano</string>
|
<string name="it_lang">Italiano</string>
|
||||||
<string name="nl_lang">Nederlands</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_finger">Vingerprik</string>
|
||||||
<string name="glucosetype_sensor">Sensor</string>
|
<string name="glucosetype_sensor">Sensor</string>
|
||||||
<string name="high_mark">Hoog grens</string>
|
<string name="high_mark">Hoog grens</string>
|
||||||
<string name="hours">Uren</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="import_from">Importeer instellingen van</string>
|
||||||
<string name="initializing">Initialisering</string>
|
<string name="initializing">Initialisering</string>
|
||||||
<string name="danar_history_bolus">Bulossen</string>
|
<string name="danar_history_bolus">Bulossen</string>
|
||||||
|
@ -252,7 +249,6 @@
|
||||||
<string name="disconnectpumpfor30m">Verbreek verbinding 30min met pomp</string>
|
<string name="disconnectpumpfor30m">Verbreek verbinding 30min met pomp</string>
|
||||||
<string name="disconnectpumpfor3h">Verbreek verbinding 3u met pomp</string>
|
<string name="disconnectpumpfor3h">Verbreek verbinding 3u met pomp</string>
|
||||||
<string name="dismiss">NEGEER</string>
|
<string name="dismiss">NEGEER</string>
|
||||||
<string name="do_not_track_profile_switch">Negeer profiel wijzigingen</string>
|
|
||||||
<string name="iob">IOB</string>
|
<string name="iob">IOB</string>
|
||||||
<string name="invalidprofile">Ongeldig profiel !!!</string>
|
<string name="invalidprofile">Ongeldig profiel !!!</string>
|
||||||
<string name="insulin_shortname">INS</string>
|
<string name="insulin_shortname">INS</string>
|
||||||
|
@ -528,7 +524,6 @@
|
||||||
<string name="danar_stats_warning_Message">Mogelijks inacuraat bij gebruik van bolussen om infusieset te vullen</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="delta">Verschil</string>
|
||||||
<string name="dia">DIA:</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_ic">Basis-IC aanpassen:</string>
|
||||||
<string name="edit_base_isf">Basis-ISF aanpassen:</string>
|
<string name="edit_base_isf">Basis-ISF aanpassen:</string>
|
||||||
<string name="enacted">Uitgevoerd</string>
|
<string name="enacted">Uitgevoerd</string>
|
||||||
|
@ -603,7 +598,6 @@
|
||||||
<string name="smscommunicator_remotecommandnotallowed">Bevelen op astand zijn 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_tempbasalcanceled">Tijdelijk basaal afgebroken</string>
|
||||||
<string name="smscommunicator_tempbasalcancelfailed">Afbreken van tijdelijk basaal mislukt</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="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="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="prefs_range_summary">Hoge en lage grens voor grafieken op het overzicht en op Wear</string>
|
||||||
|
|
|
@ -562,7 +562,6 @@
|
||||||
<string name="absorptionsettings_title">Настройки усваиваемости</string>
|
<string name="absorptionsettings_title">Настройки усваиваемости</string>
|
||||||
<string name="activate_profile">АКТИВИРОВАТЬ ПРОФИЛЬ</string>
|
<string name="activate_profile">АКТИВИРОВАТЬ ПРОФИЛЬ</string>
|
||||||
<string name="basal_short">БАЗ</string>
|
<string name="basal_short">БАЗ</string>
|
||||||
<string name="basalmissing">Базал отсутствует в профиле. Применяются данные по умолчанию</string>
|
|
||||||
<string name="careportal_activity_label">АКТИВНОСТЬ</string>
|
<string name="careportal_activity_label">АКТИВНОСТЬ</string>
|
||||||
<string name="careportal_canulaage_label">канюля проработала</string>
|
<string name="careportal_canulaage_label">канюля проработала</string>
|
||||||
<string name="careportal_canulaage_label_short">ВозрКан</string>
|
<string name="careportal_canulaage_label_short">ВозрКан</string>
|
||||||
|
@ -585,17 +584,13 @@
|
||||||
<string name="date">дата</string>
|
<string name="date">дата</string>
|
||||||
<string name="device">устройство</string>
|
<string name="device">устройство</string>
|
||||||
<string name="dia_too_short" formatted="false">pначение длительности работы инс %s слишком мало - применено %s</string>
|
<string name="dia_too_short" formatted="false">pначение длительности работы инс %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="extendedbolus">расширенный болюс</string>
|
||||||
<string name="free_peak_oref">Акуу-Зуфл Щкуа</string>
|
<string name="free_peak_oref">Акуу-Зуфл Щкуа</string>
|
||||||
<string name="hours">час</string>
|
<string name="hours">час</string>
|
||||||
<string name="icmissing">соотношение инс-углев отсутствует в профиле. применено соотн. по умолчанию</string>
|
|
||||||
<string name="insulin_oref_peak">Время пика действующего инс IOB</string>
|
<string name="insulin_oref_peak">Время пика действующего инс IOB</string>
|
||||||
<string name="insulin_peak_time">время пика (в мин.)</string>
|
<string name="insulin_peak_time">время пика (в мин.)</string>
|
||||||
<string name="invalid">НЕВЕРНО</string>
|
<string name="invalid">НЕВЕРНО</string>
|
||||||
<string name="invalidprofile">Неверный профиль !!!</string>
|
<string name="invalidprofile">Неверный профиль !!!</string>
|
||||||
<string name="isfmissing">фактор чувствительности к инс. отутствует в профиле. Применен фактор по умолчанию</string>
|
|
||||||
<string name="lock_screen">блокировка экрана</string>
|
<string name="lock_screen">блокировка экрана</string>
|
||||||
<string name="lock_screen_short">блок</string>
|
<string name="lock_screen_short">блок</string>
|
||||||
<string name="mdtp_cancel">отмена</string>
|
<string name="mdtp_cancel">отмена</string>
|
||||||
|
@ -630,7 +625,6 @@
|
||||||
<string name="sensitivityoref0">Чувствительность Oref0</string>
|
<string name="sensitivityoref0">Чувствительность Oref0</string>
|
||||||
<string name="sensitivityweightedaverage">средневзвешенная чувствительность</string>
|
<string name="sensitivityweightedaverage">средневзвешенная чувствительность</string>
|
||||||
<string name="sv_lang">Шведский</string>
|
<string name="sv_lang">Шведский</string>
|
||||||
<string name="targetmissing">Целевое значение отсутствует в профиле. Применено значение по умолчанию</string>
|
|
||||||
<string name="tempbasal">ВремБазал</string>
|
<string name="tempbasal">ВремБазал</string>
|
||||||
<string name="temptarget">ВремЦель</string>
|
<string name="temptarget">ВремЦель</string>
|
||||||
<string name="ultrafastactinginsulincomment">Fiasp</string>
|
<string name="ultrafastactinginsulincomment">Fiasp</string>
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
<string name="basal">Basal</string>
|
<string name="basal">Basal</string>
|
||||||
<string name="basal_rate">Basal E/tim</string>
|
<string name="basal_rate">Basal E/tim</string>
|
||||||
<string name="basal_step">Basal steg</string>
|
<string name="basal_step">Basal steg</string>
|
||||||
<string name="basalmissing">Basal saknas i profil. Använder grundbasal</string>
|
|
||||||
<string name="basalshortlabel">BR</string>
|
<string name="basalshortlabel">BR</string>
|
||||||
<string name="basalvaluebelowminimum">Basal understiger min.nivå. Ingen profil satt</string>
|
<string name="basalvaluebelowminimum">Basal understiger min.nivå. Ingen profil satt</string>
|
||||||
<string name="base_profile_label">Basalprofil</string>
|
<string name="base_profile_label">Basalprofil</string>
|
||||||
|
@ -169,8 +168,6 @@
|
||||||
<string name="disconnectpumpfor30m">Frånkoppla pump i 30 min</string>
|
<string name="disconnectpumpfor30m">Frånkoppla pump i 30 min</string>
|
||||||
<string name="disconnectpumpfor3h">Frånkoppla pump i 3 h</string>
|
<string name="disconnectpumpfor3h">Frånkoppla pump i 3 h</string>
|
||||||
<string name="dismiss">TA BORT</string>
|
<string name="dismiss">TA BORT</string>
|
||||||
<string name="do_not_track_profile_switch">Ignorera profilbyten</string>
|
|
||||||
<string name="do_not_track_profile_switch_summary">Alla profilbyten ignoreras och aktiv profil används alltid</string>
|
|
||||||
<string name="dont_show_again">Visa inte detta igen</string>
|
<string name="dont_show_again">Visa inte detta igen</string>
|
||||||
<string name="duration">Duration</string>
|
<string name="duration">Duration</string>
|
||||||
<string name="eatingsoon">Äta snart</string>
|
<string name="eatingsoon">Äta snart</string>
|
||||||
|
@ -358,7 +355,6 @@
|
||||||
<string name="tempbasaldeliveryerror">Tempbasal ej tillförd</string>
|
<string name="tempbasaldeliveryerror">Tempbasal ej tillförd</string>
|
||||||
<string name="tempbasal">Tempbasal</string>
|
<string name="tempbasal">Tempbasal</string>
|
||||||
<string name="teenage">Tonåring</string>
|
<string name="teenage">Tonåring</string>
|
||||||
<string name="targetmissing">Mål saknas i profil. Använder grundinställning</string>
|
|
||||||
<string name="target_range">Mål gränser:</string>
|
<string name="target_range">Mål gränser:</string>
|
||||||
<string name="suspendloopfor3h">Stäng av loop i 3 h</string>
|
<string name="suspendloopfor3h">Stäng av loop i 3 h</string>
|
||||||
<string name="suspendloopfor2h">Stäng av loop i 2 h</string>
|
<string name="suspendloopfor2h">Stäng av loop i 2 h</string>
|
||||||
|
@ -550,7 +546,6 @@
|
||||||
<string name="edit_base_isf">Ändra Base-ISF:</string>
|
<string name="edit_base_isf">Ändra Base-ISF:</string>
|
||||||
<string name="el_lang">Grekiska</string>
|
<string name="el_lang">Grekiska</string>
|
||||||
<string name="end_user_license_agreement_text">MUST NOT BE USED TO MAKE MEDICAL DECISIONS. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</string>
|
<string name="end_user_license_agreement_text">MUST NOT BE USED TO MAKE MEDICAL DECISIONS. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</string>
|
||||||
<string name="isfmissing">ISF fattas i profilen. Använder värde från grundinställning.</string>
|
|
||||||
<string name="lock_screen">Lås skärm</string>
|
<string name="lock_screen">Lås skärm</string>
|
||||||
<string name="lock_screen_short">Lås</string>
|
<string name="lock_screen_short">Lås</string>
|
||||||
<string name="mmol">mmol/l</string>
|
<string name="mmol">mmol/l</string>
|
||||||
|
|
|
@ -618,10 +618,6 @@
|
||||||
<string name="careportal_insulinage_label">Insulin age</string>
|
<string name="careportal_insulinage_label">Insulin age</string>
|
||||||
<string name="hours">hours</string>
|
<string name="hours">hours</string>
|
||||||
<string name="overview_newtempbasal_basaltype_label">Basal type</string>
|
<string name="overview_newtempbasal_basaltype_label">Basal type</string>
|
||||||
<string name="isfmissing">ISF missing in profile. Using default.</string>
|
|
||||||
<string name="icmissing">IC missing in profile. Using default.</string>
|
|
||||||
<string name="basalmissing">Basal missing in profile. Using default.</string>
|
|
||||||
<string name="targetmissing">Target missing in profile. Using default.</string>
|
|
||||||
<string name="invalidprofile">Invalid profile !!!</string>
|
<string name="invalidprofile">Invalid profile !!!</string>
|
||||||
<string name="profileswitch">ProfileSwitch</string>
|
<string name="profileswitch">ProfileSwitch</string>
|
||||||
<string name="careportal_pbage_label">Pump battery age</string>
|
<string name="careportal_pbage_label">Pump battery age</string>
|
||||||
|
@ -649,9 +645,6 @@
|
||||||
<string name="key_openapsama_autosens_period" translatable="false">openapsama_autosens_period</string>
|
<string name="key_openapsama_autosens_period" translatable="false">openapsama_autosens_period</string>
|
||||||
<string name="key_nsclient_localbroadcasts" translatable="false">nsclient_localbroadcasts</string>
|
<string name="key_nsclient_localbroadcasts" translatable="false">nsclient_localbroadcasts</string>
|
||||||
<string name="ratio_short">SEN</string>
|
<string name="ratio_short">SEN</string>
|
||||||
<string name="key_do_not_track_profile_switch" translatable="false">do_not_track_profile_switch</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="pump">Pump</string>
|
<string name="pump">Pump</string>
|
||||||
<string name="openaps">OpenAPS</string>
|
<string name="openaps">OpenAPS</string>
|
||||||
<string name="device">Device</string>
|
<string name="device">Device</string>
|
||||||
|
|
|
@ -105,13 +105,6 @@
|
||||||
validate:minNumber="1"
|
validate:minNumber="1"
|
||||||
validate:testType="floatNumericRange" />
|
validate:testType="floatNumericRange" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
<PreferenceCategory android:title="@string/profile">
|
|
||||||
<SwitchPreference
|
|
||||||
android:defaultValue="false"
|
|
||||||
android:key="@string/key_do_not_track_profile_switch"
|
|
||||||
android:summary="@string/do_not_track_profile_switch_summary"
|
|
||||||
android:title="@string/do_not_track_profile_switch" />
|
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:title="@string/bluetooth">
|
android:title="@string/bluetooth">
|
||||||
|
|
Loading…
Reference in a new issue