package com.ckkj.water.device; import static android.view.View.GONE; import static android.view.View.VISIBLE; import android.Manifest; import android.content.Intent; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.widget.ImageView; import androidx.annotation.NonNull; import com.ckkj.water.ConstantUtil; import com.ckkj.water.R; import com.ckkj.water.base.BaseActivity; import com.ckkj.water.chat.mvp.IndexPresenter; import com.ckkj.water.databinding.AddDeviceLayoutBinding; import com.ckkj.water.device.mvp.DeviceContract; import com.ckkj.water.device.mvp.DeviceImpl; import com.ckkj.water.device.mvp.DevicePresenter; import com.ckkj.water.network.BaseBean; import com.ckkj.water.utils.show.ToastUtil; import com.gyf.immersionbar.ImmersionBar; import com.maning.mlkitscanner.scan.MNScanManager; import com.maning.mlkitscanner.scan.callback.act.MNScanCallback; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; import pub.devrel.easypermissions.EasyPermissions; /** * 添加设备页面 */ public class AddDeviceActivity extends BaseActivity implements DeviceContract.DeviceView, EasyPermissions.PermissionCallbacks { @Override public DevicePresenter createPresenter() { return new DevicePresenter(new DeviceImpl()); } @Override public void initData(Bundle savedInstanceState) { super.initData(savedInstanceState); ImmersionBar.with(this) .statusBarColor(R.color.color_F9F9F9) // 设置状态栏颜色 .statusBarDarkFont(true) // 设置状态栏字体为黑色 .titleBar(viewBinding.rlTitle) .init(); viewBinding.includedTitle.tvTitle.setText(R.string.add_device_title); // 启动帧动画 ImageView ivScanAnimation = viewBinding.ivScanAnimation; if (ivScanAnimation.getDrawable() instanceof AnimationDrawable) { AnimationDrawable animationDrawable = (AnimationDrawable) ivScanAnimation.getDrawable(); animationDrawable.start(); } new Handler().postDelayed(new Runnable() { @Override public void run() { // 停止帧动画 ImageView ivScanAnimation = viewBinding.ivScanAnimation; if (ivScanAnimation.getDrawable() instanceof AnimationDrawable) { AnimationDrawable animationDrawable = (AnimationDrawable) ivScanAnimation.getDrawable(); if (animationDrawable.isRunning()) { animationDrawable.stop(); viewBinding.ivScanAnimation.setVisibility(GONE); viewBinding.imgDeviceItem.setVisibility(VISIBLE); } } } },3000); initListener(); } private void initListener() { setClick(viewBinding.includedTitle.imgBack); setClick(viewBinding.tvScanAdd); setClick(viewBinding.imgDeviceItem); } private void setClick(View view) { view.setOnClickListener(this::onClick); } public void onClick(View v){ switch (v.getId()){ case R.id.img_back: finish(); break; case R.id.img_device_item: Bundle bundle = new Bundle(); bundle.putInt(ConstantUtil.ACTIVITY_NAVIGATE_FLAG,100); goTo(mContext, SelectWifiActivity.class,bundle); break; case R.id.tv_scan_add: //检测有无相机权限 String readPermission = Manifest.permission.CAMERA; if(!hasRecordPermission(readPermission)){ getPermissionRequst(readPermission,"权限申请", "智能浇水需要您的授权访问相机,并使用扫一扫",REQUEST_EVENT_CODE_10001); }else{ scanQrcode(); } break; } } private void scanQrcode() { //默认扫描 MNScanManager.startScan(mContext, new MNScanCallback() { @Override public void onActivityResult(int resultCode, Intent data) { switch (resultCode) { case MNScanManager.RESULT_SUCCESS: ArrayList results = data.getStringArrayListExtra(MNScanManager.INTENT_KEY_RESULT_SUCCESS); if(results != null){ ToastUtil.showShort(mContext,results.get(0).toString()); } break; case MNScanManager.RESULT_FAIL: String resultError = data.getStringExtra(MNScanManager.INTENT_KEY_RESULT_ERROR); break; case MNScanManager.RESULT_CANCLE: ToastUtil.showShort(mContext,"取消扫码"); break; } } }); } @Override protected void onPause() { super.onPause(); // 停止帧动画 ImageView ivScanAnimation = viewBinding.ivScanAnimation; if (ivScanAnimation.getDrawable() instanceof AnimationDrawable) { AnimationDrawable animationDrawable = (AnimationDrawable) ivScanAnimation.getDrawable(); if (animationDrawable.isRunning()) { animationDrawable.stop(); } } } @Override public int getLayoutResId(Bundle savedInstanceState) { return 0; } @Override public void showError(String message) { } @Override public void logOut(BaseBean bean) { } @Override public void onRequestPermissionsResult(int requestCode, @NonNull @NotNull String[] permissions, @NonNull @NotNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); } @Override public void onPermissionsGranted(int requestCode, @NonNull List perms) { hidePermissionDialog(); if (requestCode == REQUEST_EVENT_CODE_10001) { scanQrcode(); } } @Override public void onPermissionsDenied(int requestCode, @NonNull List perms) { } }