package com.mm.android.deviceaddmodule.p_typechoose; import android.graphics.Typeface; import android.os.Bundle; import android.support.annotation.Nullable; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; import android.text.style.ForegroundColorSpan; import android.text.style.StyleSpan; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; 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.TypeChooseConstract; import com.mm.android.deviceaddmodule.event.DeviceAddEvent; import com.mm.android.deviceaddmodule.mobilecommon.dialog.LCAlertDialog; import com.mm.android.deviceaddmodule.mobilecommon.entity.deviceadd.DeviceAddInfo; import com.mm.android.deviceaddmodule.mobilecommon.utils.UIUtils; import com.mm.android.deviceaddmodule.mobilecommon.widget.ClearEditText; import com.mm.android.deviceaddmodule.model.DeviceAddModel; import com.mm.android.deviceaddmodule.presenter.TypeChoosePresenter; import com.mm.android.deviceaddmodule.views.ChooseNetDialog; import org.greenrobot.eventbus.EventBus; /** * 设备类型选择页 */ public class TypeChooseFragment extends BaseDevAddFragment implements TypeChooseConstract.View, View.OnClickListener { TypeChooseConstract.Presenter mPresenter; View mView; private ClearEditText mTvNameInput; private TextView mTvTip; private TextView mTvSure; private boolean isSelfInput = true; private ImageView ivSelfInput; private ImageView ivChooseOther; public static TypeChooseFragment newInstance() { TypeChooseFragment fragment = new TypeChooseFragment(); Bundle args = new Bundle(); fragment.setArguments(args); return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { isDestoryView = false; if (mView != null) { ViewGroup parent = (ViewGroup) mView.getParent(); if (parent != null) { parent.removeView(mView); } } else { mView = inflater.inflate(R.layout.fragment_type_input, container, false); initView(mView); initData(); } if (mPresenter != null) { mPresenter.resetDevPwdCache(); } return mView; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { } protected void initView(View view) { mTvNameInput = view.findViewById(R.id.tv_name_input); view.findViewById(R.id.ll_choose_other).setOnClickListener(this); view.findViewById(R.id.ll_self_input).setOnClickListener(this); mTvTip = view.findViewById(R.id.tv_tip); ivSelfInput = view.findViewById(R.id.iv_self_input); ivChooseOther = view.findViewById(R.id.iv_choose_other); mTvSure = view.findViewById(R.id.tv_sure); mTvSure.setOnClickListener(this); String str1 = getResources().getString(R.string.add_device_choose_type_tip1); String str2 = getResources().getString(R.string.add_device_choose_type_tip2); String str3 = getResources().getString(R.string.add_device_choose_type_tip3); String str4 = getResources().getString(R.string.add_device_choose_type_tip4); String str5 = getResources().getString(R.string.add_device_choose_type_tip5); String str6 = getResources().getString(R.string.add_device_choose_type_tip6); SpannableString info = new SpannableString(str1 + str2 + str3 + str4 + str5 + str6); if (!TextUtils.isEmpty(str1)) { info.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.cf4)), 0, str1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); info.setSpan(new StyleSpan(Typeface.BOLD), 0, str1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (!TextUtils.isEmpty(str2)) { info.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.c40)), str1.length(), str1.length() + str2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); info.setSpan(new StyleSpan(Typeface.BOLD), str1.length(), str1.length() + str2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (!TextUtils.isEmpty(str3)) { info.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.c40)), str1.length() + str2.length(), str1.length() + str2.length() + str3.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (!TextUtils.isEmpty(str4)) { info.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.c40)), str1.length() + str2.length() + str3.length(), str1.length() + str2.length() + str3.length() + str4.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); info.setSpan(new StyleSpan(android.graphics.Typeface.BOLD),str1.length() + str2.length() + str3.length(), str1.length() + str2.length() + str3.length() + str4.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (!TextUtils.isEmpty(str5)) { info.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.c40)), str1.length() + str2.length() + str3.length() + str4.length(), str1.length() + str2.length() + str3.length() + str4.length() + str5.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (!TextUtils.isEmpty(str6)) { info.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.c40)), str1.length() + str2.length() + str3.length() + str4.length() + str5.length(), str1.length() + str2.length() + str3.length() + str4.length() + str5.length() + str6.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); info.setSpan(new StyleSpan(android.graphics.Typeface.BOLD),str1.length() + str2.length() + str3.length() + str4.length() + str5.length(), str1.length() + str2.length() + str3.length() + str4.length() + str5.length() + str6.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } mTvTip.setText(info); } protected void initData() { mPresenter = new TypeChoosePresenter(this); } @Override public void onDestroy() { super.onDestroy(); mPresenter.resetDevPwdCache(); } @Override public void onClick(View v) { int id = v.getId(); if (id == R.id.ll_choose_other) { isSelfInput = false; ivSelfInput.setImageResource(R.drawable.adddevice_box_checkbox); ivChooseOther.setImageResource(R.drawable.adddevice_box_checkbox_checked); } else if (id == R.id.ll_self_input) { isSelfInput = true; ivChooseOther.setImageResource(R.drawable.adddevice_box_checkbox); ivSelfInput.setImageResource(R.drawable.adddevice_box_checkbox_checked); } else if (id == R.id.tv_sure) { if (UIUtils.isFastDoubleClick()) { return; } if (isSelfInput) { //手动输入 String name = mTvNameInput.getText().toString().trim(); if (TextUtils.isEmpty(name)) { toast(R.string.device_tip_content); return; } mPresenter.getDeviceInfoSync(name); } else { //其他选择 ChooseNetDialog chooseNetDialog = new ChooseNetDialog(getContext()); chooseNetDialog.setOnChooseNetLisenter(new ChooseNetDialog.OnChooseNetLisenter() { @Override public void softap() { EventBus.getDefault().post(new DeviceAddEvent(DeviceAddEvent.CHANGE_TO_SOFTAP_ACTION)); DeviceAddModel.newInstance().getDeviceInfoCache().setCurDeviceAddType(DeviceAddInfo.DeviceAddType.SOFTAP); } @Override public void wlan() { EventBus.getDefault().post(new DeviceAddEvent(DeviceAddEvent.CHANGE_TO_WIRELESS_ACTION)); DeviceAddModel.newInstance().getDeviceInfoCache().setCurDeviceAddType(DeviceAddInfo.DeviceAddType.WLAN); } @Override public void lan() { EventBus.getDefault().post(new DeviceAddEvent(DeviceAddEvent.CHANGE_TO_WIRED_ACTION)); DeviceAddModel.newInstance().getDeviceInfoCache().setCurDeviceAddType(DeviceAddInfo.DeviceAddType.LAN); } }); chooseNetDialog.show(); } } } LCAlertDialog mLCAlertDialog; private final String searchError = "searchError"; @Override public void showSearchError() { LCAlertDialog.Builder builder = new LCAlertDialog.Builder(getContext()); builder.setTitle(""); builder.setMessage(R.string.add_device_choose_type_error); builder.setCancelButton(R.string.common_cancel, null); builder.setConfirmButton(R.string.common_confirm, new LCAlertDialog.OnClickListener() { @Override public void onClick(LCAlertDialog dialog, int which, boolean isChecked) { dismissLCAlertDialog(); } }); mLCAlertDialog = builder.create(); mLCAlertDialog.show(getActivity().getSupportFragmentManager(), searchError); } private void dismissLCAlertDialog() { if (mLCAlertDialog != null && mLCAlertDialog.isVisible()) { mLCAlertDialog.dismissAllowingStateLoss(); mLCAlertDialog = null; } } }