From 9348f324d0af132efcb1c182be01c42447f1ec9e Mon Sep 17 00:00:00 2001 From: juntao Date: Mon, 4 Jul 2022 15:36:31 +0800 Subject: [PATCH 01/26] =?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.2?= 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 301ced622b..1c1edc5758 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 28 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 551 - versionName = "5.10.1" + versionCode = 552 + versionName = "5.10.2" applicationId = "com.gh.gamecenter" // AndroidX From 040de6d4581cf8cdea2877868b1035f128e1231f Mon Sep 17 00:00:00 2001 From: lyr Date: Thu, 7 Jul 2022 10:26:29 +0800 Subject: [PATCH 02/26] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E5=B9=B3=E9=93=BA?= =?UTF-8?q?=E5=9F=8B=E7=82=B9=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/LogUtils.java | 29 ++++++++++++++++ .../com/gh/common/util/NewFlatLogUtils.kt | 28 +++++++++++++++ .../java/com/gh/common/util/NewLogUtils.kt | 1 + .../gamecenter/common/loghub/LoghubEvent.kt | 13 ++++--- .../gamecenter/common/loghub/LoghubUtils.kt | 34 +++++++++++++++---- 5 files changed, 94 insertions(+), 11 deletions(-) create mode 100644 app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt diff --git a/app/src/main/java/com/gh/common/util/LogUtils.java b/app/src/main/java/com/gh/common/util/LogUtils.java index c71a5c614b..97c380cfca 100644 --- a/app/src/main/java/com/gh/common/util/LogUtils.java +++ b/app/src/main/java/com/gh/common/util/LogUtils.java @@ -486,6 +486,10 @@ public class LogUtils { LoghubUtils.log(GsonUtils.toJsonIgnoreNull(entity), "event", false); } + /** + * 因存在部分驼峰命名的字段(appVersion和userId),需要全部转换为下划线风格,请使用新方法{@link #getNewMetaObject} + */ + @Deprecated public static JSONObject getMetaObject() { Meta meta = MetaUtil.INSTANCE.getMeta(); JSONObject metaObject = new JSONObject(); @@ -511,6 +515,31 @@ public class LogUtils { return metaObject; } + public static JSONObject getNewMetaObject() { + Meta meta = MetaUtil.INSTANCE.getMeta(); + JSONObject metaObject = new JSONObject(); + try { + metaObject.put("dia", MetaUtil.getBase64EncodedAndroidId()); + metaObject.put("android_sdk", meta.getAndroid_sdk()); + metaObject.put("android_version", meta.getAndroid_version()); + metaObject.put("app_version", meta.getAppVersion()); + metaObject.put("channel", meta.getChannel()); + metaObject.put("gid", meta.getGid()); + metaObject.put("jnfj", MetaUtil.getBase64EncodedIMEI()); + metaObject.put("mac", meta.getMac()); + metaObject.put("manufacturer", meta.getManufacturer()); + metaObject.put("model", meta.getModel()); + metaObject.put("network", meta.getNetwork()); + metaObject.put("os", meta.getOs()); + metaObject.put("user_id", meta.getUserId()); + metaObject.put("oaid", HaloApp.getInstance().getOAID()); + + } catch (JSONException e) { + e.printStackTrace(); + } + return metaObject; + } + private static void uploadCommunity(JSONObject object) { try { object.put("meta", getMetaObject()); diff --git a/app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt b/app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt new file mode 100644 index 0000000000..bc1c3494dd --- /dev/null +++ b/app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt @@ -0,0 +1,28 @@ +package com.gh.common.util + +import com.gh.gamecenter.common.json.JsonObjectBuilder +import com.gh.gamecenter.common.loghub.LoghubUtils +import com.lightgame.utils.Utils +import org.json.JSONObject + +/** + * 新平铺埋点工具类 + * 因为新的埋点都要平铺字段,所以新建此类,新埋点在此类添加即可 + */ +object NewFlatLogUtils { + + private fun log(jsonObject: JSONObject, logStore: String, uploadImmediately: Boolean) { + Utils.log("NewFlatLogUtils", jsonObject.toString(4)) + LoghubUtils.log(jsonObject, logStore, uploadImmediately, true) + } + + private fun parseAndPutMeta(): JsonObjectBuilder.() -> Unit = { + val meta = LogUtils.getNewMetaObject() + val metaKeys = meta.keys() + while (metaKeys.hasNext()) { + val key: String = metaKeys.next().toString() + val value = meta.getString(key) + key to value + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/NewLogUtils.kt b/app/src/main/java/com/gh/common/util/NewLogUtils.kt index f296679267..da1aeb639d 100644 --- a/app/src/main/java/com/gh/common/util/NewLogUtils.kt +++ b/app/src/main/java/com/gh/common/util/NewLogUtils.kt @@ -15,6 +15,7 @@ import io.reactivex.schedulers.Schedulers import okhttp3.ResponseBody import org.json.JSONObject +@Deprecated("新埋点请添加至 NewFlatLogUtils") object NewLogUtils { private fun log(jsonObject: JSONObject, logStore: String, uploadImmediately: Boolean) { diff --git a/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubEvent.kt b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubEvent.kt index 8c2a057985..11d49f6164 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubEvent.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubEvent.kt @@ -10,8 +10,11 @@ import java.util.* @Keep @Parcelize @Entity(tableName = "loghubEvent") -data class LoghubEvent(@PrimaryKey - val id: String = UUID.randomUUID().toString(), - var time: String, - var content: String, - var logStore: String) : Parcelable \ No newline at end of file +data class LoghubEvent( + @PrimaryKey + val id: String = UUID.randomUUID().toString(), + var time: String, + var content: String, + var logStore: String, + var isFlat: Boolean // 是否平铺数据字段 +) : Parcelable \ No newline at end of file diff --git a/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubUtils.kt b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubUtils.kt index a86331aafd..bba448ea39 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubUtils.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubUtils.kt @@ -32,10 +32,16 @@ object LoghubUtils { } @JvmStatic - fun log(logJson: JSONObject, logStore: String, forcedUpload: Boolean) { + @JvmOverloads + fun log(logJson: JSONObject, logStore: String, forcedUpload: Boolean, isFlat: Boolean = false) { loghubEventExecutor?.execute { try { - val event = LoghubEvent(time = (System.currentTimeMillis() / 1000L).toString(), content = logJson.toString(), logStore = logStore) + val event = LoghubEvent( + time = (System.currentTimeMillis() / 1000L).toString(), + content = logJson.toString(), + logStore = logStore, + isFlat = isFlat + ) loghubEventSet.add(event) loghubEventDao.insert(event) } catch (e: Exception) { @@ -49,10 +55,16 @@ object LoghubUtils { } @JvmStatic - fun log(jsonString: String, logStore: String, forcedUpload: Boolean) { + @JvmOverloads + fun log(jsonString: String, logStore: String, forcedUpload: Boolean, isFlat: Boolean = false) { loghubEventExecutor?.execute { try { - val event = LoghubEvent(time = (System.currentTimeMillis() / 1000L).toString(), content = jsonString, logStore = logStore) + val event = LoghubEvent( + time = (System.currentTimeMillis() / 1000L).toString(), + content = jsonString, + logStore = logStore, + isFlat = isFlat + ) loghubEventSet.add(event) loghubEventDao.insert(event) } catch (e: Exception) { @@ -91,8 +103,18 @@ object LoghubUtils { log.putContent(key, contentJson.get(key).toString()) } } else { - log.putContent("current time ", event.time) - log.putContent("content", event.content) + // isFlat为true代表仍需要平铺数据 + if (event.isFlat) { + val contentJson = JSONObject(event.content) + for (key in contentJson.keys()) { + log.putContent(key, contentJson.get(key).toString()) + } + // 新数据使用timestamp字段记录时间 + log.putContent("timestamp", event.time) + } else { + log.putContent("current time", event.time) + log.putContent("content", event.content) + } } LoghubHelper.uploadLog(log, event.logStore) From 83199b6a4e64a35b49e72319f7863f48bb94c6ac Mon Sep 17 00:00:00 2001 From: leafwai Date: Thu, 7 Jul 2022 14:00:26 +0800 Subject: [PATCH 03/26] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=AE=B1=E9=A1=B5=E9=9D=A2=E5=9B=9E=E5=88=B0=E5=89=8D=E5=8F=B0?= =?UTF-8?q?=E6=97=B6=E5=87=BA=E7=8E=B0=E7=A9=BA=E7=99=BD=E7=9A=84=E6=9C=80?= =?UTF-8?q?=E8=BF=91=E4=BD=BF=E7=94=A8=E5=88=97=E8=A1=A8=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gamecenter/entity/ToolBoxBlockEntity.kt | 4 ++- .../gamecenter/toolbox/ToolBoxBlockAdapter.kt | 32 +++++++++---------- .../gamecenter/toolbox/ToolBoxItemAdapter.kt | 8 +++++ 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/entity/ToolBoxBlockEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/ToolBoxBlockEntity.kt index 076fb657a8..90cdb72c62 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/ToolBoxBlockEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/ToolBoxBlockEntity.kt @@ -12,7 +12,9 @@ data class ToolBoxBlockEntity( val categoryName: String = "", val total: Int = 0, @SerializedName("data") - var toolboxList: List = ArrayList() + var toolboxList: List = ArrayList(), + // 展开状态(本地字段) + var isExpand: Boolean = false ) : Parcelable { override fun equals(other: Any?): Boolean { if (this === other) return true diff --git a/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockAdapter.kt b/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockAdapter.kt index 8bd290dd17..54805f9d0a 100644 --- a/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockAdapter.kt @@ -54,7 +54,7 @@ class ToolBoxBlockAdapter(context: Context, private val mViewModel: ToolBoxViewM } fun setHistoryList(dataList: List) { - if (mEntityList.isEmpty()) return + if (mEntityList.isEmpty() || dataList.isEmpty()) return if (mEntityList[0].categoryName == "最近使用") { mEntityList[0].toolboxList = dataList notifyItemChanged(0) @@ -77,7 +77,6 @@ class ToolBoxBlockAdapter(context: Context, private val mViewModel: ToolBoxViewM inner class ToolBoxBlockViewHolder(val binding: ToolboxBlockItemBinding) : BaseRecyclerViewHolder(binding.root) { - private var mIsExpand = false private var mAdapter: ToolBoxItemAdapter? = null fun bindToolBoxBlock(toolBoxBlockEntity: ToolBoxBlockEntity) { @@ -85,24 +84,23 @@ class ToolBoxBlockAdapter(context: Context, private val mViewModel: ToolBoxViewM binding.divider.setBackgroundColor(R.color.divider.toColor(context)) binding.titleTv.setTextColor(R.color.text_title.toColor(context)) binding.expandTv.setTextColor(R.color.text_subtitleDesc.toColor(context)) - if (mAdapter != null) { - if (mIsExpand) - mAdapter?.setDataList(toolBoxBlockEntity.toolboxList) - else - mAdapter?.setDataList(toolBoxBlockEntity.toolboxList.take(4)) - updateExpandTv() - return - } - binding.titleTv.text = toolBoxBlockEntity.categoryName binding.expandContainer.goneIf(toolBoxBlockEntity.toolboxList.size < 5) binding.expandContainer.setOnClickListener { - mIsExpand = !mIsExpand - if (mIsExpand) + toolBoxBlockEntity.isExpand = !toolBoxBlockEntity.isExpand + if (toolBoxBlockEntity.isExpand) mAdapter?.setDataList(toolBoxBlockEntity.toolboxList) else mAdapter?.setDataList(toolBoxBlockEntity.toolboxList.take(4)) - updateExpandTv() + updateExpandTv(toolBoxBlockEntity.isExpand) + } + if (mAdapter != null) { + if (toolBoxBlockEntity.isExpand) + mAdapter?.setDataList(toolBoxBlockEntity.toolboxList) + else + mAdapter?.setDataList(toolBoxBlockEntity.toolboxList.take(4)) + updateExpandTv(toolBoxBlockEntity.isExpand) + return } mAdapter = ToolBoxItemAdapter(context, true, mViewModel) mAdapter?.setDataList(toolBoxBlockEntity.toolboxList.take(4)) @@ -110,12 +108,12 @@ class ToolBoxBlockAdapter(context: Context, private val mViewModel: ToolBoxViewM binding.toolboxRv.adapter = mAdapter } - private fun updateExpandTv() { - binding.expandTv.text = if (mIsExpand) "收起" else "展开全部" + private fun updateExpandTv(isExpend: Boolean) { + binding.expandTv.text = if (isExpend) "收起" else "展开全部" binding.expandIv.run { pivotX = width / 2F pivotY = height / 2F - rotation = if (mIsExpand) 180F else 0F + rotation = if (isExpend) 180F else 0F } } } diff --git a/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxItemAdapter.kt b/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxItemAdapter.kt index b7603ab6c7..6564151b8a 100644 --- a/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxItemAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxItemAdapter.kt @@ -11,6 +11,7 @@ import com.gh.gamecenter.WebActivity.Companion.getWebByCollectionTools import com.gh.gamecenter.baselist.ListExecutor import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.common.utils.ImageUtils.display +import com.gh.gamecenter.common.utils.NightModeUtils import com.gh.gamecenter.common.utils.goneIf import com.gh.gamecenter.common.utils.safelyGetInRelease import com.gh.gamecenter.common.utils.toColor @@ -22,8 +23,15 @@ class ToolBoxItemAdapter(context: Context, private val isBlockInside: Boolean = BaseRecyclerAdapter(context) { private var mEntityList: List = arrayListOf() + private var mNightMode = NightModeUtils.isNightMode(context) fun setDataList(dataList: List, isSearch: Boolean = false) { + if (mNightMode != NightModeUtils.isNightMode(mContext)) { + mEntityList = dataList + notifyItemRangeChanged(0, itemCount) + mNightMode = NightModeUtils.isNightMode(mContext) + return + } if (mEntityList == dataList) { notifyItemRangeChanged(0, itemCount) return From 78d5d4b39fce3b5eb698128971178da48ff5390d Mon Sep 17 00:00:00 2001 From: lyr Date: Thu, 7 Jul 2022 14:09:20 +0800 Subject: [PATCH 04/26] =?UTF-8?q?feat:=E5=8D=87=E7=BA=A7Loghub=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/gamecenter/common/loghub/LoghubDatabase.kt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubDatabase.kt b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubDatabase.kt index 6974bd69c2..210821d835 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubDatabase.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubDatabase.kt @@ -4,16 +4,24 @@ import android.content.Context import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase +import androidx.room.migration.Migration +import androidx.sqlite.db.SupportSQLiteDatabase -@Database(entities = [LoghubEvent::class], version = 1, exportSchema = false) +@Database(entities = [LoghubEvent::class], version = 2, exportSchema = false) abstract class LoghubDatabase : RoomDatabase() { companion object { private const val DATABASE = "gh_loghub_database" + private val MIGRATION_1_2: Migration = object : Migration(1, 2) { + override fun migrate(database: SupportSQLiteDatabase) { + database.execSQL("Alter TABLE loghubEvent add isFlat INTEGER NOT NULL") + } + } + fun buildDatabase(context: Context): LoghubDatabase { return Room.databaseBuilder(context, LoghubDatabase::class.java, DATABASE) - .fallbackToDestructiveMigration() - .build() + .addMigrations(MIGRATION_1_2) + .build() } } From 923bdc1639b024c97fefda039378090b7d5fbf41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= Date: Thu, 7 Jul 2022 15:18:22 +0800 Subject: [PATCH 05/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9B=A0?= =?UTF-8?q?=E6=B7=B7=E6=B7=86=E5=90=8E=E5=AF=BC=E8=87=B4=E7=9A=84=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E8=BD=AC=E6=8D=A2=E9=94=99=E8=AF=AF=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/common/util/DownloadItemUtils.kt | 2 +- .../gamedetail/dialog/GamePermissionDialogFragment.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt index 338c41317e..abc72400e3 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt @@ -511,7 +511,7 @@ object DownloadItemUtils { allStateClickCallback: EmptyCallback? ) { val gamePermissionDialogFragment = (context as AppCompatActivity).supportFragmentManager.findFragmentByTag( - GamePermissionDialogFragment::class.java.simpleName + GamePermissionDialogFragment::class.java.name ) as GamePermissionDialogFragment? gamePermissionDialogFragment?.dismissAllowingStateLoss() if (SPUtils.getBoolean(Constants.SP_TEENAGER_MODE)) { diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionDialogFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionDialogFragment.kt index c83bc32a51..28ca4c5c49 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionDialogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionDialogFragment.kt @@ -88,7 +88,7 @@ class GamePermissionDialogFragment : BaseDialogFragment() { putParcelable(KEY_GAME, game) putParcelable(KEY_GAME_INFO, gameInfo) } - }.show(activity.supportFragmentManager, GamePermissionDialogFragment::class.java.simpleName) + }.show(activity.supportFragmentManager, GamePermissionDialogFragment::class.java.name) } else { callBack.onConfirm() } From ff876a55ba4cbdead57d18d2f88f18b02b76d471 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= Date: Thu, 7 Jul 2022 16:22:09 +0800 Subject: [PATCH 06/26] =?UTF-8?q?fix:=20=E5=85=A8=E5=B1=80=E6=9B=BF?= =?UTF-8?q?=E6=8D=A2fragment=E7=9A=84tag=E4=B8=BAxx.class.java.name?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/common/databind/BindingAdapters.java | 19 +++++++++---------- .../dialog/ApplyModeratorDialogFragment.kt | 2 +- .../dialog/InstallPermissionDialogFragment.kt | 4 ++-- .../dialog/PackageCheckDialogFragment.kt | 4 ++-- .../dialog/PrivacyPolicyDialogFragment.kt | 4 ++-- .../java/com/gh/gamecenter/SearchActivity.kt | 14 +++++++------- .../adapter/viewholder/DetailViewHolder.java | 2 +- .../com/gh/gamecenter/amway/AmwayActivity.kt | 4 ++-- .../amway/search/AmwaySearchActivity.kt | 8 ++++---- .../gh/gamecenter/catalog/CatalogFragment.kt | 16 ++++++++-------- .../category2/CategoryV2Fragment.kt | 16 ++++++++-------- .../forum/detail/ForumDetailActivity.kt | 4 ++-- .../forum/search/ForumOrUserSearchActivity.kt | 12 ++++++------ .../detail/ColumnCollectionDetailFragment.kt | 4 ++-- .../ChooseGameCollectionActivityDialog.kt | 4 ++-- .../publish/GameCollectionEditActivity.kt | 4 ++-- .../square/GameCollectionSquareActivity.kt | 4 ++-- .../gamedetail/rating/RatingReplyActivity.kt | 2 +- .../help/QaFeedbackDialogFragment.kt | 4 ++-- .../home/skip/PackageSkipActivity.kt | 4 ++-- .../background/BackgroundPreviewActivity.kt | 4 ++-- .../border/AvatarBorderActivity.kt | 4 ++-- .../home/game/UserGameFragment.kt | 12 ++++++------ .../gamecenter/qa/comment/CommentActivity.kt | 4 ++-- .../qa/dialog/ChooseActivityDialogFragment.kt | 4 ++-- .../qa/dialog/ChooseForumActivity.kt | 4 ++-- .../qa/editor/PreviewVideoActivity.kt | 4 ++-- .../video/detail/ForumVideoDetailActivity.kt | 4 ++-- .../servers/GameServersPublishFragment.kt | 4 ++-- .../gh/gamecenter/subject/SubjectFragment.kt | 6 +++--- .../subject/rows/SubjectRowsFragment.kt | 4 ++-- .../teenagermode/TeenagerModeActivity.kt | 4 ++-- .../teenagermode/TeenagerModeFragment.kt | 8 ++++---- .../video/data/VideoDataActivity.kt | 4 ++-- .../video/detail/VideoDetailActivity.kt | 4 ++-- .../video/poster/PosterClipActivity.kt | 4 ++-- .../com/zhihu/matisse/ui/MatisseActivity.java | 17 ++++++++--------- 37 files changed, 114 insertions(+), 116 deletions(-) diff --git a/app/src/main/java/com/gh/common/databind/BindingAdapters.java b/app/src/main/java/com/gh/common/databind/BindingAdapters.java index b162c974ea..a306ceecd8 100644 --- a/app/src/main/java/com/gh/common/databind/BindingAdapters.java +++ b/app/src/main/java/com/gh/common/databind/BindingAdapters.java @@ -19,7 +19,6 @@ import androidx.core.content.ContextCompat; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.gamecenter.common.callback.OnViewClickListener; import com.gh.common.constant.Config; import com.gh.common.dialog.CertificationDialog; import com.gh.common.dialog.PackageCheckDialogFragment; @@ -29,26 +28,18 @@ import com.gh.common.repository.ReservationRepository; import com.gh.common.simulator.SimulatorDownloadManager; import com.gh.common.simulator.SimulatorGameManager; import com.gh.common.util.CheckLoginUtils; -import com.gh.common.util.DataUtils; import com.gh.common.util.DialogUtils; -import com.gh.gamecenter.common.utils.ExtensionsKt; -import com.gh.gamecenter.common.utils.NightModeUtils; -import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.common.util.DownloadDialogHelper; import com.gh.common.util.GameUtils; import com.gh.common.util.GameViewUtils; -import com.gh.gamecenter.common.utils.ImageUtils; import com.gh.common.util.LogUtils; -import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.common.util.NewsUtils; -import com.gh.gamecenter.core.utils.NumberUtils; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; import com.gh.common.util.PlatformUtils; import com.gh.common.util.RealNameHelper; import com.gh.common.util.ReservationHelper; import com.gh.common.view.DownloadProgressBar; -import com.gh.gamecenter.common.view.DrawableView; import com.gh.common.view.GameIconView; import com.gh.download.DownloadManager; import com.gh.download.dialog.DownloadDialog; @@ -57,6 +48,14 @@ import com.gh.gamecenter.DownloadManagerActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.WebActivity; import com.gh.gamecenter.baselist.LoadStatus; +import com.gh.gamecenter.common.callback.OnViewClickListener; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.common.utils.NightModeUtils; +import com.gh.gamecenter.common.view.DrawableView; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.NumberUtils; import com.gh.gamecenter.databinding.KaifuDetailItemRowBinding; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; @@ -595,7 +594,7 @@ public class BindingAdapters { */ private static void restoreDialogFragment(DownloadProgressBar progressBar) { GamePermissionDialogFragment gamePermissionDialogFragment = - ((GamePermissionDialogFragment) ((AppCompatActivity) progressBar.getContext()).getSupportFragmentManager().findFragmentByTag(GamePermissionDialogFragment.class.getSimpleName())); + ((GamePermissionDialogFragment) ((AppCompatActivity) progressBar.getContext()).getSupportFragmentManager().findFragmentByTag(GamePermissionDialogFragment.class.getName())); if (gamePermissionDialogFragment != null) { gamePermissionDialogFragment.dismissAllowingStateLoss(); } diff --git a/app/src/main/java/com/gh/common/dialog/ApplyModeratorDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/ApplyModeratorDialogFragment.kt index 9b727e790e..51281c5b22 100644 --- a/app/src/main/java/com/gh/common/dialog/ApplyModeratorDialogFragment.kt +++ b/app/src/main/java/com/gh/common/dialog/ApplyModeratorDialogFragment.kt @@ -87,7 +87,7 @@ class ApplyModeratorDialogFragment : BaseDialogFragment() { } }.show( activity.supportFragmentManager, - ApplyModeratorDialogFragment::class.java.simpleName + ApplyModeratorDialogFragment::class.java.name ) } } diff --git a/app/src/main/java/com/gh/common/dialog/InstallPermissionDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/InstallPermissionDialogFragment.kt index 5e3369eaba..5baf903885 100644 --- a/app/src/main/java/com/gh/common/dialog/InstallPermissionDialogFragment.kt +++ b/app/src/main/java/com/gh/common/dialog/InstallPermissionDialogFragment.kt @@ -114,7 +114,7 @@ class InstallPermissionDialogFragment : BaseDialogFragment() { return } } - var installPermissionDialogFragment = activity.supportFragmentManager.findFragmentByTag(InstallPermissionDialogFragment::class.java.simpleName) as? InstallPermissionDialogFragment + var installPermissionDialogFragment = activity.supportFragmentManager.findFragmentByTag(InstallPermissionDialogFragment::class.java.name) as? InstallPermissionDialogFragment if (installPermissionDialogFragment != null) { installPermissionDialogFragment.mCallBack = callBack installPermissionDialogFragment.isXapk = isXapk @@ -128,7 +128,7 @@ class InstallPermissionDialogFragment : BaseDialogFragment() { this.isXapk = isXapk this.url = downloadEntity.url } - installPermissionDialogFragment.show(activity.supportFragmentManager, InstallPermissionDialogFragment::class.java.simpleName) + installPermissionDialogFragment.show(activity.supportFragmentManager, InstallPermissionDialogFragment::class.java.name) } } } diff --git a/app/src/main/java/com/gh/common/dialog/PackageCheckDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/PackageCheckDialogFragment.kt index 1da047ca1c..73b58f9a47 100644 --- a/app/src/main/java/com/gh/common/dialog/PackageCheckDialogFragment.kt +++ b/app/src/main/java/com/gh/common/dialog/PackageCheckDialogFragment.kt @@ -350,12 +350,12 @@ class PackageCheckDialogFragment : BaseDialogFragment() { if (!activity.lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)) return var dialogFragment = - activity.supportFragmentManager.findFragmentByTag(PackageCheckDialogFragment::class.java.simpleName) as? PackageCheckDialogFragment + activity.supportFragmentManager.findFragmentByTag(PackageCheckDialogFragment::class.java.name) as? PackageCheckDialogFragment if (dialogFragment == null) { dialogFragment = PackageCheckDialogFragment() dialogFragment.gameEntity = gameEntity dialogFragment.callBack = callBack - dialogFragment.show(activity.supportFragmentManager, PackageCheckDialogFragment::class.java.simpleName) + dialogFragment.show(activity.supportFragmentManager, PackageCheckDialogFragment::class.java.name) } else { dialogFragment.gameEntity = gameEntity dialogFragment.callBack = callBack diff --git a/app/src/main/java/com/gh/common/dialog/PrivacyPolicyDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/PrivacyPolicyDialogFragment.kt index 1ec238cb47..0c637fd122 100644 --- a/app/src/main/java/com/gh/common/dialog/PrivacyPolicyDialogFragment.kt +++ b/app/src/main/java/com/gh/common/dialog/PrivacyPolicyDialogFragment.kt @@ -167,7 +167,7 @@ class PrivacyPolicyDialogFragment : BaseDialogFragment() { fun show(activity: FragmentActivity, privacyPolicyEntity: DialogEntity.PrivacyPolicyEntity? = null, callBack: ((isSuccess: Boolean) -> Unit)?) { - var privacyDialogFragment = activity.supportFragmentManager.findFragmentByTag(PrivacyPolicyDialogFragment::class.java.simpleName) as? PrivacyPolicyDialogFragment + var privacyDialogFragment = activity.supportFragmentManager.findFragmentByTag(PrivacyPolicyDialogFragment::class.java.name) as? PrivacyPolicyDialogFragment if (privacyDialogFragment != null) { privacyDialogFragment.mCallBack = callBack val transaction: FragmentTransaction = activity.supportFragmentManager.beginTransaction() @@ -183,7 +183,7 @@ class PrivacyPolicyDialogFragment : BaseDialogFragment() { } privacyDialogFragment.show( activity.supportFragmentManager, - PrivacyPolicyDialogFragment::class.java.simpleName + PrivacyPolicyDialogFragment::class.java.name ) } } diff --git a/app/src/main/java/com/gh/gamecenter/SearchActivity.kt b/app/src/main/java/com/gh/gamecenter/SearchActivity.kt index 132bdaa258..5c5c2b1ec2 100644 --- a/app/src/main/java/com/gh/gamecenter/SearchActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/SearchActivity.kt @@ -213,23 +213,23 @@ open class SearchActivity : BaseActivity() { val transaction = supportFragmentManager.beginTransaction() when (type) { DEFAULT -> { - val fragment = supportFragmentManager.findFragmentByTag(SearchDefaultFragment::class.java.simpleName) + val fragment = supportFragmentManager.findFragmentByTag(SearchDefaultFragment::class.java.name) ?: SearchDefaultFragment() - transaction.replace(R.id.search_result, fragment, SearchDefaultFragment::class.java.simpleName) + transaction.replace(R.id.search_result, fragment, SearchDefaultFragment::class.java.name) } GAME_DIGEST -> { val digestListFragment = - supportFragmentManager.findFragmentByTag(SearchGameIndexFragment::class.java.simpleName) as? SearchGameIndexFragment + supportFragmentManager.findFragmentByTag(SearchGameIndexFragment::class.java.name) as? SearchGameIndexFragment ?: SearchGameIndexFragment() digestListFragment.setParams(mSearchKey ?: "", mSearchType.value) - transaction.replace(R.id.search_result, digestListFragment, SearchGameIndexFragment::class.java.simpleName) + transaction.replace(R.id.search_result, digestListFragment, SearchGameIndexFragment::class.java.name) } GAME_DETAIL -> { val detailListFragment = - supportFragmentManager.findFragmentByTag(SearchGameResultFragment::class.java.simpleName) as? SearchGameResultFragment + supportFragmentManager.findFragmentByTag(SearchGameResultFragment::class.java.name) as? SearchGameResultFragment ?: SearchGameResultFragment() detailListFragment.setParams(mSearchKey ?: "", mSearchType.value) - transaction.replace(R.id.search_result, detailListFragment, SearchGameResultFragment::class.java.simpleName) + transaction.replace(R.id.search_result, detailListFragment, SearchGameResultFragment::class.java.name) } } mDisplayType = type @@ -256,7 +256,7 @@ open class SearchActivity : BaseActivity() { } override fun handleBackPressed(): Boolean { - val fragment = supportFragmentManager.findFragmentByTag(SearchDefaultFragment::class.java.simpleName) + val fragment = supportFragmentManager.findFragmentByTag(SearchDefaultFragment::class.java.name) if (fragment == null) { updateDisplayType(DEFAULT) return true diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java index 69c81c68d2..3eca397f7b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java @@ -96,7 +96,7 @@ public class DetailViewHolder { private void restoreDialogFragment() { DialogFragment gamePermissionDialogFragment = - (DialogFragment) ((AppCompatActivity) context).getSupportFragmentManager().findFragmentByTag(GamePermissionDialogFragment.class.getSimpleName()); + (DialogFragment) ((AppCompatActivity) context).getSupportFragmentManager().findFragmentByTag(GamePermissionDialogFragment.class.getName()); if (gamePermissionDialogFragment != null) { gamePermissionDialogFragment.dismissAllowingStateLoss(); } diff --git a/app/src/main/java/com/gh/gamecenter/amway/AmwayActivity.kt b/app/src/main/java/com/gh/gamecenter/amway/AmwayActivity.kt index 28e5b63ea6..39471cd4bb 100644 --- a/app/src/main/java/com/gh/gamecenter/amway/AmwayActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/amway/AmwayActivity.kt @@ -19,10 +19,10 @@ class AmwayActivity : BaseActivity() { DisplayUtils.transparentStatusBar(this) - val containerFragment = supportFragmentManager.findFragmentByTag(AmwayFragment::class.java.simpleName) + val containerFragment = supportFragmentManager.findFragmentByTag(AmwayFragment::class.java.name) ?: AmwayFragment().with(intent.extras) // 若 placeholder 外层为 RelativeLayout 的话,会出现莫名的偏移 - supportFragmentManager.beginTransaction().replace(R.id.placeholder, containerFragment, AmwayFragment::class.java.simpleName).commitAllowingStateLoss() + supportFragmentManager.beginTransaction().replace(R.id.placeholder, containerFragment, AmwayFragment::class.java.name).commitAllowingStateLoss() } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/amway/search/AmwaySearchActivity.kt b/app/src/main/java/com/gh/gamecenter/amway/search/AmwaySearchActivity.kt index 5c8a67468a..3920e26891 100644 --- a/app/src/main/java/com/gh/gamecenter/amway/search/AmwaySearchActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/amway/search/AmwaySearchActivity.kt @@ -62,14 +62,14 @@ class AmwaySearchActivity : SearchActivity() { val transaction = supportFragmentManager.beginTransaction() when (type) { DisplayType.DEFAULT -> { - val fragment = supportFragmentManager.findFragmentByTag(SearchDefaultFragment::class.java.simpleName) + val fragment = supportFragmentManager.findFragmentByTag(SearchDefaultFragment::class.java.name) ?: AmwaySearchDefaultFragment() - transaction.replace(R.id.search_result, fragment, SearchDefaultFragment::class.java.simpleName) + transaction.replace(R.id.search_result, fragment, SearchDefaultFragment::class.java.name) } else -> { - val fragment = supportFragmentManager.findFragmentByTag(AmwaySearchListFragment::class.java.simpleName) + val fragment = supportFragmentManager.findFragmentByTag(AmwaySearchListFragment::class.java.name) ?: AmwaySearchListFragment() - transaction.replace(R.id.search_result, fragment, AmwaySearchListFragment::class.java.simpleName) + transaction.replace(R.id.search_result, fragment, AmwaySearchListFragment::class.java.name) } } mDisplayType = type diff --git a/app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt b/app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt index 868cc22d9f..a73474add7 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt @@ -119,7 +119,7 @@ class CatalogFragment : LazyFragment() { mBinding?.rvCatalog?.adapter = CatalogAdapter(requireContext(), this@CatalogFragment, this, subCatalog) if (hasSpecial && selectedCatalogPosition == 0) { - mSpecialCatalogFragment = childFragmentManager.findFragmentByTag(SpecialCatalogFragment::class.java.simpleName) as? SpecialCatalogFragment + mSpecialCatalogFragment = childFragmentManager.findFragmentByTag(SpecialCatalogFragment::class.java.name) as? SpecialCatalogFragment ?: SpecialCatalogFragment() mSpecialCatalogFragment?.arguments = bundleOf( EntranceConsts.KEY_IS_CATEGORY_V2 to false, @@ -128,16 +128,16 @@ class CatalogFragment : LazyFragment() { EntranceConsts.KEY_EXPOSURE_SOURCE to arguments?.getParcelable( EntranceConsts.KEY_EXPOSURE_SOURCE) ) - childFragmentManager.beginTransaction().replace(R.id.container_sub_catalog, mSpecialCatalogFragment!!, SpecialCatalogFragment::class.java.simpleName).commitAllowingStateLoss() + childFragmentManager.beginTransaction().replace(R.id.container_sub_catalog, mSpecialCatalogFragment!!, SpecialCatalogFragment::class.java.name).commitAllowingStateLoss() } else { - mSubCatalogFragment = childFragmentManager.findFragmentByTag(SubCatalogFragment::class.java.simpleName) as? SubCatalogFragment + mSubCatalogFragment = childFragmentManager.findFragmentByTag(SubCatalogFragment::class.java.name) as? SubCatalogFragment ?: SubCatalogFragment() mSubCatalogFragment?.arguments = bundleOf( EntranceConsts.KEY_CATALOG_ID to id, EntranceConsts.KEY_PRIMARY_CATALOG_ID to subCatalog[selectedCatalogPosition].id, EntranceConsts.KEY_CATALOG_TITLE to mCatalogTitle ) - childFragmentManager.beginTransaction().replace(R.id.container_sub_catalog, mSubCatalogFragment!!, SubCatalogFragment::class.java.simpleName).commitAllowingStateLoss() + childFragmentManager.beginTransaction().replace(R.id.container_sub_catalog, mSubCatalogFragment!!, SubCatalogFragment::class.java.name).commitAllowingStateLoss() } } } @@ -170,7 +170,7 @@ class CatalogFragment : LazyFragment() { private fun changeToSubCatalogFragment(position: Int) { mEntity?.run { mSubCatalogFragment = - childFragmentManager.findFragmentByTag(SubCatalogFragment::class.java.simpleName) as? SubCatalogFragment + childFragmentManager.findFragmentByTag(SubCatalogFragment::class.java.name) as? SubCatalogFragment ?: SubCatalogFragment() mSubCatalogFragment?.arguments = bundleOf( EntranceConsts.KEY_CATALOG_ID to id, @@ -180,7 +180,7 @@ class CatalogFragment : LazyFragment() { childFragmentManager.beginTransaction().replace( R.id.container_sub_catalog, mSubCatalogFragment!!, - SubCatalogFragment::class.java.simpleName + SubCatalogFragment::class.java.name ).commitAllowingStateLoss() } } @@ -188,7 +188,7 @@ class CatalogFragment : LazyFragment() { private fun changeToSpecialCatalogFragment() { mEntity?.run { mSpecialCatalogFragment = - childFragmentManager.findFragmentByTag(SpecialCatalogFragment::class.java.simpleName) as? SpecialCatalogFragment + childFragmentManager.findFragmentByTag(SpecialCatalogFragment::class.java.name) as? SpecialCatalogFragment ?: SpecialCatalogFragment() mSpecialCatalogFragment?.arguments = bundleOf( EntranceConsts.KEY_IS_CATEGORY_V2 to false, @@ -201,7 +201,7 @@ class CatalogFragment : LazyFragment() { childFragmentManager.beginTransaction().replace( R.id.container_sub_catalog, mSpecialCatalogFragment!!, - SpecialCatalogFragment::class.java.simpleName + SpecialCatalogFragment::class.java.name ).commitAllowingStateLoss() } } diff --git a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt index c7cd8414e9..f8d25cbe8d 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt @@ -301,7 +301,7 @@ class CategoryV2Fragment : LazyFragment() { private fun initSpecialCatalogFragment() { mEntity?.run { mSpecialCatalogFragment = childFragmentManager - .findFragmentByTag(SpecialCatalogFragment::class.java.simpleName) + .findFragmentByTag(SpecialCatalogFragment::class.java.name) as? SpecialCatalogFragment ?: SpecialCatalogFragment() mSpecialCatalogFragment?.arguments = bundleOf( EntranceConsts.KEY_IS_CATEGORY_V2 to true, @@ -315,7 +315,7 @@ class CategoryV2Fragment : LazyFragment() { .replace( R.id.gamesContainer, mSpecialCatalogFragment!!, - SpecialCatalogFragment::class.java.simpleName + SpecialCatalogFragment::class.java.name ) .commitAllowingStateLoss() } @@ -325,7 +325,7 @@ class CategoryV2Fragment : LazyFragment() { mEntity?.run { mViewModel?.run { mCategoryV2ListFragment = childFragmentManager - .findFragmentByTag(CategoryV2ListFragment::class.java.simpleName) + .findFragmentByTag(CategoryV2ListFragment::class.java.name) as? CategoryV2ListFragment ?: CategoryV2ListFragment() mCategoryV2ListFragment?.arguments = bundleOf( EntranceConsts.KEY_CATEGORY_ID to id, @@ -339,7 +339,7 @@ class CategoryV2Fragment : LazyFragment() { .replace( R.id.gamesContainer, mCategoryV2ListFragment!!, - CategoryV2ListFragment::class.java.simpleName + CategoryV2ListFragment::class.java.name ) .commitAllowingStateLoss() } @@ -354,7 +354,7 @@ class CategoryV2Fragment : LazyFragment() { if (hasSpecial) { if (selectedCategoryPosition == 0) { mCategoryV2ListFragment = childFragmentManager - .findFragmentByTag(CategoryV2ListFragment::class.java.simpleName) + .findFragmentByTag(CategoryV2ListFragment::class.java.name) as? CategoryV2ListFragment ?: CategoryV2ListFragment() mCategoryV2ListFragment?.arguments = bundleOf( EntranceConsts.KEY_CATEGORY_ID to id, @@ -365,14 +365,14 @@ class CategoryV2Fragment : LazyFragment() { ) childFragmentManager .beginTransaction() - .replace(R.id.gamesContainer, mCategoryV2ListFragment!!, CategoryV2ListFragment::class.java.simpleName) + .replace(R.id.gamesContainer, mCategoryV2ListFragment!!, CategoryV2ListFragment::class.java.name) .commitAllowingStateLoss() } else { if (position == 0) { removeGuide() mSpecialCatalogFragment = childFragmentManager - .findFragmentByTag(SpecialCatalogFragment::class.java.simpleName) + .findFragmentByTag(SpecialCatalogFragment::class.java.name) as? SpecialCatalogFragment ?: SpecialCatalogFragment() mSpecialCatalogFragment?.arguments = bundleOf( EntranceConsts.KEY_IS_CATEGORY_V2 to true, @@ -383,7 +383,7 @@ class CategoryV2Fragment : LazyFragment() { ) childFragmentManager .beginTransaction() - .replace(R.id.gamesContainer, mSpecialCatalogFragment!!, SpecialCatalogFragment::class.java.simpleName) + .replace(R.id.gamesContainer, mSpecialCatalogFragment!!, SpecialCatalogFragment::class.java.name) .commitAllowingStateLoss() } else { if (mCategoryV2ListFragment?.isStateSaved == false) { diff --git a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailActivity.kt index 8ce4e6000e..f3a21e1eaa 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailActivity.kt @@ -23,10 +23,10 @@ class ForumDetailActivity : BaseActivity() { DisplayUtils.transparentStatusBar(this) - mContainerFragment = supportFragmentManager.findFragmentByTag(ForumDetailFragment::class.java.simpleName) + mContainerFragment = supportFragmentManager.findFragmentByTag(ForumDetailFragment::class.java.name) ?: ForumDetailFragment().with(intent.extras) // 若 placeholder 外层为 RelativeLayout 的话,会出现莫名的偏移 - supportFragmentManager.beginTransaction().replace(R.id.placeholder, mContainerFragment!!, ForumDetailFragment::class.java.simpleName).commitAllowingStateLoss() + supportFragmentManager.beginTransaction().replace(R.id.placeholder, mContainerFragment!!, ForumDetailFragment::class.java.name).commitAllowingStateLoss() } override fun getBusinessId(): Pair { diff --git a/app/src/main/java/com/gh/gamecenter/forum/search/ForumOrUserSearchActivity.kt b/app/src/main/java/com/gh/gamecenter/forum/search/ForumOrUserSearchActivity.kt index d36648242b..8a135cc0b3 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/search/ForumOrUserSearchActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/search/ForumOrUserSearchActivity.kt @@ -73,23 +73,23 @@ class ForumOrUserSearchActivity : SearchActivity() { val transaction = supportFragmentManager.beginTransaction() when (type) { DisplayType.DEFAULT -> { - val fragment = supportFragmentManager.findFragmentByTag(SearchDefaultFragment::class.java.simpleName) + val fragment = supportFragmentManager.findFragmentByTag(SearchDefaultFragment::class.java.name) ?: ForumOrUserSearchDefaultFragment() fragment.arguments = intent.extras - transaction.replace(R.id.search_result, fragment, SearchDefaultFragment::class.java.simpleName) + transaction.replace(R.id.search_result, fragment, SearchDefaultFragment::class.java.name) } else -> { if (mEntrance == "论坛首页") { - val fragment = supportFragmentManager.findFragmentByTag(ForumOrUserSearchFragment::class.java.simpleName) as? ForumOrUserSearchFragment + val fragment = supportFragmentManager.findFragmentByTag(ForumOrUserSearchFragment::class.java.name) as? ForumOrUserSearchFragment ?: ForumOrUserSearchFragment() fragment.setSearchKey(mSearchKey ?: "") - transaction.replace(R.id.search_result, fragment, ForumOrUserSearchFragment::class.java.simpleName) + transaction.replace(R.id.search_result, fragment, ForumOrUserSearchFragment::class.java.name) } else { - val fragment = supportFragmentManager.findFragmentByTag(ForumContentSearchListFragment::class.java.simpleName) as? ForumContentSearchListFragment + val fragment = supportFragmentManager.findFragmentByTag(ForumContentSearchListFragment::class.java.name) as? ForumContentSearchListFragment ?: ForumContentSearchListFragment() fragment.setSearchKey(mSearchKey ?: "") fragment.arguments = intent.extras - transaction.replace(R.id.search_result, fragment, ForumContentSearchListFragment::class.java.simpleName) + transaction.replace(R.id.search_result, fragment, ForumContentSearchListFragment::class.java.name) } } } diff --git a/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailFragment.kt index 5010aabfb1..ac9c75fa16 100644 --- a/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailFragment.kt @@ -94,7 +94,7 @@ class ColumnCollectionDetailFragment : LazyListFragment { mGamesCollectionFragment = - childFragmentManager.findFragmentByTag(UserPlayedGameFragment::class.java.simpleName) as? GamesCollectionFragment + childFragmentManager.findFragmentByTag(UserPlayedGameFragment::class.java.name) as? GamesCollectionFragment ?: GamesCollectionFragment() mGamesCollectionFragment?.arguments = bundleOf(KEY_USER_ID to mUserId, KEY_TYPE to GamesCollectionFragment.TYPE_USER) childFragmentManager.beginTransaction() - .replace(R.id.contentContainer, mGamesCollectionFragment!!, GamesCollectionFragment::class.java.simpleName) + .replace(R.id.contentContainer, mGamesCollectionFragment!!, GamesCollectionFragment::class.java.name) .commitAllowingStateLoss() } TYPE_PLAYED_GAME -> { - mPlayedGameFragment = childFragmentManager.findFragmentByTag(UserPlayedGameFragment::class.java.simpleName) as? UserPlayedGameFragment + mPlayedGameFragment = childFragmentManager.findFragmentByTag(UserPlayedGameFragment::class.java.name) as? UserPlayedGameFragment ?: UserPlayedGameFragment() mPlayedGameFragment?.arguments = bundleOf(KEY_USER_ID to mUserId) childFragmentManager.beginTransaction() - .replace(R.id.contentContainer, mPlayedGameFragment!!, UserPlayedGameFragment::class.java.simpleName).commitAllowingStateLoss() + .replace(R.id.contentContainer, mPlayedGameFragment!!, UserPlayedGameFragment::class.java.name).commitAllowingStateLoss() } else -> { mCommentFragment = - childFragmentManager.findFragmentByTag(UserCommentHistoryFragment::class.java.simpleName) as? UserCommentHistoryFragment + childFragmentManager.findFragmentByTag(UserCommentHistoryFragment::class.java.name) as? UserCommentHistoryFragment ?: UserCommentHistoryFragment() mCommentFragment?.arguments = bundleOf(KEY_USER_ID to mUserId) childFragmentManager.beginTransaction() - .replace(R.id.contentContainer, mCommentFragment!!, UserCommentHistoryFragment::class.java.simpleName).commitAllowingStateLoss() + .replace(R.id.contentContainer, mCommentFragment!!, UserCommentHistoryFragment::class.java.name).commitAllowingStateLoss() } } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/CommentActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/CommentActivity.kt index 1eb3a5421d..b2c87f3ffb 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/CommentActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/CommentActivity.kt @@ -64,7 +64,7 @@ class CommentActivity : BaseActivity() { setResult(Activity.RESULT_OK, resultIntent) } } - var commentFragment = supportFragmentManager.findFragmentByTag(NewCommentFragment::class.java.simpleName) + var commentFragment = supportFragmentManager.findFragmentByTag(NewCommentFragment::class.java.name) if (commentFragment != null) { if (commentFragment is NewCommentFragment) { commentFragment.setCommentListener(commentCallback) @@ -139,7 +139,7 @@ class CommentActivity : BaseActivity() { } supportFragmentManager.beginTransaction() - .replace(R.id.answerCommentPlaceholderView, commentFragment!!, NewCommentFragment::class.java.simpleName).commitNowAllowingStateLoss() + .replace(R.id.answerCommentPlaceholderView, commentFragment!!, NewCommentFragment::class.java.name).commitNowAllowingStateLoss() mBinding.maskView.alpha = 0f if (!isStairsComment) { diff --git a/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseActivityDialogFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseActivityDialogFragment.kt index 9e3508a024..5f3f26859b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseActivityDialogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseActivityDialogFragment.kt @@ -32,10 +32,10 @@ class ChooseActivityDialogFragment : BaseDialogFragment() { super.onViewCreated(view, savedInstanceState) mLastSelectActivityId = requireArguments().getString(TAG_ACTIVITY_ID) ?: "" val beginTransaction = childFragmentManager.beginTransaction() - val fragment = childFragmentManager.findFragmentByTag(VideoLabelFragment::class.java.simpleName) as? VideoLabelFragment + val fragment = childFragmentManager.findFragmentByTag(VideoLabelFragment::class.java.name) as? VideoLabelFragment ?: VideoLabelFragment() fragment.arguments = arguments - beginTransaction.replace(binding.container.id, fragment, VideoLabelFragment::class.java.simpleName) + beginTransaction.replace(binding.container.id, fragment, VideoLabelFragment::class.java.name) beginTransaction.commitAllowingStateLoss() binding.confirmTv.setOnClickListener { val activityLabelEntity = fragment.getSelectedActivity() diff --git a/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumActivity.kt index 1666f5587f..500c972a26 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumActivity.kt @@ -91,12 +91,12 @@ class ChooseForumActivity : BaseActivity() { if (mSearchResultFragment == null || mSearchResultFragment?.isAdded == false) { val beginTransaction = supportFragmentManager.beginTransaction() mSearchResultFragment = - supportFragmentManager.findFragmentByTag(ChooseForumContainerFragment::class.java.simpleName) as? ChooseForumContainerFragment + supportFragmentManager.findFragmentByTag(ChooseForumContainerFragment::class.java.name) as? ChooseForumContainerFragment ?: ChooseForumContainerFragment.getInstance(ChooseForumContainerFragment.ChooseForumType.SEARCH) as ChooseForumContainerFragment beginTransaction.replace( binding.searchResultContainer.id, mSearchResultFragment!!, - ChooseForumContainerFragment::class.java.simpleName + ChooseForumContainerFragment::class.java.name ) beginTransaction.commitAllowingStateLoss() } diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoActivity.kt index ad48b6f33c..d776c7e3f2 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoActivity.kt @@ -18,10 +18,10 @@ class PreviewVideoActivity : BaseActivity() { super.onCreate(savedInstanceState) DisplayUtils.transparentStatusBar(this) - val containerFragment = supportFragmentManager.findFragmentByTag(PreviewVideoFragment::class.java.simpleName) + val containerFragment = supportFragmentManager.findFragmentByTag(PreviewVideoFragment::class.java.name) ?: PreviewVideoFragment().with(intent.extras) // 若 placeholder 外层为 RelativeLayout 的话,会出现莫名的偏移 - supportFragmentManager.beginTransaction().replace(R.id.placeholder, containerFragment, PreviewVideoFragment::class.java.simpleName).commitAllowingStateLoss() + supportFragmentManager.beginTransaction().replace(R.id.placeholder, containerFragment, PreviewVideoFragment::class.java.name).commitAllowingStateLoss() } companion object { diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailActivity.kt index 97b56f9d10..521b6d8851 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailActivity.kt @@ -22,10 +22,10 @@ class ForumVideoDetailActivity : BaseActivity() { super.onCreate(savedInstanceState) DisplayUtils.transparentStatusBar(this) - containerFragment = supportFragmentManager.findFragmentByTag(ForumVideoDetailFragment::class.java.simpleName) + containerFragment = supportFragmentManager.findFragmentByTag(ForumVideoDetailFragment::class.java.name) ?: ForumVideoDetailFragment().with(intent.extras) // 若 placeholder 外层为 RelativeLayout 的话,会出现莫名的偏移 - supportFragmentManager.beginTransaction().replace(R.id.placeholder, containerFragment!!, ForumVideoDetailFragment::class.java.simpleName) + supportFragmentManager.beginTransaction().replace(R.id.placeholder, containerFragment!!, ForumVideoDetailFragment::class.java.name) .commitAllowingStateLoss() } diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersPublishFragment.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersPublishFragment.kt index c6155ad934..f301144103 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersPublishFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersPublishFragment.kt @@ -69,10 +69,10 @@ class GameServersPublishFragment : LazyFragment() { val bundle = arguments bundle?.putString(EntranceConsts.KEY_TYPE, "开服") - mContentFragment = childFragmentManager.findFragmentByTag(GameServersContentFragment::class.java.simpleName) as? GameServersContentFragment + mContentFragment = childFragmentManager.findFragmentByTag(GameServersContentFragment::class.java.name) as? GameServersContentFragment ?: GameServersContentFragment() mContentFragment.arguments = bundle - childFragmentManager.beginTransaction().replace(R.id.layout_fragment_content, mContentFragment, GameServersContentFragment::class.java.simpleName).commitAllowingStateLoss() + childFragmentManager.beginTransaction().replace(R.id.layout_fragment_content, mContentFragment, GameServersContentFragment::class.java.name).commitAllowingStateLoss() loadServerFilterTag() } diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.kt b/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.kt index bc9ee8a423..c8539d0f55 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.kt @@ -70,17 +70,17 @@ class SubjectFragment : LazyFragment() { val tag: String val fragment: Fragment = when { "tile" == entity.typeEntity.layout -> { - tag = SubjectTileFragment::class.java.simpleName + tag = SubjectTileFragment::class.java.name childFragmentManager.findFragmentByTag(tag) ?: SubjectTileFragment() } "rows" == entity.typeEntity.layout -> { - tag = SubjectRowsFragment::class.java.simpleName + tag = SubjectRowsFragment::class.java.name childFragmentManager.findFragmentByTag(tag) ?: SubjectRowsFragment() } else -> { - tag = SubjectTabFragment::class.java.simpleName + tag = SubjectTabFragment::class.java.name childFragmentManager.findFragmentByTag(tag) ?: SubjectTabFragment() } diff --git a/app/src/main/java/com/gh/gamecenter/subject/rows/SubjectRowsFragment.kt b/app/src/main/java/com/gh/gamecenter/subject/rows/SubjectRowsFragment.kt index 0f46ae0eb1..dbbd4c0525 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/rows/SubjectRowsFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/rows/SubjectRowsFragment.kt @@ -52,10 +52,10 @@ class SubjectRowsFragment : BaseFragment() { createLabelsLayout() createFilterLayout() - mListFragment = childFragmentManager.findFragmentByTag(SubjectListFragment::class.java.simpleName) as? SubjectListFragment + mListFragment = childFragmentManager.findFragmentByTag(SubjectListFragment::class.java.name) as? SubjectListFragment ?: SubjectListFragment() mListFragment.arguments = arguments - childFragmentManager.beginTransaction().replace(R.id.rows_list_container, mListFragment, SubjectListFragment::class.java.simpleName) + childFragmentManager.beginTransaction().replace(R.id.rows_list_container, mListFragment, SubjectListFragment::class.java.name) .commitAllowingStateLoss() } diff --git a/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeActivity.kt b/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeActivity.kt index c145469c4b..1085aa7d89 100644 --- a/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeActivity.kt @@ -17,10 +17,10 @@ class TeenagerModeActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) updateStatusBarColor(R.color.background_white, R.color.background_white) - mContainerFragment = supportFragmentManager.findFragmentByTag(TeenagerModeFragment::class.java.simpleName) + mContainerFragment = supportFragmentManager.findFragmentByTag(TeenagerModeFragment::class.java.name) ?: TeenagerModeFragment().with(intent.extras) if (mContainerFragment?.isAdded == false) { - supportFragmentManager.beginTransaction().replace(R.id.placeholder, mContainerFragment!!, TeenagerModeFragment::class.java.simpleName).commitAllowingStateLoss() + supportFragmentManager.beginTransaction().replace(R.id.placeholder, mContainerFragment!!, TeenagerModeFragment::class.java.name).commitAllowingStateLoss() } } diff --git a/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeFragment.kt b/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeFragment.kt index 1f6cb18b27..547881c09d 100644 --- a/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeFragment.kt @@ -38,11 +38,11 @@ class TeenagerModeFragment : ToolbarFragment() { mBinding?.include?.normalToolbar?.setBackgroundColor(Color.TRANSPARENT) mBinding?.switchTv?.setOnClickListener { if (!ClickUtils.isFastDoubleClick(R.id.switchTv)) { - val mContainerFragment = requireActivity().supportFragmentManager.findFragmentByTag(PasswordSettingFragment::class.java.simpleName) + val mContainerFragment = requireActivity().supportFragmentManager.findFragmentByTag(PasswordSettingFragment::class.java.name) ?: PasswordSettingFragment().with(bundle) requireActivity().supportFragmentManager.beginTransaction().run { addToBackStack(null) - add(R.id.placeholder, mContainerFragment!!, PasswordSettingFragment::class.java.simpleName).commitAllowingStateLoss() + add(R.id.placeholder, mContainerFragment!!, PasswordSettingFragment::class.java.name).commitAllowingStateLoss() } } } @@ -72,11 +72,11 @@ class TeenagerModeFragment : ToolbarFragment() { mBinding?.switchTv?.layoutParams = (mBinding?.switchTv?.layoutParams as ConstraintLayout.LayoutParams).apply { setMargins(0, 0, 0, 68F.dip2px()) } mBinding?.changePwdTv?.setOnClickListener { val bundle = Bundle().apply { putString(TeenagerModeActivity.TYPE, TeenagerModeActivity.TYPE_CHANGE_PWD) } - val mContainerFragment = requireActivity().supportFragmentManager.findFragmentByTag(PasswordSettingFragment::class.java.simpleName) + val mContainerFragment = requireActivity().supportFragmentManager.findFragmentByTag(PasswordSettingFragment::class.java.name) ?: PasswordSettingFragment().with(bundle) requireActivity().supportFragmentManager.beginTransaction().run { addToBackStack(null) - add(R.id.placeholder, mContainerFragment!!, PasswordSettingFragment::class.java.simpleName).commitAllowingStateLoss() + add(R.id.placeholder, mContainerFragment!!, PasswordSettingFragment::class.java.name).commitAllowingStateLoss() } } } diff --git a/app/src/main/java/com/gh/gamecenter/video/data/VideoDataActivity.kt b/app/src/main/java/com/gh/gamecenter/video/data/VideoDataActivity.kt index 4e1c172c6b..86c34ad4bd 100644 --- a/app/src/main/java/com/gh/gamecenter/video/data/VideoDataActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/data/VideoDataActivity.kt @@ -15,10 +15,10 @@ class VideoDataActivity : BaseActivity() { DisplayUtils.transparentStatusBar(this) - val containerFragment = supportFragmentManager.findFragmentByTag(VideoDataFragment::class.java.simpleName) + val containerFragment = supportFragmentManager.findFragmentByTag(VideoDataFragment::class.java.name) ?: VideoDataFragment().with(intent.extras) // 若 placeholder 外层为 RelativeLayout 的话,会出现莫名的偏移 - supportFragmentManager.beginTransaction().replace(R.id.placeholder, containerFragment, VideoDataFragment::class.java.simpleName) + supportFragmentManager.beginTransaction().replace(R.id.placeholder, containerFragment, VideoDataFragment::class.java.name) .commitAllowingStateLoss() } diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailActivity.kt index c06cc5ce85..ca1ea8c142 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailActivity.kt @@ -22,10 +22,10 @@ class VideoDetailActivity : BaseActivity() { val extras = intent.extras extras?.putString("uuid", uuid.toString()) - mContainerFragment = supportFragmentManager.findFragmentByTag(HomeVideoFragment::class.java.simpleName) as? HomeVideoFragment + mContainerFragment = supportFragmentManager.findFragmentByTag(HomeVideoFragment::class.java.name) as? HomeVideoFragment ?: HomeVideoFragment().with(extras) as HomeVideoFragment - supportFragmentManager.beginTransaction().replace(R.id.layout_activity_content, mContainerFragment!!, HomeVideoFragment::class.java.simpleName).commitNowAllowingStateLoss() + supportFragmentManager.beginTransaction().replace(R.id.layout_activity_content, mContainerFragment!!, HomeVideoFragment::class.java.name).commitNowAllowingStateLoss() } override fun handleBackPressed(): Boolean { diff --git a/app/src/main/java/com/gh/gamecenter/video/poster/PosterClipActivity.kt b/app/src/main/java/com/gh/gamecenter/video/poster/PosterClipActivity.kt index 21b67add2a..bedec06355 100644 --- a/app/src/main/java/com/gh/gamecenter/video/poster/PosterClipActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/poster/PosterClipActivity.kt @@ -23,11 +23,11 @@ class PosterClipActivity : ToolBarActivity() { setNavigationTitle("剪辑封面") val videoPath = intent.getStringExtra(EntranceConsts.KEY_PATH_VIDEO) - val fragment = supportFragmentManager.findFragmentByTag(VideoPosterFragment::class.java.simpleName) as? VideoPosterFragment + val fragment = supportFragmentManager.findFragmentByTag(VideoPosterFragment::class.java.name) as? VideoPosterFragment ?: VideoPosterFragment.newInstance(videoPath, null) supportFragmentManager .beginTransaction() - .replace(R.id.layout_fragment_content, fragment, VideoPosterFragment::class.java.simpleName) + .replace(R.id.layout_fragment_content, fragment, VideoPosterFragment::class.java.name) .commitAllowingStateLoss() findViewById(R.id.menu_next).setOnClickListener { diff --git a/libraries/Matisse/src/main/java/com/zhihu/matisse/ui/MatisseActivity.java b/libraries/Matisse/src/main/java/com/zhihu/matisse/ui/MatisseActivity.java index 34a510034d..31c029405f 100644 --- a/libraries/Matisse/src/main/java/com/zhihu/matisse/ui/MatisseActivity.java +++ b/libraries/Matisse/src/main/java/com/zhihu/matisse/ui/MatisseActivity.java @@ -26,13 +26,6 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Looper; - -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; -import androidx.appcompat.app.ActionBar; -import androidx.appcompat.app.AppCompatActivity; -import androidx.appcompat.widget.Toolbar; - import android.view.MenuItem; import android.view.View; import android.view.Window; @@ -40,6 +33,12 @@ import android.widget.AdapterView; import android.widget.LinearLayout; import android.widget.TextView; +import androidx.annotation.Nullable; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.fragment.app.Fragment; + import com.zhihu.matisse.R; import com.zhihu.matisse.filter.ApplyFilter; import com.zhihu.matisse.internal.entity.Album; @@ -237,7 +236,7 @@ public class MatisseActivity extends AppCompatActivity implements } else { mSelectedCollection.overwrite(selected, collectionType); Fragment mediaSelectionFragment = getSupportFragmentManager().findFragmentByTag( - MediaSelectionFragment.class.getSimpleName()); + MediaSelectionFragment.class.getName()); if (mediaSelectionFragment instanceof MediaSelectionFragment) { ((MediaSelectionFragment) mediaSelectionFragment).refreshMediaGrid(); } @@ -433,7 +432,7 @@ public class MatisseActivity extends AppCompatActivity implements fragment = MediaSelectionFragment.newInstance(album); getSupportFragmentManager() .beginTransaction() - .add(R.id.container, fragment, MediaSelectionFragment.class.getSimpleName()) + .add(R.id.container, fragment, MediaSelectionFragment.class.getName()) .commitAllowingStateLoss(); } } From c62dd66ad730e8ebbddeca77910d55571e0d1409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= Date: Thu, 7 Jul 2022 15:18:22 +0800 Subject: [PATCH 07/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9B=A0?= =?UTF-8?q?=E6=B7=B7=E6=B7=86=E5=90=8E=E5=AF=BC=E8=87=B4=E7=9A=84=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E8=BD=AC=E6=8D=A2=E9=94=99=E8=AF=AF=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/common/util/DownloadItemUtils.kt | 2 +- .../gamedetail/dialog/GamePermissionDialogFragment.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt index 55f51c09fb..6887402e1a 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt @@ -511,7 +511,7 @@ object DownloadItemUtils { allStateClickCallback: EmptyCallback? ) { val gamePermissionDialogFragment = (context as AppCompatActivity).supportFragmentManager.findFragmentByTag( - GamePermissionDialogFragment::class.java.simpleName + GamePermissionDialogFragment::class.java.name ) as GamePermissionDialogFragment? gamePermissionDialogFragment?.dismissAllowingStateLoss() if (SPUtils.getBoolean(Constants.SP_TEENAGER_MODE)) { diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionDialogFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionDialogFragment.kt index c83bc32a51..28ca4c5c49 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionDialogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionDialogFragment.kt @@ -88,7 +88,7 @@ class GamePermissionDialogFragment : BaseDialogFragment() { putParcelable(KEY_GAME, game) putParcelable(KEY_GAME_INFO, gameInfo) } - }.show(activity.supportFragmentManager, GamePermissionDialogFragment::class.java.simpleName) + }.show(activity.supportFragmentManager, GamePermissionDialogFragment::class.java.name) } else { callBack.onConfirm() } From 30a110e83b2668d643119ceef66e352845c909d6 Mon Sep 17 00:00:00 2001 From: lyr Date: Thu, 7 Jul 2022 18:18:07 +0800 Subject: [PATCH 08/26] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0Worker=E6=97=B6=E5=9B=A0=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E5=8F=AF=E7=94=A8=E5=AD=98=E5=82=A8=E7=A9=BA=E9=97=B4=E4=B8=8D?= =?UTF-8?q?=E8=B6=B3=E5=AF=BC=E8=87=B4=E7=9A=84=E9=97=AA=E9=80=80=E9=97=AE?= =?UTF-8?q?=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/DownloadWorkManager.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/java/com/gh/download/DownloadWorkManager.kt b/app/src/main/java/com/gh/download/DownloadWorkManager.kt index c9f8ce54a5..13b8be483d 100644 --- a/app/src/main/java/com/gh/download/DownloadWorkManager.kt +++ b/app/src/main/java/com/gh/download/DownloadWorkManager.kt @@ -1,9 +1,11 @@ package com.gh.download +import android.os.Environment import androidx.work.PeriodicWorkRequest import androidx.work.WorkManager import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.halo.assistant.HaloApp +import com.lightgame.download.FileUtils import java.util.concurrent.TimeUnit object DownloadWorkManager { @@ -14,6 +16,9 @@ object DownloadWorkManager { fun addWorker() { cancelWorker() + // 可用存储空间少于1G退出 + if (FileUtils.isMounted() && FileUtils.getFreeSpaceByPath(Environment.getExternalStorageDirectory().absolutePath) < 1024F) return + // 每 15 分钟检查一下是否需要重试下载 val builder = PeriodicWorkRequest.Builder( DownloadWorker::class.java, From 919db31ec3d31550fce9ac1c2c0815f12873c332 Mon Sep 17 00:00:00 2001 From: lyr Date: Fri, 8 Jul 2022 09:28:07 +0800 Subject: [PATCH 09/26] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E5=8D=87=E7=BA=A7L?= =?UTF-8?q?oghub=E6=95=B0=E6=8D=AE=E5=BA=93=E6=97=B6=E6=9C=AA=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=BB=98=E8=AE=A4=E5=80=BC=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/gh/gamecenter/common/loghub/LoghubDatabase.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubDatabase.kt b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubDatabase.kt index 210821d835..2d98c8d10b 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubDatabase.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubDatabase.kt @@ -14,7 +14,7 @@ abstract class LoghubDatabase : RoomDatabase() { private val MIGRATION_1_2: Migration = object : Migration(1, 2) { override fun migrate(database: SupportSQLiteDatabase) { - database.execSQL("Alter TABLE loghubEvent add isFlat INTEGER NOT NULL") + database.execSQL("Alter TABLE loghubEvent add isFlat INTEGER NOT NULL DEFAULT 0") } } From 45d8e5a86978d04a6e09364ce9b8989af0afb944 Mon Sep 17 00:00:00 2001 From: juntao Date: Fri, 8 Jul 2022 11:02:30 +0800 Subject: [PATCH 10/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E7=BA=A2=E7=82=B9=E6=9B=B4=E6=96=B0=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libraries/LGLibrary | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/LGLibrary b/libraries/LGLibrary index 692d58bc9b..2fb219f6c0 160000 --- a/libraries/LGLibrary +++ b/libraries/LGLibrary @@ -1 +1 @@ -Subproject commit 692d58bc9b494bf1d04db7809d43acbedaeb326c +Subproject commit 2fb219f6c06a14cb78341c14f5b8c847484df6cf From 8c9b1371dc300c62879a2c7251a7bf4bf472a06f Mon Sep 17 00:00:00 2001 From: leafwai Date: Fri, 8 Jul 2022 11:24:50 +0800 Subject: [PATCH 11/26] =?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 --- .../com/gh/gamecenter/ImageViewerActivity.kt | 6 +++-- .../gamedetail/GameDetailFragment.kt | 22 ++++++++++++++----- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt b/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt index 54e01237f8..df42f332b8 100644 --- a/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt @@ -368,8 +368,10 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener { if (mUseEnterAndExitAnimation) { mBigImageView?.translationX = mTranslationX mBigImageView?.translationY = mTranslationY - mBigImageView?.scaleX = mScaleX - mBigImageView?.scaleY = mScaleY + if (mScaleX < Float.MAX_VALUE) { + mBigImageView?.scaleX = mScaleX + mBigImageView?.scaleY = mScaleY + } } performEnterAnimation() 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 52dc456643..714d0ac0fe 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt @@ -403,7 +403,11 @@ class GameDetailFragment : ToolbarFragment() { private fun initGameSubtitle(gameTitleTv: TextView, gameSubtitle: String, gameSubtitleStyle: TagStyleEntity? = null, advanceDownload: Boolean = false) { gameTitleTv.post { gameTitleTv.run { - var remainWidth = (width - layout.getSecondaryHorizontal(text.length)).toInt() + var lastPosX = 0F + tryCatchInRelease { + lastPosX = layout.getSecondaryHorizontal(text.length) + } + var remainWidth = (width - lastPosX).toInt() val tagMaxWidth = if (lineCount == 2 && layout.getEllipsisCount(1) == 0) remainWidth - 4F.dip2px() else width val tagLayout = FrameLayout(context) val tagView = TextView(context).apply { @@ -438,11 +442,17 @@ class GameDetailFragment : ToolbarFragment() { var displayName = text var changeDisplayName = false if ((lineCount == 2 && layout.getEllipsisCount(1) > 0) || (lineCount == 2 && tagView.measuredWidth > remainWidth)) { - displayName = text.substring(0, calculateTextCountByWidth(this, 2 * gameTitleTv.width - tagView.measuredWidth) - 1) + "…" - changeDisplayName = true + val textCount = calculateTextCountByWidth(this, 2 * gameTitleTv.width - tagView.measuredWidth) - 1 + if (textCount < text.length) { + displayName = text.substring(0, textCount) + "…" + changeDisplayName = true + } } text = displayName - remainWidth = (width - layout.getSecondaryHorizontal(text.length)).toInt() + tryCatchInRelease { + lastPosX = layout.getSecondaryHorizontal(text.length) + } + remainWidth = (width - lastPosX).toInt() tagLayout.addView(tagView, FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, 14F.dip2px()).apply { leftMargin = if (remainWidth >= tagView.measuredWidth) 4F.dip2px() else 0 }) @@ -465,8 +475,8 @@ class GameDetailFragment : ToolbarFragment() { private fun subtractGameNameIfNeeded(textView: TextView, name: CharSequence, tagLayout: FrameLayout) { textView.run { - if (lineCount > 2) { - val displayName = name.substring(0, name.length - 3) + "…" + if (lineCount > 2 || layout.getEllipsisCount(1) > 0) { + val displayName = name.substring(0, name.length - 2) + "…" text = displayName if (tagLayout.getChildAt(0) != null) { val tagView = tagLayout.getChildAt(0) From 3241ff99351c970057b7bf1bbbe077f229938f2a Mon Sep 17 00:00:00 2001 From: guotao Date: Thu, 7 Jul 2022 17:54:05 +0800 Subject: [PATCH 12/26] =?UTF-8?q?fix:=20contentProvider=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=9C=BA=E5=9E=8B=E9=97=AA=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/DataUtils.java | 3 +- .../gamecenter/provider/GhContentProvider.kt | 55 ++++++++++++++----- libraries/LGLibrary | 2 +- 3 files changed, 43 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/DataUtils.java b/app/src/main/java/com/gh/common/util/DataUtils.java index fc42f3f726..065b1bb468 100644 --- a/app/src/main/java/com/gh/common/util/DataUtils.java +++ b/app/src/main/java/com/gh/common/util/DataUtils.java @@ -161,7 +161,8 @@ public class DataUtils { values.put(GhContentProvider.KEY_IS_ADULT, false); } - HaloApp.getInstance().getContentResolver().insert(Uri.parse("content://com.gh.gamecenter.provider/certification"), values); + new GhContentProvider().localInsert( HaloApp.getInstance().getApplication(),values); +// HaloApp.getInstance().getContentResolver().insert(Uri.parse("content://com.gh.gamecenter.provider/certification"), values); } }); } diff --git a/app/src/main/java/com/gh/gamecenter/provider/GhContentProvider.kt b/app/src/main/java/com/gh/gamecenter/provider/GhContentProvider.kt index 6ce9e18a34..91129dcc8b 100644 --- a/app/src/main/java/com/gh/gamecenter/provider/GhContentProvider.kt +++ b/app/src/main/java/com/gh/gamecenter/provider/GhContentProvider.kt @@ -1,11 +1,9 @@ package com.gh.gamecenter.provider -import android.content.ContentProvider -import android.content.ContentUris -import android.content.ContentValues -import android.content.UriMatcher +import android.content.* import android.database.Cursor import android.database.sqlite.SQLiteDatabase +import android.database.sqlite.SQLiteFullException import android.database.sqlite.SQLiteOpenHelper import android.net.Uri import android.text.TextUtils @@ -29,7 +27,7 @@ class GhContentProvider : ContentProvider() { mUriMatcher.addURI(AUTHORITY, SYNC_CERTIFICATION_TABLE_NAME, 2) } - override fun onCreate(): Boolean { + private fun initProviderSqliteHelper(context: Context?){ val helper: SQLiteOpenHelper = object : SQLiteOpenHelper(context, CERTIFICATION_DATABASE_NAME, null, 1) { override fun onCreate(db: SQLiteDatabase) { @@ -54,6 +52,9 @@ class GhContentProvider : ContentProvider() { } } mSqLiteDatabase = helper.writableDatabase + } + override fun onCreate(): Boolean { + initProviderSqliteHelper(context); return true } @@ -91,25 +92,49 @@ class GhContentProvider : ContentProvider() { override fun getType(uri: Uri): String? = null - override fun insert(uri: Uri, values: ContentValues?): Uri? { - val context = context ?: return null - if (mUriMatcher.match(uri) == 1) { - // 固定主键(只保留一条数据即可) + + fun localInsert(context: Context,values: ContentValues?){ + initProviderSqliteHelper(context) + try { values?.put(KEY_PRIMARY_KEY, 1) // 如果已存在则直接替换 - val rowId: Long? = mSqLiteDatabase?.insertWithOnConflict( + mSqLiteDatabase?.insertWithOnConflict( CERTIFICATION_TABLE_NAME, null, values, SQLiteDatabase.CONFLICT_REPLACE ) - if (rowId != null && rowId > 0) { - val nameUri = ContentUris.withAppendedId(uri, rowId) - context.contentResolver.notifyChange(nameUri, null) - Utils.log("CertificationContentProvider", "insert success:" + uri.authority + ", status => " + values?.toString()) - return nameUri + + } catch (e: SQLiteFullException) { + Utils.toast(context,"数据库内存已满,无法同步") + } + } + + override fun insert(uri: Uri, values: ContentValues?): Uri? { + val context = context ?: return null + + if (mUriMatcher.match(uri) == 1) { + // 固定主键(只保留一条数据即可) + try { + values?.put(KEY_PRIMARY_KEY, 1) + // 如果已存在则直接替换 + val rowId: Long? = mSqLiteDatabase?.insertWithOnConflict( + CERTIFICATION_TABLE_NAME, + null, + values, + SQLiteDatabase.CONFLICT_REPLACE + ) + if (rowId != null && rowId > 0) { + val nameUri = ContentUris.withAppendedId(uri, rowId) + context.contentResolver.notifyChange(nameUri, null) + Utils.log("CertificationContentProvider", "insert success:" + uri.authority + ", status => " + values?.toString()) + return nameUri + } + } catch (e: SQLiteFullException) { + Utils.toast(context,"数据库内存已满,无法同步") } + } else if (mUriMatcher.match(uri) == 2) { val certificationStr = SPUtils.getString(Constants.SP_DEVICE_CERTIFICATION_PREFIX + HaloApp.getInstance().gid) diff --git a/libraries/LGLibrary b/libraries/LGLibrary index 692d58bc9b..2fb219f6c0 160000 --- a/libraries/LGLibrary +++ b/libraries/LGLibrary @@ -1 +1 @@ -Subproject commit 692d58bc9b494bf1d04db7809d43acbedaeb326c +Subproject commit 2fb219f6c06a14cb78341c14f5b8c847484df6cf From 176d4dd940a297caa7249a3dc10f20eb8037ad22 Mon Sep 17 00:00:00 2001 From: juntao Date: Fri, 8 Jul 2022 13:36:55 +0800 Subject: [PATCH 13/26] =?UTF-8?q?fix:=20=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=87=B3=205.10.3?= 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 1c1edc5758..3c93f6ab66 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 28 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 552 - versionName = "5.10.2" + versionCode = 553 + versionName = "5.10.3" applicationId = "com.gh.gamecenter" // AndroidX From ad12b3f9ef2ef444be28886543cedb2697a9569b Mon Sep 17 00:00:00 2001 From: juntao Date: Fri, 8 Jul 2022 14:53:01 +0800 Subject: [PATCH 14/26] =?UTF-8?q?build:=20=E8=A1=A5=E5=85=85=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E6=97=B6=E9=9C=80=E8=A6=81=E7=A7=BB=E9=99=A4=E7=9A=84?= =?UTF-8?q?=E5=A4=9C=E9=97=B4=E6=A8=A1=E5=BC=8F=E8=B5=84=E6=BA=90=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/build_with_simple_backup.sh | 9 +++++---- scripts/jenkins_build.sh | 8 +++++--- scripts/jenkins_flutter_build.sh | 6 +++++- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/scripts/build_with_simple_backup.sh b/scripts/build_with_simple_backup.sh index b6bb466f53..b8c3a4c1be 100755 --- a/scripts/build_with_simple_backup.sh +++ b/scripts/build_with_simple_backup.sh @@ -12,9 +12,6 @@ git checkout app/build.gradle # 重置 module_common build.gradle git checkout module_common/build.gradle -# 移除夜间颜色资源 -rm -r app/src/main/res/values-night - # 开启 mapping 上传 if [[ "$OSTYPE" == "darwin"* ]]; then sed -i '' '1 a plugins { id "io.sentry.android.gradle" version "2.0.1" } ' app/build.gradle @@ -25,10 +22,14 @@ fi # 移除夜间颜色资源 rm -r app/src/main/res/values-night rm -r app/src/main/res/drawable-night-xxxhdpi +rm -r app/src/main/res/drawable-night +rm -r app/src/main/res/drawable-night-nodpi rm -r module_core/src/main/res/drawable-night-xxxhdpi -rm -r module_common/src/main/res/drawable-night-xxxhdpi rm -r module_core/src/main/res/values-night rm -r module_common/src/main/res/values-night +rm -r module_common/src/main/res/drawable-night-xxxhdpi +rm -r module_common/src/main/res/drawable-night-nodpi +rm -r module_common/src/main/res/drawable-night sed -i 's/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "true"/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "false"/g' module_common/build.gradle ./gradlew --stop diff --git a/scripts/jenkins_build.sh b/scripts/jenkins_build.sh index 052927c031..25119cb821 100755 --- a/scripts/jenkins_build.sh +++ b/scripts/jenkins_build.sh @@ -30,20 +30,22 @@ do # 移除夜间颜色资源 rm -r app/src/main/res/values-night rm -r app/src/main/res/drawable-night-xxxhdpi + rm -r app/src/main/res/drawable-night + rm -r app/src/main/res/drawable-night-nodpi rm -r module_core/src/main/res/drawable-night-xxxhdpi - rm -r module_common/src/main/res/drawable-night-xxxhdpi rm -r module_core/src/main/res/values-night rm -r module_common/src/main/res/values-night + rm -r module_common/src/main/res/drawable-night-xxxhdpi + rm -r module_common/src/main/res/drawable-night-nodpi + rm -r module_common/src/main/res/drawable-night sed -i 's/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "true"/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "false"/g' module_common/build.gradle ;; esac done ./gradlew aIR -I init.gradle -#./gradlew rIR -I init.gradle if [ ! -f app/build/outputs/apk/internal/release/app-internal-release.apk ]; then ./gradlew aIR -I init.gradle -# ./gradlew rIR -I init.gradle fi mv app/build/outputs/apk/internal/release/app-internal-release.apk app/build/tmp/${version}-${versionCode}-test-${build_time}.apk diff --git a/scripts/jenkins_flutter_build.sh b/scripts/jenkins_flutter_build.sh index d97952a165..ca63b517cb 100755 --- a/scripts/jenkins_flutter_build.sh +++ b/scripts/jenkins_flutter_build.sh @@ -30,10 +30,14 @@ do # 移除夜间颜色资源 rm -r app/src/main/res/values-night rm -r app/src/main/res/drawable-night-xxxhdpi + rm -r app/src/main/res/drawable-night + rm -r app/src/main/res/drawable-night-nodpi rm -r module_core/src/main/res/drawable-night-xxxhdpi - rm -r module_common/src/main/res/drawable-night-xxxhdpi rm -r module_core/src/main/res/values-night rm -r module_common/src/main/res/values-night + rm -r module_common/src/main/res/drawable-night-xxxhdpi + rm -r module_common/src/main/res/drawable-night-nodpi + rm -r module_common/src/main/res/drawable-night sed -i 's/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "true"/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "false"/g' module_common/build.gradle ;; esac From 8f5aee3a8c36f62943bdfff67c7eb6f28369a33a Mon Sep 17 00:00:00 2001 From: leafwai Date: Fri, 8 Jul 2022 16:35:05 +0800 Subject: [PATCH 15/26] =?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 16/26] =?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 17/26] =?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 18/26] =?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 19/26] =?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 20/26] =?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 21/26] =?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 22/26] =?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 23/26] =?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 24/26] =?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 25/26] =?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 26/26] =?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