From b2d568d64603dd91efe616616cc44e37dcf756bd Mon Sep 17 00:00:00 2001 From: huangzhuanghua <401742778@qq.com> Date: Fri, 20 Jan 2017 17:11:03 +0800 Subject: [PATCH] =?UTF-8?q?entrance=E6=A3=80=E6=9F=A5=E4=B8=8E=E7=BB=9F?= =?UTF-8?q?=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/gh/base/BaseActivity.java | 6 + .../java/com/gh/base/BaseDetailActivity.java | 4 +- .../com/gh/base/BaseFragmentActivity.java | 6 + .../main/java/com/gh/base/HomeFragment.java | 42 +- .../gh/common/util/ConcernContentUtils.java | 64 +- .../java/com/gh/common/util/DialogUtils.java | 9 +- .../com/gh/common/util/DownloadItemUtils.java | 5 +- .../java/com/gh/common/util/GameUtils.java | 4 +- .../java/com/gh/common/util/LibaoUtils.java | 12 +- .../java/com/gh/common/util/NewsUtils.java | 16 +- .../java/com/gh/common/util/ShareUtils.java | 6 +- .../com/gh/common/view/DownloadDialog.java | 123 +-- .../com/gh/gamecenter/GameNewsActivity.java | 1 + .../java/com/gh/gamecenter/LibaoActivity.java | 2 +- .../gh/gamecenter/LibaoDetailActivity.java | 6 +- .../java/com/gh/gamecenter/MainActivity.java | 4 +- .../gh/gamecenter/MessageDetailActivity.java | 5 +- .../com/gh/gamecenter/NewsDetailActivity.java | 18 +- .../com/gh/gamecenter/NewsSearchActivity.java | 2 +- .../com/gh/gamecenter/SearchActivity.java | 1 - .../com/gh/gamecenter/SettingActivity.java | 4 +- .../java/com/gh/gamecenter/SkipActivity.java | 10 +- .../com/gh/gamecenter/SuggestionActivity.java | 24 - .../java/com/gh/gamecenter/WebActivity.java | 6 + .../gh/gamecenter/adapter/ConcernAdapter.java | 9 +- .../adapter/ConcernRecommendAdapter.java | 9 +- .../gamecenter/adapter/GameNewsAdapter.java | 12 +- .../gamecenter/adapter/ImagePagerAdapter.java | 19 +- .../adapter/LibaoDetailAdapter.java | 18 +- .../adapter/MessageDetailAdapter.java | 12 +- .../gamecenter/adapter/PlatformAdapter.java | 1 + .../gh/gamecenter/adapter/PluginAdapter.java | 5 +- .../gamecenter/adapter/StrategyAdapter.java | 12 +- .../gh/gamecenter/adapter/SubjectAdapter.java | 9 +- .../viewholder}/DownloadHeadViewHolder.java | 2 +- .../viewholder}/GameDownloadViewHolder.java | 2 +- .../viewholder}/GameUpdateViewHolder.java | 2 +- .../viewholder}/SearchHistoryViewHolder.java | 2 +- .../download/GameDownloadFragmentAdapter.java | 23 +- .../download/GameUpdateFragment.java | 3 +- .../download/GameUpdateFragmentAdapter.java | 84 +- .../com/gh/gamecenter/entity/ApkEntity.java | 10 + .../com/gh/gamecenter/game/Game1Fragment.java | 299 ------ .../gamecenter/game/Game1FragmentAdapter.java | 976 ------------------ .../com/gh/gamecenter/game/Game2Fragment.java | 222 ---- .../gamecenter/game/Game2FragmentAdapter.java | 572 ---------- .../com/gh/gamecenter/game/Game3Fragment.java | 242 ----- .../gamecenter/game/Game3FragmentAdapter.java | 329 ------ .../com/gh/gamecenter/game/GameFragment.java | 4 +- .../gamecenter/game/GameFragmentAdapter.java | 82 +- .../gh/gamecenter/game/GameFragmentOld.java | 216 ---- .../gamedetail/GameDetailAdapter.java | 17 +- .../gamedetail/GameGalleryAdapter.java | 10 +- .../gamedetail/GameLibaoGalleryAdapter.java | 13 +- .../libao/Libao1FragmentAdapter.java | 21 +- .../libao/Libao2FragmentAdapter.java | 14 +- .../libao/Libao3FragmentAdapter.java | 12 +- .../gamecenter/news/News1FragmentAdapter.java | 8 +- .../com/gh/gamecenter/news/News4Fragment.java | 180 ---- .../gamecenter/news/News4FragmentAdapter.java | 442 -------- .../newsdetail/NewsDetailAdapter.java | 49 +- .../personal/ConcernFragmentAdapter.java | 9 +- .../gamecenter/personal/InstallFragment.java | 3 +- .../personal/InstallFragmentAdapter.java | 8 +- .../gamecenter/personal/PersonalFragment.java | 24 +- .../gamecenter/receiver/DownloadReceiver.java | 2 + .../gamecenter/receiver/InstallReceiver.java | 2 + .../receiver/NotificationReceiver.java | 2 + .../SearchGameDetailFragmentAdapter.java | 18 +- .../search/SearchGameListFragment.java | 2 - .../search/SearchGameListFragmentAdapter.java | 17 +- .../search/SearchHistoryFragmentAdapter.java | 7 +- 72 files changed, 521 insertions(+), 3895 deletions(-) rename app/src/main/java/com/gh/gamecenter/{download => adapter/viewholder}/DownloadHeadViewHolder.java (93%) rename app/src/main/java/com/gh/gamecenter/{download => adapter/viewholder}/GameDownloadViewHolder.java (96%) rename app/src/main/java/com/gh/gamecenter/{download => adapter/viewholder}/GameUpdateViewHolder.java (95%) rename app/src/main/java/com/gh/gamecenter/{search => adapter/viewholder}/SearchHistoryViewHolder.java (92%) delete mode 100644 app/src/main/java/com/gh/gamecenter/game/Game1Fragment.java delete mode 100644 app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java delete mode 100644 app/src/main/java/com/gh/gamecenter/game/Game2Fragment.java delete mode 100644 app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java delete mode 100644 app/src/main/java/com/gh/gamecenter/game/Game3Fragment.java delete mode 100644 app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java delete mode 100644 app/src/main/java/com/gh/gamecenter/game/GameFragmentOld.java delete mode 100644 app/src/main/java/com/gh/gamecenter/news/News4Fragment.java delete mode 100644 app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java diff --git a/app/src/main/java/com/gh/base/BaseActivity.java b/app/src/main/java/com/gh/base/BaseActivity.java index 51e73fdfdc..1be32f438a 100644 --- a/app/src/main/java/com/gh/base/BaseActivity.java +++ b/app/src/main/java/com/gh/base/BaseActivity.java @@ -40,6 +40,8 @@ public class BaseActivity extends Activity implements OnCallBackListener { private SystemBarTintManager tintManager; + protected String entrance; + private boolean isPause; @Override @@ -48,6 +50,10 @@ public class BaseActivity extends Activity implements OnCallBackListener { Utils.log(this.getClass().getSimpleName()); AppController.getInstance().addActivity(this); EventBus.getDefault().register(this); + entrance = getIntent().getStringExtra("entrance"); + if (getIntent().getBundleExtra("data") != null) { + entrance = getIntent().getBundleExtra("data").getString("entrance"); + } } protected void init(View contentView, String title) { diff --git a/app/src/main/java/com/gh/base/BaseDetailActivity.java b/app/src/main/java/com/gh/base/BaseDetailActivity.java index 761a6821a9..225d8e15c5 100644 --- a/app/src/main/java/com/gh/base/BaseDetailActivity.java +++ b/app/src/main/java/com/gh/base/BaseDetailActivity.java @@ -335,8 +335,7 @@ public abstract class BaseDetailActivity extends BaseActivity implements View.On }); } } else { - DownloadDialog.getInstance(this) - .showPopupWindow(v, gameEntity, entrance, name + ":" + title); + DownloadDialog.getInstance(this).showPopupWindow(v, gameEntity, entrance, name + ":" + title); } } else { toast("稍等片刻~!游戏正在上传中..."); @@ -346,6 +345,7 @@ public abstract class BaseDetailActivity extends BaseActivity implements View.On if ("下载中".equals(str)) { Intent intent = new Intent(this, DownloadManagerActivity.class); intent.putExtra("url", gameEntity.getApk().get(0).getUrl()); + intent.putExtra("entrance", entrance + "+(" + name + "[" + title + "])"); startActivity(intent); } else if ("安装".equals(str)) { PackageUtils.launchSetup(this, mDownloadEntity.getPath()); diff --git a/app/src/main/java/com/gh/base/BaseFragmentActivity.java b/app/src/main/java/com/gh/base/BaseFragmentActivity.java index ec716db0bf..fb9d54cacf 100644 --- a/app/src/main/java/com/gh/base/BaseFragmentActivity.java +++ b/app/src/main/java/com/gh/base/BaseFragmentActivity.java @@ -37,6 +37,8 @@ import de.greenrobot.event.EventBus; public class BaseFragmentActivity extends FragmentActivity { + protected String entrance; + private boolean isPause; @Override @@ -45,6 +47,10 @@ public class BaseFragmentActivity extends FragmentActivity { Utils.log(this.getClass().getSimpleName()); AppController.getInstance().addActivity(this); EventBus.getDefault().register(this); + entrance = getIntent().getStringExtra("entrance"); + if (getIntent().getBundleExtra("data") != null) { + entrance = getIntent().getBundleExtra("data").getString("entrance"); + } } public void init(View contentView, String title) { diff --git a/app/src/main/java/com/gh/base/HomeFragment.java b/app/src/main/java/com/gh/base/HomeFragment.java index c336627563..45921302f0 100644 --- a/app/src/main/java/com/gh/base/HomeFragment.java +++ b/app/src/main/java/com/gh/base/HomeFragment.java @@ -126,32 +126,38 @@ public class HomeFragment extends Fragment implements View.OnClickListener { @Override public void onClick(View v) { final int id = v.getId(); - if (id == R.id.actionbar_notification) { - DataUtils.onEvent(getActivity(), "主页", "关注图标"); - DataCollectionUtils.uploadClick(getActivity(), "关注图标", "主页"); - - startActivity(new Intent(getActivity(), ConcernActivity.class)); - } else if (id == R.id.actionbar_rl_download) { + if (id == R.id.actionbar_rl_download) { DataUtils.onEvent(getActivity(), "主页", "下载图标"); DataCollectionUtils.uploadClick(getActivity(), "下载图标", "主页"); - startActivity(new Intent(getActivity(), DownloadManagerActivity.class)); + Intent intent = new Intent(getActivity(), DownloadManagerActivity.class); + intent.putExtra("entrance", "(工具栏)"); + startActivity(intent); + } else if (id == R.id.actionbar_iv_search) { + DataUtils.onEvent(getActivity(), "主页", "搜索图标"); + DataCollectionUtils.uploadClick(getActivity(), "搜索图标", "主页"); + + Intent intent = new Intent(getActivity(), SearchActivity.class); + intent.putExtra("clicked", true); + intent.putExtra("hint", hint); + intent.putExtra("entrance", "(工具栏)"); + startActivity(intent); } else if (id == R.id.actionbar_search_input) { DataUtils.onEvent(getActivity(), "主页", "搜索框"); DataCollectionUtils.uploadClick(getActivity(), "搜索框", "主页"); - Intent goSearch = new Intent(getActivity(), SearchActivity.class); - goSearch.putExtra("clicked", false); - goSearch.putExtra("hint", hint); - startActivity(goSearch); - } else if (id == R.id.actionbar_iv_search) { - DataUtils.onEvent(getActivity(), "主页", "搜索图标"); - DataCollectionUtils.uploadClick(getActivity(), "搜索图标", "主页"); + Intent intent = new Intent(getActivity(), SearchActivity.class); + intent.putExtra("clicked", false); + intent.putExtra("hint", hint); + intent.putExtra("entrance", "(工具栏)"); + startActivity(intent); + } else if (id == R.id.actionbar_notification) { + DataUtils.onEvent(getActivity(), "主页", "关注图标"); + DataCollectionUtils.uploadClick(getActivity(), "关注图标", "主页"); - Intent searchIntent = new Intent(getActivity(), SearchActivity.class); - searchIntent.putExtra("clicked", true); - searchIntent.putExtra("hint", hint); - startActivity(searchIntent); + Intent intent = new Intent(getActivity(), ConcernActivity.class); + intent.putExtra("entrance", "(工具栏)"); + startActivity(intent); } } diff --git a/app/src/main/java/com/gh/common/util/ConcernContentUtils.java b/app/src/main/java/com/gh/common/util/ConcernContentUtils.java index 9420398a89..16406ed5b1 100644 --- a/app/src/main/java/com/gh/common/util/ConcernContentUtils.java +++ b/app/src/main/java/com/gh/common/util/ConcernContentUtils.java @@ -20,42 +20,40 @@ import java.util.List; **/ public class ConcernContentUtils { - public static void addContentPic(int width, LinearLayout linearLayout, List list, Context context) { + public static void addContentPic(Context context, LinearLayout linearLayout, List list, + String entrance, int width) { int count = list.size(); - LinearLayout ll; int index = 0; for (int i = 0, size = (int) Math.ceil(list.size() / 3.0f); i < size; i++) { - switch (count % 3) { - case 0: - ll = new LinearLayout(context); - ll.setOrientation(LinearLayout.HORIZONTAL); - for (int j = 0; j < 3; j++) { - ll.addView(getImageView(list, index, width, 0, context)); - index += 1; - } - linearLayout.addView(ll); - count -= 3; - break; - case 1: - linearLayout.addView(getImageView(list, index, width, 1, context)); - count -= 1; + int type = count % 3; + if (type == 0) { + LinearLayout ll = new LinearLayout(context); + ll.setOrientation(LinearLayout.HORIZONTAL); + for (int j = 0; j < 3; j++) { + ll.addView(getImageView(context, list, entrance, index, width, 0)); index += 1; - break; - case 2: - ll = new LinearLayout(context); - ll.setOrientation(LinearLayout.HORIZONTAL); - for (int j = 0; j < 2; j++) { - ll.addView(getImageView(list, index, width, 2, context)); - index += 1; - } - linearLayout.addView(ll); - count -= 2; - break; + } + linearLayout.addView(ll); + count -= 3; + } else if (type == 1) { + linearLayout.addView(getImageView(context, list, entrance, index, width, 1)); + count -= 1; + index += 1; + } else if (type == 2) { + LinearLayout ll = new LinearLayout(context); + ll.setOrientation(LinearLayout.HORIZONTAL); + for (int j = 0; j < 2; j++) { + ll.addView(getImageView(context, list, entrance, index, width, 2)); + index += 1; + } + linearLayout.addView(ll); + count -= 2; } } } - private static SimpleDraweeView getImageView(final List list, final int position, int width, int type, final Context context) { + private static SimpleDraweeView getImageView(final Context context, final List list, final String entrance, + final int position, int width, int type) { SimpleDraweeView imageView; if (type == 0) { imageView = new SimpleDraweeView(context); @@ -65,14 +63,16 @@ public class ConcernContentUtils { DisplayUtils.dip2px(context, 2), DisplayUtils.dip2px(context, 4)); lparams.weight = 1; imageView.setLayoutParams(lparams); - ImageUtils.getInstance().display(context.getResources(), imageView, ScalingUtils.ScaleType.CENTER_CROP, list.get(position)); + ImageUtils.getInstance().display(context.getResources(), imageView, + ScalingUtils.ScaleType.CENTER_CROP, list.get(position)); } else if (type == 1) { imageView = new SimpleDraweeView(context); LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(width, width / 2); lparams.setMargins(DisplayUtils.dip2px(context, 2), 0, DisplayUtils.dip2px(context, 2), DisplayUtils.dip2px(context, 4)); imageView.setLayoutParams(lparams); - ImageUtils.getInstance().display(context.getResources(), imageView, ScalingUtils.ScaleType.CENTER_CROP, list.get(position)); + ImageUtils.getInstance().display(context.getResources(), imageView, + ScalingUtils.ScaleType.CENTER_CROP, list.get(position)); } else { imageView = new SimpleDraweeView(context); LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams( @@ -81,7 +81,8 @@ public class ConcernContentUtils { DisplayUtils.dip2px(context, 2), DisplayUtils.dip2px(context, 4)); lparams.weight = 1; imageView.setLayoutParams(lparams); - ImageUtils.getInstance().display(context.getResources(), imageView, ScalingUtils.ScaleType.CENTER_CROP, list.get(position)); + ImageUtils.getInstance().display(context.getResources(), imageView, + ScalingUtils.ScaleType.CENTER_CROP, list.get(position)); } imageView.setOnClickListener(new View.OnClickListener() { @Override @@ -90,6 +91,7 @@ public class ConcernContentUtils { checkIntent.putExtra("urls", (ArrayList) list); checkIntent.putExtra("current", position); checkIntent.putExtra("ScaleType", "FIT_CENTER"); + checkIntent.putExtra("entrance", entrance); context.startActivity(checkIntent); } }); diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index 6277717c50..9998ad426c 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -185,8 +185,7 @@ public class DialogUtils { @Override public void onConfirem() { // 跳转wifi管理界面 - Intent intent = new Intent("android.settings.WIFI_SETTINGS"); - context.startActivity(intent); + context.startActivity(new Intent("android.settings.WIFI_SETTINGS")); } }); } @@ -205,14 +204,12 @@ public class DialogUtils { if (ShareUtils.isQQClientAvailable(context)) { //安装了QQ会直接调用QQ,打开手机QQ进行会话 QQ号:2586716223 String str = "mqqwpa://im/chat?chat_type=wpa&uin=" + finalQq + "&version=1&src_type=web&web_src=oicqzone.com"; - Uri uri = Uri.parse(str); - Intent it = new Intent(Intent.ACTION_VIEW, uri); - context.startActivity(it); + context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(str))); } else { //没有安装QQ 复制账号 ClipboardManager cmb = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); cmb.setText(finalQq); - Utils.toast(context,"已复制" + finalQq); + Utils.toast(context, "已复制" + finalQq); } } }, null); diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java index 7ff8eee16c..0fc5075fd2 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java @@ -328,7 +328,7 @@ public class DownloadItemUtils { download_percentage, downloadBtn, entity, true); } - public static void setNormalOnClickListener(final Context context, + private static void setNormalOnClickListener(final Context context, final TextView downloadBtn, final GameEntity gameEntity, final int position, @@ -370,6 +370,7 @@ public class DownloadItemUtils { } else if ("下载中".equals(str)) { Intent intent = new Intent(context, DownloadManagerActivity.class); intent.putExtra("url", gameEntity.getApk().get(0).getUrl()); + intent.putExtra("entrance", entrance + "+(" + location.split(":")[0] + ")"); context.startActivity(intent); } else if ("更新".equals(str)) { if (NetworkUtils.isWifiConnected(context)) { @@ -387,7 +388,7 @@ public class DownloadItemUtils { }); } - public static void setPluginOnClickListener(final Context context, + private static void setPluginOnClickListener(final Context context, final TextView downloadBtn, final GameEntity entity, final String entrance, 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 50d6b99fe1..7853aefdfa 100644 --- a/app/src/main/java/com/gh/common/util/GameUtils.java +++ b/app/src/main/java/com/gh/common/util/GameUtils.java @@ -49,8 +49,8 @@ public class GameUtils { public static void startGameDetailActivity(Context context, GameEntity gameEntity, String entrance) { AppController.put("GameEntity", gameEntity); Intent intent = new Intent(context, GameDetailActivity.class); - intent.putExtra("entrance", entrance); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra("entrance", entrance); context.startActivity(intent); } @@ -59,9 +59,9 @@ public class GameUtils { */ public static void startGameDetailActivity(Context context, String gameId, String entrance) { Intent intent = new Intent(context, GameDetailActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra("gameId", gameId); intent.putExtra("entrance", entrance); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } diff --git a/app/src/main/java/com/gh/common/util/LibaoUtils.java b/app/src/main/java/com/gh/common/util/LibaoUtils.java index 2e9078a953..d0460f5d84 100644 --- a/app/src/main/java/com/gh/common/util/LibaoUtils.java +++ b/app/src/main/java/com/gh/common/util/LibaoUtils.java @@ -210,7 +210,7 @@ public class LibaoUtils { } public static void initLibaoBtn(final TextView libaoBtn, final LibaoEntity libaoEntity, final LibaoDao libaoDao, - final boolean isInstallRequired, final LibaoDetailAdapter adapter) { + final boolean isInstallRequired, final LibaoDetailAdapter adapter, final String entrance) { libaoBtn.setTextColor(Color.WHITE); switch (libaoEntity.getStatus()) { @@ -300,11 +300,11 @@ public class LibaoUtils { case "查看": AppController.put("libaoEntity", libaoEntity); Intent intent = new Intent(libaoBtn.getContext(), LibaoDetailActivity.class); + intent.putExtra("entrance", entrance); libaoBtn.getContext().startActivity(intent); break; case "领取": - libaoLing(libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, null); - + libaoLing(libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, null, entrance); break; case "淘号": postLibaoTao(libaoBtn.getContext(), libaoEntity.getId(), true, new PostLibaoListener() { @@ -411,7 +411,7 @@ public class LibaoUtils { } private static void libaoLing(final TextView libaoBtn, final LibaoEntity libaoEntity, final LibaoDetailAdapter adapter, - final boolean isInstallRequired, final LibaoDao libaoDao, String captchaCode) { + final boolean isInstallRequired, final LibaoDao libaoDao, String captchaCode, final String entrance) { postLibaoLing(libaoBtn.getContext(), libaoEntity.getId(), true, new PostLibaoListener() { @Override @@ -492,7 +492,7 @@ public class LibaoUtils { DialogUtils.showHintDialog(libaoBtn.getContext(), "礼包已领光" , "手速不够快,礼包已经被抢光了,十分抱歉", "知道了"); libaoEntity.setStatus("used_up"); - initLibaoBtn(libaoBtn, libaoEntity, libaoDao, isInstallRequired, adapter); + initLibaoBtn(libaoBtn, libaoEntity, libaoDao, isInstallRequired, adapter, entrance); } else if ("maintaining".equals(detail)) { Utils.toast(libaoBtn.getContext(), "网络状态异常,请稍后再试"); @@ -510,7 +510,7 @@ public class LibaoUtils { .showDialog(new GeetestUtils.GeetestListener() { @Override public void succed(String response) { - libaoLing(libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, response); + libaoLing(libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, response, entrance); } }); return; diff --git a/app/src/main/java/com/gh/common/util/NewsUtils.java b/app/src/main/java/com/gh/common/util/NewsUtils.java index cdb21cdc6d..44abf842a0 100644 --- a/app/src/main/java/com/gh/common/util/NewsUtils.java +++ b/app/src/main/java/com/gh/common/util/NewsUtils.java @@ -5,11 +5,8 @@ import android.content.Intent; import android.graphics.Color; import android.widget.TextView; -import com.gh.base.AppController; -import com.gh.gamecenter.MessageDetailActivity; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.entity.ConcernEntity; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -46,22 +43,11 @@ public class NewsUtils { */ public static void startNewsDetailActivity(Context context, NewsEntity newsEntity, String entrance) { Intent intent = new Intent(context, NewsDetailActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra("id", newsEntity.getId()); intent.putExtra("title", newsEntity.getTitle()); intent.putExtra("type", newsEntity.getType()); intent.putExtra("entrance", entrance); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - - /** - * 启动消息详情页面 - */ - public static void startMessageActivity(Context context, ConcernEntity concernEntity, String entrance) { - AppController.put("ConcernEntity", concernEntity); - Intent intent = new Intent(context, MessageDetailActivity.class); - intent.putExtra("entrance", entrance); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } diff --git a/app/src/main/java/com/gh/common/util/ShareUtils.java b/app/src/main/java/com/gh/common/util/ShareUtils.java index af13ab8db1..25c25b16b2 100644 --- a/app/src/main/java/com/gh/common/util/ShareUtils.java +++ b/app/src/main/java/com/gh/common/util/ShareUtils.java @@ -368,9 +368,9 @@ public class ShareUtils { } } - Intent sendIntent = new Intent(Intent.ACTION_VIEW, Uri.parse( "smsto:" )); - sendIntent.putExtra( "sms_body", smsBody); - sendIntent.setType( "vnd.android-dir/mms-sms" ); + Intent sendIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("smsto:")); + sendIntent.putExtra("sms_body", smsBody); + sendIntent.setType("vnd.android-dir/mms-sms"); try { context.startActivity(sendIntent); 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 a081cd8492..5411711422 100644 --- a/app/src/main/java/com/gh/common/view/DownloadDialog.java +++ b/app/src/main/java/com/gh/common/view/DownloadDialog.java @@ -36,6 +36,8 @@ import com.gh.gamecenter.listener.OnCollectionCallBackListener; import com.gh.gamecenter.manager.PackageManager; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; import java.util.concurrent.ConcurrentHashMap; @@ -275,98 +277,79 @@ public class DownloadDialog implements OnCollectionCallBackListener { viewPager.setCurrentItem(currentItem); } - private ArrayList sortApk(List apkList) { - List pluginDoneList = new ArrayList<>(); // 安装插件 - List pluginDownloadList = new ArrayList<>(); // 插件化下载中 - List pluginList = new ArrayList<>(); // 插件化 - List updateDoneList = new ArrayList<>(); // 安装更新 - List updateDownloadList = new ArrayList<>(); // 更新下载中 - List updateList = new ArrayList<>(); // 更新 - List doneList = new ArrayList<>(); // 安装 - List downloadList = new ArrayList<>(); // 下载中 - List installList = new ArrayList<>(); // 启动 - List noPicList = new ArrayList<>(); // 默认(无图片) + private ArrayList sortApk(ArrayList apkList) { + /* + * 安装插件 10 + * 插件化下载中 9 + * 插件化 8 + * 安装更新 7 + * 更新下载中 6 + * 更新 5 + * 安装 4 + * 下载中 3 + * 启动 2 + * 默认(有图片)1 + * 默认(无图片)0 + */ DownloadEntity downloadEntity; String packageName; Object gh_id; - for (int i = 0, size = apkList.size(); i < size; i++) { - downloadEntity = DownloadManager.getInstance(context).get(apkList.get(i).getUrl()); - packageName = apkList.get(i).getPackageName(); - gh_id = PackageUtils.getMetaData(context, packageName, "gh_id"); + for (ApkEntity apkEntity : apkList) { + downloadEntity = DownloadManager.getInstance(context).get(apkEntity.getUrl()); if (downloadEntity == null) { - if (PackageManager.isInstalled(packageName) - && (gh_id == null || gh_id.equals(gameEntity.getId()))) { - if (PackageManager.isCanUpdate(gameEntity.getId(), packageName)) { - updateList.add(apkList.remove(i)); - size--; - i--; - } else if (!PackageUtils.isSignature(context, packageName)) { - pluginList.add(apkList.remove(i)); - size--; - i--; - } else { - installList.add(apkList.remove(i)); - size--; - i--; - } - } else { - String platform = apkList.get(i).getPlatform(); - int id = PlatformUtils.getInstance(context).getPlatformPic(platform); - if (id == 0) { - String path = PlatformUtils.getInstance(context).getPlatformPicPath(platform); - if (path == null) { - noPicList.add(apkList.remove(i)); - size--; - i--; + packageName = apkEntity.getPackageName(); + if (PackageManager.isInstalled(packageName)) { + gh_id = PackageUtils.getMetaData(context, packageName, "gh_id"); + if (gh_id == null || gh_id.equals(gameEntity.getId())) { + if (!PackageUtils.isSignature(context, packageName)) { + apkEntity.setOrder(8); + } else if (PackageManager.isCanUpdate(gameEntity.getId(), packageName)) { + apkEntity.setOrder(5); + } else { + apkEntity.setOrder(2); } + continue; + } + } + apkEntity.setOrder(1); + + String platform = apkEntity.getPlatform(); + int id = PlatformUtils.getInstance(context).getPlatformPic(platform); + if (id == 0) { + String path = PlatformUtils.getInstance(context).getPlatformPicPath(platform); + if (path == null) { + apkEntity.setOrder(0); } } } else { if (downloadEntity.getStatus().equals(DownloadStatus.done)) { if (downloadEntity.isPluggable()) { - pluginDoneList.add(apkList.remove(i)); - size--; - i--; + apkEntity.setOrder(10); } else if (downloadEntity.isUpdate()) { - updateDoneList.add(apkList.remove(i)); - size--; - i--; + apkEntity.setOrder(7); } else { - doneList.add(apkList.remove(i)); - size--; - i--; + apkEntity.setOrder(4); } } else { if (downloadEntity.isPluggable()) { - pluginDownloadList.add(apkList.remove(i)); - size--; - i--; + apkEntity.setOrder(9); } else if (downloadEntity.isUpdate()) { - updateDownloadList.add(apkList.remove(i)); - size--; - i--; + apkEntity.setOrder(6); } else { - downloadList.add(apkList.remove(i)); - size--; - i--; + apkEntity.setOrder(3); } } } } - ArrayList list = new ArrayList<>(); - list.addAll(pluginDoneList); - list.addAll(pluginDownloadList); - list.addAll(pluginList); - list.addAll(updateDoneList); - list.addAll(updateDownloadList); - list.addAll(updateList); - list.addAll(doneList); - list.addAll(downloadList); - list.addAll(installList); - list.addAll(apkList); - list.addAll(noPicList); - return list; + Comparator comparator = new Comparator() { + @Override + public int compare(ApkEntity lhs, ApkEntity rhs) { + return rhs.getOrder() - lhs.getOrder(); + } + }; + Collections.sort(apkList, comparator); + return apkList; } // 接收安装成功的消息,更新界面 diff --git a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java index 9fb02f4ea5..ae1872e471 100644 --- a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java @@ -23,6 +23,7 @@ import butterknife.BindView; /** * Created by LGT on 2016/8/29. + * 游戏新闻界面 */ public class GameNewsActivity extends BaseActivity implements View.OnClickListener{ diff --git a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java index 0cb4b9b94b..58ceb93f5c 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java @@ -25,6 +25,7 @@ import de.greenrobot.event.EventBus; /** * Created by khy on 2016/12/12. + * */ public class LibaoActivity extends BaseFragmentActivity implements View.OnClickListener, ViewPager.OnPageChangeListener { @@ -42,7 +43,6 @@ public class LibaoActivity extends BaseFragmentActivity implements View.OnClickL private LinearLayout.LayoutParams lparams; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java index e31f493147..ef10e19894 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java @@ -18,6 +18,7 @@ import rx.schedulers.Schedulers; /** * Created by khy on 2016/12/13. + * */ public class LibaoDetailActivity extends BaseDetailActivity { @@ -35,9 +36,9 @@ public class LibaoDetailActivity extends BaseDetailActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); actionbar_tv_title.setText("礼包详情"); - title = "礼包详情"; mLibaoEntity = (LibaoEntity) AppController.get("libaoEntity", true); + name = "礼包详情"; iv_share.setVisibility(View.GONE); @@ -46,6 +47,7 @@ public class LibaoDetailActivity extends BaseDetailActivity { detail_rv_show.setAdapter(mAdapter); if (mLibaoEntity.getGame().getId() != null) { + title = mLibaoEntity.getName(); getGameDigest(); } @@ -73,8 +75,6 @@ public class LibaoDetailActivity extends BaseDetailActivity { @Override public void onResponse(GameEntity response) { gameEntity = response; - title = gameEntity.getName(); - entrance = "礼包详情"; //TODO downloadAddWord = gameEntity.getDownloadAddWord(); downloadOffText = gameEntity.getDownloadOffText(); diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 8e95669309..208c97be45 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -227,7 +227,8 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene DataCollectionUtils.uploadDownload(this, downloadEntity, "完成"); - if (downloadEntity.getEntrance().matches("^" + "\\(游戏\\-插件:滚动图\\[.+\\]\\)" + "$")) { + if (downloadEntity.getEntrance().matches("^" + "\\(游戏\\-插件:滚动图\\[.+\\]\\)" + "$") + || downloadEntity.getEntrance().matches("^" + "\\(游戏\\-专题:滚动图\\[.+\\]\\)" + "$")) { // 首页轮播图数据统计 statLunbotuData(downloadEntity.getEntrance()); } @@ -944,6 +945,7 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene Intent intent = new Intent(MainActivity.this, DownloadManagerActivity.class); intent.putExtra("currentItem", 1); intent.putExtra("packageName", packageName); + intent.putExtra("entrance", "(游戏插件)"); startActivity(intent); break; } diff --git a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java index f8ac0d656c..5da3849df3 100644 --- a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java @@ -93,8 +93,6 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail private int commentNum = -1; //区分来源 -1:资讯关注列表 !=-1 :新闻详情 - private boolean openSoftInput; - @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); @@ -110,7 +108,6 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail Intent intent = getIntent(); newsId = intent.getExtras().getString("newsId"); commentNum = intent.getExtras().getInt("commentNum"); - openSoftInput = intent.getExtras().getBoolean("openSoftInput"); //新闻详情的发表评论 //复用问题 mConcernEntity对应的文章有可能和跳转之前的文章不一致 if (mConcernEntity != null && newsId != null && !newsId.equals(mConcernEntity.getId())) { @@ -199,7 +196,7 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail getConcernDigest(); } - if (openSoftInput) { + if (intent.getExtras().getBoolean("openSoftInput")) {//新闻详情的发表评论 setSoftInput(true); } } diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java index 68118d4adf..fa81476d25 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java @@ -61,6 +61,7 @@ import rx.android.schedulers.AndroidSchedulers; import rx.functions.Action1; import rx.schedulers.Schedulers; + /** * 文章详情页面 要启动该页面 需要传入一下参数 放入 EssayEntity中传过来 文章 id 文章标题 title 文章发表时间 time * @@ -105,8 +106,6 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener private Handler handler = new Handler(); private String entrance; - private String name; - private String title; private String downloadOffText; private DataWatcher dataWatcher = new DataWatcher() { @@ -151,8 +150,6 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener R.id.reuse_actionbar); reuse_actionbar.addView(iv_share, params); - name = "新闻详情"; - init(contentView); DisplayMetrics outMetrics = new DisplayMetrics(); @@ -174,7 +171,6 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener if (type != null) { actionbar_tv_title.setText(type); } - this.title = title; adapter.setId(id); adapter.setType(type); adapter.setTitle(title); @@ -380,8 +376,6 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener adapter.setTitle(response.getTitle()); adapter.getNewsDetail(); - title = response.getTitle(); - iv_share.setVisibility(View.VISIBLE); } @@ -400,7 +394,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener @Override public void onClick(final View v) { - if (v == reuse_no_connection) { + if (v == reuse_no_connection) { detail_rv_show.setVisibility(View.VISIBLE); reuse_ll_loading.setVisibility(View.VISIBLE); reuse_no_connection.setVisibility(View.GONE); @@ -420,7 +414,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener } } else { DownloadDialog.getInstance(this) - .showPopupWindow(v, gameEntity, entrance, name + ":" + title); + .showPopupWindow(v, gameEntity, entrance, "新闻详情:" + adapter.getTitle()); } } else { toast("稍等片刻~!游戏正在上传中..."); @@ -430,6 +424,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener if ("下载中".equals(str)) { Intent intent = new Intent(this, DownloadManagerActivity.class); intent.putExtra("url", gameEntity.getApk().get(0).getUrl()); + intent.putExtra("entrance", entrance + "(新闻详情[" + adapter.getTitle() + "])"); startActivity(intent); } else if ("安装".equals(str)) { PackageUtils.launchSetup(this, mDownloadEntity.getPath()); @@ -439,6 +434,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener intent.putExtra("commentNum", -1); intent.putExtra("newsId", adapter.getNewsDetailEntity().getId()); intent.putExtra("openSoftInput", true); + intent.putExtra("entrance", entrance + "(新闻详情[" + adapter.getTitle() + "])"); startActivity(intent); } } @@ -698,7 +694,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener private void download() { String str = detail_tv_download.getText().toString(); if (str.contains("启动")) { - DataUtils.onGameLaunchEvent(this, gameEntity.getName(), gameEntity.getApk().get(0).getPlatform(), name); + DataUtils.onGameLaunchEvent(this, gameEntity.getName(), gameEntity.getApk().get(0).getPlatform(), "新闻详情"); PackageUtils.launchApplicationByPackageName(this, gameEntity.getApk().get(0).getPackageName()); } else { @@ -715,7 +711,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener if (TextUtils.isEmpty(msg)) { DataUtils.onGameDownloadEvent(this, gameEntity.getName(), apkEntity.getPlatform(), entrance, "下载开始"); - DownloadManager.createDownload(this, apkEntity, gameEntity, method, entrance, name + ":" + title); + DownloadManager.createDownload(this, apkEntity, gameEntity, method, entrance, "新闻详情:" + adapter.getTitle()); detail_tv_download.setVisibility(View.GONE); detail_pb_progressbar.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java index a965487592..88ad8f72d5 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java @@ -277,7 +277,7 @@ public class NewsSearchActivity extends BaseActivity { // 统计阅读量 NewsUtils.statNewsViews(newsEntity.getId()); - NewsUtils.startNewsDetailActivity(NewsSearchActivity.this, newsEntity, entrance + "+(游戏新闻搜索)"); + NewsUtils.startNewsDetailActivity(NewsSearchActivity.this, newsEntity, entrance + "+(游戏新闻搜索:" + searchKey + ")"); } }); }else if (holder instanceof FooterViewHolder){ diff --git a/app/src/main/java/com/gh/gamecenter/SearchActivity.java b/app/src/main/java/com/gh/gamecenter/SearchActivity.java index 2549627802..c42fe2fcee 100644 --- a/app/src/main/java/com/gh/gamecenter/SearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SearchActivity.java @@ -52,7 +52,6 @@ public class SearchActivity extends BaseFragmentActivity { private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { - super.handleMessage(msg); if (msg.what == 1){ setResultPresentModel(1); } diff --git a/app/src/main/java/com/gh/gamecenter/SettingActivity.java b/app/src/main/java/com/gh/gamecenter/SettingActivity.java index beb965ec16..092dfc4e7f 100644 --- a/app/src/main/java/com/gh/gamecenter/SettingActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SettingActivity.java @@ -213,7 +213,9 @@ public class SettingActivity extends BaseActivity implements OnClickListener { }); break; case R.id.setting_rl_feedback: - startActivity(new Intent(SettingActivity.this, SuggestionActivity.class)); + Intent intent = new Intent(SettingActivity.this, SuggestionActivity.class); + intent.putExtra("entrance", "(设置)"); + startActivity(intent); break; case R.id.setting_tv_disclaimer: String content = sp.getString("disclaimer", null); diff --git a/app/src/main/java/com/gh/gamecenter/SkipActivity.java b/app/src/main/java/com/gh/gamecenter/SkipActivity.java index 816be1b296..25a78dec8f 100644 --- a/app/src/main/java/com/gh/gamecenter/SkipActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SkipActivity.java @@ -27,7 +27,7 @@ public class SkipActivity extends BaseActivity { } Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.putExtra("entrance", "(网页跳转)"); + intent.putExtra("entrance", "(浏览器)"); if (RunningUtils.isRunning(this) && MainActivity.class.getName().equals(RunningUtils.getBaseActivity(this))) { // 应用正在运行,前台或后台 @@ -48,6 +48,10 @@ public class SkipActivity extends BaseActivity { + "-V" + uri.getQueryParameter("version") + "】"; intent.putExtra("content", content); intent.setClass(this, SuggestionActivity.class); + } else if ("download".equals(host)) { + intent.setClass(this, DownloadManagerActivity.class); + intent.putExtra("gameId", id); + intent.putExtra("packageName", getIntent().getData().getQueryParameter("packageName")); } } else { // 应用未在运行 @@ -72,6 +76,10 @@ public class SkipActivity extends BaseActivity { + "-V" + uri.getQueryParameter("version") + "】"; intent.putExtra("content", content); intent.putExtra("to", "SuggestionActivity"); + } else if ("download".equals(host)) { + intent.putExtra("to", "DownloadManagerActivity"); + intent.putExtra("gameId", id); + intent.putExtra("packageName", getIntent().getData().getQueryParameter("packageName")); } } startActivity(intent); diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java index 73ff271684..6a36973930 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java @@ -49,8 +49,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener @BindView(R.id.et_suggest_connectway) EditText et_suggest_connectway; @BindView(R.id.btn_suggest_post) CardLinearLayout btn_suggest_post; - private boolean isShowing = false; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -110,7 +108,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener if (TextUtils.isEmpty(email)) { showConfirmDialog(email); } else if (isEmailAddress(email)) { - isShowing = true; Dialog dialog = new Dialog(this); View view = View.inflate(this, R.layout.set_wait_dialog, null); TextView message = (TextView) view @@ -120,15 +117,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener dialog.setContentView(view); dialog.setCanceledOnTouchOutside(false); dialog.setCancelable(false); -// dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { -// @Override -// public void onDismiss(DialogInterface dialog) { -// if (isShowing) { -// AppController.canclePendingRequests(TAG); -// toast("取消发送"); -// } -// } -// }); dialog.show(); sendSuggestion(dialog, email); } else { @@ -165,7 +153,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener new DialogUtils.CancelListener() { @Override public void onCancel() { - isShowing = true; Dialog dialog = new Dialog(SuggestionActivity.this); View view = View.inflate(SuggestionActivity.this, R.layout.set_wait_dialog, null); @@ -176,15 +163,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener dialog.setContentView(view); dialog.setCanceledOnTouchOutside(false); dialog.setCancelable(false); -// dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { -// @Override -// public void onDismiss(DialogInterface dialog) { -// if (isShowing) { -// AppController.canclePendingRequests(TAG); -// toast("取消发送"); -// } -// } -// }); dialog.show(); sendSuggestion(dialog, email); } @@ -210,7 +188,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener .subscribe(new JSONObjectResponse() { @Override public void onResponse(JSONObject response) { - isShowing = false; dialog.dismiss(); if (response.length() != 0) { @@ -231,7 +208,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener @Override public void onFailure(HttpException e) { - isShowing = false; dialog.dismiss(); toast("提交失败,请检查网络状态"); diff --git a/app/src/main/java/com/gh/gamecenter/WebActivity.java b/app/src/main/java/com/gh/gamecenter/WebActivity.java index f9b5ed3187..4e33b21ac2 100644 --- a/app/src/main/java/com/gh/gamecenter/WebActivity.java +++ b/app/src/main/java/com/gh/gamecenter/WebActivity.java @@ -29,6 +29,7 @@ import rx.schedulers.Schedulers; /** * Created by khy on 2016/10/18. + * */ public class WebActivity extends BaseActivity { @@ -41,6 +42,8 @@ public class WebActivity extends BaseActivity { private String newsId; private int commentNum; + private String entrance; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -57,6 +60,8 @@ public class WebActivity extends BaseActivity { } // webUrl = "http://tieba.baidu.com/f?kw=%E7%BD%91%E6%98%93%E9%98%B4%E9%98%B3%E5%B8%88&red_tag=3194925450"; + entrance = getIntent().getStringExtra("entrance"); + View contentView = View.inflate(this, R.layout.activity_web, null); init(contentView, webTitle); @@ -135,6 +140,7 @@ public class WebActivity extends BaseActivity { Intent intent = new Intent(this, MessageDetailActivity.class); intent.putExtra("newsId", newsId); intent.putExtra("commentNum", commentNum); + intent.putExtra("entrance", entrance + "+(光环浏览器)"); startActivityForResult(intent, 1001); } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java index 8996687748..62ef0cac09 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java @@ -44,10 +44,17 @@ public class ConcernAdapter extends RecyclerView.Adapter { private ConcernManager concernManager; + private String entrance; + public ConcernAdapter(ConcernActivity activity) { this.context = activity; this.listener = activity; + entrance = activity.getIntent().getStringExtra("entrance"); + if (activity.getIntent().getBundleExtra("data") != null) { + entrance = activity.getIntent().getBundleExtra("data").getString("entrance"); + } + concernManager = new ConcernManager(context); concernList = concernManager.getConcernGame(); @@ -156,7 +163,7 @@ public class ConcernAdapter extends RecyclerView.Adapter { DataCollectionUtils.uploadClick(context, "列表", "我的关注", gameEntity.getName()); - GameUtils.startGameDetailActivity(context, gameEntity, "(我的关注-列表)"); + GameUtils.startGameDetailActivity(context, gameEntity, entrance + "+(我的关注-列表)"); } } }); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java index 17c4cf1cdc..9f9241fb77 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java @@ -45,10 +45,17 @@ public class ConcernRecommendAdapter extends RecyclerView.Adapter(); concernManager = new ConcernManager(context); @@ -168,7 +175,7 @@ public class ConcernRecommendAdapter extends RecyclerView.Adapter kv = new HashMap<>(); kv.put("名字", newsEntity.getTitle()); kv.put("位置", String.valueOf(viewHolder.getPosition() + 1)); - DataUtils.onEvent(context, "点击", "游戏新闻详情", kv); + DataUtils.onEvent(context, "点击", "游戏新闻列表", kv); - DataCollectionUtils.uploadClick(context, newsType, "游戏新闻详情", newsEntity.getTitle()); + DataCollectionUtils.uploadClick(context, newsType, "游戏新闻列表", newsEntity.getTitle()); // 统计阅读量 NewsUtils.statNewsViews(newsEntity.getId()); - NewsUtils.startNewsDetailActivity(context, newsEntity, entrance + "+(游戏新闻详情:" + newsType + ")"); + NewsUtils.startNewsDetailActivity(context, newsEntity, entrance + "+(游戏新闻列表:" + newsType + ")"); } }); } else if (holder instanceof NewsFooterViewHolder){ @@ -237,13 +237,13 @@ public class GameNewsAdapter extends RecyclerView.Adapter { public void onClick(View v) { String searchKey = ((GameNewsSearchViewHolder) holder).game_news_et_search.getText().toString().trim(); if (searchKey.length() >= 1) { - Intent intent = new Intent(context,NewsSearchActivity.class); + Intent intent = new Intent(context, NewsSearchActivity.class); intent.putExtra("gameName", "搜索结果"); intent.putExtra("searchKey", searchKey); intent.putExtra("gameId", gameId); - intent.putExtra("entrance", entrance + "+(游戏新闻详情:" + newsType + ")"); + intent.putExtra("entrance", entrance + "+(游戏新闻列表:" + newsType + ")"); context.startActivity(intent); - }else { + } else { Toast.makeText(context,"请输入关键字",Toast.LENGTH_SHORT).show(); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java index f7e99f48b0..a54eccf4a6 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java @@ -88,18 +88,18 @@ public class ImagePagerAdapter extends RecyclingPagerAdapter { Map kv = new HashMap<>(); kv.put("名字", slideEntity.getName()); kv.put("位置", getPosition(position) + 1); - DataUtils.onEvent(context, "点击", "游戏-插件-滚动图", kv); + DataUtils.onEvent(context, "点击", "游戏-专题-滚动图", kv); // 首页轮播图数据统计 DataLogUtils.uploadLunbotuLog(context, slideEntity.getType(), slideEntity.getName(), String.valueOf(getPosition(position) + 1)); + String entrance = "(游戏-专题:滚动图[" + + slideEntity.getName() + + "=" + slideEntity.getType() + + "=" + (getPosition(position) + 1) + + "])"; if ("game".equals(slideEntity.getType())) { - String entrance = "(游戏-插件:滚动图[" - + slideEntity.getName() - + "=" + slideEntity.getType() - + "=" + (getPosition(position) + 1) - + "])"; GameUtils.startGameDetailActivity(context, slideEntity.getLink(), entrance); } else if ("news".equals(slideEntity.getType())) { // 统计阅读量 @@ -107,16 +107,13 @@ public class ImagePagerAdapter extends RecyclingPagerAdapter { Intent intent = new Intent(context, NewsDetailActivity.class); intent.putExtra("newsId", slideEntity.getLink()); - intent.putExtra("entrance", "(游戏-插件:滚动图[" - + slideEntity.getName() - + "=" + slideEntity.getType() - + "=" + (getPosition(position) + 1) - + "])"); + intent.putExtra("entrance", entrance); context.startActivity(intent); } else if ("column".equals(slideEntity.getType())) { Intent intent = new Intent(context, SubjectActivity.class); intent.putExtra("id", slideEntity.getLink()); intent.putExtra("name", slideEntity.getName()); + intent.putExtra("entrance", entrance); context.startActivity(intent); } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java index e67e1b2ccf..405360b53d 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java @@ -53,12 +53,16 @@ public class LibaoDetailAdapter extends RecyclerView.Adapter mLibaoInfos; + private String entrance; + public LibaoDetailAdapter(LibaoDetailActivity libaoDetailActivity, LibaoEntity libaoEntity, TextView tvDownload) { this.mContext = libaoDetailActivity; this.mCallBackListener = libaoDetailActivity; this.mLibaoEntity = libaoEntity; this.mDownloadTv = tvDownload; + entrance = libaoDetailActivity.getIntent().getStringExtra("entrance"); + mLibaoDao = new LibaoDao(mContext); mLibaoInfos = mLibaoDao.getAll(); @@ -256,7 +260,8 @@ public class LibaoDetailAdapter extends RecyclerView.Adapter statusList = (List) response; - if (statusList.size() == 0) return; - mLibaoEntity.setStatus(statusList.get(0).getStatus()); - mLibaoEntity.setAvailable(statusList.get(0).getAvailable()); - mLibaoEntity.setTotal(statusList.get(0).getTotal()); - notifyItemChanged(0); + if (statusList.size() != 0) { + mLibaoEntity.setStatus(statusList.get(0).getStatus()); + mLibaoEntity.setAvailable(statusList.get(0).getAvailable()); + mLibaoEntity.setTotal(statusList.get(0).getTotal()); + notifyItemChanged(0); + } } @Override diff --git a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java index 65bf0a4dba..2a2ac32f35 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java @@ -90,6 +90,7 @@ public class MessageDetailAdapter extends RecyclerView.Adapter) mConcernEntity.getImg()); intent.putExtras(bundle); + intent.putExtra("entrance", entrance + "+(消息详情[" + mConcernEntity.getGameName() + "])"); mContext.startActivity(intent); } else { Intent intent = new Intent(mContext, ShareCardActivity.class); @@ -401,6 +405,7 @@ public class MessageDetailAdapter extends RecyclerView.Adapter { // 打开下载管理界面 Intent intent = new Intent(context, DownloadManagerActivity.class); intent.putExtra("url", apkEntity.getUrl()); + intent.putExtra("entrance", entrance + "(" + location.split(":")[0] + ")"); context.startActivity(intent); } else if ("启动".equals(status)) { Map kv = new HashMap<>(); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java index f11e79f47f..cc87bef0e7 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java @@ -33,6 +33,7 @@ import java.util.Map; /** * Created by LGT on 2016/7/6. + * */ public class PluginAdapter extends RecyclerView.Adapter { @@ -179,12 +180,12 @@ public class PluginAdapter extends RecyclerView.Adapter DataCollectionUtils.uploadClick(context, "列表", "可以插件化的游戏", gameEntity.getName()); - GameUtils.startGameDetailActivity(context, gameEntity.getId(), entrance + "+(可以插件化的游戏)"); + GameUtils.startGameDetailActivity(context, gameEntity.getId(), entrance + "+(插件化[" + (viewHolder.getPosition() + 1) + "])"); } }); DownloadItemUtils.setOnClickListener(context, viewHolder.downloadBtn, gameEntity, position, - PluginAdapter.this, entrance + "+(可以插件化的游戏)", "可以插件化的游戏:" + gameEntity.getName()); + PluginAdapter.this, entrance + "+(插件化[" + (viewHolder.getPosition() + 1) + "])", "插件化:" + gameEntity.getName()); DownloadItemUtils.updateItem(context, viewHolder.gameDes, viewHolder.game_progressbar, viewHolder.game_ll_info, viewHolder.download_speed, diff --git a/app/src/main/java/com/gh/gamecenter/adapter/StrategyAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/StrategyAdapter.java index 7e3c002573..8b19be6055 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/StrategyAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/StrategyAdapter.java @@ -32,6 +32,7 @@ import rx.schedulers.Schedulers; /** * Created by khy on 2016/12/5. + * */ public class StrategyAdapter extends RecyclerView.Adapter { @@ -42,6 +43,7 @@ public class StrategyAdapter extends RecyclerView.Adapter mNewsList; private String mGameId; + private String entrance; private boolean isRemove; private boolean isLoading; @@ -52,6 +54,8 @@ public class StrategyAdapter extends RecyclerView.Adapter(); isLoading = false; @@ -187,7 +191,7 @@ public class StrategyAdapter extends RecyclerView.Adapter subjectList; - private ArrayMap> locationMap; private LibaoDao libaoDao; @@ -333,7 +332,7 @@ public class SubjectAdapter extends RecyclerView.Adapter { +class GameDownloadFragmentAdapter extends RecyclerView.Adapter { private Context context; @@ -60,7 +63,7 @@ public class GameDownloadFragmentAdapter extends RecyclerView.Adapter getDownloadingList() { + List getDownloadingList() { return downloadingList; } - public List getDoneList() { + List getDoneList() { return doneList; } @@ -602,15 +605,15 @@ public class GameDownloadFragmentAdapter extends RecyclerView.Adapter getStatusMap() { + ArrayMap getStatusMap() { return statusMap; } - public ArrayMap getUrlMap() { + ArrayMap getUrlMap() { return urlMap; } @@ -618,11 +621,11 @@ public class GameDownloadFragmentAdapter extends RecyclerView.Adapter getDeleteList() { + ArrayList getDeleteList() { return deleteList; } - public void initMap() { + void initMap() { downloadingList.clear(); doneList.clear(); statusMap.clear(); diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java index 697645a5d1..c851151c92 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java @@ -128,8 +128,7 @@ public class GameUpdateFragment extends Fragment { reuse_nodata_skip.setVisibility(View.VISIBLE); } } - EventBus.getDefault().post( - new EBDownloadChanged("update", View.VISIBLE, -1)); + EventBus.getDefault().post(new EBDownloadChanged("update", View.VISIBLE, -1)); } adapter.initLocationMap(); } diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java index 52d8bf7c26..1782b0d084 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java @@ -1,5 +1,6 @@ package com.gh.gamecenter.download; +import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.support.v4.util.ArrayMap; @@ -25,6 +26,8 @@ import com.gh.download.DownloadEntity; import com.gh.download.DownloadManager; import com.gh.download.DownloadStatus; import com.gh.gamecenter.R; +import com.gh.gamecenter.adapter.viewholder.DownloadHeadViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameUpdateViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.GameUpdateEntity; import com.gh.gamecenter.eventbus.EBDownloadChanged; @@ -51,7 +54,7 @@ import rx.schedulers.Schedulers; * Created by LGT on 2016/8/16. * */ -public class GameUpdateFragmentAdapter extends RecyclerView.Adapter { +class GameUpdateFragmentAdapter extends RecyclerView.Adapter { private Context context; @@ -63,18 +66,24 @@ public class GameUpdateFragmentAdapter extends RecyclerView.Adapter updateList; private String packageName; + private String entrance; - public GameUpdateFragmentAdapter(Context context, - LinearLayout loading, - LinearLayout none, - String packageName, - boolean isUpdate) { - this.context = context; + GameUpdateFragmentAdapter(Activity activity, + LinearLayout loading, + LinearLayout none, + String packageName, + boolean isUpdate) { + this.context = activity; gameupdate_ll_loading = loading; gameupdate_tv_none = none; this.packageName = packageName; + entrance = activity.getIntent().getStringExtra("entrance"); + if (activity.getIntent().getBundleExtra("data") != null) { + entrance = activity.getIntent().getBundleExtra("data").getString("entrance"); + } + locationMap = new ArrayMap<>(); updateList = new ArrayList<>(); @@ -363,8 +372,6 @@ public class GameUpdateFragmentAdapter extends RecyclerView.Adapter locationList = adapter.getLocationMap().get(downloadEntity.getPackageName()); - if (locationList != null && locationList.size() != 0) { - GameEntity gameEntity; - for (int location : locationList) { - gameEntity = adapter.getGameEntityByLocation(location); - if (gameEntity != null) { - DownloadItemUtils.processDate(getActivity(), gameEntity, - downloadEntity, adapter, location); - } - } - } - } - } - }; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - init(R.layout.fragment_game); - - currentItem = 0; - - reuse_no_connection.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - fm_game_swipe_refresh.setRefreshing(true); - fm_game_rv_list.setVisibility(View.VISIBLE); - fm_game_pb_loading.setVisibility(View.VISIBLE); - reuse_no_connection.setVisibility(View.GONE); - handler.postDelayed(runnable, 1000); - } - }); - - fm_game_swipe_refresh.setColorSchemeResources(R.color.theme); - fm_game_swipe_refresh.setOnRefreshListener(this); - - fm_game_rv_list.setHasFixedSize(true); - fm_game_rv_list.setLayoutManager(new LinearLayoutManager(getActivity())); - adapter = new Game1FragmentAdapter(Game1Fragment.this, fm_game_swipe_refresh); - fm_game_rv_list.setAdapter(adapter); - - fm_game_rv_list.setOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrollStateChanged(RecyclerView recyclerView, int newState) { - super.onScrollStateChanged(recyclerView, newState); - if (newState == RecyclerView.SCROLL_STATE_IDLE){ - Fresco.getImagePipeline().resume(); - }else { - Fresco.getImagePipeline().pause(); - } - } - }); - } - - @Override - public void loadDone() { - if (fm_game_swipe_refresh != null && fm_game_swipe_refresh.isRefreshing()) { - fm_game_swipe_refresh.setRefreshing(false); - } - if (fm_game_pb_loading != null && fm_game_pb_loading.getVisibility() == View.VISIBLE) { - fm_game_pb_loading.setVisibility(View.GONE); - } - } - - @Override - public void loadError() { - fm_game_rv_list.setVisibility(View.GONE); - fm_game_pb_loading.setVisibility(View.GONE); - reuse_no_connection.setVisibility(View.VISIBLE); - } - - //下载被删除事件 - public void onEventMainThread(EBDownloadStatus status) { - if ("delete".equals(status.getStatus())) { - DownloadManager.getInstance(getActivity()).removePlatform(status.getName(), status.getPlatform()); - - ArrayList locationList = adapter.getLocationMap().get(status.getPackageName()); - GameEntity gameEntity; - if (locationList != null && locationList.size() != 0) { - for (int location : locationList) { - gameEntity = adapter.getGameEntityByLocation(location); - if (gameEntity != null && gameEntity.getEntryMap() != null) { - gameEntity.getEntryMap().remove(status.getPlatform()); - } - adapter.notifyItemChanged(location); - } - } - } else if ("plugin".equals(status.getStatus())) { - handler.postDelayed(initPluginRunnable, 100); - } - } - - Runnable initPluginRunnable = new Runnable() { - @Override - public void run() { - if (adapter.isInitPlugin()) { - handler.postDelayed(initPluginRunnable, 100); - } else { - adapter.initPlugin(); - } - } - }; - - //安装、卸载事件 - public void onEventMainThread(EBPackage busFour) { - ArrayList locationList = adapter.getLocationMap().get(busFour.getPackageName()); - if (locationList != null) { - GameEntity gameEntity; - for (int location : locationList) { - gameEntity = adapter.getGameEntityByLocation(location); - if (gameEntity != null) { - if (gameEntity.isPluggable()) { - // 插件化列表 - if ("安装".equals(busFour.getType()) || "卸载".equals(busFour.getType())) { - List list = adapter.getPluginList(); - for (int i = 0; i < list.size(); i++) { - if (list.get(i).getApk().get(0).getPackageName().equals(busFour.getPackageName())) { - if ("卸载".equals(busFour.getType()) - && DownloadManager.getInstance(getActivity()).get( - list.get(i).getApk().get(0).getUrl()) != null) { - adapter.notifyItemChanged(2 + i); - } else { - list.remove(i); - if (list.isEmpty()) { - adapter.initItemCount(); - adapter.notifyItemRangeRemoved(1, 2); - } else { - adapter.initItemCount(); - adapter.notifyItemRemoved(location); - adapter.notifyItemChanged(1); - } - } - break; - } - } - } - } else { - if ("安装".equals(busFour.getType())) { - for (ApkEntity apkEntity : gameEntity.getApk()) { - if (apkEntity.getPackageName().equals(busFour.getPackageName())) { - if (gameEntity.getEntryMap() != null) { - gameEntity.getEntryMap().remove(apkEntity.getPlatform()); - } - adapter.notifyItemChanged(location); - break; - } - } - } else if ("卸载".equals(busFour.getType())) { - adapter.notifyItemChanged(location); - } - } - } - } - adapter.initLocationMap(); - } - } - - //连接上网络事件 - public void onEventMainThread(EBNetworkState busNetworkState) { - if (busNetworkState.isNetworkConnected()) { - if (reuse_no_connection.getVisibility() == View.VISIBLE) { - fm_game_swipe_refresh.setRefreshing(true); - fm_game_rv_list.setVisibility(View.VISIBLE); - fm_game_pb_loading.setVisibility(View.GONE); - reuse_no_connection.setVisibility(View.GONE); - handler.postDelayed(runnable, 1000); - } else if (adapter.isNetworkError()) { - adapter.setNetworkError(false); - adapter.notifyItemChanged(adapter.getItemCount() - 1); - adapter.initSlide(true); - } - } - } - - // 打开下载按钮事件 - public void onEventMainThread(EBReuse reuse) { - if (("Refresh".equals(reuse.getType()) || "PlatformChanged".equals(reuse.getType())) - && adapter != null) { - adapter.notifyItemRangeChanged(0, adapter.getItemCount()); - } - } - - //Fragment界面切换事件 - public void onEventMainThread(EBUISwitch busNine) { - if ("MainActivity".equals(busNine.getFrom())) { - if (busNine.getPosition() == 0) { - adapter.startAutoScroll(); - } else { - adapter.stopAutoScroll(); - } - } else if ("GameFragment".equals(busNine.getFrom())) { - currentItem = busNine.getPosition(); - if (busNine.getPosition() == 0) { - adapter.startAutoScroll(); - if (fm_game_pb_loading.getVisibility() == View.VISIBLE) { - adapter.initSlide(true); - } - } else { - adapter.stopAutoScroll(); - } - } - } - - @Override - public void onResume() { - if (isEverpause) { - for (SubjectEntity subjectEntity : adapter.getSubjectList()) { - for (GameEntity entity :subjectEntity.getData()) { - entity.setEntryMap(DownloadManager.getInstance(getActivity()).getEntryMap(entity.getName())); - } - } - for (GameEntity entity : adapter.getPluginList()) { - entity.setEntryMap(DownloadManager.getInstance(getActivity()).getEntryMap(entity.getName())); - } - adapter.notifyDataSetChanged(); - } - super.onResume(); - DownloadManager.getInstance(getActivity()).addObserver(dataWatcher); - if (currentItem == 0) { - adapter.startAutoScroll(); - } - } - - @Override - public void onPause() { - super.onPause(); - DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher); - if (currentItem == 0) { - adapter.stopAutoScroll(); - } - } - - Runnable runnable = new Runnable() { - @Override - public void run() { - adapter = new Game1FragmentAdapter(Game1Fragment.this, fm_game_swipe_refresh); - fm_game_rv_list.setAdapter(adapter); - adapter.initSlide(true); - } - }; - - @Override - public void onRefresh() { - handler.postDelayed(runnable, 1000); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java deleted file mode 100644 index d66939216e..0000000000 --- a/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java +++ /dev/null @@ -1,976 +0,0 @@ -package com.gh.gamecenter.game; - -import android.content.Context; -import android.content.Intent; -import android.graphics.Color; -import android.support.v4.util.ArrayMap; -import android.support.v4.view.ViewPager; -import android.support.v4.widget.SwipeRefreshLayout; -import android.support.v7.widget.RecyclerView; -import android.text.TextUtils; -import android.util.DisplayMetrics; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.Toast; - -import com.gh.common.constant.ItemViewType; -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.GameUtils; -import com.gh.common.util.GameViewUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.NewsUtils; -import com.gh.common.util.PlatformUtils; -import com.gh.common.view.CardLinearLayout; -import com.gh.download.DownloadManager; -import com.gh.gamecenter.NewsDetailActivity; -import com.gh.gamecenter.PluginActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.SubjectActivity; -import com.gh.gamecenter.adapter.ImagePagerAdapter; -import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameHeadViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameImageViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameViewPagerViewHolder; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.entity.GameUpdateEntity; -import com.gh.gamecenter.entity.SlideEntity; -import com.gh.gamecenter.entity.SubjectEntity; -import com.gh.gamecenter.listener.OnCallBackListener; -import com.gh.gamecenter.manager.GameManager; -import com.gh.gamecenter.manager.PackageManager; -import com.gh.gamecenter.retrofit.Response; -import com.gh.gamecenter.retrofit.RetrofitManager; - -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; - -import retrofit2.adapter.rxjava.HttpException; -import rx.android.schedulers.AndroidSchedulers; -import rx.functions.Func1; -import rx.schedulers.Schedulers; - -/** - * Created by LGT on 2016/7/1. - * 游戏-插件-数据适配器 - */ -public class Game1FragmentAdapter extends RecyclerView.Adapter { - - private Game1Fragment fragment; - private Context context; - private OnCallBackListener listener; - - private SwipeRefreshLayout game_swipe_refresh; - - private List slideList; - private List pluginList; - private List subjectList; - - // 包名对应游戏位置 - private ArrayMap> locationMap; - - private int itemCount; - private int pluginSize; - - private int cardMargin; - - private boolean isNetworkError; - private boolean isSlideError; - private boolean isListError; - private boolean isOver; - private boolean isInitPlugin; - private boolean isAutoScroll; - - public Game1FragmentAdapter(Game1Fragment fragment, - SwipeRefreshLayout refreshLayout) { - - this.fragment = fragment; - this.context = fragment.getActivity(); - this.listener = fragment; - - game_swipe_refresh = refreshLayout; - - slideList = new ArrayList<>(); - pluginList = new ArrayList<>(); - subjectList = new ArrayList<>(); - - locationMap = new ArrayMap<>(); - - itemCount = 0; - pluginSize = 0; - - isNetworkError = false; - isSlideError = false; - isListError = false; - isOver = false; - isInitPlugin = false; - isAutoScroll = false; - - cardMargin = (int) context.getResources().getDimension(R.dimen.cardview_margin); - } - - public ArrayMap> getLocationMap() { - return locationMap; - } - - public GameEntity getGameEntityByLocation(int location) { - - if (!pluginList.isEmpty() && location > 1 && location <= 1 + pluginList.size()) { - return pluginList.get(location - 2); - } - - int offset = 1; - if (!pluginList.isEmpty()) { - offset += 1 + pluginList.size(); - } - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (location > offset && location <= subjectList.get(i).getData().size() + offset) { - return subjectList.get(i).getData().get(location - offset - 1); - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - - return null; - } - - public void initSlide(final boolean isFirst) { - RetrofitManager.getApi().getSlide() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response>() { - @Override - public void onResponse(List response) { - slideList = response; - if (slideList.size() != 0) { - notifyItemChanged(0); - } - if (isFirst) { - initSubjectList(); - } - } - - @Override - public void onFailure(HttpException e) { - isSlideError = true; - showView(); - if (isFirst) { - initSubjectList(); - } - } - }); - } - - private void initSubjectList() { - RetrofitManager.getApi().getChajian() - .map(new Func1, List>() { - @Override - public List call(List list) { - GameManager manager = new GameManager(context); - SubjectEntity subjectEntity; - GameEntity gameEntity; - for (int j = 0; j < list.size(); j++) { - subjectEntity = list.get(j); - if (subjectEntity.getData().size() == 1 - && !TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())){ - list.remove(j); - j--; - continue; - } - for (int i = 0; i < subjectEntity.getData().size(); i++) { - gameEntity = subjectEntity.getData().get(i); - if (gameEntity.getApk() != null && !gameEntity.getApk().isEmpty()) { - gameEntity.setEntryMap(DownloadManager.getInstance(context).getEntryMap(gameEntity.getName())); - manager.addOrUpdate(gameEntity.getApk(), gameEntity.getId(), gameEntity.getName()); - } else if (TextUtils.isEmpty(gameEntity.getId())) { - if (TextUtils.isEmpty(gameEntity.getType()) - || TextUtils.isEmpty(gameEntity.getLink()) - || TextUtils.isEmpty(gameEntity.getName()) - || TextUtils.isEmpty(gameEntity.getImage())) { - subjectEntity.getData().remove(i); - i--; - } - } - } - } - return list; - } - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response>() { - @Override - public void onResponse(List response) { - if (response.size() != 0) { - if (!fragment.isHidden() && !fragment.isEverpause()) { - if (pluginList.isEmpty()) { - subjectList = response; - initItemCount(); - notifyItemRangeInserted(1, getItemCount() - 2); - } else { - int start = 2 + pluginList.size(); - subjectList = response; - initItemCount(); - notifyItemRangeInserted(start, getItemCount() - start - 1); - } - } else { - subjectList = response; - initItemCount(); - notifyDataSetChanged(); - } - initLocationMap(); - } - - if (listener != null) { - listener.loadDone(); - } - - isOver = true; - notifyItemChanged(getItemCount() - 1); - - initPlugin(); - } - - @Override - public void onFailure(HttpException e) { - if (listener != null) { - listener.loadDone(); - } - isListError = true; - isNetworkError = true; - showView(); - } - }); - } - - public void initPlugin() { - if (isInitPlugin) { - return; - } - isInitPlugin = true; - ArrayList updateList = PackageManager.getUpdateList(); - if (updateList.isEmpty()) { - isInitPlugin = false; - return; - } - List list = new ArrayList<>(); - GameUpdateEntity gameUpdateEntity; - pluginSize = 0; - for (int i = 0, size= updateList.size(); i < size; i++) { - gameUpdateEntity = updateList.get(i); - if (gameUpdateEntity.isPluggable()) { - pluginSize++; - if (list.size() < 3) { - GameEntity gameEntity = new GameEntity(); - gameEntity.setId(gameUpdateEntity.getId()); - gameEntity.setName(gameUpdateEntity.getName()); - gameEntity.setIcon(gameUpdateEntity.getIcon()); - gameEntity.setTag(gameUpdateEntity.getTag()); - gameEntity.setBrief(gameUpdateEntity.getBrief()); - gameEntity.setPluggable(true); - - ApkEntity apkEntity = new ApkEntity(); - apkEntity.setUrl(gameUpdateEntity.getUrl()); - apkEntity.setPackageName(gameUpdateEntity.getPackageName()); - apkEntity.setSize(gameUpdateEntity.getSize()); - apkEntity.setVersion(gameUpdateEntity.getVersion()); - apkEntity.setGhVersion(gameUpdateEntity.getGhVersion()); - apkEntity.setPlatform(gameUpdateEntity.getPlatform()); - apkEntity.setEtag(gameUpdateEntity.getEtag()); - - ArrayList apk = new ArrayList<>(); - apk.add(apkEntity); - gameEntity.setApk(apk); - - list.add(gameEntity); - } - } - } - if (!list.isEmpty()) { - for (GameEntity gEntity : list) { - gEntity.setEntryMap(DownloadManager.getInstance(context). - getEntryMap(gEntity.getName())); - } - if (pluginList.isEmpty()) { - pluginList = list; - initItemCount(); - notifyItemRangeInserted(1, pluginList.size() + 1); - if (getItemCount() > pluginList.size() + 2) { - notifyItemChanged(pluginList.size() + 2); - } - } else { - pluginList = list; - notifyDataSetChanged(); - } - initLocationMap(); - } - isInitPlugin = false; - } - - private void showView() { - if (isSlideError && isListError) { - Toast.makeText(context, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show(); - listener.loadError(); - } else if (isSlideError) { - Toast.makeText(context, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show(); - notifyItemChanged(0); - } else if (isListError) { - Toast.makeText(context, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show(); - notifyItemChanged(getItemCount() - 1); - } - } - - public void initLocationMap() { - locationMap.clear(); - - int count = getItemCount(); - if (!pluginList.isEmpty()) { - GameEntity gameEntity; - ArrayList list; - for (int position = 0, size = pluginList.size(); position < size; position++) { - gameEntity = pluginList.get(position); - if (gameEntity.getApk() != null && gameEntity.getApk().size() != 0) { - for (ApkEntity apkEntity : gameEntity.getApk()) { - list = locationMap.get(apkEntity.getPackageName()); - if (list == null) { - list = new ArrayList<>(); - locationMap.put(apkEntity.getPackageName(), list); - } - list.add(position + 2); - } - } - } - } - - if (!subjectList.isEmpty()) { - int offset; - GameEntity gameEntity; - ArrayList list; - for (int position = 0; position < count; position++) { - offset = 1; - if (!pluginList.isEmpty()) { - offset += 1 + pluginList.size(); - } - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (position > offset && position <= subjectList.get(i).getData().size() + offset) { - gameEntity = subjectList.get(i).getData().get(position - offset - 1); - if (gameEntity.getApk() != null && !gameEntity.getApk().isEmpty()) { - for (ApkEntity apkEntity : gameEntity.getApk()) { - list = locationMap.get(apkEntity.getPackageName()); - if (list == null) { - list = new ArrayList<>(); - locationMap.put(apkEntity.getPackageName(), list); - } - list.add(position); - } - } - break; - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - } - } - - public void initItemCount() { - int pluginSize = 0; - if (!pluginList.isEmpty()) { - pluginSize += 1 + pluginList.size(); - } - int subjectSize = 0; - if (!subjectList.isEmpty()) { - SubjectEntity subjectEntity; - for (int i = 0, size = subjectList.size(); i < size; i++) { - subjectEntity = subjectList.get(i); - subjectSize += 1 + subjectEntity.getData().size(); - } - } - itemCount = pluginSize + subjectSize; - } - - @Override - public int getItemCount() { - return 1 + itemCount + 1; - } - - @Override - public int getItemViewType(int position) { - - if (position == 0) { - return ItemViewType.GAME_SLIDE; - } - - if (!pluginList.isEmpty()) { - if (position == 1) { - return ItemViewType.COLUMN_HEADER; - } - if (position > 1 && position <= 1 + pluginList.size()) { - return ItemViewType.GAME_NORMAL; - } - } - - int offset = 1; - if (!pluginList.isEmpty()) { - offset += 1 + pluginList.size(); - } - GameEntity gameEntity; - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (position >= offset && position <= subjectList.get(i).getData().size() + offset) { - int index = position -offset-1; - if (index<0){ - index = 0; - } - gameEntity = subjectList.get(i).getData().get(index); - if (position == offset && !TextUtils.isEmpty(gameEntity.getImage())){ - return ItemViewType.GAME_IMAGE; - }else if (position == offset){ - return ItemViewType.COLUMN_HEADER; - } - if (position == offset+1&&!TextUtils.isEmpty(subjectList.get(i).getData().get(0).getImage())){ - return ItemViewType.COLUMN_HEADER; - } - if (!TextUtils.isEmpty(gameEntity.getImage())) { - return ItemViewType.GAME_IMAGE; - } - if (gameEntity.getTest() != null) { - return ItemViewType.GAME_TEST; - } - return ItemViewType.GAME_NORMAL; - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - return ItemViewType.LOADING; - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - if (viewType == ItemViewType.GAME_SLIDE) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.game_viewpager_item, parent, false); - DisplayMetrics outMetrics = new DisplayMetrics(); - fragment.getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); - ViewGroup.LayoutParams params = new ViewGroup.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, (int) (outMetrics.widthPixels / 16f * 7f)); - view.setLayoutParams(params); - return new GameViewPagerViewHolder(view); - } else if (viewType == ItemViewType.COLUMN_HEADER) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.game_head_item, parent, false); - return new GameHeadViewHolder(view); - } else if (viewType == ItemViewType.GAME_NORMAL) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.game_normal_item, parent, false); - return new GameNormalViewHolder(view); - } else if (viewType == ItemViewType.GAME_TEST) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.game_test_item, parent, false); - return new GameTestViewHolder(view); - } else if (viewType == ItemViewType.GAME_IMAGE) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.game_image_item, parent, false); - return new GameImageViewHolder(view); - } else if (viewType == ItemViewType.LOADING){ - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.refresh_footerview, parent, false); - return new FooterViewHolder(view); - } - return null; - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { - if (holder instanceof GameViewPagerViewHolder) { - initGameViewPagerViewHolder((GameViewPagerViewHolder) holder); - } else if (holder instanceof GameHeadViewHolder) { - initGameHeadViewHolder((GameHeadViewHolder) holder, position); - } else if (holder instanceof GameImageViewHolder) { - initGameImageViewHolder((GameImageViewHolder) holder, position); - } else if (holder instanceof GameNormalViewHolder){ - initGameNormalViewHolder((GameNormalViewHolder) holder, position); - } else if (holder instanceof GameTestViewHolder) { - initGameTestViewHolder((GameTestViewHolder) holder, position); - } else if (holder instanceof FooterViewHolder) { - initFooterViewHolder((FooterViewHolder) holder); - } - } - - private void initGameViewPagerViewHolder(final GameViewPagerViewHolder viewHolder) { - if (isSlideError) { - viewHolder.viewpager_tv_failure.setVisibility(View.VISIBLE); - viewHolder.viewPager.setVisibility(View.GONE); - viewHolder.viewpager_ll_hint.setVisibility(View.GONE); - } else { - viewHolder.viewpager_tv_failure.setVisibility(View.GONE); - viewHolder.viewPager.setVisibility(View.VISIBLE); - viewHolder.viewpager_ll_hint.setVisibility(View.VISIBLE); - } - if (slideList.size() != 0 && viewHolder.viewPager.getAdapter() == null) { - viewHolder.viewpager_ll_hint.removeAllViews(); - for (int i = 0, size = slideList.size(); i < size; i++) { - ImageView imageView = new ImageView(context); - LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams( - DisplayUtils.dip2px(context, 6), DisplayUtils.dip2px(context, 6)); - lparams.bottomMargin = DisplayUtils.dip2px(context, 6); - if (i == 0) { - imageView.setImageResource(R.drawable.oval_hint_up); - } else { - imageView.setImageResource(R.drawable.oval_hint_dn); - } - if (i != 0) { - lparams.leftMargin = DisplayUtils.dip2px(context, 6); - } - imageView.setLayoutParams(lparams); - viewHolder.viewpager_ll_hint.addView(imageView); - } - viewHolder.viewPager.setAdapter(new ImagePagerAdapter(context, slideList, true)); - viewHolder.viewPager.setInterval(3000); - viewHolder.viewPager.startAutoScroll(); - viewHolder.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { - @Override - public void onPageSelected(int position) { - for (int i = 0, size = viewHolder.viewpager_ll_hint.getChildCount(); i < size; i++) { - if (i == position % size) { - ((ImageView) viewHolder.viewpager_ll_hint.getChildAt(i)) - .setImageResource(R.drawable.oval_hint_up); - } else { - ((ImageView) viewHolder.viewpager_ll_hint.getChildAt(i)) - .setImageResource(R.drawable.oval_hint_dn); - } - } - } - - @Override - public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { - - } - - @Override - public void onPageScrollStateChanged(int state) { - // 解决viewpager和SwipeRefreshLayout滑动冲突 - if (state == ViewPager.SCROLL_STATE_DRAGGING) { - game_swipe_refresh.setEnabled(false); - } else { - game_swipe_refresh.setEnabled(true); - } - } - }); - viewHolder.viewpager_tv_failure.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - isSlideError = false; - notifyItemChanged(0); - initSlide(false); - } - }); - } - if (isAutoScroll) { - viewHolder.viewPager.startAutoScroll(); - } else { - viewHolder.viewPager.stopAutoScroll(); - } - } - - private void initGameTestViewHolder(GameTestViewHolder holder, int position) { - int offset = 1; - if (!pluginList.isEmpty()) { - offset += 1 + pluginList.size(); - } - GameEntity gameEntity; - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (position > offset && position <= subjectList.get(i).getData().size() + offset) { - gameEntity = subjectList.get(i).getData().get(position - offset - 1); - if (gameEntity.getTest() != null) { - int order = position - offset - 1; - if (subjectList.get(i).getData().get(0).getImage() != null) { - order--; - } - initGameTest(holder, gameEntity, order, subjectList.get(i), i + 1 == size); - break; - } - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - - private void initGameTest(GameTestViewHolder holder, final GameEntity gameEntity, - final int i, final SubjectEntity subjectEntity, boolean isBottom) { - - // 最后一个 - ((CardLinearLayout) holder.itemView).setBottom(isBottom); - if (TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())) { - if (i + 1 == subjectEntity.getData().size()) { - ((CardLinearLayout) holder.itemView).setmBottom(cardMargin); - } else { - ((CardLinearLayout) holder.itemView).setmBottom(0); - } - } else { - if (i + 2 == subjectEntity.getData().size()) { - ((CardLinearLayout) holder.itemView).setmBottom(cardMargin); - } else { - ((CardLinearLayout) holder.itemView).setmBottom(0); - } - } - - if (subjectEntity.isOrder()) { - holder.home2_game_order.setVisibility(View.VISIBLE); - holder.home2_game_order.setText(String.valueOf(i + 1)); - } else { - holder.home2_game_order.setVisibility(View.GONE); - } - holder.gameThumb.setImageURI(gameEntity.getImage()); - holder.gameNameAndSize.setText(gameEntity.getName()); - if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) { - holder.gameDes.setText(gameEntity.getBrief()); - } else { - holder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief())); - } - holder.gameTestType.setText(gameEntity.getTest().getType()); - if (gameEntity.getTest().getStart() == 0) { - holder.gameTestTime.setVisibility(View.GONE); - } else { - holder.gameTestTime.setText(GameViewUtils.getGameTestDate(gameEntity.getTest().getStart())); - } - - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Map kv = new HashMap<>(); - kv.put("名字", gameEntity.getName()); - kv.put("位置", String.valueOf(i + 1)); - DataUtils.onEvent(context, "点击", "游戏-插件-" + subjectEntity.getName(), kv); - - DataCollectionUtils.uploadClick(context, - subjectEntity.getName() + "-列表", "游戏-插件", gameEntity.getName()); - - GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-插件:" + subjectEntity.getName() + "-列表)"); - } - }); - - if (gameEntity.getTest().getEnd() != 0) { - long endTime = Long.valueOf(gameEntity.getTest().getEnd() + "000"); - long todayTime = new Date().getTime(); - if (todayTime > endTime) { - // 测试时间已过 - gameEntity.setApk(null); - } - } - - DownloadItemUtils.setOnClickListener(context, - holder.downloadBtn, gameEntity, i, - Game1FragmentAdapter.this, "(游戏-插件:" + subjectEntity.getName() + "-列表)", - "游戏-插件-" + subjectEntity.getName() + ":" + gameEntity.getName()); - - DownloadItemUtils.updateItem(context, holder.gameDes, - holder.game_progressbar, holder.game_ll_info, holder.download_speed, - holder.download_percentage, holder.downloadBtn, gameEntity); - } - - private void initGameNormalViewHolder(GameNormalViewHolder holder, int position) { - GameEntity gameEntity; - - if (!pluginList.isEmpty() && position > 1 && position <= 1 + pluginList.size()) { - gameEntity = pluginList.get(position - 2); - SubjectEntity subjectEntity = new SubjectEntity(); - subjectEntity.setOrder(false); - subjectEntity.setName("插件化"); - subjectEntity.setData(pluginList); - initGameNormal(holder, gameEntity, position - 2, subjectEntity, false); - return; - } - - int offset = 1; - if (!pluginList.isEmpty()) { - offset += 1 + pluginList.size(); - } - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (position > offset && position <= subjectList.get(i).getData().size() + offset) { - int index = position -offset-1; - if (index<0){ - index = 0; - } - gameEntity = subjectList.get(i).getData().get(index); - if (TextUtils.isEmpty(gameEntity.getImage()) && gameEntity.getTest() == null) { - int order = position - offset - 1; - if (subjectList.get(i).getData().get(0).getImage() != null) { - order--; - } - initGameNormal(holder, gameEntity, order, subjectList.get(i), i + 1 == size); - break; - } - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - - private void initGameNormal(GameNormalViewHolder holder, final GameEntity gameEntity, - final int i, final SubjectEntity subjectEntity, boolean isBottom) { - - // 最后一个 - ((CardLinearLayout) holder.itemView).setBottom(isBottom); - if (TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())) { - if (i + 1 == subjectEntity.getData().size()) { - ((CardLinearLayout) holder.itemView).setmBottom(cardMargin); - } else { - ((CardLinearLayout) holder.itemView).setmBottom(0); - } - } else { - if (i + 2 == subjectEntity.getData().size()) { - ((CardLinearLayout) holder.itemView).setmBottom(cardMargin); - } else { - ((CardLinearLayout) holder.itemView).setmBottom(0); - } - } - - if (subjectEntity.isOrder()) { - holder.home1_game_order.setVisibility(View.VISIBLE); - holder.home1_game_order.setText(String.valueOf(i + 1)); - } else { - holder.home1_game_order.setVisibility(View.GONE); - } - holder.gameThumb.setImageURI(gameEntity.getIcon()); - if (gameEntity.isPluggable()) { - holder.gameNameAndSize.setText(String.format("%s - %s", gameEntity.getName(), - PlatformUtils.getInstance(context).getPlatformName( - gameEntity.getApk().get(0).getPlatform()))); - } else { - holder.gameNameAndSize.setText(gameEntity.getName()); - } - if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) { - holder.gameDes.setText(gameEntity.getBrief()); - } else { - holder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief())); - } - GameViewUtils.setLabelList(context, holder.labelList, gameEntity.getTag()); - - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Map kv = new HashMap<>(); - kv.put("名字", gameEntity.getName()); - kv.put("位置", String.valueOf(i + 1)); - DataUtils.onEvent(context, "点击", "游戏-插件-" + subjectEntity.getName(), kv); - - DataCollectionUtils.uploadClick(context, - subjectEntity.getName() + "-列表", "游戏-插件", gameEntity.getName()); - - if (gameEntity.isPluggable()) { - GameUtils.startGameDetailActivity(context, gameEntity.getId(), "(游戏-插件:" + subjectEntity.getName() + "-列表)"); - } else { - GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-插件:" + subjectEntity.getName() + "-列表)"); - } - } - }); - - DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, gameEntity, i, - Game1FragmentAdapter.this, "(游戏-插件:" + subjectEntity.getName() + "-列表)", - "游戏-插件-" + subjectEntity.getName() + ":" + gameEntity.getName()); - - DownloadItemUtils.updateItem(context, holder.gameDes, - holder.game_progressbar, holder.game_ll_info, holder.download_speed, - holder.download_percentage, holder.downloadBtn, gameEntity, !gameEntity.isPluggable()); - } - - public void initGameImageViewHolder(GameImageViewHolder holder, int position) { - int offset = 1; - if (!pluginList.isEmpty()) { - offset += 1 + pluginList.size(); - } - GameEntity gameEntity; - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (position >= offset && position <= subjectList.get(i).getData().size() + offset) { - int index = position - offset - 1; - if (index<0){ - index = 0; - } - gameEntity = subjectList.get(i).getData().get(index); - if (position == offset && !TextUtils.isEmpty(gameEntity.getImage())) { - - if (i == 0) { - ((CardLinearLayout) holder.itemView).setmTop(cardMargin); - } else { - ((CardLinearLayout) holder.itemView).setmTop(0); - } - - final GameEntity entity = gameEntity; - final String name = subjectList.get(i).getName(); - String tag = entity.getImage(); - holder.image.setTag(tag); - ImageUtils.getInstance().display(holder.image, entity.getImage(), - context.getResources().getDisplayMetrics().widthPixels - DisplayUtils.dip2px(context, 16)); - holder.image.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Map kv = new HashMap<>(); - kv.put("名字", entity.getName()); - kv.put("位置", "大图"); - DataUtils.onEvent(context, "点击", "游戏-插件-" + name, kv); - - DataCollectionUtils.uploadClick(context, name + "-大图", "游戏-插件"); - - if ("game".equals(entity.getType())) { - GameUtils.startGameDetailActivity(context, entity.getLink(), "(游戏-插件:" + name + "-大图)"); - } else if ("news".equals(entity.getType())) { - // 统计阅读量 - NewsUtils.statNewsViews(entity.getLink()); - - Intent intent = new Intent(context, NewsDetailActivity.class); - intent.putExtra("newsId", entity.getLink()); - intent.putExtra("entrance", "(游戏-插件:" + name + "-大图)"); - context.startActivity(intent); - } else if ("column".equals(entity.getType())) { - Intent intent = new Intent(context, SubjectActivity.class); - intent.putExtra("id", entity.getLink()); - intent.putExtra("name", entity.getName()); - intent.putExtra("entrance", "(游戏-插件:" + name + "-大图)"); - context.startActivity(intent); - } - } - }); - break; - } - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - - public void initGameHeadViewHolder(GameHeadViewHolder holder, int position) { - if (!pluginList.isEmpty() && position == 1) { - ((CardLinearLayout) holder.itemView).setmTop(cardMargin); - holder.title.setTextColor(Color.parseColor("#00b7fa")); - holder.thumb.setVisibility(View.VISIBLE); - holder.thumb.setImageResource(R.drawable.home_plug_upgrade); - holder.title.setText(String.format(Locale.getDefault(), "你有%d个游戏可以升级插件版", pluginSize)); - if (pluginSize <= 3) { - holder.link.setVisibility(View.GONE); - } else { - holder.link.setVisibility(View.VISIBLE); - holder.link.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(context, PluginActivity.class); - intent.putExtra("entrance", "(游戏-插件:插件化-全部)"); - context.startActivity(intent); - } - }); - } - return; - } - - int offset = 1; - GameEntity gameEntity; - if (!pluginList.isEmpty()) { - offset += 1 + pluginList.size(); - } - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (position >= offset && position <= subjectList.get(i).getData().size() + offset){ - int index = position - offset - 1; - if (index < 0){ - index = 0; - } - gameEntity = subjectList.get(i).getData().get(index); - if (position == offset && TextUtils.isEmpty(gameEntity.getImage()) || position == offset + 1 - && !TextUtils.isEmpty(subjectList.get(i).getData().get(0).getImage())) { - if (TextUtils.isEmpty(subjectList.get(i).getData().get(0).getImage()) - && pluginList.isEmpty() && i == 0) { - ((CardLinearLayout) holder.itemView).setmTop(cardMargin); - } else { - ((CardLinearLayout) holder.itemView).setmTop(0); - } - holder.thumb.setVisibility(View.GONE); - holder.title.setText(subjectList.get(i).getName()); - holder.title.setTextColor(Color.BLACK); - final int ii = i; - if (subjectList.get(i).getData().size()>= Integer.parseInt(subjectList.get(i).getMore())){ - holder.link.setVisibility(View.GONE); - }else { - holder.link.setVisibility(View.VISIBLE); - } - holder.link.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - SubjectEntity subjectEntity = subjectList.get(ii); - Intent intent = new Intent(context, SubjectActivity.class); - intent.putExtra("id", subjectEntity.getId()); - intent.putExtra("name", subjectEntity.getName()); - intent.putExtra("order",subjectEntity.isOrder()); - intent.putExtra("entrance", "(游戏-插件:" + subjectEntity.getName() + "-全部)"); - context.startActivity(intent); - } - }); - } - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - - private void initFooterViewHolder(FooterViewHolder holder) { - if (isNetworkError) { - holder.lineLeft.setVisibility(View.GONE); - holder.lineRight.setVisibility(View.GONE); - holder.loading.setVisibility(View.GONE); - holder.hint.setText("加载失败,点击重试"); - holder.itemView.setClickable(true); - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - isNetworkError = false; - notifyItemChanged(getItemCount() - 1); - initSubjectList(); - } - }); - } else if (isOver) { - holder.lineLeft.setVisibility(View.VISIBLE); - holder.lineRight.setVisibility(View.VISIBLE); - holder.loading.setVisibility(View.GONE); - holder.hint.setText("到底了哦~"); - holder.itemView.setClickable(false); - } else { - holder.lineLeft.setVisibility(View.GONE); - holder.lineRight.setVisibility(View.GONE); - holder.loading.setVisibility(View.VISIBLE); - holder.hint.setText("加载中..."); - holder.itemView.setClickable(false); - } - } - - public void startAutoScroll() { - isAutoScroll = true; - notifyItemChanged(0); - } - - public void stopAutoScroll() { - isAutoScroll = false; - notifyItemChanged(0); - } - - public List getPluginList() { - return pluginList; - } - - public List getSubjectList() { - return subjectList; - } - - public boolean isNetworkError() { - return isNetworkError; - } - - public void setNetworkError(boolean networkError) { - isNetworkError = networkError; - } - - public boolean isInitPlugin() { - return isInitPlugin; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/game/Game2Fragment.java b/app/src/main/java/com/gh/gamecenter/game/Game2Fragment.java deleted file mode 100644 index 7c2a74d983..0000000000 --- a/app/src/main/java/com/gh/gamecenter/game/Game2Fragment.java +++ /dev/null @@ -1,222 +0,0 @@ -package com.gh.gamecenter.game; - -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.LinearLayout; -import android.widget.Toast; - -import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; -import com.gh.common.util.DownloadItemUtils; -import com.gh.download.DataWatcher; -import com.gh.download.DownloadEntity; -import com.gh.download.DownloadManager; -import com.gh.gamecenter.R; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.entity.SubjectEntity; -import com.gh.gamecenter.eventbus.EBDownloadStatus; -import com.gh.gamecenter.eventbus.EBNetworkState; -import com.gh.gamecenter.eventbus.EBPackage; -import com.gh.gamecenter.eventbus.EBReuse; -import com.gh.gamecenter.eventbus.EBUISwitch; - -import java.util.ArrayList; - -import butterknife.BindView; - -/** - * Created by khy on 2016/6/28. - */ -public class Game2Fragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener { - - @BindView(R.id.fm_game_swipe_refresh) SwipeRefreshLayout fm_game_swipe_refresh; - @BindView(R.id.fm_game_rv_list) RecyclerView fm_game_rv_list; - private Game2FragmentAdapter adapter; - @BindView(R.id.reuse_no_connection) LinearLayout reuse_no_connection; - @BindView(R.id.fm_game_pb_loading) ProgressBarCircularIndeterminate fm_game_pb_loading; - - DataWatcher dataWatcher = new DataWatcher() { - @Override - public void onDataChanged(DownloadEntity downloadEntity) { - if (!fm_game_swipe_refresh.isRefreshing()) { - ArrayList locationList = adapter.getLocationMap().get(downloadEntity.getPackageName()); - if (locationList != null && locationList.size() != 0) { - GameEntity gameEntity; - for (int location : locationList) { - gameEntity = adapter.getGameEntityByLocation(location); - if (gameEntity != null) { - DownloadItemUtils.processDate(getActivity(), gameEntity, - downloadEntity, adapter, location); - } - } - } - } - } - }; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - init(R.layout.fragment_game); - - reuse_no_connection.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - fm_game_swipe_refresh.setRefreshing(true); - fm_game_rv_list.setVisibility(View.VISIBLE); - fm_game_pb_loading.setVisibility(View.VISIBLE); - reuse_no_connection.setVisibility(View.GONE); - handler.postDelayed(runnable, 1000); - } - }); - - fm_game_swipe_refresh.setColorSchemeResources(R.color.theme); - fm_game_swipe_refresh.setOnRefreshListener(this); - - fm_game_rv_list.setHasFixedSize(true); - fm_game_rv_list.setLayoutManager(new LinearLayoutManager(getActivity())); - adapter = new Game2FragmentAdapter(Game2Fragment.this, false); - fm_game_rv_list.setAdapter(adapter); - } - - @Override - public void loadDone() { - if (fm_game_swipe_refresh != null && fm_game_swipe_refresh.isRefreshing()) { - fm_game_swipe_refresh.setRefreshing(false); - } - if (fm_game_pb_loading != null && fm_game_pb_loading.getVisibility() == View.VISIBLE) { - fm_game_pb_loading.setVisibility(View.GONE); - } - } - - @Override - public void loadError() { - Toast.makeText(getActivity(), "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show(); - if (fm_game_swipe_refresh != null && fm_game_swipe_refresh.isRefreshing()) { - fm_game_swipe_refresh.setRefreshing(false); - } - if (fm_game_pb_loading != null && fm_game_pb_loading.getVisibility() == View.VISIBLE) { - fm_game_pb_loading.setVisibility(View.GONE); - } - fm_game_rv_list.setVisibility(View.GONE); - reuse_no_connection.setVisibility(View.VISIBLE); - } - - //下载被删除事件 - public void onEventMainThread(EBDownloadStatus status) { - if ("delete".equals(status.getStatus())) { - DownloadManager.getInstance(getActivity()).removePlatform(status.getName(), status.getPlatform()); - - ArrayList locationList = adapter.getLocationMap().get(status.getPackageName()); - if (locationList != null && locationList.size() != 0) { - GameEntity gameEntity; - for (int location : locationList) { - gameEntity = adapter.getGameEntityByLocation(location); - if (gameEntity != null && gameEntity.getEntryMap() != null) { - gameEntity.getEntryMap().remove(status.getPlatform()); - } - adapter.notifyItemChanged(location); - } - } - } - } - - // 打开下载按钮事件 - public void onEventMainThread(EBReuse reuse) { - if ("Refresh".equals(reuse.getType()) && adapter != null) { - adapter.notifyItemRangeChanged(0, adapter.getItemCount()); - } - } - - //安装、卸载事件 - public void onEventMainThread(EBPackage busFour) { - ArrayList locationList = adapter.getLocationMap().get(busFour.getPackageName()); - if (locationList != null) { - GameEntity gameEntity; - for (int location : locationList) { - gameEntity = adapter.getGameEntityByLocation(location); - if (gameEntity != null) { - if ("安装".equals(busFour.getType())) { - for (ApkEntity apkEntity : gameEntity.getApk()) { - if (apkEntity.getPackageName().equals(busFour.getPackageName())) { - if (gameEntity.getEntryMap() != null) { - gameEntity.getEntryMap().remove(apkEntity.getPlatform()); - } - adapter.notifyItemChanged(location); - break; - } - } - } else if ("卸载".equals(busFour.getType())) { - adapter.notifyItemChanged(location); - } - } - } - } - } - - //连接上网络事件 - public void onEventMainThread(EBNetworkState busNetworkState) { - if (busNetworkState.isNetworkConnected()) { - if (reuse_no_connection.getVisibility() == View.VISIBLE) { - fm_game_swipe_refresh.setRefreshing(true); - fm_game_rv_list.setVisibility(View.VISIBLE); - fm_game_pb_loading.setVisibility(View.GONE); - reuse_no_connection.setVisibility(View.GONE); - handler.postDelayed(runnable, 1000); - } - } - } - - //Fragment界面切换事件 - public void onEventMainThread(EBUISwitch busNine) { - if ("GameFragment".equals(busNine.getFrom())) { - if (busNine.getPosition() == 1) { - if (fm_game_pb_loading.getVisibility() == View.VISIBLE) { - adapter.initSubjectList(); - } - } - } - } - - - - @Override - public void onResume() { - if (isEverpause) { - for (SubjectEntity subjectEntity : adapter.getSubectList()) { - for (GameEntity entity :subjectEntity.getData()) { - entity.setEntryMap(DownloadManager.getInstance(getActivity()).getEntryMap(entity.getName())); - } - } - adapter.notifyDataSetChanged(); - } - super.onResume(); - DownloadManager.getInstance(getActivity()).addObserver(dataWatcher); - } - - @Override - public void onPause() { - super.onPause(); - DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher); - } - - Runnable runnable = new Runnable() { - @Override - public void run() { - adapter = new Game2FragmentAdapter(Game2Fragment.this, true); - fm_game_rv_list.setAdapter(adapter); - } - }; - - @Override - public void onRefresh() { - handler.postDelayed(runnable, 1000); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java deleted file mode 100644 index e637c03fe8..0000000000 --- a/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java +++ /dev/null @@ -1,572 +0,0 @@ -package com.gh.gamecenter.game; - -import android.content.Context; -import android.content.Intent; -import android.support.v4.util.ArrayMap; -import android.support.v7.widget.RecyclerView; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import com.gh.common.constant.ItemViewType; -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.GameUtils; -import com.gh.common.util.GameViewUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.NewsUtils; -import com.gh.common.view.CardLinearLayout; -import com.gh.download.DownloadManager; -import com.gh.gamecenter.NewsDetailActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.SubjectActivity; -import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameHeadViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameImageViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.entity.SubjectEntity; -import com.gh.gamecenter.listener.OnCallBackListener; -import com.gh.gamecenter.manager.GameManager; -import com.gh.gamecenter.retrofit.Response; -import com.gh.gamecenter.retrofit.RetrofitManager; - -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import retrofit2.adapter.rxjava.HttpException; -import rx.android.schedulers.AndroidSchedulers; -import rx.functions.Func1; -import rx.schedulers.Schedulers; - -/** - * Created by khy on 2016/6/28. - * 游戏-推荐-数据适配器 - */ -public class Game2FragmentAdapter extends RecyclerView.Adapter { - - private Game2Fragment fragment; - private Context context; - private OnCallBackListener listener; - - private List subjectList; - private ArrayMap> locationMap; - - private int cardMargin; - - public Game2FragmentAdapter(Game2Fragment fragment, boolean isLoad) { - - this.fragment = fragment; - this.context = fragment.getActivity(); - this.listener = fragment; - - subjectList = new ArrayList<>(); - - locationMap = new ArrayMap<>(); - - cardMargin = (int) context.getResources().getDimension(R.dimen.cardview_margin); - - if (isLoad) { - initSubjectList(); - } - } - - public ArrayMap> getLocationMap() { - return locationMap; - } - - public void initSubjectList() { - RetrofitManager.getApi().getTuijian() - .map(new Func1, List>() { - @Override - public List call(List list) { - GameManager manager = new GameManager(context); - SubjectEntity subjectEntity; - GameEntity gameEntity; - for (int j = 0; j < list.size(); j++) { - subjectEntity = list.get(j); - if (subjectEntity.getData().size() == 1 - && !TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())){ - list.remove(j); - j--; - continue; - } - for (int i = 0; i < subjectEntity.getData().size(); i++) { - gameEntity = subjectEntity.getData().get(i); - if (gameEntity.getApk() != null && !gameEntity.getApk().isEmpty()) { - gameEntity.setEntryMap(DownloadManager.getInstance(context).getEntryMap(gameEntity.getName())); - manager.addOrUpdate(gameEntity.getApk(), gameEntity.getId(), gameEntity.getName()); - } else if (TextUtils.isEmpty(gameEntity.getId())) { - if (TextUtils.isEmpty(gameEntity.getType()) - || TextUtils.isEmpty(gameEntity.getLink()) - || TextUtils.isEmpty(gameEntity.getName()) - || TextUtils.isEmpty(gameEntity.getImage())) { - subjectEntity.getData().remove(i); - i--; - } - } - } - } - return list; - } - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response>() { - @Override - public void onResponse(List response) { - if (response.size() != 0) { - if (!fragment.isHidden() && !fragment.isEverpause()) { - subjectList = response; - notifyItemRangeInserted(0, getItemCount()); - } else { - subjectList = response; - notifyDataSetChanged(); - } - initLocationMap(); - } - - if (listener != null) { - listener.loadDone(); - } - } - - @Override - public void onFailure(HttpException e) { - if (listener != null) { - listener.loadError(); - } - } - }); - } - - private void initLocationMap() { - locationMap.clear(); - - if (!subjectList.isEmpty()) { - int count = getItemCount() - 1; - int offset; - ArrayList list; - GameEntity gameEntity; - for (int position = 0; position < count; position++) { - offset = 0; - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (position > offset && position <= subjectList.get(i).getData().size() + offset) { - gameEntity = subjectList.get(i).getData().get(position - offset - 1); - if (gameEntity.getApk() != null && !gameEntity.getApk().isEmpty()) { - for (ApkEntity apkEntity : gameEntity.getApk()) { - list = locationMap.get(apkEntity.getPackageName()); - if (list == null) { - list = new ArrayList<>(); - locationMap.put(apkEntity.getPackageName(), list); - } - list.add(position); - } - } - break; - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - } - } - - public GameEntity getGameEntityByLocation(int position) { - int offset = 0; - for (int i = 0; i < subjectList.size(); i++) { - if (position > offset && position <= subjectList.get(i).getData().size() + offset) { - return subjectList.get(i).getData().get(position - offset - 1); - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - return null; - } - - @Override - public int getItemCount() { - int subjectSize = 0; - if (!subjectList.isEmpty()) { - for (int i = 0; i < subjectList.size(); i++) { - SubjectEntity subjectEntity = subjectList.get(i); - subjectSize += subjectEntity.getData().size() + 1; - } - subjectSize += 1; - } - return subjectSize; - } - - @Override - public int getItemViewType(int position) { - if (!subjectList.isEmpty()) { - int offset = 0; - GameEntity gameEntity; - for (int i = 0; i < subjectList.size(); i++) { - if (position >= offset && position <= subjectList.get(i).getData().size() + offset) { - int index = position - offset - 1; - if (index < 0) { - index = 0; - } - gameEntity = subjectList.get(i).getData().get(index); - if (position == offset && !TextUtils.isEmpty(gameEntity.getImage())) { - return ItemViewType.GAME_IMAGE; - } else if (position == offset) { - return ItemViewType.COLUMN_HEADER; - } - if (position == offset + 1 && !TextUtils.isEmpty(subjectList.get(i).getData().get(0).getImage())) { - return ItemViewType.COLUMN_HEADER; - } - if (gameEntity.getTest() != null) { - return ItemViewType.GAME_TEST; - } - return ItemViewType.GAME_NORMAL; - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - return ItemViewType.LOADING; - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - if (viewType == ItemViewType.COLUMN_HEADER) { - View view = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.game_head_item, parent, false); - return new GameHeadViewHolder(view); - } else if (viewType == ItemViewType.GAME_IMAGE) { - View view = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.game_image_item, parent, false); - return new GameImageViewHolder(view); - } else if (viewType == ItemViewType.GAME_TEST) { - View view = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.game_test_item, parent, false); - return new GameTestViewHolder(view); - } else if (viewType == ItemViewType.GAME_NORMAL) { - View view = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.game_normal_item, parent, false); - return new GameNormalViewHolder(view); - } else if (viewType == ItemViewType.LOADING) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.refresh_footerview, parent, false); - return new FooterViewHolder(view); - } - return null; - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { - if (holder instanceof GameHeadViewHolder) { - initGameHeadViewHolder((GameHeadViewHolder) holder, position); - } else if (holder instanceof GameNormalViewHolder) { - initGameNormalViewHolder((GameNormalViewHolder) holder, position); - } else if (holder instanceof GameTestViewHolder) { - initGameTestViewHolder((GameTestViewHolder) holder, position); - } else if (holder instanceof GameImageViewHolder) { - initGameImageViewHolder((GameImageViewHolder) holder, position); - } else if (holder instanceof FooterViewHolder) { - initFooterViewHolder((FooterViewHolder) holder); - } - } - - private void initFooterViewHolder(FooterViewHolder holder) { - holder.lineLeft.setVisibility(View.VISIBLE); - holder.lineRight.setVisibility(View.VISIBLE); - holder.loading.setVisibility(View.GONE); - holder.hint.setText("到底了哦~"); - holder.itemView.setClickable(false); - } - - private void initGameHeadViewHolder(GameHeadViewHolder holder, int position) { - int offset = 0; - GameEntity gameEntity; - for (int i = 0; i < subjectList.size(); i++) { - if (position >= offset && position <= subjectList.get(i).getData().size() + offset) { - int index = position - offset; - if (index < 0){ - index = 0; - } - gameEntity = subjectList.get(i).getData().get(index); - if (position == offset && TextUtils.isEmpty(gameEntity.getImage()) - || position == offset + 1 && !TextUtils.isEmpty(subjectList.get(i).getData().get(0).getImage())) { - if (TextUtils.isEmpty(subjectList.get(i).getData().get(0).getImage()) - && i == 0) { - ((CardLinearLayout) holder.itemView).setmTop(cardMargin); - } else { - ((CardLinearLayout) holder.itemView).setmTop(0); - } - holder.thumb.setVisibility(View.GONE); - holder.title.setText(subjectList.get(i).getName()); - - if (subjectList.get(i).getData().size()>= Integer.parseInt(subjectList.get(i).getMore())){ - holder.link.setVisibility(View.GONE); - }else { - holder.link.setVisibility(View.VISIBLE); - } - final int ii = i; - holder.link.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - SubjectEntity subjectEntity = subjectList.get(ii); - Intent intent = new Intent(context, SubjectActivity.class); - intent.putExtra("id", subjectEntity.getId()); - intent.putExtra("name", subjectEntity.getName()); - intent.putExtra("order",subjectEntity.isOrder()); - intent.putExtra("entrance", "(游戏-推荐:" + subjectEntity.getName() + "-全部)"); - context.startActivity(intent); - } - }); - break; - } - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - - private void initGameNormalViewHolder(GameNormalViewHolder holder, int position) { - int offset = 0; - GameEntity gameEntity; - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (position > offset && position <= subjectList.get(i).getData().size() + offset) { - int index = position - offset - 1; - if (index<0){ - index = 0; - } - gameEntity = subjectList.get(i).getData().get(index); - if (TextUtils.isEmpty(gameEntity.getImage()) && gameEntity.getTest() == null) { - int order = position - offset - 1; - if (subjectList.get(i).getData().get(0).getImage() != null) { - order--; - } - initGameNormal(holder, gameEntity, order, subjectList.get(i), i + 1 == size); - break; - } - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - - private void initGameNormal(GameNormalViewHolder holder, GameEntity entity, - final int i, final SubjectEntity subjectEntity, boolean isBottom) { - // 最后一个 - ((CardLinearLayout) holder.itemView).setBottom(isBottom); - if (TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())) { - if (i + 1 == subjectEntity.getData().size()) { - ((CardLinearLayout) holder.itemView).setmBottom(cardMargin); - } else { - ((CardLinearLayout) holder.itemView).setmBottom(0); - } - } else { - if (i + 2 == subjectEntity.getData().size()) { - ((CardLinearLayout) holder.itemView).setmBottom(cardMargin); - } else { - ((CardLinearLayout) holder.itemView).setmBottom(0); - } - } - if (subjectEntity.isOrder()) { - holder.home1_game_order.setVisibility(View.VISIBLE); - holder.home1_game_order.setText(String.valueOf(i + 1)); - } else { - holder.home1_game_order.setVisibility(View.GONE); - } - holder.gameThumb.setImageURI(entity.getIcon()); - holder.gameNameAndSize.setText(entity.getName()); - if (entity.getApk() == null || entity.getApk().isEmpty()) { - holder.gameDes.setText(entity.getBrief()); - } else { - holder.gameDes.setText(String.format("%s %s", entity.getApk().get(0).getSize(), entity.getBrief())); - } - GameViewUtils.setLabelList(context, holder.labelList, entity.getTag()); - - final GameEntity gameEntity = entity; - - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - Map kv = new HashMap<>(); - kv.put("名字", gameEntity.getName()); - kv.put("位置", String.valueOf(i + 1)); - DataUtils.onEvent(context, "点击", "游戏-推荐-" + subjectEntity.getName(), kv); - - DataCollectionUtils.uploadClick(context, - subjectEntity.getName() + "-列表", "游戏-推荐", gameEntity.getName()); - - GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-推荐:" + subjectEntity.getName() + "-列表)"); - } - }); - DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, entity, i, - Game2FragmentAdapter.this, "(游戏-推荐:" + subjectEntity.getName() + "-列表)", - "游戏-推荐-" + subjectEntity.getName() + ":" + entity.getName()); - - DownloadItemUtils.updateItem(context, holder.gameDes, - holder.game_progressbar, holder.game_ll_info, holder.download_speed, - holder.download_percentage, holder.downloadBtn, entity); - } - - private void initGameTestViewHolder(GameTestViewHolder holder, int position) { - int offset = 0; - GameEntity gameEntity; - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (position >= offset && position <= subjectList.get(i).getData().size() + offset) { - int index = position - offset - 1; - if (index < 0){ - index = 0; - } - gameEntity = subjectList.get(i).getData().get(index); - if (gameEntity.getTest() != null) { - int order = position - offset - 1; - if (subjectList.get(i).getData().get(0).getImage() != null) { - order--; - } - initGameTest(holder, gameEntity, order, subjectList.get(i), i + 1 == size); - break; - } - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - - private void initGameTest(GameTestViewHolder holder, final GameEntity gameEntity, - final int i, final SubjectEntity subjectEntity, boolean isBottom) { - - // 最后一个 - ((CardLinearLayout) holder.itemView).setBottom(isBottom); - if (TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())) { - if (i + 1 == subjectEntity.getData().size()) { - ((CardLinearLayout) holder.itemView).setmBottom(cardMargin); - } else { - ((CardLinearLayout) holder.itemView).setmBottom(0); - } - } else { - if (i + 2 == subjectEntity.getData().size()) { - ((CardLinearLayout) holder.itemView).setmBottom(cardMargin); - } else { - ((CardLinearLayout) holder.itemView).setmBottom(0); - } - } - - if (subjectEntity.isOrder()) { - holder.home2_game_order.setVisibility(View.VISIBLE); - holder.home2_game_order.setText(String.valueOf(i + 1)); - } else { - holder.home2_game_order.setVisibility(View.GONE); - } - holder.gameThumb.setImageURI(gameEntity.getIcon()); - holder.gameNameAndSize.setText(gameEntity.getName()); - if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) { - holder.gameDes.setText(gameEntity.getBrief()); - } else { - holder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief())); - } - holder.gameTestType.setText(gameEntity.getTest().getType()); - if (gameEntity.getTest().getStart() == 0) { - holder.gameTestTime.setVisibility(View.GONE); - } else { - holder.gameTestTime.setText(GameViewUtils.getGameTestDate(gameEntity.getTest().getStart())); - } - - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Map kv = new HashMap<>(); - kv.put("名字", gameEntity.getName()); - kv.put("位置", String.valueOf(i + 1)); - DataUtils.onEvent(context, "点击", "游戏-推荐-" + subjectEntity.getName(), kv); - - DataCollectionUtils.uploadClick(context, - subjectEntity.getName() + "-列表", "游戏-推荐", gameEntity.getName()); - - GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-推荐:" + subjectEntity.getName() + "-列表)"); - } - }); - - if (gameEntity.getTest().getEnd() != 0) { - long endTime = Long.valueOf(gameEntity.getTest().getEnd() + "000"); - long todayTime = new Date().getTime(); - if (todayTime > endTime) { - // 测试时间已过 - gameEntity.setApk(null); - } - } - - DownloadItemUtils.setOnClickListener(context, - holder.downloadBtn, gameEntity, i, - Game2FragmentAdapter.this, "(游戏-推荐:" + subjectEntity.getName() + "-列表)", - "游戏-推荐-" + subjectEntity.getName() + ":" + gameEntity.getName()); - - DownloadItemUtils.updateItem(context, holder.gameDes, - holder.game_progressbar, holder.game_ll_info, holder.download_speed, - holder.download_percentage, holder.downloadBtn, gameEntity); - } - - private void initGameImageViewHolder(GameImageViewHolder holder, int position) { - int offset = 0; - GameEntity gameEntity; - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (position >= offset && position <= subjectList.get(i).getData().size() + offset) { - int index = position - offset - 1; - if (index < 0){ - index = 0; - } - gameEntity = subjectList.get(i).getData().get(index); - if (position == offset && !TextUtils.isEmpty(gameEntity.getImage())) { - if (i == 0) { - ((CardLinearLayout) holder.itemView).setmTop(cardMargin); - } else { - ((CardLinearLayout) holder.itemView).setmTop(0); - } - final GameEntity entity = gameEntity; - final String name = subjectList.get(i).getName(); - ImageUtils.getInstance().display(holder.image, entity.getImage(), - context.getResources().getDisplayMetrics().widthPixels - DisplayUtils.dip2px(context, 16)); - holder.image.setImageURI(entity.getImage()); - holder.image.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - Map kv = new HashMap<>(); - kv.put("名字", entity.getName()); - kv.put("位置", "大图"); - DataUtils.onEvent(context, "点击", "游戏-推荐-" + name, kv); - - DataCollectionUtils.uploadClick(context, name + "-大图", "游戏-推荐"); - - if ("game".equals(entity.getType())) { - GameUtils.startGameDetailActivity(context, entity.getLink(), "(游戏-推荐:" + name + "-大图)"); - } else if ("news".equals(entity.getType())) { - // 统计阅读量 - NewsUtils.statNewsViews(entity.getLink()); - - Intent intent = new Intent(context, NewsDetailActivity.class); - intent.putExtra("newsId", entity.getLink()); - intent.putExtra("entrance", "(游戏-推荐:" + name + "-大图)"); - context.startActivity(intent); - } else if ("column".equals(entity.getType())) { - Intent intent = new Intent(context, SubjectActivity.class); - intent.putExtra("id", entity.getLink()); - intent.putExtra("name", entity.getName()); - intent.putExtra("entrance", "(游戏-推荐:" + name + "-大图)"); - context.startActivity(intent); - } - - } - }); - break; - } - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - - public List getSubectList() { - return subjectList; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/game/Game3Fragment.java b/app/src/main/java/com/gh/gamecenter/game/Game3Fragment.java deleted file mode 100644 index 209276000b..0000000000 --- a/app/src/main/java/com/gh/gamecenter/game/Game3Fragment.java +++ /dev/null @@ -1,242 +0,0 @@ -package com.gh.gamecenter.game; - -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.widget.SwipeRefreshLayout; -import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.LinearLayout; - -import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; -import com.gh.common.util.DownloadItemUtils; -import com.gh.download.DataWatcher; -import com.gh.download.DownloadEntity; -import com.gh.download.DownloadManager; -import com.gh.gamecenter.R; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.eventbus.EBDownloadStatus; -import com.gh.gamecenter.eventbus.EBNetworkState; -import com.gh.gamecenter.eventbus.EBPackage; -import com.gh.gamecenter.eventbus.EBReuse; -import com.gh.gamecenter.eventbus.EBUISwitch; - -import java.util.ArrayList; - -import butterknife.BindView; - -/** - * - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-8 - * @update 2015-8-11 - * @des 主页插件fragment - */ -public class Game3Fragment extends BaseFragment implements OnRefreshListener { - - @BindView(R.id.fm_game_swipe_refresh) SwipeRefreshLayout fm_game_swipe_refresh; - @BindView(R.id.fm_game_rv_list) RecyclerView fm_game_rv_list; - private Game3FragmentAdapter adapter; - private LinearLayoutManager layoutManager; - @BindView(R.id.reuse_no_connection) LinearLayout reuse_no_connection; - @BindView(R.id.fm_game_pb_loading) ProgressBarCircularIndeterminate fm_game_pb_loading; - - // 黄壮华 添加观察者 修改2015/8/15 - private DataWatcher dataWatcher = new DataWatcher() { - @Override - public void onDataChanged(DownloadEntity downloadEntity) { - if (!fm_game_swipe_refresh.isRefreshing()) { - ArrayList locationList = adapter.getLocationMap().get(downloadEntity.getPackageName()); - if (locationList != null) { - GameEntity gameEntity; - for (int location : locationList) { - gameEntity = adapter.getGameList().get(location); - if (gameEntity != null) { - DownloadItemUtils.processDate(getActivity(), gameEntity, - downloadEntity, adapter, location); - } - } - } - } - } - }; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - init(R.layout.fragment_game); - - reuse_no_connection.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - fm_game_swipe_refresh.setRefreshing(true); - fm_game_rv_list.setVisibility(View.VISIBLE); - fm_game_pb_loading.setVisibility(View.VISIBLE); - reuse_no_connection.setVisibility(View.GONE); - handler.postDelayed(runnable, 1000); - } - }); - - fm_game_swipe_refresh.setColorSchemeResources(R.color.theme); - fm_game_swipe_refresh.setOnRefreshListener(this); - - fm_game_rv_list.setHasFixedSize(true); - layoutManager = new LinearLayoutManager(getActivity()); - fm_game_rv_list.setLayoutManager(layoutManager); - // 黄壮华 传递引用 修改2015/8/15 - adapter = new Game3FragmentAdapter(Game3Fragment.this, false); - fm_game_rv_list.setAdapter(adapter); - fm_game_rv_list.setOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrollStateChanged(RecyclerView recyclerView, int newState) { - super.onScrollStateChanged(recyclerView, newState); - if (newState == RecyclerView.SCROLL_STATE_IDLE - && layoutManager.findLastVisibleItemPosition() == adapter - .getGameList().size()) { - if (!adapter.isRemove() && !adapter.isLoading()) { - adapter.addList(adapter.getGameList().size()); - } - } - } - - }); - } - - @Override - public void loadDone() { - if (fm_game_swipe_refresh != null && fm_game_swipe_refresh.isRefreshing()) { - fm_game_swipe_refresh.setRefreshing(false); - } - if (fm_game_pb_loading != null && fm_game_pb_loading.getVisibility() == View.VISIBLE) { - fm_game_pb_loading.setVisibility(View.GONE); - } - } - - @Override - public void loadError() { - if (fm_game_swipe_refresh != null && fm_game_swipe_refresh.isRefreshing()) { - fm_game_swipe_refresh.setRefreshing(false); - } - if (fm_game_pb_loading != null && fm_game_pb_loading.getVisibility() == View.VISIBLE) { - fm_game_pb_loading.setVisibility(View.GONE); - } - fm_game_rv_list.setVisibility(View.GONE); - reuse_no_connection.setVisibility(View.VISIBLE); - } - - //下载被删除事件 - public void onEventMainThread(EBDownloadStatus status) { - if ("delete".equals(status.getStatus())) { - DownloadManager.getInstance(getActivity()).removePlatform(status.getName(), status.getPlatform()); - - ArrayList locationList = adapter.getLocationMap().get(status.getPackageName()); - if (locationList != null) { - GameEntity gameEntity; - for (int location : locationList) { - gameEntity = adapter.getGameList().get(location); - if (gameEntity != null && gameEntity.getEntryMap() != null) { - gameEntity.getEntryMap().remove(status.getPlatform()); - } - adapter.notifyItemChanged(location); - } - } - } - } - - // 打开下载按钮事件 - public void onEventMainThread(EBReuse reuse) { - if ("Refresh".equals(reuse.getType()) && adapter != null) { - adapter.notifyItemRangeChanged(0, adapter.getItemCount()); - } - } - - //安装、卸载事件 - public void onEventMainThread(EBPackage busFour) { - ArrayList locationList = adapter.getLocationMap().get(busFour.getPackageName()); - if (locationList != null) { - GameEntity gameEntity; - for (int location : locationList) { - gameEntity = adapter.getGameList().get(location); - if (gameEntity != null) { - if ("安装".equals(busFour.getType())) { - for (ApkEntity apkEntity : gameEntity.getApk()) { - if (apkEntity.getPackageName().equals(busFour.getPackageName())) { - if (gameEntity.getEntryMap() != null) { - gameEntity.getEntryMap().remove(apkEntity.getPlatform()); - } - adapter.notifyItemChanged(location); - break; - } - } - } else if ("卸载".equals(busFour.getType())) { - adapter.notifyItemChanged(location); - } - } - } - } - } - - //连接上网络事件 - public void onEventMainThread(EBNetworkState busNetworkState) { - if (busNetworkState.isNetworkConnected()) { - if (reuse_no_connection.getVisibility() == View.VISIBLE) { - fm_game_swipe_refresh.setRefreshing(true); - fm_game_rv_list.setVisibility(View.VISIBLE); - fm_game_pb_loading.setVisibility(View.GONE); - reuse_no_connection.setVisibility(View.GONE); - handler.postDelayed(runnable, 1000); - } else if (adapter.isNetworkError()) { - adapter.setNetworkError(false); - adapter.notifyItemChanged(adapter.getItemCount() - 1); - adapter.addList(adapter.getGameList().size()); - } - } - } - - public void onEventMainThread(EBUISwitch busNine) { - if ("GameFragment".equals(busNine.getFrom())) { - if (busNine.getPosition() == 2) { - if (fm_game_pb_loading.getVisibility() == View.VISIBLE) { - adapter.addList(0); - } - } - } - } - - @Override - public void onResume() { - if (isEverpause) { - for (GameEntity entity : adapter.getGameList()) { - entity.setEntryMap(DownloadManager.getInstance(getActivity()).getEntryMap(entity.getName())); - } - adapter.notifyDataSetChanged(); - } - super.onResume(); - DownloadManager.getInstance(getActivity()).addObserver(dataWatcher); - } - - @Override - public void onPause() { - super.onPause(); - DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher); - } - - Runnable runnable = new Runnable() { - @Override - public void run() { - adapter = new Game3FragmentAdapter(Game3Fragment.this, true); - fm_game_rv_list.setAdapter(adapter); - } - }; - - @Override - public void onRefresh() { - handler.postDelayed(runnable, 1000); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java deleted file mode 100644 index 5426e9ab63..0000000000 --- a/app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java +++ /dev/null @@ -1,329 +0,0 @@ -package com.gh.gamecenter.game; - -import android.content.Context; -import android.support.v4.util.ArrayMap; -import android.support.v7.widget.RecyclerView; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.Toast; - -import com.gh.common.constant.ItemViewType; -import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DownloadItemUtils; -import com.gh.common.util.GameUtils; -import com.gh.common.util.GameViewUtils; -import com.gh.common.view.CardLinearLayout; -import com.gh.download.DownloadManager; -import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.listener.OnCallBackListener; -import com.gh.gamecenter.manager.GameManager; -import com.gh.gamecenter.retrofit.Response; -import com.gh.gamecenter.retrofit.RetrofitManager; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import retrofit2.adapter.rxjava.HttpException; -import rx.android.schedulers.AndroidSchedulers; -import rx.functions.Func1; -import rx.schedulers.Schedulers; - -/** - * - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-8 - * @update 2015-8-11 - * @des 首页插件fragment适配器 - */ - -public class Game3FragmentAdapter extends RecyclerView.Adapter { - - private Game3Fragment fragment; - private Context context; - private OnCallBackListener listener; - - private boolean isRemove; - private boolean isLoading; - private boolean isNetworkError; - - private List gameList; - - private ArrayMap> locationMap; - - private int cardMargin; - - // 黄壮华 获取引用 修改2015/8/15 - public Game3FragmentAdapter(Game3Fragment fment, boolean isLoad) { - - this.fragment = fment; - this.context = fment.getActivity(); - this.listener = fment; - - locationMap = new ArrayMap<>(); - - isRemove = false; - isLoading = false; - isNetworkError = false; - - gameList = new ArrayList<>(); - - cardMargin = (int) context.getResources().getDimension(R.dimen.cardview_margin); - - if (isLoad) { - addList(0); - } - } - - public ArrayMap> getLocationMap() { - return locationMap; - } - - public void addList(final int offset) { - if (isLoading) { - return; - } - isLoading = true; - RetrofitManager.getApi().getDanjiyouxi(20, offset) - .map(new Func1, List>() { - @Override - public List call(List list) { - return removeDuplicateData(gameList, list); - } - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response>() { - @Override - public void onResponse(List response) { - if (response.size() != 0) { - GameManager manager = new GameManager(context); - for (GameEntity entity : response) { - // 黄壮华 初始化游戏状态 修改2015/8/15 - entity.setEntryMap(DownloadManager.getInstance(context).getEntryMap(entity.getName())); - manager.addOrUpdate(entity.getApk(), entity.getId(), entity.getName()); - } - if (!fragment.isHidden() && !fragment.isEverpause()) { - gameList.addAll(response); - notifyItemRangeInserted(gameList.size() - response.size(), response.size()); - } else { - gameList.addAll(response); - notifyDataSetChanged(); - } - } else { - isRemove = true; - notifyItemChanged(getItemCount() - 1); - } - - if (listener != null) { - listener.loadDone(); - } - - // 黄壮华 获取游戏位置信息 修改2015/8/15 - GameEntity gameEntity; - ArrayList list; - for (int i = 0, size = gameList.size(); i < size; i++) { - gameEntity = gameList.get(i); - if (gameEntity.getApk() != null && gameEntity.getApk().size() != 0) { - for (ApkEntity apkEntity : gameEntity.getApk()) { - list = locationMap.get(apkEntity.getPackageName()); - if (list == null) { - list = new ArrayList<>(); - locationMap.put(apkEntity.getPackageName(), list); - } - list.add(i); - } - } - } - - isLoading = false; - } - - @Override - public void onFailure(HttpException e) { - isLoading = false; - - if (offset == 0) { - listener.loadError(); - } else { - Toast.makeText(context, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show(); - isNetworkError = true; - notifyItemChanged(getItemCount() - 1); - } - } - }); - } - - private List removeDuplicateData(List sourceList, List rawList) { - if (sourceList == null || sourceList.isEmpty() - || rawList == null || rawList.isEmpty()) { - return rawList; - } - String id; - for (int i = 0; i < rawList.size(); i++) { - id = rawList.get(i).getId(); - for (GameEntity gameEntity : sourceList) { - if (id.equals(gameEntity.getId())) { - rawList.remove(i); - i--; - break; - } - } - } - return rawList; - } - - @Override - public int getItemCount() { - if (gameList.size() == 0) { - return 0; - } - return gameList.size() + 1; - } - - @Override - public int getItemViewType(int position) { - if (position == gameList.size()) { - return ItemViewType.LOADING; - } else { - return ItemViewType.GAME_NORMAL; - } - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { - if (i == ItemViewType.LOADING) { - View view = LayoutInflater.from(viewGroup.getContext()).inflate( - R.layout.refresh_footerview, viewGroup, false); - return new FooterViewHolder(view); - } else if (i == ItemViewType.GAME_NORMAL) { - View view = LayoutInflater.from(viewGroup.getContext()).inflate( - R.layout.game_normal_item, viewGroup, false); - return new GameNormalViewHolder(view); - } - return null; - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { - if (viewHolder instanceof GameNormalViewHolder) { - initGameNormalViewHolder((GameNormalViewHolder) viewHolder, gameList.get(position), position); - } else if (viewHolder instanceof FooterViewHolder) { - initFooterViewHolder((FooterViewHolder) viewHolder); - } - } - - private void initGameNormalViewHolder(final GameNormalViewHolder holder, final GameEntity gameEntity, int position) { - - // 第一个 - if (position == 0) { - ((CardLinearLayout) holder.itemView).setmTop(cardMargin); - } else { - ((CardLinearLayout) holder.itemView).setmTop(0); - } - - // 最后一个 - if (position == gameList.size() - 1) { - ((CardLinearLayout) holder.itemView).setBottom(true); - } else { - ((CardLinearLayout) holder.itemView).setBottom(false); - } - -// ImageUtils.getInstance(context).display(gameEntity.getIcon(), holder.gameThumb); - holder.gameThumb.setImageURI(gameEntity.getIcon()); - holder.gameNameAndSize.setText(gameEntity.getName()); - if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) { - holder.gameDes.setText(gameEntity.getBrief()); - } else { - holder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief())); - } - - GameViewUtils.setLabelList(context, holder.labelList, gameEntity.getTag()); - - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Map kv = new HashMap<>(); - kv.put("名字", gameEntity.getName()); - kv.put("位置", String.valueOf(holder.getPosition() + 1)); - DataUtils.onEvent(context, "点击", "游戏-单机", kv); - - DataCollectionUtils.uploadClick(context, "列表", "游戏-单机", gameEntity.getName()); - - GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-单机)"); - } - }); - - DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, - gameEntity, position, this, "(游戏-单机)", - "游戏-单机:" + gameEntity.getName()); - - DownloadItemUtils.updateItem(context, holder.gameDes, - holder.game_progressbar, holder.game_ll_info, - holder.download_speed, holder.download_percentage, - holder.downloadBtn, gameEntity, false); - } - - private void initFooterViewHolder(FooterViewHolder holder) { - if (isNetworkError) { - holder.lineLeft.setVisibility(View.GONE); - holder.lineRight.setVisibility(View.GONE); - holder.loading.setVisibility(View.GONE); - holder.hint.setText("加载失败,点击重试"); - holder.itemView.setClickable(true); - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - isNetworkError = false; - notifyItemChanged(getItemCount() - 1); - addList(gameList.size()); - } - }); - } else if (isRemove) { - holder.lineLeft.setVisibility(View.VISIBLE); - holder.lineRight.setVisibility(View.VISIBLE); - holder.loading.setVisibility(View.GONE); - holder.hint.setText("到底了哦~"); - holder.itemView.setClickable(false); - } else { - holder.lineLeft.setVisibility(View.GONE); - holder.lineRight.setVisibility(View.GONE); - holder.loading.setVisibility(View.VISIBLE); - holder.hint.setText("加载中..."); - holder.itemView.setClickable(false); - } - } - - public List getGameList() { - return gameList; - } - - public boolean isRemove() { - return isRemove; - } - - public void setRemove(boolean isRemove) { - this.isRemove = isRemove; - } - - public boolean isLoading() { - return isLoading; - } - - public boolean isNetworkError() { - return isNetworkError; - } - - public void setNetworkError(boolean isNetworkError) { - this.isNetworkError = isNetworkError; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragment.java b/app/src/main/java/com/gh/gamecenter/game/GameFragment.java index 5a8c5514a8..e7602cfaa3 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragment.java +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragment.java @@ -64,7 +64,6 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR } } }; - private LinearLayoutManager layoutManager; @Override public void onCreate(@Nullable Bundle savedInstanceState) { @@ -93,8 +92,7 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR fm_game_swipe_refresh.setOnRefreshListener(this); fm_game_rv_list.setHasFixedSize(true); - layoutManager = new LinearLayoutManager(getActivity()); - fm_game_rv_list.setLayoutManager(layoutManager); + fm_game_rv_list.setLayoutManager(new LinearLayoutManager(getActivity())); adapter = new GameFragmentAdapter(GameFragment.this, fm_game_swipe_refresh); fm_game_rv_list.setAdapter(adapter); 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 81e70bd913..515dc21f99 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java @@ -52,7 +52,6 @@ import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; import com.gh.gamecenter.adapter.viewholder.GameViewPagerViewHolder; import com.gh.gamecenter.db.LibaoDao; -import com.gh.gamecenter.db.info.LibaoInfo; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.GameUpdateEntity; @@ -79,8 +78,9 @@ import rx.schedulers.Schedulers; /** * Created by khy on 2016/12/6. + * */ -public class GameFragmentAdapter extends RecyclerView.Adapter { +class GameFragmentAdapter extends RecyclerView.Adapter { private GameFragment fragment; private Context context; @@ -92,7 +92,6 @@ public class GameFragmentAdapter extends RecyclerView.Adapter pluginList; private List subjectList; private List subjectDigestList; - private List libaoInfos; // 包名对应游戏位置 private ArrayMap> locationMap; @@ -115,15 +114,13 @@ public class GameFragmentAdapter extends RecyclerView.Adapter 1 && location <= 1 + pluginList.size()) { return pluginList.get(location - 2); @@ -180,7 +177,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter kv = new HashMap<>(); kv.put("名字", gameEntity.getName()); kv.put("位置", String.valueOf(i + 1)); - DataUtils.onEvent(context, "点击", "游戏-插件-" + subjectEntity.getName(), kv); + DataUtils.onEvent(context, "点击", "游戏-专题-" + subjectEntity.getName(), kv); - DataCollectionUtils.uploadClick(context, - subjectEntity.getName() + "-列表", "游戏-插件", gameEntity.getName()); + DataCollectionUtils.uploadClick(context, subjectEntity.getName() + "-列表", "游戏-专题", gameEntity.getName()); - GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-插件:" + subjectEntity.getName() + "-列表)"); + GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-专题:" + subjectEntity.getName() + "-列表[" + (i + 1) + "])"); } }); @@ -841,8 +840,8 @@ public class GameFragmentAdapter extends RecyclerView.Adapter kv = new HashMap<>(); kv.put("名字", gameEntity.getName()); kv.put("位置", String.valueOf(i + 1)); - DataUtils.onEvent(context, "点击", "游戏-插件-" + subjectEntity.getName(), kv); + DataUtils.onEvent(context, "点击", "游戏-专题-" + subjectEntity.getName(), kv); - DataCollectionUtils.uploadClick(context, - subjectEntity.getName() + "-列表", "游戏-插件", gameEntity.getName()); + DataCollectionUtils.uploadClick(context, subjectEntity.getName() + "-列表", "游戏-专题", gameEntity.getName()); if (gameEntity.isPluggable()) { - GameUtils.startGameDetailActivity(context, gameEntity.getId(), "(游戏-插件:" + subjectEntity.getName() + "-列表)"); + GameUtils.startGameDetailActivity(context, gameEntity.getId(), "(游戏-专题:插件化-列表[" + (i + 1) + "])"); } else { - GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-插件:" + subjectEntity.getName() + "-列表)"); + GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-专题:" + subjectEntity.getName() + "-列表[" + (i + 1) + "])"); } } }); DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, gameEntity, i, - GameFragmentAdapter.this, "(游戏-插件:" + subjectEntity.getName() + "-列表)", - "游戏-插件-" + subjectEntity.getName() + ":" + gameEntity.getName()); + GameFragmentAdapter.this, "(游戏-专题:" + subjectEntity.getName() + "-列表[" + (i + 1) + "])", + "游戏-专题-" + subjectEntity.getName() + ":" + gameEntity.getName()); DownloadItemUtils.updateItem(context, holder.gameDes, holder.game_progressbar, holder.game_ll_info, holder.download_speed, holder.download_percentage, holder.downloadBtn, gameEntity, !gameEntity.isPluggable()); } - public void initGameImageViewHolder(GameImageViewHolder holder, int position) { + private void initGameImageViewHolder(GameImageViewHolder holder, int position) { int offset = 1; if (!pluginList.isEmpty()) { offset += 1 + pluginList.size(); @@ -996,25 +994,25 @@ public class GameFragmentAdapter extends RecyclerView.Adapter kv = new HashMap<>(); kv.put("名字", entity.getName()); kv.put("位置", "大图"); - DataUtils.onEvent(context, "点击", "游戏-插件-" + name, kv); + DataUtils.onEvent(context, "点击", "游戏-专题-" + name, kv); - DataCollectionUtils.uploadClick(context, name + "-大图", "游戏-插件"); + DataCollectionUtils.uploadClick(context, name + "-大图", "游戏-专题"); if ("game".equals(entity.getType())) { - GameUtils.startGameDetailActivity(context, entity.getLink(), "(游戏-插件:" + name + "-大图)"); + GameUtils.startGameDetailActivity(context, entity.getLink(), "(游戏-专题:" + name + "-大图)"); } else if ("news".equals(entity.getType())) { // 统计阅读量 NewsUtils.statNewsViews(entity.getLink()); Intent intent = new Intent(context, NewsDetailActivity.class); intent.putExtra("newsId", entity.getLink()); - intent.putExtra("entrance", "(游戏-插件:" + name + "-大图)"); + intent.putExtra("entrance", "(游戏-专题:" + name + "-大图)"); context.startActivity(intent); } else if ("column".equals(entity.getType())) { Intent intent = new Intent(context, SubjectActivity.class); intent.putExtra("id", entity.getLink()); intent.putExtra("name", entity.getName()); - intent.putExtra("entrance", "(游戏-插件:" + name + "-大图)"); + intent.putExtra("entrance", "(游戏-专题:" + name + "-大图)"); context.startActivity(intent); } } @@ -1026,7 +1024,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter topHeightOld) { @@ -1230,27 +1228,27 @@ public class GameFragmentAdapter extends RecyclerView.Adapter getPluginList() { + List getPluginList() { return pluginList; } - public List getSubjectList() { + List getSubjectList() { return subjectList; } @@ -1262,7 +1260,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter list = new ArrayList<>(); - list.add(new Game1Fragment()); - list.add(new Game2Fragment()); - list.add(new Game3Fragment()); - page_vp_content.setAdapter(new FragmentAdapter(getChildFragmentManager(), list)); - page_vp_content.addOnPageChangeListener(this); - - currentItem = 0; - if (savedInstanceState != null) { - currentItem = savedInstanceState.getInt("currentItem"); - } - initTextView(); - page_vp_content.setCurrentItem(currentItem); - - DisplayMetrics outMetrics = new DisplayMetrics(); - getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); - width = outMetrics.widthPixels / 3; - lparams = new LinearLayout.LayoutParams(width / 2, - DisplayUtils.dip2px(getActivity(), 2)); - lparams.leftMargin = (int) (width * (currentItem + 0.25f)); - slidebar_line.setLayoutParams(lparams); - - handler.postDelayed(new Runnable() { - @Override - public void run() { - EventBus.getDefault().post(new EBUISwitch("GameFragment", page_vp_content.getCurrentItem())); - } - }, 100); - } - - private void initTextView() { - tv_chajian = new TextView(getActivity()); - tv_chajian.setText("插件"); - if (currentItem == 0) { - tv_chajian.setTextColor(getResources().getColor(R.color.theme)); - } else { - tv_chajian.setTextColor(getResources().getColor(R.color.title)); - } - tv_chajian.setGravity(Gravity.CENTER); - tv_chajian.setOnClickListener(this); - LinearLayout.LayoutParams lparams1 = new LinearLayout.LayoutParams( - 0, DisplayUtils.dip2px(getActivity(), 35)); - lparams1.weight = 1; - slidebar_ll_top.addView(tv_chajian, lparams1); - - tv_tuijian = new TextView(getActivity()); - tv_tuijian.setText("推荐"); - if (currentItem == 1) { - tv_tuijian.setTextColor(getResources().getColor(R.color.theme)); - } else { - tv_tuijian.setTextColor(getResources().getColor(R.color.title)); - } - tv_tuijian.setGravity(Gravity.CENTER); - tv_tuijian.setOnClickListener(this); - LinearLayout.LayoutParams lparams2 = new LinearLayout.LayoutParams( - 0, DisplayUtils.dip2px(getActivity(), 35)); - lparams2.weight = 1; - slidebar_ll_top.addView(tv_tuijian, lparams2); - - tv_danji = new TextView(getActivity()); - tv_danji.setText("单机"); - if (currentItem == 2) { - tv_danji.setTextColor(getResources().getColor(R.color.theme)); - } else { - tv_danji.setTextColor(getResources().getColor(R.color.title)); - } - tv_danji.setGravity(Gravity.CENTER); - tv_danji.setOnClickListener(this); - LinearLayout.LayoutParams lparams3 = new LinearLayout.LayoutParams( - 0, DisplayUtils.dip2px(getActivity(), 35)); - lparams3.weight = 1; - slidebar_ll_top.addView(tv_danji, lparams3); - } - - @Override - public void onClick(View v) { - super.onClick(v); - if (v == tv_chajian) { - page_vp_content.setCurrentItem(0); - } else if (v == tv_tuijian) { - page_vp_content.setCurrentItem(1); - } else if (v == tv_danji) { - page_vp_content.setCurrentItem(2); - } - } - - @Override - public void onPageSelected(int position) { - if (position == 0) { - tv_chajian.setTextColor(getResources().getColor(R.color.theme)); - tv_tuijian.setTextColor(getResources().getColor(R.color.title)); - tv_danji.setTextColor(getResources().getColor(R.color.title)); - } else if (position == 1) { - tv_chajian.setTextColor(getResources().getColor(R.color.title)); - tv_tuijian.setTextColor(getResources().getColor(R.color.theme)); - tv_danji.setTextColor(getResources().getColor(R.color.title)); - } else if (position == 2) { - tv_chajian.setTextColor(getResources().getColor(R.color.title)); - tv_tuijian.setTextColor(getResources().getColor(R.color.title)); - tv_danji.setTextColor(getResources().getColor(R.color.theme)); - } - } - - @Override - public void onPageScrolled(int position, float positionOffset, - int positionOffsetPixels) { - if (positionOffset != 0) { - lparams.leftMargin = (int) (width * (position + positionOffset + 0.25f)); - slidebar_line.setLayoutParams(lparams); - } else { - if (currentItem != page_vp_content.getCurrentItem()) { - currentItem = page_vp_content.getCurrentItem(); - EventBus.getDefault().post(new EBUISwitch("GameFragment", currentItem)); - } - } - } - - @Override - public void onPageScrollStateChanged(int state) { - - } - - public void onEventMainThread(EBUISwitch busNine) { - if ("MainActivity".equals(busNine.getFrom())) { - if (busNine.getPosition() == 0) { - EventBus.getDefault().post(new EBUISwitch("GameFragment", page_vp_content.getCurrentItem())); - } - } - } - - public void onEventMainThread(EBSkip skip) { - if ("MainActivity".equals(skip.getType())) { - page_vp_content.setCurrentItem(skip.getCurrentItem()); - } - } - - @Override - public void onHiddenChanged(boolean hidden) { - super.onHiddenChanged(hidden); - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - List list = getChildFragmentManager().getFragments(); - if (list != null) { - if (hidden) { - for (Fragment fragment : getChildFragmentManager().getFragments()) { - transaction.hide(fragment); - } - } else { - for (Fragment fragment : getChildFragmentManager().getFragments()) { - transaction.show(fragment); - } - } - } - transaction.commit(); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailAdapter.java index a8870ebb32..c84aa9e2ec 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailAdapter.java @@ -141,7 +141,7 @@ public class GameDetailAdapter extends RecyclerView.Adapter { }); } - public void addLibaoList(){ + private void addLibaoList(){ RetrofitManager.getLibao().getLibaoByGame(gameEntity.getId(),0 , 128) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -388,7 +388,8 @@ public class GameDetailAdapter extends RecyclerView.Adapter { private void initLibaoViewHolder(GameDetaiLibaoViewHolder holder) { holder.libaoRv.setLayoutManager(new LinearLayoutManager(context , LinearLayoutManager.HORIZONTAL, false)); - holder.libaoRv.setAdapter(new GameLibaoGalleryAdapter(context, libaoList)); + holder.libaoRv.setAdapter(new GameLibaoGalleryAdapter(context, libaoList, + entrance + "+(游戏详情[" + gameEntity.getName() + "]:游戏礼包)")); } private void initSkinViewHolder(GameDetailSkinViewHolder holder) { @@ -475,7 +476,9 @@ public class GameDetailAdapter extends RecyclerView.Adapter { viewHolder.gamedetail_item_intro_gallery.setHasFixedSize(true); viewHolder.gamedetail_item_intro_gallery.setLayoutManager( new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)); - viewHolder.gamedetail_item_intro_gallery.setAdapter(new GameGalleryAdapter(context, gameDetailEntity.getGallery())); + viewHolder.gamedetail_item_intro_gallery.setAdapter( + new GameGalleryAdapter(context, gameDetailEntity.getGallery(), + entrance + "+(游戏详情[" + gameEntity.getName() + "]:游戏介绍)")); viewHolder.gamedetail_item_intro_gallery.addItemDecoration( new HorizontalItemDecoration(context, 1, gameDetailEntity.getGallery().size())); } @@ -508,7 +511,7 @@ public class GameDetailAdapter extends RecyclerView.Adapter { intent.putExtra("articleTypes", gameDetailEntity.getArticleTypes()); intent.putExtra("gameName", gameEntity.getName()); intent.putExtra("gameId", gameEntity.getId()); - intent.putExtra("entrance", entrance + "+(游戏详情:资讯攻略)"); + intent.putExtra("entrance", entrance + "+(游戏详情[" + gameEntity.getName() + "]:资讯攻略-全部)"); context.startActivity(intent); } } @@ -547,7 +550,7 @@ public class GameDetailAdapter extends RecyclerView.Adapter { // 统计阅读量 NewsUtils.statNewsViews(newsEntity.getId()); - NewsUtils.startNewsDetailActivity(context, newsEntity, entrance + "+(游戏详情:资讯攻略)"); + NewsUtils.startNewsDetailActivity(context, newsEntity, entrance + "+(游戏详情[" + gameEntity.getName() + "]:资讯攻略-列表[" + (ii + 1) + "])"); } }); viewHolder.gamedetail_item_news_list.addView(view); @@ -633,7 +636,7 @@ public class GameDetailAdapter extends RecyclerView.Adapter { private class PluginAdapter extends RecyclerView.Adapter{ private ArrayList tags; - public PluginAdapter(ArrayList tags) { + PluginAdapter(ArrayList tags) { this.tags = tags; } @@ -685,7 +688,7 @@ public class GameDetailAdapter extends RecyclerView.Adapter { return tags.size(); } - public class ViewHolder extends RecyclerView.ViewHolder{ + class ViewHolder extends RecyclerView.ViewHolder{ LinearLayout linearLayout; SimpleDraweeView pluginIcon; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryAdapter.java index b701113e11..48ddf98fb0 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryAdapter.java @@ -20,15 +20,18 @@ import java.util.Map; * Created by LGT on 2016/9/8. * */ -public class GameGalleryAdapter extends RecyclerView.Adapter { +class GameGalleryAdapter extends RecyclerView.Adapter { private Context context; private ArrayList gallery; - public GameGalleryAdapter(Context context, ArrayList list) { + private String entrance; + + GameGalleryAdapter(Context context, ArrayList list, String entrance) { this.context = context; - gallery = list; + this.gallery = list; + this.entrance = entrance; } @Override @@ -53,6 +56,7 @@ public class GameGalleryAdapter extends RecyclerView.Adapter { +class GameLibaoGalleryAdapter extends RecyclerView.Adapter { + private Context mContext; private List mLibaoList; + private String entrance; - public GameLibaoGalleryAdapter(Context context, List libaoList) { + GameLibaoGalleryAdapter(Context context, List libaoList, String entrance) { this.mLibaoList = libaoList; this.mContext = context; + this.entrance = entrance; } @Override @@ -33,7 +37,7 @@ public class GameLibaoGalleryAdapter extends RecyclerView.Adapter { +class Libao1FragmentAdapter extends RecyclerView.Adapter { private Context mContext; private Libao1Fragment libao1Fragment; @@ -53,6 +54,8 @@ public class Libao1FragmentAdapter extends RecyclerView.Adapter(); mLibaoDao = new LibaoDao(mContext); @@ -79,7 +84,7 @@ public class Libao1FragmentAdapter extends RecyclerView.Adapter { +class Libao2FragmentAdapter extends RecyclerView.Adapter { private Context mContext; private Libao2Fragment libao2Fragment; @@ -68,16 +69,20 @@ public class Libao2FragmentAdapter extends RecyclerView.Adapter(); gameIdList = new ArrayList<>(); @@ -370,6 +375,7 @@ public class Libao2FragmentAdapter extends RecyclerView.Adapter { +class Libao3FragmentAdapter extends RecyclerView.Adapter { private Context mContext; @@ -44,16 +45,20 @@ public class Libao3FragmentAdapter extends RecyclerView.Adapter(); initData(); } - public void initData() { + void initData() { mLibaoList.clear(); mLibaoDao = new LibaoDao(mContext); mLibaoInfos = mLibaoDao.getAll(); @@ -148,6 +153,7 @@ public class Libao3FragmentAdapter extends RecyclerView.Adapter) concernEntity.getImg()); intent.putExtras(bundle); + intent.putExtra("entrance", "(资讯-关注)"); context.startActivity(intent); } else { Intent intent = new Intent(context, ShareCardActivity.class); @@ -689,6 +691,7 @@ public class News1FragmentAdapter extends RecyclerView.Adapter= adapter.getTodayPosition() - && position <= adapter.getTodaySize() + adapter.getTodayPosition()) { - label.setText("今天"); - label.setTextColor(0xFF00B7FA); - } else if (adapter.getBeforePosition() != -1 - && position >= adapter.getBeforePosition()) { - label.setText("昨天/以前"); - label.setTextColor(0xFF3A3A3A); - } - - if (position == adapter.getTodayPosition() - 1 - || position == adapter.getBeforePosition() - 1) { - int buttom = layoutManager.findViewByPosition(position).getBottom(); - if (buttom <= labelLayout.getHeight()) { - rparams.topMargin = buttom - labelLayout.getHeight(); - labelLayout.setLayoutParams(rparams); - } else { - rparams.topMargin = 0; - labelLayout.setLayoutParams(rparams); - } - } else { - rparams.topMargin = 0; - labelLayout.setLayoutParams(rparams); - } - } - - @Override - public void onScrollStateChanged(RecyclerView recyclerView, int newState) { - if (newState == RecyclerView.SCROLL_STATE_IDLE - && layoutManager.findLastVisibleItemPosition() + 1 == adapter.getItemCount()) { - if (!adapter.isOver() && !adapter.isLoading() && !adapter.isNetworkError()) { - adapter.addList(adapter.getNewsListSize()); - } - } - } - } - - @OnClick(R.id.reuse_no_connection) - public void reconnection() { // 重新连接 - refreshLayout.setRefreshing(true); - recyclerView.setVisibility(View.VISIBLE); - loadingLayout.setVisibility(View.VISIBLE); - noConnectionLayout.setVisibility(View.GONE); - handler.postDelayed(runnable, 1000); - } - - @Override - public void loadDone() { // 数据加载成功回调 - refreshLayout.setRefreshing(false); - loadingLayout.setVisibility(View.GONE); - } - - @Override - public void loadDone(Object obj) { // label显示回调 - if (adapter.getTodayPosition() != -1) { - label.setText("今天"); - label.setTextColor(0xFF00B7FA); - } else if (adapter.getBeforePosition() != -1) { - label.setText("昨天/以前"); - label.setTextColor(0xFF3A3A3A); - } - } - - @Override - public void loadError() { // 数据加载失败回调 - refreshLayout.setRefreshing(false); - loadingLayout.setVisibility(View.GONE); - recyclerView.setVisibility(View.GONE); - noConnectionLayout.setVisibility(View.VISIBLE); - } - - // 连接上网络事件 - public void onEventMainThread(EBNetworkState busNetworkState) { - if (busNetworkState.isNetworkConnected()) { - if (noConnectionLayout.getVisibility() == View.VISIBLE) { - reconnection(); - } else if (adapter.isNetworkError()) { - adapter.setNetworkError(false); - adapter.notifyItemChanged(adapter.getItemCount() - 1); - adapter.addList(adapter.getNewsListSize()); - } - } - } - - // Fragment界面切换事件 - public void onEventMainThread(EBUISwitch busNine) { - if ("NewsFragment".equals(busNine.getFrom())) { - if (busNine.getPosition() == 3) { - if (loadingLayout.getVisibility() == View.VISIBLE) { - adapter.addList(0); - } - } - } - } - - @Override - public void onRefresh() { // 刷新 - handler.postDelayed(runnable, 1000); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java deleted file mode 100644 index 1b7cf312d8..0000000000 --- a/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java +++ /dev/null @@ -1,442 +0,0 @@ -package com.gh.gamecenter.news; - -import android.content.Context; -import android.support.v7.widget.RecyclerView; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.Toast; - -import com.gh.common.constant.ItemViewType; -import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.NewsUtils; -import com.gh.common.view.CardLinearLayout; -import com.gh.common.view.CardRelativeLayout; -import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.NewsFooterViewHolder; -import com.gh.gamecenter.adapter.viewholder.NewsHeadViewHolder; -import com.gh.gamecenter.adapter.viewholder.NewsImageViewHolder; -import com.gh.gamecenter.adapter.viewholder.NewsTextViewHolder; -import com.gh.gamecenter.entity.NewsEntity; -import com.gh.gamecenter.listener.OnCallBackListener; -import com.gh.gamecenter.retrofit.Response; -import com.gh.gamecenter.retrofit.RetrofitManager; - -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; - -import retrofit2.adapter.rxjava.HttpException; -import rx.android.schedulers.AndroidSchedulers; -import rx.functions.Func1; -import rx.schedulers.Schedulers; - -/** - * - * @author 温冠超 - * 资讯-攻略-数据适配器 - */ -public class News4FragmentAdapter extends RecyclerView.Adapter { - - private News4Fragment fragment; - private Context context; - private OnCallBackListener listener; - - private List todayNewsList; - private List beforeNewsList; - - private int todayPosition; // 今天head的位置 - private int beforePosition; // 昨天/以前head的位置 - private int itemCount; - - private int cardMargin; - - private boolean isLoading; - private boolean isOver; - private boolean isNetworkError; - - public News4FragmentAdapter(News4Fragment fregment) { - this.fragment = fregment; - this.context = fregment.getActivity(); - this.listener = fregment; - - todayNewsList = new ArrayList<>(); - beforeNewsList = new ArrayList<>(); - - itemCount = 0; - todayPosition = -1; - beforePosition = -1; - - isLoading = false; - isOver = false; - isNetworkError = false; - - cardMargin = (int) context.getResources().getDimension(R.dimen.cardview_margin); - } - - public void addList(final int offset) { - if (isLoading) { - return; - } - isLoading = true; - RetrofitManager.getApi() - .getNews("攻略", 20, offset) - .map(new Func1, Integer>() { - @Override - public Integer call(List list) { - // 去除重复数据 - List newList = NewsUtils.removeDuplicateData(beforeNewsList, - NewsUtils.removeDuplicateData(todayNewsList, list)); - - int count = 0; - if (newList.size() != 0) { - SimpleDateFormat format = new SimpleDateFormat("Mdd", Locale.getDefault()); - int today = Integer.valueOf(format.format(new Date())); - - // 数据分类,今天、昨天/以前 - for (NewsEntity newsEntity : newList) { - int day = Integer.valueOf(format.format( - new Date(newsEntity.getPublishOn() * 1000))); - if (day == today) { - // 今天 - todayNewsList.add(newsEntity); - if (todayNewsList.size() == 1) { - count += 2; - } else { - count += 1; - } - } else { - // 昨天/以前 - beforeNewsList.add(newsEntity); - if (beforeNewsList.size() == 1) { - count += 2; - } else { - count += 1; - } - } - } - updateLabelPosition(); - } - return count; - } - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response(){ - @Override - public void onResponse(Integer response) { - isLoading = false; - - if (response != 0) { - int start = itemCount; - itemCount += response; - if (!fragment.isHidden() && !fragment.isEverpause()) { - notifyItemRangeInserted(start, response); - } else { - notifyDataSetChanged(); - } - - if (offset == 0) { - if (listener != null) { - listener.loadDone(null); - } - } else { - notifyItemChanged(getItemCount() - response - 2); - } - } else { - isOver = true; - notifyItemChanged(getItemCount() - 1); - } - - if (listener != null) { - listener.loadDone(); - } - } - - @Override - public void onFailure(HttpException e) { - isLoading = false; - // 网络错误 - if (offset == 0) { - if (listener != null) { - listener.loadError(); - } - } else { - Toast.makeText(context, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show(); - isNetworkError = true; - notifyItemChanged(getItemCount() - 1); - } - } - }); - } - - // 更新标签位置 - private void updateLabelPosition() { - todayPosition = -1; - beforePosition = -1; - - if (!todayNewsList.isEmpty()) { - todayPosition = 0; - } - - if (!beforeNewsList.isEmpty()) { - if (todayPosition != -1) { - beforePosition = todayNewsList.size() + 1; - } else if (todayPosition == -1) { - beforePosition = 0; - } - } - } - - @Override - public int getItemCount() { - if (itemCount == 0) { - return 0; - } - return itemCount + 1; - } - - @Override - public int getItemViewType(int position) { - if (todayPosition != -1) { - if (position == todayPosition) { - return ItemViewType.NEWS_HEADER; - } - if (position == todayPosition + 1) { - if (!TextUtils.isEmpty(todayNewsList.get(0).getThumb())) { - return ItemViewType.NEWS_IMAGE; - } else { - return ItemViewType.NEWS_TEXT; - } - } - if (position > todayPosition + 1 - && position <= todayNewsList.size() + todayPosition) { - return ItemViewType.NEWS_TEXT; - } - } - - if (beforePosition != -1) { - if (position == beforePosition) { - return ItemViewType.NEWS_HEADER; - } - if (position > beforePosition - && position <= beforeNewsList.size() + beforePosition) { - return ItemViewType.NEWS_TEXT; - } - } - - return ItemViewType.LOADING; - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - if (viewType == ItemViewType.NEWS_HEADER) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.news_head_item, parent, false); - return new NewsHeadViewHolder(view); - } else if (viewType == ItemViewType.NEWS_IMAGE) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.news_image_item, parent, false); - return new NewsImageViewHolder(view); - } else if (viewType == ItemViewType.NEWS_TEXT) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.news_text_item, parent, false); - return new NewsTextViewHolder(view); - } else if (viewType == ItemViewType.LOADING) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.news_footer_item, parent, false); - return new NewsFooterViewHolder(view); - } - return null; - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { - if (holder instanceof NewsHeadViewHolder) { - initNewsHeadViewHolder((NewsHeadViewHolder) holder, position); - } else if (holder instanceof NewsImageViewHolder) { - initNewsImageViewHolder((NewsImageViewHolder) holder); - } else if (holder instanceof NewsTextViewHolder) { - initNewsTextViewHolder((NewsTextViewHolder) holder, position); - } else if (holder instanceof NewsFooterViewHolder) { - initNewsFooterViewHolder((NewsFooterViewHolder) holder); - } - } - - private void initNewsHeadViewHolder(NewsHeadViewHolder viewHolder, int position) { - if (position == todayPosition) { - ((CardRelativeLayout) viewHolder.itemView).setmBottom(DisplayUtils.dip2px(context, 8)); - viewHolder.label.setText("今天"); - viewHolder.label.setTextColor(0xFF1BA4FC); - } - - if (position == beforePosition) { - CardRelativeLayout cardRelativeLayout = (CardRelativeLayout) viewHolder.itemView; - cardRelativeLayout.setmTop(0); - cardRelativeLayout.setmBottom(DisplayUtils.dip2px(context, 8)); - viewHolder.label.setText("昨天/以前"); - viewHolder.label.setTextColor(0xFF3A3A3A); - } - } - - private void initNewsImageViewHolder(NewsImageViewHolder viewHolder) { - final NewsEntity newsEntity = todayNewsList.get(0); - viewHolder.itemView.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - Map kv = new HashMap<>(); - kv.put("名字", newsEntity.getTitle()); - kv.put("位置", "今天-大图"); - DataUtils.onEvent(context, "点击", "资讯-攻略", kv); - - DataCollectionUtils.uploadClick(context, "今天-大图", "资讯-攻略", newsEntity.getTitle()); - - // 统计阅读量 - NewsUtils.statNewsViews(newsEntity.getId()); - NewsUtils.startNewsDetailActivity(context, newsEntity, "(资讯-攻略:今天)"); - } - }); - viewHolder.thumb.setImageURI(newsEntity.getThumb()); - String title = newsEntity.getTitle(); - if (title.contains("》")) { - viewHolder.mainTitle.setText(title.substring(0, title.indexOf("》") + 1)); - viewHolder.subTitle.setVisibility(View.VISIBLE); - viewHolder.subTitle.setText(title.substring(title.indexOf("》") + 1)); - } else if (title.contains(" ")) { - viewHolder.mainTitle.setText(title.substring(0, title.indexOf(" ") + 1)); - viewHolder.subTitle.setVisibility(View.VISIBLE); - viewHolder.subTitle.setText(title.substring(title.indexOf(" ") + 1)); - } else { - viewHolder.mainTitle.setText(title); - viewHolder.subTitle.setVisibility(View.GONE); - } - } - - private void initNewsTextViewHolder(NewsTextViewHolder viewHolder, int position) { - if (position > todayPosition - && position <= todayNewsList.size() + todayPosition) { - // 第一个 - if (position - todayPosition - 1 == 0) { - ((CardLinearLayout) viewHolder.itemView).setmTop(0); - viewHolder.line.setVisibility(View.GONE); - } else { - ((CardLinearLayout) viewHolder.itemView).setmTop(0); - viewHolder.line.setVisibility(View.VISIBLE); - } - - // 最后一个 - if (position - todayPosition == todayNewsList.size()) { - ((CardLinearLayout) viewHolder.itemView).setBottom(true); - ((CardLinearLayout) viewHolder.itemView).setmBottom(0); - } else { - ((CardLinearLayout) viewHolder.itemView).setBottom(false); - ((CardLinearLayout) viewHolder.itemView).setmBottom(0); - } - initNewsTextViewHolder(viewHolder, todayNewsList.get(position - todayPosition - 1), "今天"); - } else { - // 第一个 - if (position - beforePosition - 1 == 0) { - ((CardLinearLayout) viewHolder.itemView).setmTop(0); - viewHolder.line.setVisibility(View.GONE); - } else { - ((CardLinearLayout) viewHolder.itemView).setmTop(0); - viewHolder.line.setVisibility(View.VISIBLE); - } - - // 最后一个 - if (position - beforePosition == beforeNewsList.size()) { - ((CardLinearLayout) viewHolder.itemView).setBottom(true); - ((CardLinearLayout) viewHolder.itemView).setmBottom(cardMargin); - } else { - ((CardLinearLayout) viewHolder.itemView).setBottom(false); - ((CardLinearLayout) viewHolder.itemView).setmBottom(0); - } - initNewsTextViewHolder(viewHolder, beforeNewsList.get(position - beforePosition - 1), "昨天/以前"); - } - } - - private void initNewsTextViewHolder(NewsTextViewHolder viewHolder, - final NewsEntity newsEntity, final String entrance) { - viewHolder.itemView.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - Map kv = new HashMap<>(); - kv.put("名字", newsEntity.getTitle()); - kv.put("位置", entrance); - DataUtils.onEvent(context, "点击", "资讯-攻略", kv); - - DataCollectionUtils.uploadClick(context, entrance, "资讯-攻略", newsEntity.getTitle()); - - // 统计阅读量 - NewsUtils.statNewsViews(newsEntity.getId()); - NewsUtils.startNewsDetailActivity(context, newsEntity, "(资讯-攻略:" + entrance + ")"); - } - }); - viewHolder.type.setText(newsEntity.getType()); - viewHolder.type.setBackgroundResource(NewsUtils.getDrawableIdByType(newsEntity.getType())); - viewHolder.title.setText(newsEntity.getTitle()); - } - - private void initNewsFooterViewHolder(NewsFooterViewHolder viewHolder) { - if (isNetworkError) { - viewHolder.loading.setVisibility(View.GONE); - viewHolder.hint.setText("加载失败,点击重试"); - viewHolder.itemView.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - isNetworkError = false; - notifyItemChanged(getItemCount() - 1); - addList(getNewsListSize()); - } - }); - } else if (isOver) { - viewHolder.itemView.setClickable(false); - viewHolder.loading.setVisibility(View.GONE); - viewHolder.hint.setText("加载完毕"); - } else { - viewHolder.itemView.setClickable(false); - viewHolder.loading.setVisibility(View.VISIBLE); - viewHolder.hint.setText("加载中..."); - } - } - - public int getNewsListSize() { - return todayNewsList.size() + beforeNewsList.size(); - } - - public int getTodaySize() { - return todayNewsList.size(); - } - - public int getTodayPosition() { - return todayPosition; - } - - public int getBeforePosition() { - return beforePosition; - } - - public boolean isLoading() { - return isLoading; - } - - public boolean isOver() { - return isOver; - } - - public boolean isNetworkError() { - return isNetworkError; - } - - public void setNetworkError(boolean isNetworkError) { - this.isNetworkError = isNetworkError; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java index 0b82212132..b33ef373a2 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java @@ -53,9 +53,13 @@ import com.gh.gamecenter.retrofit.RetrofitManager; import org.json.JSONObject; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import retrofit2.adapter.rxjava.HttpException; @@ -294,11 +298,39 @@ public class NewsDetailAdapter extends RecyclerView.Adapter { likeCount.setText(String.valueOf(commentEntity.getVote())); content.setText(commentEntity.getContent()); - time.setText(commentEntity.getTime() + ""); userName.setText(commentEntity.getUser().getName()); userIcon.setImageURI(commentEntity.getUser().getIcon()); holder.list.addView(contentView); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd", Locale.getDefault()); + try { + long today = format.parse(format.format(new Date())).getTime(); + long day = commentEntity.getTime() * 1000; + if (day >= today && day < today + 86400 * 1000) { + long min = new Date().getTime()/1000 - day/1000; + int hour = (int) (min/ (60 * 60)); + if (hour == 0) { + if (min < 60) { + time.setText("刚刚"); + } else { + time.setText(String.format(Locale.getDefault(), "%d分钟前", (int) (min / 60))); + } + } else { + time.setText(String.format(Locale.getDefault(), "%d小时前", hour)); + } + } else if (day >= today - 86400 * 1000 && day < today) { + format.applyPattern("HH:mm"); + time.setText("昨天 "); + } else { + format.applyPattern("yyyy-MM-dd"); + time.setText(format.format(day)); + } + } catch (ParseException e) { + e.printStackTrace(); + format.applyPattern("yyyy-MM-dd"); + time.setText(format.format(commentEntity.getTime() * 1000)); + } + if (commentEntity.getVote() == 0) { likeCount.setVisibility(View.GONE); } else { // 检查是否已点赞 @@ -395,8 +427,8 @@ public class NewsDetailAdapter extends RecyclerView.Adapter { Intent intent = new Intent(context, MessageDetailActivity.class); intent.putExtra("newsId", id); intent.putExtra("commentNum", -1); + intent.putExtra("entrance", entrance + "+(新闻详情[" + title + "])"); context.startActivity(intent); -// activity.startActivityForResult(intent, 1001); } }); @@ -424,7 +456,7 @@ public class NewsDetailAdapter extends RecyclerView.Adapter { // 统计阅读量 NewsUtils.statNewsViews(newsEntity.getId()); - NewsUtils.startNewsDetailActivity(context, newsEntity, entrance + "+(新闻详情:相关推荐)"); + NewsUtils.startNewsDetailActivity(context, newsEntity, entrance + "+(新闻详情:相关推荐[" + (viewHolder.getPosition() + 1) + "])"); } }); viewHolder.newsdetail_item_ll_news_more.addView(view); @@ -524,7 +556,7 @@ public class NewsDetailAdapter extends RecyclerView.Adapter { DataCollectionUtils.uploadClick(context, "游戏信息", "新闻详情", newsDetailEntity.getTitle()); - GameUtils.startGameDetailActivity(context, gameEntity.getId(), entrance + "+(新闻详情)"); + GameUtils.startGameDetailActivity(context, gameEntity.getId(), entrance + "+(新闻详情[" + newsDetailEntity.getTitle() + "])"); } }); } @@ -596,6 +628,7 @@ public class NewsDetailAdapter extends RecyclerView.Adapter { checkIntent.putExtra("urls", imgs); checkIntent.putExtra("current", current); checkIntent.putExtra("ScaleType", "FIT_CENTER"); + checkIntent.putExtra("entrance", entrance + "+(新闻详情[" + title + "])"); context.startActivity(checkIntent); } @@ -609,11 +642,11 @@ public class NewsDetailAdapter extends RecyclerView.Adapter { @JavascriptInterface public void skip(String id, String type) { if ("game".equals(type)) { - GameUtils.startGameDetailActivity(context, id, entrance); + GameUtils.startGameDetailActivity(context, id, entrance + "+(新闻详情[" + newsDetailEntity.getTitle() + "])"); } else if ("news".equals(type)) { Intent intent = new Intent(context, NewsDetailActivity.class); intent.putExtra("newsId", id); - intent.putExtra("entrance", entrance); + intent.putExtra("entrance", entrance + "+(新闻详情[" + newsDetailEntity.getTitle() + "])"); context.startActivity(intent); } } @@ -628,6 +661,10 @@ public class NewsDetailAdapter extends RecyclerView.Adapter { this.title = title; } + public String getTitle() { + return title; + } + public void setType(String type) { this.type = type; } diff --git a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java index 8db9162745..5f31b3ca4d 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java @@ -22,7 +22,6 @@ import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.listener.OnCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.Response; @@ -41,10 +40,9 @@ import rx.schedulers.Schedulers; * Created by LGT on 2016/8/15. * 已关注界面-数据适配器 */ -public class ConcernFragmentAdapter extends RecyclerView.Adapter { +class ConcernFragmentAdapter extends RecyclerView.Adapter { private Context context; - private OnCallBackListener listener; private LibaoDao libaoDao; @@ -58,9 +56,8 @@ public class ConcernFragmentAdapter extends RecyclerView.Adapter { +class InstallFragmentAdapter extends RecyclerView.Adapter { private Context context; @@ -62,7 +62,7 @@ public class InstallFragmentAdapter extends RecyclerView.Adapter(); @@ -97,7 +97,7 @@ public class InstallFragmentAdapter extends RecyclerView.Adapter getGameList() { + ArrayList getGameList() { return gameList; } @@ -242,7 +242,7 @@ public class InstallFragmentAdapter extends RecyclerView.Adapter 1) { + if (newEntity.getApk().size() > 1) { for (ApkEntity apkEntity : newEntity.getApk()) { if (sortedList.get(i).getPackageName().equals(apkEntity.getPackageName())) { ArrayList list = new ArrayList<>(); diff --git a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java index 1af22ab421..440d700466 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java @@ -230,11 +230,9 @@ public class PersonalFragment extends Fragment implements View.OnClickListener, DataUtils.onEvent(getActivity(), "我的光环", "设置图标"); DataCollectionUtils.uploadClick(getActivity(), "设置图标", "我的光环"); - startActivity(new Intent(getActivity(), SettingActivity.class)); - } else if (id == R.id.me_tv_top_install) { - me_vp_show.setCurrentItem(0); - } else if (id == R.id.me_tv_top_concern) { - me_vp_show.setCurrentItem(1); + Intent intent = new Intent(getActivity(), SettingActivity.class); + intent.putExtra("entrance", "(我的光环)"); + startActivity(intent); } else if (id == R.id.me_tv_top_name) { DataUtils.onEvent(getActivity(), "我的光环", "用户昵称"); DataCollectionUtils.uploadClick(getActivity(), "用户昵称", "我的光环"); @@ -247,25 +245,27 @@ public class PersonalFragment extends Fragment implements View.OnClickListener, DataCollectionUtils.uploadClick(getActivity(), "用户头像", "我的光环"); if (isLogin) { - Intent intent = new Intent(Intent.ACTION_PICK, - MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, 0x123); } + } else if (id == R.id.me_tv_top_install) { + me_vp_show.setCurrentItem(0); + } else if (id == R.id.me_tv_top_concern) { + me_vp_show.setCurrentItem(1); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (requestCode == 0x123 && data != null) { + if (data != null && requestCode == 0x123) { Uri selectedImage = data.getData(); if (selectedImage == null) { return; } String[] filePathColumn = { MediaStore.Images.Media.DATA }; - Cursor cursor = getActivity().getContentResolver().query(selectedImage, - filePathColumn, null, null, null); + Cursor cursor = getActivity().getContentResolver().query(selectedImage, filePathColumn, null, null, null); if (cursor == null) { return; } @@ -279,12 +279,12 @@ public class PersonalFragment extends Fragment implements View.OnClickListener, // 上传头像 Intent intent = new Intent(getActivity(), CropImageActivity.class); intent.putExtra("path", picturePath); + intent.putExtra("entrance", "(我的光环)"); startActivityForResult(intent, 0x124); - } else if (requestCode == 0x124 && data != null) { + } else if (data != null && requestCode == 0x124) { String url = data.getExtras().getString("url"); SharedPreferences sp = getActivity().getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE); sp.edit().putString("user_icon", url).apply(); -// ImageUtils.getInstance(getActivity()).display(url, me_iv_top_icon, R.drawable.user_default_icon); me_iv_top_icon.setImageURI(url); } } diff --git a/app/src/main/java/com/gh/gamecenter/receiver/DownloadReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/DownloadReceiver.java index 2cee396534..cae16e002f 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/DownloadReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/DownloadReceiver.java @@ -40,6 +40,7 @@ public class DownloadReceiver extends BroadcastReceiver { } else { Intent intent2 = new Intent(context, DownloadManagerActivity.class); intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent2.putExtra("entrance", "(下载跳转)"); context.startActivity(intent2); } } else { @@ -48,6 +49,7 @@ public class DownloadReceiver extends BroadcastReceiver { intent2.setAction(Intent.ACTION_MAIN); intent2.addCategory(Intent.CATEGORY_LAUNCHER); intent2.putExtra("to", "DownloadManagerActivity"); + intent2.putExtra("entrance", "(下载跳转)"); intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent2); } diff --git a/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java index 12ed9e598c..bfc6fcddb4 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java @@ -42,6 +42,7 @@ public class InstallReceiver extends BroadcastReceiver { Intent intent2 = new Intent(context, DownloadManagerActivity.class); intent2.putExtra("currentItem", 0); intent2.putExtra("path", path); + intent2.putExtra("entrance", "(安装跳转)"); intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent2); } @@ -53,6 +54,7 @@ public class InstallReceiver extends BroadcastReceiver { intent2.putExtra("to", "DownloadManagerActivity"); intent2.putExtra("currentItem", 0); intent2.putExtra("path", path); + intent2.putExtra("entrance", "(安装跳转)"); intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent2); } diff --git a/app/src/main/java/com/gh/gamecenter/receiver/NotificationReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/NotificationReceiver.java index 37a2819410..2e4339fe0a 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/NotificationReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/NotificationReceiver.java @@ -100,6 +100,7 @@ public class NotificationReceiver extends BroadcastReceiver { Intent intent2 = new Intent(context, DownloadManagerActivity.class); intent2.putExtra("currentItem", 1); intent2.putExtra("isPushIntent", true); + intent2.putExtra("entrance", "(小米推送)"); intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent2); } @@ -111,6 +112,7 @@ public class NotificationReceiver extends BroadcastReceiver { intent2.putExtra("to", "DownloadManagerActivity"); intent2.putExtra("currentItem", 1); intent2.putExtra("isPushIntent", true); + intent2.putExtra("entrance", "(小米推送)"); intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent2); } 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 f1f66a86e1..eb59155b01 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java @@ -34,7 +34,7 @@ import retrofit2.adapter.rxjava.HttpException; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; -public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter { +class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter { private Context context; private OnCallBackListener listener; @@ -45,11 +45,17 @@ public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter(); locationMap = new ArrayMap<>(); @@ -178,14 +184,14 @@ public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter { +class SearchGameListFragmentAdapter extends RecyclerView.Adapter { private Context context; private OnCallBackListener listener; @@ -45,11 +46,17 @@ public class SearchGameListFragmentAdapter extends RecyclerView.Adapter(); @@ -164,14 +171,14 @@ public class SearchGameListFragmentAdapter extends RecyclerView.Adapter { +class SearchHistoryFragmentAdapter extends RecyclerView.Adapter { private Context context; @@ -30,7 +31,7 @@ public class SearchHistoryFragmentAdapter extends RecyclerView.Adapter historyList; - public SearchHistoryFragmentAdapter(Context context) { + SearchHistoryFragmentAdapter(Context context) { this.context = context; @@ -41,7 +42,7 @@ public class SearchHistoryFragmentAdapter extends RecyclerView.Adapter