package com.mm.android.deviceaddmodule.device_wifi; import android.content.Intent; import android.os.Handler; import com.mm.android.deviceaddmodule.LCDeviceEngine; import com.mm.android.deviceaddmodule.R; import com.mm.android.deviceaddmodule.mobilecommon.AppConsume.BusinessException; import com.mm.android.deviceaddmodule.mobilecommon.AppConsume.BusinessRunnable; import com.mm.android.deviceaddmodule.mobilecommon.AppConsume.DHBaseHandler; import com.mm.android.deviceaddmodule.mobilecommon.businesstip.HandleMessageCode; import com.mm.android.deviceaddmodule.mobilecommon.common.LCConfiguration; import com.mm.android.deviceaddmodule.mobilecommon.utils.PreferencesHelper; import com.mm.android.deviceaddmodule.openapi.DeviceAddOpenApiManager; public class DeviceWifiPasswordPresenter extends BasePresenter implements DeviceWifiPasswordConstract.Presenter { public String WIFI_SAVE_PREFIX = LCDeviceEngine.newInstance().userId + "_WIFI_ADD_"; public String WIFI_CHECKBOX_SAVE_PREFIX = LCDeviceEngine.newInstance().userId + "_WIFI_CHECKBOX_ADD_"; protected String mDeviceId; protected WifiInfo mWifiInfo; private DHBaseHandler mWifiOperateHandler; protected boolean support5G = false; public DeviceWifiPasswordPresenter(T view) { super(view); initModel(); } protected void initModel() { } @Override public void dispatchIntentData(Intent intent) { if (intent != null && intent.getExtras() != null) { mDeviceId = intent.getStringExtra(LCConfiguration.Device_ID); mWifiInfo = (WifiInfo) intent.getSerializableExtra(DeviceConstant.IntentKey.DEVICE_WIFI_CONFIG_INFO); support5G = intent.getBooleanExtra(LCConfiguration.SUPPORT_5G, false); } } @Override public boolean getSupport5G() { return support5G; } @Override public void updateWifiCache() { if (mView.get().isSavePwdChecked()) { PreferencesHelper.getInstance(mView.get().getContextInfo()).set(WIFI_SAVE_PREFIX + mWifiInfo.getSsid(), mView.get().getWifiPassword()); PreferencesHelper.getInstance(mView.get().getContextInfo()).set(WIFI_CHECKBOX_SAVE_PREFIX + mWifiInfo.getSsid(), true); } else { PreferencesHelper.getInstance(mView.get().getContextInfo()).set(WIFI_SAVE_PREFIX + mWifiInfo.getSsid(), ""); PreferencesHelper.getInstance(mView.get().getContextInfo()).set(WIFI_CHECKBOX_SAVE_PREFIX + mWifiInfo.getSsid(), false); } } @Override public String getSavedWifiPassword() { return PreferencesHelper.getInstance(mView.get().getContextInfo()).getString(WIFI_SAVE_PREFIX + mWifiInfo.getSsid()); } @Override public boolean getSavedWifiCheckBoxStatus() { return PreferencesHelper.getInstance(mView.get().getContextInfo()).getBoolean(WIFI_CHECKBOX_SAVE_PREFIX + mWifiInfo.getSsid()); } @Override public void wifiOperate() { new BusinessRunnable(mWifiOperateHandler) { @Override public void doBusiness() throws BusinessException { try { DeviceAddOpenApiManager.controlDeviceWifi(LCDeviceEngine.newInstance().accessToken, mDeviceId, mWifiInfo.getSsid(), mWifiInfo.getBSSID(), true, mView.get().getWifiPassword()); mWifiOperateHandler.obtainMessage(HandleMessageCode.HMC_SUCCESS, true).sendToTarget(); } catch (BusinessException e) { throw e; } } }; mView.get().showToastInfo(R.string.device_manager_wifi_connetting_tip); Handler mHandler = new Handler(); mHandler.postDelayed(new Runnable() { @Override public void run() { mView.get().onWifiOperateSucceed(null); } }, 3000); } @Override public String getWifiSSID() { if (mWifiInfo == null) return ""; return mWifiInfo.getSsid(); } @Override public void unInit() { } }