package com.mm.android.deviceaddmodule.presenter; import android.os.Build; import android.text.TextUtils; import com.dahua.mobile.utility.network.DHNetworkUtil; import com.dahua.mobile.utility.network.DHWifiUtil; import com.mm.android.deviceaddmodule.R; import com.mm.android.deviceaddmodule.contract.BaseSoftApTipConstract; import com.mm.android.deviceaddmodule.helper.DeviceAddHelper; import com.mm.android.deviceaddmodule.mobilecommon.common.LCConfiguration; import com.mm.android.deviceaddmodule.mobilecommon.entity.deviceadd.DeviceIntroductionInfo; import com.mm.android.deviceaddmodule.model.DeviceAddModel; import java.lang.ref.WeakReference; public class BaseSoftApTipPresenter implements BaseSoftApTipConstract.Presenter { private int TIME_OUT_TIME = 10 * 1000; //连接设备热点超时时间 private static final int CONNECT_FAILED = 0; //连接热点失败 DHWifiUtil mDHWifiUtil; String mDeviceSn; boolean mConnectResult; WeakReference mView; DeviceIntroductionInfo mTips; String mResetTxt; //reset引导信息 int mCurStep = 0; //当前引导页索引,从0开始 int mMaxStep = 1; //总引导页数 public BaseSoftApTipPresenter(BaseSoftApTipConstract.View view, int curStep) { mView = new WeakReference<>(view); mDHWifiUtil = new DHWifiUtil(mView.get().getContextInfo().getApplicationContext()); mTips = DeviceAddModel.newInstance().getDeviceInfoCache().getDevIntroductionInfo(); mDeviceSn = DeviceAddModel.newInstance().getDeviceInfoCache().getDeviceSn(); mCurStep = curStep; initPageTip(); } private void initPageTip() { if(mTips!=null) { mResetTxt = mTips.getStrInfos().get(DeviceAddHelper.OMSKey.SOFT_AP_MODE_RESET_GUIDE_INTRODUCTION); String oneTips = mTips.getStrInfos().get(DeviceAddHelper.OMSKey.SOFT_AP_MODE_GUIDING_STEP_ONE_INTRODUCTION); String oneTipsImg = mTips.getImageInfos().get(DeviceAddHelper.OMSKey.SOFT_AP_MODE_GUIDING_STEP_ONE_IMAGE); String twoTips = mTips.getStrInfos().get(DeviceAddHelper.OMSKey.SOFT_AP_MODE_GUIDING_STEP_TWO_INTRODUCTION); String twoTipsImg = mTips.getImageInfos().get(DeviceAddHelper.OMSKey.SOFT_AP_MODE_GUIDING_STEP_TWO_IMAGE); String threeTips = mTips.getStrInfos().get(DeviceAddHelper.OMSKey.SOFT_AP_MODE_GUIDING_STEP_THREE_INTRODUCTION); String threeTipsImg = mTips.getImageInfos().get(DeviceAddHelper.OMSKey.SOFT_AP_MODE_GUIDING_STEP_THREE_IMAGE); String fourTips = mTips.getStrInfos().get(DeviceAddHelper.OMSKey.SOFT_AP_MODE_GUIDING_STEP_FOUR_INTRODUCTION); String fourTipsImg = mTips.getImageInfos().get(DeviceAddHelper.OMSKey.SOFT_AP_MODE_GUIDING_STEP_FOUR_IMAGE); if (!TextUtils.isEmpty(oneTips)) { mMaxStep = 1; } if (!TextUtils.isEmpty(twoTips)) { mMaxStep = 2; } if (!TextUtils.isEmpty(threeTips)) { mMaxStep = 3; } if (!TextUtils.isEmpty(fourTips)) { mMaxStep = 4; } if(mCurStep==mMaxStep-1){ mView.get().updateResetTxt(mResetTxt); } if(mCurStep==0){ mView.get().updateTipImage(!TextUtils.isEmpty(oneTipsImg) ? oneTipsImg : "drawable://" + R.drawable.adddevice_supportsoftap); mView.get().updateTipTxt(oneTips); }else if(mCurStep==1){ mView.get().updateTipImage(twoTipsImg); mView.get().updateTipTxt(twoTips); }else if(mCurStep==2){ mView.get().updateTipImage(threeTipsImg); mView.get().updateTipTxt(threeTips); }else if(mCurStep==3){ mView.get().updateTipImage(fourTipsImg); mView.get().updateTipTxt(fourTips); } } } @Override public boolean isWifiConnect(){ return DHNetworkUtil.NetworkType.NETWORK_WIFI.equals(DHNetworkUtil.getNetworkType(mView.get().getContextInfo())); } @Override public boolean isLastTipPage() { return mCurStep==mMaxStep-1; } @Override public void verifyWifiOrLocationPermission(){ if(!isWifiConnect()){ //预先打开wifi mDHWifiUtil.openWifi(); } if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ mView.get().applyLocationPermission(); }else{ mView.get().gotoSoftApTipConnectWifiPage(); } } @Override public void dealWithUnknownSsid() { String curWifiName = mDHWifiUtil.getCurrentWifiInfo().getSSID().replaceAll("\"", ""); if(LCConfiguration.UNKNOWN_SSID.equals(curWifiName)){ mView.get().applyLocationPermission(); }else { mView.get().gotoSoftApTipConnectWifiPage(); } } }