From fa20af444043e34f98e4d2ed63db8fc92c7de763 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Sun, 13 Oct 2019 17:58:45 +0200 Subject: [PATCH] network status before time --- .../constraints/objectives/ObjectivesFragment.kt | 9 +++++---- .../objectives/activities/ObjectivesExamDialog.kt | 7 +++---- .../objectives/objectives/Objective.java | 2 +- .../objectives/objectives/Objective2.java | 5 +++++ .../general/nsclient/NsClientReceiverDelegate.java | 2 +- .../receivers/NetworkChangeReceiver.java | 14 +++++++++++++- .../main/res/layout/objectives_exam_fragment.xml | 2 +- app/src/main/res/values/exam.xml | 3 +++ app/src/main/res/values/objectives.xml | 2 +- 9 files changed, 33 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt index cd6e6dff4c..52f394285d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt @@ -51,7 +51,6 @@ class ObjectivesFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - objectives_recyclerview.layoutManager = LinearLayoutManager(view.context) objectives_recyclerview.adapter = objectivesAdapter objectives_fake.setOnClickListener { updateGUI() } @@ -208,15 +207,16 @@ class ObjectivesFragment : Fragment() { holder.accomplished.setTextColor(-0x3e3e3f) holder.verify.setOnClickListener { holder.verify.visibility = View.INVISIBLE + NetworkChangeReceiver.fetch() SntpClient.ntpTime(object : SntpClient.Callback() { override fun run() { activity?.runOnUiThread { holder.verify.visibility = View.VISIBLE log.debug("NTP time: $time System time: ${DateUtil.now()}") - if (!networkConnected) { + if (!networkConnected && !objectives_fake.isChecked) { ToastUtils.showToastInUiThread(context, R.string.notconnected) } else if (success) { - if (objective.isCompleted(time)) { + if (objective.isCompleted(time) || objectives_fake.isChecked) { objective.accomplishedOn = time notifyDataSetChanged() scrollToCurrentObjective() @@ -233,12 +233,13 @@ class ObjectivesFragment : Fragment() { } holder.start.setOnClickListener { holder.start.visibility = View.INVISIBLE + NetworkChangeReceiver.fetch() SntpClient.ntpTime(object : SntpClient.Callback() { override fun run() { activity?.runOnUiThread { holder.start.visibility = View.VISIBLE log.debug("NTP time: $time System time: ${DateUtil.now()}") - if (!networkConnected) { + if (!networkConnected && !objectives_fake.isChecked) { ToastUtils.showToastInUiThread(context, R.string.notconnected) } else if (success) { objective.startedOn = time diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt index 30ab4b500b..1428652be5 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt @@ -57,12 +57,11 @@ class ObjectivesExamDialog : DialogFragment() { objectives_exam_question.setText(task.question) // Options objectives_exam_options.removeAllViews() - for (o in task.options) { - val option: Option = o as Option; - val cb = option.generate(context) + task.options.forEach { + val cb = it.generate(context) if (task.answered) { cb.isEnabled = false - if (option.isCorrect) + if (it.isCorrect) cb.isChecked = true } objectives_exam_options.addView(cb) 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 b126f93673..c882a921f5 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 @@ -230,7 +230,7 @@ public abstract class Objective { return question; } - public List getOptions() { + public List getOptions() { return options; } 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 58d27308a5..017ad33a8c 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 @@ -199,6 +199,11 @@ public class Objective2 extends Objective { .hint(new Hint(R.string.profileswitchtime_hint1)) ); + tasks.add(new ExamTask(R.string.other_medication_label, R.string.other_medication_text,"otherMedicationWarning") + .option(new Option(R.string.yes, true)) + .option(new Option(R.string.no, false)) + ); + for (Task task : tasks) Collections.shuffle(((ExamTask)task).options); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegate.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegate.java index 072ad6cd56..daeb646053 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegate.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegate.java @@ -23,7 +23,7 @@ class NsClientReceiverDelegate { private final Context context; private final Bus bus; - private NetworkChangeReceiver networkChangeReceiver = new NetworkChangeReceiver(); + private NetworkChangeReceiver networkChangeReceiver = NetworkChangeReceiver.instance; private ChargingStateReceiver chargingStateReceiver = new ChargingStateReceiver(); private boolean allowedChargingState = true; diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.java b/app/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.java index 2695ad64f2..efe836cd28 100644 --- a/app/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.java +++ b/app/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.java @@ -8,6 +8,7 @@ import android.net.NetworkInfo; import android.net.wifi.SupplicantState; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; + import androidx.annotation.Nullable; import org.slf4j.Logger; @@ -23,6 +24,17 @@ public class NetworkChangeReceiver extends BroadcastReceiver { private static EventNetworkChange lastEvent = null; + public static final NetworkChangeReceiver instance = new NetworkChangeReceiver(); + + // TODO: Split NSClient into network state component that can be used by several plugins and logic for plugin + public static void fetch() { + NetworkChangeReceiver.instance.grabNetworkStatus(MainApp.instance().getApplicationContext()); + } + + private NetworkChangeReceiver() { + super(); + } + @Override public void onReceive(final Context context, final Intent intent) { EventNetworkChange event = grabNetworkStatus(context); @@ -71,7 +83,7 @@ public class NetworkChangeReceiver extends BroadcastReceiver { return lastEvent != null && lastEvent.wifiConnected; } - public static boolean isConnected() { + public static boolean isConnected() { return lastEvent != null && (lastEvent.wifiConnected || lastEvent.mobileConnected); } diff --git a/app/src/main/res/layout/objectives_exam_fragment.xml b/app/src/main/res/layout/objectives_exam_fragment.xml index ff906d036d..2fe02877bd 100644 --- a/app/src/main/res/layout/objectives_exam_fragment.xml +++ b/app/src/main/res/layout/objectives_exam_fragment.xml @@ -105,7 +105,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" - android:text="Disabled to:" + android:text="Disabled until:" android:textColor="#FF5722" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/values/exam.xml b/app/src/main/res/values/exam.xml index ae4fa99587..1303038828 100644 --- a/app/src/main/res/values/exam.xml +++ b/app/src/main/res/values/exam.xml @@ -162,5 +162,8 @@ Your diabetes team Google Facebook + Other Medication + AAPS reduces BR to raise blood sugar. Drugs from the group of SGLT2 inhibitors (gliflozins) can prevent the expected increase and thus may produce a dangerous insulin deficiency (DKA). +\nCommon brand names are: Invokana®, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®.\n\nI hereby confirm that I will not take such drugs when using AAPS or will deactivate the loop before using these drugs. diff --git a/app/src/main/res/values/objectives.xml b/app/src/main/res/values/objectives.xml index 8464c4d947..469db88006 100644 --- a/app/src/main/res/values/objectives.xml +++ b/app/src/main/res/values/objectives.xml @@ -52,7 +52,7 @@ Code invalid Prove your knowledge Study and answer questions correctly - Answering disabled to: %1$s + Answering disabled until: %1$s Wrong answer! Next unfinished Request code: %1$s