Added wake lock for notifications, small improvements

pull/147/head
M66B 6 years ago
parent b0be5058f5
commit adfa3c8298

@ -147,6 +147,7 @@ public class ServiceSynchronize extends LifecycleService {
private static final int ACCOUNT_ERROR_AFTER = 90; // minutes private static final int ACCOUNT_ERROR_AFTER = 90; // minutes
private static final int IDENTITY_ERROR_AFTER = 30; // minutes private static final int IDENTITY_ERROR_AFTER = 30; // minutes
private static final long STOP_DELAY = 5000L; // milliseconds private static final long STOP_DELAY = 5000L; // milliseconds
private static final long YIELD_DURATION = 200L; // milliseconds
static final int PI_WHY = 1; static final int PI_WHY = 1;
static final int PI_CLEAR = 2; static final int PI_CLEAR = 2;
@ -184,9 +185,14 @@ public class ServiceSynchronize extends LifecycleService {
@Override @Override
public void onChanged(final List<TupleMessageEx> messages) { public void onChanged(final List<TupleMessageEx> messages) {
executor.submit(new Runnable() { executor.submit(new Runnable() {
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK, BuildConfig.APPLICATION_ID + ":notify");
@Override @Override
public void run() { public void run() {
try { try {
wl.acquire();
Log.i("Notification messages=" + messages.size()); Log.i("Notification messages=" + messages.size());
Widget.update(ServiceSynchronize.this, messages.size()); Widget.update(ServiceSynchronize.this, messages.size());
@ -258,9 +264,16 @@ public class ServiceSynchronize extends LifecycleService {
} }
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(ex); Log.e(ex);
} finally {
wl.release();
} }
} }
}); });
try {
Thread.sleep(YIELD_DURATION);
} catch (InterruptedException ignored) {
}
} }
}); });
} }
@ -1228,6 +1241,7 @@ public class ServiceSynchronize extends LifecycleService {
} }
} }
}); });
state.yield();
} }
} }
}; };
@ -2688,6 +2702,7 @@ public class ServiceSynchronize extends LifecycleService {
} }
} }
}); });
state.yield();
} }
} }
}; };
@ -2833,6 +2848,7 @@ public class ServiceSynchronize extends LifecycleService {
} }
} }
}); });
state.yield();
started = doStart; started = doStart;
} }
@ -2885,7 +2901,7 @@ public class ServiceSynchronize extends LifecycleService {
void yield() { void yield() {
try { try {
// Give interrupted thread some time to acquire wake lock // Give interrupted thread some time to acquire wake lock
Thread.sleep(500L); Thread.sleep(YIELD_DURATION);
} catch (InterruptedException ignored) { } catch (InterruptedException ignored) {
} }
} }

Loading…
Cancel
Save