@icecreamcake/autojs6-dts
Version:
TypeScript Declarations for AutoJs6
259 lines (245 loc) • 8.43 kB
TypeScript
// Type definitions for AutoJs6 internal module timers
//
// Definitions by: SuperMonster003 <https://github.com/SuperMonster003>
// TypeScript Version: 4.3.5
//
// Last modified: Oct 21, 2021
/// <reference path="../index.d.ts" />
/**
* @Source %AutoJs6Assets%/modules/__timers__.js
*/
declare namespace Internal {
interface Timers extends org.autojs.autojs.runtime.api.Timers {
/**
* Replacement of setInterval() with functional timeout supported
* @param listener
* @param interval=200
* @param timeout=Infinity
* @param callback
* @example
* // print 'hello' every 1 second for 5 (or 4 sometimes) times
* timers.setIntervalExt(() => console.log('hello'), 1e3, 5e3);
* @example
* timers.setIntervalExt(() => log('Good luck comes later...'), 100, () => {
* let num = Math.random() * 100 + 1;
* return num > 90 && Math.floor(num);
* }, res => log('Your lucky number is ' + res));
* @return {number}
* @see https://dev.to/akanksha_9560/why-not-to-use-setinterval--2na9
*/
setIntervalExt(listener: Function, interval?: number, timeout?: number | (() => boolean), callback?: Function): number;
}
}
/**
* Method loop() has been deprecated and has no effect
* @example Source code summary (zh-CN: 源代码摘要)
* scope.loop = function () {
* console.warn('loop() has been deprecated and has no effect. Remove it from your code.');
* };
* @deprecated
*/
declare function loop(): void;
/**
* @example
* let imd_id = setImmediate((msg) => {
* toast(msg);
* clearImmediate(imd_id);
* }, "hello");
* @example Source code summary (zh-CN: 源代码摘要)
* private Threads mThreads;
* private Timer mMainTimer;
* private Timer mUiTimer;
* public boolean clearImmediate(int id) {
* return getTimerForCurrentThread().clearImmediate(id);
* }
* public Timer getTimerForCurrentThread() {
* return getTimerForThread(Thread.currentThread());
* }
* public Timer getTimerForThread(Thread thread) {
* if (thread == mThreads.getMainThread()) {
* return mMainTimer;
* }
* Timer timer = TimerThread.getTimerForThread(thread);
* if (timer == null && Looper.myLooper() == Looper.getMainLooper()) {
* return mUiTimer;
* }
* return timer;
* }
* @see android.os.Looper
* @see org.autojs.autojs.core.looper.Timer
* @see org.autojs.autojs.core.looper.TimerThread
* @see org.autojs.autojs.runtime.api.Threads
*/
declare function clearImmediate(id: number): boolean;
/**
* @example
* let i = 0;
* let itv_id = setInterval((max) => {
* let m = max || 20;
* i < m ? console.log(i += 1) : (clearInterval(itv_id), toast(i));
* }, 100, 9);
* @example Source code summary (zh-CN: 源代码摘要)
* private Threads mThreads;
* private Timer mMainTimer;
* private Timer mUiTimer;
* public boolean clearInterval(int id) {
* return getTimerForCurrentThread().clearInterval(id);
* }
* public Timer getTimerForCurrentThread() {
* return getTimerForThread(Thread.currentThread());
* }
* public Timer getTimerForThread(Thread thread) {
* if (thread == mThreads.getMainThread()) {
* return mMainTimer;
* }
* Timer timer = TimerThread.getTimerForThread(thread);
* if (timer == null && Looper.myLooper() == Looper.getMainLooper()) {
* return mUiTimer;
* }
* return timer;
* }
* @see android.os.Looper
* @see org.autojs.autojs.core.looper.Timer
* @see org.autojs.autojs.core.looper.TimerThread
* @see org.autojs.autojs.runtime.api.Threads
*/
declare function clearInterval(id: number): boolean;
/**
* @example
* let tt_id = setTimeout((msg) => {
* toast(msg);
* clearTimeout(tt_id);
* }, 10, "hello");
* @example Source code summary (zh-CN: 源代码摘要)
* private Threads mThreads;
* private Timer mMainTimer;
* private Timer mUiTimer;
* public boolean clearTimeout(int id) {
* return getTimerForCurrentThread().clearTimeout(id);
* }
* public Timer getTimerForCurrentThread() {
* return getTimerForThread(Thread.currentThread());
* }
* public Timer getTimerForThread(Thread thread) {
* if (thread == mThreads.getMainThread()) {
* return mMainTimer;
* }
* Timer timer = TimerThread.getTimerForThread(thread);
* if (timer == null && Looper.myLooper() == Looper.getMainLooper()) {
* return mUiTimer;
* }
* return timer;
* }
* @see android.os.Looper
* @see org.autojs.autojs.core.looper.Timer
* @see org.autojs.autojs.core.looper.TimerThread
* @see org.autojs.autojs.runtime.api.Threads
*/
declare function clearTimeout(id: number): boolean;
/**
* @example
* let imd_id = setImmediate((msg) => {
* toast(msg);
* clearImmediate(imd_id);
* }, "hello");
* @example Source code summary (zh-CN: 源代码摘要)
* private Threads mThreads;
* private Timer mMainTimer;
* private Timer mUiTimer;
* public int setImmediate(Object listener, Object... args) {
* return getTimerForCurrentThread().setImmediate(listener, args);
* }
* public Timer getTimerForCurrentThread() {
* return getTimerForThread(Thread.currentThread());
* }
* public Timer getTimerForThread(Thread thread) {
* if (thread == mThreads.getMainThread()) {
* return mMainTimer;
* }
* Timer timer = TimerThread.getTimerForThread(thread);
* if (timer == null && Looper.myLooper() == Looper.getMainLooper()) {
* return mUiTimer;
* }
* return timer;
* }
* @see android.os.Looper
* @see org.autojs.autojs.core.looper.Timer
* @see org.autojs.autojs.core.looper.TimerThread
* @see org.autojs.autojs.runtime.api.Threads
*/
declare function setImmediate(listener: any, ...args: any[]): number;
/**
* @example
* setTimeout(() => console.log(0), 0);
* console.log(1);
* setTimeout(() => console.log(2), 500);
* console.log(3);
* setTimeout(() => console.log(4), 300);
* setTimeout(() => console.log(5), 100);
* console.log(6);
* console.log(7);
* // result: 1, 3, 6, 7, 0, 5, 4, 2
* @example
* let tt_id = setTimeout((msg) => {
* toast(msg);
* clearTimeout(tt_id);
* }, 10, "hello");
* @example Source code summary (zh-CN: 源代码摘要)
* private Threads mThreads;
* private Timer mMainTimer;
* private Timer mUiTimer;
* public int setTimeout(Object callback, long delay, Object... args) {
* return getTimerForCurrentThread().setTimeout(callback, delay, args);
* }
* public Timer getTimerForCurrentThread() {
* return getTimerForThread(Thread.currentThread());
* }
* public Timer getTimerForThread(Thread thread) {
* if (thread == mThreads.getMainThread()) {
* return mMainTimer;
* }
* Timer timer = TimerThread.getTimerForThread(thread);
* if (timer == null && Looper.myLooper() == Looper.getMainLooper()) {
* return mUiTimer;
* }
* return timer;
* }
* @see android.os.Looper
* @see org.autojs.autojs.core.looper.Timer
* @see org.autojs.autojs.core.looper.TimerThread
* @see org.autojs.autojs.runtime.api.Threads
*/
declare function setTimeout(callback: any, delay: number, ...args: any[]): number;
/**
* @example
* let i = 0;
* let itv_id = setInterval((max) => {
* let m = max || 20;
* i < m ? console.log(i += 1) : (clearInterval(itv_id), toast(i));
* }, 100, 9);
* @example Source code summary (zh-CN: 源代码摘要)
* private Threads mThreads;
* private Timer mMainTimer;
* private Timer mUiTimer;
* public int setInterval(Object listener, long interval, Object... args) {
* return getTimerForCurrentThread().setInterval(listener, interval, args);
* }
* public Timer getTimerForCurrentThread() {
* return getTimerForThread(Thread.currentThread());
* }
* public Timer getTimerForThread(Thread thread) {
* if (thread == mThreads.getMainThread()) {
* return mMainTimer;
* }
* Timer timer = TimerThread.getTimerForThread(thread);
* if (timer == null && Looper.myLooper() == Looper.getMainLooper()) {
* return mUiTimer;
* }
* return timer;
* }
* @see android.os.Looper
* @see org.autojs.autojs.core.looper.Timer
* @see org.autojs.autojs.core.looper.TimerThread
* @see org.autojs.autojs.runtime.api.Threads
*/
declare function setInterval(listener: any, interval: number, ...args: any[]): number;