From b9e91f3d20822ab2064a841087b46de289273450 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Mon, 2 Sep 2019 23:10:31 +0200 Subject: [PATCH] confirm dialog on entering code --- .../objectives/ObjectivesFragment.java | 8 ++- .../objectives/ObjectivesPlugin.java | 14 +++-- .../objectives/objectives/Objective.java | 4 +- .../objectives/objectives/Objective2.java | 6 ++- app/src/main/res/layout/objectives_item.xml | 53 ++++++++++--------- app/src/main/res/values/strings.xml | 3 +- 6 files changed, 55 insertions(+), 33 deletions(-) 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 @@ - - - - -