package net.micode.notes.ui;

import static android.content.Context.MODE_PRIVATE;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import net.micode.notes.R;

//继承自 Activity 类，用于管理设置密码的页面行为
public class SettingPassword extends Activity {
    //定义两个 EditText 成员变量用于获取用户输入的密码以及确认密码
    EditText password;
    EditText password_ack;
    //定义 Button 成员变量用于用户完成密码输入时点击确认
    Button acknowledge;

    //Activity 的 onCreate()方法，创建 SettingPassword时被调用
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置当前 Activity 使用的布局文件
        setContentView(R.layout.activity_set_loginpassword);
        //设置软键盘的行为
        getWindow().setSoftInputMode(
                WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE
                        | WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
        //关联至 EditText 组件(用于输入密码)
        password = (EditText) findViewById(R.id.password);
        //关联至 EditText 组件(用于确认密码)
        password_ack = (EditText) findViewById(R.id.password_ack);
        //关联 acknowledge 至Button 组件(确认按钮)
        acknowledge = (Button)findViewById(R.id.acknowledge);
        //设置确认按钮的监听器
        acknowledge.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //获取用户输入的密码和确认密码
                String text02 = password.getText().toString();
                String text03 = password_ack.getText().toString();
                //检查密码是否为空
                if(text02.equals("")==true) {
                    Toast.makeText(SettingPassword.this, "密码不能为空", Toast.LENGTH_SHORT).show();
                }
                //检查输入的密码和确认密码是否相同
                else if (text02.equals(text03) == false) {
                    Toast.makeText(SettingPassword.this, "密码错误，请重新输入密码 ", Toast.LENGTH_SHORT).show();
                            password_ack.setText(""); //不同则清空确认密码框
                }
                //若输入的密码和确认密码相同
                else if (text02.equals(text03) == true){
                    SharedPreferences.Editor editor=getSharedPreferences("user management", MODE_PRIVATE).edit();
                    editor.putBoolean("user",true); //true 表示已经设置登录密码
                    editor.putString("password",text02); //保存密码
                    editor.apply(); //应用更改
                    Log.d("RegisterLoginPassword","password is "+text02);
                    Toast.makeText(SettingPassword.this, "密码设置成功",
                            Toast.LENGTH_SHORT).show();
                    Intent intent=new
                            Intent(SettingPassword.this,NotesListActivity.class);
                    startActivity(intent);
                    finish();
                }
            }
        });
    }

    //重写 onBackPressed 方法，用于在按下返回键时的操作
    @Override
    public void onBackPressed() {
        //创建跳转到便签列表界面的 Intent
        Intent intent=new Intent(SettingPassword.this,NotesListActivity.class);
        startActivity(intent);
        finish();
    }
}