package com.mm.android.deviceaddmodule.p_softap;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.IntentFilter;
|
import android.graphics.Paint;
|
import android.net.wifi.WifiManager;
|
import android.os.Bundle;
|
import android.support.annotation.Nullable;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
|
import com.mm.android.deviceaddmodule.R;
|
import com.mm.android.deviceaddmodule.base.BaseDevAddFragment;
|
import com.mm.android.deviceaddmodule.contract.TipSoftApConnectWifiConstract;
|
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.common.LCConfiguration;
|
import com.mm.android.deviceaddmodule.mobilecommon.entity.deviceadd.DeviceAddInfo;
|
import com.mm.android.deviceaddmodule.mobilecommon.eventbus.event.CloseTimeFilterEvent;
|
import com.mm.android.deviceaddmodule.mobilecommon.eventbus.event.NoticeToBackEvent;
|
import com.mm.android.deviceaddmodule.mobilecommon.utils.LogUtil;
|
import com.mm.android.deviceaddmodule.model.DeviceAddModel;
|
import com.mm.android.deviceaddmodule.presenter.TipSoftApConnectWifiPresenter;
|
import com.mm.android.deviceaddmodule.services.TimeFilterService;
|
|
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.ThreadMode;
|
|
/**
|
* 软AP添加引导提示页-自动连接wifi
|
*/
|
public class TipSoftApConnectWifiFragment extends BaseDevAddFragment implements TipSoftApConnectWifiConstract.View {
|
TipSoftApConnectWifiConstract.Presenter mPresenter;
|
TextView mShowTipTv, mWifiNameTv, mWifiPwdTv,mShowTip1Tv;
|
TextView mGotoWifiSetting, mAboutWifiPwdTv;
|
LinearLayout mWifiPwdLayout;
|
ImageView mCopyIv;
|
private boolean mIsBack; //是否需要返回到上一页(主要是应用在长时间未连接热点,点击通知栏需要返回到上一页)
|
|
public static TipSoftApConnectWifiFragment newInstance() {
|
TipSoftApConnectWifiFragment fragment = new TipSoftApConnectWifiFragment();
|
Bundle args = new Bundle();
|
fragment.setArguments(args);
|
return fragment;
|
}
|
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
public void onMessageEvent(NoticeToBackEvent event) {
|
mIsBack = true;
|
}
|
|
@Override
|
public void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
}
|
|
@Override
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
Bundle savedInstanceState) {
|
// Inflate the layout for this fragment
|
return inflater.inflate(R.layout.fragment_tip_soft_ap_connect_wifi, container, false);
|
}
|
|
@Override
|
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
super.onViewCreated(view, savedInstanceState);
|
}
|
|
@Override
|
protected void initView(View view) {
|
mShowTipTv = view.findViewById(R.id.tv_image_show_tip);
|
mShowTipTv.setText(R.string.add_device_wait_to_connect_wifi);
|
mShowTip1Tv = view.findViewById(R.id.tv_show_tip);
|
mWifiNameTv = view.findViewById(R.id.tv_wifi_name);
|
|
mWifiPwdLayout = view.findViewById(R.id.layout_wifi_pwd);
|
mWifiPwdTv = view.findViewById(R.id.tv_wifi_pwd);
|
mWifiPwdTv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//下划线
|
mWifiPwdTv.getPaint().setAntiAlias(true);//抗锯齿
|
mWifiPwdTv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
mPresenter.copyWifiPwd();
|
}
|
});
|
|
mCopyIv = view.findViewById(R.id.iv_copy);
|
mCopyIv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
mPresenter.copyWifiPwd();
|
}
|
});
|
|
mGotoWifiSetting = (TextView)view.findViewById(R.id.tv_goto_connect);
|
mGotoWifiSetting.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
//取消之前的定时任务
|
EventBus.getDefault().post(new CloseTimeFilterEvent());
|
Intent intent = new Intent(getActivity(), TimeFilterService.class);
|
intent.putExtra(LCConfiguration.SSID, mPresenter.getHotSSID());
|
getActivity().startService(intent);
|
// CommonHelper.gotoWifiSetting(getActivity());
|
Intent wifiIntent = new Intent();
|
wifiIntent.setFlags(intent.FLAG_ACTIVITY_NO_HISTORY|intent.FLAG_ACTIVITY_NEW_TASK);
|
wifiIntent.setAction("android.net.wifi.PICK_WIFI_NETWORK");
|
startActivity(wifiIntent);
|
}
|
});
|
mAboutWifiPwdTv = (TextView)view.findViewById(R.id.tv_about_wifi_pwd);
|
mAboutWifiPwdTv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
PageNavigationHelper.gotoErrorTipPage(TipSoftApConnectWifiFragment.this, DeviceAddHelper.ErrorCode.COMMON_ERROR_ABOUT_WIFI_PWD);
|
}
|
});
|
}
|
|
protected void initData(){
|
mPresenter = new TipSoftApConnectWifiPresenter(this);
|
mPresenter.connectWifiAction(true);
|
|
DeviceAddInfo deviceAddInfo = DeviceAddModel.newInstance().getDeviceInfoCache();
|
if (deviceAddInfo.getConfigMode().contains(DeviceAddInfo.ConfigMode.LAN.name())) {
|
DeviceAddHelper.updateTile(DeviceAddHelper.TitleMode.MORE2);
|
} else {
|
DeviceAddHelper.updateTile(DeviceAddHelper.TitleMode.MORE);
|
}
|
}
|
|
@Override
|
public void updateWifiName(String wifiName) {
|
mWifiNameTv.setText(wifiName);
|
}
|
|
@Override
|
public void updateConnectFailedTipText(String wifiName, String wifiPwd, boolean isSupportAddBySc, boolean isManualInput) {
|
mGotoWifiSetting.setVisibility(View.VISIBLE);
|
mAboutWifiPwdTv.setVisibility(isSupportAddBySc ? View.VISIBLE : View.GONE);
|
mShowTipTv.setText(getString(R.string.add_device_connect_wifi_failed));
|
mShowTipTv.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,R.drawable.adddevice_icon_help,0);
|
mShowTipTv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
PageNavigationHelper.gotoErrorTipPage(TipSoftApConnectWifiFragment.this, DeviceAddHelper.ErrorCode.COMMON_ERROR_CONNECT_FAIL);
|
}
|
});
|
mShowTip1Tv.setText(getString(isSupportAddBySc ? R.string.add_device_wait_to_connect_wifi_failed_sc : R.string.add_device_wait_to_connect_wifi_failed, wifiName));
|
mWifiPwdLayout.setVisibility(isSupportAddBySc ? View.VISIBLE : View.GONE);
|
mWifiPwdTv.setText(wifiPwd);
|
mWifiPwdTv.setClickable(!isManualInput);
|
mCopyIv.setVisibility(isManualInput ? View.GONE : View.VISIBLE);
|
}
|
|
@Override
|
protected IntentFilter createBroadCast() {
|
IntentFilter filter = new IntentFilter();
|
filter.addAction(LCConfiguration.CONNECTIVITY_CHAGET_ACTION);
|
filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
|
filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
|
return filter;
|
}
|
|
@Override
|
protected void onReceive(Context context, Intent intent) {
|
if (isDestoryView())
|
return;
|
if (LCConfiguration.CONNECTIVITY_CHAGET_ACTION.equals(intent.getAction())
|
|| WifiManager.WIFI_STATE_CHANGED_ACTION.equals(intent.getAction())
|
|| WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(intent.getAction())) {
|
LogUtil.debugLog("bz", "onReceive");
|
final int netWorkState = Utils4AddDevice.getNetWorkState(getContextInfo());
|
LogUtil.debugLog("bz", "netWorkState : " + netWorkState);
|
mPresenter.dispatchHotConnected();
|
}
|
}
|
|
@Override
|
public void goSecurityCheckPage() {
|
PageNavigationHelper.gotoSecurityCheckPage(this);
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
if (mIsBack) {
|
if (getActivity() == null)
|
return;
|
getActivity().getSupportFragmentManager().popBackStack();
|
mIsBack = false;
|
}
|
}
|
|
@Override
|
public void onDestroyView() {
|
super.onDestroyView();
|
|
cancelProgressDialog();
|
//取消定时任务
|
EventBus.getDefault().post(new CloseTimeFilterEvent());
|
}
|
}
|