diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesFragment.java
index c1f7e673e0..131c022ae6 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesFragment.java
@@ -7,6 +7,7 @@ import android.support.v4.app.Fragment;
import android.support.v7.widget.CardView;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
+import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -37,6 +38,8 @@ public class ObjectivesFragment extends Fragment implements View.OnClickListener
RecyclerView recyclerView;
LinearLayoutManager llm;
CheckBox enableFake;
+ LinearLayout fake_layout;
+ TextView reset;
@Override
public void onClick(View v) {
@@ -82,7 +85,7 @@ public class ObjectivesFragment extends Fragment implements View.OnClickListener
ObjectivesPlugin.Objective o = (ObjectivesPlugin.Objective) v.getTag();
o.started = new Date();
updateGUI();
- objectivesPlugin.saveProgress();
+ ObjectivesPlugin.saveProgress();
}
});
holder.verifyButton.setOnClickListener(new View.OnClickListener() {
@@ -91,7 +94,7 @@ public class ObjectivesFragment extends Fragment implements View.OnClickListener
if (objectivesPlugin.requirementsMet(o.num).done || enableFake.isChecked()) {
o.accomplished = new Date();
updateGUI();
- objectivesPlugin.saveProgress();
+ ObjectivesPlugin.saveProgress();
}
}
});
@@ -185,11 +188,20 @@ public class ObjectivesFragment extends Fragment implements View.OnClickListener
llm = new LinearLayoutManager(view.getContext());
recyclerView.setLayoutManager(llm);
enableFake = (CheckBox) view.findViewById(R.id.objectives_fake);
+ fake_layout = (LinearLayout) view.findViewById(R.id.objectives_fake_layout);
+ reset = (TextView) view.findViewById(R.id.objectives_reset);
enableFake.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
updateGUI();
}
});
+ reset.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ objectivesPlugin.initializeData();
+ objectivesPlugin.saveProgress();
+ updateGUI();
+ }
+ });
// Add correct translations to array after app is initialized
objectivesPlugin.objectives.get(0).objective = MainApp.sResources.getString(R.string.objectives_0_objective);
@@ -216,7 +228,7 @@ public class ObjectivesFragment extends Fragment implements View.OnClickListener
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
- RecyclerViewAdapter adapter = new RecyclerViewAdapter(objectivesPlugin.objectives);
+ RecyclerViewAdapter adapter = new RecyclerViewAdapter(ObjectivesPlugin.objectives);
recyclerView.setAdapter(adapter);
}
});
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java
index 31014b99e9..3aeb44125a 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java
@@ -16,6 +16,7 @@ import info.nightscout.androidaps.R;
import info.nightscout.androidaps.interfaces.ConstraintsInterface;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
+import info.nightscout.utils.SafeParse;
/**
* Created by mike on 05.08.2016.
@@ -130,66 +131,68 @@ public class ObjectivesPlugin implements PluginBase, ConstraintsInterface {
}
- private void initializeData() {
+ public void initializeData() {
objectives = new ArrayList<>();
objectives.add(new Objective(0,
MainApp.sResources.getString(R.string.objectives_0_objective),
MainApp.sResources.getString(R.string.objectives_0_gate),
- new Date(0, 0, 0),
+ new Date(0),
1, // 1 day
- new Date(0, 0, 0)));
+ new Date(0)));
objectives.add(new Objective(1,
MainApp.sResources.getString(R.string.objectives_1_objective),
MainApp.sResources.getString(R.string.objectives_1_gate),
- new Date(0, 0, 0),
+ new Date(0),
7, // 7 days
- new Date(0, 0, 0)));
+ new Date(0)));
objectives.add(new Objective(2,
MainApp.sResources.getString(R.string.objectives_2_objective),
MainApp.sResources.getString(R.string.objectives_2_gate),
- new Date(0, 0, 0),
+ new Date(0),
0, // 0 days
- new Date(0, 0, 0)));
+ new Date(0)));
objectives.add(new Objective(3,
MainApp.sResources.getString(R.string.objectives_3_objective),
MainApp.sResources.getString(R.string.objectives_3_gate),
- new Date(0, 0, 0),
+ new Date(0),
5, // 5 days
- new Date(0, 0, 0)));
+ new Date(0)));
objectives.add(new Objective(4,
MainApp.sResources.getString(R.string.objectives_4_objective),
MainApp.sResources.getString(R.string.objectives_4_gate),
- new Date(0, 0, 0),
+ new Date(0),
1,
- new Date(0, 0, 0)));
+ new Date(0)));
objectives.add(new Objective(5,
MainApp.sResources.getString(R.string.objectives_5_objective),
MainApp.sResources.getString(R.string.objectives_5_gate),
- new Date(0, 0, 0),
+ new Date(0),
7,
- new Date(0, 0, 0)));
+ new Date(0)));
objectives.add(new Objective(6,
MainApp.sResources.getString(R.string.objectives_6_objective),
"",
- new Date(0, 0, 0),
+ new Date(0),
1,
- new Date(0, 0, 0)));
+ new Date(0)));
}
public static void saveProgress() {
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext());
- SharedPreferences.Editor editor = settings.edit();
- for (int num = 0; num < objectives.size(); num++) {
- Objective o = objectives.get(num);
- editor.putLong("Objectives" + num + "started", o.started.getTime());
- editor.putLong("Objectives" + num + "accomplished", o.accomplished.getTime());
+ if (objectives != null) {
+ SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext());
+ SharedPreferences.Editor editor = settings.edit();
+ for (int num = 0; num < objectives.size(); num++) {
+ Objective o = objectives.get(num);
+ editor.putString("Objectives" + num + "started", Long.toString(o.started.getTime()));
+ editor.putString("Objectives" + num + "accomplished", Long.toString(o.accomplished.getTime()));
+ }
+ editor.putBoolean("Objectives" + "bgIsAvailableInNS", bgIsAvailableInNS);
+ editor.putBoolean("Objectives" + "pumpStatusIsAvailableInNS", pumpStatusIsAvailableInNS);
+ editor.putString("Objectives" + "manualEnacts", Integer.toString(manualEnacts));
+ editor.apply();
+ if (Config.logPrefsChange)
+ log.debug("Objectives stored");
}
- editor.putBoolean("Objectives" + "bgIsAvailableInNS", bgIsAvailableInNS);
- editor.putBoolean("Objectives" + "pumpStatusIsAvailableInNS", pumpStatusIsAvailableInNS);
- editor.putInt("Objectives" + "manualEnacts", manualEnacts);
- editor.apply();
- if (Config.logPrefsChange)
- log.debug("Objectives stored");
}
void loadProgress() {
@@ -197,8 +200,8 @@ public class ObjectivesPlugin implements PluginBase, ConstraintsInterface {
for (int num = 0; num < objectives.size(); num++) {
Objective o = objectives.get(num);
try {
- o.started = new Date(settings.getLong("Objectives" + num + "started", 0));
- o.accomplished = new Date(settings.getLong("Objectives" + num + "accomplished", 0));
+ o.started = new Date(SafeParse.stringToLong(settings.getString("Objectives" + num + "started", "0")));
+ o.accomplished = new Date(SafeParse.stringToLong(settings.getString("Objectives" + num + "accomplished", "0")));
} catch (Exception e) {
e.printStackTrace();
}
@@ -206,7 +209,7 @@ public class ObjectivesPlugin implements PluginBase, ConstraintsInterface {
bgIsAvailableInNS = settings.getBoolean("Objectives" + "bgIsAvailableInNS", false);
pumpStatusIsAvailableInNS = settings.getBoolean("Objectives" + "pumpStatusIsAvailableInNS", false);
try {
- manualEnacts = settings.getInt("Objectives" + "manualEnacts", 0);
+ manualEnacts = SafeParse.stringToInt(settings.getString("Objectives" + "manualEnacts", "0"));
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/app/src/main/res/layout/objectives_fragment.xml b/app/src/main/res/layout/objectives_fragment.xml
index c28805aac8..75fa19eaf1 100644
--- a/app/src/main/res/layout/objectives_fragment.xml
+++ b/app/src/main/res/layout/objectives_fragment.xml
@@ -9,11 +9,29 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
+ android:id="@+id/objectives_fake_layout"
+ android:visibility="gone">
+
+
+
+
+