diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesFragment.java
index 1424013440..458351cd62 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesFragment.java
@@ -67,24 +67,20 @@ public class ObjectivesFragment extends SubscriberFragment {
holder.startButton.setTag(o);
holder.verifyButton.setTag(o);
- holder.startButton.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- ObjectivesPlugin.Objective o = (ObjectivesPlugin.Objective) v.getTag();
- o.started = new Date();
+ holder.startButton.setOnClickListener(v -> {
+ ObjectivesPlugin.Objective o1 = (ObjectivesPlugin.Objective) v.getTag();
+ o1.started = new Date();
+ updateGUI();
+ ObjectivesPlugin.saveProgress();
+ });
+ holder.verifyButton.setOnClickListener(v -> {
+ ObjectivesPlugin.Objective o12 = (ObjectivesPlugin.Objective) v.getTag();
+ if (ObjectivesPlugin.getPlugin().requirementsMet(o12.num).done || enableFake.isChecked()) {
+ o12.accomplished = new Date();
updateGUI();
ObjectivesPlugin.saveProgress();
}
});
- holder.verifyButton.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- ObjectivesPlugin.Objective o = (ObjectivesPlugin.Objective) v.getTag();
- if (ObjectivesPlugin.getPlugin().requirementsMet(o.num).done || enableFake.isChecked()) {
- o.accomplished = new Date();
- updateGUI();
- ObjectivesPlugin.saveProgress();
- }
- }
- });
long prevObjectiveAccomplishedTime = position > 0 ?
objectives.get(position - 1).accomplished.getTime() : -1;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesPlugin.java
index 5a899bebe5..293029b80f 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/ObjectivesPlugin.java
@@ -22,6 +22,7 @@ import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
+import info.nightscout.androidaps.plugins.ConstraintsObjectives.events.EventObjectivesSaved;
import info.nightscout.androidaps.plugins.ConstraintsSafety.SafetyPlugin;
import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
import info.nightscout.androidaps.plugins.NSClientInternal.NSClientPlugin;
@@ -87,7 +88,7 @@ public class ObjectivesPlugin extends PluginBase implements ConstraintsInterface
this.started = started;
}
- boolean isStarted() {
+ public boolean isStarted() {
return started.getTime() > 0;
}
@@ -233,6 +234,7 @@ public class ObjectivesPlugin extends PluginBase implements ConstraintsInterface
editor.apply();
if (Config.logPrefsChange)
log.debug("Objectives stored");
+ MainApp.bus().post(new EventObjectivesSaved());
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/events/EventObjectivesSaved.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/events/EventObjectivesSaved.java
new file mode 100644
index 0000000000..1822368cf9
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConstraintsObjectives/events/EventObjectivesSaved.java
@@ -0,0 +1,6 @@
+package info.nightscout.androidaps.plugins.ConstraintsObjectives.events;
+
+import info.nightscout.androidaps.events.Event;
+
+public class EventObjectivesSaved extends Event {
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/startupwizard/SWDefinition.java b/app/src/main/java/info/nightscout/androidaps/startupwizard/SWDefinition.java
index 76cb43d12a..ef566d94a1 100644
--- a/app/src/main/java/info/nightscout/androidaps/startupwizard/SWDefinition.java
+++ b/app/src/main/java/info/nightscout/androidaps/startupwizard/SWDefinition.java
@@ -8,6 +8,7 @@ import com.squareup.otto.Subscribe;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
import java.util.ArrayList;
import java.util.List;
@@ -23,6 +24,7 @@ import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialo
import info.nightscout.androidaps.plugins.Careportal.OptionsToShow;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderFragment;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
+import info.nightscout.androidaps.plugins.ConstraintsObjectives.ObjectivesFragment;
import info.nightscout.androidaps.plugins.ConstraintsObjectives.ObjectivesPlugin;
import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
import info.nightscout.androidaps.plugins.NSClientInternal.NSClientPlugin;
@@ -34,6 +36,7 @@ import info.nightscout.androidaps.plugins.ProfileSimple.SimpleProfileFragment;
import info.nightscout.androidaps.plugins.ProfileSimple.SimpleProfilePlugin;
import info.nightscout.androidaps.startupwizard.events.EventSWLabel;
import info.nightscout.androidaps.startupwizard.events.EventSWUpdate;
+import info.nightscout.utils.ImportExportPrefs;
import info.nightscout.utils.LocaleHelper;
import info.nightscout.utils.PasswordProtection;
import info.nightscout.utils.SP;
@@ -66,7 +69,14 @@ public class SWDefinition {
// List all the screens here
add(new SWScreen(R.string.nav_setupwizard)
.add(new SWInfotext()
- .label(R.string.welcometosetupwizard) )
+ .label(R.string.welcometosetupwizard))
+ .add(new SWButton()
+ .text(R.string.nav_import)
+ .action(() -> ImportExportPrefs.importSharedPreferences(getActivity()))
+ .visibility(ImportExportPrefs.file::exists))
+ .add(new SWButton()
+ .text(R.string.exitwizard)
+ .action(() -> getActivity().finish()))
)
.add(new SWScreen(R.string.language)
.skippable(false)
@@ -215,6 +225,17 @@ public class SWDefinition {
.add(new SWPlugin()
.option(PluginType.APS)
.label(R.string.configbuilder_aps))
+ .add(new SWButton()
+ .text(R.string.apssetup)
+ .action(() -> {
+ final PluginBase plugin = (PluginBase) MainApp.getConfigBuilder().getActiveAPS();
+ PasswordProtection.QueryPassword(activity, R.string.settings_password, "settings_password", () -> {
+ Intent i = new Intent(activity, PreferencesActivity.class);
+ i.putExtra("id", plugin.getPreferencesId());
+ activity.startActivity(i);
+ }, null);
+ })
+ .visibility(() -> MainApp.getConfigBuilder().getActiveAPS() != null && ((PluginBase) MainApp.getConfigBuilder().getActiveAPS()).getPreferencesId() > 0))
.validator(() -> MainApp.getConfigBuilder().getActiveAPS() != null)
)
.add(new SWScreen(R.string.configbuilder_loop)
@@ -239,7 +260,7 @@ public class SWDefinition {
.add(new SWInfotext()
.label(R.string.setupwizard_objectives_description))
.add(new SWButton()
- .text(R.string.objectives_button_start)
+ .text(R.string.enableobjectives)
.action(() -> {
ObjectivesPlugin.getPlugin().setPluginEnabled(PluginType.CONSTRAINTS, true);
ObjectivesPlugin.getPlugin().setFragmentVisible(PluginType.CONSTRAINTS, true);
@@ -251,6 +272,13 @@ public class SWDefinition {
.validator(() -> ObjectivesPlugin.getPlugin().isEnabled(PluginType.CONSTRAINTS))
.visibility(() -> !ObjectivesPlugin.getPlugin().isFragmentVisible())
)
+ .add(new SWScreen(R.string.objectives)
+ .skippable(false)
+ .add(new SWFragment(this)
+ .add(new ObjectivesFragment()))
+ .validator(() -> ObjectivesPlugin.getPlugin().objectives.get(0).isStarted())
+ .visibility(() -> !ObjectivesPlugin.getPlugin().objectives.get(0).isStarted())
+ )
;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/startupwizard/SetupWizardActivity.java b/app/src/main/java/info/nightscout/androidaps/startupwizard/SetupWizardActivity.java
index 67af63326b..129159f93a 100644
--- a/app/src/main/java/info/nightscout/androidaps/startupwizard/SetupWizardActivity.java
+++ b/app/src/main/java/info/nightscout/androidaps/startupwizard/SetupWizardActivity.java
@@ -18,7 +18,9 @@ import info.nightscout.androidaps.MainActivity;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.events.EventProfileStoreChanged;
+import info.nightscout.androidaps.events.EventProfileSwitchChange;
import info.nightscout.androidaps.events.EventPumpStatusChanged;
+import info.nightscout.androidaps.plugins.ConstraintsObjectives.events.EventObjectivesSaved;
import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientStatus;
import info.nightscout.androidaps.startupwizard.events.EventSWUpdate;
import info.nightscout.utils.LocaleHelper;
@@ -95,6 +97,16 @@ public class SetupWizardActivity extends AppCompatActivity {
updateButtons();
}
+ @Subscribe
+ public void onEventProfileSwitchChange(EventProfileSwitchChange ignored) {
+ updateButtons();
+ }
+
+ @Subscribe
+ public void onEventObjectivesSaved(EventObjectivesSaved ignored) {
+ updateButtons();
+ }
+
private void generateLayout() {
SWScreen currentScreen = screens.get(currentWizardPage);
LinearLayout layout = SWItem.generateLayout(this.findViewById(R.id.sw_content_fields));
diff --git a/app/src/main/java/info/nightscout/utils/ImportExportPrefs.java b/app/src/main/java/info/nightscout/utils/ImportExportPrefs.java
index c2fbbf581e..22175e0281 100644
--- a/app/src/main/java/info/nightscout/utils/ImportExportPrefs.java
+++ b/app/src/main/java/info/nightscout/utils/ImportExportPrefs.java
@@ -33,7 +33,7 @@ import info.nightscout.androidaps.events.EventAppExit;
public class ImportExportPrefs {
private static Logger log = LoggerFactory.getLogger(ImportExportPrefs.class);
static File path = new File(Environment.getExternalStorageDirectory().toString());
- static final File file = new File(path, MainApp.gs(R.string.app_name) + "Preferences");
+ static public final File file = new File(path, MainApp.gs(R.string.app_name) + "Preferences");
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index e8980d3b65..70b22a620c 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -545,7 +545,7 @@
Zrušit prodloužený bolus
Hodnota bazálu [U/h]
Typ bazálu
- PřepnutíProfilu
+ Přepnutí profilu
Pumpa
Statusový řádek xDripu (hodinky)
Status z xDripu (hodinky)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 35fff2ce20..c9459cafe2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1063,9 +1063,11 @@
Pump setup
Read status
Changes must be done in NS
- Exit setup wizard?
+ Skip setup wizard
Where should blood glucose(BG) data be comming from ?
Press the button below to enable AndroidAPS to suggest/make basal changes
Press the button below to enable Objectives. Look in the Objectives tab, after you finish this wizard, to make AndroidAPS completely functional.
+ Enable Objectives
+ Configure APS plugin