package com.basic.security.activity.helper;
|
|
import android.os.SystemClock;
|
import android.support.v4.app.FragmentManager;
|
|
import com.basic.security.activity.MainActivity;
|
import com.basic.security.base.BaseApplication;
|
import com.basic.security.base.BaseFragment;
|
import com.basic.security.fragment.FaceDetailFragment;
|
import com.basic.security.fragment.PersonIdentityFragment;
|
import com.basic.security.manager.FaceTitleAndTipsManager;
|
import com.basic.security.utils.KeyboardUtil;
|
import com.basic.security.utils.LogFileUtils;
|
|
import org.androidannotations.annotations.EActivity;
|
import org.androidannotations.annotations.UiThread;
|
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
|
@EActivity
|
public abstract class MaFragments extends MaBase {
|
|
public abstract void toggleFaceComponent(BaseFragment showFragment);
|
|
public abstract void toggleVideoView(BaseFragment showFragment);
|
|
public abstract void toggleCamera(BaseFragment showFragment);
|
|
public abstract void toggleToolbarButtons(BaseFragment showFragment);
|
|
public abstract void refreshCurrentFragmentShowTime(BaseFragment showFragment);
|
|
public abstract void refreshCurrentFragmentShowTime();
|
|
public abstract void toggleIdCardPhoneComponent(BaseFragment showFragment);
|
|
public abstract void toggleBackgroundAndBorderComponent(BaseFragment showFragment);
|
|
public abstract void toggleSystemSettingTabsComponent(BaseFragment showFragment);
|
|
public abstract void toggleSystemSettingHintTabsComponent(BaseFragment showFragment);
|
|
public abstract void togglePersonManagerComponent(BaseFragment showFragment);
|
|
|
public BaseFragment currentFragment;
|
|
public List<BaseFragment> fragments = new ArrayList<>();
|
|
public void showFragment(BaseFragment showFragment) {
|
if (showFragment == fragment_su_logged_ic_wait_face || showFragment == fragment_su_logged_nic_wait_face) {
|
BaseFragment.detectedResult = null;
|
((FaceDetailFragment)((MainActivity) BaseApplication.getApplication().activity).fragment_face_detail).setPerson(null);
|
((PersonIdentityFragment)((MainActivity)BaseApplication.getApplication().activity).fragment_person_identity).setIdentityWithPerson(null);
|
}
|
if (showFragment == fragment_su_auto_wait_face) {
|
BaseFragment.detectedResult = null;
|
}
|
showFragment(showFragment, false);
|
}
|
|
// @UiThread
|
public void showFragment(final BaseFragment showFragment, boolean forceRefresh) {
|
LogFileUtils.logStacktraceToFile(this);
|
if (currentFragment == fragment_home) {
|
System.out.println("");
|
}
|
FaceTitleAndTipsManager.clearFaceTitle();
|
BaseApplication.getApplication().activity.runOnUiThread(new Runnable() {
|
@Override
|
public void run() {
|
// currentFragmentTextView.setText(showFragment.toString().split("_")[0]);
|
if (currentFragment == showFragment && !forceRefresh) {
|
return;
|
}
|
refreshCurrentFragmentShowTime(showFragment);
|
toggleFaceComponent(showFragment);
|
toggleCamera(showFragment);
|
toggleVideoView(showFragment);
|
toggleToolbarButtons(showFragment);
|
toggleIdCardPhoneComponent(showFragment);
|
toggleBackgroundAndBorderComponent(showFragment);
|
toggleSystemSettingTabsComponent(showFragment);
|
|
|
KeyboardUtil.hideSoftKeyboard();
|
|
for (BaseFragment fragment : fragments) {
|
if (fragment != showFragment) {
|
hideOneFragment(fragment);
|
}
|
}
|
SystemClock.sleep(100);
|
for (BaseFragment fragment : fragments) {
|
if (fragment == showFragment) {
|
hideOneFragment(fragment);
|
showOneFragment(fragment);
|
}
|
}
|
toggleSystemSettingHintTabsComponent(showFragment);
|
togglePersonManagerComponent(showFragment);
|
}
|
});
|
}
|
|
public void showOneFragment(BaseFragment fragment) {
|
fragment.show();
|
FragmentManager fm = getSupportFragmentManager();
|
fm.beginTransaction()
|
.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out)
|
.show(fragment)
|
.commitAllowingStateLoss();
|
}
|
|
public void hideOneFragment(BaseFragment fragment) {
|
fragment.hide();
|
FragmentManager fm = getSupportFragmentManager();
|
fm.beginTransaction()
|
.hide(fragment)
|
.commitAllowingStateLoss();
|
}
|
|
public void addFragment(BaseFragment... fragmentList) {
|
for (BaseFragment fragment : fragmentList) {
|
if (fragment != fragment_home) {
|
hideOneFragment(fragment);
|
}
|
}
|
fragments.addAll(Arrays.asList(fragmentList));
|
}
|
|
public void addFragments() {
|
addFragment(
|
fragment_account_setting,
|
fragment_base_setting,
|
fragment_device_setting,
|
fragment_cluster_setting,
|
fragment_admin_face_login,
|
fragment_admin_password_login,
|
fragment_home,
|
fragment_rule_detail,
|
fragment_face_detail_time,
|
fragment_rule_list,
|
fragment_su_auto_ic_compare_success,
|
fragment_su_auto_ic_wait_idcard,
|
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_logged_nic_wait_detail,
|
fragment_su_auto_wait_admin,
|
fragment_su_auto_wait_face,
|
fragment_person_manage,
|
fragment_door_access_fail,
|
fragment_door_access_result,
|
fragment_visit_record_list,
|
fragment_door_access_success,
|
fragment_door_access_confirm,
|
fragment_sign_up_success,
|
fragment_su_logged_wait_face,
|
fragment_su_auto_nic_wait_detail,
|
fragment_hint_tab,
|
fragment_hint_door_access,
|
fragment_hint_recognize,
|
fragment_hint_sign_up,
|
fragment_time_rule,
|
fragment_business_person,
|
fragment_time_rule_add,
|
fragment_visitor_model
|
);
|
}
|
|
}
|