From 645834e1c3efb3a8c50dcbda98d87caba04bd421 Mon Sep 17 00:00:00 2001
From: fei.wang <wf18701153496@163.com>
Date: 星期三, 13 八月 2025 14:34:02 +0800
Subject: [PATCH] v1.2.8

---
 unpackage/dist/build/app-plus/uni_modules/android-utils/utssdk/app-android/src/index.kt |  560 +++++++++++++++++++++++++++++--------------------------
 1 files changed, 292 insertions(+), 268 deletions(-)

diff --git a/unpackage/dist/build/app-plus/uni_modules/android-utils/utssdk/app-android/src/index.kt b/unpackage/dist/build/app-plus/uni_modules/android-utils/utssdk/app-android/src/index.kt
index cc9d943..23b5115 100644
--- a/unpackage/dist/build/app-plus/uni_modules/android-utils/utssdk/app-android/src/index.kt
+++ b/unpackage/dist/build/app-plus/uni_modules/android-utils/utssdk/app-android/src/index.kt
@@ -1,43 +1,43 @@
-@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER")
-package uts.sdk.modules.androidUtils;
-import android.app.AlertDialog;
-import android.content.ContentValues;
-import android.content.DialogInterface;
-import android.content.res.Resources;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.Color;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.GradientDrawable;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.MediaStore;
-import android.speech.tts.TextToSpeech;
-import android.speech.tts.UtteranceProgressListener;
-import android.speech.tts.Voice;
-import android.util.Base64;
-import android.view.Gravity;
-import android.view.WindowManager;
-import android.widget.EditText;
-import android.widget.TextView;
-import android.widget.Toast;
-import io.dcloud.uniapp.*;
-import io.dcloud.uniapp.extapi.*;
-import io.dcloud.uts.*;
-import io.dcloud.uts.Map;
-import io.dcloud.uts.Set;
-import io.dcloud.uts.UTSAndroid;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.lang.System;
-import java.util.Objects;
-import java.util.UUID;
-import kotlin.ByteArray;
-import kotlin.Int;
-import kotlinx.coroutines.CoroutineScope;
-import kotlinx.coroutines.Deferred;
-import kotlinx.coroutines.Dispatchers;
-import kotlinx.coroutines.async;
+@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION")
+package uts.sdk.modules.androidUtils
+import android.app.AlertDialog
+import android.content.ContentValues
+import android.content.DialogInterface
+import android.content.res.Resources
+import android.graphics.Bitmap
+import android.graphics.BitmapFactory
+import android.graphics.Color
+import android.graphics.drawable.Drawable
+import android.graphics.drawable.GradientDrawable
+import android.net.Uri
+import android.os.Bundle
+import android.provider.MediaStore
+import android.speech.tts.TextToSpeech
+import android.speech.tts.UtteranceProgressListener
+import android.speech.tts.Voice
+import android.util.Base64
+import android.view.Gravity
+import android.view.WindowManager
+import android.widget.EditText
+import android.widget.TextView
+import android.widget.Toast
+import io.dcloud.uniapp.*
+import io.dcloud.uniapp.extapi.*
+import io.dcloud.uts.*
+import io.dcloud.uts.Map
+import io.dcloud.uts.Set
+import io.dcloud.uts.UTSAndroid
+import java.io.IOException
+import java.io.OutputStream
+import java.lang.System
+import java.util.Objects
+import java.util.UUID
+import kotlin.ByteArray
+import kotlin.Int
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Deferred
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.async
 open class MyApiOptions (
     @JsonNotNull
     open var paramA: Boolean = false,
@@ -53,13 +53,13 @@
     @JsonNotNull
     open var fieldC: String,
 ) : UTSObject()
-typealias MyApiErrorCode = Number;
+typealias MyApiErrorCode = Number
 interface MyApiFail : IUniError {
     override var errCode: MyApiErrorCode
 }
-typealias MyApi = (options: MyApiOptions) -> Unit;
-typealias MyApiSync = (paramA: Boolean) -> MyApiResult;
-val UniErrorSubject = "uts-api";
+typealias MyApi = (options: MyApiOptions) -> Unit
+typealias MyApiSync = (paramA: Boolean) -> MyApiResult
+val UniErrorSubject = "uts-api"
 val MyAPIErrors: Map<MyApiErrorCode, String> = Map(utsArrayOf(
     utsArrayOf(
         9010001,
@@ -69,219 +69,208 @@
         9010002,
         "custom error mseeage2"
     )
-));
+))
 open class MyApiFailImpl : UniError, MyApiFail {
     constructor(errCode: MyApiErrorCode) : super() {
-        this.errSubject = UniErrorSubject;
-        this.errCode = errCode;
-        this.errMsg = MyAPIErrors.get(errCode) ?: "";
+        this.errSubject = UniErrorSubject
+        this.errCode = errCode
+        this.errMsg = MyAPIErrors.get(errCode) ?: ""
     }
 }
 val myApi: MyApi = fun(options: MyApiOptions) {
     if (options.paramA == true) {
-        val res = MyApiResult(fieldA = 85, fieldB = true, fieldC = "some message");
-        options.success?.invoke(res);
-        options.complete?.invoke(res);
+        val res = MyApiResult(fieldA = 85, fieldB = true, fieldC = "some message")
+        options.success?.invoke(res)
+        options.complete?.invoke(res)
     } else {
-        val err = MyApiFailImpl(9010001);
-        options.fail?.invoke(err);
-        options.complete?.invoke(err);
+        val err = MyApiFailImpl(9010001)
+        options.fail?.invoke(err)
+        options.complete?.invoke(err)
     }
 }
-;
 val myApiSync: MyApiSync = fun(paramA: Boolean): MyApiResult {
-    val res = MyApiResult(fieldA = 85, fieldB = paramA, fieldC = "some message");
-    return res;
+    val res = MyApiResult(fieldA = 85, fieldB = paramA, fieldC = "some message")
+    return res
 }
-;
-var mToast: Toast? = null;
-var mLastText = "";
-var mLastTime: Number = 0;
-var mLastDuration: Number = 0;
+var mToast: Toast? = null
+var mLastText = ""
+var mLastTime: Number = 0
+var mLastDuration: Number = 0
 val showToast = fun(text: String) {
     if (mToast == null) {
-        mToast = Toast.makeText(UTSAndroid.getAppContext()!!!!, text, Toast.LENGTH_LONG);
+        mToast = Toast.makeText(UTSAndroid.getAppContext()!!!!, text, Toast.LENGTH_LONG)
     } else {
         if (Objects.equals(text, mLastText) && System.currentTimeMillis() - mLastTime < mLastDuration) {
-            return;
+            return
         }
-        mToast!!!!.cancel();
-        mToast = Toast.makeText(UTSAndroid.getAppContext()!!!!, text, Toast.LENGTH_SHORT);
-        mLastDuration = Toast.LENGTH_LONG;
-        mLastTime = System.currentTimeMillis();
-        mLastText = text;
+        mToast!!!!.cancel()
+        mToast = Toast.makeText(UTSAndroid.getAppContext()!!!!, text, Toast.LENGTH_SHORT)
+        mLastDuration = Toast.LENGTH_LONG
+        mLastTime = System.currentTimeMillis()
+        mLastText = text
     }
-    mToast!!!!.setGravity(Gravity.CENTER, 0, 0);
-    mToast!!!!.show();
+    mToast!!!!.setGravity(Gravity.CENTER, 0, 0)
+    mToast!!!!.show()
 }
-;
 val showColorToast = fun(text: String, color: String) {
-    var tv = TextView(UTSAndroid.getAppContext()!!!!);
-    var b: GradientDrawable = getSoldRadiusBg(Color.parseColor(color), 60);
-    tv.setBackgroundDrawable(b as Drawable);
-    var r1 = convertHtmlPxToAndroidPx(20).toInt();
-    var r2 = convertHtmlPxToAndroidPx(10).toInt();
-    tv.setPadding(r1, r2, r1, r2);
-    tv.setTextColor(Color.WHITE);
-    tv.setTextSize(16.toFloat());
-    tv.setText(text);
+    var tv = TextView(UTSAndroid.getAppContext()!!!!)
+    var b: GradientDrawable = getSoldRadiusBg(Color.parseColor(color), 60)
+    tv.setBackgroundDrawable(b as Drawable)
+    var r1 = convertHtmlPxToAndroidPx(20).toInt()
+    var r2 = convertHtmlPxToAndroidPx(10).toInt()
+    tv.setPadding(r1, r2, r1, r2)
+    tv.setTextColor(Color.WHITE)
+    tv.setTextSize(16.toFloat())
+    tv.setText(text)
     if (mToast == null) {
-        mToast = Toast(UTSAndroid.getAppContext()!!!!);
-        mToast!!!!.setView(tv);
+        mToast = Toast(UTSAndroid.getAppContext()!!!!)
+        mToast!!!!.setView(tv)
     } else {
         if (Objects.equals(text, mLastText) && System.currentTimeMillis() - mLastTime < mLastDuration) {
-            return;
+            return
         }
-        mToast!!!!.cancel();
-        mToast = Toast.makeText(UTSAndroid.getAppContext()!!!!, text, Toast.LENGTH_SHORT);
-        mToast!!!!.setView(tv);
-        mLastDuration = Toast.LENGTH_LONG;
-        mLastTime = System.currentTimeMillis();
-        mLastText = text;
+        mToast!!!!.cancel()
+        mToast = Toast.makeText(UTSAndroid.getAppContext()!!!!, text, Toast.LENGTH_SHORT)
+        mToast!!!!.setView(tv)
+        mLastDuration = Toast.LENGTH_LONG
+        mLastTime = System.currentTimeMillis()
+        mLastText = text
     }
-    mToast!!!!.setGravity(Gravity.CENTER, 0, 0);
-    mToast!!!!.show();
+    mToast!!!!.setGravity(Gravity.CENTER, 0, 0)
+    mToast!!!!.show()
 }
-;
 val showToastButton = fun(text: String) {
     if (mToast == null) {
-        mToast = Toast.makeText(UTSAndroid.getAppContext()!!!!, text, Toast.LENGTH_LONG);
+        mToast = Toast.makeText(UTSAndroid.getAppContext()!!!!, text, Toast.LENGTH_LONG)
     } else {
         if (Objects.equals(text, mLastText) && System.currentTimeMillis() - mLastTime < mLastDuration) {
-            return;
+            return
         }
-        mToast!!!!.cancel();
-        mToast = Toast.makeText(UTSAndroid.getAppContext()!!!!, text, Toast.LENGTH_SHORT);
-        mLastDuration = Toast.LENGTH_LONG;
-        mLastTime = System.currentTimeMillis();
-        mLastText = text;
+        mToast!!!!.cancel()
+        mToast = Toast.makeText(UTSAndroid.getAppContext()!!!!, text, Toast.LENGTH_SHORT)
+        mLastDuration = Toast.LENGTH_LONG
+        mLastTime = System.currentTimeMillis()
+        mLastText = text
     }
-    mToast!!!!.show();
+    mToast!!!!.show()
 }
-;
 val androidDialog = fun(title: String, msg: String, okText: String, callback: () -> Unit, cancelText: String, callback1: () -> Unit) {
     open class MyOnClickListener : DialogInterface.OnClickListener {
-        open var type: Number;
+        open var type: Number
         constructor(type: Number){
-            this.type = type;
+            this.type = type
         }
         public override fun onClick(dialogInterface: DialogInterface, i: Int) {
             if (this.type == 0) {
-                callback();
-                dialogInterface.dismiss();
+                callback()
+                dialogInterface.dismiss()
             } else if (this.type == 1) {
-                callback1();
-                dialogInterface.dismiss();
+                callback1()
+                dialogInterface.dismiss()
             }
         }
     }
-    var builder: AlertDialog.Builder = AlertDialog.Builder(UTSAndroid.getUniActivity()!!!!);
+    var builder: AlertDialog.Builder = AlertDialog.Builder(UTSAndroid.getUniActivity()!!!!)
     if (title != "") {
-        builder.setTitle(title);
+        builder.setTitle(title)
     }
-    builder.setMessage(msg);
-    builder.setPositiveButton(okText, MyOnClickListener(0));
+    builder.setMessage(msg)
+    builder.setPositiveButton(okText, MyOnClickListener(0))
     if (cancelText != "") {
-        builder.setNegativeButton(cancelText, MyOnClickListener(1));
+        builder.setNegativeButton(cancelText, MyOnClickListener(1))
     }
-    builder.create().show();
+    builder.create().show()
 }
-;
 val isHavePermision = fun(pername: String): Boolean {
     return UTSAndroid.checkSystemPermissionGranted(UTSAndroid.getUniActivity()!!, utsArrayOf(
         pername
-    ));
+    ))
 }
-;
 val requestPermison = fun(pername: String, callback: (sth: Boolean) -> Unit) {
     if (isHavePermision(pername)) {
-        callback(true);
-        return;
+        callback(true)
+        return
     }
     UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!!, utsArrayOf(
         pername
     ), fun(_: Boolean, p: UTSArray<String>){
-        console.log(p);
-        callback(true);
+        console.log(p)
+        callback(true)
     }
     , fun(_: Boolean, p: UTSArray<String>){
-        callback(false);
-        console.log(p);
+        callback(false)
+        console.log(p)
     }
-    );
+    )
 }
-;
 val requesMoretPermison = fun(pername: UTSArray<String>, callback: (sth: Boolean) -> Unit) {
-    var have = true;
+    var have = true
     run {
-        var per: Number = 0;
+        var per: Number = 0
         while(per < pername.length){
             if (!isHavePermision(pername[per])) {
-                have = false;
+                have = false
             }
-            per++;
+            per++
         }
     }
     if (have) {
-        callback(true);
-        return;
+        callback(true)
+        return
     }
-    var len = pername.length;
+    var len = pername.length
     UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!!, pername, fun(_: Boolean, p: UTSArray<String>){
-        console.log(p);
+        console.log(p)
         if (p.length == len) {
-            callback(true);
+            callback(true)
         }
     }
     , fun(_: Boolean, p: UTSArray<String>){
-        console.log(p);
-        callback(false);
+        console.log(p)
+        callback(false)
     }
-    );
+    )
 }
-;
 val saveBase64ToGallery = fun(name: String, base64: String, callback: (sth: Boolean) -> Unit) {
     if (isHavePermision("android.permission.WRITE_EXTERNAL_STORAGE") && isHavePermision("android.permission.READ_MEDIA_IMAGES")) {
-        saveBitmap(name, base64, callback);
+        saveBitmap(name, base64, callback)
     } else {
         requesMoretPermison(utsArrayOf(
             "android.permission.WRITE_EXTERNAL_STORAGE",
             "android.permission.READ_MEDIA_IMAGES"
         ), fun(state: Boolean) {
             if (state) {
-                saveBitmap(name, base64, callback);
+                saveBitmap(name, base64, callback)
             } else {
-                callback(state);
+                callback(state)
             }
         }
-        );
+        )
     }
 }
-;
 val saveBitmap = fun(name: String, base64: String, callback: (sth: Boolean) -> Unit) {
-    var decode: ByteArray = Base64.decode(base64, Base64.DEFAULT);
-    var bitmapImage: Bitmap = BitmapFactory.decodeByteArray(decode, 0.toInt(), decode.size);
-    var contentValues: ContentValues = ContentValues();
-    contentValues.put("_display_name", name);
-    contentValues.put("mime_type", "image/jpeg");
-    var uri: Uri? = null;
-    uri = UTSAndroid.getAppContext()!!!!.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
+    var decode: ByteArray = Base64.decode(base64, Base64.DEFAULT)
+    var bitmapImage: Bitmap = BitmapFactory.decodeByteArray(decode, 0.toInt(), decode.size)
+    var contentValues: ContentValues = ContentValues()
+    contentValues.put("_display_name", name)
+    contentValues.put("mime_type", "image/jpeg")
+    var uri: Uri? = null
+    uri = UTSAndroid.getAppContext()!!!!.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues)
     try {
         if (uri != null) {
-            var outputStream: OutputStream? = null;
-            outputStream = UTSAndroid.getAppContext()!!!!.getContentResolver()!!!!.openOutputStream(uri!!!!);
+            var outputStream: OutputStream? = null
+            outputStream = UTSAndroid.getAppContext()!!!!.getContentResolver()!!!!.openOutputStream(uri!!!!)
             if (outputStream != null) {
-                bitmapImage.compress(Bitmap.CompressFormat.JPEG, 100, outputStream!!!!);
+                bitmapImage.compress(Bitmap.CompressFormat.JPEG, 100, outputStream!!!!)
             }
-            callback(true);
+            callback(true)
         }
     }
      catch (e: IOException) {
-        e.printStackTrace();
-        callback(false);
+        e.printStackTrace()
+        callback(false)
     }
 }
-;
 open class InputBean (
     open var title: String? = null,
     open var holder: String? = null,
@@ -297,265 +286,300 @@
     open var cancelCallbackClick: (() -> Unit),
 ) : UTSObject()
 val showEditDialog = fun(bean: InputBean) {
-    var et: EditText = EditText(UTSAndroid.getAppContext()!!!!);
+    var et: EditText = EditText(UTSAndroid.getAppContext()!!!!)
     open class MyOnClickListener : DialogInterface.OnClickListener {
-        open var type: Number;
+        open var type: Number
         constructor(type: Number){
-            this.type = type;
+            this.type = type
         }
         public override fun onClick(dialogInterface: DialogInterface, i: Int) {
             if (this.type == 0) {
-                bean!!.okCallbackClick(et.getText().toString());
-                dialogInterface.dismiss();
+                bean!!.okCallbackClick(et.getText().toString())
+                dialogInterface.dismiss()
             } else if (this.type == 1) {
-                bean!!.cancelCallbackClick();
-                dialogInterface.dismiss();
+                bean!!.cancelCallbackClick()
+                dialogInterface.dismiss()
             }
         }
     }
-    var builder: AlertDialog.Builder = AlertDialog.Builder(UTSAndroid.getUniActivity()!!!!);
+    var builder: AlertDialog.Builder = AlertDialog.Builder(UTSAndroid.getUniActivity()!!!!)
     if (bean.title != null || bean.title != "") {
-        builder.setTitle(bean.title);
+        builder.setTitle(bean.title)
     }
-    builder.setPositiveButton(bean.okText, MyOnClickListener(0));
+    builder.setPositiveButton(bean.okText, MyOnClickListener(0))
     if (bean.cancelText != "") {
-        builder.setNegativeButton(bean.cancelText, MyOnClickListener(1));
+        builder.setNegativeButton(bean.cancelText, MyOnClickListener(1))
     }
-    builder.setView(et);
-    builder.create();
-    builder.show();
+    builder.setView(et)
+    builder.create()
+    builder.show()
 }
-;
 val screenShotEnableState = fun(state: Boolean): Unit {
     open class MyRun : Runnable {
         override fun run() {
             if (state) {
-                UTSAndroid.getUniActivity()!!!!.getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
+                UTSAndroid.getUniActivity()!!!!.getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
             } else {
-                UTSAndroid.getUniActivity()!!!!.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
+                UTSAndroid.getUniActivity()!!!!.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
             }
         }
     }
-    UTSAndroid.getUniActivity()!!!!.runOnUiThread(MyRun());
+    UTSAndroid.getUniActivity()!!!!.runOnUiThread(MyRun())
 }
-;
 val convertHtmlPxToAndroidPx = fun(htmlPx: Number): Number {
-    var resources: Resources = UTSAndroid.getAppContext()!!!!.getResources();
-    return Math.round(htmlPx * resources.getDisplayMetrics().density);
+    var resources: Resources = UTSAndroid.getAppContext()!!!!.getResources()
+    return Math.round(htmlPx * resources.getDisplayMetrics().density)
 }
-;
 val showImgDialog = fun() {
-    var builder: AlertDialog.Builder = AlertDialog.Builder(UTSAndroid.getUniActivity()!!!!);
-    builder.create().show();
+    var builder: AlertDialog.Builder = AlertDialog.Builder(UTSAndroid.getUniActivity()!!!!)
+    builder.create().show()
 }
-;
 open class AndroidTTSVoice {
-    open var textToSpeech: TextToSpeech;
-    open var onVoiceStateListener: OnVoiceStateListener? = null;
+    open var textToSpeech: TextToSpeech
+    open var onVoiceStateListener: OnVoiceStateListener? = null
     constructor(callback: (init: Boolean) -> Unit){
         open class MyListener : TextToSpeech.OnInitListener {
             override fun onInit(i: Int): Unit {
-                console.log("init  " + i.toString());
+                console.log("init  " + i.toString())
                 if (i == -1) {
-                    callback(false);
+                    callback(false)
                 } else {
-                    callback(true);
+                    callback(true)
                 }
             }
         }
-        this.textToSpeech = TextToSpeech(UTSAndroid.getUniActivity()!!!!, MyListener());
-        this.textToSpeech.setOnUtteranceProgressListener(MyTTSListener(this));
+        this.textToSpeech = TextToSpeech(UTSAndroid.getUniActivity()!!!!, MyListener())
+        this.textToSpeech.setOnUtteranceProgressListener(MyTTSListener(this))
     }
     public open fun speak(data: String): Number {
-        var state = this.textToSpeech.speak(data, TextToSpeech.QUEUE_FLUSH, Bundle(), UUID.randomUUID().toString());
-        return state;
+        var state = this.textToSpeech.speak(data, TextToSpeech.QUEUE_FLUSH, Bundle(), UUID.randomUUID().toString())
+        return state
     }
     public open fun getVoiceNames(): UTSArray<String> {
-        var voices = this.textToSpeech.getVoices();
-        var b: UTSArray<String> = utsArrayOf();
+        var voices = this.textToSpeech.getVoices()
+        var b: UTSArray<String> = utsArrayOf()
         for(s in resolveUTSKeyIterator(voices)){
-            b.push(s.getName());
+            b.push(s.getName())
         }
-        return b;
+        return b
     }
     public open fun setSpeed(num: Number) {
-        this.textToSpeech.setSpeechRate(num.toFloat());
+        this.textToSpeech.setSpeechRate(num.toFloat())
     }
     public open fun setVoiceName(name: String): Unit {
-        var voices = this.textToSpeech.getVoices();
-        var cur: Voice? = null;
+        var voices = this.textToSpeech.getVoices()
+        var cur: Voice? = null
         for(s in resolveUTSKeyIterator(voices)){
             if (name == s.getName()) {
-                cur = s;
+                cur = s
             }
         }
-        this.textToSpeech.setVoice(cur!!!!);
+        this.textToSpeech.setVoice(cur!!!!)
     }
     public open fun stop() {
-        this.textToSpeech.stop();
+        this.textToSpeech.stop()
     }
     public open fun shutdown() {
-        this.textToSpeech.shutdown();
+        this.textToSpeech.shutdown()
     }
     public open fun isSpeaking(): Boolean {
-        return this.textToSpeech.isSpeaking();
+        return this.textToSpeech.isSpeaking()
     }
     public open fun listenerVoiceState(callback: (state: Number) -> Unit) {
         open class MyOnVoiceStateListener : OnVoiceStateListener {
             override fun onVoiceState(state: Number) {
-                callback(state);
+                callback(state)
             }
         }
-        this.onVoiceStateListener = MyOnVoiceStateListener();
+        this.onVoiceStateListener = MyOnVoiceStateListener()
     }
     open fun getEngineName(): String {
-        return this.textToSpeech.getDefaultEngine();
+        return this.textToSpeech.getDefaultEngine()
     }
 }
 interface OnVoiceStateListener {
     fun onVoiceState(state: Number)
 }
 open class MyTTSListener : UtteranceProgressListener {
-    open var ts: AndroidTTSVoice;
+    open var ts: AndroidTTSVoice
     constructor(t: AndroidTTSVoice){
-        this.ts = t;
+        this.ts = t
     }
     public override fun onStart(s1: String): Unit {
-        ts.onVoiceStateListener!!.onVoiceState(0);
+        ts.onVoiceStateListener!!.onVoiceState(0)
     }
     public override fun onDone(s1: String): Unit {
-        ts.onVoiceStateListener!!.onVoiceState(1);
+        ts.onVoiceStateListener!!.onVoiceState(1)
     }
     public override fun onError(s1: String): Unit {
-        console.log("onError" + s1);
-        ts.onVoiceStateListener!!.onVoiceState(-1);
+        console.log("onError" + s1)
+        ts.onVoiceStateListener!!.onVoiceState(-1)
     }
 }
 val getSoldRadiusBg = fun(colorSold: Number, radius: Number): GradientDrawable {
-    var drawable: GradientDrawable = GradientDrawable();
-    drawable.setShape(GradientDrawable.RECTANGLE);
-    drawable.setCornerRadius(radius.toFloat());
-    drawable.setColor(colorSold.toInt());
-    return drawable;
+    var drawable: GradientDrawable = GradientDrawable()
+    drawable.setShape(GradientDrawable.RECTANGLE)
+    drawable.setCornerRadius(radius.toFloat())
+    drawable.setColor(colorSold.toInt())
+    return drawable
 }
-;
 open class MyApiOptionsJSONObject : UTSJSONObject() {
-    open var paramA: Boolean = false;
-    open var success: UTSCallback? = null;
-    open var fail: UTSCallback? = null;
-    open var complete: UTSCallback? = null;
+    open var paramA: Boolean = false
+    open var success: UTSCallback? = null
+    open var fail: UTSCallback? = null
+    open var complete: UTSCallback? = null
 }
 fun myApiByJs(options: MyApiOptionsJSONObject): Unit {
     return myApi(MyApiOptions(paramA = options.paramA, success = fun(res: MyApiResult): Unit {
-        options.success?.invoke(res);
+        options.success?.invoke(res)
     }
     , fail = fun(res: MyApiFail): Unit {
-        options.fail?.invoke(res);
+        options.fail?.invoke(res)
     }
     , complete = fun(res: Any): Unit {
-        options.complete?.invoke(res);
+        options.complete?.invoke(res)
     }
-    ));
+    ))
 }
 fun myApiSyncByJs(paramA: Boolean): MyApiResult {
-    return myApiSync(paramA);
+    return myApiSync(paramA)
 }
 fun showToastByJs(text: String): Unit {
-    return showToast(text);
+    return showToast(text)
 }
 fun showColorToastByJs(text: String, color: String): Unit {
-    return showColorToast(text, color);
+    return showColorToast(text, color)
 }
 fun showToastButtonByJs(text: String): Unit {
-    return showToastButton(text);
+    return showToastButton(text)
 }
 fun androidDialogByJs(title: String, msg: String, okText: String, callback: UTSCallback, cancelText: String, callback1: UTSCallback): Unit {
-    return androidDialog(title, msg, okText, fun(){
-        callback();
+    return androidDialog(title, msg, okText, if (callback.fnJS != null) {
+        callback.fnJS
+    } else {
+        callback.fnJS = fun(){
+            callback()
+        }
+        callback.fnJS
     }
-    , cancelText, fun(){
-        callback1();
+     as () -> Unit, cancelText, if (callback1.fnJS != null) {
+        callback1.fnJS
+    } else {
+        callback1.fnJS = fun(){
+            callback1()
+        }
+        callback1.fnJS
     }
-    );
+     as () -> Unit)
 }
 fun isHavePermisionByJs(pername: String): Boolean {
-    return isHavePermision(pername);
+    return isHavePermision(pername)
 }
 fun requestPermisonByJs(pername: String, callback: UTSCallback): Unit {
-    return requestPermison(pername, fun(sth: Boolean){
-        callback(sth);
+    return requestPermison(pername, if (callback.fnJS != null) {
+        callback.fnJS
+    } else {
+        callback.fnJS = fun(sth: Boolean){
+            callback(sth)
+        }
+        callback.fnJS
     }
-    );
+     as (sth: Boolean) -> Unit)
 }
 fun requesMoretPermisonByJs(pername: UTSArray<String>, callback: UTSCallback): Unit {
-    return requesMoretPermison(pername, fun(sth: Boolean){
-        callback(sth);
+    return requesMoretPermison(pername, if (callback.fnJS != null) {
+        callback.fnJS
+    } else {
+        callback.fnJS = fun(sth: Boolean){
+            callback(sth)
+        }
+        callback.fnJS
     }
-    );
+     as (sth: Boolean) -> Unit)
 }
 fun saveBase64ToGalleryByJs(name: String, base64: String, callback: UTSCallback): Unit {
-    return saveBase64ToGallery(name, base64, fun(sth: Boolean){
-        callback(sth);
+    return saveBase64ToGallery(name, base64, if (callback.fnJS != null) {
+        callback.fnJS
+    } else {
+        callback.fnJS = fun(sth: Boolean){
+            callback(sth)
+        }
+        callback.fnJS
     }
-    );
+     as (sth: Boolean) -> Unit)
 }
 fun saveBitmapByJs(name: String, base64: String, callback: UTSCallback): Unit {
-    return saveBitmap(name, base64, fun(sth: Boolean){
-        callback(sth);
+    return saveBitmap(name, base64, if (callback.fnJS != null) {
+        callback.fnJS
+    } else {
+        callback.fnJS = fun(sth: Boolean){
+            callback(sth)
+        }
+        callback.fnJS
     }
-    );
+     as (sth: Boolean) -> Unit)
 }
 fun showEditDialogByJs(bean: InputBean): Unit {
     return showEditDialog(InputBean(title = bean.title, holder = bean.holder, nowInput = bean.nowInput, inputType = bean.inputType, maxLength = bean.maxLength, cancelText = bean.cancelText, okText = bean.okText, okCallbackClick = fun(res: String): Unit {
-        bean.okCallbackClick(res);
+        bean.okCallbackClick(res)
     }
     , cancelCallbackClick = fun(): Unit {
-        bean.cancelCallbackClick();
+        bean.cancelCallbackClick()
     }
-    ));
+    ))
 }
 fun screenShotEnableStateByJs(state: Boolean): Unit {
-    return screenShotEnableState(state);
+    return screenShotEnableState(state)
 }
 fun convertHtmlPxToAndroidPxByJs(htmlPx: Number): Number {
-    return convertHtmlPxToAndroidPx(htmlPx);
+    return convertHtmlPxToAndroidPx(htmlPx)
 }
 fun showImgDialogByJs(): Unit {
-    return showImgDialog();
+    return showImgDialog()
 }
 open class AndroidTTSVoiceByJs : AndroidTTSVoice {
-    constructor(callback: UTSCallback) : super(fun(init: Boolean){
-        callback(init);
+    constructor(callback: UTSCallback) : super(if (callback.fnJS != null) {
+        callback.fnJS
+    } else {
+        callback.fnJS = fun(init: Boolean){
+            callback(init)
+        }
+        callback.fnJS
     }
-    ) {}
+     as (init: Boolean) -> Unit) {}
     public open fun speakByJs(data: String): Number {
-        return this.speak(data);
+        return this.speak(data)
     }
     public open fun getVoiceNamesByJs(): UTSArray<String> {
-        return this.getVoiceNames();
+        return this.getVoiceNames()
     }
     public open fun setSpeedByJs(num: Number) {
-        return this.setSpeed(num);
+        return this.setSpeed(num)
     }
     public open fun setVoiceNameByJs(name: String): Unit {
-        return this.setVoiceName(name);
+        return this.setVoiceName(name)
     }
     public open fun stopByJs() {
-        return this.stop();
+        return this.stop()
     }
     public open fun shutdownByJs() {
-        return this.shutdown();
+        return this.shutdown()
     }
     public open fun isSpeakingByJs(): Boolean {
-        return this.isSpeaking();
+        return this.isSpeaking()
     }
     public open fun listenerVoiceStateByJs(callback: UTSCallback) {
-        return this.listenerVoiceState(fun(state: Number){
-            callback(state);
+        return this.listenerVoiceState(if (callback.fnJS != null) {
+            callback.fnJS
+        } else {
+            callback.fnJS = fun(state: Number){
+                callback(state)
+            }
+            callback.fnJS
         }
-        );
+         as (state: Number) -> Unit)
     }
     open fun getEngineNameByJs(): String {
-        return this.getEngineName();
+        return this.getEngineName()
     }
 }

--
Gitblit v1.9.3