diff --git a/app/src/main/java/com/gh/common/util/GameUtils.java b/app/src/main/java/com/gh/common/util/GameUtils.java index e44d9b7834..628becc537 100644 --- a/app/src/main/java/com/gh/common/util/GameUtils.java +++ b/app/src/main/java/com/gh/common/util/GameUtils.java @@ -12,6 +12,7 @@ import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameCollectionEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.GameUpdateEntity; +import com.gh.gamecenter.entity.PluginLocation; import com.gh.gamecenter.manager.PackageManager; import com.lightgame.download.DownloadEntity; import com.lightgame.download.DownloadStatus; @@ -97,7 +98,8 @@ public class GameUtils { gh_id = PackageUtils.getMetaData(context, apkEntity.getPackageName(), "gh_id"); if (gameEntity.getTag() != null && gameEntity.getTag().size() != 0 && !TextUtils.isEmpty(apkEntity.getGhVersion()) - && !PackageUtils.isSignature(context, apkEntity.getPackageName())) { + && !PackageUtils.isSignature(context, apkEntity.getPackageName()) + && apkEntity.isShowPlugin(PluginLocation.only_game)) { pluginCount++; } else if (gh_id == null || gh_id.equals(gameEntity.getId())) { installCount++; diff --git a/app/src/main/java/com/gh/common/view/DownloadDialog.java b/app/src/main/java/com/gh/common/view/DownloadDialog.java index 4c20f54b9d..e36c683412 100644 --- a/app/src/main/java/com/gh/common/view/DownloadDialog.java +++ b/app/src/main/java/com/gh/common/view/DownloadDialog.java @@ -4,6 +4,7 @@ import android.content.Context; import android.support.annotation.Nullable; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; +import android.text.TextUtils; import android.view.Gravity; import android.view.KeyEvent; import android.view.View; @@ -24,6 +25,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.OnCollectionCallBackListener; import com.gh.gamecenter.adapter.PlatformPagerAdapter; import com.gh.gamecenter.entity.ApkEntity; +import com.gh.gamecenter.entity.ApkLink; import com.gh.gamecenter.entity.GameCollectionEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBDownloadStatus; @@ -128,6 +130,10 @@ public class DownloadDialog implements OnCollectionCallBackListener { mergeApkCollection(gameEntity); } + if (gameEntity.getApkLink() != null) { + mergeApkLink(gameEntity); + } + // 一个自定义的布局,作为显示的内容 View contentView = View.inflate(mContext, R.layout.game_download_dialog, null); @@ -196,17 +202,17 @@ public class DownloadDialog implements OnCollectionCallBackListener { private ArrayList sortApk(ArrayList apkList) { /* * 安装插件 10 - * 插件化下载中 9 - * 插件化 8 - * 安装更新 7 - * 更新下载中 6 - * 更新 5 - * 安装 4 - * 下载中 3 - * 启动 2 - * 默认(有图片)1 - * 默认(无图片)0 - */ + * 插件化下载中 9 + * 插件化 8 + * 安装更新 7 + * 更新下载中 6 + * 更新 5 + * 安装 4 + * 下载中 3 + * 启动 2 + * 默认(有图片)1 + * 默认(无图片)0 + */ DownloadEntity downloadEntity; String packageName; @@ -268,6 +274,38 @@ public class DownloadDialog implements OnCollectionCallBackListener { return apkList; } + // 合并ApkLink + private void mergeApkLink(GameEntity gameEntity) { + for (ApkLink apkLink : gameEntity.getApkLink()) { + if (!TextUtils.isEmpty(apkLink.getCollection())) { + for (int i = 0; i < gameApk.size(); i++) { + ApkEntity apkEntity = gameApk.get(i); + GameCollectionEntity apkCollection = apkEntity.getApkCollection(); + if (apkCollection != null && apkCollection.getSaveApkEntity() != null) { + List saveApkEntity = apkCollection.getSaveApkEntity(); + if (apkLink.getCollection().equals(apkCollection.getId())) { + ApkEntity element = new ApkEntity(); + element.setApkLink(apkLink); + if (saveApkEntity.size() > apkLink.getSort()) { + saveApkEntity.add(apkLink.getSort(), element); + } else { + saveApkEntity.add(element); + } + } + } + } + } else { + ApkEntity element = new ApkEntity(); + element.setApkLink(apkLink); + if (gameApk.size() > apkLink.getSort()) { + gameApk.add(apkLink.getSort(), element); + } else { + gameApk.add(element); + } + } + } + } + // 合并ApkCollection private void mergeApkCollection(GameEntity gameEntity) { List gameCollectionApk = new ArrayList<>(); @@ -289,6 +327,7 @@ public class DownloadDialog implements OnCollectionCallBackListener { List saveApkList = new ArrayList<>(); saveApkList.add(apkEntity); collectionEntity.setSaveApkEntity(saveApkList); + collectionEntity.setId(gameCollectionEntity.getId()); collectionEntity.setName(gameCollectionEntity.getName()); collectionEntity.setIcon(gameCollectionEntity.getIcon()); collectionEntity.setColor(gameCollectionEntity.getColor()); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java index 850d1288ec..7793982d75 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java @@ -29,13 +29,18 @@ import com.gh.common.util.PlatformUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.DownloadManagerActivity; +import com.gh.gamecenter.GameDetailActivity; +import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.VoteActivity; import com.gh.gamecenter.adapter.viewholder.PlatformViewHolder; import com.gh.gamecenter.entity.ApkEntity; +import com.gh.gamecenter.entity.ApkLink; import com.gh.gamecenter.entity.CollectionCloseEntity; import com.gh.gamecenter.entity.GameEntity; +import com.gh.gamecenter.entity.PluginLocation; import com.gh.gamecenter.manager.PackageManager; +import com.gh.gamecenter.subject.refactor.SubjectActivity; import com.halo.assistant.HaloApp; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.download.DownloadEntity; @@ -129,7 +134,25 @@ public class PlatformAdapter extends BaseRecyclerAdapter { viewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (viewHolder.mDownloadItemTvStatus.getVisibility() == View.GONE) { + ApkLink apkLink = apkEntity.getApkLink(); + if (apkLink != null) { + String entrance = mEntrance + "(" + apkLink.getName() + ")"; + switch (apkLink.getType()) { + case "game": + GameDetailActivity.startGameDetailActivity(mContext, apkLink.getLink(), entrance); + break; + case "article": + mContext.startActivity(NewsDetailActivity.getIntentById(mContext, apkLink.getLink(), entrance)); + break; + case "column": + SubjectActivity.startSubjectActivity(mContext, apkLink.getLink(), null, false, entrance); + break; + default: + DialogUtils.showLowVersionDialog(mContext); + break; + } + + } else if (viewHolder.mDownloadItemTvStatus.getVisibility() == View.GONE) { //下载游戏 DialogUtils.checkDownload(mContext, apkEntity.getSize(), isSubscribe -> download(apkEntity, viewHolder.mDownloadItemTvStatus, "下载", isSubscribe)); @@ -169,103 +192,27 @@ public class PlatformAdapter extends BaseRecyclerAdapter { } } }); - - Object gh_id = PackageUtils.getMetaData(mContext, apkEntity.getPackageName(), "gh_id"); - if (PackageManager.INSTANCE.isInstalled(apkEntity.getPackageName()) - && (gh_id == null || gh_id.equals(mGameEntity.getId()))) { - // 已安装 + ApkLink apkLink = apkEntity.getApkLink(); + if (apkLink != null) { viewHolder.mDownloadItemIvPic.setVisibility(View.GONE); - viewHolder.mDownloadItemTvHint.setVisibility(View.GONE); - viewHolder.mDownloadItemProgressbar.setVisibility(View.VISIBLE); - viewHolder.mDownloadItemTvName.setVisibility(View.VISIBLE); - viewHolder.mDownloadItemTvStatus.setVisibility(View.VISIBLE); - - int color = Color.parseColor(PlatformUtils.getInstance(mContext) - .getPlatformColor(apkEntity.getPlatform())); - viewHolder.itemView.setBackgroundDrawable(getGradientDrawable(color)); - - viewHolder.mDownloadItemTvName.setTextColor(color); - viewHolder.mDownloadItemTvName.setText(PlatformUtils - .getInstance(mContext).getPlatformName(apkEntity.getPlatform())); - - viewHolder.mDownloadItemProgressbar.setProgressDrawable(getLayerDrawable(color)); - - DownloadEntity downloadEntity = mEntryMap.get(apkEntity.getUrl()); - if (downloadEntity == null) { - viewHolder.mDownloadItemProgressbar.setProgress(1000); - if (mGameEntity.getTag() != null && mGameEntity.getTag().size() != 0 - && !TextUtils.isEmpty(apkEntity.getGhVersion()) - && !PackageUtils.isSignature(mContext, apkEntity.getPackageName())) { - viewHolder.mDownloadItemTvStatus.setText(R.string.pluggable); - downloadEntity = DownloadManager.getInstance(mContext).getDownloadEntityByPackageName(apkEntity.getPackageName()); - if (downloadEntity == null - || downloadEntity.getUrl().equals(apkEntity.getUrl())) { - viewHolder.itemView.setClickable(true); - viewHolder.mDownloadItemProgressbar.setProgress(1000); - } else { - viewHolder.itemView.setClickable(false); - viewHolder.mDownloadItemProgressbar.setProgress(0); - } - } else if (PackageManager.INSTANCE.isCanUpdate(mGameEntity.getId(), apkEntity.getPackageName())) { - viewHolder.mDownloadItemTvStatus.setText(R.string.update); - } else { - if (mOnCollectionCallBackListener == null) { - viewHolder.mDownloadItemTvStatus.setText("已安装"); - } else { - viewHolder.mDownloadItemTvStatus.setText(R.string.launch); - } - } - } else { - viewHolder.mDownloadItemProgressbar.setProgress((int) (downloadEntity.getPercent() * 10)); - if (downloadEntity.isPluggable()) { - if (downloadEntity.getStatus().equals(DownloadStatus.done)) { - viewHolder.mDownloadItemTvStatus.setText("安装插件"); - } else { - viewHolder.mDownloadItemTvStatus.setText("插件化下载中"); - } - } else if (downloadEntity.isUpdate()) { - if (downloadEntity.getStatus().equals(DownloadStatus.done)) { - viewHolder.mDownloadItemTvStatus.setText("安装更新"); - } else { - viewHolder.mDownloadItemTvStatus.setText("更新下载中"); - } - } - } + viewHolder.mDownloadItemTvHint.setVisibility(View.VISIBLE); + viewHolder.mDownloadItemTvName.setVisibility(View.GONE); + viewHolder.mDownloadItemTvStatus.setVisibility(View.GONE); + viewHolder.mDownloadItemProgressbar.setVisibility(View.GONE); + viewHolder.mDownloadItemTvHint.setText(apkLink.getName()); } else { - // 未安装 - DownloadEntity downloadEntity = mEntryMap.get(apkEntity.getUrl()); - if (downloadEntity == null - || downloadEntity.getStatus().equals(DownloadStatus.cancel) - || downloadEntity.getStatus().equals(DownloadStatus.hijack) - || downloadEntity.getStatus().equals(DownloadStatus.notfound)) { - String path = PlatformUtils.getInstance(mContext) - .getPlatformPicUrl(apkEntity.getPlatform()); - - viewHolder.mDownloadItemIvPic.setVisibility(View.VISIBLE); - viewHolder.mDownloadItemTvHint.setVisibility(View.VISIBLE); - viewHolder.mDownloadItemTvName.setVisibility(View.VISIBLE); - viewHolder.mDownloadItemTvStatus.setVisibility(View.GONE); - viewHolder.mDownloadItemProgressbar.setVisibility(View.GONE); - viewHolder.itemView.setBackgroundColor(0x00ffffff); - viewHolder.mDownloadItemTvHint.setText( - PlatformUtils.getInstance(mContext).getPlatformName(apkEntity.getPlatform())); - - if (TextUtils.isEmpty(path)) { - int id = PlatformUtils.getInstance(mContext).getPlatformPic( - apkEntity.getPlatform()); - ImageUtils.display(viewHolder.mDownloadItemIvPic, id); - } else { - ImageUtils.displayIcon(viewHolder.mDownloadItemIvPic, path); - } - } else { + Object gh_id = PackageUtils.getMetaData(mContext, apkEntity.getPackageName(), "gh_id"); + if (PackageManager.INSTANCE.isInstalled(apkEntity.getPackageName()) + && (gh_id == null || gh_id.equals(mGameEntity.getId()))) { + // 已安装 viewHolder.mDownloadItemIvPic.setVisibility(View.GONE); viewHolder.mDownloadItemTvHint.setVisibility(View.GONE); viewHolder.mDownloadItemProgressbar.setVisibility(View.VISIBLE); viewHolder.mDownloadItemTvName.setVisibility(View.VISIBLE); viewHolder.mDownloadItemTvStatus.setVisibility(View.VISIBLE); - int color = Color.parseColor(PlatformUtils.getInstance( - mContext).getPlatformColor(apkEntity.getPlatform())); + int color = Color.parseColor(PlatformUtils.getInstance(mContext) + .getPlatformColor(apkEntity.getPlatform())); viewHolder.itemView.setBackgroundDrawable(getGradientDrawable(color)); viewHolder.mDownloadItemTvName.setTextColor(color); @@ -273,17 +220,103 @@ public class PlatformAdapter extends BaseRecyclerAdapter { .getInstance(mContext).getPlatformName(apkEntity.getPlatform())); viewHolder.mDownloadItemProgressbar.setProgressDrawable(getLayerDrawable(color)); - viewHolder.mDownloadItemProgressbar.setProgress((int) (downloadEntity.getPercent() * 10)); - DownloadStatus status = downloadEntity.getStatus(); - if (status.equals(DownloadStatus.pause) - || status.equals(DownloadStatus.timeout) - || status.equals(DownloadStatus.neterror) - || status.equals(DownloadStatus.downloading) - || status.equals(DownloadStatus.waiting)) { - viewHolder.mDownloadItemTvStatus.setText(R.string.downloading); - } else if (status.equals(DownloadStatus.done)) { - viewHolder.mDownloadItemTvStatus.setText(R.string.install); + DownloadEntity downloadEntity = mEntryMap.get(apkEntity.getUrl()); + if (downloadEntity == null) { + viewHolder.mDownloadItemProgressbar.setProgress(1000); + if (mGameEntity.getTag() != null && mGameEntity.getTag().size() != 0 + && !TextUtils.isEmpty(apkEntity.getGhVersion()) + && !PackageUtils.isSignature(mContext, apkEntity.getPackageName()) + && apkEntity.isShowPlugin(PluginLocation.only_game)) { + viewHolder.mDownloadItemTvStatus.setText(R.string.pluggable); + downloadEntity = DownloadManager.getInstance(mContext).getDownloadEntityByPackageName(apkEntity.getPackageName()); + if (downloadEntity == null + || downloadEntity.getUrl().equals(apkEntity.getUrl())) { + viewHolder.itemView.setClickable(true); + viewHolder.mDownloadItemProgressbar.setProgress(1000); + } else { + viewHolder.itemView.setClickable(false); + viewHolder.mDownloadItemProgressbar.setProgress(0); + } + } else if (PackageManager.INSTANCE.isCanUpdate(mGameEntity.getId(), apkEntity.getPackageName())) { + viewHolder.mDownloadItemTvStatus.setText(R.string.update); + } else { + if (mOnCollectionCallBackListener == null) { + viewHolder.mDownloadItemTvStatus.setText("已安装"); + } else { + viewHolder.mDownloadItemTvStatus.setText(R.string.launch); + } + } + } else { + viewHolder.mDownloadItemProgressbar.setProgress((int) (downloadEntity.getPercent() * 10)); + if (downloadEntity.isPluggable()) { + if (downloadEntity.getStatus().equals(DownloadStatus.done)) { + viewHolder.mDownloadItemTvStatus.setText("安装插件"); + } else { + viewHolder.mDownloadItemTvStatus.setText("插件化下载中"); + } + } else if (downloadEntity.isUpdate()) { + if (downloadEntity.getStatus().equals(DownloadStatus.done)) { + viewHolder.mDownloadItemTvStatus.setText("安装更新"); + } else { + viewHolder.mDownloadItemTvStatus.setText("更新下载中"); + } + } + } + } else { + // 未安装 + DownloadEntity downloadEntity = mEntryMap.get(apkEntity.getUrl()); + if (downloadEntity == null + || downloadEntity.getStatus().equals(DownloadStatus.cancel) + || downloadEntity.getStatus().equals(DownloadStatus.hijack) + || downloadEntity.getStatus().equals(DownloadStatus.notfound)) { + String path = PlatformUtils.getInstance(mContext) + .getPlatformPicUrl(apkEntity.getPlatform()); + + viewHolder.mDownloadItemIvPic.setVisibility(View.VISIBLE); + viewHolder.mDownloadItemTvHint.setVisibility(View.VISIBLE); + viewHolder.mDownloadItemTvName.setVisibility(View.VISIBLE); + viewHolder.mDownloadItemTvStatus.setVisibility(View.GONE); + viewHolder.mDownloadItemProgressbar.setVisibility(View.GONE); + viewHolder.itemView.setBackgroundColor(0x00ffffff); + viewHolder.mDownloadItemTvHint.setText( + PlatformUtils.getInstance(mContext).getPlatformName(apkEntity.getPlatform())); + + if (TextUtils.isEmpty(path)) { + int id = PlatformUtils.getInstance(mContext).getPlatformPic( + apkEntity.getPlatform()); + ImageUtils.display(viewHolder.mDownloadItemIvPic, id); + } else { + ImageUtils.displayIcon(viewHolder.mDownloadItemIvPic, path); + } + } else { + viewHolder.mDownloadItemIvPic.setVisibility(View.GONE); + viewHolder.mDownloadItemTvHint.setVisibility(View.GONE); + viewHolder.mDownloadItemProgressbar.setVisibility(View.VISIBLE); + viewHolder.mDownloadItemTvName.setVisibility(View.VISIBLE); + viewHolder.mDownloadItemTvStatus.setVisibility(View.VISIBLE); + + int color = Color.parseColor(PlatformUtils.getInstance( + mContext).getPlatformColor(apkEntity.getPlatform())); + viewHolder.itemView.setBackgroundDrawable(getGradientDrawable(color)); + + viewHolder.mDownloadItemTvName.setTextColor(color); + viewHolder.mDownloadItemTvName.setText(PlatformUtils + .getInstance(mContext).getPlatformName(apkEntity.getPlatform())); + + viewHolder.mDownloadItemProgressbar.setProgressDrawable(getLayerDrawable(color)); + viewHolder.mDownloadItemProgressbar.setProgress((int) (downloadEntity.getPercent() * 10)); + + DownloadStatus status = downloadEntity.getStatus(); + if (status.equals(DownloadStatus.pause) + || status.equals(DownloadStatus.timeout) + || status.equals(DownloadStatus.neterror) + || status.equals(DownloadStatus.downloading) + || status.equals(DownloadStatus.waiting)) { + viewHolder.mDownloadItemTvStatus.setText(R.string.downloading); + } else if (status.equals(DownloadStatus.done)) { + viewHolder.mDownloadItemTvStatus.setText(R.string.install); + } } } } diff --git a/app/src/main/java/com/gh/gamecenter/entity/ApkEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/ApkEntity.kt index 295601cb34..390348f23c 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/ApkEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/ApkEntity.kt @@ -20,8 +20,8 @@ data class ApkEntity(@SerializedName("package") @SerializedName("active") var isActive: Boolean = true, var force: Boolean = false, - //控制是否显示插件化 默认:open,取值有:open/only_index/only_game/close - val plugin: String? = "") : Parcelable { + var apkLink: ApkLink? = null, + val plugin: String? = ""/*控制是否显示插件化 默认:open,取值有:open/only_index/only_game/close*/) : Parcelable { fun getPlatform(): String? { if (TextUtils.isEmpty(platform)) { return "官方版" @@ -40,3 +40,14 @@ data class ApkEntity(@SerializedName("package") return false } } + +@Parcelize +class ApkLink(@SerializedName("_id") + val id: String = "", + val name: String = "", + val icon: String = "", + val type: String = "", + val link: String = "", + val text: String = "", + val sort: Int = 0, + val collection: String = "") : Parcelable \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/entity/CommunityEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/CommunityEntity.kt index 8c97e44177..4254239135 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/CommunityEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/CommunityEntity.kt @@ -5,4 +5,6 @@ import com.google.gson.annotations.SerializedName import kotlinx.android.parcel.Parcelize @Parcelize -data class CommunityEntity(@SerializedName("_id") var id: String = "", var name: String = "") : Parcelable \ No newline at end of file +data class CommunityEntity(@SerializedName("_id") + var id: String = "", + var name: String = "") : Parcelable \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameCollectionEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/GameCollectionEntity.kt index 0d0ef2420f..183da91d29 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameCollectionEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/GameCollectionEntity.kt @@ -9,10 +9,11 @@ import kotlinx.android.parcel.Parcelize */ @Parcelize data class GameCollectionEntity( + @SerializedName("_id") + var id: String? = "", var color: String? = null, var icon: String? = null, var name: String? = null, @SerializedName("package") var `package`: List = ArrayList(), - var saveApkEntity: List? = null - ) : Parcelable + var saveApkEntity: List? = null) : Parcelable diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt index 2ad8901fa5..a271fde975 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt @@ -6,6 +6,7 @@ import com.gh.common.constant.Config import com.gh.gamecenter.game.data.GameSubjectData import com.google.gson.annotations.SerializedName import com.lightgame.download.DownloadEntity +import kotlinx.android.parcel.IgnoredOnParcel import kotlinx.android.parcel.Parcelize @Parcelize @@ -28,11 +29,12 @@ data class GameEntity( var test: TestEntity? = null, @SerializedName("d_button_add_word") var downloadAddWord: String? = null, - private var entryMap: Map? = ArrayMap(), var image: String? = null, var type: String? = null, var isPluggable: Boolean = false, var link: String? = null, + @SerializedName("apk_link") + var apkLink: ArrayList? = null, @SerializedName("concern_article_exists") var isNewsExists: Boolean = true, @SerializedName("download_off_text") @@ -65,9 +67,13 @@ data class GameEntity( // 用于开服表标记是否为置顶项目 @SerializedName("is_fixed_top") var fixedTop: Boolean? = false, - var fixedTopHint: Boolean? = false, - @Transient - var gameLocation: GameLocation? = null) : Parcelable { + var fixedTopHint: Boolean? = false) : Parcelable { + + @IgnoredOnParcel + private var entryMap: ArrayMap? = ArrayMap() + + @IgnoredOnParcel + var gameLocation: GameLocation? = null constructor(id: String?) : this() { this.id = id @@ -113,7 +119,7 @@ data class GameEntity( } fun getEntryMap(): ArrayMap { - return (entryMap as ArrayMap?)!! + return entryMap!! } fun setEntryMap(entryMap: ArrayMap?) { @@ -144,7 +150,7 @@ data class GameEntity( gameEntity.test = test gameEntity.downloadAddWord = downloadAddWord if (entryMap != null) { - gameEntity.setEntryMap(entryMap as ArrayMap?) + gameEntity.setEntryMap(entryMap) } gameEntity.image = image gameEntity.type = type diff --git a/app/src/main/java/com/gh/gamecenter/qa/entity/AskSlideEntity.kt b/app/src/main/java/com/gh/gamecenter/qa/entity/AskSlideEntity.kt index e4123a7184..5e1ea40b93 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/entity/AskSlideEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/entity/AskSlideEntity.kt @@ -1,6 +1,7 @@ package com.gh.gamecenter.qa.entity import android.os.Parcelable +import com.gh.gamecenter.entity.CommunityEntity import com.google.gson.annotations.SerializedName import kotlinx.android.parcel.Parcelize @@ -9,7 +10,5 @@ data class AskSlideEntity(var type: String? = null, var link: String? = null, var text: String? = null, var image: String? = null, - @SerializedName("community_name") - var communityName: String = "", - @SerializedName("community_id") - var communityId: String = "") : Parcelable + @SerializedName("link_community") + val community: CommunityEntity = CommunityEntity()) : Parcelable diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendsSubjectPageAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendsSubjectPageAdapter.java index 60a3f16661..3526ab02ec 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendsSubjectPageAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendsSubjectPageAdapter.java @@ -13,7 +13,6 @@ import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.RecyclingPagerAdapter; import com.gh.gamecenter.databinding.AskRecommendsSubjectItemBinding; -import com.gh.gamecenter.entity.CommunityEntity; import com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity; import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity; import com.gh.gamecenter.qa.column.detail.AskColumnDetailActivity; @@ -67,16 +66,13 @@ public class AskRecommendsSubjectPageAdapter extends RecyclingPagerAdapter { mContext.startActivity(AnswerDetailActivity.getIntent(mContext, entity.getLink(), "(社区轮播图)", "社区轮播图")); break; case "community_article": - mContext.startActivity(ArticleDetailActivity.getIntent(mContext, - new CommunityEntity(entity.getCommunityId(), entity.getCommunityName()), entity.getLink())); + mContext.startActivity(ArticleDetailActivity.getIntent(mContext, entity.getCommunity(), entity.getLink())); break; case "community_column": - mContext.startActivity(CommunitySubjectActivity.getIntent(mContext, - new CommunityEntity(entity.getCommunityId(), entity.getCommunityName()), entity.getLink())); + mContext.startActivity(CommunitySubjectActivity.getIntent(mContext, entity.getCommunity(), entity.getLink())); break; case "community_special_column": - mContext.startActivity(AskColumnDetailActivity.getIntentByColumnId(mContext, entity.getLink(), - new CommunityEntity(entity.getCommunityId(), entity.getCommunityName()))); + mContext.startActivity(AskColumnDetailActivity.getIntentByColumnId(mContext, entity.getLink(), entity.getCommunity())); break; default: DialogUtils.showLowVersionDialog(mContext);