package com.mm.android.deviceaddmodule.p_softap;
|
|
import android.content.Context;
|
import android.os.Bundle;
|
import android.support.annotation.Nullable;
|
import android.text.Editable;
|
import android.text.TextUtils;
|
import android.text.TextWatcher;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.view.inputmethod.InputMethodManager;
|
import android.widget.ImageView;
|
import android.widget.TextView;
|
|
import com.mm.android.deviceaddmodule.R;
|
import com.mm.android.deviceaddmodule.base.BaseDevAddFragment;
|
import com.mm.android.deviceaddmodule.contract.SoftApWifiPwdConstract;
|
import com.lechange.opensdk.searchwifi.WlanInfo;
|
import com.mm.android.deviceaddmodule.event.DeviceAddEvent;
|
import com.mm.android.deviceaddmodule.helper.DeviceAddHelper;
|
import com.mm.android.deviceaddmodule.helper.PageNavigationHelper;
|
import com.mm.android.deviceaddmodule.helper.Utils4AddDevice;
|
import com.mm.android.deviceaddmodule.mobilecommon.AppConsume.ProviderManager;
|
import com.mm.android.deviceaddmodule.mobilecommon.common.LCConfiguration;
|
import com.mm.android.deviceaddmodule.mobilecommon.entity.deviceadd.DeviceAddInfo;
|
import com.mm.android.deviceaddmodule.mobilecommon.utils.CommonHelper;
|
import com.mm.android.deviceaddmodule.mobilecommon.utils.UIHelper;
|
import com.mm.android.deviceaddmodule.mobilecommon.widget.ClearPasswordEditText;
|
import com.mm.android.deviceaddmodule.model.DeviceAddModel;
|
import com.mm.android.deviceaddmodule.presenter.SoftApWifiPwdPresenter;
|
|
import org.greenrobot.eventbus.EventBus;
|
|
/**
|
* 输入wifi密码页
|
*/
|
public class SoftApWifiPwdFragment extends BaseDevAddFragment implements SoftApWifiPwdConstract.View, View.OnClickListener {
|
private static String WLAN_PARAM = "wlan_param";
|
private static final String IS_NOT_NEED_LOGIN = "isNotNeedLogin";
|
SoftApWifiPwdConstract.Presenter mPresenter;
|
private TextView mNextTv;
|
private TextView mWifiSsidTv;
|
private ClearPasswordEditText mWifiPwdEt;
|
private TextView m5GWifiTipTv;
|
private TextView mSaveWifiPwdChebox;
|
private ImageView mSwitchWifiIv;
|
private ImageView mWifiIv;
|
|
public static SoftApWifiPwdFragment newInstance(WlanInfo wlanInfo, boolean isNotNeedLogin) {
|
SoftApWifiPwdFragment fragment = new SoftApWifiPwdFragment();
|
Bundle args = new Bundle();
|
args.putSerializable(WLAN_PARAM, wlanInfo);
|
args.putBoolean(IS_NOT_NEED_LOGIN, isNotNeedLogin);
|
fragment.setArguments(args);
|
return fragment;
|
}
|
|
private final TextWatcher mTextWatcher = new TextWatcher() {
|
|
@Override
|
public void onTextChanged(CharSequence s, int arg1, int arg2, int arg3) {
|
mWifiPwdEt.removeTextChangedListener(mTextWatcher);
|
String str = Utils4AddDevice.wifiPwdFilter(s.toString());
|
if (!str.equals(s.toString())) {
|
mWifiPwdEt.setText(str);
|
mWifiPwdEt.setSelection(str.length());
|
}
|
mWifiPwdEt.addTextChangedListener(mTextWatcher);
|
setConnectButtonState();
|
}
|
|
@Override
|
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
|
}
|
|
@Override
|
public void afterTextChanged(Editable arg0) {
|
}
|
};
|
|
|
@Override
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
Bundle savedInstanceState) {
|
// Inflate the layout for this fragment
|
return inflater.inflate(R.layout.fragment_wifi_pwd, container, false);
|
}
|
|
@Override
|
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
super.onViewCreated(view, savedInstanceState);
|
}
|
|
protected void initView(View view) {
|
mWifiIv = view.findViewById(R.id.iv_wifi);
|
mSwitchWifiIv = view.findViewById(R.id.switch_wifi);
|
mSwitchWifiIv.setVisibility(View.GONE);
|
mNextTv = view.findViewById(R.id.next);
|
m5GWifiTipTv = view.findViewById(R.id.tv_5g_tip);
|
mWifiSsidTv = view.findViewById(R.id.ssid);
|
mWifiPwdEt = view.findViewById(R.id.wifi_pwd);
|
mWifiPwdEt.openEyeMode(ProviderManager.getAppProvider().getAppType() != LCConfiguration.APP_LECHANGE_OVERSEA);
|
mWifiPwdEt.addTextChangedListener(mTextWatcher);
|
mNextTv.setOnClickListener(this);
|
mSaveWifiPwdChebox = view.findViewById(R.id.wifi_pwd_check);
|
m5GWifiTipTv.setOnClickListener(this);
|
mSaveWifiPwdChebox.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
view.setSelected(!view.isSelected());
|
if (!view.isSelected()) {
|
mPresenter.updateWifiCache();
|
}
|
}
|
});
|
mSwitchWifiIv.setOnClickListener(this);
|
}
|
|
protected void initData() {
|
mPresenter = new SoftApWifiPwdPresenter(this);
|
if (getArguments() != null) {
|
WlanInfo wlanInfo = (WlanInfo) getArguments().getSerializable(WLAN_PARAM);
|
mPresenter.setWlanInfo(wlanInfo);
|
boolean isNotNeedLogin = getArguments().getBoolean(IS_NOT_NEED_LOGIN, false);
|
mPresenter.setIsNotNeedLogin(isNotNeedLogin);
|
}
|
check5GWifiTip();
|
setConnectButtonState();
|
setSSIDTextView();
|
setWifiPwd();
|
|
DeviceAddInfo deviceAddInfo = DeviceAddModel.newInstance().getDeviceInfoCache();
|
if (deviceAddInfo.getConfigMode().contains(DeviceAddInfo.ConfigMode.LAN.name())) {
|
DeviceAddHelper.updateTile(DeviceAddHelper.TitleMode.MORE2);
|
} else {
|
DeviceAddHelper.updateTile(DeviceAddHelper.TitleMode.MORE);
|
}
|
}
|
|
private void setSSIDTextView() {
|
if (null != getActivity() && !Utils4AddDevice.isWifi(getActivity())) {
|
mWifiSsidTv.setText("");
|
return;
|
}
|
mWifiSsidTv.setText(mPresenter.getCurWifiName());
|
}
|
|
private void setWifiPwd() {
|
String wifiPwd = mPresenter.getSavedWifiPwd();
|
boolean wifiCheckBoxStatus = mPresenter.getSavedWifiCheckBoxStatus();
|
|
if (!TextUtils.isEmpty(wifiPwd)) {
|
mWifiPwdEt.setText(wifiPwd);
|
mSaveWifiPwdChebox.setSelected(wifiCheckBoxStatus);
|
}else{
|
mWifiPwdEt.setText("");
|
mSaveWifiPwdChebox.setSelected(wifiCheckBoxStatus);
|
}
|
}
|
|
private void check5GWifiTip() {
|
if (!mPresenter.isDevSupport5G()) {
|
m5GWifiTipTv.setVisibility(View.VISIBLE);
|
mWifiIv.setImageResource(R.drawable.adddevice_icon_wifipassword_nosupport5g_layer);
|
} else {
|
m5GWifiTipTv.setVisibility(View.INVISIBLE);
|
mWifiIv.setImageResource(R.drawable.adddevice_icon_wifipassword);
|
}
|
}
|
|
private void setConnectButtonState() {
|
UIHelper.setEnabledEX(true, mNextTv);
|
}
|
|
@Override
|
public void showProgressDialog() {
|
hideSoftKeyboard();
|
mNextTv.postDelayed(new Runnable() {
|
@Override
|
public void run() {
|
if (!isDestoryView()) {
|
EventBus.getDefault().post(new DeviceAddEvent(DeviceAddEvent.SHOW_LOADING_VIEW_ACTION));
|
}
|
}
|
}, 100);
|
|
}
|
|
@Override
|
public void onDestroyView() {
|
super.onDestroyView();
|
if (null != getActivity() && mWifiPwdEt != null) {
|
InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(
|
Context.INPUT_METHOD_SERVICE);
|
inputMethodManager.hideSoftInputFromWindow(mWifiPwdEt.getWindowToken(), 0);
|
|
}
|
super.onDestroyView();
|
}
|
|
@Override
|
public void onClick(View v) {
|
int id = v.getId();
|
if (R.id.next == id) {
|
if (null != getActivity() && !Utils4AddDevice.isWifi(getActivity())) {
|
toastInCenter(R.string.add_device_con_wifi);
|
return;
|
}
|
mPresenter.connectWifi(mWifiSsidTv.getText().toString().trim(),getWifiPwd());
|
} else if (R.id.tv_5g_tip == id) {
|
PageNavigationHelper.gotoErrorTipPage(this, DeviceAddHelper.ErrorCode.COMMON_ERROR_NOT_SUPPORT_5G);
|
}else if(R.id.switch_wifi == id){
|
CommonHelper.gotoWifiSetting(getActivity());
|
}
|
}
|
|
@Override
|
public String getWifiPwd() {
|
return mWifiPwdEt.getText().toString();
|
}
|
|
@Override
|
public boolean isSavePwdChecked() {
|
return mSaveWifiPwdChebox.isSelected();
|
}
|
|
@Override
|
public void goCloudConnectPage() {
|
PageNavigationHelper.gotoCloudConnectPage(this);
|
}
|
}
|