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); } }