wxr
2022-11-24 2af932533ef851bf983385244e9912976dbd4daa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package com.mm.android.deviceaddmodule.p_softap;
 
import android.Manifest;
import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
 
import com.mm.android.deviceaddmodule.R;
import com.mm.android.deviceaddmodule.base.BaseTipFragment;
import com.mm.android.deviceaddmodule.contract.BaseSoftApTipConstract;
import com.mm.android.deviceaddmodule.helper.DeviceAddHelper;
import com.mm.android.deviceaddmodule.helper.DeviceAddImageLoaderHelper;
import com.mm.android.deviceaddmodule.helper.PageNavigationHelper;
import com.mm.android.deviceaddmodule.mobilecommon.base.DefaultPermissionListener;
import com.mm.android.deviceaddmodule.mobilecommon.common.PermissionHelper;
import com.mm.android.deviceaddmodule.mobilecommon.dialog.LCAlertDialog;
import com.mm.android.deviceaddmodule.mobilecommon.entity.deviceadd.DeviceAddInfo;
import com.mm.android.deviceaddmodule.mobilecommon.location.FuseLocationUtil;
import com.mm.android.deviceaddmodule.mobilecommon.utils.UIUtils;
import com.mm.android.deviceaddmodule.model.DeviceAddModel;
import com.nostra13.universalimageloader.core.ImageLoader;
/**
 * 软AP添加引导提示页基类
 */
public abstract class BaseTipSoftApFragment extends BaseTipFragment implements BaseSoftApTipConstract.View {
    BaseSoftApTipConstract.Presenter mPresenter;
 
    protected abstract void gotoNextSoftApTipPage();
 
    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        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
    protected void nextAction() {
        if(mPresenter.isLastTipPage()){
            mPresenter.verifyWifiOrLocationPermission();
        } else {
            gotoNextSoftApTipPage();
        }
    }
 
    @Override
    protected void helpAction() {
        PageNavigationHelper.gotoErrorTipPage(this, DeviceAddHelper.ErrorCode.COMMON_ERROR_NOT_SUPPORT_RESET);
    }
 
    @Override
    protected void init() {
        initView(mView);
        initData();
    }
 
    protected void initView(View view) {
        super.initView(view);
        RelativeLayout.LayoutParams params= (RelativeLayout.LayoutParams) mTipImg.getLayoutParams();
        params.height= /*RelativeLayout.LayoutParams.WRAP_CONTENT*/UIUtils.dp2px(getContextInfo(), 300);
        params.width=RelativeLayout.LayoutParams.MATCH_PARENT;
        params.setMargins(0,0,0,0);
        mTipImg.setScaleType(ImageView.ScaleType.FIT_CENTER);
    }
 
    @Override
    public void updateTipImage(String imageUrl) {
        if (!TextUtils.isEmpty(imageUrl))
            ImageLoader.getInstance().displayImage(imageUrl, mTipImg, DeviceAddImageLoaderHelper.getCommonOptions());
    }
 
    @Override
    public void updateTipTxt(String tipInfo) {
        if (!TextUtils.isEmpty(tipInfo)) {
            mTipTxt.setText(tipInfo);
        } else {
            mTipTxt.setText(R.string.add_device_operation_by_instructions);
        }
    }
 
    @Override
    public void updateResetTxt(String resetTxt) {
        if (TextUtils.isEmpty(resetTxt)) {
            mHelpTxt.setVisibility(View.GONE);
        } else {
            mHelpTxt.setVisibility(View.VISIBLE);
            mHelpTxt.setText(resetTxt);
        }
    }
 
 
    @Override
    public void goErrorTipPage() {
        PageNavigationHelper.gotoErrorTipPage(this, DeviceAddHelper.ErrorCode.SOFTAP_ERROR_CONNECT_HOT_FAILED);
    }
 
    @Override
    public void gotoSoftApTipConnectWifiPage() {
        PageNavigationHelper.gotoSoftApTipConnectWifiPage(this);
    }
 
    @Override
    public void applyLocationPermission() {
        if (getActivity() == null) return;
        //1.判断是否该应用有地理位置权限  2.判断是否开启定位服务
        PermissionHelper permissionHelper = new PermissionHelper(this);
        if (permissionHelper.hasPermission(Manifest.permission.ACCESS_FINE_LOCATION)) {
            verifyLocationService();
        } else {
            permissionHelper.requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, new DefaultPermissionListener() {
                @Override
                public void onGranted() {
                    verifyLocationService();
                }
 
                @Override
                public boolean onDenied() {
                    return false;
                }
            });
        }
    }
 
 
    private void verifyLocationService() {
        if (FuseLocationUtil.isGpsEnabled(getActivity())) {
            gotoSoftApTipConnectWifiPage();
        } else {
            showOpenLocationServiceDialog();
        }
 
    }
 
    private void showOpenLocationServiceDialog() {
        LCAlertDialog dialog = new LCAlertDialog.Builder(getActivity())
                .setTitle(R.string.add_device_goto_open_location_service)
                .setCancelButton(R.string.common_cancel, null)
                .setConfirmButton(R.string.common_confirm, new LCAlertDialog.OnClickListener() {
                    @Override
                    public void onClick(LCAlertDialog dialog, int which, boolean isChecked) {
                        Intent intent = new Intent();
                        intent.setAction(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                        startActivity(intent);
                        dialog.dismiss();
                    }
                }).create();
        dialog.show(getFragmentManager(), null);
    }
}