修改蓝牙连接、配网时动画设置。

This commit is contained in:
fengjignqi
2026-06-17 08:42:54 +08:00
parent 92ca8067d2
commit 8b3c6d1761
18 changed files with 282 additions and 156 deletions

View File

@@ -1,11 +1,16 @@
package com.ckkj.water.device;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
@@ -50,11 +55,14 @@ public class SelectWifiActivity extends BaseActivity<DeviceResetWifiBinding, Dev
private String mWifiName = "";
private WaterDeviceEntity mBleDeviceEntity;
private WaterDeviceEntity mRemoteDeviceEntity;
private EspProvisionManager espProvisionManager;
private boolean isBleConnecting = false;
private boolean isBleConnected = false;
private boolean keepBleConnectionForProvision = false;
private Handler bleConnectHandler = new Handler();
private AnimationDrawable animationDrawable;
private Handler handler = new Handler(Looper.getMainLooper());
@Override
public DevicePresenter createPresenter() {
@@ -104,6 +112,31 @@ public class SelectWifiActivity extends BaseActivity<DeviceResetWifiBinding, Dev
}
}
private void startConnectAnimation() {
if (animationDrawable != null && animationDrawable.isRunning()) {
animationDrawable.stop();
}
viewBinding.ivConnectAnimation.setImageResource(R.drawable.anim_connect_ble_device);
animationDrawable = (AnimationDrawable) viewBinding.ivConnectAnimation.getDrawable();
if (animationDrawable != null) {
animationDrawable.start();
}
}
private void stopConnectAnimation() {
handler.removeCallbacksAndMessages(null);
if (animationDrawable != null) {
animationDrawable.stop();
animationDrawable = null;
}
viewBinding.linearConnectBle.setVisibility(GONE);
viewBinding.linearWifiContent.setVisibility(VISIBLE);
}
private void initWifiList() {
wifiListAdapter = new WifiListAdapter(mContext);
viewBinding.rvWifiList.setAdapter(wifiListAdapter);
@@ -193,25 +226,7 @@ public class SelectWifiActivity extends BaseActivity<DeviceResetWifiBinding, Dev
finish();
}
/**
* 配置网络
*/
private void provisionWifi() {
if (espProvisionManager == null) {
ToastUtil.showShort(mContext, "设备连接未初始化");
return;
}
if (!isBleConnected) {
if (!isBleConnecting) {
connectBleDevice();
}
ToastUtil.showShort(mContext, "设备连接中,请稍后再试");
return;
}
showProgressLoadingDialog(0);
espProvisionManager.provisionWifi(mWifiName, viewBinding.etInputPsd.getText().toString());
// goTo(mContext,DeviceConnectActivity.class,null);
}
private void initEspProvision() {
espProvisionManager = EspProvisionManager.init(mContext).setCallback(new ProvisionCallback() {
@@ -227,8 +242,10 @@ public class SelectWifiActivity extends BaseActivity<DeviceResetWifiBinding, Dev
isBleConnecting = false;
isBleConnected = true;
Log.i("TEST","onConnected设备连接成功");
hideDialogLoading();
stopConnectAnimation();
ToastUtil.showShort(mContext, "设备连接成功");
//Tips 蓝牙扫描添加的设备不同于二维码扫描连接的设备由于无法拿到deviceNo所以需要请求接口获取
mPresenter.bindDeviceStatus(mBleDeviceEntity);
}
@Override
@@ -257,7 +274,7 @@ public class SelectWifiActivity extends BaseActivity<DeviceResetWifiBinding, Dev
}
Log.i("TEST","errorCode == " + errorCode + " message == " + message);
ToastUtil.showShort(mContext, message);
hideDialogLoading();
stopConnectAnimation();
finish();
}
@@ -265,9 +282,8 @@ public class SelectWifiActivity extends BaseActivity<DeviceResetWifiBinding, Dev
public void onDisconnected() {
isBleConnecting = false;
isBleConnected = false;
hideDialogLoading();
stopConnectAnimation();
Log.i("TEST","onDisconnected");
hideDialogLoading();
ToastUtil.showShort(mContext, "设备已断开");
}
@@ -292,7 +308,7 @@ public class SelectWifiActivity extends BaseActivity<DeviceResetWifiBinding, Dev
* 连接设备
*/
private void scheduleBleConnect() {
showLoadingDialog();
startConnectAnimation();
bleConnectHandler.removeCallbacksAndMessages(null);
bleConnectHandler.postDelayed(new Runnable() {
@Override
@@ -364,6 +380,12 @@ public class SelectWifiActivity extends BaseActivity<DeviceResetWifiBinding, Dev
}
}
@Override
public void queryDeviceBindStatusSuccess(WaterDeviceEntity bean) {
mBleDeviceEntity = bean.getBindDevice();
}
@Override
public void addDeviceSuccess(WaterDeviceEntity bean) {
@@ -389,6 +411,7 @@ public class SelectWifiActivity extends BaseActivity<DeviceResetWifiBinding, Dev
}
@Override
public int getLayoutResId(Bundle savedInstanceState) {
return 0;