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

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

@@ -210,4 +210,9 @@ public class AddDeviceActivity extends BaseActivity<AddDeviceLayoutBinding, Devi
public void turnOnOffDeviceSuccess(BaseBean bean) {
}
@Override
public void queryDeviceBindStatusSuccess(WaterDeviceEntity bean) {
}
}

View File

@@ -448,6 +448,11 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
}
@Override
public void queryDeviceBindStatusSuccess(WaterDeviceEntity bean) {
}
@Override
protected void onDestroy() {
super.onDestroy();

View File

@@ -276,4 +276,9 @@ public class DeviceConnectActivity extends BaseActivity<DeviceConnectLayoutBindi
public void turnOnOffDeviceSuccess(BaseBean bean) {
}
@Override
public void queryDeviceBindStatusSuccess(WaterDeviceEntity bean) {
}
}

View File

@@ -353,4 +353,9 @@ public class DeviceControlActivity extends BaseActivity<DeviceControlLayoutBindi
public void turnOnOffDeviceSuccess(BaseBean bean) {
}
@Override
public void queryDeviceBindStatusSuccess(WaterDeviceEntity bean) {
}
}

View File

@@ -102,4 +102,9 @@ public class DeviceInfoActivity extends BaseActivity<DeviceInfoLayoutBinding, De
public void turnOnOffDeviceSuccess(BaseBean bean) {
}
@Override
public void queryDeviceBindStatusSuccess(WaterDeviceEntity bean) {
}
}

View File

@@ -139,4 +139,9 @@ public class DeviceReNameActivity extends BaseActivity<SetDeviceNameLayoutBindin
public void turnOnOffDeviceSuccess(BaseBean bean) {
}
@Override
public void queryDeviceBindStatusSuccess(WaterDeviceEntity bean) {
}
}

View File

@@ -224,4 +224,9 @@ public class DeviceSettingsActivity extends BaseActivity<DeviceSettingsLayoutBin
public void turnOnOffDeviceSuccess(BaseBean bean) {
}
@Override
public void queryDeviceBindStatusSuccess(WaterDeviceEntity bean) {
}
}

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;

View File

@@ -344,6 +344,11 @@ public class SelectWifiActivity_copy extends BaseActivity<DeviceResetWifiBinding
}
@Override
public void queryDeviceBindStatusSuccess(WaterDeviceEntity bean) {
}
private class WifiScanReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

View File

@@ -38,5 +38,7 @@ public class DeviceContract {
void editDeviceInfoSuccess(BaseBean bean);
void deleteDeviceSuccess(BaseBean bean);
void turnOnOffDeviceSuccess(BaseBean bean);
void queryDeviceBindStatusSuccess(WaterDeviceEntity bean);
}
}

View File

@@ -3,6 +3,8 @@ package com.ckkj.water.device.mvp;
import com.ckkj.water.base.BasePresenter;
import com.ckkj.water.index.entity.WaterDeviceEntity;
import com.ckkj.water.index.mvp.IndexContract;
import com.ckkj.water.index.mvp.IndexImpl;
import com.ckkj.water.index.mvp.IndexPresenter;
import com.ckkj.water.network.BaseBean;
import org.json.JSONException;
@@ -32,7 +34,7 @@ public class DevicePresenter extends BasePresenter<DeviceContract.DeviceView> {
json.put("wifiName",mWifiName);
json.put("wifiPassword",mWifiPassword);
json.put("macAddress",mBleDeviceEntity.getMacAddress());
json.put("deviceNo", "01");
json.put("deviceNo", mBleDeviceEntity.getDeviceNo());
// json.put("deviceEm","213123123123");
// json.put("deviceSn","sdfsd32423gdfgdf3");
// json.put("fwVer","fwVer-56565644");
@@ -165,4 +167,35 @@ public class DevicePresenter extends BasePresenter<DeviceContract.DeviceView> {
throw new RuntimeException(e);
}
}
/**
* 绑定设备状态
* @param entity
*/
public void bindDeviceStatus(WaterDeviceEntity entity) {
try {
JSONObject json = new JSONObject();
json.put("macAddress",entity.getMacAddress());
new IndexImpl().queryDeviceBindStatus(json, new IndexContract.CallBack<WaterDeviceEntity>() {
@Override
public void success(WaterDeviceEntity bean, int total) {
bean.setMacAddress(entity.getMacAddress());
bean.setDeviceName(entity.getDeviceName());
if(DevicePresenter.this.getView() != null){
DevicePresenter.this.getView().queryDeviceBindStatusSuccess(bean);
}
}
@Override
public void fail(String msg) {
if(DevicePresenter.this.getView() != null){
DevicePresenter.this.getView().showError(msg);
}
}
});
} catch (JSONException e) {
throw new RuntimeException(e);
}
}
}

View File

@@ -10,8 +10,8 @@ import lombok.NoArgsConstructor;
* @date 2026/5/15
* @description 浇水历史记录
*/
@Data
@NoArgsConstructor
@Data
public class WateringRecord implements Serializable {
/**
@@ -45,9 +45,21 @@ public class WateringRecord implements Serializable {
private String userId;
private String deviceNo;
private String deviceId;
private int scheduleId;
private String scheduleId;
private String durationMin;
private Object zones;
private String zones;
private String createTime;
/**
* commandId : null
* scheduleId : 2062827585485807618
* zones : null
* remark : 设备离线,按排程自动补记
*/
private String commandId;
private String scheduleIdX;
private String zonesX;
private String remark;
}

View File

@@ -30,12 +30,12 @@ public class HistoryPresenter extends BasePresenter<HistoryContract.HistoryView>
map.put("pageNum",mCurrentPage+"");
if(!TextUtils.isEmpty(mFilterStartTime)){
// map.put("beginTime",mFilterStartTime);
map.put("param[beginTime]", mFilterStartTime);
map.put("params[beginTime]", mFilterStartTime);
}
if(!TextUtils.isEmpty(mFilterStartTime)){
// map.put("endTime",mFilterEndTime);
map.put("param[endTime]", mFilterEndTime);
map.put("params[endTime]", mFilterEndTime);
}
if(mFilterType != -1){