From 6ec976ccb6ea6e7aa8e96c9d0f4505ef99183050 Mon Sep 17 00:00:00 2001 From: huangzhuanghua <401742778@qq.com> Date: Wed, 6 Jul 2016 09:37:33 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 22 +- .../main/java/com/gh/base/AppController.java | 3 +- .../main/java/com/gh/base/BaseActivity.java | 13 +- .../com/gh/base/BaseFragmentActivity.java | 13 +- .../java/com/gh/common/util/DialogUtils.java | 199 ++--- .../com/gh/common/util/DownloadItemUtils.java | 681 +++++++++--------- .../com/gh/common/view/DownloadDialog.java | 12 +- .../gh/gamecenter/GameDetailsActivity.java | 422 ++++------- .../java/com/gh/gamecenter/MainActivity.java | 11 - .../java/com/gh/gamecenter/NewsActivity.java | 374 ++++------ .../com/gh/gamecenter/OriginalActivity.java | 105 --- .../gh/gamecenter/SplashScreenActivity.java | 2 +- ...CardActivity.java => SubjectActivity.java} | 6 +- .../com/gh/gamecenter/ViewImageActivity.java | 13 +- .../gh/gamecenter/adapter/HotCardAdapter.java | 4 +- .../gamecenter/adapter/ImagePagerAdapter.java | 6 +- .../viewholder/GameHeadViewHolder.java | 30 + .../viewholder/GameImageViewHolder.java | 22 + ...wHolder.java => NewsImage1ViewHolder.java} | 8 +- .../viewholder/NewsImage2ViewHolder.java | 36 + .../viewholder/NewsImage3ViewHolder.java | 32 + .../download/DownLoadManagerFragment.java | 13 +- .../gh/gamecenter/entity/CommentEntity.java | 64 -- .../com/gh/gamecenter/entity/GameEntity.java | 28 + .../com/gh/gamecenter/entity/SlideEntity.java | 13 + .../com/gh/gamecenter/entity/UserEntity.java | 67 -- .../com/gh/gamecenter/eventbus/EBLogout.java | 19 - .../gamecenter/eventbus/EBSkipNewPlugin.java | 20 - .../com/gh/gamecenter/eventbus/EBSms.java | 29 - .../com/gh/gamecenter/game/Game1Fragment.java | 34 +- .../gamecenter/game/Game1FragmentAdapter.java | 368 +++++++--- .../gamecenter/game/Game2FragmentAdapter.java | 11 +- .../com/gh/gamecenter/game/Game3Fragment.java | 43 +- .../gamecenter/game/Game3FragmentAdapter.java | 199 +++-- .../com/gh/gamecenter/game/GameFragment.java | 29 +- .../gamedetails/GameDatabaseFragment.java | 30 - .../gamedetails/GameDetailsFragment.java | 21 +- .../gamedetails/GameInformationFragment.java | 1 - .../gamecenter/news/News1FragmentAdapter.java | 293 ++++---- .../com/gh/gamecenter/news/News2Fragment.java | 7 +- .../News2FragmentAdapter.java} | 359 ++++----- .../com/gh/gamecenter/news/News3Fragment.java | 15 +- .../gamecenter/news/News3FragmentAdapter.java | 503 +------------ .../com/gh/gamecenter/news/News4Fragment.java | 29 +- .../gamecenter/news/News4FragmentAdapter.java | 529 ++------------ .../gamecenter/personal/PersonalFragment.java | 20 +- .../personal/PersonalFragmentAdapter.java | 75 +- .../gh/gamecenter/receiver/SmsReceiver.java | 69 -- .../search/Search1DetailFragmentAdapter.java | 20 +- .../Search2GameListFragmentAdapter.java | 20 +- .../main/res/layout/activity_gamedetails.xml | 22 - app/src/main/res/layout/fm_read2_special1.xml | 1 + .../res/layout/home3_fragment_function.xml | 73 +- ..._item_head.xml => home_game_head_item.xml} | 1 + .../main/res/layout/home_game_image_item.xml | 13 + .../layout/search3_history_fragment_item.xml | 22 +- 56 files changed, 1773 insertions(+), 3301 deletions(-) delete mode 100644 app/src/main/java/com/gh/gamecenter/OriginalActivity.java rename app/src/main/java/com/gh/gamecenter/{HotCardActivity.java => SubjectActivity.java} (97%) create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.java rename app/src/main/java/com/gh/gamecenter/adapter/viewholder/{OriginalViewHolder.java => NewsImage1ViewHolder.java} (85%) create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/entity/CommentEntity.java delete mode 100644 app/src/main/java/com/gh/gamecenter/entity/UserEntity.java delete mode 100644 app/src/main/java/com/gh/gamecenter/eventbus/EBLogout.java delete mode 100644 app/src/main/java/com/gh/gamecenter/eventbus/EBSkipNewPlugin.java delete mode 100644 app/src/main/java/com/gh/gamecenter/eventbus/EBSms.java delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetails/GameDatabaseFragment.java rename app/src/main/java/com/gh/gamecenter/{adapter/OriginalAdapter.java => news/News2FragmentAdapter.java} (58%) delete mode 100644 app/src/main/java/com/gh/gamecenter/receiver/SmsReceiver.java rename app/src/main/res/layout/{home_list_item_head.xml => home_game_head_item.xml} (97%) create mode 100644 app/src/main/res/layout/home_game_image_item.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 49a4cec144..46f1c527aa 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -38,15 +38,6 @@ - - - - - - - - - - @@ -154,10 +142,7 @@ android:name="com.gh.gamecenter.ConcernActivity" android:screenOrientation="portrait" /> - @@ -226,11 +211,6 @@ - - - - - queue = platformMap.get(entity - .getName()); + LinkedBlockingQueue queue = platformMap.get(entity.getName()); if (queue != null && !queue.isEmpty()) { downloadEntry = entryMap.get(queue.peek()); @@ -156,16 +158,14 @@ public class DownloadItemUtils { game_ll_info.setVisibility(View.VISIBLE); String platform = PlatformUtils.getInstance(context) - .getPlatformName( - downloadEntry.getMeta().get("platform")); + .getPlatformName(downloadEntry.getMeta().get("platform")); switch (downloadEntry.getStatus()) { case downloading: if (!"pause".equals(statusMap.get(downloadEntry.getUrl()))) { if (isShowPlatform) { if (platform == null) { - download_speed - .setText(SpeedUtils + download_speed.setText(SpeedUtils .getSpeed(downloadEntry .getSpeed()) + "(剩" @@ -178,8 +178,7 @@ public class DownloadItemUtils { .getSpeed() * 1024) + ")"); } else { - download_speed - .setText(platform + download_speed.setText(platform + " - " + SpeedUtils .getSpeed(downloadEntry @@ -195,8 +194,7 @@ public class DownloadItemUtils { + ")"); } } else { - download_speed - .setText(SpeedUtils + download_speed.setText(SpeedUtils .getSpeed(downloadEntry .getSpeed()) + "(剩" @@ -254,23 +252,19 @@ public class DownloadItemUtils { download_speed.setText("下载完成"); } download_percentage.setText("100%"); - if (entity.getApk() != null - && entity.getApk().size() == 1) { + if (entity.getApk() != null && entity.getApk().size() == 1) { EventBus.getDefault().post( new EBPutUrl(entity.getApk().get(0) - .getPackageName(), downloadEntry - .getUrl())); + .getPackageName(), downloadEntry.getUrl())); downloadBtn.setText("安装"); - downloadBtn - .setBackgroundResource(R.drawable.textview_blue_style); + downloadBtn.setBackgroundResource(R.drawable.textview_blue_style); downloadBtn.setTextColor(0xFFFFFFFF); } else { labelList.setVisibility(View.VISIBLE); game_progressbar.setVisibility(View.GONE); game_ll_info.setVisibility(View.GONE); downloadBtn.setText("下载"); - downloadBtn - .setBackgroundResource(R.drawable.textview_blue_style); + downloadBtn.setBackgroundResource(R.drawable.textview_blue_style); downloadBtn.setTextColor(0xFFFFFFFF); } break; @@ -302,7 +296,11 @@ public class DownloadItemUtils { labelList.setVisibility(View.VISIBLE); game_progressbar.setVisibility(View.GONE); game_ll_info.setVisibility(View.GONE); - downloadBtn.setText("下载"); + if (entity.getPluginPlatform() != null) { + downloadBtn.setText("插件化"); + } else { + downloadBtn.setText("下载"); + } downloadBtn.setBackgroundResource(R.drawable.textview_blue_style); downloadBtn.setTextColor(0xFFFFFFFF); break; @@ -317,9 +315,12 @@ public class DownloadItemUtils { game_progressbar.setVisibility(View.GONE); game_ll_info.setVisibility(View.GONE); if (entity.getApk() != null) { - downloadBtn.setText("下载"); - downloadBtn - .setBackgroundResource(R.drawable.textview_blue_style); + if (entity.getPluginPlatform() != null) { + downloadBtn.setText("插件化"); + } else { + downloadBtn.setText("下载"); + } + downloadBtn.setBackgroundResource(R.drawable.textview_blue_style); downloadBtn.setTextColor(0xFFFFFFFF); } } @@ -368,315 +369,40 @@ public class DownloadItemUtils { Toast.LENGTH_SHORT).show(); } else { if (NetworkUtils.isWifiConnected(context)) { - if (entity.getApk().size() == 1) { - String msg = FileUtils.isCanDownload(entity - .getApk().get(0).getSize()); - if (TextUtils.isEmpty(msg)) { - Map kv = new HashMap(); - kv.put("版本", entity.getApk().get(0).getPlatform()); - kv.put("状态", "下载开始"); - DataUtils.onEvent(context, "游戏下载", entity.getName(), kv); - - Map kv2 = new HashMap(); - kv2.put("版本", entity.getApk().get(0) - .getPlatform()); - kv2.put("状态", "下载开始"); - kv2.put("位置", entrance + "-开始"); - DataUtils.onEvent(context, "游戏下载位置", entity.getName(), kv2); - - Map kv3 = new HashMap(); - kv3.put(entrance, "下载数"); - kv3.put(entrance, "下载开始"); - DataUtils.onEvent(context, "应用数据", entity.getName(), kv3); - - if ("主页-最新插件".equals(entrance)) { - Map kv4 = new HashMap(); - kv4.put(entity.getName(), "下载数"); - DataUtils.onEvent(context, "主页数据", "最新插件", kv4); - } else if ("主页-热门卡牌".equals(entrance)) { - Map kv4 = new HashMap(); - kv4.put(entity.getName(), "下载数"); - DataUtils.onEvent(context, "主页数据", "热门卡牌", kv4); - } else if ("主页-新测卡牌".equals(entrance)) { - Map kv4 = new HashMap(); - kv4.put(entity.getName(), "下载数"); - DataUtils.onEvent(context, "主页数据", "新测卡牌", kv4); - } - - Map map = new HashMap(); - map.put("game", entity.getName()); - map.put("method", "正常"); - map.put("platform", PlatformUtils.getInstance(context) - .getPlatformName(entity.getApk().get(0).getPlatform())); - map.put("status", "开始"); - map.put("location", "游戏详情:" + entity.getName()); - map.put("from", entrance); - map.put("network", NetworkUtils.getConnectedType(context)); - map.put("createdOn", System.currentTimeMillis() / 1000); - DataCollectionManager.onEvent(context, "download", map); - - DownloadManager.getInstance(context).add( - getDownloadEntry(context, entity, 0, entrance)); - Toast.makeText(context, entity.getName() + "已加入下载队列", Toast.LENGTH_SHORT).show(); - downloadBtn.setText("暂停"); - downloadBtn.setBackgroundResource(R.drawable.textview_gray_style); - downloadBtn.setTextColor(0xFF999999); - EventBus.getDefault().post(new EBRedDot(1)); - - statusMap.put(entity.getApk().get(0).getUrl(), "downloading"); - } else { - Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); - } - } else { - if (!dismissEntity.isShow()) { - dismissEntity.setShow(true); - DownloadDialog.getInstance(context) - .showPopupWindow(viewBtn, entity, entrance, statusMap, - download_speed, download_percentage, location); - } - } + download(context, entity, downloadBtn, statusMap, + dismissEntity, download_speed, download_percentage, + viewBtn, entrance, location); } else { - - final Dialog dialog = new Dialog(context); - View view = View.inflate(context, R.layout.search_history_delete_dialog, null); - TextView title = (TextView) view - .findViewById(R.id.delete_dialog_title); - title.setText("警告"); - TextView content = (TextView) view.findViewById(R.id.delete_dialog_message); - - content.setText("您当前的网络为2G/3G/4G,下载将会消耗移动流量,是否继续下载?"); - - TextView cancel = (TextView) view - .findViewById(R.id.delete_dialog_cancel); - cancel.setText("取消"); - cancel.setOnClickListener(new OnClickListener() { + DialogUtils.showWarningDialog(context, new DialogUtils.ConfiremListener() { @Override - public void onClick(View v) { - dialog.dismiss(); + public void onConfirem() { + download(context, entity, downloadBtn, statusMap, + dismissEntity, download_speed, download_percentage, + viewBtn, entrance, location); } }); - TextView confirem = (TextView) view - .findViewById(R.id.delete_dialog_confirm); - confirem.setText("继续"); - confirem.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - dialog.dismiss(); - if (entity.getApk() == null - || entity.getApk().isEmpty()) { - Toast.makeText(context, - "稍等片刻~!游戏正在上传中...", - Toast.LENGTH_SHORT).show(); - } else { - if (entity.getApk().size() == 1) { - String msg = FileUtils - .isCanDownload(entity - .getApk().get(0) - .getSize()); - if (TextUtils.isEmpty(msg)) { - Map kv = new HashMap(); - kv.put("版本", entity.getApk() - .get(0).getPlatform()); - kv.put("状态", "下载开始"); - DataUtils.onEvent(context, "游戏下载", entity.getName(), kv); - - Map kv2 = new HashMap(); - kv2.put("版本", entity.getApk().get(0).getPlatform()); - kv2.put("状态", "下载开始"); - kv2.put("位置", entrance + "-开始"); - DataUtils.onEvent(context, "游戏下载位置", entity.getName(), kv2); - - Map map = new HashMap(); - map.put("game", entity.getName()); - map.put("method", "正常"); - map.put("platform", PlatformUtils.getInstance(context) - .getPlatformName(entity.getApk().get(0).getPlatform())); - map.put("status", "开始"); - map.put("location", "游戏详情:" + entity.getName()); - map.put("from", entrance); - map.put("network", NetworkUtils.getConnectedType(context)); - map.put("createdOn", System.currentTimeMillis() / 1000); - DataCollectionManager.onEvent(context, "download", map); - - DownloadManager.getInstance(context).add( - getDownloadEntry(context, entity, 0, entrance)); - Toast.makeText(context, entity.getName() + "已加入下载队列", - Toast.LENGTH_SHORT).show(); - downloadBtn.setText("暂停"); - downloadBtn.setBackgroundResource(R.drawable.textview_gray_style); - downloadBtn.setTextColor(0xFF999999); - EventBus.getDefault().post(new EBRedDot(1)); - - statusMap.put(entity.getApk().get(0).getUrl(), "downloading"); - } else { - Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); - } - } else { - if (!dismissEntity.isShow()) { - dismissEntity.setShow(true); - DownloadDialog - .getInstance(context) - .showPopupWindow( - viewBtn, - entity, - entrance, - statusMap, - download_speed, - download_percentage, - location); - } - } - } - } - }); - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - dialog.setContentView(view); - dialog.show(); } } + } else if ("插件化".equals(str)) { + if (NetworkUtils.isWifiConnected(context)) { + plugin(context, entity, downloadBtn, statusMap, entrance); + } else { + DialogUtils.showWarningDialog(context, new DialogUtils.ConfiremListener() { + @Override + public void onConfirem() { + plugin(context, entity, downloadBtn, statusMap, entrance); + } + }); + } } else if ("暂停".equals(str)) { - ArrayMap entryMap = entity - .getEntryMap(); - - if (entryMap != null && !entryMap.isEmpty()) { - - DownloadEntry downloadEntry; - - LinkedBlockingQueue queue = platformMap - .get(entity.getName()); - - if (queue != null && !queue.isEmpty()) { - downloadEntry = entryMap.get(queue.peek()); - } else { - downloadEntry = entryMap.get(entryMap.keyAt(0)); - } - - if (downloadEntry != null) { - - String platform = PlatformUtils - .getInstance(context).getPlatformName( - downloadEntry.getMeta().get( - "platform")); - if (isShowPlatform) { - if (platform == null) { - download_speed.setText("暂停"); - } else { - download_speed.setText(platform + " - 暂停"); - } - } else { - download_speed.setText("暂停"); - } - download_percentage.setText(downloadEntry - .getPercent() + "%"); - } - } - downloadBtn.setText("继续"); - downloadBtn - .setBackgroundResource(R.drawable.textview_blue_style); - downloadBtn.setTextColor(0xFFFFFFFF); - statusMap.put(entity.getApk().get(0).getUrl(), "pause"); - Message msg = Message.obtain(); - msg.what = Constants.PAUSE_DOWNLOAD_TASK; - msg.obj = entity.getApk().get(0).getUrl(); - DownloadManager.getInstance(context).put(entity.getApk().get(0).getUrl(), - System.currentTimeMillis()); - DownloadManager.getInstance(context).sendMessageDelayed(msg, 1000); + pause(context, entity, download_speed, download_percentage, + downloadBtn, platformMap, statusMap, isShowPlatform); } else if ("继续".equals(str)) { - ArrayMap entryMap = entity - .getEntryMap(); - - if (entryMap != null && !entryMap.isEmpty()) { - - DownloadEntry downloadEntry; - - LinkedBlockingQueue queue = platformMap - .get(entity.getName()); - - if (queue != null && !queue.isEmpty()) { - downloadEntry = entryMap.get(queue.peek()); - } else { - downloadEntry = entryMap.get(entryMap.keyAt(0)); - } - - if (downloadEntry != null) { - - String platform = PlatformUtils - .getInstance(context).getPlatformName( - downloadEntry.getMeta().get( - "platform")); - if (isShowPlatform) { - if (platform == null) { - download_speed.setText(SpeedUtils - .getSpeed(downloadEntry.getSpeed()) - + "(剩" - + SpeedUtils.getRemainTime( - downloadEntry.getSize(), - downloadEntry.getProgress(), - downloadEntry.getSpeed() * 1024) - + ")"); - } else { - download_speed.setText(platform - + " - " - + SpeedUtils.getSpeed(downloadEntry - .getSpeed()) - + "(剩" - + SpeedUtils.getRemainTime( - downloadEntry.getSize(), - downloadEntry.getProgress(), - downloadEntry.getSpeed() * 1024) - + ")"); - } - } else { - download_speed.setText(SpeedUtils - .getSpeed(downloadEntry.getSpeed()) - + "(剩" - + SpeedUtils.getRemainTime( - downloadEntry.getSize(), - downloadEntry.getProgress(), - downloadEntry.getSpeed() * 1024) - + ")"); - } - download_percentage.setText(downloadEntry - .getPercent() + "%"); - } - } - downloadBtn.setText("暂停"); - downloadBtn - .setBackgroundResource(R.drawable.textview_gray_style); - downloadBtn.setTextColor(0xFF999999); - statusMap.put(entity.getApk().get(0).getUrl(), - "downloading"); - EventBus.getDefault().post(new EBRedDot(0)); - Message msg = Message.obtain(); - msg.what = Constants.CONTINUE_DOWNLOAD_TASK; - msg.obj = entity.getApk().get(0).getUrl(); - DownloadManager.getInstance(context).put(entity.getApk().get(0).getUrl(), - System.currentTimeMillis()); - DownloadManager.getInstance(context).sendMessageDelayed(msg, 1000); + goon(context, entity, download_speed, download_percentage, + downloadBtn, platformMap, statusMap, isShowPlatform); } else if ("安装".equals(str)) { - String path = entity.getEntryMap() - .get(entity.getEntryMap().keyAt(0)).getPath(); - if (FileUtils.isEmptyFile(path)) { - Toast.makeText(context, "解析包错误", Toast.LENGTH_SHORT) - .show(); - DownloadManager.getInstance(context).cancel( - entity.getEntryMap() - .get(entity.getEntryMap().keyAt(0)) - .getUrl()); - entity.getEntryMap().remove( - entity.getEntryMap().keyAt(0)); - adapter.notifyItemChanged(position); - } else { - PackageManager manager = new PackageManager(context); - if (manager.launchSetup(path)) { - context.startActivity(PackageUtils - .getInstallIntent(path)); - } else { - DialogUtils.showDialog(context, path); - } - } + install(context, entity, position, adapter); } else if ("启动".equals(str)) { - Map kv = new HashMap(); kv.put("版本", entity.getApk().get(0).getPlatform()); DataUtils.onEvent(context, "游戏启动", entity.getName(), kv); @@ -688,6 +414,307 @@ public class DownloadItemUtils { }); } + //下载 + private static void download(Context context, GameEntity entity, TextView downloadBtn, + ArrayMap statusMap, DismissEntity dismissEntity, + TextView download_speed, TextView download_percentage, View viewBtn, + String entrance, String location) { + if (entity.getApk().size() == 1) { + String msg = FileUtils.isCanDownload(entity.getApk().get(0).getSize()); + if (TextUtils.isEmpty(msg)) { + Map kv = new HashMap(); + kv.put("版本", entity.getApk().get(0).getPlatform()); + kv.put("状态", "下载开始"); + DataUtils.onEvent(context, "游戏下载", entity.getName(), kv); + + Map kv2 = new HashMap(); + kv2.put("版本", entity.getApk().get(0) + .getPlatform()); + kv2.put("状态", "下载开始"); + kv2.put("位置", entrance + "-开始"); + DataUtils.onEvent(context, "游戏下载位置", entity.getName(), kv2); + + Map kv3 = new HashMap(); + kv3.put(entrance, "下载数"); + kv3.put(entrance, "下载开始"); + DataUtils.onEvent(context, "应用数据", entity.getName(), kv3); + + if ("主页-最新插件".equals(entrance)) { + Map kv4 = new HashMap(); + kv4.put(entity.getName(), "下载数"); + DataUtils.onEvent(context, "主页数据", "最新插件", kv4); + } else if ("主页-热门卡牌".equals(entrance)) { + Map kv4 = new HashMap(); + kv4.put(entity.getName(), "下载数"); + DataUtils.onEvent(context, "主页数据", "热门卡牌", kv4); + } else if ("主页-新测卡牌".equals(entrance)) { + Map kv4 = new HashMap(); + kv4.put(entity.getName(), "下载数"); + DataUtils.onEvent(context, "主页数据", "新测卡牌", kv4); + } + + Map map = new HashMap(); + map.put("game", entity.getName()); + map.put("method", "正常"); + map.put("platform", PlatformUtils.getInstance(context) + .getPlatformName(entity.getApk().get(0).getPlatform())); + map.put("status", "开始"); + map.put("location", "游戏详情:" + entity.getName()); + map.put("from", entrance); + map.put("network", NetworkUtils.getConnectedType(context)); + map.put("createdOn", System.currentTimeMillis() / 1000); + DataCollectionManager.onEvent(context, "download", map); + + DownloadManager.getInstance(context).add( + getDownloadEntry(context, entity, 0, entrance)); + Toast.makeText(context, entity.getName() + "已加入下载队列", Toast.LENGTH_SHORT).show(); + downloadBtn.setText("暂停"); + downloadBtn.setBackgroundResource(R.drawable.textview_gray_style); + downloadBtn.setTextColor(0xFF999999); + EventBus.getDefault().post(new EBRedDot(1)); + + statusMap.put(entity.getApk().get(0).getUrl(), "downloading"); + } else { + Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); + } + } else { + if (!dismissEntity.isShow()) { + dismissEntity.setShow(true); + DownloadDialog.getInstance(context) + .showPopupWindow(viewBtn, entity, entrance, statusMap, + download_speed, download_percentage, location); + } + } + } + + //插件化 + private static void plugin(Context context, GameEntity entity, TextView downloadBtn, + ArrayMap statusMap, String entrance) { + String msg = FileUtils.isCanDownload(entity.getApk().get(0).getSize()); + if (TextUtils.isEmpty(msg)) { + Map kv = new HashMap(); + kv.put("版本", entity.getApk().get(0).getPlatform()); + kv.put("状态", "下载开始"); + DataUtils.onEvent(context, "游戏下载", entity.getName(), kv); + + Map kv2 = new HashMap(); + kv2.put("版本", entity.getApk().get(0) + .getPlatform()); + kv2.put("状态", "下载开始"); + kv2.put("位置", entrance + "-开始"); + DataUtils.onEvent(context, "游戏下载位置", entity.getName(), kv2); + + Map kv3 = new HashMap(); + kv3.put(entrance, "下载数"); + kv3.put(entrance, "下载开始"); + DataUtils.onEvent(context, "应用数据", entity.getName(), kv3); + + if ("主页-最新插件".equals(entrance)) { + Map kv4 = new HashMap(); + kv4.put(entity.getName(), "下载数"); + DataUtils.onEvent(context, "主页数据", "最新插件", kv4); + } else if ("主页-热门卡牌".equals(entrance)) { + Map kv4 = new HashMap(); + kv4.put(entity.getName(), "下载数"); + DataUtils.onEvent(context, "主页数据", "热门卡牌", kv4); + } else if ("主页-新测卡牌".equals(entrance)) { + Map kv4 = new HashMap(); + kv4.put(entity.getName(), "下载数"); + DataUtils.onEvent(context, "主页数据", "新测卡牌", kv4); + } + + Map map = new HashMap(); + map.put("game", entity.getName()); + map.put("method", "正常"); + map.put("platform", PlatformUtils.getInstance(context) + .getPlatformName(entity.getApk().get(0).getPlatform())); + map.put("status", "开始"); + map.put("isPlugin", "true"); + map.put("location", "游戏详情:" + entity.getName()); + map.put("from", entrance); + map.put("network", NetworkUtils.getConnectedType(context)); + map.put("createdOn", System.currentTimeMillis() / 1000); + DataCollectionManager.onEvent(context, "download", map); + + DownloadManager.getInstance(context).add( + getDownloadEntry(context, entity, 0, entrance)); + Toast.makeText(context, entity.getName() + "已加入下载队列", Toast.LENGTH_SHORT).show(); + downloadBtn.setText("暂停"); + downloadBtn.setBackgroundResource(R.drawable.textview_gray_style); + downloadBtn.setTextColor(0xFF999999); + EventBus.getDefault().post(new EBRedDot(1)); + + statusMap.put(entity.getApk().get(0).getUrl(), "downloading"); + } else { + Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); + } + } + + //暂停 + private static void pause(Context context, GameEntity entity, TextView download_speed, + TextView download_percentage, TextView downloadBtn, + ArrayMap> platformMap, + ArrayMap statusMap, + boolean isShowPlatform) { + ArrayMap entryMap = entity + .getEntryMap(); + + if (entryMap != null && !entryMap.isEmpty()) { + + DownloadEntry downloadEntry; + + LinkedBlockingQueue queue = platformMap + .get(entity.getName()); + + if (queue != null && !queue.isEmpty()) { + downloadEntry = entryMap.get(queue.peek()); + } else { + downloadEntry = entryMap.get(entryMap.keyAt(0)); + } + + if (downloadEntry != null) { + + String platform = PlatformUtils + .getInstance(context).getPlatformName( + downloadEntry.getMeta().get( + "platform")); + if (isShowPlatform) { + if (platform == null) { + download_speed.setText("暂停"); + } else { + download_speed.setText(platform + " - 暂停"); + } + } else { + download_speed.setText("暂停"); + } + download_percentage.setText(downloadEntry + .getPercent() + "%"); + } + } + downloadBtn.setText("继续"); + downloadBtn.setBackgroundResource(R.drawable.textview_blue_style); + downloadBtn.setTextColor(0xFFFFFFFF); + statusMap.put(entity.getApk().get(0).getUrl(), "pause"); + Message msg = Message.obtain(); + msg.what = Constants.PAUSE_DOWNLOAD_TASK; + msg.obj = entity.getApk().get(0).getUrl(); + DownloadManager.getInstance(context).put(entity.getApk().get(0).getUrl(), + System.currentTimeMillis()); + DownloadManager.getInstance(context).sendMessageDelayed(msg, 1000); + } + + //继续 + private static void goon(Context context, GameEntity entity, TextView download_speed, + TextView download_percentage, TextView downloadBtn, + ArrayMap> platformMap, + ArrayMap statusMap, + boolean isShowPlatform) { + ArrayMap entryMap = entity + .getEntryMap(); + + if (entryMap != null && !entryMap.isEmpty()) { + + DownloadEntry downloadEntry; + + LinkedBlockingQueue queue = platformMap + .get(entity.getName()); + + if (queue != null && !queue.isEmpty()) { + downloadEntry = entryMap.get(queue.peek()); + } else { + downloadEntry = entryMap.get(entryMap.keyAt(0)); + } + + if (downloadEntry != null) { + + String platform = PlatformUtils + .getInstance(context).getPlatformName( + downloadEntry.getMeta().get( + "platform")); + if (isShowPlatform) { + if (platform == null) { + download_speed.setText(SpeedUtils + .getSpeed(downloadEntry.getSpeed()) + + "(剩" + + SpeedUtils.getRemainTime( + downloadEntry.getSize(), + downloadEntry.getProgress(), + downloadEntry.getSpeed() * 1024) + + ")"); + } else { + download_speed.setText(platform + + " - " + + SpeedUtils.getSpeed(downloadEntry + .getSpeed()) + + "(剩" + + SpeedUtils.getRemainTime( + downloadEntry.getSize(), + downloadEntry.getProgress(), + downloadEntry.getSpeed() * 1024) + + ")"); + } + } else { + download_speed.setText(SpeedUtils + .getSpeed(downloadEntry.getSpeed()) + + "(剩" + + SpeedUtils.getRemainTime( + downloadEntry.getSize(), + downloadEntry.getProgress(), + downloadEntry.getSpeed() * 1024) + + ")"); + } + download_percentage.setText(downloadEntry + .getPercent() + "%"); + } + } + downloadBtn.setText("暂停"); + downloadBtn + .setBackgroundResource(R.drawable.textview_gray_style); + downloadBtn.setTextColor(0xFF999999); + statusMap.put(entity.getApk().get(0).getUrl(), + "downloading"); + EventBus.getDefault().post(new EBRedDot(0)); + Message msg = Message.obtain(); + msg.what = Constants.CONTINUE_DOWNLOAD_TASK; + msg.obj = entity.getApk().get(0).getUrl(); + DownloadManager.getInstance(context).put(entity.getApk().get(0).getUrl(), + System.currentTimeMillis()); + DownloadManager.getInstance(context).sendMessageDelayed(msg, 1000); + } + + //安装 + private static void install(final Context context, GameEntity entity, int position, + RecyclerView.Adapter adapter) { + final String path = entity.getEntryMap() + .get(entity.getEntryMap().keyAt(0)).getPath(); + if (FileUtils.isEmptyFile(path)) { + Toast.makeText(context, "解析包错误", Toast.LENGTH_SHORT) + .show(); + DownloadManager.getInstance(context).cancel( + entity.getEntryMap() + .get(entity.getEntryMap().keyAt(0)) + .getUrl()); + entity.getEntryMap().remove( + entity.getEntryMap().keyAt(0)); + adapter.notifyItemChanged(position); + } else { + PackageManager manager = new PackageManager(context); + if (manager.launchSetup(path)) { + context.startActivity(PackageUtils + .getInstallIntent(path)); + } else { + DialogUtils.showUninstallDialog(context, new DialogUtils.ConfiremListener() { + @Override + public void onConfirem() { + MainActivity.uninstallMap.put( + PackageUtils.getPackageNameByPath(context, path), path); + context.startActivity(PackageUtils.getUninstallIntent(context, path)); + } + }); + } + } + } + public static DownloadEntry getDownloadEntry(Context context, GameEntity game, int position, String entrance) { ApkEntity apkEntity = game.getApk().get(position); @@ -695,8 +722,7 @@ public class DownloadItemUtils { entry.setUrl(apkEntity.getUrl()); entry.setName(game.getName()); - entry.setPath(FileUtils.getDownloadPath( - context, + entry.setPath(FileUtils.getDownloadPath(context, MD5Utils.getContentMD5(game.getName() + "_" + System.currentTimeMillis()) + ".apk")); @@ -707,6 +733,9 @@ public class DownloadItemUtils { meta.put("gameId", game.getId()); meta.put("entrance", entrance); meta.put("location", "游戏详情:" + game.getName()); + if (game.getPluginPlatform() != null) { + meta.put("PluginPlatform", PlatformUtils.getInstance(context).getPlatformName(game.getApk().get(0).getPlatform())); + } entry.setMeta(meta); return entry; } 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 e1df932ec5..d3c57aaea3 100644 --- a/app/src/main/java/com/gh/common/view/DownloadDialog.java +++ b/app/src/main/java/com/gh/common/view/DownloadDialog.java @@ -866,7 +866,7 @@ public class DownloadDialog { kv6.put("操作", "点击安装完成"); DataUtils.onEvent(context, "插件化", downloadEntry.getName(), kv6); } - String path = entryMap.get(apkEntity.getUrl()) + final String path = entryMap.get(apkEntity.getUrl()) .getPath(); if (FileUtils.isEmptyFile(path)) { Toast.makeText(context, "解析包错误", @@ -882,7 +882,15 @@ public class DownloadDialog { context.startActivity(PackageUtils .getInstallIntent(path)); } else { - DialogUtils.showDialog(context, path); + DialogUtils.showUninstallDialog(context, new DialogUtils.ConfiremListener() { + @Override + public void onConfirem() { + MainActivity.uninstallMap.put( + PackageUtils.getPackageNameByPath(context, path), path); + context.startActivity(PackageUtils.getUninstallIntent(context, + path)); + } + }); } } } else if ("等待".equals(status)) { diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java index fa9fe612be..65e15552c8 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java @@ -93,7 +93,6 @@ public class GameDetailsActivity extends BaseFragmentActivity implements top_tv_info, top_tv_attention, titlebar_tv_details, titlebar_tv_information, titlebar_tv_strategy, gamedetails_tv_per, actionbar_tv_title; - // private TextView gamedetails_tv_database,titlebar_tv_database; private ImageView top_iv_icon, gamedetails_iv_share; private View gamedetails_slide_line, titlebar_slide_line; private LinearLayout gamedetails_ll_top, gamedetails_ll_topbar, @@ -164,7 +163,6 @@ public class GameDetailsActivity extends BaseFragmentActivity implements @Override protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); Utils.log(this.getClass().getSimpleName() + " onSaveInstanceState"); outState.putInt("CurrentItem", gamedetails_vp_show.getCurrentItem()); @@ -176,8 +174,7 @@ public class GameDetailsActivity extends BaseFragmentActivity implements super.onCreate(savedInstanceState); - View contentView = View.inflate(this, R.layout.activity_gamedetails, - null); + View contentView = View.inflate(this, R.layout.activity_gamedetails, null); gameId = getIntent().getStringExtra("gameId"); entrance = getIntent().getStringExtra("entrance"); @@ -214,22 +211,18 @@ public class GameDetailsActivity extends BaseFragmentActivity implements gamedetails_tv_details.setOnClickListener(this); gamedetails_tv_information.setOnClickListener(this); gamedetails_tv_strategy.setOnClickListener(this); - // gamedetails_tv_database.setOnClickListener(this); titlebar_tv_details.setOnClickListener(this); titlebar_tv_information.setOnClickListener(this); titlebar_tv_strategy.setOnClickListener(this); - // titlebar_tv_database.setOnClickListener(this); titlebar_tv_details.setClickable(false); titlebar_tv_information.setClickable(true); titlebar_tv_strategy.setClickable(true); - // titlebar_tv_database.setClickable(true); gamedetails_tv_details.setClickable(false); gamedetails_tv_information.setClickable(true); gamedetails_tv_strategy.setClickable(true); - // gamedetails_tv_database.setClickable(true); top_tv_attention.setOnClickListener(this); @@ -385,7 +378,7 @@ public class GameDetailsActivity extends BaseFragmentActivity implements } @Override - public void onClick(View v) { + public void onClick(final View v) { switch (v.getId()) { case R.id.actionbar_rl_back: finish(); @@ -402,10 +395,6 @@ public class GameDetailsActivity extends BaseFragmentActivity implements case R.id.titlebar_tv_strategy: gamedetails_vp_show.setCurrentItem(2); break; - // case R.id.gamedetails_tv_database: - // case R.id.titlebar_tv_database: - // gamedetails_vp_show.setCurrentItem(3); - // break; case R.id.top_tv_attention: if ("关注".equals(top_tv_attention.getText().toString())) { @@ -448,259 +437,14 @@ public class GameDetailsActivity extends BaseFragmentActivity implements kv0); if (entity.getApk() != null && !entity.getApk().isEmpty()) { if (NetworkUtils.isWifiConnected(this)) { - if (entity.getApk().size() == 1) { - if (gamedetails_tv_download.getText().toString() - .contains("启动")) { - - Map kv = new HashMap(); - kv.put("版本", entity.getApk().get(0).getPlatform()); - DataUtils.onEvent(GameDetailsActivity.this, "游戏启动", - entity.getName(), kv); - - PackageUtils.launchApplicationByPackageName( - getApplicationContext(), entity.getApk() - .get(0).getPackageName()); - } else { - ApkEntity apkEntity = entity.getApk().get(0); - String msg = FileUtils.isCanDownload(apkEntity - .getSize()); - if (TextUtils.isEmpty(msg)) { - Map kv = new HashMap(); - kv.put("版本", apkEntity.getPlatform()); - kv.put("状态", "下载开始"); - DataUtils.onEvent(GameDetailsActivity.this, - "游戏下载", entity.getName(), kv); - - Map kv2 = new HashMap(); - kv2.put("版本", apkEntity.getPlatform()); - kv2.put("状态", "下载开始"); - kv2.put("位置", entrance + "-游戏详情-开始"); - DataUtils.onEvent(GameDetailsActivity.this, - "游戏下载位置", entity.getName(), kv2); - - Map kv3 = new HashMap(); - kv3.put(entrance, "下载数"); - kv3.put(entrance, "下载开始"); - DataUtils.onEvent(GameDetailsActivity.this, - "应用数据", entity.getName(), kv3); - - Map map = new HashMap(); - map.put("game", entity.getName()); - map.put("method", "正常"); - map.put("platform", - PlatformUtils.getInstance( - getApplicationContext()) - .getPlatformName( - entity.getApk().get(0) - .getPlatform())); - map.put("status", "开始"); - map.put("location", "游戏详情:" + entity.getName()); - map.put("from", entrance); - map.put("network", - NetworkUtils.getConnectedType(this)); - map.put("createdOn", - System.currentTimeMillis() / 1000); - DataCollectionManager.onEvent(this, "download", map); - - DownloadEntry entry = new DownloadEntry(); - - entry.setUrl(apkEntity.getUrl()); - entry.setName(entity.getName()); - entry.setPath(FileUtils.getDownloadPath( - GameDetailsActivity.this, - MD5Utils.getContentMD5(entity.getName() - + "_" - + System.currentTimeMillis()) - + ".apk")); - HashMap meta = new HashMap(); - meta.put("ETag", apkEntity.getEtag()); - meta.put("icon", entity.getIcon()); - meta.put("platform", apkEntity.getPlatform()); - meta.put("gameId", entity.getId()); - meta.put("entrance", entrance + "-游戏详情"); - meta.put("location", "游戏详情:" + entity.getName()); - entry.setMeta(meta); - - DownloadManager.getInstance( - getApplicationContext()).add(entry); - - EventBus.getDefault().post(new EBRedDot(1)); - - gamedetails_tv_download - .setVisibility(View.GONE); - gamedetails_progressbar - .setVisibility(View.VISIBLE); - gamedetails_tv_per.setVisibility(View.VISIBLE); - gamedetails_progressbar.setProgress(0); - gamedetails_tv_per.setText("0.0%"); - - statusMap.put(entry.getUrl(), "downloading"); - - } else { - toast(msg); - } - } - } else { - if (!dismissEntity.isShow()) { - dismissEntity.setShow(true); - DownloadDialog - .getInstance(GameDetailsActivity.this) - .showPopupWindow(v, entity, - entrance + "-游戏详情", statusMap, - "游戏详情:" + entity.getName()); - } - } + download(v); } else { - final Dialog dialog = new Dialog(this); - View view = View.inflate(this, - R.layout.search_history_delete_dialog, null); - TextView title = (TextView) view - .findViewById(R.id.delete_dialog_title); - title.setText("警告"); - TextView content = (TextView) view - .findViewById(R.id.delete_dialog_message); - - content.setText("您当前的网络为2G/3G/4G,下载将会消耗移动流量,是否继续下载?"); - - TextView cancel = (TextView) view - .findViewById(R.id.delete_dialog_cancel); - cancel.setText("取消"); - cancel.setOnClickListener(new OnClickListener() { + DialogUtils.showWarningDialog(this, new DialogUtils.ConfiremListener() { @Override - public void onClick(View v) { - dialog.dismiss(); + public void onConfirem() { + download(v); } }); - TextView confirem = (TextView) view - .findViewById(R.id.delete_dialog_confirm); - confirem.setText("继续"); - confirem.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - dialog.dismiss(); - if (entity.getApk().size() == 1) { - if (gamedetails_tv_download.getText() - .toString().contains("启动")) { - - Map kv = new HashMap(); - kv.put("版本", entity.getApk().get(0) - .getPlatform()); - DataUtils.onEvent(GameDetailsActivity.this, - "游戏启动", entity.getName(), kv); - - PackageUtils - .launchApplicationByPackageName( - getApplicationContext(), - entity.getApk().get(0) - .getPackageName()); - } else { - ApkEntity apkEntity = entity.getApk() - .get(0); - String msg = FileUtils - .isCanDownload(apkEntity.getSize()); - if (TextUtils.isEmpty(msg)) { - Map kv = new HashMap(); - kv.put("版本", apkEntity.getPlatform()); - kv.put("状态", "下载开始"); - DataUtils.onEvent( - GameDetailsActivity.this, - "游戏下载", entity.getName(), kv); - - Map kv2 = new HashMap(); - kv2.put("版本", apkEntity.getPlatform()); - kv2.put("状态", "下载开始"); - kv2.put("位置", entrance + "-游戏详情-开始"); - DataUtils.onEvent( - GameDetailsActivity.this, - "游戏下载位置", entity.getName(), kv2); - - Map kv3 = new HashMap(); - kv3.put("下载", "下载量"); - kv3.put("下载", apkEntity.getPlatform()); - DataUtils.onEvent( - GameDetailsActivity.this, - "插件数据", entity.getName(), kv3); - - Map map = new HashMap(); - map.put("game", entity.getName()); - map.put("method", "正常"); - map.put("platform", - PlatformUtils - .getInstance( - getApplicationContext()) - .getPlatformName( - entity.getApk() - .get(0) - .getPlatform())); - map.put("status", "开始"); - map.put("location", "游戏详情:" + entity.getName()); - map.put("from", entrance); - map.put("network", NetworkUtils.getConnectedType(GameDetailsActivity.this)); - map.put("createdOn", System.currentTimeMillis() / 1000); - DataCollectionManager.onEvent(GameDetailsActivity.this, "download", map); - - DownloadEntry entry = new DownloadEntry(); - - entry.setUrl(apkEntity.getUrl()); - entry.setName(entity.getName()); - entry.setPath(FileUtils - .getDownloadPath( - GameDetailsActivity.this, - MD5Utils.getContentMD5(entity - .getName() - + "_" - + System.currentTimeMillis()) - + ".apk")); - HashMap meta = new HashMap(); - meta.put("ETag", apkEntity.getEtag()); - meta.put("icon", entity.getIcon()); - meta.put("platform", - apkEntity.getPlatform()); - meta.put("gameId", entity.getId()); - meta.put("entrance", entrance + "-游戏详情"); - meta.put("location", - "游戏详情:" + entity.getName()); - entry.setMeta(meta); - - DownloadManager.getInstance( - getApplicationContext()).add( - entry); - - EventBus.getDefault().post( - new EBRedDot(1)); - - gamedetails_tv_download - .setVisibility(View.GONE); - gamedetails_progressbar - .setVisibility(View.VISIBLE); - gamedetails_tv_per - .setVisibility(View.VISIBLE); - gamedetails_progressbar.setProgress(0); - gamedetails_tv_per.setText("0.0%"); - - statusMap.put(entry.getUrl(), - "downloading"); - - } else { - toast(msg); - } - } - } else { - if (!dismissEntity.isShow()) { - dismissEntity.setShow(true); - DownloadDialog.getInstance( - GameDetailsActivity.this) - .showPopupWindow(v, entity, - entrance + "-游戏详情", - statusMap, - "游戏详情:" + entity.getName()); - } - } - } - }); - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - dialog.setContentView(view); - dialog.show(); } } else { toast("稍等片刻~!游戏正在上传中..."); @@ -736,13 +480,21 @@ public class GameDetailsActivity extends BaseFragmentActivity implements System.currentTimeMillis()); DownloadManager.getInstance(getApplicationContext()).sendMessageDelayed(msg, 1000); } else if ("安装".equals(str)) { - String path = downloadEntry.getPath(); + final String path = downloadEntry.getPath(); PackageManager manager = new PackageManager( getApplicationContext()); if (manager.launchSetup(path)) { startActivity(PackageUtils.getInstallIntent(path)); } else { - DialogUtils.showDialog(GameDetailsActivity.this, path); + DialogUtils.showUninstallDialog(this, new DialogUtils.ConfiremListener() { + @Override + public void onConfirem() { + MainActivity.uninstallMap.put( + PackageUtils.getPackageNameByPath(GameDetailsActivity.this, path), path); + startActivity(PackageUtils.getUninstallIntent(GameDetailsActivity.this, + path)); + } + }); } } else if("等待".equals(str)){ @@ -767,6 +519,111 @@ public class GameDetailsActivity extends BaseFragmentActivity implements } } + private void download(View v) { + if (entity.getApk().size() == 1) { + if (gamedetails_tv_download.getText().toString() + .contains("启动")) { + + Map kv = new HashMap(); + kv.put("版本", entity.getApk().get(0).getPlatform()); + DataUtils.onEvent(GameDetailsActivity.this, "游戏启动", + entity.getName(), kv); + + PackageUtils.launchApplicationByPackageName( + getApplicationContext(), entity.getApk() + .get(0).getPackageName()); + } else { + ApkEntity apkEntity = entity.getApk().get(0); + String msg = FileUtils.isCanDownload(apkEntity + .getSize()); + if (TextUtils.isEmpty(msg)) { + Map kv = new HashMap(); + kv.put("版本", apkEntity.getPlatform()); + kv.put("状态", "下载开始"); + DataUtils.onEvent(GameDetailsActivity.this, + "游戏下载", entity.getName(), kv); + + Map kv2 = new HashMap(); + kv2.put("版本", apkEntity.getPlatform()); + kv2.put("状态", "下载开始"); + kv2.put("位置", entrance + "-游戏详情-开始"); + DataUtils.onEvent(GameDetailsActivity.this, + "游戏下载位置", entity.getName(), kv2); + + Map kv3 = new HashMap(); + kv3.put(entrance, "下载数"); + kv3.put(entrance, "下载开始"); + DataUtils.onEvent(GameDetailsActivity.this, + "应用数据", entity.getName(), kv3); + + Map map = new HashMap(); + map.put("game", entity.getName()); + map.put("method", "正常"); + map.put("platform", + PlatformUtils.getInstance( + getApplicationContext()) + .getPlatformName( + entity.getApk().get(0) + .getPlatform())); + map.put("status", "开始"); + map.put("location", "游戏详情:" + entity.getName()); + map.put("from", entrance); + map.put("network", + NetworkUtils.getConnectedType(this)); + map.put("createdOn", + System.currentTimeMillis() / 1000); + DataCollectionManager.onEvent(this, "download", map); + + DownloadEntry entry = new DownloadEntry(); + + entry.setUrl(apkEntity.getUrl()); + entry.setName(entity.getName()); + entry.setPath(FileUtils.getDownloadPath( + GameDetailsActivity.this, + MD5Utils.getContentMD5(entity.getName() + + "_" + + System.currentTimeMillis()) + + ".apk")); + HashMap meta = new HashMap(); + meta.put("ETag", apkEntity.getEtag()); + meta.put("icon", entity.getIcon()); + meta.put("platform", apkEntity.getPlatform()); + meta.put("gameId", entity.getId()); + meta.put("entrance", entrance + "-游戏详情"); + meta.put("location", "游戏详情:" + entity.getName()); + entry.setMeta(meta); + + DownloadManager.getInstance( + getApplicationContext()).add(entry); + + EventBus.getDefault().post(new EBRedDot(1)); + + gamedetails_tv_download + .setVisibility(View.GONE); + gamedetails_progressbar + .setVisibility(View.VISIBLE); + gamedetails_tv_per.setVisibility(View.VISIBLE); + gamedetails_progressbar.setProgress(0); + gamedetails_tv_per.setText("0.0%"); + + statusMap.put(entry.getUrl(), "downloading"); + + } else { + toast(msg); + } + } + } else { + if (!dismissEntity.isShow()) { + dismissEntity.setShow(true); + DownloadDialog + .getInstance(GameDetailsActivity.this) + .showPopupWindow(v, entity, + entrance + "-游戏详情", statusMap, + "游戏详情:" + entity.getName()); + } + } + } + private void showSuccessDialog() { final Dialog dialog = new Dialog(this); View view = View.inflate(this, R.layout.gamedetails_attention_dialog, @@ -905,24 +762,20 @@ public class GameDetailsActivity extends BaseFragmentActivity implements titlebar_tv_details.setClickable(false); titlebar_tv_information.setClickable(true); titlebar_tv_strategy.setClickable(true); - // titlebar_tv_database.setClickable(true); gamedetails_tv_details.setClickable(false); gamedetails_tv_information.setClickable(true); gamedetails_tv_strategy.setClickable(true); - // gamedetails_tv_database.setClickable(true); titlebar_tv_details.setTextColor(getResources().getColor( R.color.theme_colors)); titlebar_tv_information.setTextColor(0xFF333333); titlebar_tv_strategy.setTextColor(0xFF333333); - // titlebar_tv_database.setTextColor(0xFF333333); gamedetails_tv_details.setTextColor(getResources().getColor( R.color.theme_colors)); gamedetails_tv_information.setTextColor(0xFF333333); gamedetails_tv_strategy.setTextColor(0xFF333333); - // gamedetails_tv_database.setTextColor(0xFF333333); break; case 1: if (gamedetails_ll_topbar.getVisibility() == View.VISIBLE) { @@ -933,24 +786,20 @@ public class GameDetailsActivity extends BaseFragmentActivity implements titlebar_tv_details.setClickable(true); titlebar_tv_information.setClickable(false); titlebar_tv_strategy.setClickable(true); - // titlebar_tv_database.setClickable(true); gamedetails_tv_details.setClickable(true); gamedetails_tv_information.setClickable(false); gamedetails_tv_strategy.setClickable(true); - // gamedetails_tv_database.setClickable(true); titlebar_tv_details.setTextColor(0xFF333333); titlebar_tv_information.setTextColor(getResources().getColor( R.color.theme_colors)); titlebar_tv_strategy.setTextColor(0xFF333333); - // titlebar_tv_database.setTextColor(0xFF333333); gamedetails_tv_details.setTextColor(0xFF333333); gamedetails_tv_information.setTextColor(getResources().getColor( R.color.theme_colors)); gamedetails_tv_strategy.setTextColor(0xFF333333); - // gamedetails_tv_database.setTextColor(0xFF333333); break; case 2: if (gamedetails_ll_topbar.getVisibility() == View.VISIBLE) { @@ -961,45 +810,20 @@ public class GameDetailsActivity extends BaseFragmentActivity implements titlebar_tv_details.setClickable(true); titlebar_tv_information.setClickable(true); titlebar_tv_strategy.setClickable(false); - // titlebar_tv_database.setClickable(true); gamedetails_tv_details.setClickable(true); gamedetails_tv_information.setClickable(true); gamedetails_tv_strategy.setClickable(false); - // gamedetails_tv_database.setClickable(true); titlebar_tv_details.setTextColor(0xFF333333); titlebar_tv_information.setTextColor(0xFF333333); titlebar_tv_strategy.setTextColor(getResources().getColor( R.color.theme_colors)); - // titlebar_tv_database.setTextColor(0xFF333333); gamedetails_tv_details.setTextColor(0xFF333333); gamedetails_tv_information.setTextColor(0xFF333333); gamedetails_tv_strategy.setTextColor(getResources().getColor( R.color.theme_colors)); - // gamedetails_tv_database.setTextColor(0xFF333333); - break; - case 3: - titlebar_tv_details.setClickable(true); - titlebar_tv_information.setClickable(true); - titlebar_tv_strategy.setClickable(true); - // titlebar_tv_database.setClickable(false); - - gamedetails_tv_details.setClickable(true); - gamedetails_tv_information.setClickable(true); - gamedetails_tv_strategy.setClickable(true); - // gamedetails_tv_database.setClickable(false); - - titlebar_tv_details.setTextColor(0xFF333333); - titlebar_tv_information.setTextColor(0xFF333333); - titlebar_tv_strategy.setTextColor(0xFF333333); - // titlebar_tv_database.setTextColor(getResources().getColor(R.color.theme_colors)); - - gamedetails_tv_details.setTextColor(0xFF333333); - gamedetails_tv_information.setTextColor(0xFF333333); - gamedetails_tv_strategy.setTextColor(0xFF333333); - // gamedetails_tv_database.setTextColor(getResources().getColor(R.color.theme_colors)); break; } } @@ -1007,10 +831,8 @@ public class GameDetailsActivity extends BaseFragmentActivity implements @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { - if (positionOffset != 0) { - lparams.leftMargin = (int) (width * (positionOffset + position)) - + width / 4; + lparams.leftMargin = (int) (width * (positionOffset + position)) + width / 4; gamedetails_slide_line.setLayoutParams(lparams); titlebar_slide_line.setLayoutParams(lparams); } diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 874560ced1..f3cf1ed3a2 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -56,7 +56,6 @@ import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBPutUrl; import com.gh.gamecenter.eventbus.EBRedDot; import com.gh.gamecenter.eventbus.EBShowDialog; -import com.gh.gamecenter.eventbus.EBSkipNewPlugin; import com.gh.gamecenter.eventbus.EBTopState; import com.gh.gamecenter.eventbus.EBUISwitch; import com.gh.gamecenter.game.GameFragment; @@ -1115,16 +1114,6 @@ public class MainActivity extends BaseFragmentActivity implements entryMap.put(url.getPackageName(), url.getUrl()); } - public void onEventMainThread(EBSkipNewPlugin busFive) { - if (busFive.getType() == 0) { - if (isFirst) { - GameFragment.isFirst = true; - } - onClick(home2Layout); - EventBus.getDefault().post(new EBSkipNewPlugin(1)); - } - } - public void onEventMainThread(EBPackage busFour) { String packageName = busFour.getPackageName(); // 添加进已安装map中 diff --git a/app/src/main/java/com/gh/gamecenter/NewsActivity.java b/app/src/main/java/com/gh/gamecenter/NewsActivity.java index 9a685f09de..70be43d390 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsActivity.java @@ -349,262 +349,18 @@ public class NewsActivity extends BaseActivity implements OnClickListener { private long[] mHits = new long[2]; @Override - public void onClick(View v) { + public void onClick(final View v) { if (v == essaydetails_tv_download) { if (gameEntity != null && !gameEntity.getApk().isEmpty()) { if (NetworkUtils.isWifiConnected(this)) { - if (gameEntity.getApk().size() == 1) { - if (essaydetails_tv_download.getText().toString() - .contains("启动")) { - - Map kv = new HashMap(); - kv.put("版本", gameEntity.getApk().get(0) - .getPlatform()); - DataUtils.onEvent(NewsActivity.this, "游戏启动", - gameEntity.getName(), kv); - - PackageUtils.launchApplicationByPackageName( - getApplicationContext(), gameEntity - .getApk().get(0).getPackageName()); - } else { - ApkEntity apkEntity = gameEntity.getApk().get(0); - String msg = FileUtils.isCanDownload(apkEntity - .getSize()); - if (TextUtils.isEmpty(msg)) { - Map kv = new HashMap(); - kv.put("版本", apkEntity.getPlatform()); - kv.put("状态", "下载开始"); - DataUtils.onEvent(NewsActivity.this, "游戏下载", - gameEntity.getName(), kv); - - Map kv2 = new HashMap(); - kv2.put("版本", apkEntity.getPlatform()); - kv2.put("状态", "下载开始"); - kv2.put("位置", entrance + "-文章详情-开始"); - DataUtils.onEvent(NewsActivity.this, "游戏下载位置", - gameEntity.getName(), kv2); - - Map kv3 = new HashMap(); - kv3.put(entrance, "下载数"); - kv3.put(entrance, "下载开始"); - DataUtils.onEvent(NewsActivity.this, "应用数据", - gameEntity.getName(), kv3); - - Map map = new HashMap(); - map.put("game", gameEntity.getName()); - map.put("method", "正常"); - map.put("platform", - PlatformUtils.getInstance( - getApplicationContext()) - .getPlatformName( - gameEntity.getApk() - .get(0) - .getPlatform())); - map.put("status", "开始"); - map.put("location", "新闻详情:" + entity.getTitle()); - map.put("from", entrance); - map.put("network", - NetworkUtils.getConnectedType(this)); - map.put("createdOn", - System.currentTimeMillis() / 1000); - DataCollectionManager.onEvent(this, "download", map); - - DownloadEntry entry = new DownloadEntry(); - - entry.setUrl(apkEntity.getUrl()); - entry.setName(gameEntity.getName()); - entry.setPath(FileUtils.getDownloadPath( - NewsActivity.this, - MD5Utils.getContentMD5(gameEntity - .getName() - + "_" - + System.currentTimeMillis()) - + ".apk")); - HashMap meta = new HashMap(); - meta.put("ETag", apkEntity.getEtag()); - meta.put("icon", gameEntity.getIcon()); - meta.put("platform", apkEntity.getPlatform()); - meta.put("gameId", gameEntity.getId()); - meta.put("entrance", entrance + "-文章详情"); - meta.put("location", - "新闻详情:" + entity.getTitle()); - entry.setMeta(meta); - - DownloadManager.getInstance( - getApplicationContext()).add(entry); - - EventBus.getDefault().post(new EBRedDot(1)); - - essaydetails_tv_download - .setVisibility(View.GONE); - essaydetails_progressbar - .setVisibility(View.VISIBLE); - essaydetails_tv_per.setVisibility(View.VISIBLE); - essaydetails_progressbar.setProgress(0); - essaydetails_tv_per.setText("0.0%"); - - statusMap.put(entry.getUrl(), "downloading"); - - } else { - toast(msg); - } - } - } else { - if (!dismissEntity.isShow()) { - dismissEntity.setShow(true); - DownloadDialog.getInstance(NewsActivity.this) - .showPopupWindow(v, gameEntity, - entrance + "-文章详情", statusMap, - "新闻详情:" + entity.getTitle()); - } - } + download(v); } else { - final Dialog dialog = new Dialog(this); - View view = View.inflate(this, - R.layout.search_history_delete_dialog, null); - TextView title = (TextView) view - .findViewById(R.id.delete_dialog_title); - title.setText("警告"); - TextView content = (TextView) view - .findViewById(R.id.delete_dialog_message); - - content.setText("您当前的网络为2G/3G/4G,下载将会消耗移动流量,是否继续下载?"); - - TextView cancel = (TextView) view - .findViewById(R.id.delete_dialog_cancel); - cancel.setText("取消"); - cancel.setOnClickListener(new OnClickListener() { + DialogUtils.showWarningDialog(this, new DialogUtils.ConfiremListener() { @Override - public void onClick(View v) { - dialog.dismiss(); + public void onConfirem() { + download(v); } }); - TextView confirem = (TextView) view - .findViewById(R.id.delete_dialog_confirm); - confirem.setText("继续"); - confirem.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - dialog.dismiss(); - if (gameEntity.getApk().size() == 1) { - if (essaydetails_tv_download.getText() - .toString().contains("启动")) { - - Map kv = new HashMap(); - kv.put("版本", gameEntity.getApk().get(0) - .getPlatform()); - DataUtils.onEvent(NewsActivity.this, "游戏启动", - gameEntity.getName(), kv); - - PackageUtils - .launchApplicationByPackageName( - getApplicationContext(), - gameEntity.getApk().get(0) - .getPackageName()); - } else { - ApkEntity apkEntity = gameEntity.getApk() - .get(0); - String msg = FileUtils - .isCanDownload(apkEntity.getSize()); - if (TextUtils.isEmpty(msg)) { - Map kv = new HashMap(); - kv.put("版本", apkEntity.getPlatform()); - kv.put("状态", "下载开始"); - DataUtils.onEvent(NewsActivity.this, - "游戏下载", gameEntity.getName(), - kv); - - Map kv2 = new HashMap(); - kv2.put("版本", apkEntity.getPlatform()); - kv2.put("状态", "下载开始"); - kv2.put("位置", entrance + "-文章详情-开始"); - DataUtils.onEvent(NewsActivity.this, - "游戏下载位置", gameEntity.getName(), - kv2); - - Map map = new HashMap(); - map.put("game", gameEntity.getName()); - map.put("method", "正常"); - map.put("platform", - PlatformUtils - .getInstance( - getApplicationContext()) - .getPlatformName( - gameEntity - .getApk() - .get(0) - .getPlatform())); - map.put("status", "开始"); - map.put("location", - "新闻详情:" + entity.getTitle()); - map.put("from", entrance); - map.put("network", - NetworkUtils - .getConnectedType(NewsActivity.this)); - map.put("createdOn", - System.currentTimeMillis() / 1000); - DataCollectionManager.onEvent(NewsActivity.this, "download", map); - - DownloadEntry entry = new DownloadEntry(); - - entry.setUrl(apkEntity.getUrl()); - entry.setName(gameEntity.getName()); - entry.setPath(FileUtils - .getDownloadPath( - NewsActivity.this, - MD5Utils.getContentMD5(gameEntity - .getName() - + "_" - + System.currentTimeMillis()) - + ".apk")); - HashMap meta = new HashMap(); - meta.put("ETag", apkEntity.getEtag()); - meta.put("icon", gameEntity.getIcon()); - meta.put("platform", - apkEntity.getPlatform()); - meta.put("gameId", gameEntity.getId()); - meta.put("entrance", entrance + "-文章详情"); - meta.put("location", - "新闻详情:" + entity.getTitle()); - entry.setMeta(meta); - - DownloadManager.getInstance( - getApplicationContext()).add( - entry); - - EventBus.getDefault().post( - new EBRedDot(1)); - - essaydetails_tv_download - .setVisibility(View.GONE); - essaydetails_progressbar - .setVisibility(View.VISIBLE); - essaydetails_tv_per - .setVisibility(View.VISIBLE); - essaydetails_progressbar.setProgress(0); - essaydetails_tv_per.setText("0.0%"); - - statusMap.put(entry.getUrl(), - "downloading"); - - } else { - toast(msg); - } - } - } else { - if (!dismissEntity.isShow()) { - dismissEntity.setShow(true); - DownloadDialog.getInstance( - NewsActivity.this).showPopupWindow( - v, gameEntity, entrance + "-文章详情", - statusMap, "新闻详情:" + entity.getTitle()); - } - } - } - }); - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - dialog.setContentView(view); - dialog.show(); } } else { toast("稍等片刻~!游戏正在上传中..."); @@ -633,13 +389,21 @@ public class NewsActivity extends BaseActivity implements OnClickListener { System.currentTimeMillis()); DownloadManager.getInstance(getApplicationContext()).sendMessageDelayed(msg, 1000); } else if ("安装".equals(str)) { - String path = downloadEntry.getPath(); + final String path = downloadEntry.getPath(); PackageManager manager = new PackageManager( getApplicationContext()); if (manager.launchSetup(path)) { startActivity(PackageUtils.getInstallIntent(path)); } else { - DialogUtils.showDialog(NewsActivity.this, path); + DialogUtils.showUninstallDialog(this, new DialogUtils.ConfiremListener() { + @Override + public void onConfirem() { + MainActivity.uninstallMap.put( + PackageUtils.getPackageNameByPath(NewsActivity.this, path), path); + startActivity(PackageUtils.getUninstallIntent(NewsActivity.this, + path)); + } + }); } } else if ("等待".equals(str)) { @@ -663,6 +427,114 @@ public class NewsActivity extends BaseActivity implements OnClickListener { } } + private void download(View v) { + if (gameEntity.getApk().size() == 1) { + if (essaydetails_tv_download.getText().toString() + .contains("启动")) { + + Map kv = new HashMap(); + kv.put("版本", gameEntity.getApk().get(0) + .getPlatform()); + DataUtils.onEvent(NewsActivity.this, "游戏启动", + gameEntity.getName(), kv); + + PackageUtils.launchApplicationByPackageName( + getApplicationContext(), gameEntity + .getApk().get(0).getPackageName()); + } else { + ApkEntity apkEntity = gameEntity.getApk().get(0); + String msg = FileUtils.isCanDownload(apkEntity + .getSize()); + if (TextUtils.isEmpty(msg)) { + Map kv = new HashMap(); + kv.put("版本", apkEntity.getPlatform()); + kv.put("状态", "下载开始"); + DataUtils.onEvent(NewsActivity.this, "游戏下载", + gameEntity.getName(), kv); + + Map kv2 = new HashMap(); + kv2.put("版本", apkEntity.getPlatform()); + kv2.put("状态", "下载开始"); + kv2.put("位置", entrance + "-文章详情-开始"); + DataUtils.onEvent(NewsActivity.this, "游戏下载位置", + gameEntity.getName(), kv2); + + Map kv3 = new HashMap(); + kv3.put(entrance, "下载数"); + kv3.put(entrance, "下载开始"); + DataUtils.onEvent(NewsActivity.this, "应用数据", + gameEntity.getName(), kv3); + + Map map = new HashMap(); + map.put("game", gameEntity.getName()); + map.put("method", "正常"); + map.put("platform", + PlatformUtils.getInstance( + getApplicationContext()) + .getPlatformName( + gameEntity.getApk() + .get(0) + .getPlatform())); + map.put("status", "开始"); + map.put("location", "新闻详情:" + entity.getTitle()); + map.put("from", entrance); + map.put("network", + NetworkUtils.getConnectedType(this)); + map.put("createdOn", + System.currentTimeMillis() / 1000); + DataCollectionManager.onEvent(this, "download", map); + + DownloadEntry entry = new DownloadEntry(); + + entry.setUrl(apkEntity.getUrl()); + entry.setName(gameEntity.getName()); + entry.setPath(FileUtils.getDownloadPath( + NewsActivity.this, + MD5Utils.getContentMD5(gameEntity + .getName() + + "_" + + System.currentTimeMillis()) + + ".apk")); + HashMap meta = new HashMap(); + meta.put("ETag", apkEntity.getEtag()); + meta.put("icon", gameEntity.getIcon()); + meta.put("platform", apkEntity.getPlatform()); + meta.put("gameId", gameEntity.getId()); + meta.put("entrance", entrance + "-文章详情"); + meta.put("location", + "新闻详情:" + entity.getTitle()); + entry.setMeta(meta); + + DownloadManager.getInstance( + getApplicationContext()).add(entry); + + EventBus.getDefault().post(new EBRedDot(1)); + + essaydetails_tv_download + .setVisibility(View.GONE); + essaydetails_progressbar + .setVisibility(View.VISIBLE); + essaydetails_tv_per.setVisibility(View.VISIBLE); + essaydetails_progressbar.setProgress(0); + essaydetails_tv_per.setText("0.0%"); + + statusMap.put(entry.getUrl(), "downloading"); + + } else { + toast(msg); + } + } + } else { + if (!dismissEntity.isShow()) { + dismissEntity.setShow(true); + DownloadDialog.getInstance(NewsActivity.this) + .showPopupWindow(v, gameEntity, + entrance + "-文章详情", statusMap, + "新闻详情:" + entity.getTitle()); + } + } + } + Runnable runnable = new Runnable() { @Override public void run() { diff --git a/app/src/main/java/com/gh/gamecenter/OriginalActivity.java b/app/src/main/java/com/gh/gamecenter/OriginalActivity.java deleted file mode 100644 index d0225d2b6a..0000000000 --- a/app/src/main/java/com/gh/gamecenter/OriginalActivity.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.gh.gamecenter; - -import android.os.Bundle; -import android.os.Handler; -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 com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseActivity; -import com.gh.common.view.VerticalItemDecoration; -import com.gh.gamecenter.adapter.OriginalAdapter; - -/** - * Created by LGT on 2016/6/12. - */ -public class OriginalActivity extends BaseActivity implements SwipeRefreshLayout.OnRefreshListener { - - private SwipeRefreshLayout original_swipe_refresh; - private RecyclerView original_list; - private LinearLayoutManager layoutManager; - private OriginalAdapter adapter; - private ProgressBarCircularIndeterminate original_pb_loading; - private LinearLayout reuse_no_connection; - - private boolean isDestroy; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - View contentView = View.inflate(this, R.layout.activity_original, null); - - init(contentView, "原创"); - - isDestroy = false; - - original_swipe_refresh.setColorSchemeResources(R.color.theme_colors); - original_swipe_refresh.setOnRefreshListener(this); - - reuse_no_connection.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - original_swipe_refresh.setRefreshing(true); - original_list.setVisibility(View.VISIBLE); - original_pb_loading.setVisibility(View.VISIBLE); - reuse_no_connection.setVisibility(View.GONE); - } - }); - - original_list.setHasFixedSize(true); - layoutManager = new LinearLayoutManager(this); - original_list.setLayoutManager(layoutManager); - adapter = new OriginalAdapter(this, original_list, original_swipe_refresh, - original_pb_loading, reuse_no_connection, true); - original_list.setAdapter(adapter); - original_list.addItemDecoration(new VerticalItemDecoration(this, 1)); - original_list.setOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrollStateChanged(RecyclerView recyclerView, int newState) { - super.onScrollStateChanged(recyclerView, newState); - - if (!isDestroy && newState == RecyclerView.SCROLL_STATE_IDLE - && layoutManager.findLastVisibleItemPosition() + 1 == adapter.getItemCount()) { - if (!adapter.isRemove() && !adapter.isLoading() && !adapter.isNetworkError()) { - adapter.addList(adapter.getNewsList().size()); - } - } - } - }); - } - - private Handler handler = new Handler(); - - Runnable runnable = new Runnable() { - @Override - public void run() { - if (!isDestroy) { - adapter = new OriginalAdapter(OriginalActivity.this, original_list, original_swipe_refresh, - original_pb_loading, reuse_no_connection, true); - original_list.setAdapter(adapter); - } - } - }; - - @Override - public void onRefresh() { - handler.postDelayed(runnable, 1000); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - isDestroy = true; - original_swipe_refresh = null; - original_list = null; - layoutManager = null; - adapter = null; - original_pb_loading = null; - reuse_no_connection = null; - handler = null; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java index fe920f2f6c..187abbb262 100644 --- a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java @@ -229,7 +229,7 @@ public class SplashScreenActivity extends BaseActivity { getPlatform(); } - getDownloadStatus(); +// getDownloadStatus(); getUISetting(); diff --git a/app/src/main/java/com/gh/gamecenter/HotCardActivity.java b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java similarity index 97% rename from app/src/main/java/com/gh/gamecenter/HotCardActivity.java rename to app/src/main/java/com/gh/gamecenter/SubjectActivity.java index ccd29e1071..15d08c1022 100644 --- a/app/src/main/java/com/gh/gamecenter/HotCardActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java @@ -43,7 +43,7 @@ import java.util.HashMap; import java.util.List; import java.util.concurrent.LinkedBlockingQueue; -public class HotCardActivity extends BaseActivity { +public class SubjectActivity extends BaseActivity { private RecyclerView hotcard_list; private HotCardAdapter adapter; @@ -171,7 +171,7 @@ public class HotCardActivity extends BaseActivity { } }); - AppController.addToRequestQueue(request, HotCardActivity.class); + AppController.addToRequestQueue(request, SubjectActivity.class); } private void processingData(JSONArray response) { @@ -260,7 +260,7 @@ public class HotCardActivity extends BaseActivity { public void onDestroy() { super.onDestroy(); isDestroy = true; - AppController.canclePendingRequests(HotCardActivity.class); + AppController.canclePendingRequests(SubjectActivity.class); hotcard_list = null; adapter = null; hotcard_ll_loading = null; diff --git a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java index b10ae05452..d243430368 100644 --- a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java @@ -1,7 +1,6 @@ package com.gh.gamecenter; import android.content.Intent; -import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -16,12 +15,6 @@ import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.widget.RelativeLayout; -//import com.facebook.drawee.backends.pipeline.Fresco; -//import com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilder; -//import com.facebook.drawee.view.SimpleDraweeView; -//import com.facebook.imagepipeline.request.ImageRequest; -//import com.facebook.imagepipeline.request.ImageRequestBuilder; -import com.android.volley.toolbox.ImageRequest; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; import com.gh.base.BaseActivity; import com.gh.common.util.DisplayUtils; @@ -34,6 +27,12 @@ import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; +//import com.facebook.drawee.backends.pipeline.Fresco; +//import com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilder; +//import com.facebook.drawee.view.SimpleDraweeView; +//import com.facebook.imagepipeline.request.ImageRequest; +//import com.facebook.imagepipeline.request.ImageRequestBuilder; + /** * 查看游戏截图页面 * diff --git a/app/src/main/java/com/gh/gamecenter/adapter/HotCardAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/HotCardAdapter.java index 6e05abbdd1..e96c768730 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/HotCardAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/HotCardAdapter.java @@ -14,14 +14,12 @@ import com.gh.common.util.DownloadItemUtils; import com.gh.common.util.GameViewUtils; import com.gh.common.util.ImageUtils; import com.gh.gamecenter.GameDetailsActivity; -import com.gh.gamecenter.HotCardActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; import com.gh.gamecenter.entity.DismissEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; -import com.gh.gamecenter.game.Game1FragmentAdapter; import java.util.ArrayList; import java.util.Date; 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 44a12af9f4..8b2b1edd93 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java @@ -13,9 +13,9 @@ import android.widget.ImageView; import com.gh.common.util.ImageUtils; import com.gh.gamecenter.GameDetailsActivity; -import com.gh.gamecenter.HotCardActivity; import com.gh.gamecenter.NewsActivity; import com.gh.gamecenter.R; +import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.entity.SlideEntity; import java.util.List; @@ -96,9 +96,9 @@ public class ImagePagerAdapter extends RecyclingPagerAdapter { intent.putExtra("entrance", "插件-滚动图"); context.startActivity(intent); } else if ("column".equals(slideEntity.getType())) { - Intent intent = new Intent(context, HotCardActivity.class); + Intent intent = new Intent(context, SubjectActivity.class); intent.putExtra("id", slideEntity.getLink()); -// intent.putExtra("name", slideEntity.getType()); + intent.putExtra("name", slideEntity.getName()); context.startActivity(intent); } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java new file mode 100644 index 0000000000..9dd0f3f0ef --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java @@ -0,0 +1,30 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.gh.gamecenter.R; + +/** + * Created by LGT on 2016/7/5. + */ +public class GameHeadViewHolder extends RecyclerView.ViewHolder { + + public ImageView thumb; + public TextView title; + public LinearLayout link; + public TextView more; + + public GameHeadViewHolder(View itemView) { + super(itemView); + + this.thumb = (ImageView) itemView.findViewById(R.id.head_thumb); + this.title = (TextView) itemView.findViewById(R.id.head_title); + this.link = (LinearLayout) itemView.findViewById(R.id.head_link); + this.more = (TextView) itemView.findViewById(R.id.head_more); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.java new file mode 100644 index 0000000000..fc11a39385 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.java @@ -0,0 +1,22 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.ImageView; + +import com.gh.gamecenter.R; + +/** + * Created by LGT on 2016/7/5. + */ +public class GameImageViewHolder extends RecyclerView.ViewHolder { + + public ImageView image; + + public GameImageViewHolder(View itemView) { + super(itemView); + + image = (ImageView) itemView.findViewById(R.id.home_game_iv_image); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/OriginalViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java similarity index 85% rename from app/src/main/java/com/gh/gamecenter/adapter/viewholder/OriginalViewHolder.java rename to app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java index f259332d71..6cb598095e 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/OriginalViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java @@ -11,9 +11,7 @@ import com.gh.gamecenter.R; /** * Created by LGT on 2016/6/6. */ -public class OriginalViewHolder extends RecyclerView.ViewHolder { - - public View view; +public class NewsImage1ViewHolder extends RecyclerView.ViewHolder { public ImageView fm_read_iv_thumb; public TextView fm_read_tv_title; @@ -21,9 +19,9 @@ public class OriginalViewHolder extends RecyclerView.ViewHolder { public TextView fm_read_tv_read; public TextView fm_read_tv_type; - public OriginalViewHolder(View itemView) { + public NewsImage1ViewHolder(View itemView) { super(itemView); - view = itemView; + fm_read_iv_thumb = (ImageView) itemView.findViewById(R.id.fm_read_iv_thumb); fm_read_tv_title = (TextView) itemView.findViewById(R.id.fm_read_tv_title); fm_read_ll_read = (LinearLayout) itemView.findViewById(R.id.fm_read_ll_read); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java new file mode 100644 index 0000000000..e1cbe2240f --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java @@ -0,0 +1,36 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.gh.gamecenter.R; + +/** + * Created by LGT on 2016/7/5. + */ +public class NewsImage2ViewHolder extends RecyclerView.ViewHolder { + + public TextView fm_read2_special2_title; + public ImageView fm_read2_special2_thumb1; + public ImageView fm_read2_special2_thumb2; + public ImageView fm_read2_special2_thumb3; + public LinearLayout fm_read2_special2_ll_read; + public TextView fm_read2_special2_tv_read; + public TextView fm_read2_special2_tv_type; + + public NewsImage2ViewHolder(View itemView) { + super(itemView); + + fm_read2_special2_title = (TextView) itemView.findViewById(R.id.fm_read2_special2_title); + fm_read2_special2_thumb1 = (ImageView) itemView.findViewById(R.id.fm_read2_special2_thumb1); + fm_read2_special2_thumb2 = (ImageView) itemView.findViewById(R.id.fm_read2_special2_thumb2); + fm_read2_special2_thumb3 = (ImageView) itemView.findViewById(R.id.fm_read2_special2_thumb3); + fm_read2_special2_ll_read = (LinearLayout) itemView.findViewById(R.id.fm_read2_special2_ll_read); + fm_read2_special2_tv_read = (TextView) itemView.findViewById(R.id.fm_read2_special2_tv_read); + fm_read2_special2_tv_type = (TextView) itemView.findViewById(R.id.fm_read2_special2_tv_type); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java new file mode 100644 index 0000000000..cdf09980ac --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java @@ -0,0 +1,32 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.gh.gamecenter.R; + +/** + * Created by LGT on 2016/7/5. + */ +public class NewsImage3ViewHolder extends RecyclerView.ViewHolder { + + public TextView fm_read2_special1_title; + public ImageView fm_read2_special1_thumb; + public LinearLayout fm_read2_special1_ll_read; + public TextView fm_read2_special1_tv_read; + public TextView fm_read2_special1_tv_type; + + public NewsImage3ViewHolder(View itemView) { + super(itemView); + + fm_read2_special1_title = (TextView) itemView.findViewById(R.id.fm_read2_special1_title); + fm_read2_special1_thumb = (ImageView) itemView.findViewById(R.id.fm_read2_special1_thumb); + fm_read2_special1_ll_read = (LinearLayout) itemView.findViewById(R.id.fm_read2_special1_ll_read); + fm_read2_special1_tv_read = (TextView) itemView.findViewById(R.id.fm_read2_special1_tv_read); + fm_read2_special1_tv_type = (TextView) itemView.findViewById(R.id.fm_read2_special1_tv_type); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/download/DownLoadManagerFragment.java b/app/src/main/java/com/gh/gamecenter/download/DownLoadManagerFragment.java index 8ccc4371c7..c621cfa142 100644 --- a/app/src/main/java/com/gh/gamecenter/download/DownLoadManagerFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/DownLoadManagerFragment.java @@ -40,6 +40,7 @@ import com.gh.download.DownloadEntry; import com.gh.download.DownloadManager; import com.gh.download.DownloadStatus; import com.gh.gamecenter.MainActivity; +import com.gh.gamecenter.NewsActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBDownloadChanged; import com.gh.gamecenter.eventbus.EBDownloadDelete; @@ -332,7 +333,7 @@ public class DownLoadManagerFragment extends Fragment { DownloadManager.getInstance(getActivity()).sendMessageDelayed(msg, 1000); } else if ("安装".equals(str)) { DownloadEntry downloadEntry = list.get(getPosition() - 1); - String path = downloadEntry.getPath(); + final String path = downloadEntry.getPath(); if (downloadEntry.getMeta().get("isPlugin") != null) { Map kv6 = new HashMap(); kv6.put("操作", "点击安装完成"); @@ -354,7 +355,15 @@ public class DownLoadManagerFragment extends Fragment { startActivity(PackageUtils .getInstallIntent(path)); } else { - DialogUtils.showDialog(getActivity(), path); + DialogUtils.showUninstallDialog(getActivity(), new DialogUtils.ConfiremListener() { + @Override + public void onConfirem() { + MainActivity.uninstallMap.put( + PackageUtils.getPackageNameByPath(getActivity(), path), path); + startActivity(PackageUtils.getUninstallIntent(getActivity(), + path)); + } + }); } } } diff --git a/app/src/main/java/com/gh/gamecenter/entity/CommentEntity.java b/app/src/main/java/com/gh/gamecenter/entity/CommentEntity.java deleted file mode 100644 index 4bdc1bde31..0000000000 --- a/app/src/main/java/com/gh/gamecenter/entity/CommentEntity.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.gh.gamecenter.entity; - -import com.google.gson.annotations.SerializedName; - -public class CommentEntity { - - @SerializedName("_id") - private String id; - - private String content; - private String news_id; - private UserEntity user; - private FeedbackEntity feedback; - private long time; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getNews_id() { - return news_id; - } - - public void setNews_id(String news_id) { - this.news_id = news_id; - } - - public long getTime() { - return time; - } - - public void setTime(long time) { - this.time = time; - } - - public UserEntity getUser() { - return user; - } - - public void setUser(UserEntity user) { - this.user = user; - } - - public FeedbackEntity getFeedback() { - return feedback; - } - - public void setFeedback(FeedbackEntity feedback) { - this.feedback = feedback; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.java b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.java index 796f27468c..126c7eb5f2 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.java @@ -35,6 +35,8 @@ public class GameEntity { private String type; + private String pluginPlatform; + public String getId() { return id; } @@ -134,4 +136,30 @@ public class GameEntity { this.type = type; } + public String getPluginPlatform() { + return pluginPlatform; + } + + public void setPluginPlatform(String pluginPlatform) { + this.pluginPlatform = pluginPlatform; + } + + public GameEntity clone() { + GameEntity gameEntity = new GameEntity(); + gameEntity.setId(id); + gameEntity.setIcon(icon); + gameEntity.setName(name); + gameEntity.setBrief(brief); + gameEntity.setTag(new ArrayList(tag)); + gameEntity.setApk(new ArrayList(apk)); + gameEntity.setSlide(slide); + gameEntity.setTest(test); + gameEntity.setDownloadAddWord(downloadAddWord); + gameEntity.setEntryMap(new ArrayMap(entryMap)); + gameEntity.setImage(image); + gameEntity.setType(type); + gameEntity.setPluginPlatform(pluginPlatform); + return gameEntity; + } + } diff --git a/app/src/main/java/com/gh/gamecenter/entity/SlideEntity.java b/app/src/main/java/com/gh/gamecenter/entity/SlideEntity.java index 9d64804857..d787a69347 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/SlideEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/SlideEntity.java @@ -1,5 +1,7 @@ package com.gh.gamecenter.entity; +import com.google.gson.annotations.SerializedName; + /** * Created by khy on 2016/6/29. */ @@ -11,6 +13,9 @@ public class SlideEntity { private String type; + @SerializedName("text") + private String name; + public void setImage(String image){ this.image = image; } @@ -35,4 +40,12 @@ public class SlideEntity { return this.type; } + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + } diff --git a/app/src/main/java/com/gh/gamecenter/entity/UserEntity.java b/app/src/main/java/com/gh/gamecenter/entity/UserEntity.java deleted file mode 100644 index a39644356e..0000000000 --- a/app/src/main/java/com/gh/gamecenter/entity/UserEntity.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.gh.gamecenter.entity; - -public class UserEntity { - - private String account; - private String name; - private String icon; - private String sign; - private String mobileNumber; - private boolean isActivation; - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getSign() { - return sign; - } - - public void setSign(String sign) { - this.sign = sign; - } - - public String getMobileNumber() { - return mobileNumber; - } - - public void setMobileNumber(String mobileNumber) { - this.mobileNumber = mobileNumber; - } - - public boolean isActivation() { - return isActivation; - } - - public void setActivation(boolean isActivation) { - this.isActivation = isActivation; - } - - @Override - public String toString() { - return "UserEntity [account=" + account + ", name=" + name + ", icon=" - + icon + ", sign=" + sign + ", mobileNumber=" + mobileNumber - + ", isActivation=" + isActivation + "]"; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/eventbus/EBLogout.java b/app/src/main/java/com/gh/gamecenter/eventbus/EBLogout.java deleted file mode 100644 index 20d16e711b..0000000000 --- a/app/src/main/java/com/gh/gamecenter/eventbus/EBLogout.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gh.gamecenter.eventbus; - -public class EBLogout { - - private int type; - - public EBLogout(int type) { - this.type = type; - } - - public int getType() { - return type; - } - - public void setType(int type) { - this.type = type; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/eventbus/EBSkipNewPlugin.java b/app/src/main/java/com/gh/gamecenter/eventbus/EBSkipNewPlugin.java deleted file mode 100644 index 35866c546b..0000000000 --- a/app/src/main/java/com/gh/gamecenter/eventbus/EBSkipNewPlugin.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gh.gamecenter.eventbus; - -public class EBSkipNewPlugin { - - private int type; - - public EBSkipNewPlugin(int type) { - super(); - this.type = type; - } - - public int getType() { - return type; - } - - public void setType(int type) { - this.type = type; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/eventbus/EBSms.java b/app/src/main/java/com/gh/gamecenter/eventbus/EBSms.java deleted file mode 100644 index 5e4529415b..0000000000 --- a/app/src/main/java/com/gh/gamecenter/eventbus/EBSms.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gh.gamecenter.eventbus; - -public class EBSms { - - private String type; - private String code; - - public EBSms(String type, String code) { - this.type = type; - this.code = code; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/game/Game1Fragment.java b/app/src/main/java/com/gh/gamecenter/game/Game1Fragment.java index 0831443e75..20a8e8bd41 100644 --- a/app/src/main/java/com/gh/gamecenter/game/Game1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/game/Game1Fragment.java @@ -17,6 +17,8 @@ import android.view.ViewGroup; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; import com.gh.common.constant.Constants; import com.gh.common.util.DownloadItemUtils; +import com.gh.common.util.PlatformUtils; +import com.gh.common.util.Utils; import com.gh.common.view.VerticalItemDecoration; import com.gh.download.DataWatcher; import com.gh.download.DownloadEntry; @@ -28,7 +30,6 @@ import com.gh.gamecenter.entity.SubjectEntity; import com.gh.gamecenter.eventbus.EBDownloadDelete; import com.gh.gamecenter.eventbus.EBPWDismiss; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -82,14 +83,18 @@ public class Game1Fragment extends Fragment implements SwipeRefreshLayout.OnRefr @Override public void onDataChanged( HashMap downloadingEntries) { - for (Map.Entry entry : downloadingEntries - .entrySet()) { + for (Map.Entry entry : downloadingEntries.entrySet()) { DownloadEntry downloadEntry = entry.getValue(); - Integer location = locationMap.get(downloadEntry.getName()); + Integer location; + String PluginPlatform = downloadEntry.getMeta().get("PluginPlatform"); + if (PluginPlatform != null) { + location = locationMap.get(downloadEntry.getName() + " - " + PluginPlatform); + } else { + location = locationMap.get(downloadEntry.getName()); + } if (location != null) { int index = location.intValue(); - GameEntity detailedEntity = getEntityByLocation(index); if (detailedEntity != null) { @@ -102,15 +107,22 @@ public class Game1Fragment extends Fragment implements SwipeRefreshLayout.OnRefr }; private GameEntity getEntityByLocation(int position) { - List list = adapter.getSubjectList(); + List pluginList = adapter.getPluginList(); + List subjectList = adapter.getSubjectList(); + + if (!pluginList.isEmpty() && position > 1 && position <= 1 + pluginList.size()) { + return pluginList.get(position - 2); + } int offset = 1; - GameEntity gameEntity; - for (int i = 0, size = list.size(); i < size; i++) { - if (position > offset && position <= list.get(i).getData().size() + offset) { - return list.get(i).getData().get(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) { + return subjectList.get(i).getData().get(position - offset - 1); } - offset = list.get(i).getData().size() + offset + 1; + offset = subjectList.get(i).getData().size() + offset + 1; } return null; diff --git a/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java index d0390aab1d..8b2e949ea5 100644 --- a/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java @@ -28,28 +28,39 @@ import com.gh.common.util.DisplayUtils; import com.gh.common.util.DownloadItemUtils; import com.gh.common.util.GameViewUtils; import com.gh.common.util.ImageUtils; +import com.gh.common.util.PlatformUtils; import com.gh.common.util.TimestampUtils; +import com.gh.common.util.Utils; import com.gh.common.view.AutoScrollViewPager; import com.gh.gamecenter.GameDetailsActivity; -import com.gh.gamecenter.HotCardActivity; import com.gh.gamecenter.NewsActivity; import com.gh.gamecenter.R; +import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.adapter.ImagePagerAdapter; +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.db.info.ConcernInfo; +import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.DismissEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.SlideEntity; import com.gh.gamecenter.entity.SubjectEntity; +import com.gh.gamecenter.manager.ConcernManager; +import com.gh.gamecenter.manager.PackageManager; import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; +import com.gh.gamecenter.volley.extended.JsonObjectExtendedRequest; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import org.json.JSONArray; +import org.json.JSONObject; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.concurrent.LinkedBlockingQueue; @@ -72,6 +83,7 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter slideList; + private List pluginList; private List subjectList; private boolean isSlideError; @@ -98,6 +110,7 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter(); + pluginList = new ArrayList(); subjectList = new ArrayList(); isSlideError = false; @@ -113,6 +126,7 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter() { @Override public void onResponse(JSONArray response) { @@ -162,7 +176,12 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter list = gson.fromJson(response.toString(), listType); if (list != null && !list.isEmpty()) { subjectList = list; - notifyItemRangeInserted(1, getItemCount() - 1); + if (pluginList.isEmpty()) { + notifyItemRangeInserted(1, getItemCount() - 1); + } else { + int start = 2 + pluginList.size(); + notifyItemRangeInserted(start, getItemCount() - start); + } initLocationMap(); } } @@ -176,30 +195,119 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter infos = concernManager.getInstalledGame(); + final int size = infos.size(); + final List list = new ArrayList(); + count = 0; + for (ConcernInfo info : infos) { + JsonObjectExtendedRequest request = new JsonObjectExtendedRequest( + TimestampUtils.addTimestamp(Config.HOST + "v1d45/game/" + info.getId() + "/digest", Constants.GAME_CD), + new Response.Listener() { + @Override + public void onResponse(JSONObject response) { + Gson gson = new Gson(); + GameEntity gameEntity = gson.fromJson(response.toString(), GameEntity.class); + list.add(gameEntity); + count++; + if (count == size) { + processingData(list); + } + } + }, new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + count++; + if (count == size) { + processingData(list); + } + } + }); + AppController.addToRequestQueue(request, GameFragment.class); + } + } + + private void processingData(List list) { + if (list == null || list.isEmpty()) { + return; + } + ConcernManager concernManager = new ConcernManager(mContext); + PackageManager mPackageManager = new PackageManager(mContext); + List infos = concernManager.getInstalledGame(); + HashMap map; + GameEntity gameEntity; + for (ConcernInfo info : infos) { + map = info.getPackageNames(); + for (int i = 0, size = list.size(); i < size; i++) { + gameEntity = list.get(i); + if (gameEntity.getId().equals(info.getId()) + && gameEntity.getTag() != null && gameEntity.getTag().size() != 0 + && gameEntity.getApk() != null) { + for (String key : map.keySet()) { + if (map.get(key)) { + if (!mPackageManager.isSignature(key)) { + for (ApkEntity apkEntity : gameEntity.getApk()) { + if (apkEntity.getPackageName().equals(key)) { + GameEntity entity = gameEntity.clone(); + entity.setPluginPlatform(apkEntity.getPlatform()); + ArrayList apkList = new ArrayList(); + apkList.add(apkEntity); + entity.setApk(apkList); + pluginList.add(entity); + break; + } + } + } + } + } + break; + } + } + } + if (!pluginList.isEmpty()) { + notifyItemRangeInserted(1, pluginList.size() + 1); + initLocationMap(); + } + } + private void initLocationMap() { locationMap.clear(); - int count = 0; - if (!subjectList.isEmpty()) { - SubjectEntity subjectEntity; - for (int i = 0, size = subjectList.size(); i < size; i++) { - subjectEntity = subjectList.get(i); - count += 1 + subjectEntity.getData().size(); + int count = getItemCount(); + if (!pluginList.isEmpty()) { + for (int position = 0; position < count; position++) { + if (position > 1 && position <= 1 + pluginList.size()) { + locationMap.put(pluginList.get(position - 2).getName() + " - " + + PlatformUtils.getInstance(mContext).getPlatformName( + pluginList.get(position - 2).getApk().get(0).getPlatform()), + position); + } } + } + + if (!subjectList.isEmpty()) { for (int position = 0; position < count; 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); - locationMap.put(gameEntity.getName(), position); + if (gameEntity.getApk() != null && !gameEntity.getApk().isEmpty()) { + locationMap.put(gameEntity.getName(), position); + } break; } offset = subjectList.get(i).getData().size() + offset + 1; } } } - } @Override @@ -207,20 +315,17 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter offset && position <= subjectList.get(i).getData().size() + offset) { @@ -257,7 +362,7 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter 1 && position <= 1 + pluginList.size()) { + gameEntity = pluginList.get(position - 2); + initGameNormal(holder, gameEntity, position - 2, 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) { gameEntity = subjectList.get(i).getData().get(position - offset - 1); @@ -342,16 +457,21 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter offset && position <= subjectList.get(i).getData().size() + offset) { - gameEntity = subjectList.get(i).getData().get(position - offset - 1); - if (!TextUtils.isEmpty(gameEntity.getImage())) { - final GameEntity entity = gameEntity; - ImageUtils.getInstance(mContext).display(entity.getImage(), imageView, -1); - imageView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - if ("game".equals(entity.getType())) { - Intent intent = new Intent(mContext, GameDetailsActivity.class); - intent.putExtra("gameId", entity.getId()); - intent.putExtra("entrance", "插件-大图"); - mContext.startActivity(intent); - } else if ("news".equals(entity.getType())) { - Intent intent = new Intent(mContext, NewsActivity.class); - intent.putExtra("newsId", entity.getId()); - intent.putExtra("entrance", "插件-大图"); - mContext.startActivity(intent); - } - - } - }); - break; - } - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - } - - public class HeadViewHolder extends RecyclerView.ViewHolder { - public ImageView thumb; - public TextView title; - public LinearLayout link; - - public HeadViewHolder(View view) { - super(view); - this.thumb = (ImageView) view.findViewById(R.id.head_thumb); - this.title = (TextView) view.findViewById(R.id.head_title); - this.link = (LinearLayout) view.findViewById(R.id.head_link); - } - - public void initViewHolder(int position) { - int offset = 1; - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (position == offset) { - thumb.setVisibility(View.GONE); - title.setText(subjectList.get(i).getName()); - final int ii = i; - link.setOnClickListener(new View.OnClickListener() { + 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 (!TextUtils.isEmpty(gameEntity.getImage())) { + final GameEntity entity = gameEntity; + ImageUtils.getInstance(mContext).display(entity.getImage(), holder.image, -1); + holder.image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Intent intent = new Intent(mContext, HotCardActivity.class); - intent.putExtra("id", subjectList.get(ii).getId()); - intent.putExtra("name", subjectList.get(ii).getName()); - mContext.startActivity(intent); + if ("game".equals(entity.getType())) { + Intent intent = new Intent(mContext, GameDetailsActivity.class); + intent.putExtra("gameId", entity.getId()); + intent.putExtra("entrance", "插件-大图"); + mContext.startActivity(intent); + } else if ("news".equals(entity.getType())) { + Intent intent = new Intent(mContext, NewsActivity.class); + intent.putExtra("newsId", entity.getId()); + intent.putExtra("entrance", "插件-大图"); + mContext.startActivity(intent); + } else if ("column".equals(entity.getType())) { + Intent intent = new Intent(mContext, SubjectActivity.class); + intent.putExtra("id", entity.getId()); +// intent.putExtra("name", entity.getName()); + mContext.startActivity(intent); + } } }); break; } - offset = subjectList.get(i).getData().size() + offset + 1; } + offset = subjectList.get(i).getData().size() + offset + 1; + } + } + + public void initGameHeadViewHolder(GameHeadViewHolder holder, int position) { + if (!pluginList.isEmpty() && position == 1) { + holder.thumb.setVisibility(View.VISIBLE); + holder.thumb.setImageResource(R.drawable.home_plug_upgrade); + holder.title.setText("你有" + pluginList.size() + "个游戏可以升级插件版"); + holder.more.setText("全部"); + holder.link.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + } + }); + return; + } + + int offset = 1; + if (!pluginList.isEmpty()) { + offset += 1 + pluginList.size(); + } + for (int i = 0, size = subjectList.size(); i < size; i++) { + if (position == offset) { + holder.thumb.setVisibility(View.GONE); + holder.title.setText(subjectList.get(i).getName()); + final int ii = i; + holder.link.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + Intent intent = new Intent(mContext, SubjectActivity.class); + intent.putExtra("id", subjectList.get(ii).getId()); + intent.putExtra("name", subjectList.get(ii).getName()); + mContext.startActivity(intent); + + } + }); + break; + } + offset = subjectList.get(i).getData().size() + offset + 1; } } @@ -565,10 +691,10 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter 1 && position <= 1 + pluginList.size()) { + return ITEM_TYPE.game_normal_type; + } + } + 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) { @@ -618,6 +760,10 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter getPluginList() { + return pluginList; + } + public List getSubjectList() { return subjectList; } diff --git a/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java index 92a2fde736..5d19085ae0 100644 --- a/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java @@ -10,7 +10,6 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; -import android.widget.ProgressBar; import android.widget.TextView; import com.android.volley.Response; @@ -23,9 +22,9 @@ import com.gh.common.util.GameViewUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.TimestampUtils; import com.gh.gamecenter.GameDetailsActivity; -import com.gh.gamecenter.HotCardActivity; import com.gh.gamecenter.NewsActivity; import com.gh.gamecenter.R; +import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; import com.gh.gamecenter.entity.GameEntity; @@ -165,7 +164,7 @@ public class Game2FragmentAdapter extends RecyclerView.Adapter> gameMap; private ArrayMap> platformMap; private ArrayMap nameMap; - - private boolean isEverpause = false; - private boolean isDestroy = false; - private ArrayMap statusMap; + private boolean isEverpause; + private boolean isDestroy; + private DismissEntity dismissEntity; private Handler handler = new Handler() { @@ -80,8 +78,7 @@ public class Game3Fragment extends Fragment implements OnRefreshListener { if (msg.what == Constants.DOWNLOAD_ROLL) { String name = (String) msg.obj; if (platformMap != null) { - LinkedBlockingQueue queue = platformMap - .get(name); + LinkedBlockingQueue queue = platformMap.get(name); if (queue.size() > 1) { queue.offer(queue.poll()); Message msg2 = Message.obtain(); @@ -98,28 +95,21 @@ public class Game3Fragment extends Fragment implements OnRefreshListener { // 黄壮华 添加观察者 修改2015/8/15 private DataWatcher dataWatcher = new DataWatcher() { @Override - public void onDataChanged( - HashMap downloadingEntries) { + public void onDataChanged(HashMap downloadingEntries) { if (!game_swipe_refresh.isRefreshing()) { - for (java.util.Map.Entry entry : downloadingEntries - .entrySet()) { + for (java.util.Map.Entry entry : downloadingEntries.entrySet()) { DownloadEntry downloadEntry = entry.getValue(); Integer location = locationMap.get(downloadEntry.getName()); - Log.e("downloadEntry",downloadEntry.getName()); if (location != null) { int index = location.intValue(); - Log.e("index",index+""); - GameEntity detailedEntity = adapter.getList() - .get(index); + GameEntity detailedEntity = adapter.getList().get(index); if (detailedEntity != null) { - Log.e("detailedEntity != null",detailedEntity.getName()+""); DownloadItemUtils.processDate(detailedEntity, downloadEntry, platformMap, handler, adapter, index, statusMap); } - } } } @@ -133,16 +123,18 @@ public class Game3Fragment extends Fragment implements OnRefreshListener { view = View.inflate(getActivity(), R.layout.plugin1_fragment, null); - statusMap = new ArrayMap(); locationMap = new ArrayMap(); gameMap = new ArrayMap>(); platformMap = new ArrayMap>(); nameMap = new ArrayMap(); + statusMap = new ArrayMap(); dismissEntity = new DismissEntity(false); - game_swipe_refresh = (SwipeRefreshLayout) view - .findViewById(R.id.game_swipe_refresh); + isEverpause = false; + isDestroy = false; + + game_swipe_refresh = (SwipeRefreshLayout) view.findViewById(R.id.game_swipe_refresh); game_swipe_refresh.setColorSchemeResources(R.color.theme_colors); game_swipe_refresh.setOnRefreshListener(this); @@ -156,8 +148,7 @@ public class Game3Fragment extends Fragment implements OnRefreshListener { game_pb_loading = (ProgressBarCircularIndeterminate) view.findViewById(R.id.game_pb_loading); - reuse_no_connection = (LinearLayout) view - .findViewById(R.id.reuse_no_connection); + reuse_no_connection = (LinearLayout) view.findViewById(R.id.reuse_no_connection); reuse_no_connection.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -239,10 +230,8 @@ public class Game3Fragment extends Fragment implements OnRefreshListener { if ("安装".equals(busFour.getType())) { GameEntity detailedEntity = adapter.getList().get(location); for (ApkEntity apkEntity : detailedEntity.getApk()) { - if (apkEntity.getPackageName().equals( - busFour.getPackageName())) { - detailedEntity.getEntryMap().remove( - apkEntity.getPlatform()); + if (apkEntity.getPackageName().equals(busFour.getPackageName())) { + detailedEntity.getEntryMap().remove(apkEntity.getPlatform()); adapter.notifyItemChanged(location); break; } @@ -253,7 +242,6 @@ public class Game3Fragment extends Fragment implements OnRefreshListener { } } - public void onEventMainThread(EBNetworkState busNetworkState) { if (busNetworkState.isNetworkConnected()) { if (reuse_no_connection.getVisibility() == View.VISIBLE) { @@ -329,6 +317,7 @@ public class Game3Fragment extends Fragment implements OnRefreshListener { @Override public void onDestroy() { super.onDestroy(); + isDestroy = true; AppController.canclePendingRequests(Game3Fragment.class); EventBus.getDefault().unregister(this); view = null; diff --git a/app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java index 5a69fa0061..6cd5308d20 100644 --- a/app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java @@ -152,9 +152,10 @@ public class Game3FragmentAdapter extends } isLoading = true; JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d50/game/danjiyouxi?limit=20&offset=" + offset, - Constants.GAME_CD), new Response.Listener() { + TimestampUtils.addTimestamp( + Config.HOST + "v1d50/game/danjiyouxi?limit=20&offset=" + offset, + Constants.GAME_CD), + new Response.Listener() { @Override public void onResponse(JSONArray response) { @@ -162,7 +163,8 @@ public class Game3FragmentAdapter extends isLoading = false; } - }, new Response.ErrorListener() { + }, + new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { @@ -178,8 +180,7 @@ public class Game3FragmentAdapter extends game_pb_loading.setVisibility(View.GONE); reuse_no_connection.setVisibility(View.VISIBLE); } else { - Toast.makeText(context, "网络错误", - Toast.LENGTH_SHORT).show(); + Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT).show(); isNetworkError = true; notifyItemChanged(getItemCount() - 1); } @@ -191,12 +192,9 @@ public class Game3FragmentAdapter extends } private void processingData(JSONArray response, int offset) { - Type listType = new TypeToken>() { - }.getType(); + Type listType = new TypeToken>() {}.getType(); Gson gson = new Gson(); - GameManager manager = new GameManager(context); - List gameList = gson - .fromJson(response.toString(), listType); + List gameList = gson.fromJson(response.toString(), listType); if (gameList != null && !gameList.isEmpty()) { if (!list.isEmpty()) { for (int i = 0; i < gameList.size(); i++) { @@ -211,6 +209,7 @@ public class Game3FragmentAdapter extends } } } + GameManager manager = new GameManager(context); for (GameEntity entity : gameList) { // 黄壮华 初始化游戏状态 修改2015/8/15 entity.setEntryMap(gameMap.get(entity.getName())); @@ -237,7 +236,7 @@ public class Game3FragmentAdapter extends game_pb_loading.setVisibility(View.GONE); } - if (gameList.isEmpty() || (offset == 0 && gameList.size() < 20)) { + if (gameList == null || gameList.isEmpty() || (offset == 0 && gameList.size() < 20)) { isRemove = true; notifyItemRemoved(getItemCount()); } @@ -264,87 +263,6 @@ public class Game3FragmentAdapter extends } } - @Override - public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, - final int position) { - if (viewHolder instanceof GameNormalViewHolder) { - - GameNormalViewHolder holder = (GameNormalViewHolder) viewHolder; - - final GameEntity detailedEntity = list.get(position); - - detailedEntity.getApk().get(0).setPlatform("local_plugin"); - - ImageUtils.getInstance(context).display(detailedEntity.getIcon(), - holder.gameThumb); - holder.gameNameAndSize.setText(detailedEntity.getName()); - if (detailedEntity.getApk() == null || detailedEntity.getApk().isEmpty()) { - holder.gameDes.setText(detailedEntity.getBrief()); - } else { - holder.gameDes.setText(detailedEntity.getApk().get(0).getSize() + " | " + detailedEntity.getBrief()); - } - - GameViewUtils.setLabelList(context, holder.labelList, - detailedEntity.getTag()); - - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - Map kv = new HashMap(); - kv.put("入口", "游戏-单机"); - DataUtils.onEvent(context, "游戏详情", detailedEntity.getName(), - kv); - - Map map = new HashMap(); - map.put("location", "单机"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("game", detailedEntity.getName()); - map.put("page", "游戏"); - DataCollectionManager.onEvent(context, "click-item", map); - - AppController.put("GameEntity", detailedEntity); - Intent intent = new Intent(context, - GameDetailsActivity.class); - intent.putExtra("entrance", "游戏-单机"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - - DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, - holder.download_speed, holder.download_percentage, - detailedEntity, position, this, - statusMap, platformMap, "游戏-单机", false, dismissEntity, - "单机:" + detailedEntity.getName()); - - DownloadItemUtils.updateItem(context, holder.labelList, - holder.game_progressbar, holder.game_ll_info, - holder.download_speed, holder.download_percentage, - holder.downloadBtn, detailedEntity, platformMap, statusMap, - false); - } else if (viewHolder instanceof FooterViewHolder) { - FooterViewHolder holder = (FooterViewHolder) viewHolder; - if (isNetworkError) { - holder.footerview_progressbar.setVisibility(View.GONE); - holder.footerview_tv_loading.setText("加载失败,点击重试"); - holder.itemView.setClickable(true); - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - isNetworkError = false; - notifyItemChanged(getItemCount() - 1); - addList(list.size()); - } - }); - } else { - holder.footerview_progressbar.setVisibility(View.VISIBLE); - holder.footerview_tv_loading.setText("加载中..."); - holder.itemView.setClickable(false); - } - } - } - @Override public int getItemViewType(int position) { return position; @@ -353,13 +271,92 @@ public class Game3FragmentAdapter extends @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { if (i == list.size()) { - return new FooterViewHolder(LayoutInflater.from( - viewGroup.getContext()).inflate( - R.layout.refresh_footerview, viewGroup, false)); + View view = LayoutInflater.from(viewGroup.getContext()).inflate( + R.layout.refresh_footerview, viewGroup, false); + return new FooterViewHolder(view); } else { - return new GameNormalViewHolder(LayoutInflater.from( - viewGroup.getContext()).inflate( - R.layout.home_game_normal_item, viewGroup, false)); + View view = LayoutInflater.from(viewGroup.getContext()).inflate( + R.layout.home_game_normal_item, viewGroup, false); + return new GameNormalViewHolder(view); + } + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { + if (viewHolder instanceof GameNormalViewHolder) { + initGameNormalViewHolder((GameNormalViewHolder) viewHolder, list.get(position), position); + } else if (viewHolder instanceof FooterViewHolder) { + initFooterViewHolder((FooterViewHolder) viewHolder); + } + } + + private void initGameNormalViewHolder(GameNormalViewHolder holder, final GameEntity entity, int position) { + entity.getApk().get(0).setPlatform("local_plugin"); + + ImageUtils.getInstance(context).display(entity.getIcon(), + holder.gameThumb); + holder.gameNameAndSize.setText(entity.getName()); + if (entity.getApk() == null || entity.getApk().isEmpty()) { + holder.gameDes.setText(entity.getBrief()); + } else { + holder.gameDes.setText(entity.getApk().get(0).getSize() + " | " + entity.getBrief()); + } + + GameViewUtils.setLabelList(context, holder.labelList, entity.getTag()); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + Map kv = new HashMap(); + kv.put("入口", "游戏-单机"); + DataUtils.onEvent(context, "游戏详情", entity.getName(), kv); + + Map map = new HashMap(); + map.put("location", "单机"); + map.put("createOn", System.currentTimeMillis() / 1000); + map.put("game", entity.getName()); + map.put("page", "游戏"); + DataCollectionManager.onEvent(context, "click-item", map); + + AppController.put("GameEntity", entity); + Intent intent = new Intent(context, GameDetailsActivity.class); + intent.putExtra("entrance", "游戏-单机"); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(intent); + } + }); + + DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, + holder.download_speed, holder.download_percentage, + entity, position, this, + statusMap, platformMap, "游戏-单机", false, dismissEntity, + "单机:" + entity.getName()); + + DownloadItemUtils.updateItem(context, holder.labelList, + holder.game_progressbar, holder.game_ll_info, + holder.download_speed, holder.download_percentage, + holder.downloadBtn, entity, platformMap, statusMap, + false); + } + + private void initFooterViewHolder(FooterViewHolder holder) { + if (isNetworkError) { + holder.footerview_progressbar.setVisibility(View.GONE); + holder.footerview_tv_loading.setText("加载失败,点击重试"); + holder.itemView.setClickable(true); + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + isNetworkError = false; + notifyItemChanged(getItemCount() - 1); + addList(list.size()); + } + }); + } else { + holder.footerview_progressbar.setVisibility(View.VISIBLE); + holder.footerview_tv_loading.setText("加载中..."); + holder.itemView.setClickable(false); } } @@ -384,10 +381,6 @@ public class Game3FragmentAdapter extends return isLoading; } - public void setLoading(boolean isLoading) { - this.isLoading = isLoading; - } - public boolean isNetworkError() { return 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 c7276c6e87..0aa21becbd 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragment.java +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragment.java @@ -39,7 +39,6 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.SearchActivity; import com.gh.gamecenter.SettingActivity; import com.gh.gamecenter.eventbus.EBRedDot; -import com.gh.gamecenter.eventbus.EBSkipNewPlugin; import com.gh.gamecenter.eventbus.EBTopState; import com.gh.gamecenter.eventbus.EBUISwitch; import com.gh.gamecenter.manager.DataCollectionManager; @@ -70,8 +69,6 @@ public class GameFragment extends Fragment implements OnClickListener, private String hint; - public static boolean isFirst; - @Override public void onCreate(@Nullable Bundle savedInstanceState) { @@ -121,21 +118,11 @@ public class GameFragment extends Fragment implements OnClickListener, viewPager.setAdapter(new FragmentAdapter(getChildFragmentManager())); viewPager.addOnPageChangeListener(this); - if (isFirst) { - rparams.leftMargin = width + width / 4; - slideLine.setLayoutParams(rparams); - viewPager.setCurrentItem(1); - isFirst = false; - jingpinText.setClickable(true); - zuixinText.setClickable(false); - danjiText.setClickable(true); - } else { - rparams.leftMargin = width / 4; - slideLine.setLayoutParams(rparams); - jingpinText.setClickable(false); - zuixinText.setClickable(true); - danjiText.setClickable(true); - } + rparams.leftMargin = width / 4; + slideLine.setLayoutParams(rparams); + jingpinText.setClickable(false); + zuixinText.setClickable(true); + danjiText.setClickable(true); currentItem = viewPager.getCurrentItem(); @@ -449,12 +436,6 @@ public class GameFragment extends Fragment implements OnClickListener, updateRedDot(busEight.getType()); } - public void onEventMainThread(EBSkipNewPlugin busSix) { - if (busSix.getType() == 1) { - viewPager.setCurrentItem(1); - } - } - @Override public void onHiddenChanged(boolean hidden) { super.onHiddenChanged(hidden); diff --git a/app/src/main/java/com/gh/gamecenter/gamedetails/GameDatabaseFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetails/GameDatabaseFragment.java deleted file mode 100644 index 32a1612978..0000000000 --- a/app/src/main/java/com/gh/gamecenter/gamedetails/GameDatabaseFragment.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.gh.gamecenter.gamedetails; - -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -/** - * 数据库 fragment - * @author 黄壮华 - * - */ -public class GameDatabaseFragment extends Fragment { - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - - super.onCreate(savedInstanceState); - } - - @Override - @Nullable - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - - return super.onCreateView(inflater, container, savedInstanceState); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetails/GameDetailsFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetails/GameDetailsFragment.java index 2ca286a47c..26e3d14ed4 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetails/GameDetailsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetails/GameDetailsFragment.java @@ -199,17 +199,15 @@ public class GameDetailsFragment extends Fragment { @Override @Nullable - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { if (container != null) { container.removeView(view); } return view; } - private class GameDetailsOnScrollListener extends - RecyclerView.OnScrollListener { + private class GameDetailsOnScrollListener extends RecyclerView.OnScrollListener { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { @@ -226,8 +224,7 @@ public class GameDetailsFragment extends Fragment { rparams.topMargin -= dy; - EventBus.getDefault().post( - new EBMoveTop("top", visibility, rparams.topMargin)); + EventBus.getDefault().post(new EBMoveTop("top", visibility, rparams.topMargin)); } @Override @@ -683,8 +680,7 @@ public class GameDetailsFragment extends Fragment { map); fm_gamedetails_tv_primatte_details.setText("收回"); - fm_gamedetails_iv_primatte_details - .setImageResource(R.drawable.up); + fm_gamedetails_iv_primatte_details.setImageResource(R.drawable.up); adapter.notifyItemChanged(plugin_position); } } @@ -692,8 +688,7 @@ public class GameDetailsFragment extends Fragment { } - private class GameDetailsAdapter extends - RecyclerView.Adapter { + private class GameDetailsAdapter extends RecyclerView.Adapter { @Override public int getItemCount() { @@ -881,7 +876,6 @@ public class GameDetailsFragment extends Fragment { @Override public GameDetailsViewHolder onCreateViewHolder(ViewGroup viewGroup, int type) { - View view; if (type == ITEM_TYPE.blank_top1) { RelativeLayout relativeLayout = new RelativeLayout( @@ -980,7 +974,6 @@ public class GameDetailsFragment extends Fragment { @Override public int getItemViewType(int position) { - if (position == 0) { return ITEM_TYPE.blank_top1; } @@ -1156,7 +1149,6 @@ public class GameDetailsFragment extends Fragment { @Override public int getItemCount() { - return entity.getServerInfo().size(); } @@ -1279,7 +1271,6 @@ public class GameDetailsFragment extends Fragment { @Override public void onDestroy() { - super.onDestroy(); isDestroy = true; EventBus.getDefault().unregister(this); diff --git a/app/src/main/java/com/gh/gamecenter/gamedetails/GameInformationFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetails/GameInformationFragment.java index 9b1d0f7279..30a4e96821 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetails/GameInformationFragment.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetails/GameInformationFragment.java @@ -107,7 +107,6 @@ public class GameInformationFragment extends Fragment { @Override public void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); Utils.log(this.getClass().getSimpleName() + " onSaveInstanceState"); outState.putString("id", id); diff --git a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java index f7ea8de7d3..e6085d67e8 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java @@ -10,7 +10,6 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; @@ -32,10 +31,11 @@ import com.gh.common.util.ImageUtils; import com.gh.common.util.NewsUtils; import com.gh.common.util.TimestampUtils; import com.gh.common.util.Utils; -import com.gh.gamecenter.OriginalActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -import com.gh.gamecenter.adapter.viewholder.OriginalViewHolder; +import com.gh.gamecenter.adapter.viewholder.NewsImage1ViewHolder; +import com.gh.gamecenter.adapter.viewholder.NewsImage2ViewHolder; +import com.gh.gamecenter.adapter.viewholder.NewsImage3ViewHolder; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; import com.gh.gamecenter.volley.extended.JsonObjectExtendedRequest; @@ -134,7 +134,7 @@ public class News1FragmentAdapter extends RecyclerView.Adapter list, final int start) { @@ -205,54 +205,7 @@ public class News1FragmentAdapter extends RecyclerView.Adapter { +public class News2FragmentAdapter extends RecyclerView.Adapter { + + private class ITEM_TYPE { + public static final int normal = 0;//正常布局 + public static final int special1 = 1;//一张1:3图 + public static final int special2 = 2;//三张4:3图 + public static final int footer = 3;//页脚 + } private Activity activity; private Context context; @@ -71,12 +78,12 @@ public class OriginalAdapter extends RecyclerView.Adapter list, final int start) { @@ -204,54 +211,31 @@ public class OriginalAdapter extends RecyclerView.Adapter= adapter.getPosition_before()) { news_tv_label.setText("昨天/以前"); news_tv_label.setBackgroundResource(R.drawable.title_gray); - } else if (adapter.getPosition_mygame() != -1) { - news_tv_label.setText("我的游戏"); - news_tv_label.setBackgroundResource(R.drawable.title_blue); } if (position == adapter.getPosition_today() - 1 @@ -154,9 +149,6 @@ public class News3Fragment extends Fragment { } return view; } - public void onEventMainThread(EBConcernChanged busSeven) { - adapter.updateMyGameNews(); - } public void onEventMainThread(EBNetworkState busNetworkState) { if (busNetworkState.isNetworkConnected()) { @@ -165,7 +157,7 @@ public class News3Fragment extends Fragment { news_ll_loading.setVisibility(View.VISIBLE); reuse_no_connection.setVisibility(View.GONE); adapter = new News3FragmentAdapter(getActivity(), news_list, - news_ll_loading, reuse_no_connection, type, + news_ll_loading, reuse_no_connection, "攻略", news_rl_label, news_tv_label); news_list.setAdapter(adapter); } else if (adapter.isNetworkError()) { @@ -189,6 +181,5 @@ public class News3Fragment extends Fragment { news_tv_label = null; news_rl_label = null; rparams = null; - type = null; } } diff --git a/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java index 2d4654b4c6..40cc301abd 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java @@ -1,7 +1,6 @@ package com.gh.gamecenter.news; import android.content.Context; -import android.content.Intent; import android.net.Uri; import android.support.v4.util.ArrayMap; import android.support.v7.widget.RecyclerView; @@ -24,11 +23,9 @@ import com.gh.base.AppController; import com.gh.common.constant.Config; import com.gh.common.constant.Constants; import com.gh.common.util.DataUtils; -import com.gh.common.util.GameViewUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.NewsUtils; import com.gh.common.util.TimestampUtils; -import com.gh.gamecenter.GameDetailsActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; @@ -72,23 +69,14 @@ public class News3FragmentAdapter extends public static class ITEM_TYPE { public static final int head = 1;// head - public static final int game_type = 2;// 游戏布局类型 - public static final int game_text = 3;// 游戏新闻列表类型 - public static final int news_text = 4;// 新闻列表1类型 - public static final int news_image = 5;// 新闻列表2类型 - public static final int refresh_footer = 6;// 刷新布局类型 + public static final int news_text = 2;// 新闻列表1类型 + public static final int news_image = 3;// 新闻列表2类型 + public static final int refresh_footer = 4;// 刷新布局类型 } - private int position_mygame = -1;// 我的游戏head的位置 private int position_today = -1;// 今天head的位置 private int position_before = -1;// 昨天/以前head的位置 - private int count_game = 0;// 游戏+游戏新闻 的数目 - - private ConcernManager concernManager; - private List concernList; - private List concernGameList; - private ArrayMap> concernNewsMap; private List todayNewsList; private List beforeNewsList; @@ -125,142 +113,14 @@ public class News3FragmentAdapter extends ll_loading = linearLayout1; ll_noconnection = linearLayout2; - concernManager = new ConcernManager(context); this.layoutInflater = LayoutInflater.from(context); - // 获取关注的信息 -// concernList = concernManager.getAllConcernBySort(); - concernList = new ArrayList(); - - if (concernList != null && !concernList.isEmpty()) { - sortList(concernList); - initConcernNews(true); - } else { - initDatas(); - } - } - - private void sortList(List list) { - Comparator comparator = new Comparator() { - @Override - public int compare(ConcernInfo lhs, ConcernInfo rhs) { - - if (rhs.getWeight() == 2 && lhs.getWeight() == 2) { - return 0; - } else if (rhs.getWeight() == 2 && lhs.getWeight() == 1) { - return 1; - } else if (rhs.getWeight() == 1 && lhs.getWeight() == 2) { - return -1; - } else { - if ("已关注".equals(rhs.getTag()) - && "已安装".equals(lhs.getTag())) { - return 1; - } else if ("已安装".equals(rhs.getTag()) - && "已关注".equals(lhs.getTag())) { - return -1; - } else { - return 0; - } - } - } - }; - Collections.sort(concernList, comparator); - } - - public void updateMyGameNews() { - ll_loading.setVisibility(View.VISIBLE); - concernList = concernManager.getAllConcernBySort(); - if (concernList != null && !concernList.isEmpty()) { - sortList(concernList); - initConcernNews(false); - } else { - ll_loading.setVisibility(View.GONE); - refreshCount(); - } + initDatas(); } private void showRecyclerView() { recyclerView.setVisibility(View.VISIBLE); ll_loading.setVisibility(View.GONE); - SuspectedGameManager manager = new SuspectedGameManager(context); - List list = manager.getAllGame(); - if (list != null && !list.isEmpty()) { - ll_loading.setVisibility(View.VISIBLE); - List params = new ArrayList(); - for (SuspectedGameInfo entity : list) { - params.add(entity.getPackageName()); - } - initSuspectedGame(params); - } - } - - private int iCount; - - private void initSuspectedGame(final List params) { - iCount = 0; - final List list = new ArrayList(); - final List useParams = new ArrayList(); - for (int i = 0, size = params.size(); i < size; i++) { - final String packageName = params.get(i); - JsonObjectExtendedRequest request = new JsonObjectExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d45/support/package/" + packageName - + "/game/digest", Constants.GAME_CD), - new Response.Listener() { - - @Override - public void onResponse(JSONObject response) { - iCount++; - if (response.length() != 0) { - list.add(response); - useParams.add(packageName); - } - if (params.size() == iCount) { - processingData(list, params, useParams); - } - } - }, new Response.ErrorListener() { - - @Override - public void onErrorResponse(VolleyError error) { - iCount++; - if (params.size() == iCount) { - if (list.isEmpty()) { - ll_loading.setVisibility(View.GONE); - } else { - processingData(list, params, useParams); - } - } - } - }); - AppController.addToRequestQueue(request, NewsFragment.class); - } - } - - private void processingData(List data, List params, - List useParams) { - Gson gson = new Gson(); - ConcernManager manager = new ConcernManager(context); - for (int i = 0, size = data.size(); i < size; i++) { - GameDigestEntity gameDigestEntity = gson.fromJson(data.get(i) - .toString(), GameDigestEntity.class); - GameInfo gameEntity = new GameInfo(); - gameEntity.setId(gameDigestEntity.getId()); - gameEntity.setPackageName(useParams.get(i)); - manager.updateByEntity(gameEntity, false); - } - - SuspectedGameManager suspectedGameManager = new SuspectedGameManager( - context); - for (String packageName : params) { - suspectedGameManager.deleteSuspectedGame(packageName); - } - - if (data.size() > 0) { - updateMyGameNews(); - } else { - ll_loading.setVisibility(View.GONE); - } } private void initDatas() { @@ -352,8 +212,7 @@ public class News3FragmentAdapter extends @Override public void onErrorResponse(VolleyError error) { isLoading = false; - Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT) - .show(); + Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT).show(); isNetworkError = true; notifyItemChanged(getItemCount() - 1); } @@ -401,8 +260,7 @@ public class News3FragmentAdapter extends notifyItemChanged(getItemCount() - 1); } - SimpleDateFormat format = new SimpleDateFormat("Mdd", - Locale.getDefault()); + SimpleDateFormat format = new SimpleDateFormat("Mdd", Locale.getDefault()); int today = Integer.valueOf(format.format(new Date())); for (int i = 0, size = datas.size(); i < size; i++) { @@ -414,14 +272,9 @@ public class News3FragmentAdapter extends } else { beforeNewsList.add(datas.get(i)); if (beforeNewsList.size() == 1 && position_before == -1) { - if (position_mygame != -1 && position_today != -1) { - position_before = position_today + todayNewsList.size() - + 1; - } else if (position_mygame != -1 && position_today == -1) { - position_before = count_game + 1; - } else if (position_mygame == -1 && position_today != -1) { + if (position_today != -1) { position_before = todayNewsList.size() + 1; - } else if (position_mygame == -1 && position_today == -1) { + } else if (position_today == -1) { position_before = 0; } notifyItemRangeChanged(getItemCount() - 2, getItemCount()); @@ -432,201 +285,23 @@ public class News3FragmentAdapter extends } } - private int count; - - private void initConcernNews(final boolean isInitDatas) { - final List cList = new ArrayList(); - concernNewsMap = new ArrayMap>(); - count = concernList.size(); - for (int i = 0, size = concernList.size(); i < size; i++) { - final int index = i; - final int finalI = i; - JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp( - Config.HOST + "v1d45/game/" - + concernList.get(i).getId() - + "/news?limit=3&offset=0&type_group=" - + Uri.encode(type), Constants.NEWS_CD), - new Response.Listener() { - @Override - public void onResponse(JSONArray response) { - Gson gson = new Gson(); - Type listType = new TypeToken>() { - }.getType(); - List list = gson.fromJson( - response.toString(), listType); - if (list != null && !list.isEmpty()) { - cList.add(concernList.get(index)); - concernNewsMap.put(concernList.get(index) - .getGameName(), list); - } - refresh(cList, isInitDatas); - } - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - // 无网络连接和网络超时 - if (error.getClass() - .equals(NoConnectionError.class) - || error.getClass().equals( - TimeoutError.class)) { - if (isInitDatas) { - Toast.makeText(context, "获取" + type + "失败", - Toast.LENGTH_SHORT).show(); - recyclerView.setVisibility(View.GONE); - ll_loading.setVisibility(View.GONE); - ll_noconnection.setVisibility(View.VISIBLE); - } else { - Toast.makeText(context, "网络错误", - Toast.LENGTH_SHORT).show(); - ll_loading.setVisibility(View.GONE); - } - } - } - }); - AppController.addToRequestQueue(request, NewsFragment.class); - } - } - - private void refresh(List cList, boolean isInitDatas) { - if (count != 1) { - count--; - } else { - concernList = cList; - if (!concernList.isEmpty()) { - List ids = new ArrayList(); - for (int i = 0; i < concernList.size(); i++) { - ids.add(concernList.get(i).getId()); - } - initConcernDatas(ids, isInitDatas); - } else { - if (isInitDatas) { - initDatas(); - } else { - refreshCount(); - showRecyclerView(); - } - } - } - } - - private void initConcernDatas(List ids, final boolean isInitDatas) { - final List result = new ArrayList(); - final int count = ids.size(); - for (int i = 0, size = ids.size(); i < size; i++) { - JsonObjectExtendedRequest gameObjectRequest = new JsonObjectExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST + "v1d45/game/" - + ids.get(i) + "/digest", Constants.GAME_CD), - new Response.Listener() { - @Override - public void onResponse(JSONObject response) { - result.add(response); - if (result.size() == count) { - processingConcernData(result, isInitDatas); - } - } - }, new Response.ErrorListener() { - - @Override - public void onErrorResponse(VolleyError error) { - // 无网络连接和网络超时 - if (error.getClass() - .equals(NoConnectionError.class) - || error.getClass().equals( - TimeoutError.class)) { - if (isInitDatas) { - initDatas(); - } else { - refreshCount(); - showRecyclerView(); - } - } - } - - }); - AppController.addToRequestQueue(gameObjectRequest, NewsFragment.class); - } - } - - private void processingConcernData(List data, - boolean isInitDatas) { - Gson gson = new Gson(); - concernGameList = new ArrayList(); - for (int i = 0, size = data.size(); i < size; i++) { - JSONObject response = data.get(i); - concernGameList.add(gson.fromJson(response.toString(), - GameEntity.class)); - } - if (concernGameList != null && !concernGameList.isEmpty()) { - List list = new ArrayList(); - for (int i = 0, size = concernList.size(); i < size; i++) { - String id = concernList.get(i).getId(); - for (GameEntity gameEntity : concernGameList) { - if (gameEntity.getId().equals(id)) { - list.add(gameEntity); - break; - } - } - } - concernGameList = list; - GameManager manager = new GameManager(context); - for (int i = 0, size = concernGameList.size(); i < size; i++) { - for (ApkEntity apkEntity : concernGameList.get(i).getApk()) { - manager.addOrUpdate(new GameInfo(apkEntity.getPackageName(), - concernGameList.get(i).getId(), concernGameList - .get(i).getName())); - } - } - } - if (isInitDatas) { - initDatas(); - } else { - refreshCount(); - showRecyclerView(); - } - } - private void refreshCount() { - position_mygame = -1; position_today = -1; position_before = -1; - count_game = 0; - - if (!concernList.isEmpty()) { - position_mygame = 0; - int count = 0; - for (int i = 0, size = concernList.size(); i < size; i++) { - count += (concernNewsMap.get(concernList.get(i).getGameName()) - .size() + 1); - } - count_game = count; - } if (!todayNewsList.isEmpty()) { - if (position_mygame != -1) { - position_today = count_game + 1; - } else { - position_today = 0; - } + position_today = 0; } if (!beforeNewsList.isEmpty()) { - if (position_mygame != -1 && position_today != -1) { - position_before = position_today + todayNewsList.size() + 1; - } else if (position_mygame != -1 && position_today == -1) { - position_before = count_game + 1; - } else if (position_mygame == -1 && position_today != -1) { + if (position_today != -1) { position_before = todayNewsList.size() + 1; - } else if (position_mygame == -1 && position_today == -1) { + } else if (position_today == -1) { position_before = 0; } } - if (position_mygame != -1) { - relativeLayout.setVisibility(View.VISIBLE); - textView.setText("我的游戏"); - textView.setBackgroundResource(R.drawable.title_blue); - } else if (position_today != -1) { + if (position_today != -1) { relativeLayout.setVisibility(View.VISIBLE); textView.setText("今天"); textView.setBackgroundResource(R.drawable.title_red); @@ -641,44 +316,18 @@ public class News3FragmentAdapter extends @Override public int getItemCount() { int head = 0; - if (position_mygame != -1) { - head++; - } if (position_today != -1) { head++; } if (position_before != -1) { head++; } - return head + count_game + todayNewsList.size() + beforeNewsList.size() + 1; + return head + todayNewsList.size() + beforeNewsList.size() + 1; } @Override public int getItemViewType(int position) { - if (position_mygame != -1) { - if (position == 0) { - return ITEM_TYPE.head; - } - if (position > 0 && position <= count_game) { - for (int i = 0, size = concernList.size(); i < size; i++) { - int offset = 0; - for (int j = 0; j < i; j++) { - offset += (concernNewsMap.get( - concernList.get(j).getGameName()).size() + 1); - } - if (position == offset + 1) { - return ITEM_TYPE.game_type; - } else if (position > offset + 1 - && position <= concernNewsMap.get( - concernList.get(i).getGameName()).size() - + offset + 1) { - return ITEM_TYPE.game_text; - } - } - } - } - if (position_today != -1) { if (position == position_today) { return ITEM_TYPE.head; @@ -715,14 +364,10 @@ public class News3FragmentAdapter extends if (viewType == ITEM_TYPE.head) { return new HeadViewHolder(layoutInflater.inflate( R.layout.news_list_item_category, parent, false)); - } else if (viewType == ITEM_TYPE.game_type) { - return new GameNormalViewHolder(layoutInflater.inflate( - R.layout.news_list_item_gamenormal_type, parent, false)); } else if (viewType == ITEM_TYPE.news_image) { return new ImageNewsTypeViewHolder(layoutInflater.inflate( R.layout.home_list_item_newsimage_type, parent, false)); - } else if (viewType == ITEM_TYPE.news_text - || viewType == ITEM_TYPE.game_text) { + } else if (viewType == ITEM_TYPE.news_text) { return new TextNewsTypeViewHolder(layoutInflater.inflate( R.layout.home_list_item_newsnormal_type, parent, false), viewType); @@ -737,8 +382,6 @@ public class News3FragmentAdapter extends int position) { if (viewHolder instanceof HeadViewHolder) { ((HeadViewHolder) viewHolder).initViewHolder(position, viewHolder); - } else if (viewHolder instanceof GameNormalViewHolder) { - ((GameNormalViewHolder) viewHolder).initViewHolder(position); } else if (viewHolder instanceof ImageNewsTypeViewHolder) { ((ImageNewsTypeViewHolder) viewHolder).initViewHolder(position); } else if (viewHolder instanceof TextNewsTypeViewHolder) { @@ -791,12 +434,7 @@ public class News3FragmentAdapter extends headType = (TextView) v.findViewById(R.id.tv_label); } - public void initViewHolder(int position, - RecyclerView.ViewHolder viewHolder) { - if (position == position_mygame) { - headType.setText("我的游戏"); - headType.setBackgroundResource(R.drawable.title_blue); - } + public void initViewHolder(int position, RecyclerView.ViewHolder viewHolder) { if (position == position_today) { headType.setText("今天"); @@ -810,93 +448,6 @@ public class News3FragmentAdapter extends } } - private class GameNormalViewHolder extends RecyclerView.ViewHolder { - public ImageView gameThumb; - public TextView gameName; - public LinearLayout labelList; - private View rootItem; - - public GameNormalViewHolder(View v) { - super(v); - this.rootItem = v; - gameThumb = (ImageView) v.findViewById(R.id.news_game_thumb); - gameName = (TextView) v.findViewById(R.id.news_game_name); - labelList = (LinearLayout) v.findViewById(R.id.news_label_list); - } - - public void initViewHolder(int position) { - if (position > 0 && position <= count_game) { - for (int i = 0, size = concernList.size(); i < size; i++) { - int offset = 0; - for (int j = 0; j < i; j++) { - offset += (concernNewsMap.get( - concernList.get(j).getGameName()).size() + 1); - } - if (position == offset + 1) { - if (concernGameList == null) { - init(concernList.get(i)); - } else { - init(concernGameList.get(i), concernList.get(i) - .getTag()); - } - } - } - } - } - - private void init(ConcernInfo concernEntity) { - ImageUtils.getInstance(context).display(concernEntity.getIcon(), - gameThumb); - gameName.setText(concernEntity.getGameName()); - String tag = concernEntity.getTag(); - if (tag != null) { - GameViewUtils.setLabelList(context, labelList, tag); - } - rootItem.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - - } - }); - } - - private void init(final GameEntity entry, String tag) { - ImageUtils.getInstance(context).display(entry.getIcon(), gameThumb); - gameName.setText(entry.getName()); - if (tag != null) { - GameViewUtils.setLabelList(context, labelList, tag); - } - rootItem.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - - Map kv = new HashMap(); - kv.put("入口", type + "-我的游戏"); - DataUtils.onEvent(context, "游戏详情", entry.getName(), kv); - - Map map = new HashMap(); - map.put("location", "我的游戏"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("game", entry.getName()); - map.put("page", type); - DataCollectionManager.onEvent(context, "click-item", map); - - AppController.put("GameEntity", entry); - Intent intent = new Intent(context, - GameDetailsActivity.class); - intent.putExtra("entrance", type + "-我的游戏"); - if ("资讯".equals(type)) { - intent.putExtra("current", 1); - } else if ("攻略".equals(type)) { - intent.putExtra("current", 2); - } - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - } - } - public class ImageNewsTypeViewHolder extends RecyclerView.ViewHolder { private ImageView newsThumb; private TextView newsMainTitle, newsSubTitle; @@ -978,26 +529,6 @@ public class News3FragmentAdapter extends - 1); from = "昨天/以前"; } - } else if (column == ITEM_TYPE.game_text) { - if (position > 0 && position <= count_game) { - for (int i = 0, size = concernList.size(); i < size; i++) { - int offset = 0; - for (int j = 0; j < i; j++) { - offset += (concernNewsMap.get( - concernList.get(j).getGameName()).size() + 1); - } - if (position > offset + 1 - && position <= concernNewsMap.get( - concernList.get(i).getGameName()) - .size() - + offset + 1) { - newsEntity = concernNewsMap.get( - concernList.get(i).getGameName()).get( - position - offset - 2); - from = "我的游戏"; - } - } - } } if (newsEntity != null) { final NewsEntity entity = newsEntity; @@ -1042,10 +573,6 @@ public class News3FragmentAdapter extends return beforeNewsList.size(); } - public int getPosition_mygame() { - return position_mygame; - } - public int getPosition_today() { return position_today; } diff --git a/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java index 16a6f84d2d..263902cbf6 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java @@ -21,6 +21,8 @@ import com.gh.gamecenter.eventbus.EBNetworkState; * Created by khy on 2016/6/29. */ public class News4Fragment extends Fragment { + + private View view; private RecyclerView news_list; private LinearLayoutManager layoutManager; private News4FragmentAdapter adapter; @@ -28,8 +30,6 @@ public class News4Fragment extends Fragment { private boolean isDestroy; - private View view; - @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -46,9 +46,8 @@ public class News4Fragment extends Fragment { news_list.setVisibility(View.GONE); news_ll_loading.setVisibility(View.VISIBLE); reuse_no_connection.setVisibility(View.GONE); - adapter = new News4FragmentAdapter( - getActivity(), news_list, news_ll_loading, - reuse_no_connection); + adapter = new News4FragmentAdapter(getActivity(), news_list, + news_ll_loading, reuse_no_connection); news_list.setAdapter(adapter); } }); @@ -64,7 +63,6 @@ public class News4Fragment extends Fragment { news_list.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - if (event.getAction() == MotionEvent.ACTION_UP) { v.performClick(); } @@ -75,20 +73,6 @@ public class News4Fragment extends Fragment { } } }); - news_list.setOnScrollListener(new RecyclerView.OnScrollListener() { - - @Override - public void onScrollStateChanged(RecyclerView recyclerView, - int newState) { - super.onScrollStateChanged(recyclerView, newState); - if (!isDestroy && newState == RecyclerView.SCROLL_STATE_IDLE - && layoutManager.findLastVisibleItemPosition() + 1 == adapter.getItemCount()) { - if (!adapter.isRemove() && !adapter.isLoading() && !adapter.isNetworkError()) { - adapter.addList(); - } - } - } - }); news_list.addItemDecoration(new VerticalItemDecoration(getActivity(), 1)); } @@ -102,6 +86,7 @@ public class News4Fragment extends Fragment { } return view; } + public void onEventMainThread(EBConcernChanged busSeven) { adapter.updateMyGameNews(); } @@ -115,10 +100,6 @@ public class News4Fragment extends Fragment { adapter = new News4FragmentAdapter(getActivity(), news_list, news_ll_loading, reuse_no_connection); news_list.setAdapter(adapter); - } else if (adapter.isNetworkError()) { - adapter.setNetworkError(false); - adapter.notifyItemChanged(adapter.getItemCount()); - adapter.addList(); } } } diff --git a/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java index c210d5c89b..a45c5dc78b 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java @@ -25,6 +25,7 @@ import com.gh.common.util.GameViewUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.NewsUtils; import com.gh.common.util.TimestampUtils; +import com.gh.gamecenter.ConcernActivity; import com.gh.gamecenter.GameDetailsActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; @@ -48,14 +49,11 @@ import org.json.JSONArray; import org.json.JSONObject; import java.lang.reflect.Type; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -import java.util.Date; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; /** @@ -68,30 +66,18 @@ public class News4FragmentAdapter extends RecyclerView.Adapter { public static class ITEM_TYPE { - public static final int head = 1;// head - public static final int game_type = 2;// 游戏布局类型 - public static final int game_text = 3;// 游戏新闻列表类型 - public static final int news_text = 4;// 新闻列表1类型 - public static final int news_image = 5;// 新闻列表2类型 - public static final int refresh_footer = 6;// 刷新布局类型 + public static final int game_type = 1;// 游戏布局类型 + public static final int game_text = 2;// 游戏新闻列表类型 + public static final int refresh_footer = 3;// 刷新布局类型 } - private int position_mygame = -1;// 我的游戏head的位置 - private int position_today = -1;// 今天head的位置 - private int position_before = -1;// 昨天/以前head的位置 - private int count_game = 0;// 游戏+游戏新闻 的数目 private ConcernManager concernManager; private List concernList; private List concernGameList; private ArrayMap> concernNewsMap; - private List todayNewsList; - private List beforeNewsList; - private boolean isRemove = false; - private boolean isLoading = false; - // private boolean isLoaded = false; private boolean isNetworkError = false; private LayoutInflater layoutInflater; @@ -104,9 +90,6 @@ public class News4FragmentAdapter extends LinearLayout linearLayout1, LinearLayout linearLayout2) { context = con; - todayNewsList = new ArrayList(); - beforeNewsList = new ArrayList(); - this.recyclerView = recyclerView; ll_loading = linearLayout1; ll_noconnection = linearLayout2; @@ -119,9 +102,10 @@ public class News4FragmentAdapter extends if (concernList != null && !concernList.isEmpty()) { sortList(); - initConcernNews(true); + initConcernNews(); } else { - initDatas(); + refreshCount(); + showRecyclerView(); } } @@ -157,7 +141,7 @@ public class News4FragmentAdapter extends concernList = concernManager.getAllConcernBySort(); if (concernList != null && !concernList.isEmpty()) { sortList(); - initConcernNews(false); + initConcernNews(); } else { ll_loading.setVisibility(View.GONE); refreshCount(); @@ -248,181 +232,9 @@ public class News4FragmentAdapter extends } } - private void initDatas() { - if (true) { - isRemove = true; - refreshCount(); - showRecyclerView(); - return; - } - JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d45/news?offset=0&limit=20", Constants.NEWS_CD), - new Response.Listener() { - - @Override - public void onResponse(JSONArray response) { - SimpleDateFormat format = new SimpleDateFormat("Mdd", - Locale.getDefault()); - int today = Integer.valueOf(format.format(new Date())); - - Type listType = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - List newsLists = gson.fromJson( - response.toString(), listType); - int size = newsLists.size(); - for (int i = 0; i < size; i++) { - int day = Integer.valueOf(format.format(new Date( - Long.valueOf(newsLists.get(i) - .getPublishOn() + "000")))); - if (day == today) { - todayNewsList.add(newsLists.get(i)); - } else { - beforeNewsList.add(newsLists.get(i)); - } - } - if (size < 20) { - isRemove = true; - } - refreshCount(); - showRecyclerView(); -// isLoaded = true; -// notifyItemChanged(getItemCount() - 1); - } - }, new Response.ErrorListener() { - - @Override - public void onErrorResponse(VolleyError error) { - // 无网络连接和访问超时 - if (error.getClass().equals(NoConnectionError.class) - || error.getClass().equals(TimeoutError.class)) { - Toast.makeText(context, "获取新闻失败", Toast.LENGTH_SHORT).show(); - recyclerView.setVisibility(View.GONE); - ll_loading.setVisibility(View.GONE); - ll_noconnection.setVisibility(View.VISIBLE); - } - } - - }); - AppController.addToRequestQueue(request, NewsFragment.class); - } - - public void addList() { - if (isLoading) { - return; - } - isLoading = true; - JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d45/news?offset=" + getAllListSize() + "&limit=20", - Constants.NEWS_CD), new Response.Listener() { - - @Override - public void onResponse(JSONArray response) { - Type listType = new TypeToken>() {}.getType(); - Gson gson = new Gson(); - List lists = gson.fromJson(response.toString(), listType); - if (lists != null) { - if (lists.isEmpty()) { - isRemove = true; - notifyItemRemoved(getItemCount()); - } else { - addDatas(lists); - } - } - isLoading = false; -// isLoaded = true; -// notifyItemChanged(getItemCount() - 1); - } - - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - isLoading = false; - Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT) - .show(); - isNetworkError = true; - notifyItemChanged(getItemCount() - 1); - } - - }); - AppController.addToRequestQueue(request, NewsFragment.class); - } - - private void addDatas(List datas) { - final int dataSize = datas.size(); - // 去重 - for (int i = 0; i < datas.size(); i++) { - String id = datas.get(i).getId(); - final int index = i; - - if (!todayNewsList.isEmpty()) { - for (int j = 0; j < todayNewsList.size(); j++) { - if (id.equals(todayNewsList.get(j).getId())) { - datas.remove(i); - i--; - break; - } - } - if (index != i) { - continue; - } - } - - if (!beforeNewsList.isEmpty()) { - for (int j = 0; j < beforeNewsList.size(); j++) { - if (id.equals(beforeNewsList.get(j).getId())) { - datas.remove(i); - i--; - break; - } - } - if (index != i) { - continue; - } - } - } - - if (dataSize < 20 && datas.size() == 0) { - isRemove = true; - notifyItemChanged(getItemCount() - 1); - } - - SimpleDateFormat format = new SimpleDateFormat("Mdd", - Locale.getDefault()); - int today = Integer.valueOf(format.format(new Date())); - - for (int i = 0, size = datas.size(); i < size; i++) { - int day = Integer.valueOf(format.format(new Date(Long.valueOf(datas - .get(i).getPublishOn() + "000")))); - if (day == today) { - todayNewsList.add(datas.get(i)); - notifyItemInserted(getItemCount() - 2); - } else { - beforeNewsList.add(datas.get(i)); - if (beforeNewsList.size() == 1 && position_before == -1) { - if (position_mygame != -1 && position_today != -1) { - position_before = position_today + todayNewsList.size() - + 1; - } else if (position_mygame != -1 && position_today == -1) { - position_before = count_game + 1; - } else if (position_mygame == -1 && position_today != -1) { - position_before = todayNewsList.size() + 1; - } else if (position_mygame == -1 && position_today == -1) { - position_before = 0; - } - notifyItemRangeChanged(getItemCount() - 2, getItemCount()); - } else { - notifyItemInserted(getItemCount() - 2); - } - } - } - } - private int count; - private void initConcernNews(final boolean isInitDatas) { + private void initConcernNews() { final List cList = new ArrayList(); concernNewsMap = new ArrayMap>(); count = concernList.size(); @@ -447,27 +259,16 @@ public class News4FragmentAdapter extends concernNewsMap.put(concernList.get(index) .getGameName(), list); } - refresh(cList, isInitDatas); + refresh(cList); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // 无网络连接和网络超时 - if (error.getClass() - .equals(NoConnectionError.class) - || error.getClass().equals( - TimeoutError.class)) { - if (isInitDatas) { - Toast.makeText(context, "获取新闻失败", - Toast.LENGTH_SHORT).show(); - recyclerView.setVisibility(View.GONE); - ll_loading.setVisibility(View.GONE); - ll_noconnection.setVisibility(View.VISIBLE); - } else { - Toast.makeText(context, "网络错误", - Toast.LENGTH_SHORT).show(); - ll_loading.setVisibility(View.GONE); - } + if (error.getClass().equals(NoConnectionError.class) + || error.getClass().equals(TimeoutError.class)) { + Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT).show(); + ll_loading.setVisibility(View.GONE); } } }); @@ -475,7 +276,7 @@ public class News4FragmentAdapter extends } } - private void refresh(List cList, boolean isInitDatas) { + private void refresh(List cList) { if (count != 1) { count--; } else { @@ -485,19 +286,15 @@ public class News4FragmentAdapter extends for (int i = 0; i < concernList.size(); i++) { ids.add(concernList.get(i).getId()); } - initConcernDatas(ids, isInitDatas); + initConcernDatas(ids); } else { - if (isInitDatas) { - initDatas(); - } else { - refreshCount(); - showRecyclerView(); - } + refreshCount(); + showRecyclerView(); } } } - private void initConcernDatas(List ids, final boolean isInitDatas) { + private void initConcernDatas(List ids) { final List result = new ArrayList(); final int count = ids.size(); for (int i = 0, size = ids.size(); i < size; i++) { @@ -509,7 +306,7 @@ public class News4FragmentAdapter extends public void onResponse(JSONObject response) { result.add(response); if (result.size() == count) { - processingConcernData(result, isInitDatas); + processingConcernData(result); } } }, new Response.ErrorListener() { @@ -517,16 +314,10 @@ public class News4FragmentAdapter extends @Override public void onErrorResponse(VolleyError error) { // 无网络连接和网络超时 - if (error.getClass() - .equals(NoConnectionError.class) - || error.getClass().equals( - TimeoutError.class)) { - if (isInitDatas) { - initDatas(); - } else { - refreshCount(); - showRecyclerView(); - } + if (error.getClass().equals(NoConnectionError.class) + || error.getClass().equals(TimeoutError.class)) { + refreshCount(); + showRecyclerView(); } } @@ -535,8 +326,7 @@ public class News4FragmentAdapter extends } } - private void processingConcernData(List data, - boolean isInitDatas) { + private void processingConcernData(List data) { Gson gson = new Gson(); concernGameList = new ArrayList(); for (int i = 0, size = data.size(); i < size; i++) { @@ -565,23 +355,15 @@ public class News4FragmentAdapter extends } } } - if (isInitDatas) { - initDatas(); - } else { - refreshCount(); - showRecyclerView(); - } + refreshCount(); + showRecyclerView(); } private void refreshCount() { - position_mygame = -1; - position_today = -1; - position_before = -1; count_game = 0; if (!concernList.isEmpty()) { - position_mygame = 0; int count = 0; for (int i = 0, size = concernList.size(); i < size; i++) { count += (concernNewsMap.get(concernList.get(i).getGameName()) @@ -590,55 +372,34 @@ public class News4FragmentAdapter extends count_game = count; } - if (!todayNewsList.isEmpty()) { - if (position_mygame != -1) { - position_today = count_game + 1; - } else { - position_today = 0; - } - } - - if (!beforeNewsList.isEmpty()) { - if (position_mygame != -1 && position_today != -1) { - position_before = position_today + todayNewsList.size() + 1; - } else if (position_mygame != -1 && position_today == -1) { - position_before = count_game + 1; - } else if (position_mygame == -1 && position_today != -1) { - position_before = todayNewsList.size() + 1; - } else if (position_mygame == -1 && position_today == -1) { - position_before = 0; - } - } notifyDataSetChanged(); } @Override public int getItemCount() { - return count_game; + if (count_game == 0) { + return 0; + } + return count_game + 1; } @Override public int getItemViewType(int position) { - if (position_mygame != -1) { -// if (position == 0) { -// return ITEM_TYPE.head; -// } - if (position >= 0 && position < count_game) { - for (int i = 0, size = concernList.size(); i < size; i++) { - int offset = 0; - for (int j = 0; j < i; j++) { - offset += (concernNewsMap.get( - concernList.get(j).getGameName()).size() + 1); - } - if (position == offset) { - return ITEM_TYPE.game_type; - } else if (position > offset - && position <= concernNewsMap.get( - concernList.get(i).getGameName()).size() - + offset) { - return ITEM_TYPE.game_text; - } + if (position >= 0 && position < count_game) { + for (int i = 0, size = concernList.size(); i < size; i++) { + int offset = 0; + for (int j = 0; j < i; j++) { + offset += (concernNewsMap.get( + concernList.get(j).getGameName()).size() + 1); + } + if (position == offset) { + return ITEM_TYPE.game_type; + } else if (position > offset + && position <= concernNewsMap.get( + concernList.get(i).getGameName()).size() + + offset) { + return ITEM_TYPE.game_text; } } } @@ -647,22 +408,13 @@ public class News4FragmentAdapter extends } @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, - int viewType) { - if (viewType == ITEM_TYPE.head) { - return new HeadViewHolder(layoutInflater.inflate( - R.layout.news_list_item_category, parent, false)); - } else if (viewType == ITEM_TYPE.game_type) { + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + if (viewType == ITEM_TYPE.game_type) { return new GameNormalViewHolder(layoutInflater.inflate( R.layout.news_list_item_gamenormal_type, parent, false)); - } else if (viewType == ITEM_TYPE.news_image) { - return new ImageNewsTypeViewHolder(layoutInflater.inflate( - R.layout.home_list_item_newsimage_type, parent, false)); - } else if (viewType == ITEM_TYPE.news_text - || viewType == ITEM_TYPE.game_text) { + } else if (viewType == ITEM_TYPE.game_text) { return new TextNewsTypeViewHolder(layoutInflater.inflate( - R.layout.home_list_item_newsnormal_type, parent, false), - viewType); + R.layout.home_list_item_newsnormal_type, parent, false), viewType); } else { return new FooterViewHolder(layoutInflater.inflate( R.layout.refresh_footerview, parent, false)); @@ -670,80 +422,22 @@ public class News4FragmentAdapter extends } @Override - public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, - int position) { - if (viewHolder instanceof HeadViewHolder) { - ((HeadViewHolder) viewHolder).initViewHolder(position, viewHolder); - } else if (viewHolder instanceof GameNormalViewHolder) { + public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { + if (viewHolder instanceof GameNormalViewHolder) { ((GameNormalViewHolder) viewHolder).initViewHolder(position); - } else if (viewHolder instanceof ImageNewsTypeViewHolder) { - ((ImageNewsTypeViewHolder) viewHolder).initViewHolder(position); } else if (viewHolder instanceof TextNewsTypeViewHolder) { ((TextNewsTypeViewHolder) viewHolder).initViewHolder(position); } else if (viewHolder instanceof FooterViewHolder) { FooterViewHolder holder = (FooterViewHolder) viewHolder; - if (isNetworkError) { - holder.footerview_progressbar.setVisibility(View.GONE); - holder.footerview_tv_loading.setText("加载失败,点击重试"); - holder.itemView.setClickable(true); - holder.itemView.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - isNetworkError = false; - notifyItemChanged(getItemCount() - 1); - addList(); - } - }); - } else if (isRemove) { - holder.footerview_progressbar.setVisibility(View.GONE); - holder.footerview_tv_loading.setText("加载完毕"); - holder.itemView.setClickable(false); - } -// else if (isLoaded) { -// holder.footerview_progressbar.setVisibility(View.GONE); -// holder.footerview_tv_loading.setText("点击加载更多"); -// holder.rootView.setClickable(true); -// holder.rootView.setOnClickListener(new OnClickListener() { -// @Override -// public void onClick(View v) { -// isLoaded = false; -// notifyItemChanged(getItemCount() - 1); -// addList(); -// } -// }); -// } - else { - holder.footerview_progressbar.setVisibility(View.VISIBLE); - holder.footerview_tv_loading.setText("加载中..."); - holder.itemView.setClickable(false); - } - } - } - - private class HeadViewHolder extends RecyclerView.ViewHolder { - public TextView headType; - - public HeadViewHolder(View v) { - super(v); - headType = (TextView) v.findViewById(R.id.tv_label); - } - - public void initViewHolder(int position, - RecyclerView.ViewHolder viewHolder) { - if (position == position_mygame) { - headType.setText("我的游戏"); - headType.setBackgroundResource(R.drawable.title_blue); - } - - if (position == position_today) { - headType.setText("今天"); - headType.setBackgroundResource(R.drawable.title_red); - } - - if (position == position_before) { - headType.setText("昨天/以前"); - headType.setBackgroundResource(R.drawable.title_gray); - } + holder.footerview_progressbar.setVisibility(View.GONE); + holder.footerview_tv_loading.setText("管理我的关注"); + holder.itemView.setClickable(true); + holder.itemView.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + context.startActivity(new Intent(context, ConcernActivity.class)); + } + }); } } @@ -829,57 +523,6 @@ public class News4FragmentAdapter extends } } - public class ImageNewsTypeViewHolder extends RecyclerView.ViewHolder { - private ImageView newsThumb; - private TextView newsMainTitle, newsSubTitle; - private View rootItem; - - public ImageNewsTypeViewHolder(View v) { - super(v); - rootItem = v; - newsThumb = (ImageView) v.findViewById(R.id.news_thumb); - newsMainTitle = (TextView) v.findViewById(R.id.news_main_title); - newsSubTitle = (TextView) v.findViewById(R.id.news_sub_title); - } - - public void initViewHolder(int position) { - final NewsEntity newsEntity = todayNewsList.get(0); - ImageUtils.getInstance(context).display(newsEntity.getThumb(), newsThumb); - String title = newsEntity.getTitle(); - if (title.contains("》")) { - newsMainTitle.setText(title.substring(0, title.indexOf("》") + 1)); - newsSubTitle.setVisibility(View.VISIBLE); - newsSubTitle.setText(title.substring(title.indexOf("》") + 1)); - } else if (title.contains(" ")) { - newsMainTitle.setText(title.substring(0, title.indexOf(" ") + 1)); - newsSubTitle.setVisibility(View.VISIBLE); - newsSubTitle.setText(title.substring(title.indexOf(" ") + 1)); - } else { - newsMainTitle.setText(title); - newsSubTitle.setVisibility(View.GONE); - } - rootItem.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - Map kv = new HashMap(); - kv.put("文章类型", newsEntity.getType()); - kv.put("入口", "关注-今天"); - DataUtils.onEvent(context, "文章阅读-关注", newsEntity.getTitle(), kv); - - Map map = new HashMap(); - map.put("location", "今天"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("news", newsEntity.getTitle()); - map.put("page", "关注"); - DataCollectionManager.onEvent(context, "click-item", map); - - NewsUtils.startNewsActivity(context, newsEntity, "关注-今天"); - } - }); - } - - } - private class TextNewsTypeViewHolder extends RecyclerView.ViewHolder { public TextView newsType; public TextView newsTitle; @@ -897,17 +540,7 @@ public class News4FragmentAdapter extends public void initViewHolder(final int position) { NewsEntity newsEntity = null; String from = null; - if (column == ITEM_TYPE.news_text) { - if (position > position_today - && position <= todayNewsList.size() + position_today) { - newsEntity = todayNewsList.get(position - position_today - 1); - from = "今天"; - } else if (position > position_before - && position <= beforeNewsList.size() + position_before) { - newsEntity = beforeNewsList.get(position - position_before - 1); - from = "昨天/以前"; - } - } else if (column == ITEM_TYPE.game_text) { + if (column == ITEM_TYPE.game_text) { if (position >= 0 && position < count_game) { for (int i = 0, size = concernList.size(); i < size; i++) { int offset = 0; @@ -958,46 +591,6 @@ public class News4FragmentAdapter extends } - public int getAllListSize() { - return todayNewsList.size() + beforeNewsList.size(); - } - - public int getTodaySize() { - return todayNewsList.size(); - } - - public int getBeforeSize() { - return beforeNewsList.size(); - } - - public int getPosition_mygame() { - return position_mygame; - } - - public int getPosition_today() { - return position_today; - } - - public int getPosition_before() { - return position_before; - } - - public boolean isRemove() { - return isRemove; - } - - public void setRemove(boolean isRemove) { - this.isRemove = isRemove; - } - - public boolean isLoading() { - return isLoading; - } - - public void setLoading(boolean isLoading) { - this.isLoading = isLoading; - } - public boolean isNetworkError() { return isNetworkError; } 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 7fc509b58d..d13e8c2185 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java @@ -15,12 +15,10 @@ import com.gh.common.view.VerticalItemDecoration; import com.gh.download.DownloadManager; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBDownloadDelete; -import com.gh.gamecenter.eventbus.EBLogout; import com.gh.gamecenter.eventbus.EBNetworkState; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBRedDot; import com.gh.gamecenter.eventbus.EBShowDone; -import com.gh.gamecenter.eventbus.EBSms; import com.gh.gamecenter.eventbus.EBUISwitch; import de.greenrobot.event.EventBus; @@ -95,20 +93,6 @@ public class PersonalFragment extends Fragment { adapter.notifyItemChanged(0); } - public void onEventMainThread(EBSms sms) { - if ("注册验证".equals(sms.getType())) { - adapter.setCode(sms.getCode()); - } - } - - public void onEventMainThread(EBLogout logout) { - if (logout.getType() == 0) { - adapter.logout(); - } else { - adapter.notifyItemChanged(0); - } - } - public void onEventMainThread(EBShowDone showDone) { if ("我的游戏".equals(showDone.getFrom()) && gameRecyclerView != null) { gameRecyclerView.smoothScrollToPosition(showDone.getPosition()); @@ -137,11 +121,9 @@ public class PersonalFragment extends Fragment { @Override public void onDestroy() { - super.onDestroy(); EventBus.getDefault().unregister(this); - AppController.canclePendingRequests( - PersonalFragment.class); + AppController.canclePendingRequests(PersonalFragment.class); view = null; gameRecyclerView = null; adapter = null; diff --git a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragmentAdapter.java index a3d50f1146..199473c748 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragmentAdapter.java @@ -30,7 +30,6 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.Window; -import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; @@ -73,7 +72,6 @@ import com.gh.gamecenter.entity.GameDigestEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.GameUpdateEntity; import com.gh.gamecenter.entity.MyGameInfo; -import com.gh.gamecenter.entity.UserEntity; import com.gh.gamecenter.eventbus.EBDownloadDelete; import com.gh.gamecenter.eventbus.EBPutUrl; import com.gh.gamecenter.eventbus.EBRedDot; @@ -107,8 +105,6 @@ public class PersonalFragmentAdapter extends private ArrayList sortedList; private SparseBooleanArray isShowMap; - private UserEntity user; - private ArrayMap locationMap; private SparseArray recyclerViewMap; @@ -423,21 +419,6 @@ public class PersonalFragmentAdapter extends holder.me_tv_update.setVisibility(View.VISIBLE); holder.me_tv_update.setText("" + updateSize); } - if (user == null) { - holder.me_tv_nickname.setVisibility(View.INVISIBLE); - holder.me_tv_sign.setVisibility(View.INVISIBLE); - holder.me_iv_icon.setImageResource(R.drawable.me_icon); - } else { - holder.me_tv_nickname.setVisibility(View.VISIBLE); - holder.me_tv_sign.setVisibility(View.VISIBLE); - holder.me_tv_nickname.setText(user.getName()); - if (user.getSign() != null) { - holder.me_tv_sign.setText(user.getSign()); - } - ImageUtils.getInstance(fragmentActivity).display( - user.getIcon(), holder.me_iv_icon); - } - } else if (viewHolder instanceof MultiFunctionViewHolder) { MultiFunctionViewHolder holder = (MultiFunctionViewHolder) viewHolder; if (isNetworkError) { @@ -606,41 +587,29 @@ public class PersonalFragmentAdapter extends public class FunctionViewHolder extends ViewHolder implements OnClickListener { - private TextView me_tv_download, me_tv_update, me_tv_nickname, - me_tv_sign; + private TextView me_tv_download, me_tv_update; private ImageView me_iv_icon; public FunctionViewHolder(View convertView) { super(convertView); - convertView.findViewById(R.id.me_ll_concern).setOnClickListener( - this); - convertView.findViewById(R.id.me_ll_download).setOnClickListener( - this); - convertView.findViewById(R.id.me_ll_setting).setOnClickListener( - this); - convertView.findViewById(R.id.me_ll_update) - .setOnClickListener(this); - me_tv_download = (TextView) convertView - .findViewById(R.id.me_tv_download); - me_tv_update = (TextView) convertView - .findViewById(R.id.me_tv_update); + convertView.findViewById(R.id.me_ll_concern).setOnClickListener(this); + convertView.findViewById(R.id.me_ll_download).setOnClickListener(this); + convertView.findViewById(R.id.me_ll_setting).setOnClickListener(this); + convertView.findViewById(R.id.me_ll_update).setOnClickListener(this); + me_tv_download = (TextView) convertView.findViewById(R.id.me_tv_download); + me_tv_update = (TextView) convertView.findViewById(R.id.me_tv_update); me_iv_icon = (ImageView) convertView.findViewById(R.id.me_iv_icon); me_iv_icon.setOnClickListener(this); if (Config.isShow) { - convertView.findViewById(R.id.me_ll_download).setVisibility( - View.VISIBLE); - convertView.findViewById(R.id.me_ll_update).setVisibility( - View.VISIBLE); + convertView.findViewById(R.id.me_ll_download).setVisibility(View.VISIBLE); + convertView.findViewById(R.id.me_ll_update).setVisibility(View.VISIBLE); } else { - convertView.findViewById(R.id.me_ll_download).setVisibility( - View.GONE); - convertView.findViewById(R.id.me_ll_update).setVisibility( - View.GONE); + convertView.findViewById(R.id.me_ll_download).setVisibility(View.GONE); + convertView.findViewById(R.id.me_ll_update).setVisibility(View.GONE); } - me_tv_nickname = (TextView) convertView - .findViewById(R.id.me_tv_nickname); - me_tv_sign = (TextView) convertView.findViewById(R.id.me_tv_sign); +// me_tv_nickname = (TextView) convertView.findViewById(R.id.me_tv_nickname); +// me_tv_sign = (TextView) convertView.findViewById(R.id.me_tv_sign); // me_cutting_line = convertView.findViewById(R.id.me_cutting_line); } @@ -706,19 +675,6 @@ public class PersonalFragmentAdapter extends } - private TextView code_tv_send_again; - private EditText code_et_code; - - private int countdown = 60; - - // 设置获取到的验证码 - public void setCode(String code) { - if (code_et_code != null) { - code_et_code.setText(code); - code_et_code.setSelection(code.length()); - } - } - private DataWatcher dataWatcher = new DataWatcher() { @Override public void onDataChanged( @@ -1333,11 +1289,6 @@ public class PersonalFragmentAdapter extends statusMap.clear(); } - public void logout() { - user = null; - notifyItemChanged(0); - } - public boolean isNetworkError() { return isNetworkError; } diff --git a/app/src/main/java/com/gh/gamecenter/receiver/SmsReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/SmsReceiver.java deleted file mode 100644 index c3721b760e..0000000000 --- a/app/src/main/java/com/gh/gamecenter/receiver/SmsReceiver.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.gh.gamecenter.receiver; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.telephony.SmsMessage; - -import com.gh.common.util.Utils; -import com.gh.gamecenter.eventbus.EBSms; - -import java.util.regex.Pattern; - -import de.greenrobot.event.EventBus; - -public class SmsReceiver extends BroadcastReceiver { - - public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED"; - - @Override - public void onReceive(Context context, Intent intent) { - - if (intent.getAction().equals(SMS_RECEIVED_ACTION)) { - SmsMessage[] messages = getMessagesFromIntent(intent); - - for (SmsMessage message : messages) { - String msgBody = message.getDisplayMessageBody(); - Utils.log(msgBody); - if (Pattern.matches("^【注册验证】验证码:\\d{6},您正在注册成为光环助手用户,感谢您的支持!$", msgBody)) { - String code = msgBody.substring(10, 16); - Utils.log(code); - EventBus.getDefault().post(new EBSms("注册验证", code)); - } else if (Pattern.matches("^【身份验证】验证码:\\d{6},您正在进行手机号码:\\d{11}的身份验证,打死不要告诉别人哦!$", msgBody)) { - String code = msgBody.substring(10, 16); - Utils.log(code); - EventBus.getDefault().post(new EBSms("身份验证", code)); - } else if (Pattern.matches("^【变更验证】验证码:\\d{6},您正在尝试变更光环号:.{6,}的手机号码这一重要信息,请妥善保管账户信息。$", msgBody)) { - String code = msgBody.substring(10, 16); - Utils.log(code); - EventBus.getDefault().post(new EBSms("变更验证", code)); - } else if (Pattern.matches("^【变更验证】验证码:\\d{6},您正在尝试修改光环号:.{6,}的登录密码,请妥善保管账户信息。$", msgBody)) { - String code = msgBody.substring(10, 16); - Utils.log(code); - EventBus.getDefault().post(new EBSms("变更验证", code)); - } - } - //【注册验证】验证码:195306,您正在注册成为光环助手用户,感谢您的支持! - //【身份验证】验证码:716438,您正在进行手机号码:13829769945的身份验证,打死不要告诉别人哦! - //【变更验证】验证码:293785,您正在尝试变更光环号:qqqwww的手机号码这一重要信息,请妥善保管账户信息。 - //【变更验证】验证码:901874,您正在尝试修改光环号:qqqwww的登录密码,请妥善保管账户信息。 - } - } - - public SmsMessage[] getMessagesFromIntent(Intent intent) { - Object[] messages = (Object[]) intent.getSerializableExtra("pdus"); - byte[][] pduObjs = new byte[messages.length][]; - for (int i = 0; i < messages.length; i++) { - pduObjs[i] = (byte[]) messages[i]; - } - byte[][] pdus = new byte[pduObjs.length][]; - int pduCount = pdus.length; - SmsMessage[] msgs = new SmsMessage[pduCount]; - for (int i = 0; i < pduCount; i++) { - pdus[i] = pduObjs[i]; - msgs[i] = SmsMessage.createFromPdu(pdus[i]); - } - return msgs; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/search/Search1DetailFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/Search1DetailFragmentAdapter.java index c96ffda981..b65134cc28 100644 --- a/app/src/main/java/com/gh/gamecenter/search/Search1DetailFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/Search1DetailFragmentAdapter.java @@ -1,5 +1,6 @@ package com.gh.gamecenter.search; +import android.app.Dialog; import android.content.Context; import android.content.Intent; import android.net.Uri; @@ -9,6 +10,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.view.Window; import android.view.inputmethod.InputMethodManager; import android.widget.LinearLayout; import android.widget.TextView; @@ -19,8 +21,10 @@ import com.gh.base.AppController; import com.gh.common.constant.Config; import com.gh.common.constant.Constants; import com.gh.common.util.DataUtils; +import com.gh.common.util.DialogUtils; import com.gh.common.util.GameViewUtils; import com.gh.common.util.ImageUtils; +import com.gh.common.util.NetworkUtils; import com.gh.common.util.TimestampUtils; import com.gh.common.view.DownloadDialog; import com.gh.gamecenter.GameDetailsActivity; @@ -172,14 +176,24 @@ public class Search1DetailFragmentAdapter extends RecyclerView.Adapter - - diff --git a/app/src/main/res/layout/home3_fragment_function.xml b/app/src/main/res/layout/home3_fragment_function.xml index 4f224e9a08..2a4de61dfe 100644 --- a/app/src/main/res/layout/home3_fragment_function.xml +++ b/app/src/main/res/layout/home3_fragment_function.xml @@ -12,80 +12,11 @@ android:scaleType="centerCrop" android:src="@drawable/me_icon" /> - - - - - - diff --git a/app/src/main/res/layout/home_list_item_head.xml b/app/src/main/res/layout/home_game_head_item.xml similarity index 97% rename from app/src/main/res/layout/home_list_item_head.xml rename to app/src/main/res/layout/home_game_head_item.xml index 7e711ebdfc..8a59a81839 100644 --- a/app/src/main/res/layout/home_list_item_head.xml +++ b/app/src/main/res/layout/home_game_head_item.xml @@ -44,6 +44,7 @@ android:paddingRight="10dp" > + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/search3_history_fragment_item.xml b/app/src/main/res/layout/search3_history_fragment_item.xml index 03abf18d93..6b3dda4719 100644 --- a/app/src/main/res/layout/search3_history_fragment_item.xml +++ b/app/src/main/res/layout/search3_history_fragment_item.xml @@ -1,9 +1,11 @@ - @@ -11,20 +13,19 @@ android:id="@+id/search_history_ico" android:layout_width="12dp" android:layout_height="12dp" - android:layout_alignParentLeft="true" - android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:src="@drawable/search_history_ico" /> @@ -33,13 +34,10 @@ android:id="@+id/search_history_add" android:layout_width="20dp" android:layout_height="20dp" - android:layout_alignParentRight="true" - android:layout_centerVertical="true" android:layout_marginRight="15dp" android:padding="20dp" android:alpha="60" android:background="@drawable/ic_action_plus" /> - - +