diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index 552c3c5fbf..ee4654f356 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -481,6 +481,48 @@ public class DialogUtils { return dialog; } + + public static Dialog showAlertDialog(Context context, String title, Spanned message + , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { + + final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); + + View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_alert, null); + TextView contentTv = contentView.findViewById(R.id.dialog_content); + TextView titleTv = contentView.findViewById(R.id.dialog_title); + TextView negativeTv = contentView.findViewById(R.id.dialog_negative); + TextView positiveTv = contentView.findViewById(R.id.dialog_positive); + contentTv.setText(message); + titleTv.setText(title); + negativeTv.setText(negative); + positiveTv.setText(positive); + + negativeTv.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (clListener != null) { + clListener.onCancel(); + } + dialog.dismiss(); + } + }); + + positiveTv.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (cmListener != null) { + cmListener.onConfirm(); + } + dialog.dismiss(); + } + }); + + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.setContentView(contentView); + dialog.show(); + return dialog; + } + /** * 取消按钮灰色 * diff --git a/app/src/main/java/com/gh/common/util/TextHelper.kt b/app/src/main/java/com/gh/common/util/TextHelper.kt index aa4206ff24..6845bd93ee 100644 --- a/app/src/main/java/com/gh/common/util/TextHelper.kt +++ b/app/src/main/java/com/gh/common/util/TextHelper.kt @@ -1,9 +1,12 @@ package com.gh.common.util +import android.content.Context import android.text.Editable +import android.text.InputFilter import android.text.TextWatcher import android.widget.EditText import com.gh.gamecenter.R +import com.lightgame.utils.Utils object TextHelper { @@ -32,6 +35,26 @@ object TextHelper { }) } + @JvmStatic + fun getFilter(Maxlength: Int, msg: String="防抖", context: Context)//限制最大长度-Toast弹窗提示 + : InputFilter { + return InputFilter { source, start, end, dest, dstart, dend -> + val keep = Maxlength - (dest.length - (dend - dstart)) + if (keep < end - start) { + if (!msg.equals("防抖")) { + Utils.toast(context, msg) + } + } + if (keep <= 0) { + "" + } else if (keep >= end - start) { + null + } else { + source.subSequence(start, start + keep) + } + } + } + interface ExceedTextLengthLimitCallback { fun onExceed() } diff --git a/app/src/main/java/com/gh/gamecenter/SearchActivity.java b/app/src/main/java/com/gh/gamecenter/SearchActivity.java index 8bef985151..4ca065de70 100644 --- a/app/src/main/java/com/gh/gamecenter/SearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SearchActivity.java @@ -22,7 +22,6 @@ import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.EntranceUtils; import com.gh.common.util.GdtHelper; import com.gh.common.util.TextHelper; -import com.gh.gamecenter.Util.UtilFactory; import com.gh.gamecenter.db.SearchHistoryDao; import com.gh.gamecenter.eventbus.EBSearch; import com.gh.gamecenter.search.SearchGameDetailFragment; @@ -182,7 +181,7 @@ public class SearchActivity extends BaseActivity { } } }); - searchInput.setFilters(new InputFilter[]{UtilFactory.getFilter(50,this)}); + searchInput.setFilters(new InputFilter[]{TextHelper.getFilter(50,"最多输入50个字",getBaseContext())}); findViewById(R.id.btnGoBack).setOnClickListener(v -> finish()); } diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java index 0821c4ccc1..46fadbc4f3 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java @@ -45,6 +45,7 @@ import com.gh.common.util.ImageUtils; import com.gh.common.util.MtaHelper; import com.gh.common.util.NetworkUtils; import com.gh.common.util.PackageUtils; +import com.gh.common.util.ShareUtils; import com.gh.common.util.UploadImageUtils; import com.gh.gamecenter.entity.ErrorEntity; import com.gh.gamecenter.entity.InstallGameEntity; @@ -702,11 +703,12 @@ public class SuggestionActivity extends BaseActivity implements OnRequestCallBac } if (mHideHint.equals("APP闪退:")) //只有是APP闪退反馈成功后弹出联系客服的弹窗 { - DialogUtils.showWarningDialog(SuggestionActivity.this, "反馈成功", "您也可以联系客服进一步描述闪退的情况,如果您反馈的是新问题,即有机会获得红包奖励", "暂不", "联系客服", + String str = "您也可以联系客服进一步描述闪退的情况,如果您反馈的是新问题,即有机会获得红包奖励"; + DialogUtils.showWarningDialog(SuggestionActivity.this, "反馈成功", Html.fromHtml(str.substring(0, str.indexOf("红包奖励")) + "红包奖励"), "暂不", "联系客服", () -> { - if (checkApkExist(getBaseContext(), "com.tencent.mobileqq")) { + if (ShareUtils.isQQClientAvailable(getBaseContext())) { finish(); - startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("mqqwpa://im/chat?chat_type=wpa&uin=2586716223&version=1"))); + DirectUtils.directToQqConversation(getBaseContext(), "2586716223"); } else { toast("本机未安装QQ应用"); } diff --git a/app/src/main/java/com/gh/gamecenter/Util/UtilFactory.java b/app/src/main/java/com/gh/gamecenter/Util/UtilFactory.java deleted file mode 100644 index a8e2480cfa..0000000000 --- a/app/src/main/java/com/gh/gamecenter/Util/UtilFactory.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gh.gamecenter.Util; - -import android.content.Context; -import android.text.InputFilter; -import android.text.Spanned; -import android.widget.Toast; - -import com.lightgame.utils.Utils; - -/** - * Create by 谢昌宏 - * 2019/5/6 - */ -public class UtilFactory { - - //返回InputFilter限制文本框输入最大长度 - public static InputFilter getFilter(final int Maxlength, final Context context)//限制最大长度-Toast弹窗提示 - { - InputFilter inputFilter = new InputFilter() { - @Override - public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { - int keep = Maxlength - (dest.length() - (dend - dstart)); - if(keep < (end - start)){ - Utils.toast(context,"最多只能输入"+Maxlength+"个字哦"); - } - if(keep <= 0){ - return ""; - }else if(keep >= end - start){ - return null; - }else{ - return source.subSequence(start,start + keep); - } - } - }; - return inputFilter; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java index 5fa9a3a778..110517ed2a 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java @@ -246,7 +246,7 @@ public class SearchToolbarFragment extends BaseFragment implements View.OnClickL DataUtils.onEvent(getActivity(), "主页", "关注图标"); MtaHelper.onEvent("首页_点击", "顶栏", "我的关注"); DataCollectionUtils.uploadClick(getActivity(), "关注图标", "主页"); - + int a = 1/0; intent = ConcernActivity.getIntent(getContext(), "(工具栏)"); startActivity(intent); break; diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java index a777c7417d..adc8b22a03 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java @@ -23,9 +23,9 @@ import com.gh.common.util.DialogUtils; import com.gh.common.util.EntranceUtils; import com.gh.common.util.ErrorHelper; import com.gh.common.util.PostCommentUtils; +import com.gh.common.util.TextHelper; import com.gh.common.util.TimestampUtils; import com.gh.gamecenter.R; -import com.gh.gamecenter.Util.UtilFactory; import com.gh.gamecenter.adapter.MessageDetailAdapter; import com.gh.gamecenter.adapter.OnCommentCallBackListener; import com.gh.gamecenter.entity.CommentEntity; @@ -103,6 +103,13 @@ public class MessageDetailFragment extends NormalFragment implements OnCommentCa if (s.toString().trim().length() > 0) { mMessageDetailCommentSend.setEnabled(true); mMessageDetailCommentSend.setBackgroundDrawable(getResources().getDrawable(R.drawable.button_normal_style)); + if (s.length()>=140) + { + if (!ClickUtils.isFastDoubleClick(mMessageDetailEt.getId())) + { + Utils.toast(getContext(),"评论不能多于140字"); + } + } } else { mMessageDetailCommentSend.setEnabled(false); mMessageDetailCommentSend.setBackgroundDrawable(getResources().getDrawable(R.drawable.button_gray_style)); @@ -150,7 +157,7 @@ public class MessageDetailFragment extends NormalFragment implements OnCommentCa mMessageDetailRv.setAdapter(adapter); mMessageDetailEt.addTextChangedListener(watcher); - mMessageDetailEt.setFilters(new InputFilter[]{UtilFactory.getFilter(140, getContext())}); + mMessageDetailEt.setFilters(new InputFilter[]{TextHelper.getFilter(140,"防抖",getContext())}); mMessageDetailCommentSend.setEnabled(false); mMessageDetailCommentSend.setBackgroundDrawable(getResources().getDrawable(R.drawable.button_gray_style)); mMessageDetailEt.setOnFocusChangeListener((v, hasFocus) -> { diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt index ec9fea881f..734b6da882 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt @@ -29,7 +29,6 @@ import com.gh.base.fragment.BaseDialogWrapperFragment import com.gh.base.fragment.WaitingDialogFragment import com.gh.common.util.* import com.gh.gamecenter.R -import com.gh.gamecenter.Util.UtilFactory import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.manager.UserManager @@ -380,7 +379,8 @@ class ArticleEditActivity : BaseRichEditorActivity() { } } filterArray[0] = filter - filterArray[1] = UtilFactory.getFilter(51,this) + filterArray[1] = TextHelper.getFilter(51,"最多输入51个字",this) + mEditTitle.filters = filterArray } diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/CommentFragment.java b/app/src/main/java/com/gh/gamecenter/qa/comment/CommentFragment.java index 3ad3e9ca89..70dbaafcce 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/CommentFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/CommentFragment.java @@ -32,9 +32,9 @@ import com.gh.common.util.DialogUtils; import com.gh.common.util.ErrorHelper; import com.gh.common.util.KeyboardHeightObserver; import com.gh.common.util.KeyboardHeightProvider; +import com.gh.common.util.TextHelper; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; -import com.gh.gamecenter.Util.UtilFactory; import com.gh.gamecenter.adapter.OnCommentCallBackListener; import com.gh.gamecenter.baselist.ListAdapter; import com.gh.gamecenter.baselist.ListFragment; @@ -129,7 +129,7 @@ public class CommentFragment extends ListFragment 0) { mCommentSend.setEnabled(true); mCommentSend.setBackgroundDrawable(getResources().getDrawable(R.drawable.button_normal_style)); + if (s.length() >= 140) { + if (!ClickUtils.isFastDoubleClick(mCommentDetailCommentEt.getId())) + { + Utils.toast(getContext(),"评论不能多于140字"); + } - } else { + } + + } else { mCommentSend.setEnabled(false); mCommentSend.setBackgroundDrawable(getResources().getDrawable(R.drawable.button_gray_style)); } diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt index b8d59b086c..31a56cc602 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt @@ -21,7 +21,6 @@ import com.gh.common.util.* import com.gh.common.view.SpacingItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.SuggestionActivity.MEDIA_STORE_REQUEST -import com.gh.gamecenter.Util.UtilFactory import com.gh.gamecenter.databinding.ActivityQuestionsEditBinding import com.gh.gamecenter.entity.Permissions import com.gh.gamecenter.manager.UserManager @@ -130,10 +129,10 @@ class QuestionEditActivity : BaseActivity() { // TitleEdit mBinding.questionseditTitle.addTextChangedListener(LimitTextWatcher(mBinding.questionseditTitle)) - mBinding.questionseditTitle.filters = arrayOf(UtilFactory.getFilter(50,this)) + mBinding.questionseditTitle.filters = arrayOf(TextHelper.getFilter(50,"防抖",this)) // ContentEdit - mBinding.questionseditContent.filters= arrayOf(UtilFactory.getFilter(300,this)) + mBinding.questionseditContent.filters= arrayOf(TextHelper.getFilter(300,"防抖",this)) // Pic List val picAdapter = QuestionsEditPicAdapter(this, mViewModel) @@ -262,6 +261,22 @@ class QuestionEditActivity : BaseActivity() { mBinding.questionseditTitle.setSelection(start) return } + if (s.length>=50) + { + mBinding.questionseditTitle.debounceActionWithInterval(2000L){ + toast("标题最多50个字") + } + } + + } + else if(mEditText===mBinding.questionseditContent) + { + if (s.length>=300) + { + mBinding.questionseditContent.debounceActionWithInterval(2000L){ + toast("内容最多300个字") + } + } } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchActivity.java b/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchActivity.java index 48654cff2c..73726e0e8a 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchActivity.java @@ -25,7 +25,6 @@ import com.gh.common.util.LogUtils; import com.gh.common.util.MtaHelper; import com.gh.common.util.TextHelper; import com.gh.gamecenter.R; -import com.gh.gamecenter.Util.UtilFactory; import com.gh.gamecenter.db.AskSearchHistoryDao; import com.gh.gamecenter.eventbus.EBSearch; import com.gh.gamecenter.manager.UserManager; @@ -173,7 +172,7 @@ public class AskSearchActivity extends BaseActivity { } } }); - mSearchEt.setFilters(new InputFilter[]{UtilFactory.getFilter(50,this)}); + mSearchEt.setFilters(new InputFilter[]{TextHelper.getFilter(50,"最多输入50个字",getBaseContext())}); } @OnClick({R.id.bar_search_delete, R.id.bar_question_btn, R.id.search_questions_skip, R.id.bar_back}) diff --git a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java index c63f1c7c72..c68ba1106d 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java @@ -19,7 +19,6 @@ import android.widget.TextView; import com.gh.common.util.DialogUtils; import com.gh.common.util.TextHelper; import com.gh.gamecenter.R; -import com.gh.gamecenter.Util.UtilFactory; import com.gh.gamecenter.entity.IdCardEntity; import com.gh.gamecenter.entity.UserInfoEntity; import com.gh.gamecenter.manager.UserManager; @@ -161,7 +160,7 @@ public class UserInfoEditFragment extends NormalFragment { case UserViewModel.TYPE_NAME: mUserinfoEditNickname.setVisibility(View.VISIBLE); if (mSaveMenuItem != null) mSaveMenuItem.setVisible(true); - mUserinfoNicknameEt.setFilters(new InputFilter[]{UtilFactory.getFilter(12,requireContext())}); + mUserinfoNicknameEt.setFilters(new InputFilter[]{TextHelper.getFilter(12,"最多12个字",requireContext())}); title = getString(R.string.title_nickname_change); String name = mUserInfoEntity.getName(); if (!TextUtils.isEmpty(name)) { @@ -179,7 +178,7 @@ public class UserInfoEditFragment extends NormalFragment { mUserinfoContactEt.setText(contact); mUserinfoContactEt.setSelection(mUserinfoContactEt.getText().toString().trim().length()); } - mUserinfoContactEt.setFilters(new InputFilter[]{UtilFactory.getFilter(60,requireContext())}); + mUserinfoContactEt.setFilters(new InputFilter[]{TextHelper.getFilter(60,"最多60个字",requireContext())}); break; case UserViewModel.TYPE_ID_CARD: mIdCard.setVisibility(View.VISIBLE); @@ -193,8 +192,8 @@ public class UserInfoEditFragment extends NormalFragment { if (mSaveMenuItem != null) mSaveMenuItem.setVisible(false); } else { if (mSaveMenuItem != null) mSaveMenuItem.setVisible(true); - mIdCardNameEt.setFilters(new InputFilter[]{UtilFactory.getFilter(20,requireContext())}); - mIdCardEt.setFilters(new InputFilter[]{UtilFactory.getFilter(18,requireContext())}); + mIdCardNameEt.setFilters(new InputFilter[]{TextHelper.getFilter(20,"最多20个字",requireContext())}); + mIdCardEt.setFilters(new InputFilter[]{TextHelper.getFilter(18,"最多18个字",requireContext())}); } break; case UserViewModel.TYPE_INTRODUCE: @@ -203,7 +202,7 @@ public class UserInfoEditFragment extends NormalFragment { title = getString(R.string.userinfo_introduce); String introduce = mUserInfoEntity.getIntroduce(); mUserInfoIntroduceEt.addTextChangedListener(new UserInfoEditTextWatcher(mUserInfoIntroduceEt)); - mUserInfoIntroduceEt.setFilters(new InputFilter[]{UtilFactory.getFilter(30,requireContext())}); + mUserInfoIntroduceEt.setFilters(new InputFilter[]{TextHelper.getFilter(30,"最多30个字",requireContext())}); if (!TextUtils.isEmpty(introduce)) { mUserInfoIntroduceEt.setText(introduce); mUserInfoIntroduceEt.setSelection(mUserInfoIntroduceEt.getText().toString().trim().length());