233 lines
7.2 KiB
Java
233 lines
7.2 KiB
Java
package com.ckkj.water.device;
|
|
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.view.View;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
import com.ckkj.water.ConstantUtil;
|
|
import com.ckkj.water.EventMessage;
|
|
import com.ckkj.water.R;
|
|
import com.ckkj.water.base.BaseActivity;
|
|
import com.ckkj.water.base.BaseFragment;
|
|
import com.ckkj.water.databinding.DeviceSettingsLayoutBinding;
|
|
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.index.entity.WaterDeviceEntity;
|
|
import com.ckkj.water.network.BaseBean;
|
|
import com.ckkj.water.utils.manager.ThemeManager;
|
|
import com.ckkj.water.utils.show.ToastUtil;
|
|
import com.gyf.immersionbar.ImmersionBar;
|
|
|
|
import de.greenrobot.event.EventBus;
|
|
|
|
/**
|
|
* 设备控制页面
|
|
*/
|
|
public class DeviceSettingsActivity extends BaseActivity<DeviceSettingsLayoutBinding, DevicePresenter>
|
|
implements DeviceContract.DeviceView {
|
|
|
|
private WaterDeviceEntity mDeviceEntity;
|
|
@Override
|
|
public DevicePresenter createPresenter() {
|
|
return new DevicePresenter(new DeviceImpl());
|
|
}
|
|
|
|
@Override
|
|
public void initData(Bundle savedInstanceState) {
|
|
super.initData(savedInstanceState);
|
|
Bundle bundle = getIntent().getExtras();
|
|
if(bundle != null){
|
|
mDeviceEntity = (WaterDeviceEntity) bundle.getSerializable("device_entity");
|
|
viewBinding.tvDeviceName.setText(mDeviceEntity.getDeviceName());
|
|
viewBinding.tvWifiName.setText(mDeviceEntity.getWifiName());
|
|
|
|
}
|
|
ImmersionBar.with(this)
|
|
.statusBarDarkFont(ThemeManager.isAppThemeLight(mContext)) // 白色状态栏图标
|
|
.navigationBarColor(R.color.mainBackgroundColor)
|
|
.titleBar(viewBinding.rlTitle)
|
|
.init();
|
|
viewBinding.includedTitle.tvTitle.setText(R.string.settings_title);
|
|
initListener();
|
|
}
|
|
|
|
private void initListener() {
|
|
setClick(viewBinding.includedTitle.imgBack);
|
|
setClick(viewBinding.rlDevName);
|
|
setClick(viewBinding.rlDevInfo);
|
|
setClick(viewBinding.rlDevWifiManager);
|
|
setClick(viewBinding.rlDevUnbind);
|
|
}
|
|
|
|
private void setClick(View view) {
|
|
view.setOnClickListener(this::onClick);
|
|
}
|
|
|
|
public void onClick(View v){
|
|
switch (v.getId()){
|
|
case R.id.img_back:
|
|
Intent intent = new Intent();
|
|
intent.putExtra("device_entity",mDeviceEntity);
|
|
setResult(RESULT_OK,intent);
|
|
finish();
|
|
break;
|
|
|
|
case R.id.rl_dev_name:
|
|
showEditDialog(getString(R.string.device_setting_name),
|
|
getString(R.string.input_device_name_hint),
|
|
mDeviceEntity.getDeviceName(),
|
|
true,
|
|
getString(R.string.cancel_text),
|
|
getString(R.string.confirm_text),
|
|
BaseActivity.INPUT_TYPE_NORMAL,
|
|
new OnDialogClick() {
|
|
@Override
|
|
public void onCancelClick() {
|
|
}
|
|
|
|
@Override
|
|
public void onConfirmClisk() {
|
|
}
|
|
|
|
@Override
|
|
public void onConfirmClisk(String content) {
|
|
viewBinding.tvDeviceName.setText(content);
|
|
mDeviceEntity.setDeviceName(content);
|
|
mPresenter.updateDeviceInfo(mDeviceEntity);
|
|
}
|
|
|
|
@Override
|
|
public void onView1Click() {
|
|
}
|
|
});
|
|
break;
|
|
|
|
case R.id.rl_dev_info:
|
|
Bundle bundleDev = new Bundle();
|
|
bundleDev.putSerializable("device_entity",mDeviceEntity);
|
|
goTo(mContext, DeviceInfoActivity.class,bundleDev);
|
|
break;
|
|
|
|
case R.id.rl_dev_wifi_manager:
|
|
Bundle bundle = new Bundle();
|
|
bundle.putInt(ConstantUtil.ACTIVITY_NAVIGATE_FLAG,200);
|
|
goToForResult(mContext, SelectWifiActivity.class,REQUEST_EVENT_CODE_10001,bundle);
|
|
break;
|
|
|
|
case R.id.rl_dev_unbind:
|
|
showDialogtext(null, false, false, true,
|
|
getString(R.string.tip_text), getString(R.string.tip_unbind_device),
|
|
getString(R.string.cancel_text), getString(R.string.confirm_text), new BaseFragment.OnDialogClick() {
|
|
@Override
|
|
public void onCancelClick() {
|
|
}
|
|
|
|
@Override
|
|
public void onConfirmClick() {
|
|
mPresenter.unBindDevice(mDeviceEntity);
|
|
}
|
|
});
|
|
break;
|
|
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onBackPressed() {
|
|
Intent intent = new Intent();
|
|
intent.putExtra("device_entity",mDeviceEntity);
|
|
setResult(RESULT_OK,intent);
|
|
super.onBackPressed();
|
|
}
|
|
|
|
@Override
|
|
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
if (data != null) {
|
|
if (resultCode == RESULT_OK) {
|
|
switch (requestCode) {
|
|
case REQUEST_EVENT_CODE_10001:
|
|
viewBinding.tvWifiName.setText(data.getStringExtra("wifi_name"));
|
|
mDeviceEntity.setWifiName(data.getStringExtra("wifi_name"));
|
|
mDeviceEntity.setWifiPassword(data.getStringExtra("wifi_psd"));
|
|
mPresenter.updateDeviceInfo(mDeviceEntity);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 修改设备信息成功
|
|
* @param bean
|
|
*/
|
|
@Override
|
|
public void editDeviceInfoSuccess(BaseBean bean) {
|
|
hideDialogLoading();
|
|
|
|
}
|
|
|
|
@Override
|
|
public void finish() {
|
|
|
|
super.finish();
|
|
}
|
|
|
|
@Override
|
|
public void deleteDeviceSuccess(BaseBean bean) {
|
|
hideDialogLoading();
|
|
ToastUtil.showShort(mContext, getString(R.string.unbind_success));
|
|
EventBus.getDefault().post(new EventMessage(EventMessage.ACTIVITY_FINISH));
|
|
new Handler().postDelayed(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
finish();
|
|
}
|
|
},500);
|
|
}
|
|
|
|
|
|
@Override
|
|
public int getLayoutResId(Bundle savedInstanceState) {
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public void showError(String message) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void logOut(BaseBean bean) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void addDeviceSuccess(WaterDeviceEntity bean) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void getDeviceDetailInfo(WaterDeviceEntity bean) {
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
public void turnOnOffDeviceSuccess(BaseBean bean) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void queryDeviceBindStatusSuccess(WaterDeviceEntity bean) {
|
|
|
|
}
|
|
}
|