tns-core-modules
Version:
Telerik NativeScript Core Modules
56 lines (55 loc) • 1.64 kB
JavaScript
var timeoutHandler;
var timeoutCallbacks = {};
var timerId = 0;
function createHandlerAndGetId() {
if (!timeoutHandler) {
timeoutHandler = new android.os.Handler(android.os.Looper.getMainLooper());
}
timerId++;
return timerId;
}
function setTimeout(callback, milliseconds) {
if (milliseconds === void 0) { milliseconds = 0; }
var id = createHandlerAndGetId();
var runnable = new java.lang.Runnable({
run: function () {
callback();
if (timeoutCallbacks[id]) {
delete timeoutCallbacks[id];
}
}
});
if (!timeoutCallbacks[id]) {
timeoutCallbacks[id] = runnable;
}
timeoutHandler.postDelayed(runnable, long(milliseconds));
return id;
}
exports.setTimeout = setTimeout;
function clearTimeout(id) {
if (timeoutCallbacks[id]) {
timeoutHandler.removeCallbacks(timeoutCallbacks[id]);
delete timeoutCallbacks[id];
}
}
exports.clearTimeout = clearTimeout;
function setInterval(callback, milliseconds) {
if (milliseconds === void 0) { milliseconds = 0; }
var id = createHandlerAndGetId();
var handler = timeoutHandler;
var runnable = new java.lang.Runnable({
run: function () {
callback();
if (timeoutCallbacks[id]) {
handler.postDelayed(runnable, long(milliseconds));
}
}
});
if (!timeoutCallbacks[id]) {
timeoutCallbacks[id] = runnable;
}
timeoutHandler.postDelayed(runnable, long(milliseconds));
return id;
}
exports.setInterval = setInterval;
exports.clearInterval = clearTimeout;