package com.basic.security.fragment; import android.os.Bundle; import android.os.SystemClock; import android.text.TextUtils; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import android.widget.TextView; import com.basic.security.base.BaseApplication; import com.basic.security.base.BaseFragment; import com.basic.security.manager.BaseSettingManager; import com.basic.security.manager.UserManager; import com.basic.security.model.ModelAdapter; import com.basic.security.utils.Constants; import com.basic.security.utils.KeyboardUtil; import com.basic.security.utils.ResolutionAdaptation; import com.basic.security.utils.ToastUtil; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EFragment; import org.androidannotations.annotations.TextChange; import org.androidannotations.annotations.UiThread; import org.androidannotations.annotations.ViewById; @EFragment public class AdminPasswordLoginFragment extends BaseFragment { @ViewById EditText account, password; private long lastClickTime = 0; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(ResolutionAdaptation.fragment_admin_password_login(), container, false); } @AfterViews public void afterViews() { password.setOnKeyListener((v, keyCode, event) -> { if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) { login(); return true; } return false; }); } @TextChange({com.basic.security.utils.RUtils.R_id_account, com.basic.security.utils.RUtils.R_id_password}) void onTextChangesOnSomeTextViews(TextView tv, CharSequence text) { mainActivity().refreshCurrentFragmentShowTime(); } @Click public void face_login() { long currentTime = System.currentTimeMillis(); if (currentTime - lastClickTime < MIN_CLICK_DELAY_TIME) { return; } lastClickTime = System.currentTimeMillis(); KeyboardUtil.hideSoftKeyboard(); waitSoftHide(null); } @Click public void login() { KeyboardUtil.hideSoftKeyboard(); if (TextUtils.isEmpty(account.getText().toString().trim())) { ToastUtil.show("请输入用户名"); return; } if (TextUtils.isEmpty(password.getText().toString().trim())) { ToastUtil.show("请输入密码"); return; } UserManager.loginPerson = null; ModelAdapter user = null; if ("basic".equals(account.getText().toString()) && "basic123".equals(password.getText().toString())) { UserManager.setIsBasic(true); user = UserManager.getUserByName(account.getText().toString()); } else { UserManager.setIsBasic(false); user = UserManager.getUser(account.getText().toString().trim(), password.getText().toString().trim()); } if (user == null) { ToastUtil.show("用户名或密码错误,请重新输入"); password.setText(""); } else { waitSoftHide(user); } } void waitSoftHide(ModelAdapter adminAccount) { BaseApplication.getApplication().executorService.execute(() -> { SystemClock.sleep(300); waitSoftHideUIThread(adminAccount); }); } @UiThread void waitSoftHideUIThread(ModelAdapter adminAccount) { try { SystemClock.sleep(200); if (adminAccount == null) { mainActivity().showFragment(mainActivity().fragment_admin_face_login); } else { UserManager.setAdminUser(adminAccount); if (Constants.indoorOutdoorInOne) { if (BaseSettingManager.isGuestMode()) { mainActivity().fragment_toolbar.visitor_model(); } else { mainActivity.fragment_toolbar.person_manage(); } } else { mainActivity().fragment_menu.person_add(); } ToastUtil.show("管理员登入成功!"); mainActivity.fragment_toolbar.toggleGuestModeButton(); } } catch (Exception e) { e.printStackTrace(); } } @UiThread public void show() { super.show(); if (mainActivity().fragment_toolbar.welcome != null) { mainActivity().fragment_toolbar.welcome.setVisibility(View.VISIBLE); } if (Constants.indoorOutdoorInOne) { account.setText(""); password.setText(""); } if (Constants.isOutdoor) { account.setText("admin"); password.setText("admin123"); } account.requestFocus(); KeyboardUtil.showKeyboard(); } @Override public void hide() { super.hide(); try { if (mainActivity().fragment_toolbar.welcome != null) { mainActivity().fragment_toolbar.welcome.setVisibility(View.GONE); } } catch (Exception e) { e.printStackTrace(); } } }