光环助手V5.0.0-新社区展示功能(0630 运营测试问题 4)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_106346

This commit is contained in:
lyr
2021-07-01 17:54:36 +08:00
parent 1b7a601cee
commit 1bcb343355
8 changed files with 69 additions and 7 deletions

View File

@ -5,7 +5,6 @@ import android.view.View
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.gh.common.AppExecutor
import com.gh.common.constant.Constants
import com.gh.common.util.*
import com.gh.common.view.divider.HorizontalDividerItemDecoration
import com.gh.gamecenter.R
@ -16,6 +15,7 @@ import com.gh.gamecenter.eventbus.EBTypeChange
import com.gh.gamecenter.forum.home.ForumScrollCalculatorHelper
import com.gh.gamecenter.qa.CommunityFragment
import com.gh.gamecenter.qa.entity.AnswerEntity
import com.gh.gamecenter.video.detail.CustomManager
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
@ -195,6 +195,14 @@ class ForumArticleAskListFragment : ListFragment<AnswerEntity, ForumArticleAskLi
override fun provideSyncAdapter(): ForumArticleAskListAdapter = mAdapter
override fun onBackPressed(): Boolean {
mScrollCalculatorHelper?.currentPlayer?.run {
return (isIfCurrentIsFullscreen
&& CustomManager.backFromWindowFull(requireActivity(), getKey()))
}
return super.onBackPressed()
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onEvent(detail: EBDeleteDetail) {
val currentEntity = mAdapter.entityList?.find { it.id == detail.id }

View File

@ -3,12 +3,16 @@ package com.gh.gamecenter.forum.detail
import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.fragment.app.Fragment
import com.gh.base.BaseActivity
import com.gh.common.util.DisplayUtils
import com.gh.common.util.EntranceUtils
import com.gh.gamecenter.R
class ForumDetailActivity : BaseActivity() {
private var mContainerFragment: Fragment? = null
override fun getLayoutId(): Int {
return R.layout.activity_amway
}
@ -18,10 +22,10 @@ class ForumDetailActivity : BaseActivity() {
DisplayUtils.transparentStatusBar(this)
val containerFragment = supportFragmentManager.findFragmentByTag(ForumDetailFragment::class.java.simpleName)
mContainerFragment = supportFragmentManager.findFragmentByTag(ForumDetailFragment::class.java.simpleName)
?: ForumDetailFragment().with(intent.extras)
// 若 placeholder 外层为 RelativeLayout 的话,会出现莫名的偏移
supportFragmentManager.beginTransaction().replace(R.id.placeholder, containerFragment, ForumDetailFragment::class.java.simpleName).commitAllowingStateLoss()
supportFragmentManager.beginTransaction().replace(R.id.placeholder, mContainerFragment!!, ForumDetailFragment::class.java.simpleName).commitAllowingStateLoss()
}
override fun getBusinessId(): Pair<String, String> {
@ -37,4 +41,11 @@ class ForumDetailActivity : BaseActivity() {
return intent
}
}
override fun handleBackPressed(): Boolean {
(mContainerFragment as? ForumDetailFragment)?.run {
return onBackPressed()
}
return super.handleBackPressed()
}
}

View File

@ -546,6 +546,10 @@ class ForumDetailFragment : BaseLazyTabFragment() {
mAllForumArticleAskListFragment?.insertDataToFirstIndex(entity)
}
override fun onBackPressed(): Boolean {
return (mFragmentsList[mBinding.fragmentViewPager.currentItem] as ForumArticleAskListFragment).onBackPressed()
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onEventMainThread(status: EBTypeChange) {
if (status.type == EB_SHOW_QUESTION_BUTTON) {

View File

@ -267,6 +267,15 @@ class CommunityHomeFragment : LazyFragment() {
(mFragmentList[0] as? ForumArticleListFragment)?.insertDataToFirstIndex(entity)
}
override fun onBackPressed(): Boolean {
mBinding?.viewPager?.run {
if (currentItem == 0) {
return (mFragmentList[0] as ForumArticleListFragment).onBackPressed()
}
}
return super.onBackPressed()
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onEventMainThread(status: EBTypeChange) {
if (status.type == CommunityFragment.EB_SHOW_QUESTION_BUTTON) {

View File

@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModelProviders
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.gh.common.AppExecutor
import com.gh.common.constant.Constants
import com.gh.common.iinterface.IScrollable
import com.gh.common.util.*
import com.gh.gamecenter.R
@ -21,6 +20,7 @@ import com.gh.gamecenter.forum.home.ForumScrollCalculatorHelper.Companion.savePl
import com.gh.gamecenter.qa.CommunityFragment
import com.gh.gamecenter.qa.entity.ArticleEntity
import com.gh.gamecenter.user.UserViewModel
import com.gh.gamecenter.video.detail.CustomManager
import com.google.android.material.appbar.AppBarLayout
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
@ -250,6 +250,14 @@ class ForumArticleListFragment : LazyListFragment<ArticleEntity, ForumArticleLis
override fun provideSyncAdapter(): ForumArticleListAdapter = provideListAdapter()
override fun onBackPressed(): Boolean {
mScrollCalculatorHelper?.currentPlayer?.run {
return (isIfCurrentIsFullscreen
&& CustomManager.backFromWindowFull(requireActivity(), getKey()))
}
return super.onBackPressed()
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onEvent(detail: EBDeleteDetail){
mAdapter?.run {

View File

@ -113,6 +113,7 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem
private MainWrapperViewModel mViewModel;
private MessageUnreadViewModel mMessageUnreadViewModel;
private HomeVideoFragment homeVideoFragment;
private CommunityHomeFragment mCommunityHomeFragment;
private String[] resAssets = {"lottie/tab_home.json", "lottie/tab_game.json", "lottie/tab_forum.json", "lottie/tab_video.json", "tab_mine.gif"};
@Override
@ -147,7 +148,8 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem
videoArgs.putBoolean(EntranceUtils.KEY_IS_HOME_VIDEO, true);
homeVideoFragment.setArguments(videoArgs);
fragments.add(new CommunityHomeFragment());
mCommunityHomeFragment = new CommunityHomeFragment();
fragments.add(mCommunityHomeFragment);
fragments.add(homeVideoFragment);
if (mViewModel.shouldHideVideoTab()) {
@ -549,6 +551,10 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem
if (homeVideoFragment.getCurrentFragment() != null) {
return homeVideoFragment.getCurrentFragment().onHandleBackPressed();
}
if (mViewPager.getCurrentItem() == INDEX_BBS) {
return mCommunityHomeFragment.onBackPressed();
}
return false;
}

View File

@ -628,6 +628,15 @@ class UserHomeFragment : NormalFragment() {
return bitmap
}
override fun onBackPressed(): Boolean {
mHomeBinding?.viewpager?.run {
if (currentItem == 1) {
return (mFragmentList[1] as UserHistoryFragment).onBackPressed()
}
}
return super.onBackPressed()
}
companion object {
const val LOCATION = "个人主页"
}

View File

@ -8,7 +8,6 @@ import android.widget.TextView
import androidx.core.os.bundleOf
import androidx.recyclerview.widget.RecyclerView
import com.gh.common.AppExecutor
import com.gh.common.constant.Constants
import com.gh.common.util.*
import com.gh.gamecenter.R
import com.gh.gamecenter.baselist.ListAdapter
@ -20,7 +19,6 @@ import com.gh.gamecenter.entity.PersonalHistoryEntity
import com.gh.gamecenter.entity.RatingComment
import com.gh.gamecenter.forum.home.ForumScrollCalculatorHelper
import com.gh.gamecenter.gamedetail.rating.RatingReplyActivity
import com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity
import com.gh.gamecenter.qa.answer.detail.SimpleAnswerDetailActivity
import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity
import com.gh.gamecenter.qa.entity.AnswerDetailEntity
@ -28,6 +26,7 @@ import com.gh.gamecenter.qa.entity.ArticleDetailEntity
import com.gh.gamecenter.qa.entity.QuestionsDetailEntity
import com.gh.gamecenter.qa.video.detail.ForumVideoDetailActivity
import com.gh.gamecenter.qa.questions.newdetail.NewQuestionDetailActivity
import com.gh.gamecenter.video.detail.CustomManager
import com.halo.assistant.HaloApp
class UserHistoryFragment : ListFragment<PersonalHistoryEntity, UserHistoryViewModel>() {
@ -323,6 +322,14 @@ class UserHistoryFragment : ListFragment<PersonalHistoryEntity, UserHistoryViewM
}
}
override fun onBackPressed(): Boolean {
mScrollCalculatorHelper?.currentPlayer?.run {
return (isIfCurrentIsFullscreen
&& CustomManager.backFromWindowFull(requireActivity(), getKey()))
}
return super.onBackPressed()
}
companion object {
const val USER_ID = "user_id"
const val SCENE = "scene"