package com.example.bpa;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import com.example.bpa.app.Main;
import com.example.bpa.config.ConfigName;
import com.example.bpa.db.QueryDB;
import com.example.bpa.db.mode.BPA_USER;
import com.example.bpa.helper.MessageLog;
import com.example.bpa.helper.T;
import com.example.bpa.view.mode.UserLogEnum;

public class LoginActivity extends Activity implements View.OnClickListener {
    //region 界面变量
    //用户名
    private EditText username, password;
    //密码
    private Button btn_login,btn_close;
    //endregion

    //region 私有函数
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        Init();
        initEvents();
    }
    //endregion

    //region 公有函数
    /**
     * 初始化
     */
    private void Init() {
        username = findViewById(R.id.input_layout_name);
        password = findViewById(R.id.input_layout_psw);
        btn_login = findViewById(R.id.btn_login);
        btn_close=findViewById(R.id.btn_close);
        username.setText(ConfigName.getInstance().user.account );
        password.setText(ConfigName.getInstance().user.pass );
    }
    /**
     * 初始化按钮事件
     */
    private void initEvents() {
        //设置四个Tab的点击事件
        btn_login.setOnClickListener(this);
        btn_close.setOnClickListener(this);
    }

    /**
     * 登录函数
     */
    public void Login()
    {
        String inputName = username.getText().toString();
        String pwd = password.getText().toString();
        BPA_USER user= QueryDB.UserLogin(inputName,pwd);
        if (user!=null) {
            ConfigName.getInstance().user = user;
            Main.getInstance().SavePZ();//保存配置
            MessageLog.ShowUserMessage(UserLogEnum.登录日志,user.name+"-登录成功");
            T.show(LoginActivity.this, "登录成功!");
            try {
                Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                startActivity(intent);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        } else {
            MessageLog.ShowUserMessage(UserLogEnum.登录日志,user.name+"-用户密码错误!");
            T.show(LoginActivity.this, "用户密码错误!");
        }
    }
    //endregion

    //region 点击事件
    /**
     * 本页面点击事件监听
     *
     * @param v
     */
    @Override
    public void onClick(View v) {
        //根据点击的Tab切换不同的页面及设置对应的ImageButton为绿色
        switch (v.getId()) {
            case R.id.btn_login:
                Login();
                break;
            case R.id.btn_close:
                ColseActive();
                break;

        }
    }

    /**
     * 监听Enter事件
     * @param keyCode
     * @param event
     * @return
     */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        boolean result = false;

        switch (keyCode) {
            case KeyEvent.KEYCODE_DPAD_CENTER:
            case KeyEvent.KEYCODE_ENTER: {
                Login();
                return true;
            }
        }
        return result;
    }
    /**
     * 关闭主窗体
     */
    public void ColseActive()
    {
        // 1.创建弹框对象,显示在当前页面
        AlertDialog.Builder ab = new AlertDialog.Builder(LoginActivity.this);
        // 2.编辑弹框样式
        // 2.1 创建标题
        ab.setTitle("退出安全提示");
        // 2.3 设置图标
        ab.setIcon(R.mipmap.ts);
        // 2.4 设置内容
        ab.setMessage("您是否确定退出程序？");
        // 2.5 设置按钮
        ab.setPositiveButton("取消",null);
        ab.setNeutralButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // 实现程序的退出，结束当前
                LoginActivity.this.finish();
            }
        });
        // 3.创建弹框
        ab.create();
        // 4.显示弹框
        ab.show();
    }
    //endregion
}