From e58b7f80407c6f1176994c81243d85c6d4f9c7ab Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 19 Dec 2019 21:59:07 +0100 Subject: [PATCH] Simplify NSClient --- app/src/main/AndroidManifest.xml | 10 - .../info/nightscout/androidaps/MainApp.java | 14 +- .../nightscout/androidaps/db/DbRequest.java | 36 ++-- .../general/nsclient/NSClientPlugin.java | 23 +++ .../plugins/general/nsclient/NSUpload.java | 187 ++---------------- .../broadcasts/BroadcastAckAlarm.java | 43 ---- .../broadcasts/BroadcastTreatment.java | 3 +- .../general/nsclient/data/DbLogger.java | 43 ---- .../nsclient/receivers/AckAlarmReceiver.java | 60 ------ .../nsclient/receivers/DBAccessReceiver.java | 147 -------------- .../NotificationRecyclerViewAdapter.java | 4 +- .../androidaps/services/DataService.java | 4 - .../androidaps/services/Intents.java | 5 - 13 files changed, 74 insertions(+), 505 deletions(-) delete mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/broadcasts/BroadcastAckAlarm.java delete mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/data/DbLogger.java delete mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/receivers/AckAlarmReceiver.java delete mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/receivers/DBAccessReceiver.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e65406b50f..d970f54054 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -123,16 +123,6 @@ - - - - - - - diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java index 5173377b33..9933f75ac9 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainApp.java +++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java @@ -49,13 +49,9 @@ import info.nightscout.androidaps.plugins.general.maintenance.LoggerUtils; import info.nightscout.androidaps.plugins.general.maintenance.MaintenancePlugin; import info.nightscout.androidaps.plugins.general.nsclient.NSClientPlugin; import info.nightscout.androidaps.plugins.general.nsclient.NSUpload; -import info.nightscout.androidaps.plugins.general.nsclient.receivers.AckAlarmReceiver; -import info.nightscout.androidaps.plugins.general.nsclient.receivers.DBAccessReceiver; import info.nightscout.androidaps.plugins.general.overview.OverviewPlugin; import info.nightscout.androidaps.plugins.general.persistentNotification.PersistentNotificationPlugin; import info.nightscout.androidaps.plugins.general.smsCommunicator.SmsCommunicatorPlugin; -import info.nightscout.androidaps.plugins.source.RandomBgPlugin; -import info.nightscout.androidaps.utils.ActivityMonitor; import info.nightscout.androidaps.plugins.general.wear.WearPlugin; import info.nightscout.androidaps.plugins.general.xdripStatusline.StatuslinePlugin; import info.nightscout.androidaps.plugins.insulin.InsulinOrefFreePeakPlugin; @@ -77,6 +73,7 @@ import info.nightscout.androidaps.plugins.sensitivity.SensitivityAAPSPlugin; import info.nightscout.androidaps.plugins.sensitivity.SensitivityOref0Plugin; import info.nightscout.androidaps.plugins.sensitivity.SensitivityOref1Plugin; import info.nightscout.androidaps.plugins.sensitivity.SensitivityWeightedAveragePlugin; +import info.nightscout.androidaps.plugins.source.RandomBgPlugin; import info.nightscout.androidaps.plugins.source.SourceDexcomPlugin; import info.nightscout.androidaps.plugins.source.SourceEversensePlugin; import info.nightscout.androidaps.plugins.source.SourceGlimpPlugin; @@ -91,6 +88,7 @@ import info.nightscout.androidaps.receivers.KeepAliveReceiver; import info.nightscout.androidaps.receivers.NSAlarmReceiver; import info.nightscout.androidaps.receivers.TimeDateOrTZChangeReceiver; import info.nightscout.androidaps.services.Intents; +import info.nightscout.androidaps.utils.ActivityMonitor; import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.LocaleHelper; import info.nightscout.androidaps.utils.SP; @@ -115,8 +113,6 @@ public class MainApp extends Application { private static DataReceiver dataReceiver = new DataReceiver(); private static NSAlarmReceiver alarmReciever = new NSAlarmReceiver(); - private static AckAlarmReceiver ackAlarmReciever = new AckAlarmReceiver(); - private static DBAccessReceiver dbAccessReciever = new DBAccessReceiver(); private LocalBroadcastManager lbm; BroadcastReceiver btReceiver; TimeDateOrTZChangeReceiver timeDateOrTZChangeReceiver; @@ -297,12 +293,6 @@ public class MainApp extends Application { lbm.registerReceiver(alarmReciever, new IntentFilter(Intents.ACTION_CLEAR_ALARM)); lbm.registerReceiver(alarmReciever, new IntentFilter(Intents.ACTION_URGENT_ALARM)); - //register ack alarm - lbm.registerReceiver(ackAlarmReciever, new IntentFilter(Intents.ACTION_ACK_ALARM)); - - //register dbaccess - lbm.registerReceiver(dbAccessReciever, new IntentFilter(Intents.ACTION_DATABASE)); - this.timeDateOrTZChangeReceiver = new TimeDateOrTZChangeReceiver(); this.timeDateOrTZChangeReceiver.registerBroadcasts(this); diff --git a/app/src/main/java/info/nightscout/androidaps/db/DbRequest.java b/app/src/main/java/info/nightscout/androidaps/db/DbRequest.java index f287e169ce..8ea286e793 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/DbRequest.java +++ b/app/src/main/java/info/nightscout/androidaps/db/DbRequest.java @@ -11,6 +11,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import info.nightscout.androidaps.logging.L; +import info.nightscout.androidaps.utils.DateUtil; /** * Created by mike on 27.02.2016. @@ -40,36 +41,49 @@ public class DbRequest { } // dbAdd - public DbRequest(String action, String collection, String nsClientID, JSONObject data) { + public DbRequest(String action, String collection, JSONObject data) { + try { + data.put("NSCLIENT_ID", nsClientID); + } catch (JSONException e) { + e.printStackTrace(); + } this.action = action; this.collection = collection; this.data = data.toString(); - this.nsClientID = nsClientID; + this.nsClientID = "" + DateUtil.now(); this._id = ""; } // dbUpdate, dbUpdateUnset - public DbRequest(String action, String collection, String nsClientID, String _id, JSONObject data) { + public DbRequest(String action, String collection, String _id, JSONObject data) { + try { + data.put("NSCLIENT_ID", nsClientID); + } catch (JSONException e) { + e.printStackTrace(); + } this.action = action; this.collection = collection; this.data = data.toString(); - this.nsClientID = nsClientID; + this.nsClientID = "" + DateUtil.now(); this._id = _id; } // dbRemove - public DbRequest(String action, String collection, String nsClientID, String _id) { + public DbRequest(String action, String collection, + String _id) { + JSONObject data = new JSONObject(); + try { + data.put("NSCLIENT_ID", nsClientID); + } catch (JSONException e) { + e.printStackTrace(); + } this.action = action; this.collection = collection; - this.data = new JSONObject().toString(); - this.nsClientID = nsClientID; + this.data = data.toString(); + this.nsClientID = "" + DateUtil.now(); this._id = _id; } - public String hash() { - return Hashing.sha1().hashString(action + collection + _id + data.toString(), Charsets.UTF_8).toString(); - } - public JSONObject toJSON() { JSONObject object = new JSONObject(); try { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSClientPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSClientPlugin.java index 037f91b3f0..957d69a935 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSClientPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSClientPlugin.java @@ -32,6 +32,8 @@ import info.nightscout.androidaps.interfaces.PluginDescription; import info.nightscout.androidaps.interfaces.PluginType; import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.bus.RxBus; +import info.nightscout.androidaps.plugins.general.nsclient.data.AlarmAck; +import info.nightscout.androidaps.plugins.general.nsclient.data.NSAlarm; import info.nightscout.androidaps.plugins.general.nsclient.events.EventNSClientNewLog; import info.nightscout.androidaps.plugins.general.nsclient.events.EventNSClientStatus; import info.nightscout.androidaps.plugins.general.nsclient.events.EventNSClientUpdateGUI; @@ -250,4 +252,25 @@ public class NSClientPlugin extends PluginBase { public boolean hasWritePermission() { return nsClientService.hasWriteAuth; } + + public void handleClearAlarm(NSAlarm originalAlarm, long silenceTimeInMsec) { + + if (!isEnabled(PluginType.GENERAL)) { + return; + } + if (SP.getBoolean(R.string.key_ns_noupload, false)) { + if (L.isEnabled(L.NSCLIENT)) + log.debug("Upload disabled. Message dropped"); + return; + } + + AlarmAck ack = new AlarmAck(); + ack.level = originalAlarm.getLevel(); + ack.group = originalAlarm.getGroup(); + ack.silenceTime = silenceTimeInMsec; + + if (nsClientService != null) + nsClientService.sendAlarmAck(ack); + } + } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSUpload.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSUpload.java index 49e33c8215..52cdcb5f01 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSUpload.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSUpload.java @@ -7,8 +7,8 @@ import android.content.pm.ResolveInfo; import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; + import androidx.annotation.Nullable; -import androidx.localbroadcastmanager.content.LocalBroadcastManager; import org.apache.commons.lang3.StringUtils; import org.json.JSONArray; @@ -24,22 +24,21 @@ import java.util.Locale; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; -import info.nightscout.androidaps.logging.L; -import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; -import info.nightscout.androidaps.services.Intents; import info.nightscout.androidaps.data.DetailedBolusInfo; import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.CareportalEvent; +import info.nightscout.androidaps.db.DbRequest; import info.nightscout.androidaps.db.ExtendedBolus; import info.nightscout.androidaps.db.ProfileSwitch; import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.db.TemporaryBasal; -import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.aps.loop.APSResult; import info.nightscout.androidaps.plugins.aps.loop.DeviceStatus; import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin; -import info.nightscout.androidaps.plugins.general.nsclient.data.DbLogger; +import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; import info.nightscout.androidaps.utils.BatteryLevel; import info.nightscout.androidaps.utils.DateUtil; import info.nightscout.androidaps.utils.SP; @@ -65,15 +64,7 @@ public class NSUpload { data.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name)); if (originalExtendedAmount != null) data.put("originalExtendedAmount", originalExtendedAmount); // for back synchronization - Bundle bundle = new Bundle(); - bundle.putString("action", "dbAdd"); - bundle.putString("collection", "treatments"); - bundle.putString("data", data.toString()); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString()); + UploadQueue.add(new DbRequest("dbAdd", "treatments", data)); } catch (JSONException e) { log.error("Unhandled exception", e); } @@ -107,15 +98,7 @@ public class NSUpload { data.put("pumpId", temporaryBasal.pumpId); data.put("created_at", DateUtil.toISOString(temporaryBasal.date)); data.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name)); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbAdd"); - bundle.putString("collection", "treatments"); - bundle.putString("data", data.toString()); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString()); + UploadQueue.add(new DbRequest("dbAdd", "treatments", data)); } } catch (JSONException e) { log.error("Unhandled exception", e); @@ -133,15 +116,7 @@ public class NSUpload { data.put("isFakedTempBasal", isFakedTempBasal); if (pumpId != 0) data.put("pumpId", pumpId); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbAdd"); - bundle.putString("collection", "treatments"); - bundle.putString("data", data.toString()); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString()); + UploadQueue.add(new DbRequest("dbAdd", "treatments", data)); } catch (JSONException e) { log.error("Unhandled exception", e); } @@ -161,15 +136,7 @@ public class NSUpload { data.put("pumpId", extendedBolus.pumpId); data.put("created_at", DateUtil.toISOString(extendedBolus.date)); data.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name)); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbAdd"); - bundle.putString("collection", "treatments"); - bundle.putString("data", data.toString()); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString()); + UploadQueue.add(new DbRequest("dbAdd", "treatments", data)); } catch (JSONException e) { log.error("Unhandled exception", e); } @@ -189,15 +156,7 @@ public class NSUpload { data.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name)); if (pumpId != 0) data.put("pumpId", pumpId); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbAdd"); - bundle.putString("collection", "treatments"); - bundle.putString("data", data.toString()); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString()); + UploadQueue.add(new DbRequest("dbAdd", "treatments", data)); } catch (JSONException e) { log.error("Unhandled exception", e); } @@ -258,16 +217,7 @@ public class NSUpload { deviceStatus.uploaderBattery = batteryLevel; deviceStatus.created_at = DateUtil.toISOString(new Date()); - Context context = MainApp.instance().getApplicationContext(); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbAdd"); - bundle.putString("collection", "devicestatus"); - bundle.putString("data", deviceStatus.mongoRecord().toString()); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, deviceStatus.mongoRecord().toString()); + UploadQueue.add(new DbRequest("dbAdd", "devicestatus", deviceStatus.mongoRecord().toString())); } catch (JSONException e) { log.error("Unhandled exception", e); } @@ -333,17 +283,7 @@ public class NSUpload { try { JSONObject data = getJson(profileSwitch); if (profileSwitch._id != null) { - Context context = MainApp.instance().getApplicationContext(); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbUpdate"); - bundle.putString("collection", "treatments"); - bundle.putString("data", data.toString()); - bundle.putString("_id", profileSwitch._id); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString()); + UploadQueue.add(new DbRequest("dbUpdate", "treatments", profileSwitch._id, data)); } } catch (JSONException e) { log.error("Unhandled exception", e); @@ -382,16 +322,7 @@ public class NSUpload { prebolus.put("created_at", DateUtil.toISOString(preBolusDate)); uploadCareportalEntryToNS(prebolus); } - Context context = MainApp.instance().getApplicationContext(); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbAdd"); - bundle.putString("collection", "treatments"); - bundle.putString("data", data.toString()); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString()); + UploadQueue.add(new DbRequest("dbAdd", "treatments", data)); } catch (Exception e) { log.error("Unhandled exception", e); } @@ -399,21 +330,7 @@ public class NSUpload { } public static void removeCareportalEntryFromNS(String _id) { - try { - Context context = MainApp.instance().getApplicationContext(); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbRemove"); - bundle.putString("collection", "treatments"); - bundle.putString("_id", _id); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbRemove(intent, _id); - } catch (Exception e) { - log.error("Unhandled exception", e); - } - + UploadQueue.add(new DbRequest("dbRemove", "treatments", _id)); } public static void uploadOpenAPSOffline(double durationInMinutes) { @@ -424,15 +341,7 @@ public class NSUpload { data.put("duration", durationInMinutes); data.put("created_at", DateUtil.toISOString(new Date())); data.put("enteredBy", "openaps://" + MainApp.gs(R.string.app_name)); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbAdd"); - bundle.putString("collection", "treatments"); - bundle.putString("data", data.toString()); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString()); + UploadQueue.add(new DbRequest("dbAdd", "treatments", data)); } catch (JSONException e) { log.error("Unhandled exception", e); } @@ -443,10 +352,6 @@ public class NSUpload { } public static void uploadError(String error, Date date) { - Context context = MainApp.instance().getApplicationContext(); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbAdd"); - bundle.putString("collection", "treatments"); JSONObject data = new JSONObject(); try { data.put("eventType", "Announcement"); @@ -457,19 +362,10 @@ public class NSUpload { } catch (JSONException e) { log.error("Unhandled exception", e); } - bundle.putString("data", data.toString()); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString()); + UploadQueue.add(new DbRequest("dbAdd", "treatments", data)); } public static void uploadBg(BgReading reading, String source) { - Context context = MainApp.instance().getApplicationContext(); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbAdd"); - bundle.putString("collection", "entries"); JSONObject data = new JSONObject(); try { data.put("device", source); @@ -481,20 +377,11 @@ public class NSUpload { } catch (JSONException e) { log.error("Unhandled exception", e); } - bundle.putString("data", data.toString()); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString()); + UploadQueue.add(new DbRequest("dbAdd", "entries", data)); } public static void uploadAppStart() { if (SP.getBoolean(R.string.key_ns_logappstartedevent, true)) { - Context context = MainApp.instance().getApplicationContext(); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbAdd"); - bundle.putString("collection", "treatments"); JSONObject data = new JSONObject(); try { data.put("eventType", "Note"); @@ -503,35 +390,17 @@ public class NSUpload { } catch (JSONException e) { log.error("Unhandled exception", e); } - bundle.putString("data", data.toString()); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString()); + UploadQueue.add(new DbRequest("dbAdd", "treatments", data)); } } public static void uploadProfileStore(JSONObject profileStore) { if (SP.getBoolean(R.string.key_ns_uploadlocalprofile, false)) { - Context context = MainApp.instance().getApplicationContext(); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbAdd"); - bundle.putString("collection", "profile"); - bundle.putString("data", String.valueOf(profileStore)); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, String.valueOf(profileStore)); + UploadQueue.add(new DbRequest("dbAdd", "profile", String.valueOf(profileStore))); } } public static void uploadEvent(String careportalEvent, long time, @Nullable String notes) { - Context context = MainApp.instance().getApplicationContext(); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbAdd"); - bundle.putString("collection", "treatments"); JSONObject data = new JSONObject(); try { data.put("eventType", careportalEvent); @@ -543,26 +412,12 @@ public class NSUpload { } catch (JSONException e) { log.error("Unhandled exception", e); } - bundle.putString("data", data.toString()); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString()); + UploadQueue.add(new DbRequest("dbAdd", "treatments", data)); } public static void removeFoodFromNS(String _id) { try { - Context context = MainApp.instance().getApplicationContext(); - Bundle bundle = new Bundle(); - bundle.putString("action", "dbRemove"); - bundle.putString("collection", "food"); - bundle.putString("_id", _id); - Intent intent = new Intent(Intents.ACTION_DATABASE); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(context).sendBroadcast(intent); - DbLogger.dbRemove(intent, _id); + UploadQueue.add(new DbRequest("dbRemove", "food", _id)); } catch (Exception e) { log.error("Unhandled exception", e); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/broadcasts/BroadcastAckAlarm.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/broadcasts/BroadcastAckAlarm.java deleted file mode 100644 index 7179231068..0000000000 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/broadcasts/BroadcastAckAlarm.java +++ /dev/null @@ -1,43 +0,0 @@ -package info.nightscout.androidaps.plugins.general.nsclient.broadcasts; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import androidx.localbroadcastmanager.content.LocalBroadcastManager; - -import info.nightscout.androidaps.MainApp; -import info.nightscout.androidaps.R; -import info.nightscout.androidaps.services.Intents; -import info.nightscout.androidaps.plugins.general.nsclient.data.NSAlarm; -import info.nightscout.androidaps.utils.SP; - -/** - * Created by mike on 11.06.2017. - */ - -public class BroadcastAckAlarm { - - public static void handleClearAlarm(NSAlarm originalAlarm, Context context, long silenceTimeInMsec) { - - Bundle bundle = new Bundle(); - bundle.putInt("level", originalAlarm.getLevel()); - bundle.putString("group", originalAlarm.getGroup()); - bundle.putLong("silenceTime", silenceTimeInMsec); - Intent intent = new Intent(Intents.ACTION_ACK_ALARM); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - LocalBroadcastManager.getInstance(MainApp.instance()).sendBroadcast(intent); - - if(SP.getBoolean(R.string.key_nsclient_localbroadcasts, false)) { - bundle = new Bundle(); - bundle.putInt("level", originalAlarm.getLevel()); - bundle.putString("group", originalAlarm.getGroup()); - bundle.putLong("silenceTime", silenceTimeInMsec); - intent = new Intent(Intents.ACTION_ACK_ALARM); - intent.putExtras(bundle); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - context.sendBroadcast(intent); - } - } - -} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/broadcasts/BroadcastTreatment.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/broadcasts/BroadcastTreatment.java index a364d0d4ae..7b722f562d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/broadcasts/BroadcastTreatment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/broadcasts/BroadcastTreatment.java @@ -25,12 +25,11 @@ import info.nightscout.androidaps.utils.SP; public class BroadcastTreatment { private static Logger log = LoggerFactory.getLogger(L.NSCLIENT); - public static void handleNewTreatment(JSONObject treatment, boolean isDelta, boolean isLocalBypass) { + public static void handleNewTreatment(JSONObject treatment, boolean isDelta) { Bundle bundle = new Bundle(); bundle.putString("treatment", treatment.toString()); bundle.putBoolean("delta", isDelta); - bundle.putBoolean("islocal", isLocalBypass); Intent intent = new Intent(Intents.ACTION_NEW_TREATMENT); intent.putExtras(bundle); intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/data/DbLogger.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/data/DbLogger.java deleted file mode 100644 index 3aaf4ccac4..0000000000 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/data/DbLogger.java +++ /dev/null @@ -1,43 +0,0 @@ -package info.nightscout.androidaps.plugins.general.nsclient.data; - -import android.content.Intent; -import android.content.pm.ResolveInfo; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.List; - -import info.nightscout.androidaps.MainApp; -import info.nightscout.androidaps.R; -import info.nightscout.androidaps.logging.L; -import info.nightscout.androidaps.utils.ToastUtils; - -/** - * Created by mike on 02.07.2016. - */ -public class DbLogger { - private static Logger log = LoggerFactory.getLogger(L.NSCLIENT); - - public static void dbAdd(Intent intent, String data) { - List q = MainApp.instance().getApplicationContext().getPackageManager().queryBroadcastReceivers(intent, 0); - if (q.size() < 1) { - ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.nsclientnotinstalled)); - log.error("DBADD No receivers"); - } else if (L.isEnabled(L.NSCLIENT)) { - if (L.isEnabled(L.NSCLIENT)) - log.debug("DBADD dbAdd " + q.size() + " receivers " + data); - } - } - - public static void dbRemove(Intent intent, String data) { - List q = MainApp.instance().getApplicationContext().getPackageManager().queryBroadcastReceivers(intent, 0); - if (q.size() < 1) { - ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.nsclientnotinstalled)); - log.error("DBREMOVE No receivers"); - } else if (L.isEnabled(L.NSCLIENT)) { - if (L.isEnabled(L.NSCLIENT)) - log.debug("DBREMOVE dbRemove " + q.size() + " receivers " + data); - } - } -} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/receivers/AckAlarmReceiver.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/receivers/AckAlarmReceiver.java deleted file mode 100644 index 1c46716d69..0000000000 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/receivers/AckAlarmReceiver.java +++ /dev/null @@ -1,60 +0,0 @@ -package info.nightscout.androidaps.plugins.general.nsclient.receivers; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.os.PowerManager; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import info.nightscout.androidaps.MainApp; -import info.nightscout.androidaps.R; -import info.nightscout.androidaps.interfaces.PluginType; -import info.nightscout.androidaps.logging.L; -import info.nightscout.androidaps.plugins.general.nsclient.NSClientPlugin; -import info.nightscout.androidaps.plugins.general.nsclient.data.AlarmAck; -import info.nightscout.androidaps.plugins.general.nsclient.services.NSClientService; -import info.nightscout.androidaps.utils.SP; - -public class AckAlarmReceiver extends BroadcastReceiver { - private static Logger log = LoggerFactory.getLogger(L.NSCLIENT); - - - @Override - public void onReceive(Context context, Intent intent) { - PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, - AckAlarmReceiver.class.getSimpleName()); - NSClientPlugin nsClientPlugin = NSClientPlugin.getPlugin(); - if (!nsClientPlugin.isEnabled(PluginType.GENERAL)) { - return; - } - if (SP.getBoolean(R.string.key_ns_noupload, false)) { - if (L.isEnabled(L.NSCLIENT)) - log.debug("Upload disabled. Message dropped"); - return; - } - wakeLock.acquire(); - try { - Bundle bundles = intent.getExtras(); - if (bundles == null) return; - if (!bundles.containsKey("level")) return; - if (!bundles.containsKey("group")) return; - if (!bundles.containsKey("silenceTime")) return; - - AlarmAck ack = new AlarmAck(); - ack.level = bundles.getInt("level"); - ack.group = bundles.getString("group"); - ack.silenceTime = bundles.getLong("silenceTime"); - - NSClientService nsClientService = nsClientPlugin.nsClientService; - if (nsClientService != null) - nsClientService.sendAlarmAck(ack); - - } finally { - wakeLock.release(); - } - } -} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/receivers/DBAccessReceiver.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/receivers/DBAccessReceiver.java deleted file mode 100644 index 4838c178ef..0000000000 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/receivers/DBAccessReceiver.java +++ /dev/null @@ -1,147 +0,0 @@ -package info.nightscout.androidaps.plugins.general.nsclient.receivers; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.os.PowerManager; - -import org.json.JSONException; -import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import info.nightscout.androidaps.MainApp; -import info.nightscout.androidaps.R; -import info.nightscout.androidaps.db.DbRequest; -import info.nightscout.androidaps.interfaces.PluginType; -import info.nightscout.androidaps.logging.BundleLogger; -import info.nightscout.androidaps.logging.L; -import info.nightscout.androidaps.plugins.general.nsclient.NSClientPlugin; -import info.nightscout.androidaps.plugins.general.nsclient.UploadQueue; -import info.nightscout.androidaps.plugins.general.nsclient.broadcasts.BroadcastTreatment; -import info.nightscout.androidaps.utils.DateUtil; -import info.nightscout.androidaps.utils.SP; - -public class DBAccessReceiver extends BroadcastReceiver { - private static Logger log = LoggerFactory.getLogger(L.NSCLIENT); - - - @Override - public void onReceive(Context context, Intent intent) { - PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, - DBAccessReceiver.class.getSimpleName()); - wakeLock.acquire(); - try { - Bundle bundles = intent.getExtras(); - if (bundles == null) return; - if (!bundles.containsKey("action")) return; - - if (L.isEnabled(L.NSCLIENT)) - log.debug(BundleLogger.log(bundles)); - - String collection = null; - String _id = null; - JSONObject data = null; - String action = bundles.getString("action"); - try { - collection = bundles.getString("collection"); - } catch (Exception e) { - log.error("Unhandled exception", e); - return; - } - try { - if (!action.equals("dbAdd")) - _id = bundles.getString("_id"); - } catch (Exception e) { - log.error("Unhandled exception", e); - return; - } - try { - if (!action.equals("dbRemove")) - data = new JSONObject(bundles.getString("data")); - } catch (Exception e) { - log.error("Unhandled exception", e); - return; - } - - if (data == null && !action.equals("dbRemove") || _id == null && action.equals("dbRemove")) { - log.error("DBACCESS no data inside record"); - return; - } - - if (action.equals("dbRemove")) { - data = new JSONObject(); - } - // mark by id - Long nsclientid = System.currentTimeMillis(); - try { - data.put("NSCLIENT_ID", nsclientid); - } catch (JSONException e) { - log.error("Unhandled exception", e); - } - - if (!isAllowedCollection(collection)) { - log.error("DBACCESS wrong collection specified"); - return; - } - - if (action.equals("dbRemove")) { - if (shouldUpload()) { - DbRequest dbr = new DbRequest(action, collection, nsclientid.toString(), _id); - UploadQueue.add(dbr); - } - } else if (action.equals("dbUpdate")) { - if (shouldUpload()) { - DbRequest dbr = new DbRequest(action, collection, nsclientid.toString(), _id, data); - UploadQueue.add(dbr); - } - } else { - DbRequest dbr = new DbRequest(action, collection, nsclientid.toString(), data); - // this is not used as mongo _id but only for searching in UploadQueue database - // if record has to be removed from queue before upload - dbr._id = nsclientid.toString(); - - if (shouldUpload()) { - UploadQueue.add(dbr); - } - if (collection.equals("treatments")) { - generateTreatmentOfflineBroadcast(dbr); - } - } - - } finally { - wakeLock.release(); - } - - } - - public boolean shouldUpload() { - NSClientPlugin nsClientPlugin = NSClientPlugin.getPlugin(); - return nsClientPlugin.isEnabled(PluginType.GENERAL) && !SP.getBoolean(R.string.key_ns_noupload, false); - } - - public void generateTreatmentOfflineBroadcast(DbRequest request) { - if (request.action.equals("dbAdd")) { - try { - JSONObject data = new JSONObject(request.data); - data.put("mills", DateUtil.fromISODateString(data.getString("created_at")).getTime()); - data.put("_id", data.get("NSCLIENT_ID")); // this is only fake id - BroadcastTreatment.handleNewTreatment(data, false, true); - } catch (Exception e) { - log.error("Unhadled exception", e); - } - } - } - - private boolean isAllowedCollection(String collection) { - // "treatments" || "entries" || "devicestatus" || "profile" || "food" - if (collection.equals("treatments")) return true; - if (collection.equals("entries")) return true; - if (collection.equals("devicestatus")) return true; - if (collection.equals("profile")) return true; - if (collection.equals("food")) return true; - return false; - } -} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/notifications/NotificationRecyclerViewAdapter.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/notifications/NotificationRecyclerViewAdapter.java index 1e96b02be1..8d1664c7e4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/notifications/NotificationRecyclerViewAdapter.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/notifications/NotificationRecyclerViewAdapter.java @@ -21,7 +21,7 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.bus.RxBus; -import info.nightscout.androidaps.plugins.general.nsclient.broadcasts.BroadcastAckAlarm; +import info.nightscout.androidaps.plugins.general.nsclient.NSClientPlugin; import info.nightscout.androidaps.plugins.general.overview.OverviewPlugin; import info.nightscout.androidaps.plugins.general.overview.events.EventDismissNotification; import info.nightscout.androidaps.utils.DateUtil; @@ -93,7 +93,7 @@ public class NotificationRecyclerViewAdapter extends RecyclerView.Adapter NSClient - String ACTION_DATABASE = "info.nightscout.client.DBACCESS"; - String ACTION_ACK_ALARM = "info.nightscout.client.ACK_ALARM"; - // xDrip -> App String RECEIVER_PERMISSION = "com.eveningoutpost.dexdrip.permissions.RECEIVE_BG_ESTIMATE";