package eVVM.apk.ui.vaccination; import android.os.Build; import android.support.annotation.RequiresApi; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.widget.ImageView; import com.hjq.permissions.OnPermission; import com.hjq.permissions.Permission; import com.hjq.permissions.XXPermissions; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.OnClick; import eVVM.apk.R; import eVVM.apk.helper.GPS.LocationUtils; import eVVM.apk.helper.NfcUtil; import eVVM.apk.helper.SPUtils; import eVVM.apk.mvp.MvpLazyFragment; import eVVM.apk.ui.bean.CategoryTimesBean; import eVVM.apk.ui.vaccination.categoryTimes.CategoryTimesContract; import eVVM.apk.ui.vaccination.categoryTimes.CategoryTimesPresenter; import eVVM.apk.ui.vaccination.save.ChipModel; public class FirstFragment extends MvpLazyFragment implements CategoryTimesContract.View { @BindView(R.id.first_iv_scanning) ImageView firstIvScanning; @BindView(R.id.img_luotuo) ImageView imgLuotuo; private AlphaAnimation alphaAnimation; public static FirstFragment newInstance() { return new FirstFragment(); } @Override protected int getLayoutId() { return R.layout.first_fragment; } @Override protected int getTitleId() { return 0; } @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2) @Override protected void initView() { //闪烁   alphaAnimation = new AlphaAnimation(0.1f, 1.0f); alphaAnimation.setDuration(1000); alphaAnimation.setRepeatCount(Animation.INFINITE); alphaAnimation.setRepeatMode(Animation.REVERSE); imgLuotuo.setAnimation(alphaAnimation); alphaAnimation.start(); } @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser) { //相当于Fragment的onResume,为true时,Fragment已经可见 SPUtils.remove("INOCULATOR_LIST"); } else { //相当于Fragment的onPause,为false时,Fragment不可见 } } //提交未上传的数据 private void uploadChip() { String user_id = (String) SPUtils.get("USER_ID", ""); if (!user_id.equals("")) { ArrayList chipModelList = (ArrayList) SPUtils.get("CHIP_MODEL_LIST_" + user_id, new ArrayList()); for (ChipModel chipModel : chipModelList) { // getPresenter().forDoctor(chipModel.getChipNumber(),chipModel.getTextRecord(),chipModel.getInoculatorIds(),chipModel.getLongitude(),chipModel.getLatitude()); } } } @Override protected void initData() { getPresenter().categoryTimesList(); } @Override public void categoryTimesListError(String msg) { } @Override public void categoryTimesListSuccess(List data) { for (CategoryTimesBean.DataBean bean : data) { SPUtils.put("CATEGORY_TIMES_" + bean.getCode2(), bean.getOvertimes()); } } @Override public boolean isStatusBarEnabled() { // 使用沉浸式状态栏 return !super.isStatusBarEnabled(); } @OnClick(R.id.first_iv_scanning) public void onViewClicked() { getCameraPermission(); } private void getCameraPermission() { XXPermissions.with(getBindingActivity()) //.constantRequest() //可设置被拒绝后继续申请,直到用户授权或者永久拒绝 //.permission(Permission.SYSTEM_ALERT_WINDOW, Permission.REQUEST_INSTALL_PACKAGES) //支持请求6.0悬浮窗权限8.0请求安装权限 .permission(Permission.CAMERA) //不指定权限则自动获取清单中的危险权限 .request(new OnPermission() { @Override public void hasPermission(List granted, boolean isAll) { if (isAll) { //toast("获取权限成功"); if (!checkGpsAndNfc()) { return; } startActivity(QrCodeActivity.class); } else { toast("获取权限成功,部分权限未正常授予"); } } @Override public void noPermission(List denied, boolean quick) { if (quick) { toast("未获取到照相机权限,请手动授予"); //如果是被永久拒绝就跳转到应用权限系统设置页面 XXPermissions.gotoPermissionSettings(getBindingActivity()); } else { toast("获取照相机权限失败,无法使用扫一扫"); } } }); } @Override public void onLoading() { } @Override public void onComplete() { } @Override public void onEmpty() { } @Override public void onError() { } @Override public void onDestroy() { alphaAnimation.cancel(); super.onDestroy(); } @Override protected CategoryTimesPresenter createPresenter() { return new CategoryTimesPresenter(); } /** * 判断是否支持GPS和NFC功能 */ protected boolean checkGpsAndNfc() { switch (NfcUtil.isOPen(getActivity())) { case 0: toast("您的手机没有NFC功能, 不能使用"); return false; case 1: toast("NFC功能未开启"); return false; } if (!LocationUtils.isOPen(getActivity())) { toast("GPS功能未开启"); return false; } return true; } }