add: script list remember sorting config
This commit is contained in:
@@ -16,7 +16,7 @@ public class Timers {
|
||||
private SparseArray<Runnable> mHandlerCallbacks = new SparseArray<>();
|
||||
private int mCallbackMaxId = 0;
|
||||
private ScriptBridges mBridges;
|
||||
private Handler mHandler;
|
||||
private ThreadLocal<Handler> mHandler = new ThreadLocal<>();
|
||||
private long mFutureCallbackUptimeMillis = 0;
|
||||
|
||||
public Timers(ScriptBridges bridges) {
|
||||
@@ -24,8 +24,8 @@ public class Timers {
|
||||
}
|
||||
|
||||
private void ensureHandler() {
|
||||
if (mHandler == null) {
|
||||
mHandler = new Handler();
|
||||
if (mHandler.get() == null) {
|
||||
mHandler.set(new Handler());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,12 +33,9 @@ public class Timers {
|
||||
ensureHandler();
|
||||
mCallbackMaxId++;
|
||||
final int id = mCallbackMaxId;
|
||||
Runnable r = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
mBridges.callFunction(callback, null, args);
|
||||
mHandlerCallbacks.remove(id);
|
||||
}
|
||||
Runnable r = () -> {
|
||||
mBridges.callFunction(callback, null, args);
|
||||
mHandlerCallbacks.remove(id);
|
||||
};
|
||||
mHandlerCallbacks.put(id, r);
|
||||
postDelayed(r, delay);
|
||||
@@ -69,7 +66,7 @@ public class Timers {
|
||||
|
||||
private void postDelayed(Runnable r, long interval) {
|
||||
long uptime = SystemClock.uptimeMillis() + interval;
|
||||
mHandler.postAtTime(r, uptime);
|
||||
mHandler.get().postAtTime(r, uptime);
|
||||
mFutureCallbackUptimeMillis = Math.max(mFutureCallbackUptimeMillis, uptime);
|
||||
}
|
||||
|
||||
@@ -100,7 +97,7 @@ public class Timers {
|
||||
private boolean clearCallback(int id) {
|
||||
Runnable callback = mHandlerCallbacks.get(id);
|
||||
if (callback != null) {
|
||||
mHandler.removeCallbacks(callback);
|
||||
mHandler.get().removeCallbacks(callback);
|
||||
mHandlerCallbacks.remove(id);
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user