diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.java
index c9399edbc3..01af38473a 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.java
@@ -189,17 +189,19 @@ public class ObjectivesFragment extends SubscriberFragment {
notifyDataSetChanged();
scrollToCurrentObjective();
});
- if (objective.hasSpecialInput) {
+ if (objective.hasSpecialInput && !objective.isAccomplished()) {
holder.enterButton.setVisibility(View.VISIBLE);
holder.input.setVisibility(View.VISIBLE);
+ holder.inputHint.setVisibility(View.VISIBLE);
holder.enterButton.setOnClickListener((view) -> {
String input = holder.input.getText().toString();
- objective.specialAction(input);
+ objective.specialAction(getActivity(), input);
notifyDataSetChanged();
});
} else {
holder.enterButton.setVisibility(View.GONE);
holder.input.setVisibility(View.GONE);
+ holder.inputHint.setVisibility(View.GONE);
}
}
@@ -220,6 +222,7 @@ public class ObjectivesFragment extends SubscriberFragment {
Button verify;
public Button start;
Button revert;
+ TextView inputHint;
EditText input;
Button enterButton;
@@ -234,6 +237,7 @@ public class ObjectivesFragment extends SubscriberFragment {
start = itemView.findViewById(R.id.objective_start);
revert = itemView.findViewById(R.id.objective_back);
accomplished = itemView.findViewById(R.id.objective_accomplished);
+ inputHint = itemView.findViewById(R.id.objective_inputhint);
input = itemView.findViewById(R.id.objective_input);
enterButton = itemView.findViewById(R.id.objective_enterbutton);
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesPlugin.java
index 30267425c9..9020cdf29b 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesPlugin.java
@@ -1,5 +1,7 @@
package info.nightscout.androidaps.plugins.constraints.objectives;
+import android.app.Activity;
+
import com.google.common.base.Charsets;
import com.google.common.hash.Hashing;
@@ -33,6 +35,7 @@ import info.nightscout.androidaps.plugins.constraints.objectives.objectives.Obje
import info.nightscout.androidaps.plugins.constraints.objectives.objectives.Objective7;
import info.nightscout.androidaps.plugins.constraints.objectives.objectives.Objective8;
import info.nightscout.androidaps.utils.DateUtil;
+import info.nightscout.androidaps.utils.OKDialog;
import info.nightscout.androidaps.utils.SP;
/**
@@ -106,6 +109,7 @@ public class ObjectivesPlugin extends PluginBase implements ConstraintsInterface
}
private void setupObjectives() {
+ objectives.clear();
objectives.add(new Objective0());
objectives.add(new Objective1());
objectives.add(new Objective2());
@@ -153,11 +157,11 @@ public class ObjectivesPlugin extends PluginBase implements ConstraintsInterface
return objectives;
}
- public void completeObjectives(String request) {
+ public void completeObjectives(Activity activity, String request) {
String url = SP.getString(R.string.key_nsclientinternal_url, "").toLowerCase();
- if (!url.endsWith("\"")) url = url + "\"";
+ if (!url.endsWith("\"")) url = url + "/";
String hashNS = Hashing.sha1().hashString(url + BuildConfig.APPLICATION_ID, Charsets.UTF_8).toString();
- if (request.equalsIgnoreCase(hashNS.substring(0, 9))) {
+ if (request.equalsIgnoreCase(hashNS.substring(0, 10))) {
SP.putLong("Objectives_" + "openloop" + "_started", DateUtil.now());
SP.putLong("Objectives_" + "openloop" + "_accomplished", DateUtil.now());
SP.putLong("Objectives_" + "maxbasal" + "_started", DateUtil.now());
@@ -172,6 +176,10 @@ public class ObjectivesPlugin extends PluginBase implements ConstraintsInterface
SP.putLong("Objectives_" + "ama" + "_accomplished", DateUtil.now());
SP.putLong("Objectives_" + "smb" + "_started", DateUtil.now());
SP.putLong("Objectives_" + "smb" + "_accomplished", DateUtil.now());
+ setupObjectives();
+ OKDialog.show(activity, "", MainApp.gs(R.string.codeaccepted), null);
+ } else {
+ OKDialog.show(activity, "", MainApp.gs(R.string.codeinvalid), null);
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.java b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.java
index 5a32e35c4f..6a5559a3e5 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.java
@@ -1,5 +1,7 @@
package info.nightscout.androidaps.plugins.constraints.objectives.objectives;
+import android.app.Activity;
+
import androidx.annotation.StringRes;
import java.util.ArrayList;
@@ -86,7 +88,7 @@ public abstract class Objective {
return tasks;
}
- public void specialAction(String input) {}
+ public void specialAction(Activity activity, String input) {}
public abstract class Task {
@StringRes
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective2.java b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective2.java
index 4096fd9d42..aae98b1462 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective2.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective2.java
@@ -1,5 +1,7 @@
package info.nightscout.androidaps.plugins.constraints.objectives.objectives;
+import android.app.Activity;
+
import java.util.List;
import info.nightscout.androidaps.MainApp;
@@ -36,7 +38,7 @@ public class Objective2 extends Objective {
}
@Override
- public void specialAction(String input) {
- ObjectivesPlugin.getPlugin().completeObjectives(input);
+ public void specialAction(Activity activity, String input) {
+ ObjectivesPlugin.getPlugin().completeObjectives(activity, input);
}
}
diff --git a/app/src/main/res/layout/objectives_item.xml b/app/src/main/res/layout/objectives_item.xml
index e7a3901c59..42ea14741e 100644
--- a/app/src/main/res/layout/objectives_item.xml
+++ b/app/src/main/res/layout/objectives_item.xml
@@ -53,30 +53,6 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
Display content of Loop plugin
Use scale function by long-pressing BG chart
Enter
- or enter code
Enter code obtained from developers to bypass the rest of objectives
+ Code accepted
+ Code invalid
- %1$d day