package com.mm.android.deviceaddmodule.p_softap;
|
|
import android.content.Context;
|
import android.os.Bundle;
|
import android.support.annotation.NonNull;
|
import android.support.annotation.Nullable;
|
import android.text.Editable;
|
import android.text.TextWatcher;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.view.inputmethod.InputMethodManager;
|
import android.widget.TextView;
|
|
import com.mm.android.deviceaddmodule.R;
|
import com.mm.android.deviceaddmodule.base.BaseDevAddFragment;
|
import com.mm.android.deviceaddmodule.contract.HiddenWifiPwdConstract;
|
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.ClearEditText;
|
import com.mm.android.deviceaddmodule.mobilecommon.widget.ClearPasswordEditText;
|
import com.mm.android.deviceaddmodule.model.DeviceAddModel;
|
import com.mm.android.deviceaddmodule.presenter.HiddenWifiPresenter;
|
|
import org.greenrobot.eventbus.EventBus;
|
|
/**
|
* 输入隐藏wifi密码页
|
*/
|
public class HiddenWifiPwdFragment extends BaseDevAddFragment implements HiddenWifiPwdConstract.View, View.OnClickListener {
|
|
private static String WLAN_PARAM = "wlan_param";
|
private static final String IS_NOT_NEED_LOGIN = "isNotNeedLogin";
|
HiddenWifiPwdConstract.Presenter mPresenter;
|
private TextView mNextTv;
|
private ClearEditText mWifiSsidTv;
|
private ClearPasswordEditText mWifiPwdEt;
|
private TextView m5GWifiTipTv;
|
|
public static HiddenWifiPwdFragment newInstance(boolean isNotNeedLogin) {
|
HiddenWifiPwdFragment fragment = new HiddenWifiPwdFragment();
|
Bundle args = new Bundle();
|
args.putBoolean(IS_NOT_NEED_LOGIN, isNotNeedLogin);
|
fragment.setArguments(args);
|
return fragment;
|
}
|
|
private final TextWatcher mSsidTextWatcher = new TextWatcher() {
|
|
@Override
|
public void onTextChanged(CharSequence s, int arg1, int arg2, int arg3) {
|
if (!mWifiSsidTv.getText().toString().equalsIgnoreCase("")) {
|
setConnectButtonState(true);
|
}else {
|
setConnectButtonState(false);
|
}
|
}
|
|
@Override
|
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
|
}
|
|
@Override
|
public void afterTextChanged(Editable arg0) {
|
}
|
};
|
|
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);
|
|
}
|
|
@Override
|
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
|
}
|
|
@Override
|
public void afterTextChanged(Editable arg0) {
|
}
|
};
|
|
|
@Override
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
Bundle savedInstanceState) {
|
// Inflate the layout for this fragment
|
return inflater.inflate(R.layout.fragment_hidden_wifi, container, false);
|
}
|
|
@Override
|
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
super.onViewCreated(view, savedInstanceState);
|
}
|
|
protected void initView(View view) {
|
|
mNextTv = view.findViewById(R.id.next);
|
mWifiSsidTv = view.findViewById(R.id.wifi_name);
|
mWifiPwdEt = view.findViewById(R.id.wifi_psw);
|
mWifiPwdEt.openEyeMode(ProviderManager.getAppProvider().getAppType() != LCConfiguration.APP_LECHANGE_OVERSEA);
|
mWifiSsidTv.addTextChangedListener(mSsidTextWatcher);
|
mWifiPwdEt.addTextChangedListener(mTextWatcher);
|
mNextTv.setOnClickListener(this);
|
|
m5GWifiTipTv = view.findViewById(R.id.tv_5g_tip);
|
m5GWifiTipTv.setOnClickListener(this);
|
|
}
|
|
protected void initData() {
|
mPresenter = new HiddenWifiPresenter(this);
|
if (getArguments() != null) {
|
|
boolean isNotNeedLogin = getArguments().getBoolean(IS_NOT_NEED_LOGIN, false);
|
mPresenter.setIsNotNeedLogin(isNotNeedLogin);
|
}
|
setConnectButtonState(false);
|
|
DeviceAddInfo deviceAddInfo = DeviceAddModel.newInstance().getDeviceInfoCache();
|
if (deviceAddInfo.getConfigMode().contains(DeviceAddInfo.ConfigMode.LAN.name())) {
|
DeviceAddHelper.updateTile(DeviceAddHelper.TitleMode.MORE2);
|
} else {
|
DeviceAddHelper.updateTile(DeviceAddHelper.TitleMode.MORE);
|
}
|
|
if (mPresenter.isDevSupport5G()) {
|
m5GWifiTipTv.setVisibility(View.GONE);
|
} else {
|
m5GWifiTipTv.setVisibility(View.VISIBLE);
|
}
|
}
|
|
private void setSSIDTextView() {
|
if (null != getActivity() && !Utils4AddDevice.isWifi(getActivity())) {
|
mWifiSsidTv.setText("");
|
return;
|
}
|
mWifiSsidTv.setText(mPresenter.getCurWifiName());
|
}
|
|
private void setConnectButtonState(boolean enable) {
|
UIHelper.setEnabledEX(enable, 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) {
|
|
mPresenter.connectWifi();
|
} 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();
|
}
|
|
public String getWifiSSID() {
|
return mWifiSsidTv.getText().toString();
|
}
|
|
|
@Override
|
public void goCloudConnectPage() {
|
PageNavigationHelper.gotoCloudConnectPage(this);
|
}
|
|
}
|