diff --git a/app/build.gradle b/app/build.gradle index 4b76722ff7..e187411c95 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -214,6 +214,7 @@ dependencies { debugImplementation "com.squareup.okhttp3:logging-interceptor:${okHttp}" // debugImplementation "com.gu.android:toolargetool:${toolargetool}" // 需要使用调试时才启用 debugImplementation "com.github.nichbar:WhatTheStack:${whatTheStack}" + debugImplementation "io.github.didi.dokit:dokitx:${dokit}" implementation "androidx.core:core-ktx:${core}" implementation "androidx.fragment:fragment-ktx:${fragment}" @@ -342,7 +343,7 @@ dependencies { implementation "com.louiscad.splitties:splitties-fun-pack-android-base-with-views-dsl:${splitties}" - compileOnly "com.github.axen1314.lancet:lancet-base:$lancet_version" + compileOnly "com.github.axen1314.lancet:lancet-base:${lancet_version}" implementation project(':libraries:LGLibrary') implementation project(':libraries:QQShare') diff --git a/app/proguard-rules.txt b/app/proguard-rules.txt index d4b519f938..79ee3fd7ac 100644 --- a/app/proguard-rules.txt +++ b/app/proguard-rules.txt @@ -147,6 +147,9 @@ ### emoji4j -keep class emoji4j.* {*;} +### dokit +-keep class com.didichuxing.* {*;} + # Flutter模块 -keep class com.gh.common.util.DirectUtils { public static void directToQa(...); diff --git a/app/src/main/java/com/gh/base/BaseActivity.java b/app/src/main/java/com/gh/base/BaseActivity.java index eca636dd62..ed36896875 100644 --- a/app/src/main/java/com/gh/base/BaseActivity.java +++ b/app/src/main/java/com/gh/base/BaseActivity.java @@ -46,6 +46,7 @@ import com.gh.common.util.RunningUtils; import com.gh.common.util.SPUtils; import com.gh.common.util.ShareUtils; import com.gh.common.util.StringUtils; +import com.gh.common.util.ToastUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.LoginActivity; @@ -253,6 +254,12 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy EntranceUtils.saveShortcut(this.getClass().getName(), getIntent().getExtras()); return true; }); + } else { + tv.setOnLongClickListener(v -> { + SPUtils.setBoolean("dokit_enabled", true); + ToastUtils.toast("重启应用后即可启用辅助工具"); + return true; + }); } screenRootView.addView(view); diff --git a/app/src/main/java/com/gh/common/util/DownloadObserver.kt b/app/src/main/java/com/gh/common/util/DownloadObserver.kt index 40f1f24945..2b04fb3d2d 100644 --- a/app/src/main/java/com/gh/common/util/DownloadObserver.kt +++ b/app/src/main/java/com/gh/common/util/DownloadObserver.kt @@ -175,8 +175,6 @@ object DownloadObserver { } else { statDoneEvent(downloadEntity) - GameActivityDownloadHelper.postTaskComplete(downloadEntity.gameId) - EnergyTaskHelper.postEnergyTask( "download_game", downloadEntity.gameId, diff --git a/app/src/main/java/com/gh/common/util/ReservationHelper.kt b/app/src/main/java/com/gh/common/util/ReservationHelper.kt index 4af19916f9..11c95137ee 100644 --- a/app/src/main/java/com/gh/common/util/ReservationHelper.kt +++ b/app/src/main/java/com/gh/common/util/ReservationHelper.kt @@ -70,7 +70,6 @@ object ReservationHelper { override fun onSuccess(data: ResponseBody) { ReservationRepository.addReservationToMemoryAndRefresh(gameId) - GameActivityDownloadHelper.postTaskComplete(gameId) callback.onCallback() val wechatConfig = SPUtils.getString(Constants.SP_WECHAT_CONFIG).toObject() wechatConfig?.run { 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 1184894c1d..5313124815 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 @@ -39,7 +39,7 @@ class SubjectRowsFragment : BaseFragment() { override fun initView(view: View) { super.initView(view) mSettingEntity = arguments?.getParcelable(SubjectSettingEntity::class.java.simpleName) - ?: return + ?: return mSubjectData = arguments?.getParcelable(EntranceUtils.KEY_SUBJECT_DATA) ?: return val labels = mSettingEntity.typeEntity.labels @@ -53,9 +53,10 @@ class SubjectRowsFragment : BaseFragment() { createFilterLayout() mListFragment = childFragmentManager.findFragmentByTag(SubjectListFragment::class.java.simpleName) as? SubjectListFragment - ?: SubjectListFragment() + ?: SubjectListFragment() mListFragment.arguments = arguments - childFragmentManager.beginTransaction().replace(R.id.rows_list_container, mListFragment, SubjectListFragment::class.java.simpleName).commitAllowingStateLoss() + childFragmentManager.beginTransaction().replace(R.id.rows_list_container, mListFragment, SubjectListFragment::class.java.simpleName) + .commitAllowingStateLoss() } @SuppressLint("InflateParams") @@ -118,9 +119,10 @@ class SubjectRowsFragment : BaseFragment() { } // 隐藏相关选项 - filterView.recommendedTv.goneIf(mSettingEntity.filterOptions.isEmpty()) - filterView.newestTv.goneIf(mSettingEntity.filterOptions.size <= 1) - filterView.ratingTv.goneIf(mSettingEntity.filterOptions.size <= 2) + filterView.updateTv.goneIf(mSettingEntity.filterOptions.isEmpty()) + filterView.recommendedTv.goneIf(mSettingEntity.filterOptions.size <= 1) + filterView.newestTv.goneIf(mSettingEntity.filterOptions.size <= 2) + filterView.ratingTv.goneIf(mSettingEntity.filterOptions.size <= 3) filterView.sizeFilterArray = mSettingEntity.filterSizes mLabelsContainer.addView(filterView) @@ -154,13 +156,17 @@ class SubjectRowsFragment : BaseFragment() { else -> filterView.recommendedTv } - when (clickTv.text) { - "更新" -> mSubjectData.sort = UrlFilterUtils.getFilterQuery("update_time", "-1") - "最新" -> mSubjectData.sort = UrlFilterUtils.getFilterQuery("publish", "-1") - "评分" -> mSubjectData.sort = UrlFilterUtils.getFilterQuery("star", "-1") - else -> mSubjectData.sort = UrlFilterUtils.getFilterQuery("position", "1") + val sort = when (clickTv.text) { + "更新" -> UrlFilterUtils.getFilterQuery("update_time", "-1") + "最新" -> UrlFilterUtils.getFilterQuery("publish", "-1") + "评分" -> UrlFilterUtils.getFilterQuery("star", "-1") + else -> UrlFilterUtils.getFilterQuery("position", "1") + } + + if (mSubjectData.sort != sort) { + mSubjectData.sort = sort + updateListFragment() } - updateListFragment() } }) } diff --git a/app/src/main/java/com/halo/assistant/HaloApp.java b/app/src/main/java/com/halo/assistant/HaloApp.java index 967cb30902..1a3a0f59ad 100644 --- a/app/src/main/java/com/halo/assistant/HaloApp.java +++ b/app/src/main/java/com/halo/assistant/HaloApp.java @@ -213,6 +213,19 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid StrictMode.setVmPolicy(policy); } + // debug 包和 jenkins 内部包启用 dokit + if (PackageFlavorHelper.IS_TEST_FLAVOR) { + if (BuildConfig.DEBUG || SPUtils.getBoolean("dokit_enabled")) { + try { + Class clazz = Class.forName("com.didichuxing.doraemonkit.DoraemonKit"); + Method method = clazz.getMethod("install", Application.class); + method.invoke(null, this); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + registerActivityLifecycleCallbacks(new GlobalActivityLifecycleObserver()); NightModeUtils.INSTANCE.initNightMode(); } diff --git a/dependencies.gradle b/dependencies.gradle index 8abb183491..65fb683ef4 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -115,6 +115,7 @@ ext { splitties = "3.0.0" apksig = "1.0.0" gid = "1.3.0" + dokit = "3.5.0" sentry = "4.3.0" diff --git a/scripts/jenkins_build.sh b/scripts/jenkins_build.sh index 27830bed11..3dc4f6f9ec 100755 --- a/scripts/jenkins_build.sh +++ b/scripts/jenkins_build.sh @@ -23,6 +23,11 @@ cd .. #sed -i "s/TINKER_ENABLE\=\(.*\)/TINKER_ENABLE\=1/g" gradle.properties sed -i 's/buildConfigField "long", "BUILD_TIME", "0"/buildConfigField "long", "BUILD_TIME", '"\"${build_time_without_divider}\""'/g' app/build.gradle +### jenkins 包添加 dokit 供设计师查看颜色啥的 +sed -i '/debugImplementation "io.github.didi.dokit:dokitx:${dokit}"/c\ implementation "io.github.didi.dokit:dokitx:${dokit}"' app/build.gradle +### dokit 自带 okhttp 会破坏正式包的字节码修改 +sed -i '/project.apply plugin: "com.gh.gamecenter.plugin"/c\ ' init.gradle + ./gradlew rIR -I init.gradle if [ ! -f app/build/outputs/apk/internal/release/app-internal-release.apk ]; then ./gradlew rIR -I init.gradle diff --git a/scripts/jenkins_flutter_build.sh b/scripts/jenkins_flutter_build.sh index 27249bc495..bac804618d 100755 --- a/scripts/jenkins_flutter_build.sh +++ b/scripts/jenkins_flutter_build.sh @@ -22,6 +22,11 @@ else sed -i '11 a evaluate(new File(settingsDir, "assistant_flutter/.android/include_flutter.groovy"))' settings.gradle fi +### jenkins 包添加 dokit 供设计师查看颜色啥的 +sed -i '/debugImplementation "io.github.didi.dokit:dokitx:${dokit}"/c\ implementation "io.github.didi.dokit:dokitx:${dokit}"' app/build.gradle +### dokit 自带 okhttp 会破坏正式包的字节码修改 +sed -i '/project.apply plugin: "com.gh.gamecenter.plugin"/c\ ' init.gradle + cd assistant_flutter flutter pub get