synchronized access to log in nsclient
This commit is contained in:
parent
22d617cbc0
commit
cbd60cfdbe
4 changed files with 17 additions and 12 deletions
|
@ -48,7 +48,7 @@ public class NSClientInternalPlugin implements PluginBase {
|
||||||
|
|
||||||
static public Handler handler;
|
static public Handler handler;
|
||||||
|
|
||||||
private static List<EventNSClientNewLog> listLog = new ArrayList<>();
|
private final static List<EventNSClientNewLog> listLog = new ArrayList<>();
|
||||||
static Spanned textLog = Html.fromHtml("");
|
static Spanned textLog = Html.fromHtml("");
|
||||||
|
|
||||||
public boolean paused = false;
|
public boolean paused = false;
|
||||||
|
@ -177,7 +177,9 @@ public class NSClientInternalPlugin implements PluginBase {
|
||||||
handler.post(new Runnable() {
|
handler.post(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
listLog = new ArrayList<>();
|
synchronized (listLog) {
|
||||||
|
listLog.clear();
|
||||||
|
}
|
||||||
MainApp.bus().post(new EventNSClientUpdateGUI());
|
MainApp.bus().post(new EventNSClientUpdateGUI());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -187,10 +189,12 @@ public class NSClientInternalPlugin implements PluginBase {
|
||||||
handler.post(new Runnable() {
|
handler.post(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
listLog.add(ev);
|
synchronized (listLog) {
|
||||||
// remove the first line if log is too large
|
listLog.add(ev);
|
||||||
if (listLog.size() >= Constants.MAX_LOG_LINES) {
|
// remove the first line if log is too large
|
||||||
listLog.remove(0);
|
if (listLog.size() >= Constants.MAX_LOG_LINES) {
|
||||||
|
listLog.remove(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
MainApp.bus().post(new EventNSClientUpdateGUI());
|
MainApp.bus().post(new EventNSClientUpdateGUI());
|
||||||
}
|
}
|
||||||
|
@ -200,9 +204,10 @@ public class NSClientInternalPlugin implements PluginBase {
|
||||||
static synchronized void updateLog() {
|
static synchronized void updateLog() {
|
||||||
try {
|
try {
|
||||||
StringBuilder newTextLog = new StringBuilder();
|
StringBuilder newTextLog = new StringBuilder();
|
||||||
List<EventNSClientNewLog> temporaryList = new ArrayList<>(listLog);
|
synchronized (listLog) {
|
||||||
for (EventNSClientNewLog log : temporaryList) {
|
for (EventNSClientNewLog log : listLog) {
|
||||||
newTextLog.append(log.toPreparedHtml());
|
newTextLog.append(log.toPreparedHtml());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
textLog = Html.fromHtml(newTextLog.toString());
|
textLog = Html.fromHtml(newTextLog.toString());
|
||||||
} catch (OutOfMemoryError e) {
|
} catch (OutOfMemoryError e) {
|
||||||
|
|
|
@ -448,7 +448,7 @@
|
||||||
<string name="settings_password">Парола за настройки</string>
|
<string name="settings_password">Парола за настройки</string>
|
||||||
<string name="unlock_settings">Отключи настройките</string>
|
<string name="unlock_settings">Отключи настройките</string>
|
||||||
<string name="approachingdailylimit">Близо до максмалния дневен инсулин</string>
|
<string name="approachingdailylimit">Близо до максмалния дневен инсулин</string>
|
||||||
<string name="nsclientinternal">вътрешен NSClient</string>
|
<string name="nsclientinternal">NSClient</string>
|
||||||
<string name="nsclientinternal_shortname">NSCI</string>
|
<string name="nsclientinternal_shortname">NSCI</string>
|
||||||
<string name="nsclientinternal_url">URL:</string>
|
<string name="nsclientinternal_url">URL:</string>
|
||||||
<string name="nsclientinternal_autoscroll">Автопревъртане</string>
|
<string name="nsclientinternal_autoscroll">Автопревъртане</string>
|
||||||
|
|
|
@ -442,7 +442,7 @@
|
||||||
<string name="nosuccess">neúspěšně - zkontrolujte mobil</string>
|
<string name="nosuccess">neúspěšně - zkontrolujte mobil</string>
|
||||||
<string name="notavailable">Nedostupný</string>
|
<string name="notavailable">Nedostupný</string>
|
||||||
<string name="nowritepermission">NSClient nedostal oprávnění k zápisu. Špatné API secret?</string>
|
<string name="nowritepermission">NSClient nedostal oprávnění k zápisu. Špatné API secret?</string>
|
||||||
<string name="nsclientinternal">NSClient interní</string>
|
<string name="nsclientinternal">NSClient</string>
|
||||||
<string name="nsclientinternal_autoscroll">Posouvat</string>
|
<string name="nsclientinternal_autoscroll">Posouvat</string>
|
||||||
<string name="nsclientinternal_secret_dialogmessage">Vložte API secret (min 12. znaků)</string>
|
<string name="nsclientinternal_secret_dialogmessage">Vložte API secret (min 12. znaků)</string>
|
||||||
<string name="nsclientinternal_shortname">NSCl</string>
|
<string name="nsclientinternal_shortname">NSCl</string>
|
||||||
|
|
|
@ -261,7 +261,7 @@
|
||||||
<string name="ns_sync_use_absolute_title">только абсолютные величины для базала</string>
|
<string name="ns_sync_use_absolute_title">только абсолютные величины для базала</string>
|
||||||
<string name="ns_upload_only">только передача в NS (синхронизация отсутствует)</string>
|
<string name="ns_upload_only">только передача в NS (синхронизация отсутствует)</string>
|
||||||
<string name="ns_upload_only_summary">только передача в NS. работает в SGV только если выбран местный источник вроде xdrip. не работает в профилях при действующем профиле NS</string>
|
<string name="ns_upload_only_summary">только передача в NS. работает в SGV только если выбран местный источник вроде xdrip. не работает в профилях при действующем профиле NS</string>
|
||||||
<string name="nsclientinternal">внутренний клиент NS</string>
|
<string name="nsclientinternal">клиент NS</string>
|
||||||
<string name="nsclientinternal_autoscroll">автоскроллинг</string>
|
<string name="nsclientinternal_autoscroll">автоскроллинг</string>
|
||||||
<string name="nsclientinternal_secret_dialogmessage">введите API secret для NS (мин 12 знаков)</string>
|
<string name="nsclientinternal_secret_dialogmessage">введите API secret для NS (мин 12 знаков)</string>
|
||||||
<string name="nsclientinternal_secret_dialogtitle">API secret для NS</string>
|
<string name="nsclientinternal_secret_dialogtitle">API secret для NS</string>
|
||||||
|
|
Loading…
Reference in a new issue