package com.basic.security.widget;
|
|
import android.app.Dialog;
|
import android.content.Context;
|
import android.os.Bundle;
|
import android.support.annotation.NonNull;
|
import android.util.DisplayMetrics;
|
import android.view.LayoutInflater;
|
import android.view.MotionEvent;
|
import android.view.View;
|
import android.view.Window;
|
import android.view.WindowManager;
|
import android.view.inputmethod.InputMethodManager;
|
import android.widget.Button;
|
import android.widget.EditText;
|
import android.widget.TextView;
|
|
import com.basic.security.count.R;
|
import com.basic.security.activity.MainActivity;
|
import com.basic.security.base.BaseApplication;
|
import com.basic.security.manager.SettingManager;
|
import com.basic.security.utils.ToastUtil;
|
|
public class AuthDialog extends Dialog {
|
|
private Context context;
|
private ClickListenerInterface clickListenerInterface;
|
public EditText password;
|
|
public interface ClickListenerInterface {
|
|
void doConfirm();
|
|
void doCancel();
|
}
|
|
public AuthDialog(Context context) {
|
super(context, R.style.ConfirmDialogStyle);
|
this.context = context;
|
this.setCanceledOnTouchOutside(false);
|
}
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
init();
|
}
|
|
public void init() {
|
|
LayoutInflater inflater = LayoutInflater.from(context);
|
|
View view = inflater.inflate(R.layout.auth_dialog, null);
|
setContentView(view);
|
|
TextView tvTitle = view.findViewById(R.id.title);
|
Button tvConfirm = view.findViewById(R.id.ok);
|
Button cancel = view.findViewById(R.id.cancel);
|
password = view.findViewById(R.id.password);
|
|
tvConfirm.setOnClickListener(new clickListener());
|
cancel.setOnClickListener(new clickListener());
|
|
Window dialogWindow = getWindow();
|
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
|
DisplayMetrics d = context.getResources().getDisplayMetrics(); // 获取屏幕宽、高用
|
//lp.width = (int) (d.widthPixels * 0.8); // 高度设置为屏幕的0.6
|
//dialogWindow.setAttributes(lp);
|
hideSystemUI();
|
initSystemUIListener();
|
}
|
|
private void initSystemUIListener() {
|
if (getWindow() != null) {
|
getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
|
@Override
|
public void onSystemUiVisibilityChange(int visibility) {
|
hideSystemUI();
|
}
|
});
|
|
}
|
}
|
|
private void hideSystemUI() {
|
if (getWindow() != null) {
|
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
| View.SYSTEM_UI_FLAG_FULLSCREEN
|
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
|
| View.SYSTEM_UI_FLAG_IMMERSIVE);
|
}
|
}
|
|
@Override
|
public void show() {
|
|
try {
|
hideSystemUI();
|
super.show();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
}
|
|
public void setClickListener(ClickListenerInterface clickListenerInterface) {
|
this.clickListenerInterface = clickListenerInterface;
|
}
|
|
private class clickListener implements View.OnClickListener {
|
@Override
|
public void onClick(View v) {
|
int id = v.getId();
|
switch (id) {
|
case R.id.ok:
|
String passwordStr = password.getText().toString();
|
String dbPassword = SettingManager.oldPassword();
|
if (passwordStr.length() == 0) {
|
ToastUtil.show("密码不能为空");
|
return;
|
}
|
if (!dbPassword.equals(passwordStr)) {
|
ToastUtil.show("密码不正确");
|
return;
|
}
|
AuthDialog.this.dismiss();
|
((MainActivity) BaseApplication.getApplication().activity).do_goto_setting();
|
break;
|
case R.id.cancel:
|
AuthDialog.this.dismiss();
|
break;
|
}
|
}
|
|
}
|
|
@Override
|
public boolean onTouchEvent(@NonNull MotionEvent event) {
|
InputMethodManager imm = (InputMethodManager) BaseApplication.getApplication().getSystemService(context.INPUT_METHOD_SERVICE);
|
imm.hideSoftInputFromWindow(password.getWindowToken(), 0);
|
return super.onTouchEvent(event);
|
}
|
|
}
|