From f59f8a3e5b347c632470b88726b36349eabd7fed Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Fri, 17 May 2019 15:02:56 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=85=89=E7=8E=AF?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E9=9C=80=E6=B1=82=E6=B1=87=E6=80=BB(2019?= =?UTF-8?q?=E5=B9=B45=E6=9C=88=E7=AC=AC3=E5=91=A8)(1,3,11,12,13)=20https:/?= =?UTF-8?q?/gitlab.ghzs.com/pm/halo-app-issues/issues/522?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../category/CategoryDirectoryAdapter.kt | 26 +++++++++++++------ .../category/CategoryDirectoryFragment.kt | 1 + .../gamedetail/desc/DescFragment.kt | 13 ++++++++++ .../detail/AnswerDetailContainerFragment.kt | 6 ++--- .../qa/answer/detail/AnswerDetailFragment.kt | 8 +++--- 5 files changed, 40 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryAdapter.kt b/app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryAdapter.kt index 44e66e2cba..f442f61058 100644 --- a/app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryAdapter.kt @@ -13,9 +13,12 @@ import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.databinding.ItemCategoryBinding import com.gh.gamecenter.entity.CategoryEntity +import net.cachapa.expandablelayout.ExpandableLayout -class CategoryDirectoryAdapter(context: Context, var categoryTitle: String) : ListAdapter(context) { +class CategoryDirectoryAdapter(context: Context, var categoryTitle: String) + : ListAdapter(context) { + var recyclerView: RecyclerView? = null var expandStatusMap: HashMap = HashMap() private var sixteenDp: Int = 0 @@ -39,13 +42,19 @@ class CategoryDirectoryAdapter(context: Context, var categoryTitle: String) : Li expandableStatusMap = expandStatusMap, isExpended = expandStatusMap[position] != null && expandStatusMap[position] == true, marginTop = sixteenDp, - categoryTitle = categoryTitle) + categoryTitle = categoryTitle, + expandedAction = { recyclerView?.smoothScrollToPosition(position) }) } } } internal class CategoryViewHolder(var binding: ItemCategoryBinding) : RecyclerView.ViewHolder(binding.root) { - fun bindCategory(category: CategoryEntity, expandableStatusMap: HashMap, isExpended: Boolean, marginTop: Int, categoryTitle: String) { + fun bindCategory(category: CategoryEntity, + expandableStatusMap: HashMap, + isExpended: Boolean, + marginTop: Int, + categoryTitle: String, + expandedAction: () -> Unit) { category.data?.let { var subCategoryView: SubCategoryView? = null @@ -91,20 +100,21 @@ class CategoryDirectoryAdapter(context: Context, var categoryTitle: String) : Li binding.containerExpandable.setExpanded(isExpended, false) binding.containerExpandable.setOnExpansionUpdateListener { _, state -> when (state) { - 0 -> { + ExpandableLayout.State.COLLAPSED -> { binding.ivToggle.setImageResource(R.drawable.ic_category_arrow_down) expandableStatusMap[adapterPosition] = false } - 3 -> { + ExpandableLayout.State.EXPANDED -> { binding.ivToggle.setImageResource(R.drawable.ic_category_arrow_up) expandableStatusMap[adapterPosition] = true + expandedAction.invoke() } } } extraCategoryList.forEachIndexed { index, c -> when (index % 3) { - 0 -> { + ExpandableLayout.State.COLLAPSED -> { subCategoryView = SubCategoryView(binding.root.context) val params = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT) @@ -117,8 +127,8 @@ class CategoryDirectoryAdapter(context: Context, var categoryTitle: String) : Li subCategoryViewLinearLayout.addView(subCategoryView) subCategoryView?.setLeftCategory(c) } - 1 -> subCategoryView?.setCenterCategory(c) - 2 -> subCategoryView?.setRightCategory(c) + ExpandableLayout.State.COLLAPSING -> subCategoryView?.setCenterCategory(c) + ExpandableLayout.State.EXPANDED -> subCategoryView?.setRightCategory(c) } } } else { diff --git a/app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryFragment.kt b/app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryFragment.kt index 7a90375d87..418627cf15 100644 --- a/app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryFragment.kt @@ -39,6 +39,7 @@ class CategoryDirectoryFragment : ListFragment() { } } + @Subscribe(threadMode = ThreadMode.MAIN) + fun onEventMainThread(networkState: EBNetworkState) { + val player = JzvdMgr.getCurrentJzvd() + if (!NetworkUtils.isNetworkConnected(requireContext()) + && player != null + && player.currentState == Jzvd.CURRENT_STATE_PLAYING) { + toast("当前使用移动数据网络") + } + } + // 下载被删除事件 @Subscribe(threadMode = ThreadMode.MAIN) fun onEventMainThread(status: EBDownloadStatus) { diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailContainerFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailContainerFragment.kt index 5542dd8c32..4ed1c25bb3 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailContainerFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailContainerFragment.kt @@ -44,9 +44,9 @@ class AnswerDetailContainerFragment : NormalFragment() { mFragmentAdapter = AnswerDetailFragmentStatePagerAdapter(fragmentManager!!) { AnswerDetailFragment().apply { - if (!mHasPassedOneTimeArgumentToChild) { - this.arguments?.putBoolean(EntranceUtils.KEY_SHOW_ANSWER_COMMENT, false) - this.arguments?.putBoolean(EntranceUtils.KEY_RECOMMENDS_CONTENTS, false) + if (mHasPassedOneTimeArgumentToChild) { + this@AnswerDetailContainerFragment.arguments?.putBoolean(EntranceUtils.KEY_SHOW_ANSWER_COMMENT, false) + this@AnswerDetailContainerFragment.arguments?.putBoolean(EntranceUtils.KEY_RECOMMENDS_CONTENTS, false) } // 将外部的 argument 传给里面的 fragment diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt index e96c666bef..20c42215dc 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt @@ -135,9 +135,6 @@ class AnswerDetailFragment : NormalFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { mBinding.richEditor.addJavascriptInterface(JsInterface(), "imagelistener") mBinding.richEditor.addJavascriptInterface(OnLinkClickListener(), "OnLinkClickListener") - if (mIsShowCommentManager) { - mBaseHandler.postDelayed({ mBinding.bottomController?.ivComment?.performClick() }, 500) - } mSkeletonScreen = Skeleton.bind(mBinding.skeletonMask).load(R.layout.fragment_answer_detail_skeleton).shimmer(false).show() } @@ -885,6 +882,11 @@ class AnswerDetailFragment : NormalFragment() { mBinding.timeTv.text = String.format("编辑于 %s", NewsUtils.getFormattedTime(answerDetail.updateTime)) } + if (mIsShowCommentManager) { + mIsShowCommentManager = false + mBinding.bottomController?.ivComment?.performClick() + } + mBinding.scrollView.viewTreeObserver.addOnScrollChangedListener { try { if (mBinding.scrollView.scrollY > mBinding.titleContainer.top) { From d14c150070680b4d00c837d4fbc7d2a7ee8aee82 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Fri, 17 May 2019 16:28:32 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=AE=8C=E6=88=90=E9=9C=80=E6=B1=82'?= =?UTF-8?q?=E6=89=80=E6=9C=89=E6=B8=B8=E6=88=8F=E5=90=8D=E5=AD=97=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=88=90=E2=80=9C=E5=90=8D=E7=A7=B0+=E5=90=8E?= =?UTF-8?q?=E7=BC=80=E2=80=9D=E7=9A=84=E6=A0=BC=E5=BC=8F=E7=9A=84'=20https?= =?UTF-8?q?://gitlab.ghzs.com/pm/halo-app-issues/issues/521?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/entity/GameEntity.kt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt index ebb805e675..eb41efe78e 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt @@ -14,7 +14,10 @@ data class GameEntity( @SerializedName("_id") var id: String = "", var icon: String? = null, - var name: String? = null, + @SerializedName("name") + private var mName: String? = null, // 将 name 变成私有 mName 调用 name 时直接拼接成 mName + nameSuffix + @SerializedName("name_suffix") + var nameSuffix: String = "", var brief: String? = null, private var tag: ArrayList? = null, @@ -110,13 +113,20 @@ data class GameEntity( @IgnoredOnParcel var gameLocation: GameLocation? = null + @IgnoredOnParcel + var name: String? + get() = mName + nameSuffix + set(value) { + mName = value + } + constructor(id: String) : this() { this.id = id } constructor(id: String, name: String?) : this() { this.id = id - this.name = name + this.mName = name } fun getTag(): ArrayList { @@ -172,7 +182,7 @@ data class GameEntity( val gameEntity = GameEntity() gameEntity.id = id gameEntity.icon = icon - gameEntity.name = name + gameEntity.mName = name gameEntity.brief = brief if (tag != null) { gameEntity.tag = ArrayList(tag!!)