From 29729ec154617454c36724588176959e44685d23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E7=A5=A5=E4=BF=8A?= Date: Mon, 23 Sep 2024 14:02:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E3=80=90=E5=85=89=E7=8E=AF=E5=8A=A9?= =?UTF-8?q?=E6=89=8B=E3=80=91=E6=8E=92=E8=A1=8C=E6=A6=9C=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E6=B2=A1=E6=9C=89=E6=98=BE=E7=A4=BA=E8=A7=92=E6=A0=87?= =?UTF-8?q?=20https://jira.shanqu.cc/browse/GHZSCY-6680?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 4 ++- .../gh/common/util/ViewPagerFragmentHelper.kt | 2 ++ .../gh/gamecenter/subject/SubjectFragment.kt | 19 ++++++---- .../subject/tab/SubjectTabFragment.kt | 6 ++-- .../subject/tile/SubjectTileFragment.kt | 36 ++++++++++--------- 5 files changed, 41 insertions(+), 26 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8055a5e9ac..9f5bd544ea 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -72,6 +72,7 @@ android_build: only: - dev - release + - feat/GHZSCY-6705 # 代码检查 sonarqube_analysis: @@ -156,4 +157,5 @@ oss-upload&send-email: - /usr/local/bin/python /ci-android-mail-jira-comment.py only: - dev - - release \ No newline at end of file + - release + - feat/GHZSCY-6705 \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/ViewPagerFragmentHelper.kt b/app/src/main/java/com/gh/common/util/ViewPagerFragmentHelper.kt index 30435f44c2..efce8cf09d 100644 --- a/app/src/main/java/com/gh/common/util/ViewPagerFragmentHelper.kt +++ b/app/src/main/java/com/gh/common/util/ViewPagerFragmentHelper.kt @@ -174,6 +174,7 @@ object ViewPagerFragmentHelper { EntranceConsts.KEY_SUBJECT_DATA, SubjectData(entity.link, entity.text, false, subjectType = subjectType) ) + bundle.putString(EntranceConsts.KEY_SUBJECT_TYPE, "detail") bundle.putBoolean(EntranceConsts.KEY_SHOW_DOWNLOAD_MENU, !isTabWrapper) } // 专题合集详情页 @@ -183,6 +184,7 @@ object ViewPagerFragmentHelper { bundle.putInt(EntranceConsts.KEY_POSITION, 0) bundle.putString(EntranceConsts.KEY_COLUMNNAME, entity.text) bundle.putBoolean(EntranceConsts.KEY_IS_COLUMN_COLLECTION, true) + bundle.putString(EntranceConsts.KEY_SUBJECT_TYPE, "tab") } // 开服表 TYPE_SERVER -> { 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 abbfa16c4b..f0ea398c24 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.kt @@ -4,10 +4,10 @@ import android.view.View import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders +import com.gh.gamecenter.R import com.gh.gamecenter.common.base.fragment.LazyFragment import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.core.utils.PageSwitchDataHelper -import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentSubjectBinding import com.gh.gamecenter.entity.SubjectSettingEntity import com.gh.gamecenter.subject.rows.SubjectRowsFragment @@ -28,7 +28,10 @@ open class SubjectFragment : LazyFragment() { } override fun onFragmentFirstVisible() { - initMenu(R.menu.menu_download) + // 是否为专题合集详情子页面 + val isColumnCollection = arguments?.getBoolean(EntranceConsts.KEY_IS_COLUMN_COLLECTION) ?: false + // 专题合集详情子页面不需要显示菜单 + if (!isColumnCollection) initMenu(R.menu.menu_download) mViewModel = provideViewModel() @@ -49,10 +52,12 @@ open class SubjectFragment : LazyFragment() { } }) - // 获取专题名称 - mViewModel?.subjectNameLD?.observe(this, Observer { - setNavigationTitle(it) - }) + if (!isColumnCollection) {// 专题合集详情子页面不需要显示专题名称 + // 获取专题名称 + mViewModel?.subjectNameLD?.observe(this, Observer { + setNavigationTitle(it) + }) + } } override fun initRealView() { @@ -75,11 +80,13 @@ open class SubjectFragment : LazyFragment() { childFragmentManager.findFragmentByTag(tag) ?: SubjectTileFragment() } + "rows" == entity.typeEntity.layout -> { tag = SubjectRowsFragment::class.java.name childFragmentManager.findFragmentByTag(tag) ?: SubjectRowsFragment() } + else -> { tag = SubjectTabFragment::class.java.name childFragmentManager.findFragmentByTag(tag) diff --git a/app/src/main/java/com/gh/gamecenter/subject/tab/SubjectTabFragment.kt b/app/src/main/java/com/gh/gamecenter/subject/tab/SubjectTabFragment.kt index 3b66c9602b..1ed3970f05 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/tab/SubjectTabFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/tab/SubjectTabFragment.kt @@ -22,6 +22,7 @@ import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.databinding.FragmentSubjectTabBinding import com.gh.gamecenter.entity.SubjectData import com.gh.gamecenter.entity.SubjectSettingEntity +import com.gh.gamecenter.subject.SubjectFragment import com.gh.gamecenter.subject.SubjectListFragment import com.google.android.material.tabs.TabLayout import org.json.JSONException @@ -62,7 +63,6 @@ class SubjectTabFragment : BaseFragment() { UrlFilterUtils.getFilterQuery("tags", tag) } bundle?.putParcelable(EntranceConsts.KEY_SUBJECT_DATA, copyData) - bundle?.putString(EntranceConsts.KEY_SUBJECT_TYPE, "detail") element.arguments = bundle fragments.add(element) } @@ -72,10 +72,10 @@ class SubjectTabFragment : BaseFragment() { subjectList.filterIndexed { index, subject -> val element = childFragmentManager.findFragmentByTag("${fragmentTag}$index") - ?: SubjectListFragment() + ?: SubjectFragment() val bundle = arguments?.clone() as Bundle? bundle?.putParcelable(EntranceConsts.KEY_SUBJECT_DATA, subject) - bundle?.putString(EntranceConsts.KEY_SUBJECT_TYPE, "tab") + bundle?.putParcelableArrayList(EntranceConsts.KEY_DATA, null) element.arguments = bundle fragments.add(element) diff --git a/app/src/main/java/com/gh/gamecenter/subject/tile/SubjectTileFragment.kt b/app/src/main/java/com/gh/gamecenter/subject/tile/SubjectTileFragment.kt index 1b8b4b9f89..572d0428bc 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/tile/SubjectTileFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/tile/SubjectTileFragment.kt @@ -74,24 +74,28 @@ class SubjectTileFragment : BaseFragment() { mBinding.subjectTypeList.adapter = adapter } - // Appbar 交互 - mBinding.subjectAppbar.addOnOffsetChangedListener(AppBarLayout.OnOffsetChangedListener { appBarLayout, verticalOffset -> - if (!TextUtils.isEmpty(mSubjectData.subjectName) && activity is ToolbarController) { - val totalScrollRange = appBarLayout.totalScrollRange - if (abs(verticalOffset) < totalScrollRange / 2) { - (activity as ToolbarController).setNavigationTitle(mSubjectData.subjectName) - } else if (abs(verticalOffset) == totalScrollRange && totalScrollRange != 0) { - (activity as ToolbarController).setNavigationTitle( - StringUtils.buildString( - mSubjectData.subjectName, - "-", - mSelectedTypeName, - "↑" + // 是否为专题合集详情子页面 + val isColumnCollection = arguments?.getBoolean(EntranceConsts.KEY_IS_COLUMN_COLLECTION) ?: false + if (!isColumnCollection) { + // Appbar 交互 + mBinding.subjectAppbar.addOnOffsetChangedListener(AppBarLayout.OnOffsetChangedListener { appBarLayout, verticalOffset -> + if (!TextUtils.isEmpty(mSubjectData.subjectName) && activity is ToolbarController) { + val totalScrollRange = appBarLayout.totalScrollRange + if (abs(verticalOffset) < totalScrollRange / 2) { + (activity as ToolbarController).setNavigationTitle(mSubjectData.subjectName) + } else if (abs(verticalOffset) == totalScrollRange && totalScrollRange != 0) { + (activity as ToolbarController).setNavigationTitle( + StringUtils.buildString( + mSubjectData.subjectName, + "-", + mSelectedTypeName, + "↑" + ) ) - ) + } } - } - }) + }) + } loadData() }