Compare commits

...

15 Commits

Author SHA1 Message Date
a055dc6316 工具箱 2025-01-22 09:32:23 +08:00
644e3b008f 播放指定视频 2025-01-16 15:10:37 +08:00
4467168947 专题合集 2025-01-16 14:51:22 +08:00
8a70833107 分类详情 2025-01-16 14:23:39 +08:00
827ba86966 页面跳转适配新的跳转风格(一) 2025-01-16 14:09:15 +08:00
fd36a16dde 社区专题 2025-01-15 18:04:30 +08:00
bcf287f837 视频合集 2025-01-15 15:36:37 +08:00
f9c26e748f 播放指定视频 2025-01-15 15:28:05 +08:00
32e27d5d32 上传视频 2025-01-15 14:31:18 +08:00
9e232aba7b 帖子详情 2025-01-15 10:47:56 +08:00
a3c7f7b433 回答详情 2025-01-15 09:37:11 +08:00
ccee0647ef 提问详情 2025-01-14 15:58:40 +08:00
254b0b8696 礼包详情 2025-01-14 15:58:40 +08:00
5c16292019 专题详情 2025-01-14 15:58:40 +08:00
8fcf0d8099 新闻详情 2025-01-14 15:58:40 +08:00
41 changed files with 875 additions and 500 deletions

View File

@ -19,7 +19,6 @@ import com.gh.common.util.EntranceUtils.jumpActivity
import com.gh.common.util.EntranceUtils.jumpActivityCompat
import com.gh.gamecenter.*
import com.gh.gamecenter.amway.AmwayActivity
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
@ -47,7 +46,6 @@ import com.gh.gamecenter.feature.provider.IConcernInfoProvider
import com.gh.gamecenter.forum.detail.ForumDetailActivity
import com.gh.gamecenter.forum.home.CommunityActivity
import com.gh.gamecenter.forum.search.ForumOrUserSearchActivity
import com.gh.gamecenter.game.columncollection.detail.ColumnCollectionDetailActivity
import com.gh.gamecenter.game.columncollection.detail.ColumnCollectionDetailFragment
import com.gh.gamecenter.game.commoncollection.detail.CustomCommonCollectionDetailActivity
import com.gh.gamecenter.game.upload.GameSubmissionActivity
@ -69,11 +67,6 @@ import com.gh.gamecenter.newsdetail.NewsDetailActivity
import com.gh.gamecenter.personalhome.background.PersonalityBackgroundActivity
import com.gh.gamecenter.personalhome.border.AvatarBorderActivity
import com.gh.gamecenter.personalhome.home.UserHistoryViewModel
import com.gh.gamecenter.qa.answer.detail.SimpleAnswerDetailActivity
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.retrofit.RetrofitManager
import com.gh.gamecenter.servers.GameServerTestActivity
import com.gh.gamecenter.servers.GameServersActivity
@ -83,9 +76,7 @@ import com.gh.gamecenter.subject.SubjectActivity
import com.gh.gamecenter.tag.TagsActivity
import com.gh.gamecenter.toolbox.ToolBoxActivity
import com.gh.gamecenter.video.data.VideoDataActivity
import com.gh.gamecenter.video.detail.VideoDetailActivity
import com.gh.gamecenter.video.detail.VideoDetailContainerViewModel
import com.gh.gamecenter.video.game.GameVideoActivity
import com.gh.gamecenter.video.videomanager.VideoManagerActivity
import com.gh.gamecenter.wrapper.MainWrapperRepository
import com.gh.gamecenter.wrapper.ToolbarWrapperActivity
@ -680,20 +671,27 @@ object DirectUtils {
showSubjectTab: Boolean = false
) {
if (id.isEmpty()) return
val bundle = Bundle()
bundle.putString(KEY_TO, ColumnCollectionDetailActivity::class.java.name)
bundle.putString(KEY_ENTRANCE, entrance)
bundle.putString(KEY_COLLECTION_ID, id)
bundle.putString(KEY_COLUMNNAME, columnName)
bundle.putString(KEY_BLOCK_ID, blockId)
bundle.putString(KEY_BLOCK_NAME, blockName)
bundle.putString(KEY_COLUMN_COLLECTION_STYLE, style)
bundle.putInt(KEY_POSITION, position)
bundle.putBoolean(KEY_SHOW_SUBJECT_TAB, showSubjectTab)
if (exposureEvent != null) {
bundle.putParcelableArrayList(EntranceConsts.KEY_EXPOSURE_SOURCE_LIST, ArrayList(exposureEvent.source))
}
jumpActivity(context, bundle)
val uri = Uri.Builder()
.path(RouteConsts.activity.columnCollectionDetailActivity)
.appendQueryParameter(KEY_ENTRANCE, entrance)
.appendQueryParameter(KEY_COLLECTION_ID, id)
.appendQueryParameter(KEY_COLUMN_NAME, columnName)
.appendQueryParameter(KEY_BLOCK_ID, blockId)
.appendQueryParameter(KEY_BLOCK_NAME, blockName)
.appendQueryParameter(KEY_COLUMN_COLLECTION_STYLE, style)
.build()
TheRouter
.build(uri.toString())
.fillParams { bundle ->
bundle.putString(KEY_COLUMN_COLLECTION_STYLE, style)
bundle.putInt(KEY_POSITION, position)
bundle.putBoolean(KEY_SHOW_SUBJECT_TAB, showSubjectTab)
if (exposureEvent != null) {
bundle.putParcelableArrayList(KEY_EXPOSURE_SOURCE_LIST, ArrayList(exposureEvent.source))
}
}
.navigation(context)
}
/**
@ -745,7 +743,7 @@ object DirectUtils {
val bundle = Bundle()
bundle.putString(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
bundle.putString(KEY_TO, NewsDetailActivity::class.java.name)
bundle.putString(KEY_NEWSID, id)
bundle.putString(KEY_NEWS_ID, id)
if (entrance?.contains("隐私政策") == true) {
bundle.putBoolean(KEY_HIDE_USELESS_INFO, true)
}
@ -761,7 +759,7 @@ object DirectUtils {
val bundle = Bundle()
bundle.putString(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
bundle.putString(KEY_TO, NewsDetailActivity::class.java.name)
bundle.putString(KEY_NEWSID, id)
bundle.putString(KEY_NEWS_ID, id)
bundle.putBoolean(KEY_HIDE_USELESS_INFO, hideUselessInfo)
jumpActivity(context, bundle)
}
@ -898,13 +896,15 @@ object DirectUtils {
*/
@JvmStatic
fun directToGameDetailVideoStreaming(context: Context, id: String, entrance: String? = null) {
val bundle = Bundle()
bundle.putString(KEY_TO, GameVideoActivity::class.java.name)
bundle.putString(KEY_ENTRANCE, entrance)
bundle.putString(KEY_GAMEID, id)
bundle.putBoolean(KEY_OPEN_VIDEO_STREAMING, true)
bundle.putString(KEY_TARGET, EntranceConsts.TAB_TYPE_DESC)
jumpActivity(context, bundle)
val uri = Uri.Builder()
.path(RouteConsts.activity.gameVideoActivity)
.appendQueryParameter(KEY_ENTRANCE, entrance)
.appendQueryParameter(KEY_GAME_ID, id)
.build()
TheRouter
.build(uri.toString())
.navigation(context)
}
@JvmStatic
@ -1068,23 +1068,31 @@ object DirectUtils {
@JvmStatic
fun directToToolbox(context: Context, gameId: String, toolboxUrl: String, entrance: String = ENTRANCE_BROWSER) {
val bundle = Bundle()
bundle.putString(KEY_ENTRANCE, entrance)
bundle.putString(KEY_TO, ToolBoxActivity::class.java.name)
bundle.putString(KEY_GAMEID, gameId)
bundle.putString(KEY_URL, toolboxUrl)
jumpActivity(context, bundle)
val uri = Uri.Builder()
.path(RouteConsts.activity.toolBoxActivity)
.appendQueryParameter(KEY_ENTRANCE, entrance)
.appendQueryParameter(KEY_GAME_ID, gameId)
.appendQueryParameter(KEY_URL, toolboxUrl)
.build()
TheRouter
.build(uri.toString())
.navigation(context)
}
@JvmStatic
fun directToAnswerDetail(context: Context, id: String, entrance: String? = null, path: String? = null) {
if (id.isEmpty()) return
val bundle = Bundle()
bundle.putString(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
bundle.putString(KEY_TO, SimpleAnswerDetailActivity::class.java.name)
bundle.putString(KEY_PATH, path)
bundle.putString(KEY_ANSWER_ID, id)
jumpActivity(context, bundle)
val uri = Uri.Builder()
.path(RouteConsts.activity.answerDetailActivity)
.appendQueryParameter(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
.appendQueryParameter(KEY_PATH, path)
.appendQueryParameter(KEY_ANSWER_ID, id)
.build()
TheRouter
.build(uri.toString())
.navigation(context)
}
@JvmStatic
@ -1096,13 +1104,17 @@ object DirectUtils {
sourceEntrance: String = ""
) {
if (id.isEmpty()) return
val bundle = Bundle()
bundle.putString(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
bundle.putString(KEY_TO, NewQuestionDetailActivity::class.java.name)
bundle.putString(KEY_PATH, path)
bundle.putString(KEY_QUESTIONS_ID, id)
bundle.putString(KEY_SOURCE_ENTRANCE, sourceEntrance)
jumpActivity(context, bundle)
val uri = Uri.Builder()
.path(RouteConsts.activity.questionDetailActivity)
.appendQueryParameter(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
.appendQueryParameter(KEY_PATH, path)
.appendQueryParameter(KEY_QUESTIONS_ID, id)
.appendQueryParameter(KEY_SOURCE_ENTRANCE, sourceEntrance)
.build()
TheRouter
.build(uri.toString())
.navigation(context)
}
@JvmStatic
@ -1229,14 +1241,20 @@ object DirectUtils {
path: String?,
sourceEntrance: String = ""
) {
val bundle = Bundle()
bundle.putString(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
bundle.putString(KEY_PATH, path)
bundle.putString(KEY_TO, ArticleDetailActivity::class.java.name)
bundle.putString(KEY_COMMUNITY_ARTICLE_ID, articleId)
bundle.putString(KEY_SOURCE_ENTRANCE, sourceEntrance)
bundle.putParcelable(KEY_COMMUNITY_DATA, CommunityEntity(id = communityId!!))
jumpActivity(context, bundle)
val uri = Uri.Builder()
.path(RouteConsts.activity.articleDetailActivity)
.appendQueryParameter(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
.appendQueryParameter(KEY_PATH, path)
.appendQueryParameter(KEY_COMMUNITY_ARTICLE_ID, articleId)
.appendQueryParameter(KEY_SOURCE_ENTRANCE, sourceEntrance)
.build()
TheRouter
.build(uri.toString())
.fillParams {
it.putParcelable(KEY_COMMUNITY_DATA, CommunityEntity(id = communityId!!))
}
.navigation(context)
}
@JvmStatic
@ -1249,14 +1267,21 @@ object DirectUtils {
sourceEntrance: String = "",
) {
if (articleId.isNullOrEmpty()) return
val bundle = Bundle()
bundle.putString(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
bundle.putString(KEY_PATH, path)
bundle.putString(KEY_TO, ArticleDetailActivity::class.java.name)
bundle.putString(KEY_COMMUNITY_ARTICLE_ID, articleId)
bundle.putString(KEY_SOURCE_ENTRANCE, sourceEntrance)
bundle.putParcelable(KEY_COMMUNITY_DATA, community)
jumpActivity(context, bundle)
val uri = Uri.Builder()
.path(RouteConsts.activity.articleDetailActivity)
.appendQueryParameter(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
.appendQueryParameter(KEY_PATH, path)
.appendQueryParameter(KEY_COMMUNITY_ARTICLE_ID, articleId)
.appendQueryParameter(KEY_SOURCE_ENTRANCE, sourceEntrance)
.build()
TheRouter
.build(uri.toString())
.fillParams {
it.putParcelable(KEY_COMMUNITY_DATA, community)
}
.navigation(context)
}
/**
@ -1271,13 +1296,20 @@ object DirectUtils {
path: String?
) {
if (subjectId.isEmpty()) return
val bundle = Bundle()
bundle.putString(KEY_PATH, path)
bundle.putString(KEY_TO, CommunitySubjectActivity::class.java.name)
bundle.putString(KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
bundle.putString(KEY_COLUMN_ID, subjectId)
bundle.putParcelable(KEY_COMMUNITY_DATA, community)
jumpActivity(context, bundle)
val uri = Uri.Builder()
.path(RouteConsts.activity.communitySubjectActivity)
.appendQueryParameter(KEY_PATH, path)
.appendQueryParameter(KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
.appendQueryParameter(KEY_COLUMN_ID, subjectId)
.build()
TheRouter
.build(uri.toString())
.fillParams {
it.putParcelable(KEY_COMMUNITY_DATA, community)
}
.navigation(context)
}
@JvmStatic
@ -1287,17 +1319,17 @@ object DirectUtils {
path: String? = "",
sourceEntrance: String = ""
) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
val bundle = Bundle()
bundle.putString(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
bundle.putString(KEY_TO, ForumVideoDetailActivity::class.java.name)
bundle.putString(KEY_VIDEO_ID, videoId);
bundle.putString(KEY_PATH, path)
bundle.putString(KEY_SOURCE_ENTRANCE, sourceEntrance)
jumpActivity(context, bundle)
} else {
DialogHelper.showVideoUnsupportedDialog(context)
}
val uri = Uri.Builder()
.path(RouteConsts.activity.forumVideoDetailActivity)
.appendQueryParameter(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
.appendQueryParameter(KEY_PATH, path)
.appendQueryParameter(KEY_VIDEO_ID, videoId)
.appendQueryParameter(KEY_SOURCE_ENTRANCE, sourceEntrance)
.build()
TheRouter
.build(uri.toString())
.navigation(context)
}
/**
@ -1322,28 +1354,31 @@ object DirectUtils {
isHomeVideo: Boolean = false,
sourceEntrance: String = ""
) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
val bundle = Bundle()
bundle.putString(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
bundle.putString(KEY_TO, VideoDetailActivity::class.java.name)
bundle.putString(KEY_VIDEO_ID, videoId);
bundle.putString(KEY_PATH, path)
bundle.putString(KEY_ID, videoId)
bundle.putString(KEY_GAMEID, gameId)
bundle.putString(KEY_LOCATION, fromLocation)
bundle.putBoolean(KEY_SHOW_COMMENT, showComment)
bundle.putString(KEY_REFERER, referer)
bundle.putString(KEY_TYPE, type)
bundle.putString(KEY_ACTIVITY_NAME, act)
bundle.putString(KEY_PAGINATION_TYPE, paginationType)
bundle.putString(KEY_FIELD_ID, fieldId)
bundle.putString(KEY_SECTION_NAME, sectionName)
bundle.putBoolean(KEY_IS_HOME_VIDEO, isHomeVideo)
SensorsBridge.trackAccessVideoStreaming(sourceEntrance)
jumpActivity(context, bundle)
} else {
DialogHelper.showVideoUnsupportedDialog(context)
}
SensorsBridge.trackAccessVideoStreaming(sourceEntrance)
val uri = Uri.Builder()
.path(RouteConsts.activity.videoDetailActivity)
.appendQueryParameter(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER)
.appendQueryParameter(KEY_PATH, path)
.appendQueryParameter(KEY_VIDEO_ID, videoId)
.appendQueryParameter(KEY_GAME_ID, gameId)
.appendQueryParameter(KEY_ACTIVITY_NAME, act)
.appendQueryParameter(KEY_PAGINATION_TYPE, paginationType)
.appendQueryParameter(KEY_FIELD_ID, fieldId)
.appendQueryParameter(KEY_SECTION_NAME, sectionName)
.build()
TheRouter
.build(uri.toString())
.fillParams { bundle ->
bundle.putString(KEY_ID, videoId)
bundle.putString(KEY_REFERER, referer)
bundle.putString(KEY_TYPE, type)
bundle.putBoolean(KEY_SHOW_COMMENT, showComment)
bundle.putString(KEY_LOCATION, fromLocation)
bundle.putBoolean(KEY_IS_HOME_VIDEO, isHomeVideo)
}
.navigation(context)
}
@JvmStatic
@ -1438,8 +1473,8 @@ object DirectUtils {
) {
val bundle = Bundle()
bundle.putString(KEY_PATH, path)
bundle.putParcelable(VideoLinkEntity::class.java.simpleName, linkEntity)
bundle.putParcelable(SimpleGameEntity::class.java.simpleName, simpleGameEntity)
bundle.putParcelable(KEY_VIDEO_LINK_ENTITY, linkEntity)
bundle.putParcelable(KEY_SIMPLE_GAME_ENTITY, simpleGameEntity)
bundle.putString(KEY_TO, VideoManagerActivity::class.java.name)
bundle.putString(KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
jumpActivity(context, bundle)
@ -1472,13 +1507,16 @@ object DirectUtils {
@JvmStatic
fun directToGameVideo(context: Context, gameId: String, entrance: String? = null, path: String? = "") {
if (gameId.isEmpty()) return
val bundle = Bundle()
bundle.putString(KEY_PATH, path)
bundle.putString(KEY_TO, GameVideoActivity::class.java.name)
bundle.putString(KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
bundle.putString(KEY_GAMEID, gameId)
// context.startActivity(GameVideoActivity.getIntent(context, gameId, entrance, path))
jumpActivity(context, bundle)
val uri = Uri.Builder()
.path(RouteConsts.activity.gameVideoActivity)
.appendQueryParameter(KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
.appendQueryParameter(KEY_PATH, path)
.appendQueryParameter(KEY_GAME_ID, gameId)
.build()
TheRouter
.build(uri.toString())
.navigation(context)
}
@JvmStatic
@ -1503,16 +1541,23 @@ object DirectUtils {
exposureEvent: ExposureEvent? = null,
) {
if (categoryId.isEmpty()) return
val bundle = Bundle()
bundle.putString(KEY_TO, CategoryV2Activity::class.java.name)
bundle.putString(KEY_CATEGORY_ID, categoryId)
bundle.putString(KEY_CATEGORY_TITLE, categoryTitle)
bundle.putString(KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
if (exposureEvent != null) bundle.putParcelableArrayList(
KEY_EXPOSURE_SOURCE_LIST,
ArrayList(exposureEvent.source)
)
jumpActivity(context, bundle)
val uri = Uri.Builder()
.path(RouteConsts.activity.categoryV2Activity)
.appendQueryParameter(KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
.appendQueryParameter(KEY_CATEGORY_ID, categoryId)
.appendQueryParameter(KEY_CATEGORY_TITLE, categoryTitle)
.build()
TheRouter
.build(uri.toString())
.fillParams {
if (exposureEvent != null) it.putParcelableArrayList(
KEY_EXPOSURE_SOURCE_LIST,
ArrayList(exposureEvent.source)
)
}
.navigation(context)
}
/**

View File

@ -2,12 +2,10 @@ package com.gh.common.util
import android.os.Bundle
import androidx.fragment.app.Fragment
import com.therouter.TheRouter
import com.gh.common.iinterface.ISuperiorChain
import com.gh.gamecenter.amway.AmwayFragment
import com.gh.gamecenter.category2.CategoryV2Fragment
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.common.entity.LinkEntity
import com.gh.gamecenter.common.provider.IHelpAndFeedbackProvider
import com.gh.gamecenter.discovery.DiscoveryFragment
@ -38,6 +36,7 @@ import com.gh.gamecenter.toolbox.ToolboxFragment
import com.gh.gamecenter.video.detail.HomeVideoFragment
import com.gh.gamecenter.wrapper.ToolbarWrapperFragment
import com.halo.assistant.fragment.WebFragment
import com.therouter.TheRouter
/**
* 通用跳转Fragment方法
@ -182,7 +181,7 @@ object ViewPagerFragmentHelper {
className = ColumnCollectionDetailFragment::class.java.name
bundle.putString(EntranceConsts.KEY_COLLECTION_ID, entity.link)
bundle.putInt(EntranceConsts.KEY_POSITION, 0)
bundle.putString(EntranceConsts.KEY_COLUMNNAME, entity.text)
bundle.putString(EntranceConsts.KEY_COLUMN_NAME, entity.text)
bundle.putBoolean(EntranceConsts.KEY_IS_COLUMN_COLLECTION, true)
bundle.putString(EntranceConsts.KEY_SUBJECT_TYPE, "tab")
}
@ -208,7 +207,7 @@ object ViewPagerFragmentHelper {
TYPE_COMMON_COLLECTION -> {
className = CustomCommonCollectionDetailFragment::class.java.name
bundle.putString(EntranceConsts.KEY_COLLECTION_ID, entity.link)
bundle.putString(EntranceConsts.KEY_COLUMNNAME, entity.text)
bundle.putString(EntranceConsts.KEY_COLUMN_NAME, entity.text)
}
// web链接
TYPE_WEB -> {
@ -238,7 +237,7 @@ object ViewPagerFragmentHelper {
// 文章
TYPE_ARTICLE -> {
className = NewsDetailFragment::class.java.name
bundle.putString(EntranceConsts.KEY_NEWSID, entity.link)
bundle.putString(EntranceConsts.KEY_NEWS_ID, entity.link)
}
// 社区专题
TYPE_COMMUNITY_COLUMN -> {

View File

@ -48,7 +48,7 @@ public class MessageDetailActivity extends ToolBarActivity {
public static Intent getMessageDetailIntent(Context context, CommentEntity entity, String newsId) {
Intent intent = new Intent(context, MessageDetailActivity.class);
intent.putExtra("commentNum", -1);
intent.putExtra(EntranceConsts.KEY_NEWSID, newsId);
intent.putExtra(EntranceConsts.KEY_NEWS_ID, newsId);
intent.putExtra("openSoftInput", true);
intent.putExtra(CommentEntity.TAG, entity);
@ -66,7 +66,7 @@ public class MessageDetailActivity extends ToolBarActivity {
public static Intent getIntentById(Context context, String newsId, Integer commentNum, Boolean openSoftInput, String entrance) {
Intent intent = new Intent(context, MessageDetailActivity.class);
intent.putExtra(EntranceConsts.KEY_NEWSID, newsId);
intent.putExtra(EntranceConsts.KEY_NEWS_ID, newsId);
intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance);
intent.putExtra("commentNum", commentNum);
intent.putExtra("openSoftInput", openSoftInput);
@ -86,10 +86,10 @@ public class MessageDetailActivity extends ToolBarActivity {
if (fragment.getArguments() != null) {
Object concernEntity = HaloApp.get(ConcernEntity.TAG, false);
Object commentEntity = fragment.requireArguments().getParcelable(CommentEntity.TAG);
if (fragment.getArguments().getString(EntranceConsts.KEY_NEWSID) != null && commentEntity != null) {
return new Pair(((CommentEntity) commentEntity).getId(), fragment.getArguments().getString(EntranceConsts.KEY_NEWSID));
} else if (fragment.getArguments().getString(EntranceConsts.KEY_NEWSID) != null) {
return new Pair(fragment.getArguments().getString(EntranceConsts.KEY_NEWSID), "");
if (fragment.getArguments().getString(EntranceConsts.KEY_NEWS_ID) != null && commentEntity != null) {
return new Pair(((CommentEntity) commentEntity).getId(), fragment.getArguments().getString(EntranceConsts.KEY_NEWS_ID));
} else if (fragment.getArguments().getString(EntranceConsts.KEY_NEWS_ID) != null) {
return new Pair(fragment.getArguments().getString(EntranceConsts.KEY_NEWS_ID), "");
} else if (concernEntity != null) {
return new Pair(((ConcernEntity) concernEntity).getId(), "");
} else {

View File

@ -55,7 +55,7 @@ public class ShareCardActivity extends ToolBarActivity {
bundle.putString(EntranceConsts.KEY_GAME_ICON_URL, concernEntity.getGameIcon());
bundle.putString(EntranceConsts.KEY_SHARECONTENT, shareContent);
if (concernEntity.getLink() == null) {
bundle.putString(EntranceConsts.KEY_NEWSID, concernEntity.getId());
bundle.putString(EntranceConsts.KEY_NEWS_ID, concernEntity.getId());
}
intent.putExtras(bundle);
intent.putExtra(EntranceConsts.KEY_ENTRANCE, "(资讯:关注[2-4])");
@ -83,7 +83,7 @@ public class ShareCardActivity extends ToolBarActivity {
gameName = extras.getString(EntranceConsts.KEY_GAMENAME);
gameIconUrl = extras.getString(EntranceConsts.KEY_GAME_ICON_URL);
shareContent = extras.getString(EntranceConsts.KEY_SHARECONTENT);
newsId = extras.getString(EntranceConsts.KEY_NEWSID);
newsId = extras.getString(EntranceConsts.KEY_NEWS_ID);
picName = "shareImg.jpg";

View File

@ -26,14 +26,14 @@ import com.facebook.drawee.controller.ControllerListener;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.drawee.view.SimpleDraweeView;
import com.facebook.imagepipeline.image.ImageInfo;
import com.gh.gamecenter.common.base.activity.ToolBarActivity;
import com.gh.gamecenter.common.constant.EntranceConsts;
import com.gh.gamecenter.common.utils.ImageUtils;
import com.gh.common.util.MessageShareUtils;
import com.gh.common.util.QRCodeUtils;
import com.gh.gamecenter.common.base.activity.ToolBarActivity;
import com.gh.gamecenter.common.constant.EntranceConsts;
import com.gh.gamecenter.common.retrofit.ObservableUtil;
import com.gh.gamecenter.common.utils.ImageUtils;
import com.gh.gamecenter.core.utils.StringUtils;
import com.gh.gamecenter.feature.entity.ConcernEntity;
import com.gh.gamecenter.common.retrofit.ObservableUtil;
import java.io.File;
import java.io.IOException;
@ -96,7 +96,7 @@ public class ShareCardPicActivity extends ToolBarActivity {
bundle.putString(EntranceConsts.KEY_GAME_ICON_URL, concernEntity.getGameIcon());
bundle.putString(EntranceConsts.KEY_SHARECONTENT, shareContent);
if (concernEntity.getLink() == null) {
bundle.putString(EntranceConsts.KEY_NEWSID, concernEntity.getId());
bundle.putString(EntranceConsts.KEY_NEWS_ID, concernEntity.getId());
}
if (concernEntity.getImg() != null && concernEntity.getImg().size() > 0) {
bundle.putStringArrayList(KEY_SHARE_ARRIMG, (ArrayList<String>) concernEntity.getImg());
@ -121,7 +121,7 @@ public class ShareCardPicActivity extends ToolBarActivity {
gameName = extras.getString(EntranceConsts.KEY_GAMENAME);
gameIconUrl = extras.getString(EntranceConsts.KEY_GAME_ICON_URL);
shareContent = extras.getString(EntranceConsts.KEY_SHARECONTENT);
newsId = extras.getString(EntranceConsts.KEY_NEWSID);
newsId = extras.getString(EntranceConsts.KEY_NEWS_ID);
List<String> arrImg = extras.getStringArrayList(KEY_SHARE_ARRIMG);
picName = "shareImgPic.jpg";

View File

@ -5,6 +5,7 @@ import static com.gh.gamecenter.common.constant.EntranceConsts.ENTRANCE_PUSH;
import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_ANSWER;
import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_ARCHIVE_LOGIN;
import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_ARTICLE;
import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_CATEGORY;
import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_COLUMN;
import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_COLUMN_COLLECTION;
import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_COMMUNITY;
@ -313,7 +314,10 @@ public class SkipActivity extends BaseActivity {
String columnId = uri.getQueryParameter("column_id");
DirectUtils.directToCommunityColumn(this, community, columnId, entrance, "");
break;
case HOST_CATEGORY:
title = uri.getQueryParameter("title");
DirectUtils.directCategoryV2(this, path, title, entrance, pathName, null);
break;
case HOST_COLUMN_COLLECTION:
DirectUtils.directToColumnCollection(this, path, -1, entrance, "", "", "", "", null,false);
break;

View File

@ -6,17 +6,17 @@ import android.os.Bundle
import android.text.TextUtils
import android.view.KeyEvent
import android.view.View
import com.therouter.router.Route
import com.gh.gamecenter.common.base.activity.ToolBarActivity
import com.gh.gamecenter.common.constant.Constants
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.common.entity.ToolBoxEntity
import com.gh.gamecenter.common.utils.EnvHelper
import com.gh.gamecenter.common.utils.updateStatusBarColor
import com.gh.gamecenter.feature.entity.ConcernEntity
import com.gh.gamecenter.feature.entity.NewsEntity
import com.gh.gamecenter.common.entity.ToolBoxEntity
import com.halo.assistant.fragment.WebFragment
import com.therouter.router.Route
@Route(path = RouteConsts.activity.webActivity)
open class WebActivity : ToolBarActivity() {
@ -193,7 +193,7 @@ open class WebActivity : ToolBarActivity() {
val bundle = Bundle()
bundle.putString(EntranceConsts.KEY_URL, concernLink)
bundle.putString(EntranceConsts.KEY_GAMENAME, concernGameName)
bundle.putString(EntranceConsts.KEY_NEWSID, concernId)
bundle.putString(EntranceConsts.KEY_NEWS_ID, concernId)
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance)
return getTargetIntent(
context,
@ -208,7 +208,7 @@ open class WebActivity : ToolBarActivity() {
val bundle = Bundle()
bundle.putString(EntranceConsts.KEY_URL, newsEntity.link)
bundle.putString(EntranceConsts.KEY_GAMENAME, newsEntity.gameName)
bundle.putString(EntranceConsts.KEY_NEWSID, newsEntity.id)
bundle.putString(EntranceConsts.KEY_NEWS_ID, newsEntity.id)
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance)
return getTargetIntent(
context,

View File

@ -328,7 +328,7 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter<ViewHolder> {
, StringUtils.buildString(mEntrance, "+(消息详情)")));
} else {
Intent intent = new Intent(mContext, NewsDetailActivity.class);
intent.putExtra(EntranceConsts.KEY_NEWSID, mConcernEntity.getId());
intent.putExtra(EntranceConsts.KEY_NEWS_ID, mConcernEntity.getId());
intent.putExtra(EntranceConsts.KEY_ENTRANCE, StringUtils.buildString(mEntrance, "+(消息详情)"));
mContext.startActivity(intent);
}

View File

@ -6,13 +6,30 @@ import android.os.Bundle
import com.gh.base.DownloadToolbarActivity
import com.gh.gamecenter.R
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.common.utils.updateStatusBarColor
import com.therouter.TheRouter
import com.therouter.router.Autowired
import com.therouter.router.Route
/**
* 新分类2.0
*/
@Route(path = RouteConsts.activity.categoryV2Activity, description = "新分类2.0")
class CategoryV2Activity : DownloadToolbarActivity() {
@JvmField
@Autowired(name = EntranceConsts.KEY_CATEGORY_ID, description = "分类ID", required = true)
var categoryId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_CATEGORY_TITLE, description = "分类标题", required = true)
var categoryTitle: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_ENTRANCE, description = "入口埋点字段(开发内部使用)")
var entrance: String? = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
updateStatusBarColor(com.gh.gamecenter.common.R.color.ui_surface, com.gh.gamecenter.common.R.color.ui_surface)
@ -23,7 +40,7 @@ class CategoryV2Activity : DownloadToolbarActivity() {
}
override fun provideNormalIntent(): Intent {
return getTargetIntent(this, CategoryV2Activity::class.java, CategoryV2Fragment::class.java)
return getTargetIntent(this, CategoryV2Activity::class.java, CategoryV2Fragment::class.java, intent.extras)
}
override fun isAutoResetViewBackgroundEnabled() = true
@ -36,11 +53,13 @@ class CategoryV2Activity : DownloadToolbarActivity() {
companion object {
fun getIntent(context: Context, catalogId: String, catalogTitle: String, entrance: String): Intent {
val bundle = Bundle()
bundle.putString(EntranceConsts.KEY_CATEGORY_ID, catalogId)
bundle.putString(EntranceConsts.KEY_CATEGORY_TITLE, catalogTitle)
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance)
return getTargetIntent(context, CategoryV2Activity::class.java, CategoryV2Fragment::class.java, bundle)
val navigator = TheRouter.build(RouteConsts.activity.articleDetailActivity)
.fillParams { bundle ->
bundle.putString(EntranceConsts.KEY_CATEGORY_ID, catalogId)
bundle.putString(EntranceConsts.KEY_CATEGORY_TITLE, catalogTitle)
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance)
}
return navigator.createIntent(context)
}
}
}

View File

@ -76,7 +76,6 @@ import com.gh.gamecenter.eventbus.EBTopCommunityChanged
import com.gh.gamecenter.eventbus.EBTypeChange
import com.gh.gamecenter.feature.entity.AnswerEntity
import com.gh.gamecenter.feature.entity.ForumVideoEntity
import com.gh.gamecenter.feature.entity.GameEntity
import com.gh.gamecenter.feature.entity.UserEntity
import com.gh.gamecenter.forum.home.CommunityHomeFragment
import com.gh.gamecenter.forum.moderator.ApplyModeratorActivity

View File

@ -19,7 +19,6 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.OnScrollListener
import com.therouter.TheRouter
import com.gh.common.util.CheckLoginUtils
import com.gh.common.util.DirectUtils
import com.gh.gamecenter.GameDetailActivity
@ -54,6 +53,7 @@ import com.gh.gamecenter.login.user.UserManager
import com.gh.gamecenter.login.user.UserViewModel
import com.gh.gamecenter.newsdetail.NewsShareDialog
import com.shuyu.gsyvideoplayer.video.base.GSYVideoView
import com.therouter.TheRouter
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
@ -309,7 +309,7 @@ class FollowHomeFragment : LazyFragment(), IScrollable {
newDetailDestination.observe(viewLifecycleOwner, EventObserver {
TheRouter.build(RouteConsts.activity.newsDetailActivity)
.withString(EntranceConsts.KEY_NEWSID, it)
.withString(EntranceConsts.KEY_NEWS_ID, it)
.withString(EntranceConsts.KEY_ENTRANCE, "")
.navigation(requireActivity())
})

View File

@ -4,13 +4,41 @@ import android.content.Intent
import android.os.Bundle
import com.gh.gamecenter.common.base.activity.ToolBarActivity
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.common.utils.updateStatusBarColor
import com.therouter.router.Autowired
import com.therouter.router.Route
/**
* 游戏专题合集详情页
*/
@Route(path = RouteConsts.activity.columnCollectionDetailActivity, description = "专题合集详情")
class ColumnCollectionDetailActivity : ToolBarActivity() {
@JvmField
@Autowired(name = EntranceConsts.KEY_COLLECTION_ID, description = "合集ID", required = true)
var collectionId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_COLUMN_NAME, description = "专题名", required = true)
var columnName: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_BLOCK_ID, description = "板块ID")
var blockId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_BLOCK_NAME, description = "板块名称")
var blockName: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_COLUMN_COLLECTION_STYLE, description = "专题合集样式")
var columnCollectionStyle: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_ENTRANCE, description = "入口埋点字段(开发内部使用)")
var entrance: String? = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
updateStatusBarColor(com.gh.gamecenter.common.R.color.ui_surface, com.gh.gamecenter.common.R.color.ui_surface)
@ -32,13 +60,6 @@ class ColumnCollectionDetailActivity : ToolBarActivity() {
updateStatusBarColor(com.gh.gamecenter.common.R.color.ui_surface, com.gh.gamecenter.common.R.color.ui_surface)
}
override fun getBusinessId(): Pair<String, String> {
val fragment = targetFragment as? ColumnCollectionDetailFragment?
return if (fragment?.arguments != null) {
Pair(fragment.requireArguments().getString(EntranceConsts.KEY_COLLECTION_ID) ?: "", "")
} else {
super.getBusinessId()
}
}
override fun getBusinessId(): Pair<String, String> = Pair(collectionId ?: "", "")
}

View File

@ -86,7 +86,6 @@ import com.gh.gamecenter.home.video.ScrollCalculatorHelper
import com.gh.gamecenter.login.user.UserViewModel
import com.gh.gamecenter.newsdetail.NewsDetailActivity
import com.gh.gamecenter.packagehelper.PackageViewModel
import com.gh.gamecenter.SearchActivity
import com.gh.gamecenter.simulatorgame.SimulatorGameActivity
import com.gh.gamecenter.tag.TagsActivity
import com.gh.gamecenter.video.detail.CustomManager

View File

@ -19,9 +19,8 @@ import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder;
import com.gh.gamecenter.common.callback.OnRequestCallBackListener;
import com.gh.gamecenter.common.retrofit.Response;
import com.gh.gamecenter.common.utils.DialogHelper;
import com.gh.gamecenter.common.utils.SensorsBridge;
import com.gh.gamecenter.feature.utils.PlatformUtils;
import com.gh.gamecenter.common.utils.ExtensionsKt;
import com.gh.gamecenter.common.utils.SensorsBridge;
import com.gh.gamecenter.common.view.BugFixedPopupWindow;
import com.gh.gamecenter.common.viewholder.FooterViewHolder;
import com.gh.gamecenter.core.utils.TimeUtils;
@ -32,6 +31,7 @@ import com.gh.gamecenter.feature.entity.LibaoStatusEntity;
import com.gh.gamecenter.feature.entity.MeEntity;
import com.gh.gamecenter.feature.entity.UserDataLibaoEntity;
import com.gh.gamecenter.feature.game.GameItemViewHolder;
import com.gh.gamecenter.feature.utils.PlatformUtils;
import com.gh.gamecenter.login.user.UserManager;
import com.gh.gamecenter.retrofit.RetrofitManager;
import com.lightgame.adapter.BaseRecyclerAdapter;

View File

@ -6,13 +6,16 @@ import android.os.Bundle;
import androidx.annotation.NonNull;
import com.therouter.router.Route;
import com.gh.gamecenter.common.base.activity.ToolBarActivity;
import com.gh.gamecenter.common.constant.EntranceConsts;
import com.gh.gamecenter.common.constant.RouteConsts;
import com.gh.gamecenter.common.utils.ExtensionsKt;
import com.gh.gamecenter.feature.entity.LibaoEntity;
import com.halo.assistant.HaloApp;
import com.therouter.TheRouter;
import com.therouter.router.Autowired;
import com.therouter.router.Navigator;
import com.therouter.router.Route;
import kotlin.Pair;
@ -20,19 +23,27 @@ import kotlin.Pair;
* Created by khy on 2016/12/13.
* 礼包详情
*/
@Route(path = RouteConsts.activity.libaoDetailActivity)
@Route(path = RouteConsts.activity.libaoDetailActivity, description = "礼包详情")
public class LibaoDetailActivity extends ToolBarActivity {
@Autowired(name = EntranceConsts.KEY_LIBAO_ID, description = "礼包ID", required = true)
public String libaoId;
@Autowired(name = EntranceConsts.KEY_ENTRANCE, description = "入口埋点字段(开发内部使用)")
public String entrance;
@Override
protected Intent provideNormalIntent() {
return getTargetIntent(this, LibaoDetailActivity.class, LibaoDetailFragment.class, getIntent().getExtras());
}
public static Intent getIntent(Context context, LibaoEntity libaoEntity, boolean isClickReceiveBtnIn, String entrance) {
Bundle bundle = new Bundle();
HaloApp.put(LibaoEntity.TAG, libaoEntity);
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance);
bundle.putBoolean(EntranceConsts.KEY_IS_CLICK_RECEIVE_BTN, isClickReceiveBtnIn);
return getTargetIntent(context, LibaoDetailActivity.class, LibaoDetailFragment.class, bundle);
Navigator navigator = TheRouter.build(RouteConsts.activity.libaoDetailActivity)
.fillParams(bundle -> {
HaloApp.put(EntranceConsts.KEY_LIBAO_ENTITY, libaoEntity);
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance);
bundle.putBoolean(EntranceConsts.KEY_IS_CLICK_RECEIVE_BTN, isClickReceiveBtnIn);
return null;
});
return navigator.createIntent(context);
}
@NonNull
@ -42,14 +53,19 @@ public class LibaoDetailActivity extends ToolBarActivity {
@NonNull
public static Intent getIntentById(Context context, String id, String entrance) {
Bundle bundle = new Bundle();
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance);
bundle.putString(EntranceConsts.KEY_ID, id);
return getTargetIntent(context, LibaoDetailActivity.class, LibaoDetailFragment.class, bundle);
Navigator navigator = TheRouter.build(RouteConsts.activity.libaoDetailActivity)
.fillParams(bundle -> {
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance);
bundle.putString(EntranceConsts.KEY_LIBAO_ID, id);
return null;
});
return navigator.createIntent(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
TheRouter.inject(this);
super.onCreate(savedInstanceState);
ExtensionsKt.updateStatusBarColor(this, com.gh.gamecenter.common.R.color.ui_surface, com.gh.gamecenter.common.R.color.ui_surface);
}
@ -67,9 +83,9 @@ public class LibaoDetailActivity extends ToolBarActivity {
libaoEntity = ((LibaoDetailFragment) getTargetFragment()).getLibaoEntity();
}
if (libaoEntity != null) {
return new Pair(libaoEntity.getId(), "");
} else if (getIntent().getStringExtra(EntranceConsts.KEY_ID) != null) {
return new Pair(getIntent().getStringExtra(EntranceConsts.KEY_ID), "");
return new Pair<>(libaoEntity.getId(), "");
} else if (libaoId != null) {
return new Pair<>(libaoId, "");
} else {
return super.getBusinessId();
}

View File

@ -159,7 +159,7 @@ public class LibaoDetailFragment extends ToolbarFragment implements LibaoDetailA
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
HaloApp.put(LibaoEntity.TAG, mAdapter.getLibaoEntity());
HaloApp.put(EntranceConsts.KEY_LIBAO_ENTITY, mAdapter.getLibaoEntity());
}
@Override
@ -178,7 +178,7 @@ public class LibaoDetailFragment extends ToolbarFragment implements LibaoDetailA
mName = getString(R.string.libao_detail);
setNavigationTitle(mName);
mLibaoEntity = (LibaoEntity) HaloApp.get(LibaoEntity.TAG, false);
mLibaoEntity = (LibaoEntity) HaloApp.get(EntranceConsts.KEY_LIBAO_ENTITY, false);
isClickReceiveBtnIn = requireArguments().getBoolean(EntranceConsts.KEY_IS_CLICK_RECEIVE_BTN, false);
if (mLibaoEntity != null) {
mLibaoEntity.setClickReceiveBtnIn(isClickReceiveBtnIn);
@ -204,7 +204,7 @@ public class LibaoDetailFragment extends ToolbarFragment implements LibaoDetailA
});
if (mLibaoEntity == null) {
String id = requireArguments().getString(EntranceConsts.KEY_ID);
String id = requireArguments().getString(EntranceConsts.KEY_LIBAO_ID);
if (!TextUtils.isEmpty(id)) {
getLibaoDigest(id);
}

View File

@ -139,7 +139,7 @@ public class MessageDetailFragment extends ToolbarFragment implements OnCommentC
mConcernEntity = (ConcernEntity) HaloApp.get(ConcernEntity.TAG, true);
mCommentEntity = args.getParcelable(CommentEntity.TAG);
newsId = args.getString(EntranceConsts.KEY_NEWSID);
newsId = args.getString(EntranceConsts.KEY_NEWS_ID);
commentNum = args.getInt("commentNum", -1);
//复用问题 mConcernEntity对应的文章有可能和跳转之前的文章不一致

View File

@ -7,7 +7,6 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import com.therouter.router.Route;
import com.gh.base.DownloadToolbarActivity;
import com.gh.gamecenter.WebActivity;
import com.gh.gamecenter.common.constant.EntranceConsts;
@ -15,6 +14,10 @@ import com.gh.gamecenter.common.constant.RouteConsts;
import com.gh.gamecenter.common.utils.ExtensionsKt;
import com.gh.gamecenter.core.utils.MtaHelper;
import com.gh.gamecenter.feature.entity.NewsEntity;
import com.therouter.TheRouter;
import com.therouter.router.Autowired;
import com.therouter.router.Navigator;
import com.therouter.router.Route;
import kotlin.Pair;
@ -24,9 +27,21 @@ import kotlin.Pair;
*
* @author 黄壮华
*/
@Route(path = RouteConsts.activity.newsDetailActivity)
@Route(path = RouteConsts.activity.newsDetailActivity, description = "新闻详情")
public class NewsDetailActivity extends DownloadToolbarActivity {
@Autowired(name = EntranceConsts.KEY_NEWS_ID, description = "新闻ID", required = true)
public String newsId;
@Autowired(name = EntranceConsts.KEY_NEWS_ENTITY, description = "新闻实体如果你不懂这个是什么那么不要用它直接传入新闻ID即可")
public NewsEntity newsEntity;
@Autowired(name = EntranceConsts.KEY_ENTRANCE, description = "入口埋点字段(开发内部使用)")
public String entrance;
@Autowired(name = EntranceConsts.KEY_IS_COLLECTION_NEWS, description = "是否收藏的文章")
public boolean isCollectionNews;
/**
* 启动新闻详情页面
*/
@ -35,12 +50,14 @@ public class NewsDetailActivity extends DownloadToolbarActivity {
if (newsEntity != null && !TextUtils.isEmpty(newsEntity.getLink())) {
context.startActivity(WebActivity.getIntentByNews(context, newsEntity, entrance));
} else {
Bundle bundle = new Bundle();
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance);
bundle.putParcelable(NewsEntity.TAG, newsEntity);
Intent intent = getTargetIntent(context, NewsDetailActivity.class, NewsDetailFragment.class, bundle);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
TheRouter
.build(RouteConsts.activity.newsDetailActivity)
.fillParams(bundle -> {
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance);
bundle.putParcelable(EntranceConsts.KEY_NEWS_ENTITY, newsEntity);
return null;
})
.navigation(context);
}
}
@ -53,32 +70,40 @@ public class NewsDetailActivity extends DownloadToolbarActivity {
Intent intent = WebActivity.getIntentByNews(context, newsEntity, entrance);
context.startActivity(intent);
} else {
Bundle bundle = new Bundle();
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance);
bundle.putParcelable(NewsEntity.TAG, newsEntity);
bundle.putBoolean(NewsDetailFragment.KEY_COLLECTIONNEWS, true);
Intent intent = getTargetIntent(context, NewsDetailActivity.class, NewsDetailFragment.class, bundle);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
TheRouter
.build(RouteConsts.activity.newsDetailActivity)
.fillParams(bundle -> {
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance);
bundle.putParcelable(EntranceConsts.KEY_NEWS_ENTITY, newsEntity);
bundle.putBoolean(EntranceConsts.KEY_IS_COLLECTION_NEWS, true);
return null;
})
.navigation(context);
}
}
@NonNull
public static Intent getIntentById(Context context, String newsId, boolean isCollectionNews, String entrance) {
Bundle bundle = new Bundle();
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance);
bundle.putBoolean(NewsDetailFragment.KEY_COLLECTIONNEWS, isCollectionNews);
bundle.putString(EntranceConsts.KEY_NEWSID, newsId);
return getTargetIntent(context, NewsDetailActivity.class, NewsDetailFragment.class, bundle);
Navigator navigator = TheRouter.build(RouteConsts.activity.libaoDetailActivity)
.fillParams(bundle -> {
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance);
bundle.putBoolean(EntranceConsts.KEY_IS_COLLECTION_NEWS, isCollectionNews);
bundle.putString(EntranceConsts.KEY_NEWS_ID, newsId);
return null;
});
return navigator.createIntent(context);
}
@NonNull
public static Intent getIntentById(Context context, String newsId, String entrance) {
Bundle bundle = new Bundle();
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance);
bundle.putString(EntranceConsts.KEY_NEWSID, newsId);
return getTargetIntent(context, NewsDetailActivity.class, NewsDetailFragment.class, bundle);
Navigator navigator = TheRouter.build(RouteConsts.activity.libaoDetailActivity)
.fillParams(bundle -> {
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance);
bundle.putString(EntranceConsts.KEY_NEWS_ID, newsId);
return null;
});
return navigator.createIntent(context);
}
@Override
@ -88,6 +113,8 @@ public class NewsDetailActivity extends DownloadToolbarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
TheRouter.inject(this);
super.onCreate(savedInstanceState);
ExtensionsKt.updateStatusBarColor(this, com.gh.gamecenter.common.R.color.ui_surface, com.gh.gamecenter.common.R.color.ui_surface);
}
@ -105,15 +132,10 @@ public class NewsDetailActivity extends DownloadToolbarActivity {
@Override
public Pair<String, String> getBusinessId() {
NewsEntity newsEntity = null;
Bundle bundle = getIntent().getBundleExtra(NORMAL_FRAGMENT_BUNDLE);
if (bundle != null) {
newsEntity = bundle.getParcelable(NewsEntity.TAG);
}
if (getIntent().getStringExtra(EntranceConsts.KEY_NEWSID) != null) {
return new Pair(getIntent().getStringExtra(EntranceConsts.KEY_NEWSID), "");
if (newsId != null) {
return new Pair<>(newsId, "");
} else if (newsEntity != null) {
return new Pair(newsEntity.getId(), "");
return new Pair<>(newsEntity.getId(), "");
} else {
return super.getBusinessId();
}

View File

@ -99,8 +99,6 @@ public class NewsDetailFragment extends ToolbarFragment {
private NewsDetailAdapter adapter;
public static final String KEY_COLLECTIONNEWS = "isCollectionNews";
private boolean isSentReport = false;
private boolean isSecondDown = false;
private boolean mIsCollectionNews;
@ -259,11 +257,11 @@ public class NewsDetailFragment extends ToolbarFragment {
adapter = new NewsDetailAdapter(requireContext(), this, mHideUselessInfo, mEntrance);
mDetailRv.setAdapter(adapter);
newsId = requireArguments().getString(EntranceConsts.KEY_NEWSID);
mIsCollectionNews = requireArguments().getBoolean(KEY_COLLECTIONNEWS, false);
newsId = requireArguments().getString(EntranceConsts.KEY_NEWS_ID);
mIsCollectionNews = requireArguments().getBoolean(EntranceConsts.KEY_IS_COLLECTION_NEWS, false);
if (newsId == null) {
mNewsEntity = requireArguments().getParcelable(NewsEntity.TAG);
mNewsEntity = requireArguments().getParcelable(EntranceConsts.KEY_NEWS_ENTITY);
if (mNewsEntity != null) {
if (mNewsEntity.getType() != null) {
setNavigationTitle(mNewsEntity.getType());

View File

@ -10,7 +10,6 @@ import androidx.lifecycle.MutableLiveData
import com.gh.common.util.DirectUtils
import com.gh.common.util.PackageUtils
import com.gh.gamecenter.GameDetailActivity
import com.gh.gamecenter.MainActivity
import com.gh.gamecenter.common.entity.LinkEntity
import com.gh.gamecenter.common.retrofit.BiResponse
import com.gh.gamecenter.common.retrofit.Response
@ -19,18 +18,15 @@ import com.gh.gamecenter.entity.AddonLinkEntity
import com.gh.gamecenter.entity.AppEntity
import com.gh.gamecenter.entity.HaloAddonEntity
import com.gh.gamecenter.entity.SignEntity
import com.gh.gamecenter.eventbus.EBSkip
import com.gh.gamecenter.login.user.UserManager
import com.gh.gamecenter.newsdetail.NewsDetailActivity
import com.gh.gamecenter.retrofit.RetrofitManager
import com.gh.gamecenter.subject.SubjectActivity
import com.gh.gamecenter.wrapper.MainWrapperFragment
import com.halo.assistant.HaloApp
import com.lightgame.utils.Utils
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import okhttp3.ResponseBody
import org.greenrobot.eventbus.EventBus
import retrofit2.HttpException
import java.text.SimpleDateFormat
import java.util.*

View File

@ -3,15 +3,28 @@ package com.gh.gamecenter.qa.answer.detail
import android.content.Context
import android.content.Intent
import android.os.Bundle
import com.gh.gamecenter.common.base.activity.ToolBarActivity
import com.gh.gamecenter.common.base.activity.BaseActivity
import com.gh.gamecenter.common.base.activity.ToolBarActivity
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.common.utils.updateStatusBarColor
import com.therouter.TheRouter
import com.therouter.router.Autowired
import com.therouter.router.Route
/**
* 回答详情
*/
@Route(path = RouteConsts.activity.answerDetailActivity, description = "回答详情")
class SimpleAnswerDetailActivity : ToolBarActivity() {
@JvmField
@Autowired(name = EntranceConsts.KEY_ANSWER_ID, description = "回答ID", required = true)
var answerId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_ENTRANCE, description = "入口埋点字段(开发内部使用)")
var entrance: String? = ""
@JvmField
@Autowired(name = EntranceConsts.KEY_PATH, description = "页面路径 (历史代码用到的,传不传都行)")
var path: String? = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -22,7 +35,8 @@ class SimpleAnswerDetailActivity : ToolBarActivity() {
return getTargetIntent(
this,
SimpleAnswerDetailActivity::class.java,
SimpleAnswerDetailFragment::class.java
SimpleAnswerDetailFragment::class.java,
intent.extras
)
}
@ -36,16 +50,13 @@ class SimpleAnswerDetailActivity : ToolBarActivity() {
companion object {
@JvmStatic
fun getIntent(context: Context, answerId: String, entrance: String, path: String): Intent {
val bundle = Bundle()
bundle.putString(EntranceConsts.KEY_ANSWER_ID, answerId)
bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
bundle.putString(EntranceConsts.KEY_PATH, path)
return getTargetIntent(
context,
SimpleAnswerDetailActivity::class.java,
SimpleAnswerDetailFragment::class.java,
bundle
)
val navigator = TheRouter.build(RouteConsts.activity.answerDetailActivity)
.fillParams { bundle ->
bundle.putString(EntranceConsts.KEY_ANSWER_ID, answerId)
bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
bundle.putString(EntranceConsts.KEY_PATH, path)
}
return navigator.createIntent(context)
}
}
}

View File

@ -2,32 +2,66 @@ package com.gh.gamecenter.qa.article.detail
import android.content.Context
import android.content.Intent
import com.therouter.router.Route
import android.os.Bundle
import com.gh.gamecenter.R
import com.gh.gamecenter.common.base.activity.ToolBarActivity
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.common.entity.CommunityEntity
import com.gh.gamecenter.entity.SpecialColumn
import com.therouter.TheRouter
import com.therouter.router.Autowired
import com.therouter.router.Route
/**
* 帖子详情
*/
@Route(path = RouteConsts.activity.articleDetailActivity)
@Route(path = RouteConsts.activity.articleDetailActivity, description = "帖子详情")
class ArticleDetailActivity : ToolBarActivity() {
@JvmField
@Autowired(name = EntranceConsts.KEY_COMMUNITY_DATA, description = "论坛实体如果你不懂这个是什么那么不要用它直接传入论坛ID和文章ID即可")
var communityEntity: CommunityEntity? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_COMMUNITY_ID, description = "论坛ID")
var communityId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, description = "文章ID", required = true)
var articleId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_ENTRANCE, description = "入口埋点字段(开发内部使用)")
var entrance: String? = ""
@JvmField
@Autowired(name = EntranceConsts.KEY_PATH, description = "页面路径 (历史代码用到的,传不传都行)")
var path: String? = ""
@JvmField
@Autowired(name = EntranceConsts.KEY_SOURCE_ENTRANCE, description = "入口埋点字段")
var sourceEntrance: String? = ""
override fun onCreate(savedInstanceState: Bundle?) {
TheRouter.inject(this)
if (communityEntity == null && communityId != null) {
communityEntity = CommunityEntity(id = communityId ?: "").also {
intent.putExtra(EntranceConsts.KEY_COMMUNITY_DATA, it)
}
}
super.onCreate(savedInstanceState)
}
override fun getLayoutId() = R.layout.activity_amway
override fun getFragmentPlaceholderId() = R.id.placeholder
override fun provideNormalIntent(): Intent {
return getTargetIntent(this, ArticleDetailActivity::class.java, ArticleDetailFragment::class.java)
return getTargetIntent(this, ArticleDetailActivity::class.java, ArticleDetailFragment::class.java, intent.extras)
}
override fun getBusinessId(): Pair<String, String> {
return Pair(
targetFragment.arguments?.getString(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID) ?: "",
targetFragment.arguments?.getParcelable<CommunityEntity>(EntranceConsts.KEY_COMMUNITY_DATA)?.id ?: ""
articleId ?: "",
communityEntity?.id ?: ""
)
}
@ -46,14 +80,16 @@ class ArticleDetailActivity : ToolBarActivity() {
specialColumn: SpecialColumn? = null,
sourceEntrance: String = "",
): Intent {
val intent = Intent(context, ArticleDetailActivity::class.java)
intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
intent.putExtra(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
intent.putExtra(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId)
intent.putExtra(EntranceConsts.KEY_COMMUNITY_DATA, community)
intent.putExtra(EntranceConsts.KEY_PATH, path)
intent.putExtra(EntranceConsts.KEY_DATA, specialColumn)
return intent
val navigator = TheRouter.build(RouteConsts.activity.articleDetailActivity)
.fillParams { bundle ->
bundle.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
bundle.putString(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
bundle.putString(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId)
bundle.putParcelable(EntranceConsts.KEY_COMMUNITY_DATA, community)
bundle.putString(EntranceConsts.KEY_PATH, path)
bundle.putParcelable(EntranceConsts.KEY_DATA, specialColumn)
}
return navigator.createIntent(context)
}
/**
@ -68,14 +104,16 @@ class ArticleDetailActivity : ToolBarActivity() {
path: String,
sourceEntrance: String = "",
): Intent {
val intent = Intent(context, ArticleDetailActivity::class.java)
intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
intent.putExtra(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId)
intent.putExtra(EntranceConsts.KEY_COMMUNITY_DATA, community)
intent.putExtra(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true)
intent.putExtra(EntranceConsts.KEY_PATH, path)
intent.putExtra(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
return intent
val navigator = TheRouter.build(RouteConsts.activity.articleDetailActivity)
.fillParams { bundle ->
bundle.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
bundle.putString(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId)
bundle.putParcelable(EntranceConsts.KEY_COMMUNITY_DATA, community)
bundle.putBoolean(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true)
bundle.putString(EntranceConsts.KEY_PATH, path)
bundle.putString(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
}
return navigator.createIntent(context)
}
@JvmStatic
@ -88,14 +126,16 @@ class ArticleDetailActivity : ToolBarActivity() {
path: String,
sourceEntrance: String = "",
): Intent {
val intent = Intent(context, ArticleDetailActivity::class.java)
intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
intent.putExtra(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
intent.putExtra(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId)
intent.putExtra(EntranceConsts.KEY_RECOMMEND_ID, recommendId)
intent.putExtra(EntranceConsts.KEY_COMMUNITY_DATA, community)
intent.putExtra(EntranceConsts.KEY_PATH, path)
return intent
val navigator = TheRouter.build(RouteConsts.activity.articleDetailActivity)
.fillParams { bundle ->
bundle.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
bundle.putString(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
bundle.putString(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId)
bundle.putString(EntranceConsts.KEY_RECOMMEND_ID, recommendId)
bundle.putParcelable(EntranceConsts.KEY_COMMUNITY_DATA, community)
bundle.putString(EntranceConsts.KEY_PATH, path)
}
return navigator.createIntent(context)
}
/**
@ -111,15 +151,17 @@ class ArticleDetailActivity : ToolBarActivity() {
path: String,
sourceEntrance: String = "",
): Intent {
val intent = Intent(context, ArticleDetailActivity::class.java)
intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
intent.putExtra(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId)
intent.putExtra(EntranceConsts.KEY_COMMUNITY_DATA, community)
intent.putExtra(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true)
intent.putExtra(EntranceConsts.KEY_TOP_COMMENT_ID, topCommentId)
intent.putExtra(EntranceConsts.KEY_PATH, path)
intent.putExtra(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
return intent
val navigator = TheRouter.build(RouteConsts.activity.articleDetailActivity)
.fillParams { bundle ->
bundle.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
bundle.putString(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId)
bundle.putParcelable(EntranceConsts.KEY_COMMUNITY_DATA, community)
bundle.putBoolean(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true)
bundle.putString(EntranceConsts.KEY_TOP_COMMENT_ID, topCommentId)
bundle.putString(EntranceConsts.KEY_PATH, path)
bundle.putString(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
}
return navigator.createIntent(context)
}
}
}

View File

@ -2,30 +2,50 @@ package com.gh.gamecenter.qa.questions.newdetail
import android.content.Context
import android.content.Intent
import com.therouter.router.Route
import android.os.Bundle
import com.gh.gamecenter.R
import com.gh.gamecenter.common.base.activity.ToolBarActivity
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.common.entity.CommunityEntity
import com.therouter.TheRouter
import com.therouter.router.Autowired
import com.therouter.router.Route
/**
* 提问详情
*/
@Route(path = RouteConsts.activity.questionDetailActivity)
@Route(path = RouteConsts.activity.questionDetailActivity, description = "提问详情")
class NewQuestionDetailActivity : ToolBarActivity() {
@JvmField
@Autowired(name = EntranceConsts.KEY_QUESTIONS_ID, description = "提问ID", required = true)
var questionId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_ENTRANCE, description = "入口埋点字段(开发内部使用)")
var entrance: String? = ""
@JvmField
@Autowired(name = EntranceConsts.KEY_PATH, description = "页面路径 (历史代码用到的,传不传都行)")
var path: String? = ""
@JvmField
@Autowired(name = EntranceConsts.KEY_SOURCE_ENTRANCE, description = "入口埋点字段")
var sourceEntrance: String? = ""
override fun onCreate(savedInstanceState: Bundle?) {
TheRouter.inject(this)
super.onCreate(savedInstanceState)
}
override fun getLayoutId() = R.layout.activity_amway
override fun getFragmentPlaceholderId() = R.id.placeholder
override fun provideNormalIntent(): Intent {
return getTargetIntent(this, NewQuestionDetailActivity::class.java, NewQuestionDetailFragment::class.java)
return getTargetIntent(this, NewQuestionDetailActivity::class.java, NewQuestionDetailFragment::class.java, intent.extras)
}
override fun getBusinessId(): Pair<String, String> {
return Pair(
targetFragment.arguments?.getString(EntranceConsts.KEY_QUESTIONS_ID) ?: "",
questionId ?: "",
targetFragment.arguments?.getParcelable<CommunityEntity>(EntranceConsts.KEY_COMMUNITY_DATA)?.id
?: ""
)
@ -42,12 +62,14 @@ class NewQuestionDetailActivity : ToolBarActivity() {
path: String,
sourceEntrance: String = "",
): Intent {
val intent = Intent(context, NewQuestionDetailActivity::class.java)
intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
intent.putExtra(EntranceConsts.KEY_QUESTIONS_ID, questionId)
intent.putExtra(EntranceConsts.KEY_PATH, path)
intent.putExtra(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
return intent
val navigator = TheRouter.build(RouteConsts.activity.questionDetailActivity)
.fillParams {
it.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
it.putString(EntranceConsts.KEY_QUESTIONS_ID, questionId)
it.putString(EntranceConsts.KEY_PATH, path)
it.putString(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
}
return navigator.createIntent(context)
}
/**
@ -61,13 +83,15 @@ class NewQuestionDetailActivity : ToolBarActivity() {
path: String,
sourceEntrance: String = ""
): Intent {
val intent = Intent(context, NewQuestionDetailActivity::class.java)
intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
intent.putExtra(EntranceConsts.KEY_QUESTIONS_ID, questionId)
intent.putExtra(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true)
intent.putExtra(EntranceConsts.KEY_PATH, path)
intent.putExtra(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
return intent
val navigator = TheRouter.build(RouteConsts.activity.questionDetailActivity)
.fillParams {
it.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
it.putString(EntranceConsts.KEY_QUESTIONS_ID, questionId)
it.putBoolean(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true)
it.putString(EntranceConsts.KEY_PATH, path)
it.putString(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
}
return navigator.createIntent(context)
}
@JvmStatic
@ -79,14 +103,16 @@ class NewQuestionDetailActivity : ToolBarActivity() {
path: String,
sourceEntrance: String = ""
): Intent {
val intent = Intent(context, NewQuestionDetailActivity::class.java)
intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
intent.putExtra(EntranceConsts.KEY_QUESTIONS_ID, questionId)
intent.putExtra(EntranceConsts.KEY_ANSWER_ID, answerId)
intent.putExtra(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true)
intent.putExtra(EntranceConsts.KEY_PATH, path)
intent.putExtra(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
return intent
val navigator = TheRouter.build(RouteConsts.activity.questionDetailActivity)
.fillParams {
it.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
it.putString(EntranceConsts.KEY_QUESTIONS_ID, questionId)
it.putString(EntranceConsts.KEY_ANSWER_ID, answerId)
it.putBoolean(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true)
it.putString(EntranceConsts.KEY_PATH, path)
it.putString(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
}
return navigator.createIntent(context)
}
@JvmStatic
@ -100,15 +126,17 @@ class NewQuestionDetailActivity : ToolBarActivity() {
scrollToComment: Boolean = false,
sourceEntrance: String = "",
): Intent {
val intent = Intent(context, NewQuestionDetailActivity::class.java)
intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
intent.putExtra(EntranceConsts.KEY_QUESTIONS_ID, questionId)
intent.putExtra(EntranceConsts.KEY_ANSWER_ID, answerId)
intent.putExtra(EntranceConsts.KEY_RECOMMEND_ID, recommendId)
intent.putExtra(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, scrollToComment)
intent.putExtra(EntranceConsts.KEY_PATH, path)
intent.putExtra(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
return intent
val navigator = TheRouter.build(RouteConsts.activity.questionDetailActivity)
.fillParams {
it.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
it.putString(EntranceConsts.KEY_QUESTIONS_ID, questionId)
it.putString(EntranceConsts.KEY_ANSWER_ID, answerId)
it.putString(EntranceConsts.KEY_RECOMMEND_ID, recommendId)
it.putBoolean(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, scrollToComment)
it.putString(EntranceConsts.KEY_PATH, path)
it.putString(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
}
return navigator.createIntent(context)
}
@JvmStatic
@ -120,14 +148,16 @@ class NewQuestionDetailActivity : ToolBarActivity() {
path: String,
sourceEntrance: String = ""
): Intent {
val intent = Intent(context, NewQuestionDetailActivity::class.java)
intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
intent.putExtra(EntranceConsts.KEY_QUESTIONS_ID, questionId)
intent.putExtra(EntranceConsts.KEY_TOP_COMMENT_ID, topCommentId)
intent.putExtra(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true)
intent.putExtra(EntranceConsts.KEY_PATH, path)
intent.putExtra(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
return intent
val navigator = TheRouter.build(RouteConsts.activity.questionDetailActivity)
.fillParams {
it.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
it.putString(EntranceConsts.KEY_QUESTIONS_ID, questionId)
it.putString(EntranceConsts.KEY_TOP_COMMENT_ID, topCommentId)
it.putBoolean(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true)
it.putString(EntranceConsts.KEY_PATH, path)
it.putString(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
}
return navigator.createIntent(context)
}
}
}

View File

@ -2,29 +2,47 @@ package com.gh.gamecenter.qa.subject;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import com.gh.gamecenter.common.base.activity.ToolBarActivity;
import com.gh.gamecenter.common.constant.EntranceConsts;
import com.gh.gamecenter.common.constant.RouteConsts;
import com.gh.gamecenter.common.entity.CommunityEntity;
import com.therouter.TheRouter;
import com.therouter.router.Autowired;
import com.therouter.router.Navigator;
import com.therouter.router.Route;
/**
* Created by khy on 10/04/18.
* 社区专题
*/
@Route(path = RouteConsts.activity.communitySubjectActivity, description = "社区专题")
public class CommunitySubjectActivity extends ToolBarActivity {
@Autowired(name = EntranceConsts.KEY_COLUMN_ID, description = "专题ID", required = true)
public String columnId;
@Autowired(name = EntranceConsts.KEY_COMMUNITY_DATA, description = "论坛实体如果你不懂这个是什么那么不要用它直接传入论坛ID和文章ID即可")
public CommunityEntity communityEntity;
@Autowired(name = EntranceConsts.KEY_ENTRANCE, description = "入口埋点字段(开发内部使用)")
public String entrance;
@Autowired(name = EntranceConsts.KEY_PATH, description = "页面路径 (历史代码用到的,传不传都行)")
public String path;
public static Intent getIntent(Context context, CommunityEntity community, String subjectId, String entrance, String path) {
Bundle bundle = new Bundle();
bundle.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path));
bundle.putString(EntranceConsts.KEY_COLUMN_ID, subjectId);
bundle.putParcelable(EntranceConsts.KEY_COMMUNITY_DATA, community);
return getTargetIntent(context, CommunitySubjectActivity.class, AskSubjectFragment.class, bundle);
Navigator navigator = TheRouter.build(RouteConsts.activity.communitySubjectActivity)
.fillParams(bundle -> {
bundle.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path));
bundle.putString(EntranceConsts.KEY_COLUMN_ID, subjectId);
bundle.putParcelable(EntranceConsts.KEY_COMMUNITY_DATA, community);
return null;
});
return navigator.createIntent(context);
}
@Override
protected Intent provideNormalIntent() {
return getTargetIntent(this, CommunitySubjectActivity.class, AskSubjectFragment.class);
return getTargetIntent(this, CommunitySubjectActivity.class, AskSubjectFragment.class, getIntent().getExtras());
}
}

View File

@ -5,19 +5,37 @@ import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
import com.therouter.router.Route
import com.gh.gamecenter.R
import com.gh.gamecenter.common.base.activity.BaseActivity
import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout.PAGE_INDEX
import com.gh.gamecenter.common.base.fragment.ToolbarFragment
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.constant.RouteConsts
import com.therouter.TheRouter
import com.therouter.router.Autowired
import com.therouter.router.Route
/**
* 视频贴详情
*/
@Route(path = RouteConsts.activity.forumVideoDetailActivity)
@Route(path = RouteConsts.activity.forumVideoDetailActivity, description = "视频贴详情")
class ForumVideoDetailActivity : BaseActivity() {
@JvmField
@Autowired(name = EntranceConsts.KEY_VIDEO_ID, description = "视频ID", required = true)
var videoId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_ENTRANCE, description = "入口埋点字段(开发内部使用)")
var entrance: String? = ""
@JvmField
@Autowired(name = EntranceConsts.KEY_PATH, description = "页面路径 (历史代码用到的,传不传都行)")
var path: String? = ""
@JvmField
@Autowired(name = EntranceConsts.KEY_SOURCE_ENTRANCE, description = "入口埋点字段")
var sourceEntrance: String? = ""
var containerFragment: Fragment? = null
override fun getLayoutId(): Int {
@ -25,6 +43,8 @@ class ForumVideoDetailActivity : BaseActivity() {
}
override fun onCreate(savedInstanceState: Bundle?) {
TheRouter.inject(this)
super.onCreate(savedInstanceState)
containerFragment = supportFragmentManager.findFragmentByTag(ForumVideoDetailFragment::class.java.name)
@ -46,13 +66,7 @@ class ForumVideoDetailActivity : BaseActivity() {
override fun isAutoResetViewBackgroundEnabled(): Boolean = true
override fun getBusinessId(): Pair<String, String> {
return if (containerFragment?.arguments != null) {
Pair(containerFragment?.requireArguments()?.getString(EntranceConsts.KEY_VIDEO_ID) ?: "", "")
} else {
super.getBusinessId()
}
}
override fun getBusinessId(): Pair<String, String> = Pair(videoId ?: "", "")
companion object {
const val VIDEO_PATCH_REQUEST = 100
@ -103,16 +117,18 @@ class ForumVideoDetailActivity : BaseActivity() {
scrollToComment: Boolean = false,
sourceEntrance: String = ""
): Intent {
val intent = Intent(context, ForumVideoDetailActivity::class.java)
intent.putExtra(EntranceConsts.KEY_VIDEO_ID, videoId)
intent.putExtra(EntranceConsts.KEY_BBS_ID, bbsId)
intent.putExtra(EntranceConsts.KEY_RECOMMEND_ID, recommendId)
intent.putExtra(EntranceConsts.KEY_TOP_COMMENT_ID, topCommentId)
intent.putExtra(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
if (scrollToComment) {
intent.putExtra(PAGE_INDEX, 1)
}
return intent
val navigator = TheRouter.build(RouteConsts.activity.articleDetailActivity)
.fillParams { bundle ->
bundle.putString(EntranceConsts.KEY_VIDEO_ID, videoId)
bundle.putString(EntranceConsts.KEY_BBS_ID, bbsId)
bundle.putString(EntranceConsts.KEY_RECOMMEND_ID, recommendId)
bundle.putString(EntranceConsts.KEY_TOP_COMMENT_ID, topCommentId)
bundle.putString(EntranceConsts.KEY_SOURCE_ENTRANCE, sourceEntrance)
if (scrollToComment) {
bundle.putInt(PAGE_INDEX, 1)
}
}
return navigator.createIntent(context)
}
}

View File

@ -8,22 +8,51 @@ import com.gh.base.DownloadToolbarActivity
import com.gh.common.util.DirectUtils
import com.gh.gamecenter.R
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.common.exposure.ExposureSource
import com.gh.gamecenter.common.utils.updateStatusBarColor
import com.gh.gamecenter.core.utils.MtaHelper
import com.gh.gamecenter.entity.SubjectData
import com.therouter.TheRouter
import com.therouter.router.Autowired
import com.therouter.router.Route
/**
* 专题详情
*/
@Route(path = RouteConsts.activity.subjectActivity, description = "专题详情")
open class SubjectActivity : DownloadToolbarActivity() {
private var subjectData: SubjectData? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_SUBJECT_ID, description = "专题ID")
var subjectId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_SUBJECT_NAME, description = "专题名称")
var subjectName: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_SUBJECT_DATA, description = "专题实体如果你不懂这个是什么那么不要用它直接传入专题ID和专题名称即可")
var subjectData: SubjectData? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_IS_AD_SUBJECT, description = "是否广告专题")
var isAdSubject: Boolean = false
@JvmField
@Autowired(name = EntranceConsts.KEY_ENTRANCE, description = "入口埋点字段(开发内部使用)")
var entrance: String? = ""
@JvmField
@Autowired(name = EntranceConsts.KEY_PATH, description = "页面路径 (历史代码用到的,传不传都行)")
var path: String? = ""
override fun onCreate(savedInstanceState: Bundle?) {
TheRouter.inject(this)
if (subjectData == null && subjectId != null) {
subjectData = SubjectData(subjectId = subjectId, subjectName = subjectName, isOrder = false).also {
intent.putExtra(EntranceConsts.KEY_SUBJECT_DATA, it)
}
}
super.onCreate(savedInstanceState)
updateStatusBarColor(com.gh.gamecenter.common.R.color.ui_surface, com.gh.gamecenter.common.R.color.ui_surface)
subjectData = intent.getBundleExtra(NORMAL_FRAGMENT_BUNDLE)?.getParcelable(EntranceConsts.KEY_SUBJECT_DATA)
?: SubjectData("", "", false)
}
override fun showDownloadMenu() = true
@ -35,7 +64,8 @@ open class SubjectActivity : DownloadToolbarActivity() {
}
override fun provideNormalIntent(): Intent {
return getTargetIntent(this, SubjectActivity::class.java, SubjectFragment::class.java)
val targetClass = if (isAdSubject) AdSubjectListFragment::class.java else SubjectFragment::class.java
return getTargetIntent(this, SubjectActivity::class.java, targetClass, intent.extras)
}
override fun isAutoResetViewBackgroundEnabled() = true
@ -73,26 +103,21 @@ open class SubjectActivity : DownloadToolbarActivity() {
subjectType: SubjectData.SubjectType = SubjectData.SubjectType.NORMAL
) {
MtaHelper.onEvent("详情页面", "专题详情", name)
val bundle = Bundle()
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance)
val subjectData = SubjectData(subjectId = id, subjectName = name, isOrder = isOrder, subjectType = subjectType)
bundle.putParcelable(EntranceConsts.KEY_SUBJECT_DATA, subjectData)
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance)
if (exposureSourceList != null) {
bundle.putParcelableArrayList(
EntranceConsts.KEY_EXPOSURE_SOURCE_LIST,
ArrayList(exposureSourceList)
)
}
context.startActivity(
getTargetIntent(
context,
SubjectActivity::class.java,
SubjectFragment::class.java,
bundle
)
)
TheRouter
.build(RouteConsts.activity.subjectActivity)
.fillParams { bundle ->
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance)
val subjectData = SubjectData(subjectId = id, subjectName = name, isOrder = isOrder, subjectType = subjectType)
bundle.putParcelable(EntranceConsts.KEY_SUBJECT_DATA, subjectData)
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance)
if (exposureSourceList != null) {
bundle.putParcelableArrayList(
EntranceConsts.KEY_EXPOSURE_SOURCE_LIST,
ArrayList(exposureSourceList)
)
}
}
.navigation(context)
}
/**
@ -108,33 +133,30 @@ open class SubjectActivity : DownloadToolbarActivity() {
exposureSourceList: ArrayList<ExposureSource>? = null,
entrance: String?
) {
val bundle = Bundle()
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance)
val subjectData =
SubjectData(
subjectId = "",
adId = adId,
codeId = codeId,
subjectName = name,
isOrder = false,
isAdData = adIconActive
)
bundle.putParcelable(EntranceConsts.KEY_SUBJECT_DATA, subjectData)
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance)
if (exposureSourceList != null) {
bundle.putParcelableArrayList(
EntranceConsts.KEY_EXPOSURE_SOURCE_LIST,
ArrayList(exposureSourceList)
)
}
context.startActivity(
getTargetIntent(
context,
SubjectActivity::class.java,
AdSubjectListFragment::class.java,
bundle
)
)
TheRouter
.build(RouteConsts.activity.subjectActivity)
.fillParams { bundle ->
bundle.putBoolean(EntranceConsts.KEY_IS_AD_SUBJECT, true)
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance)
val subjectData =
SubjectData(
subjectId = "",
adId = adId,
codeId = codeId,
subjectName = name,
isOrder = false,
isAdData = adIconActive
)
bundle.putParcelable(EntranceConsts.KEY_SUBJECT_DATA, subjectData)
bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance)
if (exposureSourceList != null) {
bundle.putParcelableArrayList(
EntranceConsts.KEY_EXPOSURE_SOURCE_LIST,
ArrayList(exposureSourceList)
)
}
}
.navigation(context)
}
}
}

View File

@ -85,7 +85,7 @@ class SubjectTabFragment : BaseFragment<Any>() {
mBinding.subjectViewpager.post {
mBinding.subjectViewpager.offscreenPageLimit = fragments.size
var position = arguments?.getInt(EntranceConsts.KEY_POSITION, 0) ?: 0
val columnName = arguments?.getString(EntranceConsts.KEY_COLUMNNAME) ?: ""
val columnName = arguments?.getString(EntranceConsts.KEY_COLUMN_NAME) ?: ""
if (columnName.isNotEmpty()) {
position = subjectList.indexOfFirst { it.subjectName == columnName }
}

View File

@ -5,17 +5,37 @@ import android.content.Intent
import android.os.Bundle
import com.gh.gamecenter.common.base.activity.ToolBarActivity
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.common.utils.updateStatusBarColor
import com.therouter.router.Autowired
import com.therouter.router.Route
/**
* 工具箱
*/
@Route(path = RouteConsts.activity.toolBoxActivity, description = "工具箱")
class ToolBoxActivity : ToolBarActivity() {
@JvmField
@Autowired(name = EntranceConsts.KEY_GAME_ID, description = "游戏ID")
var gameId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_URL, description = "工具箱链接")
var url: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_ENTRANCE, description = "入口埋点字段(开发内部使用)")
var entrance: String? = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
updateStatusBarColor(com.gh.gamecenter.common.R.color.ui_surface, com.gh.gamecenter.common.R.color.ui_surface)
}
override fun provideNormalIntent(): Intent {
return getTargetIntent(this, ToolBoxActivity::class.java, ToolboxFragment::class.java, intent.extras)
}
override fun onDarkModeChanged() {
super.onDarkModeChanged()
updateStatusBarColor(com.gh.gamecenter.common.R.color.ui_surface, com.gh.gamecenter.common.R.color.ui_surface)

View File

@ -1,17 +1,52 @@
package com.gh.gamecenter.video.detail
import android.os.Bundle
import com.gh.gamecenter.common.base.activity.BaseActivity
import com.gh.gamecenter.core.utils.DisplayUtils
import com.gh.gamecenter.R
import com.gh.gamecenter.common.base.activity.BaseActivity
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.constant.EntranceConsts.IS_DETAIL_PAGE
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.core.utils.DisplayUtils
import com.therouter.TheRouter
import com.therouter.router.Autowired
import com.therouter.router.Route
import java.util.*
/**
* 旧视频页面
*/
@Route(path = RouteConsts.activity.videoDetailActivity, description = "旧视频页面")
// 由于兼容性问题,本游戏详情页不应该被低于 Android 4.4 的设备打开
class VideoDetailActivity : BaseActivity() {
@JvmField
@Autowired(name = EntranceConsts.KEY_VIDEO_ID, description = "视频ID", required = true)
var videoId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_ACTIVITY_NAME, description = "活动名称")
var activityName: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_FIELD_ID, description = "板块ID")
var fieldId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_SECTION_NAME, description = "专题名")
var sectionName: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_GAME_ID, description = "游戏ID")
var gameId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_PAGINATION_TYPE, description = "活动分页方式")
var paginationType: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_ENTRANCE, description = "入口埋点字段(开发内部使用)")
var entrance: String? = ""
@JvmField
@Autowired(name = EntranceConsts.KEY_PATH, description = "页面路径 (历史代码用到的,传不传都行)")
var path: String? = ""
var uuid = UUID.randomUUID()
var mContainerFragment: HomeVideoFragment? = null
@ -20,6 +55,8 @@ class VideoDetailActivity : BaseActivity() {
}
override fun onCreate(savedInstanceState: Bundle?) {
TheRouter.inject(this)
super.onCreate(savedInstanceState)
DisplayUtils.transparentStatusBar(this)

View File

@ -8,23 +8,36 @@ import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProviders
import com.gh.gamecenter.GameDetailActivity
import com.gh.gamecenter.R
import com.gh.gamecenter.common.base.activity.BaseActivity
import com.gh.gamecenter.common.base.activity.ToolBarActivity
import com.gh.gamecenter.common.base.adapter.FragmentAdapter
import com.gh.gamecenter.GameDetailActivity
import com.gh.gamecenter.R
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.core.utils.NumberUtils
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.common.mvvm.Status
import com.gh.gamecenter.common.utils.observeNonNull
import com.gh.gamecenter.common.utils.toColor
import com.gh.gamecenter.core.utils.DisplayUtils
import com.gh.gamecenter.core.utils.NumberUtils
import com.gh.gamecenter.databinding.ActivityVideoGameBinding
import com.gh.gamecenter.common.mvvm.Status
import com.therouter.TheRouter
import com.therouter.router.Autowired
import com.therouter.router.Route
/**
* 视频合集
*/
@Route(path = RouteConsts.activity.gameVideoActivity, description = "视频合集")
class GameVideoActivity : ToolBarActivity() {
@JvmField
@Autowired(name = EntranceConsts.KEY_GAME_ID, description = "游戏ID", required = true)
var gameId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_ENTRANCE, description = "入口埋点字段(开发内部使用)")
var entrance: String? = ""
@JvmField
@Autowired(name = EntranceConsts.KEY_PATH, description = "页面路径 (历史代码用到的,传不传都行)")
var path: String? = ""
private lateinit var mBinding: ActivityVideoGameBinding
private lateinit var mViewModel: GameVideoViewModel
@ -34,6 +47,7 @@ class GameVideoActivity : ToolBarActivity() {
}
override fun onCreate(savedInstanceState: Bundle?) {
TheRouter.inject(this)
super.onCreate(savedInstanceState)
// toolbar & status bar
@ -43,21 +57,20 @@ class GameVideoActivity : ToolBarActivity() {
mBinding = ActivityVideoGameBinding.bind(mContentView)
// viewpager & tab content
val gameId = intent.getStringExtra(EntranceConsts.KEY_GAMEID) ?: ""
val titles = arrayListOf("最热", "最新")
val fragments = ArrayList<Fragment>()
val tag = "android:switcher:${mBinding.viewpager.id}:"
val hottest = supportFragmentManager.findFragmentByTag("${tag}0") ?: GameVideoFragment()
val hottestBundle = Bundle()
hottestBundle.putString(EntranceConsts.KEY_GAMEID, gameId)
hottestBundle.putString(EntranceConsts.KEY_GAME_ID, gameId)
hottestBundle.putString(EntranceConsts.KEY_SORT, "vote_recently:-1")
hottest.arguments = hottestBundle
fragments.add(hottest)
val newest = supportFragmentManager.findFragmentByTag("${tag}1") ?: GameVideoFragment()
val newestBundle = Bundle()
newestBundle.putString(EntranceConsts.KEY_GAMEID, gameId)
newestBundle.putString(EntranceConsts.KEY_GAME_ID, gameId)
newestBundle.putString(EntranceConsts.KEY_SORT, "time.upload:-1")
newest.arguments = newestBundle
fragments.add(newest)
@ -90,7 +103,7 @@ class GameVideoActivity : ToolBarActivity() {
mBinding.gameIcon.setOnClickListener {
GameDetailActivity.startGameDetailActivity(
this,
gameId,
gameId ?: "",
BaseActivity.mergeEntranceAndPath(mEntrance, "视频合集")
)
}
@ -122,10 +135,12 @@ class GameVideoActivity : ToolBarActivity() {
@JvmStatic
fun getIntent(context: Context, gameId: String, entrance: String?, path: String?): Intent {
val intent = Intent(context, GameVideoActivity::class.java)
intent.putExtra(EntranceConsts.KEY_GAMEID, gameId)
intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
return intent
val navigator = TheRouter.build(RouteConsts.activity.articleDetailActivity)
.fillParams { bundle ->
bundle.putString(EntranceConsts.KEY_GAME_ID, gameId)
bundle.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
}
return navigator.createIntent(context)
}
}
}

View File

@ -1,7 +1,6 @@
package com.gh.gamecenter.video.upload.view
import android.app.Activity
import android.app.Application
import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
@ -57,8 +56,6 @@ import com.google.android.flexbox.FlexboxLayout
import com.lightgame.utils.Util_System_Keyboard
import com.lightgame.utils.Utils
import com.therouter.TheRouter
import com.zhihu.matisse.Matisse
import com.zhihu.matisse.internal.utils.PathUtils
import org.json.JSONArray
import java.io.File
import java.io.FileOutputStream
@ -120,7 +117,7 @@ class UploadVideoActivity : ToolBarActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
VideoPosterFragment.clearVideoCoverCache(this)
mVideoLink = intent.getParcelableExtra(VideoLinkEntity::class.java.simpleName)
mVideoLink = intent.getParcelableExtra(EntranceConsts.KEY_VIDEO_LINK_ENTITY)
mEntranceLink = intent.getStringExtra(EntranceConsts.KEY_ENTRANCE_LINK) ?: ""
mPath = intent.getStringExtra(EntranceConsts.KEY_PATH) ?: "其他"
@ -253,7 +250,7 @@ class UploadVideoActivity : ToolBarActivity() {
mViewModel = ViewModelProviders.of(this).get(UploadVideoViewModel::class.java)
mViewModel.videoDraft = intent.getParcelableExtra(VideoDraftEntity::class.java.simpleName)
mViewModel.videoPatch = intent.getParcelableExtra(VideoEntity::class.java.simpleName)
mViewModel.gameEntity = intent.getParcelableExtra(SimpleGameEntity::class.java.simpleName)
mViewModel.gameEntity = intent.getParcelableExtra(EntranceConsts.KEY_SIMPLE_GAME_ENTITY)
mViewModel.tagsLiveData.observe(this, Observer {
createFlexContent(mBinding.gameTag, it, clickListener = { v, _ ->
if (v is CheckedTextView) {
@ -964,8 +961,8 @@ class UploadVideoActivity : ToolBarActivity() {
val intent = Intent(context, UploadVideoActivity::class.java)
intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
intent.putExtra(EntranceConsts.KEY_PATH, path)
intent.putExtra(VideoLinkEntity::class.java.simpleName, linkEntity)
intent.putExtra(SimpleGameEntity::class.java.simpleName, simpleGameEntity)
intent.putExtra(EntranceConsts.KEY_VIDEO_LINK_ENTITY, linkEntity)
intent.putExtra(EntranceConsts.KEY_SIMPLE_GAME_ENTITY, simpleGameEntity)
intent.putExtra(EntranceConsts.KEY_PATH_VIDEO, videoPath)
intent.putExtra(EntranceConsts.KEY_POSTER_PATH, poster)
return intent

View File

@ -7,25 +7,62 @@ import android.view.MenuItem
import android.view.View
import android.widget.TextView
import androidx.fragment.app.Fragment
import com.gh.gamecenter.common.base.activity.BaseActivity
import com.gh.gamecenter.common.base.activity.BaseActivity_TabLayout
import com.gh.common.util.*
import com.gh.gamecenter.R
import com.gh.gamecenter.common.base.activity.BaseActivity
import com.gh.gamecenter.common.base.activity.BaseActivity_TabLayout
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.common.entity.SimpleGameEntity
import com.gh.gamecenter.common.utils.PermissionHelper
import com.gh.gamecenter.common.utils.updateStatusBarColor
import com.gh.gamecenter.core.utils.MtaHelper
import com.gh.gamecenter.common.entity.SimpleGameEntity
import com.gh.gamecenter.entity.VideoLinkEntity
import com.gh.gamecenter.video.upload.view.UploadVideoActivity
import com.therouter.TheRouter
import com.therouter.router.Autowired
import com.therouter.router.Route
import com.zhihu.matisse.Matisse
import com.zhihu.matisse.MimeType
import com.zhihu.matisse.internal.utils.PathUtils
@Route(path = RouteConsts.activity.videoManagerActivity, description = "视频投稿")
class VideoManagerActivity : BaseActivity_TabLayout() {
@JvmField
@Autowired(name = EntranceConsts.KEY_TITLE, description = "标题")
var title: String? = null
private var mVideoLink: VideoLinkEntity? = null
private var mSimpleGameEntity: SimpleGameEntity? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_CATEGORY_ID, description = "分类ID")
var categoryId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_LINK, description = "只用于数据统计")
var link: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_GAME_ID, description = "游戏ID")
var gameId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_GAME_NAME, description = "游戏名称")
var gameName: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_TAG_ACTIVITY_ID, description = "活动标签ID")
var tagActivityId: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_TAG_ACTIVITY_NAME, description = "活动标签名")
var tagActivityName: String? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_VIDEO_LINK_ENTITY, description = "视频链接实体")
var videoLink: VideoLinkEntity? = null
@JvmField
@Autowired(name = EntranceConsts.KEY_SIMPLE_GAME_ENTITY, description = "游戏实体")
var simpleGameEntity: SimpleGameEntity? = null
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
@ -33,12 +70,12 @@ class VideoManagerActivity : BaseActivity_TabLayout() {
val uris = Matisse.obtainResult(data)
if (uris.size > 0) {
val videoPath = PathUtils.getPath(this, uris[0]) ?: ""
val intent = if (mVideoLink != null) {
val intent = if (videoLink != null) {
UploadVideoActivity.getIntent(
this,
videoPath,
mVideoLink!!,
mSimpleGameEntity,
videoLink!!,
simpleGameEntity,
mEntrance,
"视频投稿",
""
@ -56,19 +93,25 @@ class VideoManagerActivity : BaseActivity_TabLayout() {
}
override fun onCreate(savedInstanceState: Bundle?) {
TheRouter.inject(this)
if (videoLink == null) {
videoLink = VideoLinkEntity(title, categoryId, link, tagActivityId, tagActivityName)
}
if (simpleGameEntity == null) {
simpleGameEntity = SimpleGameEntity(gameId ?: "", gameName ?: "")
}
super.onCreate(savedInstanceState)
updateStatusBarColor(com.gh.gamecenter.common.R.color.ui_surface, com.gh.gamecenter.common.R.color.ui_surface)
setNavigationTitle("视频投稿")
setToolbarMenu(R.menu.menu_text)
mVideoLink = intent.getParcelableExtra(VideoLinkEntity::class.java.simpleName)
mSimpleGameEntity = intent.getParcelableExtra(SimpleGameEntity::class.java.simpleName)
val menuItem = getMenuItem(R.id.menu_text)
val container = menuItem.actionView?.findViewById<View>(R.id.menu_text)
val text = container?.findViewById<TextView>(R.id.layout_menu_text)
text?.text = "上传视频"
if (mVideoLink != null) {
if (videoLink != null) {
onMenuItemClick(menuItem)
}
LogUtils.logVideoStreamingUpload("进入视频投稿页", "视频投稿", "", "")
@ -121,9 +164,11 @@ class VideoManagerActivity : BaseActivity_TabLayout() {
@JvmStatic
fun getIntent(context: Context, entrance: String?, path: String?): Intent {
val intent = Intent(context, VideoManagerActivity::class.java)
intent.putExtra(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
return intent
val navigator = TheRouter.build(RouteConsts.activity.articleDetailActivity)
.fillParams { bundle ->
bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
}
return navigator.createIntent(context)
}
@JvmStatic
@ -135,8 +180,8 @@ class VideoManagerActivity : BaseActivity_TabLayout() {
): Bundle {
val bundle = Bundle()
bundle.putString(EntranceConsts.KEY_PATH, path)
bundle.putParcelable(VideoLinkEntity::class.java.simpleName, linkEntity)
bundle.putParcelable(SimpleGameEntity::class.java.simpleName, simpleGameEntity)
bundle.putParcelable(EntranceConsts.KEY_VIDEO_LINK_ENTITY, linkEntity)
bundle.putParcelable(EntranceConsts.KEY_SIMPLE_GAME_ENTITY, simpleGameEntity)
bundle.putString(EntranceConsts.KEY_TO, VideoManagerActivity::class.java.name)
bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
return bundle
@ -154,10 +199,12 @@ class VideoManagerActivity : BaseActivity_TabLayout() {
entrance: String?,
path: String?
): Intent {
val intent = Intent(context, VideoManagerActivity::class.java)
intent.putExtra(VideoLinkEntity::class.java.simpleName, linkEntity)
intent.putExtra(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
return intent
val navigator = TheRouter.build(RouteConsts.activity.articleDetailActivity)
.fillParams { bundle ->
bundle.putParcelable(EntranceConsts.KEY_VIDEO_LINK_ENTITY, linkEntity)
bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
}
return navigator.createIntent(context)
}
}
}

View File

@ -299,7 +299,7 @@ class WebFragment : LazyFragment(), IScrollable {
mForumName = args.getString(EntranceConsts.KEY_FORUM_NAME) ?: ""
mAutoCompletionTitle = args.getBoolean(KEY_COMPLETION_TITLE, true)
mNavigationTitle = args.getString(EntranceConsts.KEY_GAMENAME)
newsId = args.getString(EntranceConsts.KEY_NEWSID)
newsId = args.getString(EntranceConsts.KEY_NEWS_ID)
mIsBackpressRequireConfirmation = args.getBoolean(KEY_REQUIRE_BACK_CONFIRMATION)
mIsWebPageHandleBackPressed = args.getBoolean(KEY_LEAVE_WEB_PAGE_TO_HANDLE_BACK_PRESSED)
mBackConfirmationContent = args.getString(KEY_BACK_CONFIRMATION_CONTENT)

View File

@ -10,7 +10,7 @@ public class EntranceConsts {
public static final String KEY_TO = "to";
public static final String KEY_NEXT_TO = "next_to";
public static final String KEY_NEWSID = "newsId";
public static final String KEY_NEWS_ID = "news_id";
public static final String KEY_GAME_ID = "game_id";
public static final String KEY_GAMEID = KEY_GAME_ID;
public static final String KEY_ID = "id";
@ -31,9 +31,8 @@ public class EntranceConsts {
public static final String HOST_USERHOME = "userhome";//个人主页
public static final String HOST_VIDEO = "video";
public static final String HOST_FORUM = "forum";
public static final String HOST_CATEGORY = "category";
public static final String HOST_COLUMN_COLLECTION = "column_collection";//专题合集
public static final String HOST_COMMUNITY_QUESTION_LABEL_DETAIL = "community_question_label_detail";//问题标签详情
public static final String HOST_COMMUNITY_COLUMN_DETAIL = "community_column_detail";//专栏详情
public static final String HOST_BLOCK = "block";//板块
public static final String HOST_SERVER_BLOCK = "server";//开服表板块
public static final String HOST_AMWAY_BLOCK = "amway";//安利墙板块
@ -159,7 +158,7 @@ public class EntranceConsts {
public static final String KEY_PROLIST = "provinceList";
public static final String KEY_ORDER = "order";
public static final String KEY_TAGTYPE = "tagType";
public static final String KEY_ANSWER_ID = "answerId";
public static final String KEY_ANSWER_ID = "answer_id";
public static final String KEY_ANSWER_CONTENT = "answerContent";
public static final String KEY_QUESTIONS_ID = "questionsId";
public static final String KEY_QUESTIONS_TITLE = "questionsTitle";
@ -230,12 +229,12 @@ public class EntranceConsts {
public static final String KEY_IS_HOME = "isHome";
public static final String KEY_TAB_COUNT = "tab_count";
public static final String KEY_WEB_SHARE = "webShare";
public static final String KEY_ACTIVITY_NAME = "activityName";//活动名称
public static final String KEY_PAGINATION_TYPE = "paginationType";//活动分页方式
public static final String KEY_ACTIVITY_NAME = "activity_name";//活动名称
public static final String KEY_PAGINATION_TYPE = "pagination_type";//活动分页方式
public static final String KEY_REQUIRE_REDIRECT = "require_redirect"; // 标记需要再跳转
public static final String KEY_FIELD_ID = "field_id"; // 专区板块id
public static final String KEY_SECTION_NAME = "section_name"; // 专区专题名
public static final String KEY_COLUMNNAME = "columnName";
public static final String KEY_COLUMN_NAME = "column_name";
public static final String KEY_QA_ID = "qaId";
public static final String KEY_QA_CONTENT_ID = "qaContentId";
public static final String KEY_QA_CATEGORY_NAME = "qaCategoryName";
@ -369,4 +368,17 @@ public class EntranceConsts {
public static final String KEY_UID = "uid";
public static final String KEY_DISPLAY_TYPE = "display_type";
public static final String KEY_NEWS_ENTITY = "news_entity";
public static final String KEY_IS_COLLECTION_NEWS = "is_collection_news";
public static final String KEY_SUBJECT_ID = "subject_id";
public static final String KEY_SUBJECT_NAME = "subject_name";
public static final String KEY_IS_AD_SUBJECT = "is_ad_subject";
public static final String KEY_LIBAO_ID = "libao_id";
public static final String KEY_LIBAO_ENTITY = "libao_entity";
public static final String KEY_VIDEO_LINK_ENTITY = "video_link_entity";
public static final String KEY_SIMPLE_GAME_ENTITY = "simple_game_entity";
public static final String KEY_TITLE = "title";
public static final String KEY_TAG_ACTIVITY_ID = "tag_activity_id";
public static final String KEY_TAG_ACTIVITY_NAME = "tag_activity_name";
}

View File

@ -7,12 +7,7 @@ object RouteConsts {
const val cleanApkActivity = "/app/cleanApkActivity"
const val gameSubmissionActivity = "/app/gameSubmissionActivity"
const val imageViewerActivity = "/app/imageViewerActivity"
const val newsDetailActivity = "/app/newsDetailActivity"
const val ratingReplyActivity = "/app/ratingReplyActivity"
const val questionDetailActivity = "/app/questionDetailActivity"
const val articleDetailActivity = "/app/articleDetailActivity"
const val forumVideoDetailActivity = "/app/forumVideoDetailActivity"
const val libaoDetailActivity = "/app/libaoDetailActivity"
const val fullScreenVideoActivity = "/app/FullScreenVideoActivity"
const val videoCoverEditActivity = "/app/videoCoverEditActivity"
@ -27,6 +22,21 @@ object RouteConsts {
const val quickLoginActivity = "/activity/quick_login_activity"
const val securityActivity = "/activity/account_security"
const val serversCalendarManagementActivity = "/activity/server_manager"
const val newsDetailActivity = "/activity/news_detail"
const val subjectActivity = "/activity/subject"
const val libaoDetailActivity = "/activity/libao_detail"
const val questionDetailActivity = "/activity/question_detail"
const val answerDetailActivity = "/activity/answer_detail"
const val articleDetailActivity = "/activity/article_detail"
const val videoManagerActivity = "/activity/upload_video"
const val forumVideoDetailActivity = "/activity/forum_video_detail"
const val videoDetailActivity = "/activity/video_detail"
const val gameVideoActivity = "/activity/game_video"
const val communitySubjectActivity = "/activity/community_subject"
const val categoryV2Activity = "/activity/category"
const val columnCollectionDetailActivity = "/activity/column_collection"
const val toolBoxActivity = "/activity/toolbox"
const val aboutActivity = "/settings/AboutActivity"
const val webActivity = "/setting/WebActivity"

View File

@ -8,7 +8,6 @@ import android.graphics.Color
import android.graphics.Paint
import android.graphics.Typeface
import android.graphics.drawable.ColorDrawable
import android.os.Build
import android.text.Html
import android.text.Spannable
import android.text.SpannableStringBuilder
@ -23,11 +22,9 @@ import androidx.constraintlayout.widget.ConstraintSet
import androidx.core.content.ContextCompat
import androidx.fragment.app.FragmentActivity
import androidx.viewbinding.ViewBinding
import com.therouter.TheRouter
import com.gh.gamecenter.common.R
import com.gh.gamecenter.common.base.TrackableDialog
import com.gh.gamecenter.common.callback.ConfirmListener
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.common.databinding.DialogAlertDefaultBinding
import com.gh.gamecenter.common.databinding.DialogGuideBinding
import com.gh.gamecenter.common.databinding.DialogProgressBinding
@ -41,6 +38,7 @@ import com.google.android.material.imageview.ShapeableImageView
import com.lightgame.download.DownloadEntity
import com.lightgame.utils.AppManager
import com.lightgame.view.CheckableLinearLayout
import com.therouter.TheRouter
import splitties.systemservices.layoutInflater
object DialogHelper {
@ -718,18 +716,6 @@ object DialogHelper {
)
}
fun showVideoUnsupportedDialog(context: Context) {
showDialog(
context,
"提示",
"抱歉,您当前系统版本过低,暂不支持视频功能",
"我知道了",
"",
null,
null
)
}
@JvmStatic
fun showDeleteDialog(
context: Context,

View File

@ -106,9 +106,6 @@ data class LibaoEntity(
}
companion object {
const val TAG: String = "LibaoEntity"
fun createLibaoEntity(concernEntity: ConcernEntity, libaoStatusEntity: LibaoStatusEntity): LibaoEntity {
val libaoEntity = LibaoEntity()
libaoEntity.id = concernEntity.id

View File

@ -5,7 +5,6 @@ import android.os.Parcelable
import androidx.room.Entity
import androidx.room.PrimaryKey
import com.google.gson.annotations.SerializedName
import java.util.*
@Entity
class NewsEntity : Parcelable, Cloneable {
@ -90,8 +89,6 @@ class NewsEntity : Parcelable, Cloneable {
companion object {
const val TAG: String = "NewsEntity"
fun deepCopy(list: List<NewsEntity>?): List<NewsEntity>? {
if (list == null) return null
val copy = ArrayList<NewsEntity>()

View File

@ -19,7 +19,6 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.therouter.TheRouter;
import com.gh.gamecenter.common.base.activity.ToolBarActivity;
import com.gh.gamecenter.common.base.fragment.ToolbarFragment;
import com.gh.gamecenter.common.callback.OnRequestCallBackListener;
@ -58,6 +57,7 @@ import com.gh.gamecenter.message.R;
import com.gh.gamecenter.message.databinding.FragmentInfoConcernBinding;
import com.gh.gamecenter.message.retrofit.RetrofitManager;
import com.gh.gamecenter.message.utils.NewFlatLogUtils;
import com.therouter.TheRouter;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@ -470,7 +470,7 @@ public class ConcernFragment extends ToolbarFragment implements SwipeRefreshLayo
}
IAppProvider appProvider = TheRouter.get(IAppProvider.class);
if (appProvider != null && entity != null) {
appProvider.put(LibaoEntity.TAG, entity);
appProvider.put(EntranceConsts.KEY_LIBAO_ENTITY, entity);
}
TheRouter.build(RouteConsts.activity.libaoDetailActivity)
.withString(EntranceConsts.KEY_ENTRANCE, buildEntrance(position))
@ -513,7 +513,7 @@ public class ConcernFragment extends ToolbarFragment implements SwipeRefreshLayo
startActivityForResult(intent, NEWS_MESSAGE_ARTICLE_REQUEST);
} else {
TheRouter.build(RouteConsts.activity.newsDetailActivity)
.withString(EntranceConsts.KEY_NEWSID, concernEntity.getId())
.withString(EntranceConsts.KEY_NEWS_ID, concernEntity.getId())
.withString(EntranceConsts.KEY_ENTRANCE, buildEntrance(position))
.navigation(requireActivity(), NEWS_MESSAGE_ARTICLE_REQUEST);
}

View File

@ -667,7 +667,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder<MessageEntity>
);
if (view.getId() == R.id.message_original) {
TheRouter.build(RouteConsts.activity.newsDetailActivity)
.withString(EntranceConsts.KEY_NEWSID, entity.getArticle().getId())
.withString(EntranceConsts.KEY_NEWS_ID, entity.getArticle().getId())
.withString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
.navigation();
} else if (view.getId() == R.id.message_item) {
@ -695,7 +695,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder<MessageEntity>
);
if (view.getId() == R.id.message_original) {
TheRouter.build(RouteConsts.activity.newsDetailActivity)
.withString(EntranceConsts.KEY_NEWSID, entity.getArticle().getId())
.withString(EntranceConsts.KEY_NEWS_ID, entity.getArticle().getId())
.withString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
.navigation();
} else if (view.getId() == R.id.message_item) {

View File

@ -548,7 +548,7 @@ class MessageListAdapter(
"新闻" -> if (!TextUtils.isEmpty(data.id)) {
TheRouter.build(RouteConsts.activity.newsDetailActivity)
.withString(EntranceConsts.KEY_ENTRANCE, "(消息-公告)")
.withString(EntranceConsts.KEY_NEWSID, data.id)
.withString(EntranceConsts.KEY_NEWS_ID, data.id)
.navigation()
}