From 8f5aee3a8c36f62943bdfff67c7eb6f28369a33a Mon Sep 17 00:00:00 2001 From: leafwai Date: Fri, 8 Jul 2022 16:35:05 +0800 Subject: [PATCH 01/13] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E8=AF=A6=E6=83=85=E6=9F=A5=E7=9C=8B=E5=A4=A7=E5=9B=BE?= =?UTF-8?q?=E5=8A=A8=E7=94=BB=E4=BD=8D=E7=BD=AE=E5=87=BA=E7=8E=B0=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/gamecenter/gamedetail/desc/DescAdapter.kt | 2 -- .../gamedetail/desc/GameGalleryAdapter.kt | 16 +++++++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt index ab25b5c479..c44e3fdb9c 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt @@ -473,8 +473,6 @@ class DescAdapter( mViewModel.game!!, StringUtils.buildString(mEntrance, "+(游戏详情[", mGameName, "]:图片)") ) - } else { - galleryRv.adapter?.run { notifyItemRangeChanged(0, itemCount) } } titleTv.text = "图片" moreTv.visibility = View.GONE diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameGalleryAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameGalleryAdapter.kt index dc15f74ea4..13ab8af776 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameGalleryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameGalleryAdapter.kt @@ -1,7 +1,10 @@ package com.gh.gamecenter.gamedetail.desc import android.content.Context +import android.util.SparseArray +import android.view.View import android.view.ViewGroup +import androidx.core.util.forEach import androidx.recyclerview.widget.RecyclerView import com.facebook.drawee.view.SimpleDraweeView import com.gh.gamecenter.common.base.BaseRecyclerViewHolder @@ -23,7 +26,7 @@ class GameGalleryAdapter(var context: Context, val mGame: GameEntity, private val mEntrance: String) : RecyclerView.Adapter() { - private val mImageViewList = mutableListOf() + private val mImageViewArray = SparseArray() private val mDefaultHorizontalPadding by lazy { R.dimen.game_detail_item_horizontal_padding.toPx() } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { @@ -60,18 +63,21 @@ class GameGalleryAdapter(var context: Context, DataCollectionUtils.uploadClick(context, "游戏介绍", "游戏详情") MtaHelper.onEvent("游戏详情_新", "点击游戏截图", mGame.name) + val imageViewList = ArrayList() + mImageViewArray.forEach { _, value -> + imageViewList.add(value) + } + val intent = ImageViewerActivity.getIntent( context, mGallery ?: arrayListOf(), holder.adapterPosition, - mImageViewList, + imageViewList, mEntrance ) context.startActivity(intent) } - if (!mImageViewList.contains(holder.binding.screenshotItemIv)) { - mImageViewList.add(holder.binding.screenshotItemIv) - } + mImageViewArray.put(position, holder.binding.screenshotItemIv) } is VideoViewHolder -> { val video = mVideo?.get(position) From 1fc43ca588a6fa7e6ac5471870e6177223f27b6a Mon Sep 17 00:00:00 2001 From: juntao Date: Mon, 11 Jul 2022 14:31:45 +0800 Subject: [PATCH 02/13] =?UTF-8?q?fix:=20=E8=BF=98=E5=8E=9F=20LG=20Library,?= =?UTF-8?q?=20=E5=A4=84=E7=90=86=E9=A6=96=E9=A1=B5=E7=BA=A2=E7=82=B9?= =?UTF-8?q?=E9=97=AE=E9=A2=98,=20=E5=A4=84=E7=90=86=E8=BF=9B=E5=85=A5?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E9=A1=B5=E7=9A=84=E8=BD=AF=E9=94=AE=E7=9B=98?= =?UTF-8?q?=E5=94=A4=E8=B5=B7=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/download/DownloadManager.java | 3 ++- app/src/main/java/com/gh/gamecenter/SearchActivity.kt | 10 +++++++--- libraries/LGLibrary | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/gh/download/DownloadManager.java b/app/src/main/java/com/gh/download/DownloadManager.java index 875166a613..e4e9fdb7a8 100644 --- a/app/src/main/java/com/gh/download/DownloadManager.java +++ b/app/src/main/java/com/gh/download/DownloadManager.java @@ -689,10 +689,11 @@ public class DownloadManager implements DownloadStatusListener { DownloadEntity entry = mDownloadDao.get(url); if (entry != null) { AppExecutor.getIoExecutor().execute(() -> { + mDownloadDao.delete(url); + if (isDeleteFile) { FileUtils.deleteFile(entry.getPath()); } - mDownloadDao.delete(url); Utils.log(DownloadManager.class.getSimpleName(), "cancel==>record were deleted!"); }); } diff --git a/app/src/main/java/com/gh/gamecenter/SearchActivity.kt b/app/src/main/java/com/gh/gamecenter/SearchActivity.kt index 90c018f3b7..b82bf3cea4 100644 --- a/app/src/main/java/com/gh/gamecenter/SearchActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/SearchActivity.kt @@ -13,12 +13,13 @@ import android.widget.RelativeLayout import android.widget.TextView import androidx.core.widget.doAfterTextChanged import androidx.core.widget.doOnTextChanged -import com.gh.gamecenter.common.base.activity.BaseActivity -import com.gh.common.util.* +import com.gh.common.util.DataCollectionUtils +import com.gh.common.util.LogUtils import com.gh.gamecenter.DisplayType.* +import com.gh.gamecenter.common.base.activity.BaseActivity import com.gh.gamecenter.common.constant.EntranceConsts -import com.gh.gamecenter.common.utils.goneIf import com.gh.gamecenter.common.utils.TextHelper +import com.gh.gamecenter.common.utils.goneIf import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.db.SearchHistoryDao import com.gh.gamecenter.eventbus.EBSearch @@ -114,6 +115,9 @@ open class SearchActivity : BaseActivity() { } private fun initSearchBar() { + // 进入获取焦点 + searchEt.post { searchEt.requestFocus() } + searchEt.setOnEditorActionListener { _, actionId, _ -> if (actionId == EditorInfo.IME_ACTION_SEARCH) { Util_System_Keyboard.hideSoftKeyboard(this) diff --git a/libraries/LGLibrary b/libraries/LGLibrary index 2fb219f6c0..692d58bc9b 160000 --- a/libraries/LGLibrary +++ b/libraries/LGLibrary @@ -1 +1 @@ -Subproject commit 2fb219f6c06a14cb78341c14f5b8c847484df6cf +Subproject commit 692d58bc9b494bf1d04db7809d43acbedaeb326c From b0f2d3f0686cbfbad83b6652deb29bdfbf54ea5d Mon Sep 17 00:00:00 2001 From: juntao Date: Mon, 11 Jul 2022 14:36:43 +0800 Subject: [PATCH 03/13] =?UTF-8?q?chore:=20=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=87=B3=205.10.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 3c93f6ab66..89d0b5ef3f 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 28 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 553 - versionName = "5.10.3" + versionCode = 554 + versionName = "5.10.4" applicationId = "com.gh.gamecenter" // AndroidX From 0660e132aaaaad08d499386721e19f67b70a5e22 Mon Sep 17 00:00:00 2001 From: lyr Date: Tue, 12 Jul 2022 15:24:09 +0800 Subject: [PATCH 04/13] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E7=82=B9=E5=87=BB=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E6=A0=8F=E5=9B=9E=E5=88=B0=E9=A1=B6=E9=83=A8=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E7=BB=84=E8=B6=8A=E7=95=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt index 5804ea8272..e264ce9b73 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt @@ -1646,7 +1646,7 @@ class GameDetailFragment : ToolbarFragment(), IScrollable { } override fun scrollToTop() { - val fragment = mFragmentsList[mBodyBinding.gamedetailVp.currentItem] + val fragment = mFragmentsList.safelyGetInRelease(mBodyBinding.gamedetailVp.currentItem) if (fragment is IScrollable && fragment.isAdded) { fragment.scrollToTop() } From 8f55051748df0ad2957ec41745a69304e2f3c2c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= Date: Thu, 14 Jul 2022 10:12:40 +0800 Subject: [PATCH 05/13] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E7=A4=BC?= =?UTF-8?q?=E5=8C=85=E6=90=9C=E7=B4=A2=E9=97=AA=E9=80=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java index 29961d0800..4343f86fd1 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java @@ -139,7 +139,7 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O } public String getSearchKey() { - return mBinding.searchBar.etSearch == null ? "" : mBinding.searchBar.etSearch.getText().toString(); + return mBinding == null ? "" : mBinding.searchBar.etSearch.getText().toString(); } @Override From dd2116a12b48692046a0e26a3c67797826f18eb3 Mon Sep 17 00:00:00 2001 From: juntao Date: Fri, 15 Jul 2022 10:39:02 +0800 Subject: [PATCH 06/13] =?UTF-8?q?fix:=20=E6=8D=95=E6=8A=93=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=20QQ=20=E5=8F=8D=E9=A6=88=E7=9A=84=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/DirectUtils.kt | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/DirectUtils.kt b/app/src/main/java/com/gh/common/util/DirectUtils.kt index a64044aa6b..2b45a6c673 100644 --- a/app/src/main/java/com/gh/common/util/DirectUtils.kt +++ b/app/src/main/java/com/gh/common/util/DirectUtils.kt @@ -9,28 +9,30 @@ import android.os.Build import android.os.Bundle import android.text.TextUtils import androidx.appcompat.app.AppCompatActivity -import com.gh.gamecenter.common.base.activity.BaseActivity -import com.gh.gamecenter.common.base.activity.BaseActivity_TabLayout -import com.gh.gamecenter.common.base.activity.ToolBarActivity -import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout -import com.gh.gamecenter.core.AppExecutor import com.gh.common.constant.Config -import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureEvent.Companion.createEvent import com.gh.common.exposure.ExposureManager.log import com.gh.common.exposure.ExposureTraceUtils.appendTrace import com.gh.common.exposure.ExposureType -import com.gh.gamecenter.common.constant.EntranceConsts.* -import com.gh.common.util.EntranceUtils.* +import com.gh.common.util.EntranceUtils.jumpActivity import com.gh.gamecenter.* import com.gh.gamecenter.amway.AmwayActivity import com.gh.gamecenter.catalog.CatalogActivity import com.gh.gamecenter.category.CategoryDirectoryActivity import com.gh.gamecenter.category2.CategoryV2Activity +import com.gh.gamecenter.common.base.activity.BaseActivity +import com.gh.gamecenter.common.base.activity.BaseActivity_TabLayout +import com.gh.gamecenter.common.base.activity.ToolBarActivity +import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout +import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.constant.EntranceConsts.* +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.AppExecutor import com.gh.gamecenter.core.utils.RunningUtils +import com.gh.gamecenter.core.utils.ToastUtils import com.gh.gamecenter.download.DownloadFragment.Companion.INDEX_UPDATE import com.gh.gamecenter.entity.* import com.gh.gamecenter.eventbus.EBSkip @@ -57,7 +59,6 @@ import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity import com.gh.gamecenter.qa.questions.newdetail.NewQuestionDetailActivity import com.gh.gamecenter.qa.subject.CommunitySubjectActivity import com.gh.gamecenter.qa.video.detail.ForumVideoDetailActivity -import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.security.BindPhoneActivity import com.gh.gamecenter.servers.GameServerTestActivity @@ -803,7 +804,11 @@ object DirectUtils { if (context !is AppCompatActivity) { intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) } - context.startActivity(intent) + try { + context.startActivity(intent) + } catch (e: ActivityNotFoundException) { + ToastUtils.toast("无法跳转至QQ,请稍后再试") + } } else { // 没有安装QQ 复制账号 qq?.copyTextAndToast("已复制 QQ $qq") From 01830c7e8176984b2a535b8ad29262a3f7f30772 Mon Sep 17 00:00:00 2001 From: juntao Date: Fri, 15 Jul 2022 10:39:26 +0800 Subject: [PATCH 07/13] =?UTF-8?q?fix:=20=E6=8D=95=E6=8A=93=E6=8F=92?= =?UTF-8?q?=E5=85=A5=E6=95=B0=E6=8D=AE=E5=BA=93=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../packagehelper/PackageFilterManager.kt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/packagehelper/PackageFilterManager.kt b/app/src/main/java/com/gh/gamecenter/packagehelper/PackageFilterManager.kt index b4605856d7..0fc4deb05a 100644 --- a/app/src/main/java/com/gh/gamecenter/packagehelper/PackageFilterManager.kt +++ b/app/src/main/java/com/gh/gamecenter/packagehelper/PackageFilterManager.kt @@ -1,9 +1,10 @@ package com.gh.gamecenter.packagehelper import android.annotation.SuppressLint -import com.gh.gamecenter.common.utils.toRequestBody -import com.gh.gamecenter.entity.PackageFilter import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.utils.toRequestBody +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.entity.PackageFilter import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.room.AppDatabase import io.reactivex.schedulers.Schedulers @@ -47,13 +48,17 @@ object PackageFilterManager { if (!appendOnly) { mValidPackageNameSet.clear() - AppDatabase.getInstance().packageFilterDao().deleteAllPackageName() + tryWithDefaultCatch { + AppDatabase.getInstance().packageFilterDao().deleteAllPackageName() + } } for (packageName in data.packages) { - AppDatabase.getInstance().packageFilterDao().addPackageName( - FilterPackageNameEntity(packageName) - ) + tryWithDefaultCatch { + AppDatabase.getInstance().packageFilterDao().addPackageName( + FilterPackageNameEntity(packageName) + ) + } partialPackageList.add(packageName) mValidPackageNameSet.add(packageName) From bbf20c20a26e2dc952e20692df51bfebf4cbd836 Mon Sep 17 00:00:00 2001 From: leafwai Date: Fri, 15 Jul 2022 10:42:18 +0800 Subject: [PATCH 08/13] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E8=AF=A6=E6=83=85=E5=89=AF=E6=A0=87=E9=A2=98=E3=80=81?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E5=A4=A7=E5=9B=BE=E9=A1=B5=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E9=97=AA=E9=80=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt | 2 +- .../java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt b/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt index df42f332b8..e01afdec38 100644 --- a/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt @@ -358,7 +358,7 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener { mBigImageView?.getLocationOnScreen(location) mTargetHeight = mBigImageView?.height?.toFloat() ?: 0F mTargetWidth = mBigImageView?.width?.toFloat() ?: 0F - mScaleX = mOriginWidth.toFloat() / mTargetWidth + mScaleX = if (mOriginWidth == 0 && mTargetWidth == 0F) 1F else mOriginWidth.toFloat() / mTargetWidth mScaleY = mScaleX mTargetCenterX = location[0] + mTargetWidth / 2 mTargetCenterY = location[1] + mTargetHeight / 2 diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt index 714d0ac0fe..dbcbcfab21 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt @@ -411,6 +411,7 @@ class GameDetailFragment : ToolbarFragment() { val tagMaxWidth = if (lineCount == 2 && layout.getEllipsisCount(1) == 0) remainWidth - 4F.dip2px() else width val tagLayout = FrameLayout(context) val tagView = TextView(context).apply { + layoutParams = FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, 14F.dip2px()) text = if (advanceDownload) "预下载" else gameSubtitle textSize = 10F setPadding(2F.dip2px(), 0, 2F.dip2px(), 0) From 1042ed675f6f67d5964564f8bb9d708794a2d710 Mon Sep 17 00:00:00 2001 From: juntao Date: Fri, 15 Jul 2022 14:31:37 +0800 Subject: [PATCH 09/13] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=8F=8D?= =?UTF-8?q?=E9=A6=88=E7=9A=84=E9=97=AA=E9=80=80=E8=AE=B0=E5=BD=95=E6=9C=89?= =?UTF-8?q?=E6=9C=BA=E7=8E=87=E4=B8=8D=E8=83=BD=E4=B8=8A=E6=8A=A5=E5=88=B0?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/MainActivity.java | 8 +-- .../com/gh/gamecenter/SuggestionActivity.java | 65 ++----------------- .../common/base/AppUncaughtHandler.java | 36 ++-------- .../gh/gamecenter/common/constant/Config.kt | 10 +++ 4 files changed, 22 insertions(+), 97 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index e1870ff6e6..38dfedabcd 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -227,10 +227,10 @@ public class MainActivity extends BaseActivity { mPackageViewModel = ViewModelProviders.of(this, new PackageViewModel.Factory()).get(PackageViewModel.class); - final String message = com.gh.gamecenter.common.constant.Config.getExceptionMsg(); - if (!TextUtils.isEmpty(message)) { - com.gh.gamecenter.common.constant.Config.setExceptionMsg(null); - DataUtils.reportException(this, new Throwable(message)); + final boolean containsErrorMsg = com.gh.gamecenter.common.constant.Config.isContainsErrorMsg(); + if (containsErrorMsg) { + com.gh.gamecenter.common.constant.Config.updateContainsErrorMsg(false); + DataUtils.reportException(this, new Throwable(com.gh.gamecenter.common.constant.Config.getExceptionMsg())); // 被改过的包闪退时增加跳转到光环游戏详情并自动下载的方法 if (com.gh.gamecenter.common.constant.Config.DEFAULT_CHANNEL_FOR_RELEASE.equals(HaloApp.getInstance().getChannel())) { DialogHelper.showCenterWarningDialog(this, "发生闪退", "光环助手发生了闪退,建议安装到最新版本修复异常" diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java index 5a2c290223..40fd8b524e 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java @@ -39,6 +39,7 @@ import com.gh.common.util.AdHelper; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.DirectUtils; +import com.gh.gamecenter.common.constant.Config; import com.gh.gamecenter.common.utils.NotificationHelper; import com.gh.common.util.PackageUtils; import com.gh.gamecenter.common.utils.ShareUtils; @@ -1265,7 +1266,9 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall } else { message = content; if (mSuggestType == SuggestType.crash) { - params.put("log", readFromFile()); + params.put("log", Config.getExceptionMsg()); + Config.setExceptionMsg(null); + Config.updateContainsErrorMsg(false); if (com.gh.gamecenter.common.BuildConfig.BUILD_TIME != 0) { message = message + " [此闪退基于" + com.gh.gamecenter.common.BuildConfig.BUILD_TIME + "测试包]"; } @@ -1307,12 +1310,6 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall postDialog.dismissAllowingStateLoss(); } setResult(SUGGEST_TYPE_REQUEST); - /*if (mHideHint.equals("APP闪退:")) { - showKefuReportDialog(); - } else { - toast("感谢您的反馈!"); - finish(); - }*/ toast("感谢您的反馈!"); finish(); AppExecutor.getUiExecutor().executeWithDelay(() -> NotificationHelper.showNotificationHintDialog(NotificationUgc.FEEDBACK, null), 1000); @@ -1401,41 +1398,6 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall }); } - public String readFromFile() { - - if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { - if (getExternalFilesDir(null) == null) return "SD Card error"; - File file = new File(getExternalFilesDir(null).getPath() + "/log"); - if (file.isFile()) return "检测log文件夹是文件"; - - File[] files = file.listFiles(); - if (files == null || files.length == 0) return "log文件夹为空" + file.getPath(); - File targetFile = files[files.length - 1]; - - try { - if (!targetFile.exists()) { - targetFile.createNewFile(); - return "No File error "; - } else { - try (InputStream in = new BufferedInputStream(new FileInputStream(targetFile)); - BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"))) { - String tmp; - StringBuffer string = new StringBuffer(); - while ((tmp = br.readLine()) != null) { - string.append(tmp); - } - return string.toString(); - } - } - } catch (Exception e) { - return e.toString(); - } - } else { - return "SD Card error"; - } - } - - @Override public void onListClick(View view, int position, T data) { if (!mAgreePostPic && !NetworkUtils.isWifiConnected(this)) { @@ -1462,25 +1424,6 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall } } - private void showKefuReportDialog() { - // 只有是APP闪退反馈成功后弹出联系客服的弹窗 - String str = "您也可以联系客服进一步描述闪退的情况,如果您反馈的是新问题,即有机会获得红包奖励"; - DialogHelper.showWarningDialog(SuggestionActivity.this, "反馈成功", Html.fromHtml(str.substring(0, str.indexOf("红包奖励")) + "红包奖励"), "暂不", "联系客服", - () -> { - if (ShareUtils.isQQClientAvailable(this)) { - finish(); - DirectUtils.directToQqConversation(this, null); - } else { - toast("本机未安装QQ应用"); - } - return null; - }, - () -> { - finish(); - return null; - }); - } - @Override protected boolean handleBackPressed() { if (mSelectGameEntity != null && mCollectCancelPkgName.equals(mSelectGameEntity.getPackageName())) { diff --git a/module_common/src/main/java/com/gh/gamecenter/common/base/AppUncaughtHandler.java b/module_common/src/main/java/com/gh/gamecenter/common/base/AppUncaughtHandler.java index 89311d68c3..0ae6dc7f9e 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/base/AppUncaughtHandler.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/AppUncaughtHandler.java @@ -13,19 +13,12 @@ import android.util.Log; import com.gh.gamecenter.common.constant.Config; import com.gh.gamecenter.core.HaloApp; -import com.lightgame.download.FileUtils; import com.lightgame.utils.AppManager; import com.lightgame.utils.Utils; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; import java.lang.Thread.UncaughtExceptionHandler; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Date; import java.util.List; -import java.util.Locale; import java.util.concurrent.TimeoutException; import io.sentry.Sentry; @@ -64,7 +57,7 @@ public class AppUncaughtHandler implements UncaughtExceptionHandler { Utils.toast(mContext.getApplicationContext(), "\"光环助手\"发生错误"); Looper.loop(); }); - saveLocalLog(mContext, e); + saveCrashLogToSp(e); restart(mContext); Sentry.captureException(e); } @@ -117,32 +110,11 @@ public class AppUncaughtHandler implements UncaughtExceptionHandler { } - // 保存log到本地 - public static void saveLocalLog(Context context, Throwable ex) { + // 保存 crash log 到Sp + public static void saveCrashLogToSp(Throwable ex) { String errorMsg = Log.getStackTraceString(ex); Config.setExceptionMsg(errorMsg); - - // 保存到本地 - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.getDefault()); - File file = new File(FileUtils.getLogPath(context.getApplicationContext(), - format.format(new Date()) + "_gh_assist" + ".log")); - FileWriter writer = null; - try { - file.createNewFile(); - writer = new FileWriter(file); - writer.write(errorMsg); - writer.flush(); - } catch (IOException e1) { - e1.printStackTrace(); - } finally { - if (writer != null) { - try { - writer.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } + Config.updateContainsErrorMsg(true); } interface UncaughtExceptionListener { diff --git a/module_common/src/main/java/com/gh/gamecenter/common/constant/Config.kt b/module_common/src/main/java/com/gh/gamecenter/common/constant/Config.kt index f82ab8324f..9b823b63b3 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/constant/Config.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/constant/Config.kt @@ -21,6 +21,16 @@ object Config { setString(getPreferences(), "errMsg", errMsg) //先用apply(),保存不了再用commit() 9.0机型保存不了信息 } + @JvmStatic + fun updateContainsErrorMsg(containsCrashMsg: Boolean) { + setString(getPreferences(), "containsErrMsg", if (containsCrashMsg) "true" else "false") + } + + @JvmStatic + fun isContainsErrorMsg(): Boolean { + return "true" == getPreferences().getString("containsErrMsg", null) + } + fun getPreferences(): SharedPreferences { if (mDefaultSharedPreferences == null) { mDefaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance()) From 140012e0007d9296c1b84fe281d544d570004995 Mon Sep 17 00:00:00 2001 From: juntao Date: Mon, 18 Jul 2022 16:38:44 +0800 Subject: [PATCH 10/13] =?UTF-8?q?chore:=20=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=87=B3=205.11.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 968f8ab8f3..3c655eb3bc 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 28 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 570 - versionName = "5.11.0" + versionCode = 571 + versionName = "5.11.1" applicationId = "com.gh.gamecenter" // AndroidX From 3123045a915fab81bfdc809f267c698ec3e36a93 Mon Sep 17 00:00:00 2001 From: juntao Date: Thu, 21 Jul 2022 16:57:37 +0800 Subject: [PATCH 11/13] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E6=9C=89=E6=96=B0=E5=86=85=E5=AE=B9=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E6=97=B6=E4=B8=8B=E6=8B=89=E5=88=B7=E6=96=B0=E4=BC=9A=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=84=A6=E7=82=B9=E4=BA=A7=E7=94=9F=E6=BB=91=E5=8A=A8?= =?UTF-8?q?=E5=81=8F=E7=A7=BB=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/layout/home_unknown_item.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/layout/home_unknown_item.xml b/app/src/main/res/layout/home_unknown_item.xml index ff276aafb5..989104ad88 100644 --- a/app/src/main/res/layout/home_unknown_item.xml +++ b/app/src/main/res/layout/home_unknown_item.xml @@ -3,7 +3,8 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/white"> + android:background="@color/white" + android:descendantFocusability="blocksDescendants"> - Date: Fri, 22 Jul 2022 11:53:55 +0800 Subject: [PATCH 12/13] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E5=BC=B9=E7=AA=97=E9=87=8D=E5=A4=8D=E5=BC=B9=E5=87=BA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fragment/WelcomeDialogFragment.kt | 3 +- .../core/utils/SharedPreferences.kt | 50 ------------------- 2 files changed, 1 insertion(+), 52 deletions(-) delete mode 100644 module_core/src/main/java/com/gh/gamecenter/core/utils/SharedPreferences.kt diff --git a/app/src/main/java/com/gh/gamecenter/fragment/WelcomeDialogFragment.kt b/app/src/main/java/com/gh/gamecenter/fragment/WelcomeDialogFragment.kt index d710f8099b..84f7308a3c 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/WelcomeDialogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/fragment/WelcomeDialogFragment.kt @@ -14,7 +14,6 @@ import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.common.view.WrapContentDraweeView import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.core.utils.TimeElapsedHelper - import com.gh.gamecenter.databinding.DialogWelcomeBinding import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.WelcomeDialogEntity @@ -132,7 +131,7 @@ class WelcomeDialogFragment : BaseDialogFragment() { PreferenceManager.getDefaultSharedPreferences(context?.applicationContext).edit().apply { putString(Constants.SP_LAST_OPENING_ID, mWelcomeEntity?.id) putLong(Constants.SP_LAST_OPENING_TIME, mWelcomeEntity?.time!!) - } + }.apply() mDismissListener?.invoke() super.onDestroy() diff --git a/module_core/src/main/java/com/gh/gamecenter/core/utils/SharedPreferences.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/SharedPreferences.kt deleted file mode 100644 index 5ad407a61d..0000000000 --- a/module_core/src/main/java/com/gh/gamecenter/core/utils/SharedPreferences.kt +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.gh.common.util - -import android.annotation.SuppressLint -import android.content.SharedPreferences - -/** - * Allows editing of this preference instance with a call to [apply][SharedPreferences.Editor.apply] - * or [commit][SharedPreferences.Editor.commit] to persist the changes. - * Default behaviour is [apply][SharedPreferences.Editor.apply]. - * ``` - * prefs.edit { - * putString("key", value) - * } - * ``` - * To [commit][SharedPreferences.Editor.commit] changes: - * ``` - * prefs.edit(commit = true) { - * putString("key", value) - * } - * ``` - */ -@SuppressLint("ApplySharedPref") -inline fun SharedPreferences.edit( - commit: Boolean = false, - action: SharedPreferences.Editor.() -> Unit -) { - val editor = edit() - action(editor) - if (commit) { - editor.commit() - } else { - editor.apply() - } -} \ No newline at end of file From 965b6b3f66a7e70e5ce10d7b5b86597b6c26902f Mon Sep 17 00:00:00 2001 From: leafwai Date: Fri, 22 Jul 2022 16:51:24 +0800 Subject: [PATCH 13/13] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D5.0=E4=BB=A5?= =?UTF-8?q?=E4=B8=8B=E7=B3=BB=E7=BB=9F=E8=AE=BE=E7=BD=AE=E7=9F=A2=E9=87=8F?= =?UTF-8?q?=E5=9B=BE=E9=97=AA=E9=80=80=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/base/DownloadToolbarActivity.kt | 4 +--- .../java/com/gh/gamecenter/category2/CategoryV2Activity.kt | 1 + .../com/gh/gamecenter/common/base/activity/BaseActivity.java | 4 +++- .../com/gh/gamecenter/common/base/fragment/BaseFragment.java | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/gh/base/DownloadToolbarActivity.kt b/app/src/main/java/com/gh/base/DownloadToolbarActivity.kt index 97d80c653a..562588245a 100644 --- a/app/src/main/java/com/gh/base/DownloadToolbarActivity.kt +++ b/app/src/main/java/com/gh/base/DownloadToolbarActivity.kt @@ -105,9 +105,7 @@ abstract class DownloadToolbarActivity : ToolBarActivity() { override fun onNightModeChange() { super.onNightModeChange() if (showDownloadMenu() && getMenuItem(R.id.menu_download) != null) { - (getMenuItem(R.id.menu_download).actionView.findViewById(R.id.menu_download_iv) as ImageView).setImageDrawable( - ContextCompat.getDrawable(this, R.drawable.toolbar_download) - ) + (getMenuItem(R.id.menu_download).actionView.findViewById(R.id.menu_download_iv) as ImageView).setImageResource(R.drawable.toolbar_download) } } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Activity.kt b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Activity.kt index 19510ba56b..736e728d85 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Activity.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Activity.kt @@ -29,6 +29,7 @@ class CategoryV2Activity : DownloadToolbarActivity() { override fun onNightModeChange() { super.onNightModeChange() updateStatusBarColor(R.color.background_white, R.color.background_white) + getMenuItem(R.id.menu_search).setIcon(R.drawable.ic_column_search) } companion object { 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 e94163dd4a..7b25f31dde 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 @@ -527,7 +527,9 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy @Override public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); - onNightModeChange(); + if (BuildConfig.IS_NIGHT_MODE_ON && mNightMode != NightModeUtils.INSTANCE.isNightMode(this)) { + onNightModeChange(); + } } protected void onNightModeChange() { diff --git a/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment.java b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment.java index 15f52ae6a4..434c8af916 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment.java @@ -353,7 +353,7 @@ public abstract class BaseFragment extends Fragment implements OnRequestCallB public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); - if (BuildConfig.IS_NIGHT_MODE_ON) { + if (BuildConfig.IS_NIGHT_MODE_ON && mNightMode != NightModeUtils.INSTANCE.isNightMode(requireContext())) { onNightModeChange(); } }