NS offline
This commit is contained in:
parent
88defc9f7b
commit
b98c321cbc
3 changed files with 96 additions and 88 deletions
|
@ -1,10 +1,7 @@
|
|||
package info.nightscout.androidaps.plugins.NSClientInternal.broadcasts;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.os.Bundle;
|
||||
import android.os.TransactionTooLargeException;
|
||||
import android.support.v4.content.LocalBroadcastManager;
|
||||
|
||||
import org.json.JSONArray;
|
||||
|
@ -19,9 +16,7 @@ import java.util.List;
|
|||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.Services.Intents;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.data.NSTreatment;
|
||||
import info.nightscout.utils.SP;
|
||||
import info.nightscout.utils.ToastUtils;
|
||||
|
||||
/**
|
||||
* Created by mike on 20.02.2016.
|
||||
|
@ -29,10 +24,10 @@ import info.nightscout.utils.ToastUtils;
|
|||
public class BroadcastTreatment {
|
||||
private static Logger log = LoggerFactory.getLogger(BroadcastTreatment.class);
|
||||
|
||||
public static void handleNewTreatment(NSTreatment treatment, Context context, boolean isDelta) {
|
||||
public static void handleNewTreatment(JSONObject treatment, boolean isDelta) {
|
||||
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("treatment", treatment.getData().toString());
|
||||
bundle.putString("treatment", treatment.toString());
|
||||
bundle.putBoolean("delta", isDelta);
|
||||
Intent intent = new Intent(Intents.ACTION_NEW_TREATMENT);
|
||||
intent.putExtras(bundle);
|
||||
|
@ -41,16 +36,16 @@ public class BroadcastTreatment {
|
|||
|
||||
if (SP.getBoolean(R.string.key_nsclient_localbroadcasts, true)) {
|
||||
bundle = new Bundle();
|
||||
bundle.putString("treatment", treatment.getData().toString());
|
||||
bundle.putString("treatment", treatment.toString());
|
||||
bundle.putBoolean("delta", isDelta);
|
||||
intent = new Intent(Intents.ACTION_NEW_TREATMENT);
|
||||
intent.putExtras(bundle);
|
||||
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
|
||||
context.sendBroadcast(intent);
|
||||
MainApp.instance().getApplicationContext().sendBroadcast(intent);
|
||||
}
|
||||
}
|
||||
|
||||
public static void handleNewTreatment(JSONArray treatments, Context context, boolean isDelta) {
|
||||
public static void handleNewTreatment(JSONArray treatments, boolean isDelta) {
|
||||
|
||||
List<JSONArray> splitted = splitArray(treatments);
|
||||
for (JSONArray part : splitted) {
|
||||
|
@ -72,12 +67,12 @@ public class BroadcastTreatment {
|
|||
Intent intent = new Intent(Intents.ACTION_NEW_TREATMENT);
|
||||
intent.putExtras(bundle);
|
||||
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
|
||||
context.sendBroadcast(intent);
|
||||
MainApp.instance().getApplicationContext().sendBroadcast(intent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void handleChangedTreatment(JSONObject treatment, Context context, boolean isDelta) {
|
||||
public void handleChangedTreatment(JSONObject treatment, boolean isDelta) {
|
||||
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("treatment", treatment.toString());
|
||||
|
@ -95,11 +90,11 @@ public class BroadcastTreatment {
|
|||
intent = new Intent(Intents.ACTION_CHANGED_TREATMENT);
|
||||
intent.putExtras(bundle);
|
||||
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
|
||||
context.sendBroadcast(intent);
|
||||
MainApp.instance().getApplicationContext().sendBroadcast(intent);
|
||||
}
|
||||
}
|
||||
|
||||
public static void handleChangedTreatment(JSONArray treatments, Context context, boolean isDelta) {
|
||||
public static void handleChangedTreatment(JSONArray treatments, boolean isDelta) {
|
||||
|
||||
List<JSONArray> splitted = splitArray(treatments);
|
||||
for (JSONArray part : splitted) {
|
||||
|
@ -121,12 +116,12 @@ public class BroadcastTreatment {
|
|||
Intent intent = new Intent(Intents.ACTION_CHANGED_TREATMENT);
|
||||
intent.putExtras(bundle);
|
||||
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
|
||||
context.sendBroadcast(intent);
|
||||
MainApp.instance().getApplicationContext().sendBroadcast(intent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void handleRemovedTreatment(JSONObject treatment, Context context, boolean isDelta) {
|
||||
public static void handleRemovedTreatment(JSONObject treatment, boolean isDelta) {
|
||||
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("treatment", treatment.toString());
|
||||
|
@ -144,11 +139,11 @@ public class BroadcastTreatment {
|
|||
intent = new Intent(Intents.ACTION_REMOVED_TREATMENT);
|
||||
intent.putExtras(bundle);
|
||||
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
|
||||
context.sendBroadcast(intent);
|
||||
MainApp.instance().getApplicationContext().sendBroadcast(intent);
|
||||
}
|
||||
}
|
||||
|
||||
public static void handleRemovedTreatment(JSONArray treatments, Context context, boolean isDelta) {
|
||||
public static void handleRemovedTreatment(JSONArray treatments, boolean isDelta) {
|
||||
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("treatments", treatments.toString());
|
||||
|
@ -166,7 +161,7 @@ public class BroadcastTreatment {
|
|||
intent = new Intent(Intents.ACTION_REMOVED_TREATMENT);
|
||||
intent.putExtras(bundle);
|
||||
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
|
||||
context.sendBroadcast(intent);
|
||||
MainApp.instance().getApplicationContext().sendBroadcast(intent);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,16 +11,14 @@ import org.json.JSONObject;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.db.DbRequest;
|
||||
import info.nightscout.androidaps.interfaces.PluginBase;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalPlugin;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.UploadQueue;
|
||||
import info.nightscout.androidaps.db.DbRequest;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.data.AlarmAck;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.services.NSClientService;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastTreatment;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
import info.nightscout.utils.SP;
|
||||
|
||||
public class DBAccessReceiver extends BroadcastReceiver {
|
||||
|
@ -90,6 +88,8 @@ public class DBAccessReceiver extends BroadcastReceiver {
|
|||
} else {
|
||||
DbRequest dbr = new DbRequest(action, collection, nsclientid.toString(), data);
|
||||
UploadQueue.add(dbr);
|
||||
if (collection.equals("treatments"))
|
||||
genereateTreatmentOfflineBroadcast(dbr);
|
||||
}
|
||||
|
||||
} finally {
|
||||
|
@ -98,6 +98,19 @@ public class DBAccessReceiver extends BroadcastReceiver {
|
|||
|
||||
}
|
||||
|
||||
public void genereateTreatmentOfflineBroadcast(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);
|
||||
} catch (Exception e) {
|
||||
log.error("Unhadled exception", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isAllowedCollection(String collection) {
|
||||
// "treatments" || "entries" || "devicestatus" || "profile" || "food"
|
||||
if (collection.equals("treatments")) return true;
|
||||
|
|
|
@ -52,15 +52,15 @@ import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastS
|
|||
import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastTreatment;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastUrgentAlarm;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.data.AlarmAck;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.data.NSSgv;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.data.NSSettingsStatus;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.data.NSSgv;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.data.NSTreatment;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientNewLog;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientRestart;
|
||||
import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientStatus;
|
||||
import info.nightscout.androidaps.plugins.Overview.notifications.Notification;
|
||||
import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification;
|
||||
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
|
||||
import info.nightscout.androidaps.plugins.Overview.notifications.Notification;
|
||||
import info.nightscout.utils.DateUtil;
|
||||
import info.nightscout.utils.SP;
|
||||
import io.socket.client.IO;
|
||||
|
@ -524,13 +524,13 @@ public class NSClientService extends Service {
|
|||
}
|
||||
}
|
||||
if (removedTreatments.length() > 0) {
|
||||
BroadcastTreatment.handleRemovedTreatment(removedTreatments, MainApp.instance().getApplicationContext(), isDelta);
|
||||
BroadcastTreatment.handleRemovedTreatment(removedTreatments, isDelta);
|
||||
}
|
||||
if (updatedTreatments.length() > 0) {
|
||||
BroadcastTreatment.handleChangedTreatment(updatedTreatments, MainApp.instance().getApplicationContext(), isDelta);
|
||||
BroadcastTreatment.handleChangedTreatment(updatedTreatments, isDelta);
|
||||
}
|
||||
if (addedTreatments.length() > 0) {
|
||||
BroadcastTreatment.handleNewTreatment(addedTreatments, MainApp.instance().getApplicationContext(), isDelta);
|
||||
BroadcastTreatment.handleNewTreatment(addedTreatments, isDelta);
|
||||
}
|
||||
}
|
||||
if (data.has("devicestatus")) {
|
||||
|
|
Loading…
Reference in a new issue