From bb86bf313b31db80004cf461d3c215742d74181a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E5=AD=90=E7=BB=B4?= Date: Thu, 5 Jan 2023 10:34:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B4=E7=90=86=20DialogUtils=20?= =?UTF-8?q?=E7=9A=84=E5=8E=86=E5=8F=B2=E5=BC=B9=E7=AA=97=E5=B9=B6=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E6=96=B0=E7=9A=84=E5=BC=B9=E7=AA=97=20https://jira.sh?= =?UTF-8?q?anqu.cc/browse/GHZS-853?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/DialogUtils.java | 71 ++------- .../java/com/gh/common/util/LibaoUtils.java | 10 +- .../personal/HaloPersonalFragment.kt | 6 +- .../personal/HaloPersonalViewModel.kt | 4 +- .../qa/answer/edit/AnswerEditActivity.kt | 28 ++-- .../qa/article/edit/ArticleEditActivity.kt | 17 +- .../qa/questions/edit/QuestionEditActivity.kt | 17 +- app/src/main/res/layout/common_hintdialog.xml | 47 ------ .../res/layout/dialog_download_traffic.xml | 130 ++++++++------- .../layout/dialog_pluggable_never_remind.xml | 83 ---------- app/src/main/res/layout/dialog_sign.xml | 149 ++++++++++-------- app/src/main/res/values/strings.xml | 1 + .../common/base/activity/BaseActivity.java | 3 +- .../gamecenter/common/utils/DialogHelper.kt | 19 ++- .../gamecenter/common/utils/DialogUtils.java | 148 ----------------- .../login/utils/QuickLoginHelper.kt | 20 +-- 16 files changed, 233 insertions(+), 520 deletions(-) delete mode 100644 app/src/main/res/layout/common_hintdialog.xml delete mode 100644 app/src/main/res/layout/dialog_pluggable_never_remind.xml delete mode 100644 module_common/src/main/java/com/gh/gamecenter/common/utils/DialogUtils.java 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 d7cb9f5614..91ecf1fdfb 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -4,7 +4,6 @@ import android.annotation.SuppressLint; import android.app.Activity; import android.app.Dialog; import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; @@ -21,7 +20,6 @@ import android.text.method.LinkMovementMethod; import android.text.style.ClickableSpan; import android.text.style.URLSpan; import android.text.style.UnderlineSpan; -import android.view.Gravity; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; @@ -30,15 +28,11 @@ import android.view.Window; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; -import android.widget.Button; -import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.constraintlayout.widget.ConstraintLayout; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -58,6 +52,7 @@ import com.gh.gamecenter.common.callback.SimpleCallback; import com.gh.gamecenter.common.databinding.DialogAlertDefaultBinding; import com.gh.gamecenter.common.entity.SimpleGameEntity; import com.gh.gamecenter.common.entity.SuggestType; +import com.gh.gamecenter.common.utils.DialogHelper; import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.common.utils.ImageUtils; import com.gh.gamecenter.common.utils.NetworkUtils; @@ -73,7 +68,6 @@ import com.gh.gamecenter.core.utils.EmptyCallback; import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.core.utils.SpanBuilder; -import com.gh.gamecenter.core.utils.StringUtils; import com.gh.gamecenter.core.utils.ToastUtils; import com.gh.gamecenter.databinding.DialogBindPhoneBinding; import com.gh.gamecenter.databinding.DialogOverseaConfirmationBinding; @@ -99,11 +93,7 @@ import com.lightgame.utils.AppManager; import com.lightgame.utils.Util_System_Keyboard; import com.lightgame.utils.Utils; -import org.json.JSONException; -import org.json.JSONObject; - import java.util.ArrayList; -import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import kotlin.Unit; @@ -128,33 +118,11 @@ public class DialogUtils { dialog.show(); return dialog; } - public static void showHintDialog(Context context, String title, CharSequence msg, String confirm) { - context = checkDialogContext(context); - final Dialog dialog = new Dialog(context); - - View view = View.inflate(context, R.layout.common_hintdialog, null); - - TextView hintdialog_title = view.findViewById(R.id.tv_dialog_hint_title); - hintdialog_title.setText(title); - - // 内容 - TextView hintdialog_content = view.findViewById(R.id.tv_dialog_hint_content); - hintdialog_content.setText(msg); - - TextView hintdialog_confirm = view.findViewById(R.id.tv_dialog_hint_confirm); - - hintdialog_confirm.setText(confirm); - - hintdialog_confirm.setOnClickListener(v -> dialog.cancel()); - - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - dialog.setContentView(view); - dialog.show(); - } public static void checkDownload(Context context, String size, CheckDownloadCallBack callBack) { if (!NetworkUtils.isNetworkConnected(context)) { - showNoConnectionDownloadDialog(context, null, + showNoConnectionDownloadDialog(context, () -> { + }, () -> callBack.onResponse(true)); } else if (NetworkUtils.isWifiConnected(context) || filter4GorSize(context, size)) { @@ -192,7 +160,7 @@ public class DialogUtils { return false; } public static void showNoConnectionDownloadDialog(Context context, ConfirmListener listener, CancelListener cancelListener) { - com.gh.gamecenter.common.utils.DialogUtils.showWarningDialog(context, "下载提示", "网络异常,请检查手机网络状态", "连上WiFi后自动下载", "关闭", listener, cancelListener); + DialogHelper.showDialog(context, "下载提示", "网络异常,请检查手机网络状态", "知道了", "WiFi自动下载", listener::onConfirm, cancelListener::onCancel, false, "", ""); } public static void showDownloadDialog(Context context, ConfirmListener listener, CancelListener cancelListener) { @@ -233,6 +201,7 @@ public class DialogUtils { dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(contentView); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); dialog.show(); } @@ -251,7 +220,7 @@ public class DialogUtils { contentTv.setText(Html.fromHtml(message.toString())); content2Tv.setText(Html.fromHtml(message2.toString())); - titleTv.setText(title); + titleTv.setText(Html.fromHtml(title)); positiveTv.setText(positive); negativeTv.setOnClickListener(view -> dialog.dismiss()); @@ -265,6 +234,7 @@ public class DialogUtils { dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(contentView); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); dialog.show(); } @@ -932,30 +902,9 @@ public class DialogUtils { } public static void showPluggableNeverRemindDialog(Context context, String nameAndPlatform, @NonNull ConfirmListener listener) { - context = checkDialogContext(context); - - final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); - - View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_pluggable_never_remind, null); - - View cancelBtn = contentView.findViewById(R.id.cancel); - View confirmBtn = contentView.findViewById(R.id.confirm); - TextView contentTv = contentView.findViewById(R.id.content); - - contentTv.setText(("助手首页将不再提示《" + nameAndPlatform + "》的所有插件化消息,确定吗?")); - - cancelBtn.setOnClickListener(v -> { - dialog.dismiss(); - }); - - confirmBtn.setOnClickListener(v -> { - listener.onConfirm(); - dialog.dismiss(); - }); - - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - dialog.setContentView(contentView); - dialog.show(); + String content = "助手首页将不再提示《" + nameAndPlatform + "》的所有插件化消息,确定吗?"; + DialogHelper.showDialog(context, "温馨提醒", content, "确定", "取消", listener::onConfirm, () -> { + }, false, "", ""); } public static void showRegulationTestDialog(Context context, @NonNull ConfirmListener confirmListener, @NonNull CancelListener cancelListener) { diff --git a/app/src/main/java/com/gh/common/util/LibaoUtils.java b/app/src/main/java/com/gh/common/util/LibaoUtils.java index e2f68b0911..95d3542b77 100644 --- a/app/src/main/java/com/gh/common/util/LibaoUtils.java +++ b/app/src/main/java/com/gh/common/util/LibaoUtils.java @@ -482,8 +482,9 @@ public class LibaoUtils { break; case "try tao": case "used up": - DialogUtils.showHintDialog(context, "礼包已领光" - , "手速不够快,礼包已经被抢光了,十分抱歉", "知道了"); + DialogHelper.showDialog(context, "礼包已领光", "手速不够快,礼包已经被抢光了,十分抱歉", "知道了", "", () -> { + }, () -> { + }, false, "", ""); break; case "maintaining": Utils.toast(context, "网络状态异常,请稍后再试"); @@ -609,8 +610,9 @@ public class LibaoUtils { break; case "try tao": case "used up": - DialogUtils.showHintDialog(context, "礼包已领光" - , "手速不够快,礼包已经被抢光了,十分抱歉", "知道了"); + DialogHelper.showDialog(context, "礼包已领光", "手速不够快,礼包已经被抢光了,十分抱歉", "知道了", "", () -> { + }, () -> { + }, false, "", ""); libaoEntity.setStatus("used_up"); if (libaoBtn != null) { initLibaoBtn(context, libaoBtn, libaoEntity, isInstallRequired, adapter, false, entrance, listener); diff --git a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFragment.kt b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFragment.kt index d618c3cda9..8f024798b3 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFragment.kt @@ -438,11 +438,11 @@ class HaloPersonalFragment : BaseLazyFragment() { if (mHaloPersonalViewModel.isCanSign(signEntity.lastTime)) { DialogUtils.showSignDialog( context, - "签到成功,获得经验:1", + getString(R.string.sign_title), getString(R.string.sign_dialog_content, signEntity.serialSign), getString(R.string.sign_dialog_content2, signEntity.experience), getSignSkipText(signEntity.title) - ) { mHaloPersonalViewModel.signSkip(signEntity) } + ) { mHaloPersonalViewModel.signSkip(requireContext(), signEntity) } signEntity.lastTime = System.currentTimeMillis() / 1000 } else { DialogUtils.showSignDialog( @@ -451,7 +451,7 @@ class HaloPersonalFragment : BaseLazyFragment() { getString(R.string.sign_dialog_content, signEntity.serialSign), getString(R.string.sign_dialog_content2, signEntity.experience), getSignSkipText(signEntity.title) - ) { mHaloPersonalViewModel.signSkip(signEntity) } + ) { mHaloPersonalViewModel.signSkip(requireContext(), signEntity) } } signEntity.id = UserManager.getInstance().userId if (mDatabase.signDao().updateSignEntity(signEntity) <= 0) { diff --git a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalViewModel.kt b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalViewModel.kt index 350beea3ef..d2ec58d910 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalViewModel.kt @@ -2,6 +2,7 @@ package com.gh.gamecenter.personal import android.annotation.SuppressLint import android.app.Application +import android.content.Context import android.text.TextUtils import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData @@ -147,8 +148,7 @@ class HaloPersonalViewModel(application: Application) : AndroidViewModel(applica }) } - fun signSkip(signEntity: SignEntity) { - val context = getApplication().applicationContext + fun signSkip(context: Context, signEntity: SignEntity) { val data = signEntity.data val entrance = "(我的光环)+(签到)" if (data == null || TextUtils.isEmpty(data.type)) { diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditActivity.kt index e332710f39..81ba61503b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditActivity.kt @@ -15,24 +15,22 @@ import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import com.facebook.drawee.view.SimpleDraweeView import com.gh.base.BaseRichEditorActivity -import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment -import com.gh.gamecenter.core.AppExecutor import com.gh.common.util.* -import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.ImageViewerActivity import com.gh.gamecenter.R -import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.entity.NotificationUgc +import com.gh.gamecenter.common.mvvm.Status import com.gh.gamecenter.common.utils.* -import com.gh.gamecenter.common.utils.DialogUtils +import com.gh.gamecenter.common.view.DrawableView +import com.gh.gamecenter.core.AppExecutor import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentAnswerEditBinding -import com.gh.gamecenter.common.entity.NotificationUgc +import com.gh.gamecenter.feature.entity.Questions import com.gh.gamecenter.login.user.UserManager -import com.gh.gamecenter.common.mvvm.Status import com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity import com.gh.gamecenter.qa.answer.draft.AnswerDraftActivity -import com.gh.gamecenter.feature.entity.Questions import com.gh.gamecenter.video.VideoVerifyItemViewHolder import com.gh.gamecenter.video.detail.VideoDetailContainerViewModel import com.halo.assistant.HaloApp @@ -221,15 +219,13 @@ class AnswerEditActivity : BaseRichEditorActivity(), Keyboa mProcessingDialog = WaitingDialogFragment.newInstance(it.msg, false) mProcessingDialog?.show(supportFragmentManager, null) { if (mViewModel.uploadImageSubscription != null && !mViewModel.uploadImageSubscription!!.isDisposed) { - mUploadImageCancelDialog = DialogUtils.showAlertDialog( + mUploadImageCancelDialog = DialogHelper.showDialog( this, "提示", "图片正在上传中,确定取消吗?", - "确定", "取消", object : ConfirmListener { - override fun onConfirm() { - mViewModel.uploadImageSubscription?.dispose() - mUploadImageCancelDialog?.dismiss() - mProcessingDialog?.dismiss() - } - }, null + "确定", "取消", { + mViewModel.uploadImageSubscription?.dispose() + mUploadImageCancelDialog?.dismiss() + mProcessingDialog?.dismiss() + }, extraConfig = DialogHelper.Config(centerTitle = true, centerContent = true) ) } } 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 f75dff0b37..65f0304416 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 @@ -19,7 +19,6 @@ import com.gh.common.util.ErrorHelper import com.gh.common.util.NewLogUtils import com.gh.gamecenter.R import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment -import com.gh.gamecenter.common.callback.ConfirmListener import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.common.entity.CommunityEntity @@ -29,6 +28,7 @@ import com.gh.gamecenter.core.AppExecutor import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ActivityCommunityArticleEditBinding import com.gh.gamecenter.entity.ActivityLabelEntity +import com.gh.gamecenter.feature.entity.ArticleDraftEntity import com.gh.gamecenter.feature.entity.GameEntity import com.gh.gamecenter.login.user.UserManager import com.gh.gamecenter.qa.BbsType @@ -38,7 +38,6 @@ import com.gh.gamecenter.qa.dialog.ChooseActivityDialogFragment import com.gh.gamecenter.qa.dialog.ChooseForumActivity import com.gh.gamecenter.qa.editor.GameActivity import com.gh.gamecenter.qa.entity.ArticleDetailEntity -import com.gh.gamecenter.feature.entity.ArticleDraftEntity import com.gh.gamecenter.qa.questions.edit.TagsSelectFragment import com.gh.gamecenter.qa.video.publish.VideoPublishFragment import com.lightgame.utils.Util_System_Keyboard @@ -234,15 +233,13 @@ class ArticleEditActivity : BaseRichEditorActivity(), Keyb mProcessingDialog = WaitingDialogFragment.newInstance(it.msg, false) mProcessingDialog?.show(supportFragmentManager, null) { if (mViewModel.uploadImageSubscription != null && !mViewModel?.uploadImageSubscription!!.isDisposed) { - mUploadImageCancelDialog = DialogUtils.showAlertDialog( + mUploadImageCancelDialog = DialogHelper.showDialog( this, "提示", "图片正在上传中,确定取消吗?", - "确定", "取消", object : ConfirmListener { - override fun onConfirm() { - mViewModel.uploadImageSubscription!!.dispose() - mUploadImageCancelDialog?.dismiss() - mProcessingDialog?.dismiss() - } - }, null + "确定", "取消", { + mViewModel.uploadImageSubscription!!.dispose() + mUploadImageCancelDialog?.dismiss() + mProcessingDialog?.dismiss() + }, extraConfig = DialogHelper.Config(centerTitle = true, centerContent = true) ) } } 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 7999e9c1a7..bea2d6ace6 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 @@ -23,7 +23,6 @@ import com.gh.common.util.ErrorHelper import com.gh.common.util.NewLogUtils import com.gh.gamecenter.R import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment -import com.gh.gamecenter.common.callback.ConfirmListener import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.common.entity.CommunityEntity @@ -39,6 +38,7 @@ import com.gh.gamecenter.databinding.ActivityQuestionsEditBinding import com.gh.gamecenter.entity.* import com.gh.gamecenter.feature.entity.GameEntity import com.gh.gamecenter.feature.entity.Permissions +import com.gh.gamecenter.feature.entity.QuestionDraftEntity import com.gh.gamecenter.login.user.UserManager import com.gh.gamecenter.qa.BbsType import com.gh.gamecenter.qa.answer.edit.AnswerEditActivity @@ -47,7 +47,6 @@ import com.gh.gamecenter.qa.article.edit.ArticleEditActivity import com.gh.gamecenter.qa.dialog.ChooseActivityDialogFragment import com.gh.gamecenter.qa.dialog.ChooseForumActivity import com.gh.gamecenter.qa.editor.GameActivity -import com.gh.gamecenter.feature.entity.QuestionDraftEntity import com.gh.gamecenter.qa.entity.QuestionsDetailEntity import com.gh.gamecenter.qa.questions.draft.QuestionDraftActivity import com.gh.gamecenter.qa.questions.edit.tip.QuestionTitleTipAdapter @@ -466,20 +465,18 @@ class QuestionEditActivity : BaseRichEditorActivity(), mProcessingDialog = WaitingDialogFragment.newInstance(it.msg, false) mProcessingDialog?.show(supportFragmentManager, null) { if (mViewModel.uploadImageSubscription != null && !mViewModel.uploadImageSubscription!!.isDisposed) { - mUploadImageCancelDialog = DialogUtils.showAlertDialog( + mUploadImageCancelDialog = DialogHelper.showDialog( this, "提示", "图片正在上传中,确定取消吗?", "确定", "取消", - object : ConfirmListener { - override fun onConfirm() { - mViewModel.uploadImageSubscription!!.dispose() - mUploadImageCancelDialog?.dismiss() - mProcessingDialog?.dismiss() - } + { + mViewModel.uploadImageSubscription!!.dispose() + mUploadImageCancelDialog?.dismiss() + mProcessingDialog?.dismiss() }, - null + extraConfig = DialogHelper.Config(centerTitle = true, centerContent = true) ) } } diff --git a/app/src/main/res/layout/common_hintdialog.xml b/app/src/main/res/layout/common_hintdialog.xml deleted file mode 100644 index 9fa6a6b070..0000000000 --- a/app/src/main/res/layout/common_hintdialog.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_download_traffic.xml b/app/src/main/res/layout/dialog_download_traffic.xml index ebc3d558f3..76bf88b92d 100644 --- a/app/src/main/res/layout/dialog_download_traffic.xml +++ b/app/src/main/res/layout/dialog_download_traffic.xml @@ -1,71 +1,79 @@ - + android:layout_height="wrap_content"> - + android:layout_gravity="center" + android:background="@drawable/background_shape_white_radius_8" + android:orientation="vertical" + android:paddingStart="24dp" + android:paddingTop="24dp" + android:paddingEnd="24dp" + android:paddingBottom="16dp"> - + - + - + - + - + - \ No newline at end of file + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_pluggable_never_remind.xml b/app/src/main/res/layout/dialog_pluggable_never_remind.xml deleted file mode 100644 index 5ab2818c12..0000000000 --- a/app/src/main/res/layout/dialog_pluggable_never_remind.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_sign.xml b/app/src/main/res/layout/dialog_sign.xml index 8969c5b355..9e82e59c69 100644 --- a/app/src/main/res/layout/dialog_sign.xml +++ b/app/src/main/res/layout/dialog_sign.xml @@ -1,75 +1,98 @@ - + - + android:layout_gravity="center" + app:cardBackgroundColor="@color/background_white" + app:cardCornerRadius="8dp"> - + - + - + - + - + - + - + - + - \ No newline at end of file + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a3e451cbf6..6d215b06e9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -296,6 +296,7 @@ 提问 至少输入6个字 + 签到成功,获得经验:1]]> 已连续签到 %1$d 天]]> %1$d]]> 著作权归作者所有©光环助手 diff --git a/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java b/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java index b59634322d..0b1bad5a25 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java @@ -50,7 +50,6 @@ import com.gh.gamecenter.common.constant.RouteConsts; import com.gh.gamecenter.common.eventbus.EBShowDialog; import com.gh.gamecenter.common.tracker.IBusiness; import com.gh.gamecenter.common.utils.DialogHelper; -import com.gh.gamecenter.common.utils.DialogUtils; import com.gh.gamecenter.common.utils.EnvHelper; import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.common.utils.NetworkUtils; @@ -372,7 +371,7 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy showDialog.setUsed(true); IPackageInstallerProvider packageInstallerConfig = (IPackageInstallerProvider) ARouter.getInstance().build(RouteConsts.provider.packageInstaller).navigation(); if (DOWNLOAD_HIJACK.equals(showDialog.getType())) { - DialogUtils.showQqSessionDialog(this);// 建议用户联系客服 + DialogHelper.showQqSessionDialog(this);// 建议用户联系客服 } else if (PLUGGABLE.equals(showDialog.getType())) { DialogHelper.showPluginDialog(this, () -> { if (FileUtils.isEmptyFile(showDialog.getPath())) { diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/DialogHelper.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/DialogHelper.kt index 4d06246a17..dc7b5212c1 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/utils/DialogHelper.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/DialogHelper.kt @@ -17,6 +17,8 @@ import com.gh.gamecenter.common.constant.RouteConsts import com.gh.gamecenter.common.databinding.DialogAlertDefaultBinding import com.gh.gamecenter.common.databinding.DialogGuideBinding import com.gh.gamecenter.common.databinding.DialogProgressBinding +import com.gh.gamecenter.core.provider.IConfigProvider +import com.gh.gamecenter.core.provider.IDirectProvider import com.gh.gamecenter.core.provider.ISettingProvider import com.gh.gamecenter.core.utils.EmptyCallback import com.gh.gamecenter.core.utils.MtaHelper @@ -590,11 +592,26 @@ object DialogHelper { } } + // 网络劫持时 打开QQ客户端,创建临时会话 + @JvmStatic + fun showQqSessionDialog(context: Context) { + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as IConfigProvider + val directProvider = + ARouter.getInstance().build(RouteConsts.provider.directUtils).navigation() as IDirectProvider + val qq = configProvider.getQQ() + showDialog( + context, "警告", "您当前网络环境异常,下载地址可能被运营商恶意替换(网络劫持)" + + ",如多次下载失败,请联系客服获取正确的下载地址(客服QQ:" + qq + ")", "前往QQ", "取消", + { directProvider.directToQqConversation(context, qq) }, + extraConfig = Config(centerTitle = true) + ) + } + /** * @param context may be is application context * @return activity context */ - private fun checkDialogContext(context: Context?): Context? { + fun checkDialogContext(context: Context?): Context? { if (context == null) { throw NullPointerException("dialog context is null") } diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/DialogUtils.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/DialogUtils.java deleted file mode 100644 index b8b679700c..0000000000 --- a/module_common/src/main/java/com/gh/gamecenter/common/utils/DialogUtils.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.gh.gamecenter.common.utils; - -import android.app.Activity; -import android.app.Dialog; -import android.content.Context; -import android.text.Html; -import android.text.Spanned; -import android.view.LayoutInflater; -import android.view.View; -import android.view.Window; -import android.widget.TextView; - -import com.alibaba.android.arouter.launcher.ARouter; -import com.gh.gamecenter.common.R; -import com.gh.gamecenter.common.callback.CancelListener; -import com.gh.gamecenter.common.callback.ConfirmListener; -import com.gh.gamecenter.common.constant.RouteConsts; -import com.gh.gamecenter.core.provider.IConfigProvider; -import com.gh.gamecenter.core.provider.IDirectProvider; -import com.lightgame.utils.AppManager; - -public class DialogUtils { - - private DialogUtils() { - throw new IllegalStateException("Utility class"); - } - - /** - * @param context may be is application context - * @return activity context - */ - public static Context checkDialogContext(Context context) { - if (context == null) { - throw new NullPointerException("dialog context is null"); - } - - if (context instanceof Activity) { - return context; - } - - // currentActivity 是否存在 isDestroyed 的情况? - return AppManager.getInstance().currentActivity(); - } - - // 网络劫持时 打开QQ客户端,创建临时会话 - public static void showQqSessionDialog(final Context context) { - IConfigProvider configProvider = (IConfigProvider) ARouter.getInstance().build(RouteConsts.provider.config).navigation(); - IDirectProvider directProvider = (IDirectProvider) ARouter.getInstance().build(RouteConsts.provider.directUtils).navigation(); - String qq = configProvider.getQQ(); - showWarningDialog(context, "警告", "您当前网络环境异常,下载地址可能被运营商恶意替换(网络劫持)" + - ",如多次下载失败,请联系客服获取正确的下载地址(客服QQ:" + qq + ")" - , "取消", "前往QQ", () -> directProvider.directToQqConversation(context, qq), null); - } - - public static void showWarningDialog(Context context, String title, CharSequence msg, String cancel, String confirm, - final ConfirmListener cmListener, final CancelListener clListener) { - - showAlertDialog(context, title, msg, confirm, cancel, cmListener, clListener); - } - - /** - * Material Design 风格弹窗 - * - * @param context - * @param title 标题 - * @param message 内容 - * @param positive 确认按钮文本 - * @param negative 取消按钮文本 - * @param cmListener 确认按钮监听 - * @param clListener 取消按钮监听 - */ - public static Dialog showAlertDialog(Context context, String title, CharSequence message - , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { - context = checkDialogContext(context); - - 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); - if (message.toString().contains("红包奖励")) {//将红包奖励四个字标红 - String str = message.toString().substring(0, message.toString().indexOf("红包奖励")) + "红包奖励"; - contentTv.setText(Html.fromHtml(str)); - } else { - contentTv.setText(message); - } - titleTv.setText(title); - negativeTv.setText(negative); - positiveTv.setText(positive); - - negativeTv.setOnClickListener(view -> { - if (clListener != null) { - clListener.onCancel(); - } - dialog.dismiss(); - }); - - positiveTv.setOnClickListener(view -> { - if (cmListener != null) { - cmListener.onConfirm(); - } - dialog.dismiss(); - }); - - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - dialog.setContentView(contentView); - dialog.show(); - return dialog; - } - - public static Dialog showAlertDialog(Context context, String title, Spanned message - , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { - context = checkDialogContext(context); - - 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(view -> { - if (clListener != null) { - clListener.onCancel(); - } - dialog.dismiss(); - }); - - positiveTv.setOnClickListener(view -> { - if (cmListener != null) { - cmListener.onConfirm(); - } - dialog.dismiss(); - }); - - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - dialog.setContentView(contentView); - dialog.show(); - return dialog; - } -} diff --git a/module_login/src/main/java/com/gh/gamecenter/login/utils/QuickLoginHelper.kt b/module_login/src/main/java/com/gh/gamecenter/login/utils/QuickLoginHelper.kt index 2e603ffdb2..f0b40c422c 100644 --- a/module_login/src/main/java/com/gh/gamecenter/login/utils/QuickLoginHelper.kt +++ b/module_login/src/main/java/com/gh/gamecenter/login/utils/QuickLoginHelper.kt @@ -163,16 +163,18 @@ object QuickLoginHelper { private fun loginAuth(context: Context) { runOnUiThread { - val dialogContext = DialogUtils.checkDialogContext(context) + val dialogContext = com.gh.gamecenter.common.utils.DialogHelper.checkDialogContext(context) if (dialogContext is Activity && dialogContext.isFinishing) return@runOnUiThread - mPreDialog = Dialog(dialogContext, R.style.DialogWindowTransparent).apply { - val binding = SetWaitDialogBinding.inflate(LayoutInflater.from(dialogContext)).apply { - setWaitMessage.text = "请求登录中" + mPreDialog = dialogContext?.let { + Dialog(it, R.style.DialogWindowTransparent).apply { + val binding = SetWaitDialogBinding.inflate(LayoutInflater.from(dialogContext)).apply { + setWaitMessage.text = "请求登录中" + } + requestWindowFeature(Window.FEATURE_NO_TITLE) + setContentView(binding.root) + setCanceledOnTouchOutside(false) + show() } - requestWindowFeature(Window.FEATURE_NO_TITLE) - setContentView(binding.root) - setCanceledOnTouchOutside(false) - show() } } // 2.授权请求 @@ -211,7 +213,7 @@ object QuickLoginHelper { .setLogBtnClickListener(object : GenLoginClickListener { override fun onLoginClickStart(oauthContext: Context, jsonObj: JSONObject?) { runOnUiThread { - val dialogContext = DialogUtils.checkDialogContext(oauthContext) + val dialogContext = com.gh.gamecenter.common.utils.DialogHelper.checkDialogContext(oauthContext) if (dialogContext is Activity && dialogContext.isFinishing) return@runOnUiThread mLoggingDialog = Dialog(oauthContext, R.style.DialogWindowTransparent).apply { val binding = SetWaitDialogBinding.inflate(LayoutInflater.from(oauthContext)).apply {