package com.mm.android.deviceaddmodule.p_bindsuccess; import android.graphics.Color; import android.os.Bundle; import android.support.annotation.Nullable; import android.text.Editable; import android.text.InputFilter; import android.text.SpannableString; import android.text.Spanned; import android.text.TextPaint; import android.text.TextUtils; import android.text.TextWatcher; import android.text.method.LinkMovementMethod; import android.text.style.ClickableSpan; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.ScrollView; import android.widget.TextView; import com.mm.android.deviceaddmodule.R; import com.mm.android.deviceaddmodule.base.BaseDevAddFragment; import com.mm.android.deviceaddmodule.contract.BindSuccessConstract; import com.mm.android.deviceaddmodule.event.DeviceAddEvent; import com.mm.android.deviceaddmodule.helper.DeviceAddHelper; import com.mm.android.deviceaddmodule.helper.DeviceAddImageLoaderHelper; import com.mm.android.deviceaddmodule.mobilecommon.AppConsume.ProviderManager; import com.mm.android.deviceaddmodule.mobilecommon.eventbus.event.CommonEvent; import com.mm.android.deviceaddmodule.mobilecommon.utils.NameLengthFilter; import com.mm.android.deviceaddmodule.mobilecommon.utils.WordInputFilter; import com.mm.android.deviceaddmodule.mobilecommon.widget.ClearEditText; import com.mm.android.deviceaddmodule.presenter.BindSuccessPresenter; import com.nostra13.universalimageloader.core.ImageLoader; import org.greenrobot.eventbus.EventBus; /** * 绑定成功页 **/ public class BindSuccessFragment extends BaseDevAddFragment implements BindSuccessConstract.View, View.OnClickListener { private final int MAXLETHER = 40; BindSuccessConstract.Presenter mPresenter; ImageView mDevImg; TextView mOK, mModifyDevicePwdTv; RelativeLayout mBindSuccessRl; ClearEditText mDevNameEdit; ScrollView mBindSuccessSv; public static BindSuccessFragment newInstance() { BindSuccessFragment fragment = new BindSuccessFragment(); Bundle args = new Bundle(); fragment.setArguments(args); return fragment; } private final TextWatcher mTextWatcher = new TextWatcher() { @Override public void onTextChanged(CharSequence s, int arg1, int arg2, int arg3) { String devName = s.toString().trim(); if (!TextUtils.isEmpty(devName)) { mOK.setEnabled(true); mDevNameEdit.removeTextChangedListener(mTextWatcher); String filterDevName = DeviceAddHelper.strDeviceNameFilter(devName); if (!filterDevName.equals(devName)) { mDevNameEdit.setText(filterDevName); mDevNameEdit.setSelection(filterDevName.length()); } mDevNameEdit.addTextChangedListener(mTextWatcher); } else { mOK.setEnabled(false); } } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { } @Override public void afterTextChanged(Editable arg0) { } }; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_bind_success, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); DeviceAddHelper.updateTile(DeviceAddHelper.TitleMode.SHARE); } protected void initView(View view) { mBindSuccessRl = view.findViewById(R.id.bind_success_rl); mDevImg = view.findViewById(R.id.dev_img); mOK = view.findViewById(R.id.tv_next); mBindSuccessSv = view.findViewById(R.id.bind_success_sv); mDevNameEdit = view.findViewById(R.id.device_name_input); mModifyDevicePwdTv = view.findViewById(R.id.tv_modify_device_pwd); setModifyDevicePwdTvClick(getString(R.string.mobile_common_modify_device_pwd_tip), getString(R.string.mobile_common_tap_to_view), getString(R.string.mobile_common_how_modify_device_pwd)); mOK.setOnClickListener(this); mDevNameEdit.setFilters(new InputFilter[]{new WordInputFilter(WordInputFilter.REX_NAME), new NameLengthFilter(MAXLETHER)}); mDevNameEdit.addTextChangedListener(mTextWatcher); } protected void initData() { mPresenter = new BindSuccessPresenter(this); mPresenter.getDevName(); } @Override public boolean onBackPressed() { return super.onBackPressed(); } @Override public void updateDevImg(String img) { ImageLoader.getInstance().displayImage(img, mDevImg, DeviceAddImageLoaderHelper.getCommonOptions4success()); } @Override public String getDevName() { return mDevNameEdit.getText().toString().trim(); } @Override public void setDevName(String name) { if (TextUtils.isEmpty(name)) return; mDevNameEdit.setText(name); if (!TextUtils.isEmpty(mDevNameEdit.getText().toString())) mDevNameEdit.setSelection(mDevNameEdit.getText().toString().length()); } @Override public void completeAction() { //添加结束哪来回哪,把DeviceAddActivity结束掉 EventBus.getDefault().post(new DeviceAddEvent(DeviceAddEvent.DESTROY_ACTION)); //通知主页、我的设备列表自动刷新 EventBus.getDefault().post(new CommonEvent(CommonEvent.DEVICE_ADD_SUCCESS_ACTION)); } @Override public void deviceName(String name) { setDevName(name); } public void setModifyDevicePwdTvClick(String str1, String str2, String str3) { SpannableString info = new SpannableString(str1 + str2 + " " + str3); if (!TextUtils.isEmpty(str1)) { info.setSpan(null, 0, str1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (!TextUtils.isEmpty(str2)) { info.setSpan(null, str1.length(), str1.length() + str2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (!TextUtils.isEmpty(str3)) { info.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { ProviderManager.getAppProvider().goModifyDevicePwdGuidePage(getActivity()); } @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); ds.setUnderlineText(true); ds.setColor(getResources().getColor(R.color.c0)); } }, str1.length() + str2.length(), str1.length() + str2.length() + str3.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } mModifyDevicePwdTv.setText(info); mModifyDevicePwdTv.setMovementMethod(LinkMovementMethod.getInstance()); mModifyDevicePwdTv.setHighlightColor(Color.TRANSPARENT); } @Override public void onClick(View v) { int id = v.getId(); if (id == R.id.tv_next) { completeAction(); //mPresenter.modifyDevName(); } } }