CPP simple representation string
This commit is contained in:
parent
364b3d6710
commit
8c93925865
3 changed files with 55 additions and 44 deletions
|
@ -10,6 +10,7 @@ import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.RadioButton;
|
import android.widget.RadioButton;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -33,11 +34,11 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
|
||||||
EditText icView;
|
EditText icView;
|
||||||
EditText isfView;
|
EditText isfView;
|
||||||
EditText carView;
|
EditText carView;
|
||||||
EditText basalView;
|
|
||||||
EditText targetlowView;
|
EditText targetlowView;
|
||||||
EditText targethighView;
|
EditText targethighView;
|
||||||
EditText percentageView;
|
EditText percentageView;
|
||||||
EditText timeshiftView;
|
EditText timeshiftView;
|
||||||
|
TextView profileView;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -54,6 +55,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
|
||||||
targethighView = (EditText) layout.findViewById(R.id.simpleprofile_targethigh);
|
targethighView = (EditText) layout.findViewById(R.id.simpleprofile_targethigh);
|
||||||
percentageView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_percentage);
|
percentageView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_percentage);
|
||||||
timeshiftView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_timeshift);
|
timeshiftView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_timeshift);
|
||||||
|
profileView = (TextView) layout.findViewById(R.id.circadianpercentageprofile_profileview);
|
||||||
|
|
||||||
|
|
||||||
mgdlView.setChecked(circadianPercentageProfilePlugin.mgdl);
|
mgdlView.setChecked(circadianPercentageProfilePlugin.mgdl);
|
||||||
|
@ -66,6 +68,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
|
||||||
targethighView.setText(circadianPercentageProfilePlugin.targetHigh.toString());
|
targethighView.setText(circadianPercentageProfilePlugin.targetHigh.toString());
|
||||||
percentageView.setText("" + circadianPercentageProfilePlugin.percentage);
|
percentageView.setText("" + circadianPercentageProfilePlugin.percentage);
|
||||||
timeshiftView.setText("" + circadianPercentageProfilePlugin.timeshift);
|
timeshiftView.setText("" + circadianPercentageProfilePlugin.timeshift);
|
||||||
|
updateProfileInfo();
|
||||||
|
|
||||||
mgdlView.setOnClickListener(new View.OnClickListener() {
|
mgdlView.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -74,6 +77,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
|
||||||
circadianPercentageProfilePlugin.mmol = !circadianPercentageProfilePlugin.mgdl;
|
circadianPercentageProfilePlugin.mmol = !circadianPercentageProfilePlugin.mgdl;
|
||||||
mmolView.setChecked(circadianPercentageProfilePlugin.mmol);
|
mmolView.setChecked(circadianPercentageProfilePlugin.mmol);
|
||||||
circadianPercentageProfilePlugin.storeSettings();
|
circadianPercentageProfilePlugin.storeSettings();
|
||||||
|
updateProfileInfo();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
mmolView.setOnClickListener(new View.OnClickListener() {
|
mmolView.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@ -83,6 +87,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
|
||||||
circadianPercentageProfilePlugin.mgdl = !circadianPercentageProfilePlugin.mmol;
|
circadianPercentageProfilePlugin.mgdl = !circadianPercentageProfilePlugin.mmol;
|
||||||
mgdlView.setChecked(circadianPercentageProfilePlugin.mgdl);
|
mgdlView.setChecked(circadianPercentageProfilePlugin.mgdl);
|
||||||
circadianPercentageProfilePlugin.storeSettings();
|
circadianPercentageProfilePlugin.storeSettings();
|
||||||
|
updateProfileInfo();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -109,6 +114,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
|
||||||
circadianPercentageProfilePlugin.timeshift = SafeParse.stringToInt(timeshiftView.getText().toString());
|
circadianPercentageProfilePlugin.timeshift = SafeParse.stringToInt(timeshiftView.getText().toString());
|
||||||
circadianPercentageProfilePlugin.percentage = SafeParse.stringToInt(percentageView.getText().toString());
|
circadianPercentageProfilePlugin.percentage = SafeParse.stringToInt(percentageView.getText().toString());
|
||||||
circadianPercentageProfilePlugin.storeSettings();
|
circadianPercentageProfilePlugin.storeSettings();
|
||||||
|
updateProfileInfo();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -124,4 +130,10 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
|
||||||
return layout;
|
return layout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateProfileInfo() {
|
||||||
|
profileView.setText("Basal: " + circadianPercentageProfilePlugin.basalString());
|
||||||
|
profileView.append("\n\n");
|
||||||
|
profileView.append("Base-Basal: " + circadianPercentageProfilePlugin.baseBasalString());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package info.nightscout.androidaps.plugins.CircadianPercentageProfile;
|
||||||
|
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
|
import android.util.StringBuilderPrinter;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
|
@ -12,7 +13,6 @@ import org.slf4j.LoggerFactory;
|
||||||
import info.nightscout.androidaps.Config;
|
import info.nightscout.androidaps.Config;
|
||||||
import info.nightscout.androidaps.Constants;
|
import info.nightscout.androidaps.Constants;
|
||||||
import info.nightscout.androidaps.MainApp;
|
import info.nightscout.androidaps.MainApp;
|
||||||
import info.nightscout.androidaps.R;
|
|
||||||
import info.nightscout.androidaps.interfaces.PluginBase;
|
import info.nightscout.androidaps.interfaces.PluginBase;
|
||||||
import info.nightscout.androidaps.interfaces.ProfileInterface;
|
import info.nightscout.androidaps.interfaces.ProfileInterface;
|
||||||
import info.nightscout.client.data.NSProfile;
|
import info.nightscout.client.data.NSProfile;
|
||||||
|
@ -20,7 +20,8 @@ import info.nightscout.utils.DecimalFormatter;
|
||||||
import info.nightscout.utils.SafeParse;
|
import info.nightscout.utils.SafeParse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by mike on 05.08.2016.
|
* Created by Adrian on 12.11.2016.
|
||||||
|
* Based on SimpleProfile created by mike on 05.08.2016.
|
||||||
*/
|
*/
|
||||||
public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInterface {
|
public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInterface {
|
||||||
public static final String SETTINGS_PREFIX = "CircadianPercentageProfile";
|
public static final String SETTINGS_PREFIX = "CircadianPercentageProfile";
|
||||||
|
@ -201,45 +202,6 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte
|
||||||
|
|
||||||
createConvertedProfile();
|
createConvertedProfile();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
{
|
|
||||||
"_id": "576264a12771b7500d7ad184",
|
|
||||||
"startDate": "2016-06-16T08:35:00.000Z",
|
|
||||||
"defaultProfile": "Default",
|
|
||||||
"store": {
|
|
||||||
"Default": {
|
|
||||||
"dia": "3",
|
|
||||||
"carbratio": [{
|
|
||||||
"time": "00:00",
|
|
||||||
"value": "30"
|
|
||||||
}],
|
|
||||||
"carbs_hr": "20",
|
|
||||||
"delay": "20",
|
|
||||||
"sens": [{
|
|
||||||
"time": "00:00",
|
|
||||||
"value": "100"
|
|
||||||
}],
|
|
||||||
"timezone": "UTC",
|
|
||||||
"basal": [{
|
|
||||||
"time": "00:00",
|
|
||||||
"value": "0.1"
|
|
||||||
}],
|
|
||||||
"target_low": [{
|
|
||||||
"time": "00:00",
|
|
||||||
"value": "0"
|
|
||||||
}],
|
|
||||||
"target_high": [{
|
|
||||||
"time": "00:00",
|
|
||||||
"value": "0"
|
|
||||||
}],
|
|
||||||
"startDate": "1970-01-01T00:00:00.000Z",
|
|
||||||
"units": "mmol"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"created_at": "2016-06-16T08:34:41.256Z"
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
void createConvertedProfile() {
|
void createConvertedProfile() {
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
JSONObject store = new JSONObject();
|
JSONObject store = new JSONObject();
|
||||||
|
@ -277,4 +239,27 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte
|
||||||
return convertedProfile;
|
return convertedProfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String basalString(){
|
||||||
|
return profileString(basebasal, timeshift, percentage);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String baseBasalString(){
|
||||||
|
return profileString(basebasal, 0, 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String profileString(double[] values, int timeshift, int percentage){
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append(0); sb.append("h: ");
|
||||||
|
sb.append(DecimalFormatter.to2Decimal(values[(timeshift+0)%24]*percentage/100d));
|
||||||
|
double prevVal = values[(timeshift+0)%24];
|
||||||
|
for (int i = 1; i < 24; i++) {
|
||||||
|
if(prevVal != values[(timeshift+i)%24]){
|
||||||
|
sb.append(", "); sb.append(i); sb.append("h: ");
|
||||||
|
sb.append(DecimalFormatter.to2Decimal(values[(timeshift+i)%24]*percentage/100d));
|
||||||
|
prevVal = values[(timeshift+i)%24];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,9 +7,22 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:fillViewport="true">
|
android:fillViewport="true">
|
||||||
<TableLayout
|
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:text="Profile View"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/circadianpercentageprofile_profileview"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceSmall"/>
|
||||||
|
|
||||||
|
<TableLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="left|top">
|
android:layout_gravity="left|top">
|
||||||
|
|
||||||
<TableRow
|
<TableRow
|
||||||
|
@ -192,5 +205,6 @@
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|
||||||
</TableLayout>
|
</TableLayout>
|
||||||
|
</LinearLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
Loading…
Reference in a new issue