From 3e0e4caa0cf11f4c83d67a697ebcb45611f3df6f Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Wed, 14 Jun 2017 11:22:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=93=E9=A2=98=E5=A4=B4=E5=9B=BE=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/constant/Config.java | 2 +- .../java/com/gh/common/util/DataUtils.java | 2 +- .../com/gh/gamecenter/GameDetailActivity.java | 9 ++++ .../gamecenter/game/GameFragmentAdapter.java | 11 +++-- .../gh/gamecenter/gamedetail/FuLiAdapter.java | 5 ++- .../gh/gamecenter/retrofit/ApiService.java | 3 -- .../gh/gamecenter/subject/SubjectAdapter.java | 44 +++++++++++++++---- 7 files changed, 59 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/gh/common/constant/Config.java b/app/src/main/java/com/gh/common/constant/Config.java index fd188bb939..12cdfdec1f 100644 --- a/app/src/main/java/com/gh/common/constant/Config.java +++ b/app/src/main/java/com/gh/common/constant/Config.java @@ -13,7 +13,7 @@ public class Config { public static final String COMMENT_HOST = "http://dev.comment2.ghzhushou.com/v1d2/"; public static final String DATA_HOST = "http://data.ghzhushou.com/"; public static final String LIBAO_HOST = "http://dev.libao2.ghzhushou.com/v1d2/"; - public static final String MESSAGE_HOST = "http://message.ghzhushou.com/v1d0/"; + public static final String MESSAGE_HOST = "http://message.ghzhushou.com/v1d1/"; // TODO TEST v1d1 public static final String PREFERENCE = "ghzhushou"; // Third-Party confs diff --git a/app/src/main/java/com/gh/common/util/DataUtils.java b/app/src/main/java/com/gh/common/util/DataUtils.java index 0e077ce86c..6630ace313 100644 --- a/app/src/main/java/com/gh/common/util/DataUtils.java +++ b/app/src/main/java/com/gh/common/util/DataUtils.java @@ -65,7 +65,7 @@ public class DataUtils { crashReporter.setJavaCrashHandlerStatus(true); } else { // 打开debug开关,可查看mta上报日志或错误 - // dubug true release false + // debug true release false StatConfig.setDebugEnable(true); } } diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java index d0f817891e..b1aba40f95 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java @@ -43,6 +43,7 @@ import com.gh.gamecenter.adapter.FragmentAdapter; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameDetailEntity; import com.gh.gamecenter.entity.GameEntity; +import com.gh.gamecenter.eventbus.EBConcernChanged; import com.gh.gamecenter.eventbus.EBDownloadStatus; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBReuse; @@ -488,6 +489,14 @@ public class GameDetailActivity extends BaseActivity { } } + // 关注事件 + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEventMainThread(EBConcernChanged changed) { + if (mGameEntity != null && changed.isSingle() && changed.getGameId().equals(mGameEntity.getId())) { + initGameDetailTop(); + } + } + @OnClick({R.id.detail_tv_download, R.id.detail_pb_progressbar, R.id.reuse_no_connection , R.id.detail_tv_per, R.id.gamedetail_tabbar_xinxi_tv , R.id.gamedetail_tabbar_fuli_tv, R.id.gamedetail_share}) diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java index 62cf5e5940..76c272e4e4 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java @@ -238,7 +238,8 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { for (int j = 0; j < list.size(); j++) { subjectEntity = list.get(j); if (subjectEntity.getData().size() == 1 - && !TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())) { + && !TextUtils.isEmpty(subjectEntity.getData().get(0).getImage()) + || subjectEntity.getData().size() == 0) { list.remove(j); j--; continue; @@ -958,14 +959,18 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { } gameEntity = mSubjectList.get(i).getData().get(index); + String image = mSubjectList.get(i).getData().get(0).getImage(); if (position == offset && TextUtils.isEmpty(gameEntity.getImage()) || position == offset + 1 - && !TextUtils.isEmpty(mSubjectList.get(i).getData().get(0).getImage())) { + && !TextUtils.isEmpty(image)) { holder.thumb.setVisibility(View.GONE); holder.line.setVisibility(View.VISIBLE); holder.title.setText(mSubjectList.get(i).getName()); holder.title.setTextColor(Color.BLACK); final int ii = i; - if (mSubjectList.get(i).getData().size() >= Integer.parseInt(mSubjectList.get(i).getMore())) { + int subjectSize = mSubjectList.get(i).getData().size(); + int moreSize = Integer.parseInt(mSubjectList.get(i).getMore()); + if (TextUtils.isEmpty(image) && subjectSize >= moreSize || + !TextUtils.isEmpty(image) && subjectSize >= moreSize + 1) { holder.more.setVisibility(View.GONE); } else { holder.more.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java index 30d6342d30..ad33111bcc 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java @@ -199,11 +199,14 @@ public class FuLiAdapter extends BaseRecyclerAdapter { .subscribe(new Response>() { @Override public void onResponse(List response) { + GameDetailEntity.Contact contact = mGameDetailEntity.getContact(); if (!mGameEntity.isLibaoExists() && response.size() == 0 && TextUtils.isEmpty(mGameDetailEntity.getFulishuoming()) && (mGameDetailEntity.getServerEntity() == null || (mGameDetailEntity.getServerEntity().getCalendar() != null - && mGameDetailEntity.getServerEntity().getCalendar().size() == 0))) { + && mGameDetailEntity.getServerEntity().getCalendar().size() == 0)) + && (contact == null || (TextUtils.isEmpty(contact.getPlayer().getKey()) + && TextUtils.isEmpty(contact.getService().getQq())))) { Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/ApiService.java b/app/src/main/java/com/gh/gamecenter/retrofit/ApiService.java index acf2ea341a..678fa70dda 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/ApiService.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/ApiService.java @@ -201,9 +201,6 @@ public interface ApiService { @GET("toolkit") Observable> getToolBoxData(@Query("offset") int offset, @Query("keyword") String keyword); - @GET("toolkit") - Observable> getToolBoxDataSearch(@Query("offset") int offset, @Query("keyword") String keyword); - @GET("toolkit") Observable> getToolBoxDataExclude(@Query("offset") int offset, @Query("key_exclude") String excludeKey, @Query("keyword") String keyword); diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java b/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java index 1316ca68e3..d3d43260a9 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java @@ -1,6 +1,7 @@ package com.gh.gamecenter.subject; import android.content.Context; +import android.content.Intent; import android.support.v4.util.ArrayMap; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; @@ -15,12 +16,16 @@ import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; import com.gh.common.util.DisplayUtils; import com.gh.common.util.DownloadItemUtils; +import com.gh.common.util.EntranceUtils; import com.gh.common.util.GameViewUtils; import com.gh.common.util.ImageUtils; +import com.gh.common.util.NewsUtils; import com.gh.common.util.StringUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.GameDetailActivity; +import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; +import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameImageViewHolder; @@ -44,6 +49,8 @@ import rx.android.schedulers.AndroidSchedulers; import rx.functions.Func1; import rx.schedulers.Schedulers; +import static android.R.attr.name; + public class SubjectAdapter extends BaseRecyclerAdapter { @@ -112,12 +119,6 @@ public class SubjectAdapter extends BaseRecyclerAdapter { ApkActiveUtils.filterHideApk(entity); // 过滤隐藏apk } - if (page == 1 && mType.equals("全部")) { - if (TextUtils.isEmpty(response.get(0).getImage())) { - response.remove(0); - } - } - mSubjectList.addAll(response); notifyItemRangeInserted(mSubjectList.size() - response.size(), response.size()); @@ -227,7 +228,34 @@ public class SubjectAdapter extends BaseRecyclerAdapter { GameImageViewHolder holder = ((GameImageViewHolder) viewHolder); holder.line.setVisibility(View.GONE); int widthPixels = mContext.getResources().getDisplayMetrics().widthPixels; - ImageUtils.getInstance().display(holder.image,mSubjectList.get(0).getImage(), widthPixels); + final GameEntity gameEntity = mSubjectList.get(position); + ImageUtils.getInstance().display(holder.image, gameEntity.getImage(), widthPixels); + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Map kv = new HashMap<>(); + kv.put("名字", gameEntity.getName()); + kv.put("位置", "大图"); + DataUtils.onEvent(mContext, "点击", "游戏-专题-" + name, kv); + + DataCollectionUtils.uploadClick(mContext, name + "-大图", "游戏-专题"); + + if ("game".equals(gameEntity.getType())) { + GameDetailActivity.startGameDetailActivity(mContext, gameEntity.getLink(), "(游戏-专题:" + name + "-大图)"); + } else if ("news".equals(gameEntity.getType())) { + // 统计阅读量 + NewsUtils.statNewsViews(gameEntity.getLink()); + + Intent intent = new Intent(mContext, NewsDetailActivity.class); + intent.putExtra("newsId", gameEntity.getLink()); + intent.putExtra(EntranceUtils.KEY_ENTRANCE, "(游戏-专题:" + name + "-大图)"); + mContext.startActivity(intent); + } else if ("column".equals(gameEntity.getType())) { + SubjectActivity.startSubjectActivity(mContext, gameEntity.getLink(), gameEntity.getName(), false + , "(游戏-专题:" + name + "-大图)"); + } + } + }); } } @@ -236,7 +264,7 @@ public class SubjectAdapter extends BaseRecyclerAdapter { if (position == mSubjectList.size()) { return ItemViewType.LOADING; } - if (position == 0 && !TextUtils.isEmpty(mSubjectList.get(0).getImage())) { + if (position == 0 && mSubjectList.size() > 0 && !TextUtils.isEmpty(mSubjectList.get(0).getImage())) { return ItemViewType.GAME_IMAGE; } else if (mSubjectList.get(position).getTest() != null) { return ItemViewType.GAME_TEST;