diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java index c3e8c777c6..3e37bf71d7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java @@ -58,8 +58,6 @@ public class NSClientInternalFragment extends Fragment implements View.OnClickLi private CheckBox autoscrollCheckbox; private CheckBox pausedCheckbox; - String status = ""; - @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -119,7 +117,7 @@ public class NSClientInternalFragment extends Fragment implements View.OnClickLi builder.setMessage("Clear queue? All data in queue will be lost!"); builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { - getPlugin().queue().clearQueue(); + UploadQueue.clearQueue(); updateGUI(); Answers.getInstance().logCustom(new CustomEvent("NSClientClearQueue")); } @@ -176,12 +174,13 @@ public class NSClientInternalFragment extends Fragment implements View.OnClickLi activity.runOnUiThread(new Runnable() { @Override public void run() { - logTextView.setText(getPlugin().textLog); + NSClientInternalPlugin.updateLog(); + logTextView.setText(NSClientInternalPlugin.textLog); if (getPlugin().autoscroll) { logScrollview.fullScroll(ScrollView.FOCUS_DOWN); } urlTextView.setText(getPlugin().url()); - Spanned queuetext = Html.fromHtml(MainApp.sResources.getString(R.string.queue) + " " + getPlugin().queue().size() + ""); + Spanned queuetext = Html.fromHtml(MainApp.sResources.getString(R.string.queue) + " " + UploadQueue.size() + ""); queueTextView.setText(queuetext); statusTextView.setText(getPlugin().status); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java index df88174b79..827023f5b3 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java @@ -9,14 +9,12 @@ import android.os.HandlerThread; import android.os.IBinder; import android.text.Html; import android.text.Spanned; -import android.text.TextUtils; import com.squareup.otto.Subscribe; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; @@ -36,29 +34,28 @@ import info.nightscout.utils.ToastUtils; public class NSClientInternalPlugin implements PluginBase { private static Logger log = LoggerFactory.getLogger(NSClientInternalPlugin.class); - boolean fragmentEnabled = true; - boolean fragmentVisible = true; + private boolean fragmentEnabled = true; + private boolean fragmentVisible = true; static public Handler handler; - static private HandlerThread handlerThread; - public List listLog = new ArrayList(); - public Spanned textLog = Html.fromHtml(""); + private static List listLog = new ArrayList<>(); + static Spanned textLog = Html.fromHtml(""); public boolean paused = false; - public boolean autoscroll = true; + boolean autoscroll = true; public String status = ""; public NSClientService nsClientService = null; - public NSClientInternalPlugin() { + NSClientInternalPlugin() { MainApp.bus().register(this); paused = SP.getBoolean(R.string.key_nsclientinternal_paused, false); autoscroll = SP.getBoolean(R.string.key_nsclientinternal_autoscroll, true); if (handler == null) { - handlerThread = new HandlerThread(NSClientInternalPlugin.class.getSimpleName() + "Handler"); + HandlerThread handlerThread = new HandlerThread(NSClientInternalPlugin.class.getSimpleName() + "Handler"); handlerThread.start(); handler = new Handler(handlerThread.getLooper()); } @@ -129,7 +126,7 @@ public class NSClientInternalPlugin implements PluginBase { if (type == GENERAL) this.fragmentVisible = fragmentVisible; } - ServiceConnection mConnection = new ServiceConnection() { + private ServiceConnection mConnection = new ServiceConnection() { public void onServiceDisconnected(ComponentName name) { log.debug("Service is disconnected"); @@ -162,12 +159,12 @@ public class NSClientInternalPlugin implements PluginBase { MainApp.bus().post(new EventNSClientUpdateGUI()); } - public void clearLog() { + void clearLog() { handler.post(new Runnable() { @Override public void run() { - listLog = new ArrayList(); - updateLog(); + listLog = new ArrayList<>(); + MainApp.bus().post(new EventNSClientUpdateGUI()); } }); } @@ -176,31 +173,30 @@ public class NSClientInternalPlugin implements PluginBase { handler.post(new Runnable() { @Override public void run() { - SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); listLog.add(ev); // remove the first line if log is too large if (listLog.size() >= Constants.MAX_LOG_LINES) { listLog.remove(0); } - updateLog(); + MainApp.bus().post(new EventNSClientUpdateGUI()); } }); } - private void updateLog() { + static void updateLog() { try { StringBuilder newTextLog = new StringBuilder(); - for (EventNSClientNewLog log : listLog) { + List temporaryList = new ArrayList<>(listLog); + for (EventNSClientNewLog log : temporaryList) { newTextLog.append(log.toPreparedHtml()); } textLog = Html.fromHtml(newTextLog.toString()); - MainApp.bus().post(new EventNSClientUpdateGUI()); } catch (OutOfMemoryError e) { ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), "Out of memory!\nStop using this phone !!!", R.raw.error); } } - public void resend(String reason) { + void resend(String reason) { if (nsClientService != null) nsClientService.resend(reason); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientNewLog.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientNewLog.java index 274a7ad828..7caafbd28a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientNewLog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientNewLog.java @@ -22,9 +22,10 @@ public class EventNSClientNewLog { this.logText = logText; } + SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); + public StringBuilder toPreparedHtml() { StringBuilder stringBuilder = new StringBuilder(); - SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); stringBuilder.append(timeFormat.format(date)); stringBuilder.append(" "); stringBuilder.append(action);