From 627affe0f7478794c2780210974596d3e443134c Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Sat, 30 Jun 2018 04:56:17 +0800 Subject: [PATCH] =?UTF-8?q?2018-6-30=2002:25:25=20=20=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E8=A1=A5=E5=85=85=EF=BC=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/databind/BindingAdapters.java | 3 --- .../java/com/gh/common/view/DownloadProgressBar.java | 1 + .../main/java/com/gh/common/view/ExpendTextView.java | 7 ++++++- .../gh/gamecenter/adapter/InstallFragmentAdapter.java | 7 ++++++- .../gh/gamecenter/category/CategoryListAdapter.java | 2 +- .../java/com/gh/gamecenter/entity/SubjectEntity.kt | 2 +- .../java/com/gh/gamecenter/game/GameFragmentAdapter.kt | 10 +++++++++- .../main/java/com/gh/gamecenter/game/GameViewModel.kt | 6 ++++-- .../qa/column/detail/AskColumnDetailActivity.kt | 1 + .../search/SearchGameDetailFragmentAdapter.java | 7 ++++++- .../search/SearchGameListFragmentAdapter.java | 8 ++++++-- app/src/main/res/layout/activity_ask_column_detail.xml | 7 ++----- app/src/main/res/layout/gamedetail_item_kaifu.xml | 2 +- 13 files changed, 44 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/gh/common/databind/BindingAdapters.java b/app/src/main/java/com/gh/common/databind/BindingAdapters.java index a5f2d3a586..54b36c6536 100644 --- a/app/src/main/java/com/gh/common/databind/BindingAdapters.java +++ b/app/src/main/java/com/gh/common/databind/BindingAdapters.java @@ -287,9 +287,6 @@ public class BindingAdapters { @BindingAdapter({"downloadButton", "traceEvent"}) public static void setDownloadButton(DownloadProgressBar progressBar, GameEntity gameEntity, ExposureEvent traceEvent) { - if (gameEntity != null && TextUtils.isEmpty(gameEntity.getId())) { - gameEntity.setId(gameEntity.getLink()); - } // 判断是否显示按钮 if (gameEntity != null && Config.isShowDownload(gameEntity.getId()) diff --git a/app/src/main/java/com/gh/common/view/DownloadProgressBar.java b/app/src/main/java/com/gh/common/view/DownloadProgressBar.java index 6b7d4de269..6a85b8bab1 100644 --- a/app/src/main/java/com/gh/common/view/DownloadProgressBar.java +++ b/app/src/main/java/com/gh/common/view/DownloadProgressBar.java @@ -108,6 +108,7 @@ public class DownloadProgressBar extends ProgressBar { public void setText(@StringRes int res) { setText(getResources().getString(res)); + invalidate(); // 文字绘制没有同步 就重绘多几遍吧 虽然不知到有没有用 } public void setDownloadType(DownloadType downloadType) { diff --git a/app/src/main/java/com/gh/common/view/ExpendTextView.java b/app/src/main/java/com/gh/common/view/ExpendTextView.java index 26ebd99dc4..450a0fe0a4 100644 --- a/app/src/main/java/com/gh/common/view/ExpendTextView.java +++ b/app/src/main/java/com/gh/common/view/ExpendTextView.java @@ -12,6 +12,7 @@ import android.text.style.ClickableSpan; import android.util.AttributeSet; import android.view.View; +import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; public class ExpendTextView extends android.support.v7.widget.AppCompatTextView { @@ -50,6 +51,10 @@ public class ExpendTextView extends android.support.v7.widget.AppCompatTextView } } + public void setExpendText(String text) { + this.mExpendText = text; + } + @Override public void setText(CharSequence text, BufferType type) { mInitLayout = true; @@ -75,7 +80,7 @@ public class ExpendTextView extends android.support.v7.widget.AppCompatTextView for (int i = lastText.length() - 1; i > 0; i--) { CharSequence sequence = lastText.subSequence(0, i); float w = paint.measureText(sequence.toString()); - if (viewWidth - w > expendTextWidth) { + if (viewWidth - w - DisplayUtils.dip2px(5) > expendTextWidth) { content = mSnapshotText.subSequence(start, lastLineStart + i) + mExpendText; break; } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/InstallFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/InstallFragmentAdapter.java index 94180c6ac3..2c7057afc0 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/InstallFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/InstallFragmentAdapter.java @@ -239,7 +239,7 @@ public class InstallFragmentAdapter extends BaseRecyclerAdapter { for (String id : ids) { sequences.add(RetrofitManager.getInstance(mContext).getApi().getGameDigest(id)); } - Observable.merge(sequences) + Observable.mergeDelayError(sequences) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Response() { @@ -248,6 +248,11 @@ public class InstallFragmentAdapter extends BaseRecyclerAdapter { processingData(result); } + @Override + public void onError(Throwable e) { + processingData(result); + } + @Override public void onNext(GameEntity response) { ApkActiveUtils.filterHideApk(response); diff --git a/app/src/main/java/com/gh/gamecenter/category/CategoryListAdapter.java b/app/src/main/java/com/gh/gamecenter/category/CategoryListAdapter.java index e5c547ac2f..3c8844984c 100644 --- a/app/src/main/java/com/gh/gamecenter/category/CategoryListAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/category/CategoryListAdapter.java @@ -306,7 +306,7 @@ public class CategoryListAdapter extends BaseRecyclerAdapter exposureSources = new ArrayList<>(); exposureSources.add(new ExposureSource(mTitle, mName)); diff --git a/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.kt index 02cbdb27d3..037272d0a3 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.kt @@ -11,7 +11,7 @@ import kotlinx.android.parcel.Parcelize data class SubjectEntity(@SerializedName("_id") var id: String? = null, var name: String? = null, - var more: String? = null, + var more: Int? = null, @SerializedName("order") var isOrder: Boolean = false, var home: String? = null, diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt index 535439a32c..5c6e466dc4 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt @@ -123,7 +123,15 @@ class GameFragmentAdapter(context: Context, model: GameViewModel, var blockName: val column = mItemDataList[position].columnHead holder.binding.subject = column holder.binding.headPb.visibility = View.GONE - holder.binding.headMore.text = if ("change" == column?.home) "换一批" else "全部" + val text = if ("change" == column?.home) "换一批" else "全部" + holder.binding.headMore.text = text + + if (text == "全部" && column != null && column.data != null && column.data!!.size >= column.more!!) { + holder.binding.headMore.visibility = View.GONE + } else { + holder.binding.headMore.visibility = View.VISIBLE + } + holder.binding.headMore.setOnClickListener({ if ("all" == column?.home) { SubjectActivity.startSubjectActivity(mContext, column.id, column.name, column.isOrder, "(游戏-专题:" + column.name + "-全部)") diff --git a/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt b/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt index 106e8ea737..2c4014c98d 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt @@ -296,10 +296,12 @@ class GameViewModel(application: Application, blockData: SubjectRecommendEntity? if (!data[0].image.isNullOrEmpty()) { val itemDataImage = GameItemData() - itemDataImage.image = data[0] + val gameEntity = data[0] + if (gameEntity.id.isNullOrEmpty()) gameEntity.id = gameEntity.link + itemDataImage.image = gameEntity itemDataImage.image?.subjectData = GameSubjectData(name = subjectEntity.name, isOrder = false) itemDataListCache.add(itemDataImage) - if (data[0].type == "game") addGamePositionAndPackage(data[0]) + if (gameEntity.type == "game") addGamePositionAndPackage(gameEntity) if (subjectEntity.type == "image") continue } diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/detail/AskColumnDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/column/detail/AskColumnDetailActivity.kt index 365632371d..b4a1d7bc03 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/detail/AskColumnDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/column/detail/AskColumnDetailActivity.kt @@ -34,6 +34,7 @@ class AskColumnDetailActivity : BaseActivity() { if (!questionTag.isNullOrEmpty()) setNavigationTitle(questionTag) mBinding = ActivityAskColumnDetailBinding.bind(mContentView) + mBinding?.columnDetailDes?.setExpendText("...更多") mBinding?.columnDetailTabRecommends?.isChecked = true mBinding?.entity = columnEntity mBinding?.clickListener = OnViewClickListener { v, position -> diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java index c48f7d4c99..093d96b16a 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java @@ -23,6 +23,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; +import com.gh.gamecenter.entity.TagStyleEntity; import com.gh.gamecenter.eventbus.EBSearch; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.Response; @@ -149,7 +150,11 @@ class SearchGameDetailFragmentAdapter extends BaseRecyclerAdapter { viewHolder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief())); } - GameViewUtils.setLabelList(mContext, viewHolder.gameLabelList, gameEntity.getTag(), "", gameEntity.getTagStyle()); + ArrayList tag = new ArrayList<>(); + for (TagStyleEntity entity : gameEntity.getTagStyle()) { + tag.add(entity.getName()); + } + GameViewUtils.setLabelList(mContext, viewHolder.gameLabelList, tag, "type", gameEntity.getTagStyle()); viewHolder.itemView.setOnClickListener(new OnClickListener() { @Override diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java index 0156c7c439..53fe8f1606 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java @@ -25,6 +25,7 @@ import com.gh.gamecenter.adapter.viewholder.SearchHistoryViewHolder; import com.gh.gamecenter.db.SearchHistoryDao; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; +import com.gh.gamecenter.entity.TagStyleEntity; import com.gh.gamecenter.eventbus.EBSearch; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.Response; @@ -158,8 +159,11 @@ class SearchGameListFragmentAdapter extends BaseRecyclerAdapter { viewHolder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief())); } - GameViewUtils.setLabelList(mContext, viewHolder.gameLabelList, gameEntity.getTag(), "", gameEntity.getTagStyle()); - + ArrayList tag = new ArrayList<>(); + for (TagStyleEntity entity : gameEntity.getTagStyle()) { + tag.add(entity.getName()); + } + GameViewUtils.setLabelList(mContext, viewHolder.gameLabelList, tag, "type", gameEntity.getTagStyle()); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/res/layout/activity_ask_column_detail.xml b/app/src/main/res/layout/activity_ask_column_detail.xml index 7791557095..9799b811c3 100644 --- a/app/src/main/res/layout/activity_ask_column_detail.xml +++ b/app/src/main/res/layout/activity_ask_column_detail.xml @@ -54,15 +54,12 @@ imageUrl = "@{entity.icon}" android:layout_width = "80dp" android:layout_height = "80dp" - android:layout_centerVertical = "true" - android:layout_marginRight = "15dp" - android:layout_marginTop = "10dp" /> + android:layout_marginRight = "15dp" /> diff --git a/app/src/main/res/layout/gamedetail_item_kaifu.xml b/app/src/main/res/layout/gamedetail_item_kaifu.xml index 205ce19b19..52ed9edada 100644 --- a/app/src/main/res/layout/gamedetail_item_kaifu.xml +++ b/app/src/main/res/layout/gamedetail_item_kaifu.xml @@ -202,7 +202,7 @@ android:id = "@+id/kaifu_detail_hint" android:layout_width = "match_parent" android:layout_height = "match_parent" - android:background = "#C0000000" + android:background = "#80000000" android:visibility = "gone" >