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 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) { } }