package com.basic.security.fragment; import android.os.SystemClock; import android.text.TextUtils; import android.widget.EditText; import android.widget.TextView; import com.basic.security.R; import com.basic.security.base.BaseApplication; import com.basic.security.base.BaseFragment; import com.basic.security.manager.impl.cblite.AccountManager; import com.basic.security.model.ModelAdapter; import com.basic.security.utils.Constants; import com.basic.security.utils.KeyboardUtil; import com.basic.security.utils.ToastUtil; 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(R.layout.fragment_admin_password_login) public class AdminPasswordLoginFragment extends BaseFragment { @ViewById EditText account, password; private long lastClickTime = 0; @Click public void call() { ToolbarFragment.openWebRtc(); } @TextChange({R.id.account, 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 (!Constants.isMonkeyApk) { if (TextUtils.isEmpty(account.getText().toString().trim())) { ToastUtil.show("请输入用户名"); return; } if (TextUtils.isEmpty(password.getText().toString().trim())) { ToastUtil.show("请输入密码"); return; } ModelAdapter adminAccount = AccountManager.getAccount(account.getText().toString().trim(), password.getText().toString().trim()); if (adminAccount == null) { ToastUtil.show("用户名或密码错误,请重新输入"); password.setText(""); } else { waitSoftHide(adminAccount); } } else { ModelAdapter adminAccount = AccountManager.getAccount("admin", "admin123"); waitSoftHide(adminAccount); } } 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 { AccountManager.setAdminAccount(adminAccount); mainActivity().fragment_menu.person_add(); ToastUtil.show("管理员登入成功!"); } } catch (Exception e) { e.printStackTrace(); } } @Override public void show() { super.show(); account.setText("admin"); password.setText(""); account.requestFocus(); KeyboardUtil.showKeyboard(); } }