package com.basic.security.activity.helper; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import com.basic.security.base.BaseFragment; import com.basic.security.fragment.FaceDetailTimeFragment; import com.basic.security.fragment.FaceListFragment; import com.basic.security.fragment.RuleDetailFragment; import com.basic.security.fragment.SuAutoNicWaitDetailFragment; import com.basic.security.fragment.SystemSettingTabsFragment; import com.basic.security.fragment.TimeRuleAddFragment; import com.basic.security.fragment.TimeRuleFragment; import com.basic.security.fragment.ToolbarFragment; import com.basic.security.fragment.VisitorModelFragment; import com.basic.security.manager.impl.cblite.AccountManager; import com.basic.security.utils.KeyboardUtil; import org.androidannotations.annotations.EActivity; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; @EActivity public abstract class MaClick extends MaMenu { public long lastAdminClickTime = 0; protected Set adminFragments = new HashSet<>(); public void setUpClickHook() { List allFragments = Arrays.asList(fragment_account_setting, fragment_admin_face_login, fragment_admin_password_login, fragment_cluster_setting, fragment_base_setting, fragment_device_setting, fragment_home, fragment_menu, fragment_rule_detail, fragment_rule_list, fragment_su_auto_ic_compare_success, fragment_su_auto_ic_wait_idcard, fragment_su_auto_nic_wait_detail, fragment_su_logged_ic_compare_success, fragment_su_logged_ic_wait_face, fragment_su_logged_ic_wait_idcard, fragment_su_logged_nic_wait_face, fragment_su_auto_wait_admin, fragment_su_auto_wait_face, fragment_toolbar, fragment_person_manage, fragment_video_view, fragment_camera, fragment_face_list, fragment_face_detail, fragment_face_detail_time); for (BaseFragment fragment : allFragments) { setupUI(fragment.getView()); } adminFragments.addAll(Arrays.asList( fragment_account_setting, fragment_base_setting, fragment_cluster_setting, fragment_device_setting, fragment_person_identity, fragment_person_manage, fragment_rule_detail, fragment_rule_list, fragment_su_logged_ic_compare_success, fragment_su_logged_ic_wait_face, fragment_su_logged_ic_wait_idcard, fragment_su_logged_nic_wait_detail, fragment_su_logged_nic_wait_face, fragment_su_logged_nic_wait_detail, fragment_system_setting_tabs, //新加 fragment_face_detail, fragment_face_detail_time, fragment_face_list, fragment_business_person, fragment_hint_door_access, fragment_hint_recognize, fragment_hint_sign_up, fragment_person_identity, fragment_rule_detail, fragment_rule_list, fragment_time_rule, fragment_time_rule_add, fragment_visit_record_list, fragment_visit_record_list )); } @Override public void onUserInteraction() { setLastAdminClickTime(); } public void setLastAdminClickTime() { if (adminFragments.contains(currentFragment) && AccountManager.adminLoggedIn()) { lastAdminClickTime = System.currentTimeMillis(); } } public void setupUI(final View view) { if (!(view instanceof EditText)) { view.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { setLastAdminClickTime(); refreshCurrentFragmentShowTime(); KeyboardUtil.hideSoftKeyboard(); return false; } }); } if (view instanceof EditText) { view.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) { KeyboardUtil.showKeyboard(); } else { KeyboardUtil.hideSoftKeyboard(); } } }); } view.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (v == ((RuleDetailFragment) fragment_rule_detail).rl_check_hint) { return true; } if (v == ((FaceDetailTimeFragment) fragment_face_detail_time).rl_check_pass_time) { return true; } setLastAdminClickTime(); refreshCurrentFragmentShowTime(); if (view == ((ToolbarFragment) fragment_toolbar).menu) { } else { if (fragment_menu.isVisible()) { hideOneFragment(fragment_menu); } } if (view != ((FaceListFragment) fragment_face_list).person_manager_ll_hide && view != ((FaceListFragment) fragment_face_list).person_manager_lv && view != ((FaceListFragment) fragment_face_list).person_manage_btn_sure ) { ((FaceListFragment) fragment_face_list).hidePersonIdentityPopupFromNotSureButton(); } if (view == ((FaceListFragment) fragment_face_list).person_manager_ll_hide) { return true; } //=========点击其他地方,访客页面选择身份消失======== if (view != ((VisitorModelFragment) fragment_visitor_model).ll_temp_person_check_identity && view != ((VisitorModelFragment) fragment_visitor_model).gv_temp_person && view != ((VisitorModelFragment) fragment_visitor_model).btn_temp_person_sure ) { ((VisitorModelFragment) fragment_visitor_model).ll_temp_person_check_identity.setVisibility(View.GONE); } if (view == ((VisitorModelFragment) fragment_visitor_model).ll_temp_person_check_identity) { return true; } //================= //=========点击其他地方,访客页面组织机构消失======== if (view != ((VisitorModelFragment) fragment_visitor_model).rl_show_organization && view != ((VisitorModelFragment) fragment_visitor_model).lv_organization ) { ((VisitorModelFragment) fragment_visitor_model).rl_show_organization.setVisibility(View.GONE); } if (view == ((VisitorModelFragment) fragment_visitor_model).rl_show_organization) { return true; } //================= if (view != ((SystemSettingTabsFragment) fragment_system_setting_tabs).ll_all_base_setting) { ((SystemSettingTabsFragment) fragment_system_setting_tabs).hideAllSettingPopup(); } if (!(view instanceof EditText)) { KeyboardUtil.hideSoftKeyboard(); } return false; } }); if (view instanceof ViewGroup) { for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) { View innerView = ((ViewGroup) view).getChildAt(i); setupUI(innerView); } } } }