package com.basic.security.activity.helper;
|
|
import android.os.SystemClock;
|
import android.support.v4.app.FragmentManager;
|
import android.view.View;
|
|
import com.basic.security.base.BaseApplication;
|
import com.basic.security.base.BaseFragment;
|
import com.basic.security.fragment.CameraFragment;
|
import com.basic.security.manager.FaceTitleAndTipsManager;
|
import com.basic.security.utils.KeyboardUtil;
|
|
import org.androidannotations.annotations.EActivity;
|
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
|
@EActivity
|
public abstract class MaFragments extends MaBase {
|
|
public BaseFragment currentFragment;
|
public List<BaseFragment> fragments = new ArrayList<>();
|
BaseFragment previewFragment;
|
|
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 void showFragment(BaseFragment showFragment) {
|
if (showFragment == fragment_su_logged_ic_wait_face || showFragment == fragment_su_logged_nic_wait_face) {
|
BaseFragment.detectedResult = null;
|
BaseApplication.getApplication().activity.fragment_face_detail.setPerson(null);
|
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) {
|
previewFragment = currentFragment;
|
// LogFileUtils.logStacktraceToFile(this);
|
previewFragment = currentFragment;
|
if (currentFragment == fragment_home) {
|
System.out.println("");
|
}
|
|
BaseApplication.getApplication().activity.runOnUiThread(new Runnable() {
|
@Override
|
public void run() {
|
// currentFragmentTextView.setText(showFragment.toString().split("_")[0]);
|
if (currentFragment == showFragment && !forceRefresh) {
|
return;
|
}
|
refreshCurrentFragmentShowTime(showFragment);
|
togglePasswordOpenDoorFragment(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);
|
if (previewFragment != fragment_su_auto_wait_face
|
&& previewFragment != fragment_door_access_result
|
&& previewFragment != fragment_su_auto_wait_admin
|
) {
|
FaceTitleAndTipsManager.clearFaceTitle();
|
fragment_camera.drawFaceRect(CameraFragment.lastDetectedResult);
|
}
|
}
|
});
|
}
|
|
private void togglePasswordOpenDoorFragment(BaseFragment showFragment) {
|
if (showFragment == fragment_su_auto_wait_face
|
|| showFragment == fragment_door_access_result
|
|| showFragment == fragment_su_auto_wait_admin
|
// || showFragment == fragment_home
|
) {
|
showOneFragment(fragment_password_open_door);
|
} else {
|
hideOneFragment(fragment_password_open_door);
|
fragment_password_open_door.hideKeyboard();
|
}
|
}
|
|
public void showOneFragment(BaseFragment fragment) {
|
if (!fragment.isShow || !fragment.getUserVisibleHint()) {
|
View view = fragment.getView();
|
if (view != null) {
|
view.setVisibility(View.VISIBLE);
|
}
|
fragment.show();
|
FragmentManager fm = getSupportFragmentManager();
|
fm.beginTransaction()
|
// .setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out)
|
.show(fragment)
|
.commitAllowingStateLoss();
|
fragment.setUserVisibleHint(true);
|
}
|
}
|
|
public void hideOneFragment(BaseFragment fragment) {
|
if (fragment.isShow || fragment.getUserVisibleHint()) {
|
View view = fragment.getView();
|
if (view != null) {
|
view.setVisibility(View.INVISIBLE);
|
}
|
fragment.hide();
|
FragmentManager fm = getSupportFragmentManager();
|
fm.beginTransaction()
|
.hide(fragment)
|
.commitAllowingStateLoss();
|
fragment.setUserVisibleHint(false);
|
}
|
}
|
|
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
|
);
|
}
|
|
}
|