189 lines
6.4 KiB
Java
189 lines
6.4 KiB
Java
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<AddDeviceLayoutBinding, DevicePresenter>
|
|
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<String> 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<String> perms) {
|
|
hidePermissionDialog();
|
|
if (requestCode == REQUEST_EVENT_CODE_10001) {
|
|
scanQrcode();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {
|
|
|
|
}
|
|
}
|