From de60d05190353b50365cdba4f2d8a434d01563fc Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Tue, 19 Feb 2019 15:42:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=92=E4=BB=B6=E6=B8=B8=E6=88=8F=E6=B1=82?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84=20https:?= =?UTF-8?q?//gitlab.ghzhushou.com/pm/halo-app-issues/issues/450#note=5F172?= =?UTF-8?q?74?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/common/util/EntranceUtils.java | 1 + .../com/gh/gamecenter/GameDetailActivity.java | 11 +++++ .../gh/gamecenter/adapter/VoteAdapter.java | 47 +++++++++++++++---- .../gh/gamecenter/entity/VersionVoteEntity.kt | 4 ++ .../gamedetail/GameDetailFragment.java | 6 ++- .../main/res/layout/game_download_dialog.xml | 25 +++++----- 6 files changed, 72 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/EntranceUtils.java b/app/src/main/java/com/gh/common/util/EntranceUtils.java index aa18969907..4f903f7f24 100644 --- a/app/src/main/java/com/gh/common/util/EntranceUtils.java +++ b/app/src/main/java/com/gh/common/util/EntranceUtils.java @@ -111,6 +111,7 @@ public class EntranceUtils { public static final String KEY_RATING_STAR_COUNT = "ratingStarCount"; public static final String KEY_QUESTION_MODERATOR_PATCH = "questionModeratorPatch"; public static final String KEY_SKIP_GAME_COMMENT = "skipGameComment"; + public static final String KEY_OPEN_PLATFORM_WINDOW = "openPlatformWindow"; public static void jumpActivity(Context context, Bundle bundle) { diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java index 7cd0642eca..b00681171d 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java @@ -88,6 +88,17 @@ public class GameDetailActivity extends NormalActivity { context.startActivity(getTargetIntent(context, GameDetailActivity.class, GameDetailFragment.class, bundle)); } + /** + * 如果存在多个游戏平台则打开 + */ + public static void startGameDetailActivityByVote(Context context, String gameId, String entrance) { + Bundle bundle = new Bundle(); + bundle.putString(EntranceUtils.KEY_GAMEID, gameId); + bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); + bundle.putBoolean(EntranceUtils.KEY_OPEN_PLATFORM_WINDOW, true); + context.startActivity(getTargetIntent(context, GameDetailActivity.class, GameDetailFragment.class, bundle)); + } + @Override public void onBackPressed() { if (Jzvd.backPress()) { diff --git a/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java index 6e8702caf4..0d3e13ba87 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java @@ -11,11 +11,16 @@ import android.view.View; import android.view.ViewGroup; import com.gh.base.OnRequestCallBackListener; +import com.gh.common.util.DialogUtils; import com.gh.common.util.DisplayUtils; +import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.GameDetailActivity; +import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.VoteViewHolder; import com.gh.gamecenter.baselist.ListAdapter; +import com.gh.gamecenter.entity.LinkEntity; import com.gh.gamecenter.entity.MeEntity; import com.gh.gamecenter.entity.VersionVoteEntity; @@ -62,19 +67,27 @@ public class VoteAdapter extends ListAdapter { if (holder instanceof VoteViewHolder) { final VoteViewHolder viewHolder = (VoteViewHolder) holder; VersionVoteEntity versionVoteEntity = mEntityList.get(position); - MeEntity userData = versionVoteEntity.getMe(); - if (userData != null && userData.isVersionRequested()) { - viewHolder.voteBtn.setBackgroundResource(R.drawable.border_suggest_bg); - viewHolder.voteBtn.setTextColor(ContextCompat.getColor(mContext, R.color.content)); - viewHolder.voteBtn.setText(R.string.voted); - viewHolder.voteBtn.setEnabled(false); + if (versionVoteEntity.getOpen()) { + MeEntity userData = versionVoteEntity.getMe(); + if (userData != null && userData.isVersionRequested()) { + viewHolder.voteBtn.setBackgroundResource(R.drawable.border_suggest_bg); + viewHolder.voteBtn.setTextColor(ContextCompat.getColor(mContext, R.color.content)); + viewHolder.voteBtn.setText(R.string.voted); + viewHolder.voteBtn.setEnabled(false); + } else { + viewHolder.voteBtn.setBackgroundResource(R.drawable.button_normal_style); + viewHolder.voteBtn.setTextColor(Color.WHITE); + viewHolder.voteBtn.setText(R.string.vote); + viewHolder.voteBtn.setEnabled(true); + } } else { viewHolder.voteBtn.setBackgroundResource(R.drawable.button_normal_style); viewHolder.voteBtn.setTextColor(Color.WHITE); - viewHolder.voteBtn.setText(R.string.vote); + viewHolder.voteBtn.setText(R.string.libao_check); viewHolder.voteBtn.setEnabled(true); } + View progressbar = viewHolder.progressbar; ViewGroup.LayoutParams layoutParams = progressbar.getLayoutParams(); if (position > 0) { @@ -99,7 +112,25 @@ public class VoteAdapter extends ListAdapter { viewHolder.count.setText(mContext.getString(R.string.vote_count, versionVoteEntity.getNum())); progressbar.setLayoutParams(layoutParams); - viewHolder.voteBtn.setOnClickListener(v -> mCallBackListener.loadDone(versionVoteEntity.getId())); + viewHolder.voteBtn.setOnClickListener(v -> { + if (versionVoteEntity.getOpen()) { + mCallBackListener.loadDone(versionVoteEntity.getId()); + } else { + LinkEntity link = versionVoteEntity.getLink(); + String entrance = "(游戏求版本)"; + switch (link.getType() == null ? "" : link.getType()) { + case EntranceUtils.HOST_GAME: + GameDetailActivity.startGameDetailActivityByVote(mContext, link.getLink(), entrance); + break; + case EntranceUtils.HOST_ARTICLE: + NewsDetailActivity.getIntentById(mContext, link.getLink(), entrance); + break; + default: + DialogUtils.showLowVersionDialog(mContext); + break; + } + } + }); } else if (holder instanceof FooterViewHolder) { initFooterViewHolder((FooterViewHolder) holder); } diff --git a/app/src/main/java/com/gh/gamecenter/entity/VersionVoteEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/VersionVoteEntity.kt index 10c054efe8..5f16f2f754 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/VersionVoteEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/VersionVoteEntity.kt @@ -19,4 +19,8 @@ class VersionVoteEntity { var me: MeEntity? = null var reply: String? = null + + var open : Boolean = true + + var link: LinkEntity = LinkEntity() } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.java index 28b2eda16a..7cadd41813 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.java @@ -74,7 +74,7 @@ import retrofit2.HttpException; /** * Created by CsHeng on 19/12/2017. - * \游戏详情适配器 + * 游戏详情适配器 */ public class GameDetailFragment extends NormalFragment { @@ -152,6 +152,7 @@ public class GameDetailFragment extends NormalFragment { private boolean mSwitchToFirstTabInStartup; private boolean mSkipGameComment; private boolean mIsPageChanged; + private boolean mIsOpenPlatformWindow; private int mCurVpPosition; private int mMaxWidth; @@ -213,6 +214,7 @@ public class GameDetailFragment extends NormalFragment { mAutoDownload = args.getBoolean(EntranceUtils.KEY_AUTO_DOWNLOAD); mTraceEvent = args.getParcelable(EntranceUtils.KEY_TRACE_EVENT); mSkipGameComment = args.getBoolean(EntranceUtils.KEY_SKIP_GAME_COMMENT); + mIsOpenPlatformWindow = args.getBoolean(EntranceUtils.KEY_OPEN_PLATFORM_WINDOW); mSkeleton = Skeleton.bind(mListSkeleton).shimmer(false).load(R.layout.fragment_gamedetail_skeleton).show(); @@ -344,7 +346,7 @@ public class GameDetailFragment extends NormalFragment { } } - if (mAutoDownload) { + if (mAutoDownload || (mIsOpenPlatformWindow && mGameEntity.getApk().size() > 1)) { viewHolder.mDownloadPb.performClick(); mAutoDownload = false; } diff --git a/app/src/main/res/layout/game_download_dialog.xml b/app/src/main/res/layout/game_download_dialog.xml index 4516bb0eed..6e74429c52 100644 --- a/app/src/main/res/layout/game_download_dialog.xml +++ b/app/src/main/res/layout/game_download_dialog.xml @@ -15,39 +15,40 @@ + android:layout_height = "45dp" >