From 1160fb999e5fc4f785011cbed622d77a517a1ee8 Mon Sep 17 00:00:00 2001 From: CsHeng Date: Thu, 15 Jun 2017 17:24:16 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9mta=E6=8E=A5=E5=85=A5?= =?UTF-8?q?=EF=BC=8C=E7=84=B6=E8=80=8C=E8=B2=8C=E4=BC=BC=E5=B9=B6=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E4=BB=80=E4=B9=88=E5=8D=B5=E7=94=A8=20=E7=A6=81?= =?UTF-8?q?=E7=94=A8tcagent=E7=9A=84uncaught=20exception=20=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/gh/base/AppController.java | 8 ++- .../java/com/gh/base/AppUncaughtHandler.java | 5 +- .../java/com/gh/common/util/DataUtils.java | 51 +++++++++++-------- build.gradle | 2 +- 4 files changed, 41 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/com/gh/base/AppController.java b/app/src/main/java/com/gh/base/AppController.java index d5a20a8c8e..175e3f35f4 100644 --- a/app/src/main/java/com/gh/base/AppController.java +++ b/app/src/main/java/com/gh/base/AppController.java @@ -107,7 +107,6 @@ public class AppController extends Application { Thread.setDefaultUncaughtExceptionHandler(appUncaughtHandler); } -// mChannel = (String) PackageUtils.getMetaData(this, getPackageName(), "TD_CHANNEL_ID"); mChannel = ChannelReaderUtil.getChannel(this); if (TextUtils.isEmpty(mChannel)) { //默认用Android Studio run时并没有写入channel magic number到apk包里面,所以需要fallback @@ -121,6 +120,13 @@ public class AppController extends Application { DataUtils.init(this, BuildConfig.DEBUG, mChannel); + //测试MTA崩溃的,坑爹 +// if (BuildConfig.DEBUG) { +// StatConfig.setDebugEnable(true); +// StatConfig.setStatSendStrategy(StatReportStrategy.DEVELOPER); +// throw new RuntimeException("test again"); +// } + HttpsUtils.initHttpsUrlConnection(this); // if (BuildConfig.DEBUG) { diff --git a/app/src/main/java/com/gh/base/AppUncaughtHandler.java b/app/src/main/java/com/gh/base/AppUncaughtHandler.java index f6c9ab65c2..870b5b21f6 100644 --- a/app/src/main/java/com/gh/base/AppUncaughtHandler.java +++ b/app/src/main/java/com/gh/base/AppUncaughtHandler.java @@ -95,10 +95,11 @@ public class AppUncaughtHandler implements UncaughtExceptionHandler { String errorMsg = Log.getStackTraceString(ex); // MTA主动上传错误 - StatService.reportError(mAppController.getApplicationContext(), errorMsg); +// StatService.reportError(mAppController.getApplicationContext(), errorMsg); + StatService.reportException(mAppController, ex); // 上传错误数据 - DataCollectionUtils.uploadError(mAppController.getApplicationContext(), errorMsg); + DataCollectionUtils.uploadError(mAppController, errorMsg); // 保存到本地 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.getDefault()); diff --git a/app/src/main/java/com/gh/common/util/DataUtils.java b/app/src/main/java/com/gh/common/util/DataUtils.java index 6630ace313..5432076cf2 100644 --- a/app/src/main/java/com/gh/common/util/DataUtils.java +++ b/app/src/main/java/com/gh/common/util/DataUtils.java @@ -32,42 +32,51 @@ public class DataUtils { public static void init(Application context, final boolean debug, String channel) { //TalkingData + TCAgent.LOG_ON = debug; if (!debug) { TCAgent.init(context, Config.TD_APPID, channel); - TCAgent.setReportUncaughtExceptions(true); - } else { - TCAgent.LOG_ON = true; + //TODO 去除为了测试MTA的问题,这个版本不启用 +// TCAgent.setReportUncaughtExceptions(true); } + // 打开debug开关,可查看mta上报日志或错误 + // debug true release false + StatConfig.setDebugEnable(debug); + //MTA - StatService.setContext(context); - StatService.registerActivityLifecycleCallbacks(context); if (!debug) { - // 禁止MTA打印日志 - StatConfig.setDebugEnable(false); + + //TODO 加入账号之后设置用户 +// StatConfig.setCustomUserId(context, "userid"); + // 收集未处理的异常 StatConfig.setAutoExceptionCaught(true); + + StatConfig.setAntoActivityLifecycleStat(true); + // 设置数据上报策略 StatConfig.setStatSendStrategy(StatReportStrategy.PERIOD); StatConfig.setSendPeriodMinutes(5); + StatConfig.init(context); + StatConfig.setInstallChannel(channel); + StatService.setContext(context); + StatService.registerActivityLifecycleCallbacks(context); + + StatCrashReporter crashReporter = StatCrashReporter.getStatCrashReporter(context); + // 开启异常时的实时上报 + crashReporter.setEnableInstantReporting(true); + // 开启java异常捕获 + crashReporter.setJavaCrashHandlerStatus(true); + try { // 开启收集服务 StatService.startStatService(context, Config.MTA_APPKEY, com.tencent.stat.common.StatConstants.VERSION); } catch (MtaSDkException e) { e.printStackTrace(); } - - StatCrashReporter crashReporter = StatCrashReporter.getStatCrashReporter(context); - // 开启异常时的实时上报 - crashReporter.setEnableInstantReporting(true); - // 开启java异常捕获 - crashReporter.setJavaCrashHandlerStatus(true); - } else { - // 打开debug开关,可查看mta上报日志或错误 - // debug true release false - StatConfig.setDebugEnable(true); } + } public static void onEvent(Context var0, String var1, String var2) { @@ -108,18 +117,18 @@ public class DataUtils { Map kv = new HashMap<>(); kv.put("版本", platform); kv.put("状态", status); - DataUtils.onEvent(context, "游戏下载", gameName, kv); + onEvent(context, "游戏下载", gameName, kv); Map kv2 = new HashMap<>(); kv2.put("版本", platform); kv2.put("状态", status); kv2.put("位置", entrance); - DataUtils.onEvent(context, "游戏下载位置", gameName, kv2); + onEvent(context, "游戏下载位置", gameName, kv2); Map kv3 = new HashMap<>(); kv3.put(entrance, "下载数"); kv3.put(entrance, status); - DataUtils.onEvent(context, "应用数据", gameName, kv3); + onEvent(context, "应用数据", gameName, kv3); } // 游戏更新 @@ -127,7 +136,7 @@ public class DataUtils { Map kv = new HashMap<>(); kv.put("版本", paltform); kv.put("状态", status); - DataUtils.onEvent(context, "游戏更新", gameName, kv); + onEvent(context, "游戏更新", gameName, kv); } } diff --git a/build.gradle b/build.gradle index 1bfb361c8a..fedad4d38b 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.1' + classpath 'com.android.tools.build:gradle:2.3.3' // for ndk-build experimental // classpath 'com.android.tools.build:gradle-experimental:0.6.0-alpha5' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' From 8dd069b38dd3926482b94e8f591c532b1f2e3f02 Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Thu, 15 Jun 2017 17:27:49 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=88=87=E6=8D=A2=E6=AD=A3=E5=BC=8F?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/common/constant/Config.java | 10 +++++----- .../com/gh/gamecenter/adapter/LibaoDetailAdapter.java | 1 + app/src/main/res/values/styles_themes.xml | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/gh/common/constant/Config.java b/app/src/main/java/com/gh/common/constant/Config.java index 12cdfdec1f..57d76d9c30 100644 --- a/app/src/main/java/com/gh/common/constant/Config.java +++ b/app/src/main/java/com/gh/common/constant/Config.java @@ -8,12 +8,12 @@ import com.gh.gamecenter.BuildConfig; public class Config { - public static final String HOST = "http://dev.api2.ghzhushou.com/v2d6/"; - public static final String USER_HOST = "http://dev.user2.ghzhushou.com/v1d2/"; - public static final String COMMENT_HOST = "http://dev.comment2.ghzhushou.com/v1d2/"; + public static final String HOST = "http://api2.ghzhushou.com/v2d6/"; + public static final String USER_HOST = "http://user2.ghzhushou.com/v1d2/"; + public static final String COMMENT_HOST = "http://comment2.ghzhushou.com/v1d2/"; public static final String DATA_HOST = "http://data.ghzhushou.com/"; - public static final String LIBAO_HOST = "http://dev.libao2.ghzhushou.com/v1d2/"; - public static final String MESSAGE_HOST = "http://message.ghzhushou.com/v1d1/"; // TODO TEST v1d1 + public static final String LIBAO_HOST = "http://libao2.ghzhushou.com/v1d2/"; + public static final String MESSAGE_HOST = "http://message.ghzhushou.com/v1d0/"; // TODO TEST v1d1 public static final String PREFERENCE = "ghzhushou"; // Third-Party confs diff --git a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java index 442b5e55a4..2347c53d32 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java @@ -116,6 +116,7 @@ public class LibaoDetailAdapter extends BaseRecyclerAdapter { initLibaoDetailContent((GameDetailNewsViewHolder) holder, position); } else if (holder instanceof FooterViewHolder) { FooterViewHolder viewHolder = (FooterViewHolder) holder; + viewHolder.initItemPadding(); viewHolder.loading.setVisibility(View.GONE); viewHolder.hint.setText("此礼包有问题?点击反馈"); diff --git a/app/src/main/res/values/styles_themes.xml b/app/src/main/res/values/styles_themes.xml index 00ef25bd9e..fd31cc7756 100644 --- a/app/src/main/res/values/styles_themes.xml +++ b/app/src/main/res/values/styles_themes.xml @@ -60,8 +60,8 @@ true - @color/theme - @color/theme + + From f5425c2bea9869314cd3874ce038f050d22aae77 Mon Sep 17 00:00:00 2001 From: CsHeng Date: Fri, 16 Jun 2017 14:11:18 +0800 Subject: [PATCH 3/6] =?UTF-8?q?1=E3=80=81=E7=BB=9F=E4=B8=80=E6=89=80?= =?UTF-8?q?=E6=9C=89fragment=E5=88=9D=E5=A7=8B=E5=8C=96=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=EF=BC=8C=E7=BB=A7=E6=89=BF=E8=87=AABaseFragment=202=E3=80=81?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E5=A4=A7=E9=83=A8=E5=88=86viewholder=203?= =?UTF-8?q?=E3=80=81TODO=20fragment=20adapter=20viewholder=E7=9A=84?= =?UTF-8?q?=E5=88=86=E5=8C=85=E8=BF=98=E6=B2=A1=E5=A4=84=E7=90=86=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 33 +-- .../java/com/gh/base/AppControllerLike.java | 51 ----- .../com/gh/base/AppTinkerResultService.java | 29 --- .../main/java/com/gh/base/BaseActivity.java | 2 +- .../main/java/com/gh/base/BaseFragment.java | 49 +++-- .../com/gh/base/BaseFragmentActivity.java | 206 ------------------ .../adapter => base}/BaseRecyclerAdapter.java | 59 ++--- .../com/gh/base/BaseRecyclerViewHolder.java | 23 ++ .../java/com/gh/common/util/DataUtils.java | 2 +- .../com/gh/common/view/DownloadDialog.java | 2 +- .../java/com/gh/download/DataWatcher.java | 2 +- .../java/com/gh/gamecenter/MainActivity.java | 2 +- .../com/gh/gamecenter/SubjectActivity.java | 2 +- .../gamecenter/adapter/CleanApkAdapter.java | 1 + .../adapter/CommentDetailAdapter.java | 1 + .../gh/gamecenter/adapter/ConcernAdapter.java | 3 +- .../adapter/ConcernRecommendAdapter.java | 3 +- .../adapter/FileReceiverAdapter.java | 1 + .../gamecenter/adapter/FileSenderAdapter.java | 1 + .../gamecenter/adapter/GameNewsAdapter.java | 1 + .../adapter/GameNewsTypeListAdapter.java | 1 + .../gh/gamecenter/adapter/KaiFuAdapter.java | 3 +- .../adapter/KaiFuDialogAdapter.java | 1 + .../adapter/KcSelectGameAdapter.java | 2 +- .../gamecenter/adapter/LiBaoCodeAdapter.java | 1 + .../adapter/LibaoDetailAdapter.java | 5 +- .../adapter/MessageDetailAdapter.java | 1 + .../gamecenter/adapter/PlatformAdapter.java | 3 +- .../adapter/PlatformPagerAdapter.java | 2 +- .../gh/gamecenter/adapter/PluginAdapter.java | 3 +- .../adapter/SubjectTypeAdapter.java | 1 + .../gamecenter/adapter/ToolBoxRvAdapter.java | 3 +- .../gh/gamecenter/adapter/VoteAdapter.java | 3 +- .../viewholder/CommentHeadViewHolder.java | 7 +- .../adapter/viewholder/CommentViewHolder.java | 6 +- .../adapter/viewholder/ConcernViewHolder.java | 18 +- .../viewholder/DownloadHeadViewHolder.java | 12 +- .../adapter/viewholder/FooterViewHolder.java | 26 +-- .../viewholder/GameDetaiLibaoViewHolder.java | 26 +++ .../GameDetailCalenderViewHolder.java | 25 +++ .../viewholder/GameDetailFuLiViewHolder.java | 42 ++++ .../GameDetailGameTagTypeViewHolder.java | 17 ++ .../GameDetailGameTagViewHolder.java | 23 ++ .../viewholder/GameDetailGameViewHolder.java | 16 ++ .../viewholder/GameDetailIntroViewHolder.java | 26 +++ .../viewholder/GameDetailKaiFuViewHolder.java | 47 ++++ .../GameDetailNewsServerItemViewHolder.java | 30 +++ .../viewholder/GameDetailNewsViewHolder.java | 32 +++ .../GameDetailNoticeViewHolder.java | 25 +++ .../GameDetailPluginViewHolder.java | 30 +++ .../viewholder/GameDetailSkinViewHolder.java | 31 +++ .../viewholder/GameDetailTopViewHolder.java | 30 +++ .../viewholder/GameDownloadViewHolder.java | 31 ++- .../viewholder}/GameGalleryViewHolder.java | 11 +- .../viewholder/GameHeadViewHolder.java | 24 +- .../viewholder/GameImageViewHolder.java | 12 +- .../GameLibaoGalleryViewHolder.java | 10 +- .../changeskin/ChangeSkinUtils.java | 2 +- .../gamecenter/download/FileSendFragment.java | 91 ++++---- .../download/GameDownLoadFragment.java | 37 +--- .../download/GameDownloadFragmentAdapter.java | 2 +- .../download/GameUpdateFragment.java | 36 +-- .../download/GameUpdateFragmentAdapter.java | 2 +- .../{game => fragment}/GameFragment.java | 17 +- .../fragment}/HomeFragment.java | 64 +++--- .../gh/gamecenter/fragment/MainFragment.java | 20 +- .../gamecenter/game/GameFragmentAdapter.java | 25 ++- .../gh/gamecenter/gamedetail/FuLiAdapter.java | 8 +- .../gamecenter/gamedetail/FuliFragment.java | 20 +- .../gamedetail/GameDetailGameTagAdapter.java | 25 +-- .../gamedetail/GameDetailKaiFuAdapter.java | 4 +- .../GameDetailNewsServerAdapter.java | 3 +- .../GameDetailNewsServerViewHolder.java | 26 --- .../gamedetail/GameDetailPluginAdapter.java | 3 +- .../GameDetailPluginRvViewHolder.java | 7 +- .../gamedetail/GameDetailToolsAdapter.java | 2 +- .../gamedetail/GameDetailTopViewHolder.java | 29 --- .../gamedetail/GameGalleryAdapter.java | 3 +- .../gamedetail/GameLibaoGalleryAdapter.java | 3 +- .../gamecenter/gamedetail/XinXiAdapter.java | 7 +- .../gamecenter/gamedetail/XinXiFragment.java | 12 +- .../com/gh/gamecenter/geetest/GTWebView.java | 11 - .../gh/gamecenter/libao/Libao1Fragment.java | 30 ++- .../libao/Libao1FragmentAdapter.java | 7 +- .../gh/gamecenter/libao/Libao2Fragment.java | 22 +- .../libao/Libao2FragmentAdapter.java | 4 +- .../gh/gamecenter/libao/Libao3Fragment.java | 8 +- .../libao/Libao3FragmentAdapter.java | 4 +- .../gamecenter/libao/LibaoHistoryAdapter.java | 4 +- .../libao/OnSearchCallBackListener.java | 5 + .../gamecenter/message/CommentFragment.java | 10 +- .../message/CommentFragmentAdapter.java | 6 +- .../message/CommentNormalViewHolder.java | 6 +- .../message/CommentVoteViewHolder.java | 6 +- .../gh/gamecenter/message/KeFuFragment.java | 10 +- .../message/KeFuFragmentAdapter.java | 19 +- .../gh/gamecenter/message/KeFuViewHolder.java | 7 +- .../gamecenter/message/MessageFragment.java | 11 +- .../gh/gamecenter/message/NoticeFragment.java | 10 +- .../message/NoticeFragmentAdapter.java | 6 +- .../gamecenter/message/WenDaViewHolder.java | 76 ++++--- .../com/gh/gamecenter/news/News1Fragment.java | 7 +- .../gamecenter/news/News1FragmentAdapter.java | 6 +- .../com/gh/gamecenter/news/News2Fragment.java | 7 +- .../gamecenter/news/News2FragmentAdapter.java | 8 +- .../com/gh/gamecenter/news/News3Fragment.java | 16 +- .../gamecenter/news/News3FragmentAdapter.java | 4 +- .../news/News3FragmentDialogAdapter.java | 6 +- .../com/gh/gamecenter/news/News4Fragment.java | 7 +- .../gamecenter/news/News4FragmentAdapter.java | 6 +- .../com/gh/gamecenter/news/NewsFragment.java | 77 ++++--- .../OnStrategyDialogCallBackListener.java | 7 + .../newsdetail/NewsDetailAdapter.java | 6 +- .../gamecenter/personal/ConcernFragment.java | 9 +- .../personal/ConcernFragmentAdapter.java | 2 +- .../gamecenter/personal/InstallFragment.java | 9 +- .../personal/InstallFragmentAdapter.java | 2 +- .../gamecenter/personal/PersonalFragment.java | 7 +- .../search/SearchGameDetailFragment.java | 8 +- .../SearchGameDetailFragmentAdapter.java | 4 +- .../search/SearchGameListFragment.java | 9 +- .../search/SearchGameListFragmentAdapter.java | 4 +- .../search/SearchHistoryFragment.java | 23 +- .../search/SearchHistoryFragmentAdapter.java | 2 +- .../gh/gamecenter/subject/SubjectAdapter.java | 4 +- .../gamecenter/subject/SubjectFragment.java | 12 +- .../subject/SubjectTileFragment.java | 5 +- .../gamecenter/suggest/SuggestPicAdapter.java | 2 +- .../suggest/SuggestSelectGameAdapter.java | 4 +- .../suggest/SuggestTypeAdapter.java | 2 +- .../gh/gamecenter/wenda/WenDaFragment.java | 48 ++-- .../listener/OnCallBackListener.java | 2 +- .../OnCollectionCallBackListener.java | 2 +- app/src/main/res/layout/activity_subject.xml | 3 +- app/src/main/res/layout/fragment_game.xml | 42 ++-- .../{fragment_home.xml => fragment_news.xml} | 4 + .../res/layout/fragment_news_slidebar.xml | 12 +- settings.gradle | 1 - 138 files changed, 1143 insertions(+), 1005 deletions(-) delete mode 100644 app/src/main/java/com/gh/base/AppControllerLike.java delete mode 100644 app/src/main/java/com/gh/base/AppTinkerResultService.java delete mode 100644 app/src/main/java/com/gh/base/BaseFragmentActivity.java rename app/src/main/java/com/gh/{gamecenter/adapter => base}/BaseRecyclerAdapter.java (91%) create mode 100644 app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetaiLibaoViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailCalenderViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailFuLiViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagTypeViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailIntroViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailKaiFuViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsServerItemViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNoticeViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailPluginViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailSkinViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailTopViewHolder.java rename app/src/main/java/com/gh/gamecenter/{gamedetail => adapter/viewholder}/GameGalleryViewHolder.java (52%) rename app/src/main/java/com/gh/gamecenter/{gamedetail => adapter/viewholder}/GameLibaoGalleryViewHolder.java (66%) rename app/src/main/java/com/gh/gamecenter/{game => fragment}/GameFragment.java (97%) rename app/src/main/java/com/gh/{base => gamecenter/fragment}/HomeFragment.java (87%) delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNewsServerViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailTopViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/libao/OnSearchCallBackListener.java create mode 100644 app/src/main/java/com/gh/gamecenter/news/OnStrategyDialogCallBackListener.java rename app/src/main/java/com/gh/{gamecenter => }/listener/OnCallBackListener.java (84%) rename app/src/main/java/com/gh/{gamecenter => }/listener/OnCollectionCallBackListener.java (87%) rename app/src/main/res/layout/{fragment_home.xml => fragment_news.xml} (73%) diff --git a/app/build.gradle b/app/build.gradle index 6a35015967..3e1a0dff7f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -101,39 +101,9 @@ android { } /** - * 多渠道打包,所有渠道值均通过java code设置 + * 多渠道打包,渠道请参考"channel.txt"文件,所有渠道值均通过java code设置 */ // productFlavors { -// GH_100 {} -// GH_101 {} -// GH_102 {} -// GH_103 {} -// GH_104 {} -// GH_106 {} -// GH_107 {} -// GH_108 {} -// GH_109 {} -// GH_110 {} -// GH_111 {} -// GH_113 {} -// GH_114 {} -// GH_115 {} -// GH_116 {} -// GH_117 {} -// GH_118 {} -// GH_119 {} -// GH_120 {} -// GH_121 {} -// GH_123 {} -// GH_127 {} -// GH_200 {} -// GH_201 {} -// GH_202 {} -// GH_203 {} -// GH_204 {} -// GH_205 {} -// GH_222 {} -// GH_307 {} // GH_TEST {} // } // productFlavors.all { flavor -> @@ -218,7 +188,6 @@ dependencies { compile libs.eventbus apt libs.eventbusApt -// compile project(':libraries:EventBus') compile project(':libraries:MiPush') compile project(':libraries:MTA') compile project(':libraries:QQShare') diff --git a/app/src/main/java/com/gh/base/AppControllerLike.java b/app/src/main/java/com/gh/base/AppControllerLike.java deleted file mode 100644 index 779a0595da..0000000000 --- a/app/src/main/java/com/gh/base/AppControllerLike.java +++ /dev/null @@ -1,51 +0,0 @@ -//package com.gh.base; -// -// -//import android.annotation.TargetApi; -//import android.app.Application; -//import android.content.Context; -//import android.content.Intent; -//import android.os.Build; -//import android.support.multidex.MultiDex; -// -//import com.tencent.tinker.lib.listener.DefaultPatchListener; -//import com.tencent.tinker.lib.listener.PatchListener; -//import com.tencent.tinker.lib.patch.AbstractPatch; -//import com.tencent.tinker.lib.patch.UpgradePatch; -//import com.tencent.tinker.lib.reporter.DefaultLoadReporter; -//import com.tencent.tinker.lib.reporter.DefaultPatchReporter; -//import com.tencent.tinker.lib.reporter.LoadReporter; -//import com.tencent.tinker.lib.reporter.PatchReporter; -//import com.tencent.tinker.lib.tinker.TinkerInstaller; -//import com.tencent.tinker.loader.app.DefaultApplicationLike; -// -//public class AppControllerLike extends DefaultApplicationLike { -// -// public AppControllerLike(Application application, int tinkerFlags, boolean tinkerLoadVerifyFlag, -// long applicationStartElapsedTime, long applicationStartMillisTime, -// Intent tinkerResultIntent) { -// super(application, tinkerFlags, tinkerLoadVerifyFlag, applicationStartElapsedTime, -// applicationStartMillisTime, tinkerResultIntent); -// } -// -// @Override -// public void onBaseContextAttached(Context base) { -// super.onBaseContextAttached(base); -// MultiDex.install(base); -// -// LoadReporter loadReporter = new DefaultLoadReporter(getApplication()); -// PatchReporter patchReporter = new DefaultPatchReporter(getApplication()); -// PatchListener patchListener = new DefaultPatchListener(getApplication()); -// AbstractPatch upgradePatchProcessor = new UpgradePatch(); -// -// TinkerInstaller.install(this, loadReporter, patchReporter, patchListener, -// AppTinkerResultService.class, upgradePatchProcessor); -//// TinkerInstaller.install(this); -// } -// -// @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) -// public void registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback) { -// getApplication().registerActivityLifecycleCallbacks(callback); -// } -// -//} diff --git a/app/src/main/java/com/gh/base/AppTinkerResultService.java b/app/src/main/java/com/gh/base/AppTinkerResultService.java deleted file mode 100644 index d3e94e4d1b..0000000000 --- a/app/src/main/java/com/gh/base/AppTinkerResultService.java +++ /dev/null @@ -1,29 +0,0 @@ -//package com.gh.base; -// -//import com.gh.common.util.Utils; -//import com.tencent.tinker.lib.service.DefaultTinkerResultService; -//import com.tencent.tinker.lib.service.PatchResult; -//import com.tencent.tinker.lib.util.TinkerServiceInternals; -// -//import java.io.File; -// -// -//public class AppTinkerResultService extends DefaultTinkerResultService { -// -// @Override -// public void onPatchResult(PatchResult result) { -// if (result == null) { -// return; -// } -// Utils.log(result); -// -// //first, we want to kill the recover process -// TinkerServiceInternals.killTinkerPatchServiceProcess(getApplicationContext()); -// -// if (result.isSuccess) { -// Utils.log("Tinkder Success"); -// deleteRawPatchFile(new File(result.rawPatchFilePath)); -// } -// } -// -//} diff --git a/app/src/main/java/com/gh/base/BaseActivity.java b/app/src/main/java/com/gh/base/BaseActivity.java index 5cf57da399..7c271d0677 100644 --- a/app/src/main/java/com/gh/base/BaseActivity.java +++ b/app/src/main/java/com/gh/base/BaseActivity.java @@ -22,7 +22,7 @@ import com.gh.common.util.ShareUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBShowDialog; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.readystatesoftware.systembartint.SystemBarTintManager.SystemBarConfig; import org.greenrobot.eventbus.EventBus; diff --git a/app/src/main/java/com/gh/base/BaseFragment.java b/app/src/main/java/com/gh/base/BaseFragment.java index 31eb78f30c..de613b0a89 100644 --- a/app/src/main/java/com/gh/base/BaseFragment.java +++ b/app/src/main/java/com/gh/base/BaseFragment.java @@ -9,9 +9,13 @@ import android.view.ViewGroup; import android.widget.Toast; import com.gh.common.util.EntranceUtils; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.common.util.RuntimeUtils; +import com.gh.gamecenter.eventbus.EBMiPush; +import com.gh.listener.OnCallBackListener; import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; import butterknife.ButterKnife; @@ -19,32 +23,51 @@ import butterknife.ButterKnife; * Created by LGT on 2016/9/4. * Fragment 基类 */ -public class BaseFragment extends Fragment implements OnCallBackListener { +public abstract class BaseFragment extends Fragment implements OnCallBackListener { + // TODO private view protected View view; - protected boolean isEverpause; + protected boolean isEverPause; protected String mEntrance; - protected void init(int layout) { - view = View.inflate(getActivity(), layout, null); + protected abstract int getLayoutId(); - ButterKnife.bind(this, view); + protected void initView(View view) { + } + + protected void postRunnable(Runnable runnable) { +// if (getView() != null) { +// getView().post(runnable); +// } + RuntimeUtils.getInstance().runOnUiThread(runnable); + } + + protected void postDelayedRunnable(Runnable runnable, long delayMillis) { + RuntimeUtils.getInstance().runOnUiThread(runnable, delayMillis); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); mEntrance = getActivity().getIntent().getStringExtra(EntranceUtils.KEY_ENTRANCE); - isEverpause = false; + isEverPause = false; EventBus.getDefault().register(this); + view = View.inflate(getContext(), getLayoutId(), null); + ButterKnife.bind(this, view); + initView(view); + } + + //TODO 尴尬,必须的有subscribe才能register + @Subscribe(threadMode = ThreadMode.BACKGROUND) + public void onDummyEvent(EBMiPush push) { + // } @Nullable @Override - 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); } @@ -54,13 +77,13 @@ public class BaseFragment extends Fragment implements OnCallBackListener { @Override public void onResume() { super.onResume(); - isEverpause = false; + isEverPause = false; } @Override public void onPause() { super.onPause(); - isEverpause = true; + isEverPause = true; } @Override @@ -73,8 +96,8 @@ public class BaseFragment extends Fragment implements OnCallBackListener { Toast.makeText(getContext(), msg, Toast.LENGTH_SHORT).show(); } - public boolean isEverpause() { - return isEverpause; + public boolean isEverPause() { + return isEverPause; } @Override diff --git a/app/src/main/java/com/gh/base/BaseFragmentActivity.java b/app/src/main/java/com/gh/base/BaseFragmentActivity.java deleted file mode 100644 index 3c910cf103..0000000000 --- a/app/src/main/java/com/gh/base/BaseFragmentActivity.java +++ /dev/null @@ -1,206 +0,0 @@ -//package com.gh.base; -// -//import android.annotation.TargetApi; -//import android.content.Context; -//import android.graphics.Color; -//import android.os.Build; -//import android.os.Bundle; -//import android.support.v4.app.FragmentActivity; -//import android.view.*; -//import android.view.View.OnClickListener; -//import android.view.ViewGroup.LayoutParams; -//import android.widget.*; -//import butterknife.ButterKnife; -//import com.gh.common.constant.Config; -//import com.gh.common.util.*; -//import com.gh.download.DownloadManager; -//import com.gh.gamecenter.R; -//import com.gh.gamecenter.eventbus.EBShowDialog; -//import com.readystatesoftware.systembartint.SystemBarTintManager; -//import com.readystatesoftware.systembartint.SystemBarTintManager.SystemBarConfig; -//import de.greenrobot.event.EventBus; -// -//import java.lang.reflect.Field; -//import java.lang.reflect.Method; -//import java.util.ArrayList; -// -//public class BaseFragmentActivity extends FragmentActivity { -// -// protected String mEntrance; -// -// private boolean isPause; -// -// @Override -// protected void onCreate(Bundle savedInstanceState) { -// super.onCreate(savedInstanceState); -// AppManager.getInstance().addActivity(this); -// EventBus.getDefault().register(this); -// mEntrance = getIntent().getStringExtra("mEntrance"); -// if (getIntent().getBundleExtra("data") != null) { -// mEntrance = getIntent().getBundleExtra("data").getString("mEntrance"); -// } -// } -// -// public void init(View contentView, String title) { -// init(contentView); -// TextView actionbar_tv_title = (TextView) findViewById(R.id.actionbar_tv_title); -// actionbar_tv_title.setText(title); -// } -// -// public void init(View contentView) { -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { -// setTheme(R.style.AppTheme); -// setTranslucentStatus(true); -// SystemBarTintManager tintManager = new SystemBarTintManager(this); -// tintManager.setStatusBarTintEnabled(true); -// if (Build.MANUFACTURER.equals("Meizu") || Build.MANUFACTURER.equals("Xiaomi")) { -// tintManager.setStatusBarTintColor(Color.WHITE); -// } else { -// tintManager.setStatusBarTintColor(Color.BLACK); -// } -// SystemBarConfig config = tintManager.getConfig(); -// contentView.setPadding(0, config.getPixelInsetTop(false), 0, -// config.getPixelInsetBottom()); -// -// if (Build.MANUFACTURER.equals("Meizu")) { -// try { -// Window window = getWindow(); -// if (window != null) { -// WindowManager.LayoutParams lp = window.getAttributes(); -// Field darkFlag = WindowManager.LayoutParams.class.getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON"); -// Field meizuFlags = WindowManager.LayoutParams.class.getDeclaredField("meizuFlags"); -// darkFlag.setAccessible(true); -// meizuFlags.setAccessible(true); -// int bit = darkFlag.getInt(null); -// int value = meizuFlags.getInt(lp); -// value |= bit; -// meizuFlags.setInt(lp, value); -// window.setAttributes(lp); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } else if (Build.MANUFACTURER.equals("Xiaomi")) { -// try { -// Window window = getWindow(); -// if (window != null) { -// Class clazz = window.getClass(); -// Class layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams"); -// Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE"); -// int darkModeFlag = field.getInt(layoutParams); -// Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class); -// extraFlagField.invoke(window, darkModeFlag, darkModeFlag); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } -// } -// -// setContentView(contentView); -// -// ButterKnife.bind(this); -// -// int actionbar_height = getSharedPreferences(Config.PREFERENCE, -// Context.MODE_PRIVATE).getInt("actionbar_height", -// DisplayUtils.dip2px(getApplicationContext(), 48)); -// -// RelativeLayout reuse_actionbar = (RelativeLayout) findViewById(R.id.reuse_actionbar); -// LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( -// LayoutParams.MATCH_PARENT, actionbar_height); -// reuse_actionbar.setLayoutParams(params); -// -// findViewById(R.id.actionbar_rl_back).setOnClickListener( -// new OnClickListener() { -// @Override -// public void onClick(View v) { -// finish(); -// } -// }); -// } -// -// public void toast(String msg) { -// Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); -// } -// -// public void toast(int msg) { -// Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); -// } -// -// @TargetApi(19) -// protected void setTranslucentStatus(boolean status) { -// Window window = getWindow(); -// WindowManager.LayoutParams winParams = window.getAttributes(); -// final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; -// if (status) { -// winParams.flags |= bits; -// } else { -// winParams.flags &= ~bits; -// } -// window.setAttributes(winParams); -// } -// -// //如果是游戏分享,newsTitle默认为空 -// public void showShare(String url, String gameName, String icon, String newsTitle, ArrayList tag) { -// -// //判断是否是官方版 -// boolean isPlugin = false; -// if (tag != null) { -// for (String s : tag) { -// if (!"官方版".equals(s)) { -// isPlugin = true; -// } -// } -// } -// -// ShareUtils.getInstance(this).showShareWindows(new View(this), url, gameName, icon, newsTitle, isPlugin, true); -// -// if (newsTitle == null) { -// DataUtils.onEvent(this, "内容分享", gameName); -// } else { -// DataUtils.onEvent(this, "内容分享", newsTitle); -// } -// } -// -// public void onEventMainThread(final EBShowDialog showDialog) { -// if (!isPause && this.getClass().getName().equals(RunningUtils.getTopActivity(this))) { -// if ("hijack".equals(showDialog.getType())) { -// DialogUtils.showQqSessionDialog(this, null);// 建议用户联系客服 -// } else if ("plugin".equals(showDialog.getType())) { -// DialogUtils.showPluginDialog(this, new DialogUtils.ConfirmListener() { -// @Override -// public void onConfirm() { -// if (FileUtils.isEmptyFile(showDialog.getPath())) { -// Toast.makeText(BaseFragmentActivity.this, "解析包出错(可能被误删了),请重新下载", Toast.LENGTH_SHORT).show(); -// } else { -// startActivity(PackageUtils.getUninstallIntent(BaseFragmentActivity.this, showDialog.getPath())); -// } -// } -// }); -// } -// } -// } -// -// @Override -// protected void onDestroy() { -// super.onDestroy(); -// EventBus.getDefault().unregister(this); -// AppManager.getInstance().finishActivity(this); -// } -// -// @Override -// protected void onPause() { -// super.onPause(); -// DataUtils.onPause(this); -// isPause = true; -// } -// -// @Override -// protected void onResume() { -// super.onResume(); -// DataUtils.onResume(this); -// isPause = false; -// DownloadManager.getInstance(this).initGameMap(); -// } -// -//} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/BaseRecyclerAdapter.java b/app/src/main/java/com/gh/base/BaseRecyclerAdapter.java similarity index 91% rename from app/src/main/java/com/gh/gamecenter/adapter/BaseRecyclerAdapter.java rename to app/src/main/java/com/gh/base/BaseRecyclerAdapter.java index 0716354471..7053e2722a 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/BaseRecyclerAdapter.java +++ b/app/src/main/java/com/gh/base/BaseRecyclerAdapter.java @@ -1,28 +1,31 @@ -package com.gh.gamecenter.adapter; - -import android.content.Context; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.RecyclerView.ViewHolder; -import android.view.LayoutInflater; - -/** - * @author CsHeng - * @Date 2017/4/25 - * @Time 10:19 - */ - -public abstract class BaseRecyclerAdapter extends RecyclerView.Adapter { - - protected static final int TAG_POSITION = 0x12345678; - - protected Context mContext; - protected LayoutInflater mLayoutInflater; - - public BaseRecyclerAdapter(Context context) { - //TODO 排查必须使用activity context的场景,比如startActivity -// mContext = context.getApplicationContext(); - mContext = context; - mLayoutInflater = LayoutInflater.from(mContext); - } - -} +package com.gh.base; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.RecyclerView.ViewHolder; +import android.view.LayoutInflater; + +/** + * @author CsHeng + * @Date 2017/4/25 + * @Time 10:19 + */ + +public abstract class BaseRecyclerAdapter extends RecyclerView.Adapter { + + /** + * 用于click listener的处理 + */ + protected static final int TAG_POSITION = 0x12345678; + + protected Context mContext; + protected LayoutInflater mLayoutInflater; + + public BaseRecyclerAdapter(Context context) { + //TODO 排查必须使用activity context的场景,比如startActivity +// mContext = context.getApplicationContext(); + mContext = context; + mLayoutInflater = LayoutInflater.from(mContext); + } + +} diff --git a/app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java b/app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java new file mode 100644 index 0000000000..3557f19dd1 --- /dev/null +++ b/app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java @@ -0,0 +1,23 @@ +package com.gh.base; + +import android.support.v7.widget.RecyclerView; +import android.view.View; + +import butterknife.ButterKnife; + +/** + * 目前仅提供butterknife bind方法 + * + * @author CsHeng + * @Date 16/06/2017 + * @Time 9:55 AM + */ + +public abstract class BaseRecyclerViewHolder extends RecyclerView.ViewHolder { + + public BaseRecyclerViewHolder(View itemView) { + super(itemView); + ButterKnife.bind(this, itemView); + } + +} diff --git a/app/src/main/java/com/gh/common/util/DataUtils.java b/app/src/main/java/com/gh/common/util/DataUtils.java index 5432076cf2..953594be10 100644 --- a/app/src/main/java/com/gh/common/util/DataUtils.java +++ b/app/src/main/java/com/gh/common/util/DataUtils.java @@ -36,7 +36,7 @@ public class DataUtils { if (!debug) { TCAgent.init(context, Config.TD_APPID, channel); //TODO 去除为了测试MTA的问题,这个版本不启用 -// TCAgent.setReportUncaughtExceptions(true); + TCAgent.setReportUncaughtExceptions(true); } // 打开debug开关,可查看mta上报日志或错误 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 c4dfd04659..6dcedf45fa 100644 --- a/app/src/main/java/com/gh/common/view/DownloadDialog.java +++ b/app/src/main/java/com/gh/common/view/DownloadDialog.java @@ -32,7 +32,7 @@ import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBDownloadStatus; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBReuse; -import com.gh.gamecenter.listener.OnCollectionCallBackListener; +import com.gh.listener.OnCollectionCallBackListener; import com.gh.gamecenter.manager.PackageManager; import org.greenrobot.eventbus.EventBus; diff --git a/app/src/main/java/com/gh/download/DataWatcher.java b/app/src/main/java/com/gh/download/DataWatcher.java index 2f72e6bad5..e9c12c54f0 100644 --- a/app/src/main/java/com/gh/download/DataWatcher.java +++ b/app/src/main/java/com/gh/download/DataWatcher.java @@ -8,7 +8,7 @@ public abstract class DataWatcher implements Observer { @Override public void update(Observable observable, Object data) { - if (data != null && data instanceof DownloadEntity) { + if (data instanceof DownloadEntity) { onDataChanged((DownloadEntity) data); } } diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 8e3eee3331..b7e1c65fa8 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -63,7 +63,7 @@ import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBShowDialog; import com.gh.gamecenter.eventbus.EBSkip; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.game.GameFragment; +import com.gh.gamecenter.fragment.GameFragment; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.manager.FilterManager; diff --git a/app/src/main/java/com/gh/gamecenter/SubjectActivity.java b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java index cdd325b098..fceaacbd08 100644 --- a/app/src/main/java/com/gh/gamecenter/SubjectActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java @@ -195,7 +195,7 @@ public class SubjectActivity extends BaseActivity { new VPFragmentAdapter(getSupportFragmentManager(), fragments, tag); mViewPager.setAdapter(adapter); mTabLayout.setupWithViewPager(mViewPager); - mTabLayout.setTabsFromPagerAdapter(adapter); +// mTabLayout.setTabsFromPagerAdapter(adapter); } } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java index 66bfb4fdf5..ee94d376c3 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java @@ -14,6 +14,7 @@ import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.TextView; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.util.BitmapUtils; import com.gh.common.util.PackageUtils; import com.gh.common.util.StringUtils; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java index e891f0f111..51ba305969 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java @@ -9,6 +9,7 @@ import android.support.v7.widget.RecyclerView.ViewHolder; import android.view.View; import android.view.ViewGroup; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.constant.Config; import com.gh.common.constant.ItemViewType; import com.gh.common.util.CommentUtils; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java index f0d2cd229b..8b783e6ca2 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java @@ -4,6 +4,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; @@ -16,7 +17,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.ConcernViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java index f0bfcec5ef..a82a839895 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java @@ -5,6 +5,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; @@ -15,7 +16,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.ConcernViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/FileReceiverAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/FileReceiverAdapter.java index 6d1151605e..bcffeca55c 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/FileReceiverAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/FileReceiverAdapter.java @@ -8,6 +8,7 @@ import android.support.v4.content.ContextCompat; import android.view.View; import android.view.ViewGroup; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.common.util.PackageUtils; import com.gh.common.util.SpeedUtils; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/FileSenderAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/FileSenderAdapter.java index b386a4f2ee..34b13ac189 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/FileSenderAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/FileSenderAdapter.java @@ -5,6 +5,7 @@ import android.support.v4.content.ContextCompat; import android.view.View; import android.view.ViewGroup; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.common.util.SpeedUtils; import com.gh.common.util.Utils; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/GameNewsAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/GameNewsAdapter.java index bbe522b2f6..a446a89bff 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/GameNewsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/GameNewsAdapter.java @@ -12,6 +12,7 @@ import android.view.inputmethod.InputMethodManager; import android.widget.LinearLayout; import android.widget.Toast; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; import com.gh.common.util.DisplayUtils; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/GameNewsTypeListAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/GameNewsTypeListAdapter.java index 20df867b07..4846c69b6a 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/GameNewsTypeListAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/GameNewsTypeListAdapter.java @@ -7,6 +7,7 @@ import android.graphics.drawable.StateListDrawable; import android.view.View; import android.view.ViewGroup; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.GameNewsTypeViewHolder; import com.gh.gamecenter.eventbus.EBTypeChange; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/KaiFuAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/KaiFuAdapter.java index 143cd6d410..52c9d1d843 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/KaiFuAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/KaiFuAdapter.java @@ -9,6 +9,7 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.Toast; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.constant.ItemViewType; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DataCollectionUtils; @@ -28,7 +29,7 @@ import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.KaiFuServerEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.Response; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/KaiFuDialogAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/KaiFuDialogAdapter.java index 1118450937..84806012cb 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/KaiFuDialogAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/KaiFuDialogAdapter.java @@ -11,6 +11,7 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.StrategyDialogViewHolder; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java index 0e52e0cd17..be33cb6b56 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java @@ -6,7 +6,6 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.Color; import android.graphics.drawable.Drawable; -import android.os.Handler; import android.support.v4.content.ContextCompat; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; @@ -20,6 +19,7 @@ import android.widget.ProgressBar; import android.widget.TextView; import com.gh.base.AppController; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.constant.ItemViewType; import com.gh.common.util.BitmapUtils; import com.gh.common.util.DisplayUtils; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/LiBaoCodeAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/LiBaoCodeAdapter.java index eefc6707e8..3bee5eed88 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/LiBaoCodeAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/LiBaoCodeAdapter.java @@ -6,6 +6,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.util.LibaoUtils; import com.gh.common.util.StringUtils; import com.gh.gamecenter.R; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java index 442b5e55a4..5b5cda6b90 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java @@ -15,6 +15,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.LibaoUtils; @@ -29,8 +30,8 @@ import com.gh.gamecenter.db.info.LibaoInfo; import com.gh.gamecenter.entity.LibaoDetailEntity; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; -import com.gh.gamecenter.gamedetail.GameDetailNewsViewHolder; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.gamecenter.adapter.viewholder.GameDetailNewsViewHolder; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java index 9abe9d8df8..da3be2d99d 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java @@ -14,6 +14,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.constant.Config; import com.gh.common.util.CommentUtils; import com.gh.common.util.ConcernContentUtils; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java index 0aa78a30ab..a41e185762 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java @@ -19,6 +19,7 @@ import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.constant.Config; import com.gh.common.util.DataUtils; import com.gh.common.util.DialogUtils; @@ -38,7 +39,7 @@ import com.gh.gamecenter.adapter.viewholder.PlatformViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.CollectionColseEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.listener.OnCollectionCallBackListener; +import com.gh.listener.OnCollectionCallBackListener; import com.gh.gamecenter.manager.PackageManager; import java.io.File; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/PlatformPagerAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/PlatformPagerAdapter.java index 37153e4f4f..e7ed6806cc 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/PlatformPagerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/PlatformPagerAdapter.java @@ -18,7 +18,7 @@ import com.gh.download.DownloadManager; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.CollectionColseEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.listener.OnCollectionCallBackListener; +import com.gh.listener.OnCollectionCallBackListener; import java.util.List; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java index 28803cf515..2dc9e0efbf 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java @@ -4,6 +4,7 @@ import android.support.v4.util.ArrayMap; import android.view.View; import android.view.ViewGroup; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; import com.gh.common.util.DownloadItemUtils; @@ -19,7 +20,7 @@ import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.GameUpdateEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.manager.PackageManager; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java index be738cd4b5..a4693fb0fa 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java @@ -12,6 +12,7 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.SubjectTypeAdapter.GameTypeViewHolder; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java index 5be94b32a7..a3757900a5 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java @@ -10,6 +10,7 @@ import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; import com.gh.base.AppController; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.util.EntranceUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.MD5Utils; @@ -23,7 +24,7 @@ import com.gh.gamecenter.adapter.viewholder.LibaoSearchViewHolder; import com.gh.gamecenter.adapter.viewholder.ToolBoxViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.ToolBoxEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.retrofit.ObservableUtil; import com.gh.gamecenter.retrofit.Response; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java index a2febd8f94..d9a0e7e9ae 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java @@ -9,13 +9,14 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import com.gh.base.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.VoteViewHolder; import com.gh.gamecenter.db.VersionVoteDao; import com.gh.gamecenter.entity.VersionVoteEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentHeadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentHeadViewHolder.java index 111ca06bef..ae9b637ba6 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentHeadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentHeadViewHolder.java @@ -1,18 +1,17 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/11/9. */ -public class CommentHeadViewHolder extends RecyclerView.ViewHolder { +public class CommentHeadViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.comment_head_line) public View commentHeadLine; @@ -21,6 +20,6 @@ public class CommentHeadViewHolder extends RecyclerView.ViewHolder { public CommentHeadViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentViewHolder.java index d74dddef1c..3032c24f5d 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/11/9. */ -public class CommentViewHolder extends RecyclerView.ViewHolder { +public class CommentViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.comment_line) public View commentLine; @@ -35,6 +34,5 @@ public class CommentViewHolder extends RecyclerView.ViewHolder { public CommentViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ConcernViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ConcernViewHolder.java index f6f0956f20..49afb52764 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ConcernViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ConcernViewHolder.java @@ -1,30 +1,34 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/9/20. */ -public class ConcernViewHolder extends RecyclerView.ViewHolder { +public class ConcernViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.concern_item_icon) public SimpleDraweeView concern_item_icon; + + @BindView(R.id.concern_item_name) public TextView concern_item_name; + + @BindView(R.id.concern_item_concern) public TextView concern_item_concern; + + @BindView(R.id.concern_libao_icon) public ImageView concern_libao_icon; public ConcernViewHolder(View itemView) { super(itemView); - - concern_item_icon = (SimpleDraweeView) itemView.findViewById(R.id.concern_item_icon); - concern_item_name = (TextView) itemView.findViewById(R.id.concern_item_name); - concern_item_concern = (TextView) itemView.findViewById(R.id.concern_item_concern); - concern_libao_icon = (ImageView) itemView.findViewById(R.id.concern_libao_icon); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DownloadHeadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DownloadHeadViewHolder.java index fe5d570eb9..6bd372d4d0 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DownloadHeadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DownloadHeadViewHolder.java @@ -1,25 +1,25 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/15. */ -public class DownloadHeadViewHolder extends RecyclerView.ViewHolder { +public class DownloadHeadViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.dm_item_head_tv_task) public TextView dm_item_head_tv_task; + @BindView(R.id.dm_item_head_tv_allstart) public TextView dm_item_head_tv_allstart; public DownloadHeadViewHolder(View itemView) { super(itemView); - - dm_item_head_tv_task = (TextView) itemView.findViewById(R.id.dm_item_head_tv_task); - dm_item_head_tv_allstart = (TextView) itemView.findViewById(R.id.dm_item_head_tv_allstart); - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java index 71c9954e87..f3a0276f64 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java @@ -1,15 +1,14 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView.ViewHolder; import android.view.View; import android.view.View.OnClickListener; import android.widget.ProgressBar; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * @author 温冠超 @@ -18,47 +17,36 @@ import butterknife.ButterKnife; * @update 2015-8-11 * @des 下拉或上啦刷新中,进度显示控件 */ -public class FooterViewHolder extends ViewHolder { +public class FooterViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.footerview_loading) public ProgressBar loading; + @BindView(R.id.footerview_hint) public TextView hint; + @BindView(R.id.footerview_line_left) public View lineLeft; + @BindView(R.id.footerview_line_right) public View lineRight; - private View mView; - public FooterViewHolder(View itemView) { super(itemView); - mView = itemView; - ButterKnife.bind(this, itemView); } // 减去recyclerView item间隔(个别列表间隔很大) public void initItemPadding() { - mView.setPadding(0, 0, 0, 0); + itemView.setPadding(0, 0, 0, 0); } - - public void initFooterViewHolder(boolean mIsNetworkError, boolean mIsOver, - OnClickListener onClickListener) { + public void initFooterViewHolder(boolean mIsNetworkError, boolean mIsOver, OnClickListener onClickListener) { if (mIsNetworkError) { lineLeft.setVisibility(View.GONE); lineRight.setVisibility(View.GONE); loading.setVisibility(View.GONE); hint.setText("加载失败,点击重试"); itemView.setClickable(true); -// holder.itemView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// mIsNetworkError = false; -// notifyItemChanged(getItemCount() - 1); -// initSubjectList(); -// } -// }); itemView.setOnClickListener(onClickListener); } else if (mIsOver) { lineLeft.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetaiLibaoViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetaiLibaoViewHolder.java new file mode 100644 index 0000000000..4abce9871f --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetaiLibaoViewHolder.java @@ -0,0 +1,26 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.RelativeLayout; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by khy on 2016/12/14. + */ +public class GameDetaiLibaoViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.gamedetail_item_libao_gallery) + public RecyclerView libaoRv; + @BindView(R.id.gamedetail_item_open_list) + public RelativeLayout openList; + + public GameDetaiLibaoViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailCalenderViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailCalenderViewHolder.java new file mode 100644 index 0000000000..e39816aed4 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailCalenderViewHolder.java @@ -0,0 +1,25 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.view.View; +import android.widget.TextView; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by khy on 2017/3/28. + */ +public class GameDetailCalenderViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.calendar_day) + public TextView calendarDay; + @BindView(R.id.calendar_kaifu) + public TextView calendarKaifu; + + public GameDetailCalenderViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailFuLiViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailFuLiViewHolder.java new file mode 100644 index 0000000000..5c02808243 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailFuLiViewHolder.java @@ -0,0 +1,42 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.view.View; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.common.view.MarqueeView; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by khy on 2017/3/27. + */ +public class GameDetailFuLiViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.gamedetail_item_fuli_des) + public TextView fuliDes; + @BindView(R.id.gamedetail_qq_rl) + public RelativeLayout fuliQqRl; + @BindView(R.id.gamedetail_qq_des) + public TextView fuliQqDes; + @BindView(R.id.gamedetail_qq_btn) + public TextView fuliQqBtn; + @BindView(R.id.gamedetail_qqun_rl) + public RelativeLayout fuliQqunRl; + @BindView(R.id.gamedetail_qqun_btn) + public TextView fuliQqunBtn; + @BindView(R.id.gamedetail_qqun_des) + public TextView fuliQqunDes; + @BindView(R.id.gamedetail_item_notice) + public MarqueeView filiNotice; + @BindView(R.id.gamedetail_item_notice_ll) + public LinearLayout filiNoticeLl; + + public GameDetailFuLiViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagTypeViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagTypeViewHolder.java new file mode 100644 index 0000000000..e73e256221 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagTypeViewHolder.java @@ -0,0 +1,17 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.view.View; +import android.widget.TextView; + +import com.gh.base.BaseRecyclerViewHolder; + +public class GameDetailGameTagTypeViewHolder extends BaseRecyclerViewHolder { + + public TextView type; + + public GameDetailGameTagTypeViewHolder(View itemView) { + super(itemView); + type = (TextView) itemView; + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagViewHolder.java new file mode 100644 index 0000000000..3cda0635a3 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagViewHolder.java @@ -0,0 +1,23 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.support.v7.widget.RecyclerView; +import android.view.View; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by khy on 2017/3/28. + */ +public class GameDetailGameTagViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.gamedetail_gametag_rv) + public RecyclerView gametagRv; + + public GameDetailGameTagViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameViewHolder.java new file mode 100644 index 0000000000..60b9fd48f0 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameViewHolder.java @@ -0,0 +1,16 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.view.View; + +import com.gh.base.BaseRecyclerViewHolder; + +/** + * Created by khy on 2017/3/29. + */ +public class GameDetailGameViewHolder extends BaseRecyclerViewHolder { + + public GameDetailGameViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailIntroViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailIntroViewHolder.java new file mode 100644 index 0000000000..296cd8a319 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailIntroViewHolder.java @@ -0,0 +1,26 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.TextView; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by LGT on 2016/9/8. + */ +public class GameDetailIntroViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.gamedetail_item_intro_gallery) + public RecyclerView gamedetail_item_intro_gallery; + @BindView(R.id.gamedetail_item_intro_content) + public TextView gamedetail_item_intro_content; + + public GameDetailIntroViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailKaiFuViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailKaiFuViewHolder.java new file mode 100644 index 0000000000..3428e8d3c4 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailKaiFuViewHolder.java @@ -0,0 +1,47 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.ScrollView; +import android.widget.TextView; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by khy on 2017/3/28. + */ +public class GameDetailKaiFuViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.gamedetail_kaifu_rv) + public RecyclerView kaifuRv; + @BindView(R.id.gamedetail_kaifu_cur_month) + public TextView curMonth; + @BindView(R.id.gamedetail_kaifu_next_month) + public TextView nextMonth; + @BindView(R.id.gamedetail_kaifu_rl) + public RelativeLayout kaifuRl; + @BindView(R.id.gamedetail_kaifu_detail) + public RelativeLayout kaifuDetailRl; + @BindView(R.id.gamedetail_kaifu_colse_detail) + public TextView colseDetail; + @BindView(R.id.gamedetail_kaifu_suggest) + public TextView kaifuSuggest; + @BindView(R.id.gamedetail_kaifu_detail_time) + public TextView detailTime; + @BindView(R.id.gamedetail_kaifu_detail_list) + public LinearLayout detailList; + @BindView(R.id.gamedetail_kaifu_detail_sv) + public ScrollView detailSv; + @BindView(R.id.gamedetail_kaifu_des) + public TextView kaifuDes; + + public GameDetailKaiFuViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsServerItemViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsServerItemViewHolder.java new file mode 100644 index 0000000000..42605d74c8 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsServerItemViewHolder.java @@ -0,0 +1,30 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by LGT on 2016/9/18. + */ +public class GameDetailNewsServerItemViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.newsserver_item_name) + public TextView newsserver_item_name; + @BindView(R.id.newsserver_item_line) + public View newsserver_item_line; + @BindView(R.id.newsserver_item_point) + public ImageView newsserver_item_point; + @BindView(R.id.newsserver_item_time) + public TextView newsserver_item_time; + + public GameDetailNewsServerItemViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsViewHolder.java new file mode 100644 index 0000000000..df80fe41eb --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsViewHolder.java @@ -0,0 +1,32 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by LGT on 2016/9/8. + */ +public class GameDetailNewsViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.gamedetail_item_news_more) + public LinearLayout gamedetail_item_news_more; + @BindView(R.id.gamedetail_item_news_list) + public LinearLayout gamedetail_item_news_list; + @BindView(R.id.gamedetail_item_news_title) + public TextView gamedetail_item_news_title; + @BindView(R.id.gamedetail_item_line) + public View gamedetail_item_line; + @BindView(R.id.gamedetail_item_news_line_top) + public View gamedetail_item_news_line_top; + + public GameDetailNewsViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNoticeViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNoticeViewHolder.java new file mode 100644 index 0000000000..0fce9b1414 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNoticeViewHolder.java @@ -0,0 +1,25 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.view.View; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.common.view.MarqueeView; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by khy on 2017/3/30. + */ +public class GameDetailNoticeViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.gamedetail_item_notice) + public MarqueeView mvNotice; + @BindView(R.id.gamedetail_item_notice_line) + public View noticeLine; + + public GameDetailNoticeViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailPluginViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailPluginViewHolder.java new file mode 100644 index 0000000000..0c0631d8d3 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailPluginViewHolder.java @@ -0,0 +1,30 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.TextView; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by LGT on 2016/9/8. + */ +public class GameDetailPluginViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.gamedetail_plugin_rv) + public RecyclerView gameDetailPluginRv; + @BindView(R.id.gamedetail_plugin_open_list) + public View gamedetailPluginOpen; + @BindView(R.id.gamedetail_plugin_line_top) + public View gamedetailPluginLine; + @BindView(R.id.gamedetail_plugin_title) + public TextView gamedetailPluginTitle; + + public GameDetailPluginViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailSkinViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailSkinViewHolder.java new file mode 100644 index 0000000000..0c74e4aa58 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailSkinViewHolder.java @@ -0,0 +1,31 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.view.View; +import android.widget.ProgressBar; +import android.widget.TextView; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by khy on 2016/11/16. + */ +public class GameDetailSkinViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.skin_tv_download) + public TextView skinDownloadTv; + @BindView(R.id.skin_pb_progressbar) + public ProgressBar skinDownloadPb; + @BindView(R.id.skin_tv_per) + public TextView skinDownloadPerTv; + @BindView(R.id.skin_tv_des) + public TextView skinDownloadDes; + @BindView(R.id.skin_tv_name) + public TextView skinDownloadName; + + public GameDetailSkinViewHolder(View itemView) { + super(itemView); + } +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailTopViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailTopViewHolder.java new file mode 100644 index 0000000000..5c2f81afcf --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailTopViewHolder.java @@ -0,0 +1,30 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.view.View; +import android.widget.TextView; + +import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by LGT on 2016/9/8. + */ +public class GameDetailTopViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.gamedetail_iv_thumb) + public SimpleDraweeView gamedetail_iv_thumb; + @BindView(R.id.gamedetail_tv_name) + public TextView gamedetail_tv_name; + @BindView(R.id.gamedetail_tv_info) + public TextView gamedetail_tv_info; + @BindView(R.id.gamedetail_tv_concern) + public TextView gamedetail_tv_concern; + + public GameDetailTopViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java index 95824b8b31..d0a11c8a24 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java @@ -1,40 +1,47 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/15. */ -public class GameDownloadViewHolder extends RecyclerView.ViewHolder { +public class GameDownloadViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.dm_item_iv_icon) public SimpleDraweeView dm_item_iv_icon; + + @BindView(R.id.dm_item_tv_title) public TextView dm_item_tv_title; + + @BindView(R.id.dm_item_tv_downloads) public TextView dm_item_tv_downloads; + + @BindView(R.id.dm_item_iv_delete) public ImageView dm_item_iv_delete; + + @BindView(R.id.dm_item_tv_speed) public TextView dm_item_tv_speed; + + @BindView(R.id.dm_item_progressbar) public ProgressBar dm_item_progressbar; + + @BindView(R.id.dm_item_tv_startorpause) public TextView dm_item_tv_startorpause; + + @BindView(R.id.dm_item_line) public View dm_item_line; public GameDownloadViewHolder(View itemView) { super(itemView); - - dm_item_iv_icon = (SimpleDraweeView) itemView.findViewById(R.id.dm_item_iv_icon); - dm_item_tv_title = (TextView) itemView.findViewById(R.id.dm_item_tv_title); - dm_item_tv_downloads = (TextView) itemView.findViewById(R.id.dm_item_tv_downloads); - dm_item_iv_delete = (ImageView) itemView.findViewById(R.id.dm_item_iv_delete); - dm_item_tv_speed = (TextView) itemView.findViewById(R.id.dm_item_tv_speed); - dm_item_progressbar = (ProgressBar) itemView.findViewById(R.id.dm_item_progressbar); - dm_item_tv_startorpause = (TextView) itemView.findViewById(R.id.dm_item_tv_startorpause); - dm_item_line = itemView.findViewById(R.id.dm_item_line); - } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameGalleryViewHolder.java similarity index 52% rename from app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryViewHolder.java rename to app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameGalleryViewHolder.java index 5e44de79eb..de33717a8d 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameGalleryViewHolder.java @@ -1,22 +1,23 @@ -package com.gh.gamecenter.gamedetail; +package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/9/8. */ -public class GameGalleryViewHolder extends RecyclerView.ViewHolder { +public class GameGalleryViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.screenshot_item_iv) public SimpleDraweeView screenshot_item_iv; public GameGalleryViewHolder(View itemView) { super(itemView); - - screenshot_item_iv = (SimpleDraweeView) itemView.findViewById(R.id.screenshot_item_iv); } } 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 index 62fd5d44b4..b7af523ac0 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java @@ -1,34 +1,40 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/7/5. */ -public class GameHeadViewHolder extends RecyclerView.ViewHolder { +public class GameHeadViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.head_thumb) public ImageView thumb; + + @BindView(R.id.head_title) public TextView title; + + @BindView(R.id.head_more) public TextView more; + + @BindView(R.id.head_pb) public ProgressBar progressBar; + + @BindView(R.id.head_line) public View line; + + @BindView(R.id.head_line_top) public View lineTop; 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.more = (TextView) itemView.findViewById(R.id.head_more); - this.progressBar = (ProgressBar) itemView.findViewById(R.id.head_pb); - this.line = itemView.findViewById(R.id.head_line); - this.lineTop = itemView.findViewById(R.id.head_line_top); } } 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 index 3abc2014ec..92c677da1b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.java @@ -1,24 +1,26 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/7/5. */ -public class GameImageViewHolder extends RecyclerView.ViewHolder { +public class GameImageViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.home_game_iv_image) public SimpleDraweeView image; + + @BindView(R.id.home_game_line) public View line; public GameImageViewHolder(View itemView) { super(itemView); - - image = (SimpleDraweeView) itemView.findViewById(R.id.home_game_iv_image); - line = itemView.findViewById(R.id.home_game_line); } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameLibaoGalleryViewHolder.java similarity index 66% rename from app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryViewHolder.java rename to app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameLibaoGalleryViewHolder.java index cba7bb47d4..ddde825a6d 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameLibaoGalleryViewHolder.java @@ -1,18 +1,17 @@ -package com.gh.gamecenter.gamedetail; +package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/12/14. */ -public class GameLibaoGalleryViewHolder extends RecyclerView.ViewHolder { +public class GameLibaoGalleryViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.gamedetail_libao_name) public TextView libaoName; @@ -21,9 +20,8 @@ public class GameLibaoGalleryViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.gamedetail_libao_btn) public TextView libaoBtn; - public GameLibaoGalleryViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/changeskin/ChangeSkinUtils.java b/app/src/main/java/com/gh/gamecenter/changeskin/ChangeSkinUtils.java index d918b9b8d4..dcd5253123 100644 --- a/app/src/main/java/com/gh/gamecenter/changeskin/ChangeSkinUtils.java +++ b/app/src/main/java/com/gh/gamecenter/changeskin/ChangeSkinUtils.java @@ -10,7 +10,7 @@ import android.widget.TextView; import com.gh.base.AppController; import com.gh.common.util.Utils; import com.gh.gamecenter.R; -import com.gh.gamecenter.gamedetail.GameDetailSkinViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailSkinViewHolder; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; diff --git a/app/src/main/java/com/gh/gamecenter/download/FileSendFragment.java b/app/src/main/java/com/gh/gamecenter/download/FileSendFragment.java index 66323834da..db930a33d1 100644 --- a/app/src/main/java/com/gh/gamecenter/download/FileSendFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/FileSendFragment.java @@ -1,16 +1,12 @@ package com.gh.gamecenter.download; import android.content.Intent; -import android.os.Bundle; import android.os.Handler; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; import android.text.Html; -import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; import android.widget.TextView; +import com.gh.base.BaseFragment; import com.gh.common.util.DialogUtils; import com.gh.common.util.StringUtils; import com.gh.gamecenter.CleanApkActivity; @@ -22,9 +18,7 @@ import com.gh.gamecenter.ShareGhActivity; /** * Created by khy on 2017/1/20. */ -public class FileSendFragment extends Fragment { - - View view; +public class FileSendFragment extends BaseFragment { @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { @@ -37,56 +31,49 @@ public class FileSendFragment extends Fragment { } @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - + protected int getLayoutId() { + return R.layout.fragment_file_send; } - @Nullable @Override - public View onCreateView(final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - if (view == null) { - view = inflater.inflate(R.layout.fragment_file_send, container, false); + protected void initView(View view) { + super.initView(view); + view.findViewById(R.id.file_send_btn).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), KcSelectGameActivity.class); + startActivityForResult(intent, 0x170); + } + }); - view.findViewById(R.id.file_send_btn).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getActivity(), KcSelectGameActivity.class); - startActivityForResult(intent, 0x170); - } - }); + view.findViewById(R.id.file_receiver_btn).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), ReceiverWaitingActivity.class); + startActivityForResult(intent, 0x180); + } + }); - view.findViewById(R.id.file_receiver_btn).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getActivity(), ReceiverWaitingActivity.class); - startActivityForResult(intent, 0x180); - } - }); + TextView shareGh = (TextView) view.findViewById(R.id.share_gh); + shareGh.setText(Html.fromHtml(StringUtils.buildString("", "好友还没安装光环助手?请点这里", ""))); + shareGh.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), ShareGhActivity.class); + getActivity().startActivity(intent); + } + }); - TextView shareGh = (TextView) view.findViewById(R.id.share_gh); - shareGh.setText(Html.fromHtml(StringUtils.buildString("", "好友还没安装光环助手?请点这里", ""))); - shareGh.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getActivity(), ShareGhActivity.class); - getActivity().startActivity(intent); - } - }); + TextView cleanApk = (TextView) view.findViewById(R.id.clean_apk_tv); + cleanApk.setText(Html.fromHtml(StringUtils.buildString("手机空间不足?试试 ", "", "安装包清理", ""))); - TextView cleanApk = (TextView) view.findViewById(R.id.clean_apk_tv); - cleanApk.setText(Html.fromHtml(StringUtils.buildString("手机空间不足?试试 ", "", "安装包清理", ""))); - - cleanApk.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getActivity(), CleanApkActivity.class); - getActivity().startActivity(intent); - } - }); - - } - - return view; + cleanApk.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), CleanApkActivity.class); + getActivity().startActivity(intent); + } + }); } + } diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java index b8f07e4f85..4f41cafc91 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java @@ -3,15 +3,11 @@ package com.gh.gamecenter.download; import android.app.NotificationManager; import android.content.Context; import android.content.Intent; -import android.os.Bundle; import android.os.Message; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; import android.support.v4.content.ContextCompat; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; @@ -19,6 +15,7 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import com.gh.base.BaseFragment; import com.gh.common.constant.Constants; import com.gh.common.util.DialogUtils; import com.gh.common.util.NetworkUtils; @@ -47,9 +44,8 @@ import org.greenrobot.eventbus.ThreadMode; * * @author 黄壮华 */ -public class GameDownLoadFragment extends Fragment implements View.OnClickListener { +public class GameDownLoadFragment extends BaseFragment implements View.OnClickListener { - private View view; private RecyclerViewExtended downloadmanager_rv_show; private GameDownloadFragmentAdapter adapter; private LinearLayoutManager layoutManager; @@ -162,10 +158,13 @@ public class GameDownLoadFragment extends Fragment implements View.OnClickListen }; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - - super.onCreate(savedInstanceState); + protected int getLayoutId() { + return R.layout.downloadmanager; + } + @Override + protected void initView(View view) { + super.initView(view); String path = getActivity().getIntent().getStringExtra("path"); url = getActivity().getIntent().getStringExtra("url"); if (getActivity().getIntent().getBundleExtra("data") != null) { @@ -175,8 +174,6 @@ public class GameDownLoadFragment extends Fragment implements View.OnClickListen isScroll = false; - view = View.inflate(getActivity(), R.layout.downloadmanager, null); - downloadmanager_rl_head = (RelativeLayout) view.findViewById(R.id.downloadmanager_rl_head); downloadmanager_tv_task = (TextView) view.findViewById(R.id.downloadmanager_tv_task); downloadmanager_tv_allstart = (TextView) view.findViewById(R.id.downloadmanager_tv_allstart); @@ -269,18 +266,6 @@ public class GameDownLoadFragment extends Fragment implements View.OnClickListen if (path != null) { adapter.showPluginDialog(path); } - - EventBus.getDefault().register(this); - } - - @Override - @Nullable - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); - } - return view; } @Override @@ -319,12 +304,6 @@ public class GameDownLoadFragment extends Fragment implements View.OnClickListen DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher); } - @Override - public void onDestroy() { - super.onDestroy(); - EventBus.getDefault().unregister(this); - } - @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBMiPush mipush) { if ("plugin_install".equals(mipush.getFrom())) { diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java index 7050f977f9..aaba97ba11 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java @@ -32,7 +32,7 @@ import com.gh.download.DownloadEntity; import com.gh.download.DownloadManager; import com.gh.download.DownloadStatus; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.DownloadHeadViewHolder; import com.gh.gamecenter.adapter.viewholder.GameDownloadViewHolder; import com.gh.gamecenter.eventbus.EBDownloadChanged; diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java index b0e74ed4e1..ff40f55e54 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java @@ -1,17 +1,13 @@ package com.gh.gamecenter.download; import android.content.Intent; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; +import com.gh.base.BaseFragment; import com.gh.common.util.EntranceUtils; import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; @@ -34,18 +30,21 @@ import java.util.ArrayList; * * @author 黄壮华 */ -public class GameUpdateFragment extends Fragment { +public class GameUpdateFragment extends BaseFragment { - private View view; private RecyclerView gameupdate_rv_show; private GameUpdateFragmentAdapter adapter; private LinearLayout gameupdate_ll_loading; private LinearLayout reuse_nodata_skip; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + protected int getLayoutId() { + return R.layout.gameupdate; + } + @Override + protected void initView(View view) { + super.initView(view); Intent intent = getActivity().getIntent(); String packageName = intent.getStringExtra("packageName"); boolean isUpdate = intent.getBooleanExtra("isPushIntent", false); @@ -55,8 +54,6 @@ public class GameUpdateFragment extends Fragment { } String entrance = intent.getStringExtra(EntranceUtils.KEY_ENTRANCE); - view = View.inflate(getActivity(), R.layout.gameupdate, null); - gameupdate_ll_loading = (LinearLayout) view.findViewById(R.id.gameupdate_ll_loading); reuse_nodata_skip = (LinearLayout) view.findViewById(R.id.reuse_nodata_skip); @@ -87,23 +84,6 @@ public class GameUpdateFragment extends Fragment { reuse_nodata_skip, packageName, isUpdate, entrance); gameupdate_rv_show.setAdapter(adapter); - EventBus.getDefault().register(this); - } - - @Override - @Nullable - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); - } - return view; - } - - @Override - public void onDestroy() { - super.onDestroy(); - EventBus.getDefault().unregister(this); } @Subscribe(threadMode = ThreadMode.MAIN) diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java index f8985955ed..38d18770cf 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java @@ -28,7 +28,7 @@ import com.gh.download.DownloadManager; import com.gh.download.DownloadStatus; import com.gh.gamecenter.DownloadManagerActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.DownloadHeadViewHolder; import com.gh.gamecenter.adapter.viewholder.GameUpdateViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java similarity index 97% rename from app/src/main/java/com/gh/gamecenter/game/GameFragment.java rename to app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java index 227d32bc3c..f72c93f004 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java @@ -1,7 +1,5 @@ -package com.gh.gamecenter.game; +package com.gh.gamecenter.fragment; -import android.os.Bundle; -import android.support.annotation.Nullable; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; @@ -11,7 +9,6 @@ import android.widget.LinearLayout; import com.facebook.drawee.backends.pipeline.Fresco; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.HomeFragment; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DownloadItemUtils; import com.gh.download.DataWatcher; @@ -27,7 +24,8 @@ import com.gh.gamecenter.eventbus.EBNetworkState; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.gamecenter.game.GameFragmentAdapter; +import com.gh.listener.OnCallBackListener; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -86,12 +84,15 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR }; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + protected int getLayoutId() { + return R.layout.fragment_game; + } + @Override + protected void initView(final View view) { + super.initView(view); View inflate = View.inflate(getActivity(), R.layout.fragment_game, null); ((LinearLayout) view).addView(inflate); - reuse_no_connection = (LinearLayout) view.findViewById(R.id.reuse_no_connection); fm_game_swipe_refresh = (SwipeRefreshLayout) view.findViewById(R.id.fm_game_swipe_refresh); fm_game_rv_list = (RecyclerView) view.findViewById(R.id.fm_game_rv_list); diff --git a/app/src/main/java/com/gh/base/HomeFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/HomeFragment.java similarity index 87% rename from app/src/main/java/com/gh/base/HomeFragment.java rename to app/src/main/java/com/gh/gamecenter/fragment/HomeFragment.java index 570e080311..5c9404e453 100644 --- a/app/src/main/java/com/gh/base/HomeFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/HomeFragment.java @@ -1,18 +1,17 @@ -package com.gh.base; +package com.gh.gamecenter.fragment; import android.content.Intent; 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; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.view.animation.ScaleAnimation; import android.widget.LinearLayout; import android.widget.TextView; +import com.gh.base.BaseFragment; +import com.gh.base.SearchBarHint; import com.gh.common.constant.Config; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; @@ -27,20 +26,19 @@ import com.gh.gamecenter.eventbus.EBDownloadStatus; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.manager.PackageManager; -import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.util.ArrayList; +import butterknife.BindView; + /** * Created by LGT on 2016/9/9. * 工具栏 搜索控制 */ -public class HomeFragment extends Fragment implements View.OnClickListener, SearchBarHint { - - protected View view; +public abstract class HomeFragment extends BaseFragment implements View.OnClickListener, SearchBarHint { private TextView downloadHint; private TextView searchHint; @@ -50,18 +48,12 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Sear private ArrayList hintList; private int hintIndex; + @BindView(R.id.actionbar_rl_download) + View mActionBarDownloadView; + @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - if (savedInstanceState != null) { - hintList = savedInstanceState.getStringArrayList("hint"); - } - - hintIndex = 0; - - view = View.inflate(getActivity(), R.layout.fragment_home, null); - + protected void initView(View view) { + super.initView(view); // SharedPreferences sp = getActivity().getSharedPreferences( // Config.PREFERENCE, Context.MODE_PRIVATE); LinearLayout home_actionbar = (LinearLayout) view.findViewById(R.id.home_actionbar); @@ -75,7 +67,7 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Sear // } home_actionbar.setLayoutParams(lparams); - initActionBar(); + initActionBar(view); final ScaleAnimation scaleAnimation = new ScaleAnimation(0.4f, 1.0f, 0.4f, 1.0f , Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); @@ -141,17 +133,18 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Sear } } - EventBus.getDefault().register(this); } - @Nullable @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + if (savedInstanceState != null) { + hintList = savedInstanceState.getStringArrayList("hint"); } - return view; + + hintIndex = 0; + } @Override @@ -162,22 +155,17 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Sear } } - @Override - public void onDestroy() { - super.onDestroy(); - EventBus.getDefault().unregister(this); - } + private void initActionBar(View view) { + mActionBarDownloadView.setOnClickListener(this); - private void initActionBar() { - view.findViewById(R.id.actionbar_rl_download).setOnClickListener(this); view.findViewById(R.id.actionbar_iv_search).setOnClickListener(this); view.findViewById(R.id.actionbar_notification).setOnClickListener(this); view.findViewById(R.id.actionbar_search_rl).setOnClickListener(this); if (Config.isShow(getActivity())) { - view.findViewById(R.id.actionbar_rl_download).setVisibility(View.VISIBLE); + mActionBarDownloadView.setVisibility(View.VISIBLE); } else { - view.findViewById(R.id.actionbar_rl_download).setVisibility(View.GONE); + mActionBarDownloadView.setVisibility(View.GONE); } downloadHint = (TextView) view.findViewById(R.id.action_tip); @@ -238,9 +226,9 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Sear public void onEventMainThread(EBReuse reuse) { if ("Refresh".equals(reuse.getType())) { if (Config.isShow(getActivity())) { - view.findViewById(R.id.actionbar_rl_download).setVisibility(View.VISIBLE); + mActionBarDownloadView.setVisibility(View.VISIBLE); } else { - view.findViewById(R.id.actionbar_rl_download).setVisibility(View.GONE); + mActionBarDownloadView.setVisibility(View.GONE); } } } diff --git a/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java index e17e395370..ba241ecb20 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java @@ -1,10 +1,10 @@ -package com.gh.gamecenter.fragment; - -/** - * @author CsHeng - * @Date 05/05/2017 - * @Time 3:26 PM - */ - -public class MainFragment { -} +//package com.gh.gamecenter.fragment; +// +///** +// * @author CsHeng +// * @Date 05/05/2017 +// * @Time 3:26 PM +// */ +// +//public class MainFragment { +//} diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java index 76c272e4e4..8872be504f 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java @@ -46,7 +46,7 @@ import com.gh.gamecenter.PluginActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.ToolBoxActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.ImagePagerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameHeadViewHolder; @@ -61,7 +61,8 @@ import com.gh.gamecenter.entity.GameUpdateEntity; import com.gh.gamecenter.entity.SlideEntity; import com.gh.gamecenter.entity.SubjectDigestEntity; import com.gh.gamecenter.entity.SubjectEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.gamecenter.fragment.GameFragment; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.manager.PackageManager; import com.gh.gamecenter.retrofit.Response; @@ -109,7 +110,7 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { private boolean mIsAutoScroll; private int mTopHeight; - GameFragmentAdapter(GameFragment gameFragment, SwipeRefreshLayout refreshLayout) { + public GameFragmentAdapter(GameFragment gameFragment, SwipeRefreshLayout refreshLayout) { super(gameFragment.getContext()); mGameFragment = gameFragment; @@ -148,7 +149,7 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { return mLocationMap; } - GameEntity getGameEntityByLocation(int location) { + public GameEntity getGameEntityByLocation(int location) { if (!mPluginList.isEmpty() && location > 1 && location <= 1 + mPluginList.size()) { return mPluginList.get(location - 2); @@ -169,7 +170,7 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { return null; } - void initSubjectDigest(final boolean isLoadMore) { + public void initSubjectDigest(final boolean isLoadMore) { RetrofitManager.getApi() .getSubjectDigest() .subscribeOn(Schedulers.io()) @@ -313,7 +314,7 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { }); } - void initPlugin() { + public void initPlugin() { if (mIsInitPlugin) { return; } @@ -441,7 +442,7 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { } } - void initItemCount() { + public void initItemCount() { int pluginSize = 0; if (!mPluginList.isEmpty()) { pluginSize += 1 + mPluginList.size(); @@ -1080,21 +1081,21 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { }); } - void startAutoScroll() { + public void startAutoScroll() { mIsAutoScroll = true; notifyItemChanged(0); } - void stopAutoScroll() { + public void stopAutoScroll() { mIsAutoScroll = false; notifyItemChanged(0); } - List getPluginList() { + public List getPluginList() { return mPluginList; } - List getSubjectList() { + public List getSubjectList() { return mSubjectList; } @@ -1106,7 +1107,7 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { mIsNetworkError = networkError; } - boolean isInitPlugin() { + public boolean isInitPlugin() { return mIsInitPlugin; } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java index 5f4e131cda..4c114713a8 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java @@ -32,7 +32,7 @@ import com.gh.gamecenter.GameNewsActivity; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.entity.GameDetailEntity; @@ -42,6 +42,12 @@ import com.gh.gamecenter.entity.LibaoStatusEntity; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.entity.ToolBoxEntity; import com.gh.gamecenter.eventbus.EBReuse; +import com.gh.gamecenter.adapter.viewholder.GameDetaiLibaoViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailFuLiViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailKaiFuViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailNewsViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailNoticeViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailPluginViewHolder; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java index 257b975fc8..e40be171e5 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java @@ -3,6 +3,7 @@ package com.gh.gamecenter.gamedetail; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; +import android.view.View; import com.gh.base.BaseFragment; import com.gh.common.view.MeasureLinearLayoutManager; @@ -29,12 +30,13 @@ public class FuliFragment extends BaseFragment { private boolean isCanScroll; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - init(R.layout.fragment_fuli); - - isCanScroll = true; + protected int getLayoutId() { + return R.layout.fragment_fuli; + } + @Override + protected void initView(View view) { + super.initView(view); mRecyclerView = (RecyclerView) view.findViewById(R.id.fm_fuli_rv); mAdapter = new FuLiAdapter(getContext(), mEntrance); @@ -61,6 +63,14 @@ public class FuliFragment extends BaseFragment { }); } + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + isCanScroll = true; + + } + public int getHeight() { return layoutManager.getRvHeight(); } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagAdapter.java index d1b1dfc202..fe04497e72 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagAdapter.java @@ -2,32 +2,30 @@ package com.gh.gamecenter.gamedetail; import android.content.Context; import android.graphics.Color; -import android.support.v7.widget.RecyclerView; -import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; -import com.gh.gamecenter.gamedetail.GameDetailGameTagAdapter.TypeViewHolder; +import com.gh.base.BaseRecyclerAdapter; +import com.gh.gamecenter.adapter.viewholder.GameDetailGameTagTypeViewHolder; import java.util.List; /** * Created by khy on 2017/3/28. */ -public class GameDetailGameTagAdapter extends BaseRecyclerAdapter { +public class GameDetailGameTagAdapter extends BaseRecyclerAdapter { private List mGameType; public GameDetailGameTagAdapter(Context context, List gameType) { super(context); - this.mGameType = gameType; + mGameType = gameType; } @Override - public TypeViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + public GameDetailGameTagTypeViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { TextView textView = new TextView(mContext); textView.setTextColor(Color.WHITE); @@ -35,11 +33,11 @@ public class GameDetailGameTagAdapter extends BaseRecyclerAdapter { skipPosition = position; } - public interface OnSearchCallBackListener { - void search(boolean isSearch, String searchKey); - } } diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java index ecf4b1da37..232b53ee31 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java @@ -53,11 +53,13 @@ public class Libao2Fragment extends BaseFragment implements SwipeRefreshLayout.O private boolean isConcernChanged; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - init(R.layout.fragment_libao2); + protected int getLayoutId() { + return R.layout.fragment_libao2; + } - isConcernChanged = false; + @Override + protected void initView(View view) { + super.initView(view); mRefreshLayout.setColorSchemeResources(R.color.theme); mRefreshLayout.setOnRefreshListener(this); @@ -82,6 +84,14 @@ public class Libao2Fragment extends BaseFragment implements SwipeRefreshLayout.O }); } + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + isConcernChanged = false; + + } + @Override public void loadDone() { // 数据加载成功回调 mRefreshLayout.setRefreshing(false); @@ -122,7 +132,7 @@ public class Libao2Fragment extends BaseFragment implements SwipeRefreshLayout.O @Override public void onRefresh() { - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } @OnClick(R.id.reuse_no_connection) @@ -131,7 +141,7 @@ public class Libao2Fragment extends BaseFragment implements SwipeRefreshLayout.O mRecyclerView.setVisibility(View.VISIBLE); mLoadingLayout.setVisibility(View.VISIBLE); mNoConnectionLayout.setVisibility(View.GONE); - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } // 资讯Fragment界面切换事件 diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java index 263dc97383..225d41959c 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java @@ -22,14 +22,14 @@ import com.gh.common.util.PlatformUtils; import com.gh.gamecenter.ConcernActivity; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.newsdetail.NewsDetailCommentViewHolder; import com.gh.gamecenter.retrofit.ObservableUtil; diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java index 8645947490..7d964c17ef 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java @@ -45,10 +45,14 @@ public class Libao3Fragment extends BaseFragment implements SwipeRefreshLayout.O } }; + @Override + protected int getLayoutId() { + return R.layout.fragment_libao3; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_libao3); mRefreshLayout.setColorSchemeResources(R.color.theme); mRefreshLayout.setOnRefreshListener(this); @@ -79,7 +83,7 @@ public class Libao3Fragment extends BaseFragment implements SwipeRefreshLayout.O @Override public void onRefresh() { - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } // 礼包数据库数量改变事件 diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java index f4256a7c9f..9279610377 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java @@ -17,12 +17,12 @@ import com.gh.common.util.StringUtils; import com.gh.common.util.Utils; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.db.info.LibaoInfo; import com.gh.gamecenter.entity.LibaoEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java index 08ba09740a..4c6dd1250e 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java @@ -13,13 +13,13 @@ import com.gh.common.constant.ItemViewType; import com.gh.common.util.DisplayUtils; import com.gh.common.util.LibaoUtils; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.db.info.LibaoInfo; import com.gh.gamecenter.entity.LibaoEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; diff --git a/app/src/main/java/com/gh/gamecenter/libao/OnSearchCallBackListener.java b/app/src/main/java/com/gh/gamecenter/libao/OnSearchCallBackListener.java new file mode 100644 index 0000000000..f426934196 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/libao/OnSearchCallBackListener.java @@ -0,0 +1,5 @@ +package com.gh.gamecenter.libao; + +public interface OnSearchCallBackListener { + void search(boolean isSearch, String searchKey); +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java b/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java index 6ca556cd41..eeb1191701 100644 --- a/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java @@ -56,10 +56,14 @@ public class CommentFragment extends BaseFragment implements SwipeRefreshLayout. } }; + @Override + protected int getLayoutId() { + return R.layout.fragment_normal_message; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_normal_message); mNoneDataTv.setText("暂无评论消息"); @@ -126,7 +130,7 @@ public class CommentFragment extends BaseFragment implements SwipeRefreshLayout. mRecyclerview.setVisibility(View.VISIBLE); mLoadingPb.setVisibility(View.VISIBLE); mNoConnection.setVisibility(View.GONE); - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } // Fragment界面切换事件 @@ -141,6 +145,6 @@ public class CommentFragment extends BaseFragment implements SwipeRefreshLayout. @Override public void onRefresh() { - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } } diff --git a/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java index 6054df4286..d9639e3154 100644 --- a/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java @@ -12,12 +12,12 @@ import com.gh.common.util.TokenUtils; import com.gh.gamecenter.CommentDetailActivity; import com.gh.gamecenter.MessageDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.entity.MessageCommentEntity; import com.gh.gamecenter.entity.UserEntity; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -92,7 +92,7 @@ public class CommentFragmentAdapter extends BaseRecyclerAdapter { } mCommentList.addAll(response); - if (!fragment.isHidden() && !fragment.isEverpause()) { + if (!fragment.isHidden() && !fragment.isEverPause()) { notifyItemRangeInserted(mCommentList.size() - response.size(), response.size()); } else { notifyDataSetChanged(); diff --git a/app/src/main/java/com/gh/gamecenter/message/CommentNormalViewHolder.java b/app/src/main/java/com/gh/gamecenter/message/CommentNormalViewHolder.java index eecd84f4b6..de8601ae74 100644 --- a/app/src/main/java/com/gh/gamecenter/message/CommentNormalViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/CommentNormalViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.message; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/4/6. * 消息-评论实体 */ -public class CommentNormalViewHolder extends RecyclerView.ViewHolder { +public class CommentNormalViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.message_comment_user_icon) public SimpleDraweeView userIcon; @@ -31,6 +30,5 @@ public class CommentNormalViewHolder extends RecyclerView.ViewHolder { public CommentNormalViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/message/CommentVoteViewHolder.java b/app/src/main/java/com/gh/gamecenter/message/CommentVoteViewHolder.java index af0a03c2c6..c65a94fee6 100644 --- a/app/src/main/java/com/gh/gamecenter/message/CommentVoteViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/CommentVoteViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.message; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/4/6. * 消息-评论实体 */ -public class CommentVoteViewHolder extends RecyclerView.ViewHolder { +public class CommentVoteViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.message_comment_user_icon) public SimpleDraweeView userIcon; @@ -27,6 +26,5 @@ public class CommentVoteViewHolder extends RecyclerView.ViewHolder { public CommentVoteViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java b/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java index d4636eea03..c83fbfdfc2 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java @@ -53,10 +53,14 @@ public class KeFuFragment extends BaseFragment implements SwipeRefreshLayout.OnR } }; + @Override + protected int getLayoutId() { + return R.layout.fragment_normal_message; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_normal_message); mNoneDataTv.setText("暂无客服消息"); @@ -115,7 +119,7 @@ public class KeFuFragment extends BaseFragment implements SwipeRefreshLayout.OnR mRecyclerview.setVisibility(View.VISIBLE); mLoadingPb.setVisibility(View.VISIBLE); mNoConnection.setVisibility(View.GONE); - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } // Fragment界面切换事件 @@ -130,6 +134,6 @@ public class KeFuFragment extends BaseFragment implements SwipeRefreshLayout.OnR @Override public void onRefresh() { - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } } diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java index 3d6814b031..4ef7ffc1b4 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java @@ -5,7 +5,6 @@ import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.text.Html; import android.text.TextUtils; -import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -19,7 +18,7 @@ import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.WebActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.db.KeFuMarkReadDao; import com.gh.gamecenter.db.MessageMarkReadDao; @@ -27,7 +26,7 @@ import com.gh.gamecenter.db.info.KeFuMarkReadInfo; import com.gh.gamecenter.db.info.MessageMarkReadInfo; import com.gh.gamecenter.entity.MessageKeFuEntity; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.google.gson.Gson; @@ -118,10 +117,10 @@ public class KeFuFragmentAdapter extends BaseRecyclerAdapter { } mKeFuList.addAll(response); -// if (!fragment.isHidden() && !fragment.isEverpause()) { +// if (!fragment.isHidden() && !fragment.isEverPause()) { // notifyItemRangeInserted(mKeFuList.size() - response.size(), response.size()); // } else { - notifyDataSetChanged(); + notifyDataSetChanged(); // } if (mReceiveIds.size() > 0) { @@ -193,16 +192,22 @@ public class KeFuFragmentAdapter extends BaseRecyclerAdapter { @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == 0) { - View view = LayoutInflater.from(mContext).inflate(R.layout.refresh_footerview, parent, false); + View view = mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false); return new FooterViewHolder(view); } else { - View view = LayoutInflater.from(mContext).inflate(R.layout.message_kefu_item, parent, false); + View view = mLayoutInflater.inflate(R.layout.message_kefu_item, parent, false); return new KeFuViewHolder(view); } } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { +// switch (getItemViewType(position)) { +// case 0: +// break; +// case 1: +// break; +// } if (holder instanceof KeFuViewHolder) { MessageKeFuEntity keFuEntity = mKeFuList.get(position); KeFuViewHolder viewHolder = (KeFuViewHolder) holder; diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java b/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java index 288080a4cf..0e0b6c6115 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java @@ -1,18 +1,17 @@ package com.gh.gamecenter.message; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/4/10. */ -public class KeFuViewHolder extends RecyclerView.ViewHolder { +public class KeFuViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.message_kefu_time) public TextView time; @@ -27,6 +26,6 @@ public class KeFuViewHolder extends RecyclerView.ViewHolder { public KeFuViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java index 9347d72a82..53f0235ae5 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java @@ -1,8 +1,6 @@ package com.gh.gamecenter.message; import android.content.Context; -import android.os.Bundle; -import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; @@ -70,10 +68,13 @@ public class MessageFragment extends BaseFragment implements ViewPager.OnPageCha private int mKeFuUnreadCount; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - init(R.layout.fragment_message); + protected int getLayoutId() { + return R.layout.fragment_message; + } + @Override + protected void initView(View view) { + super.initView(view); LinearLayout title = (LinearLayout) view.findViewById(R.id.actionbar_title_ll); LinearLayout.LayoutParams tparams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, DisplayUtils.dip2px(getActivity(), 55)); diff --git a/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java b/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java index fc9b623216..dc633ea79a 100644 --- a/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java @@ -53,10 +53,14 @@ public class NoticeFragment extends BaseFragment implements SwipeRefreshLayout.O } }; + @Override + protected int getLayoutId() { + return R.layout.fragment_normal_message; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_normal_message); mNoneDataTv.setText("暂无公告消息"); @@ -113,7 +117,7 @@ public class NoticeFragment extends BaseFragment implements SwipeRefreshLayout.O mRecyclerview.setVisibility(View.VISIBLE); mLoadingPb.setVisibility(View.VISIBLE); mNoConnection.setVisibility(View.GONE); - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } // Fragment界面切换事件 @@ -128,6 +132,6 @@ public class NoticeFragment extends BaseFragment implements SwipeRefreshLayout.O @Override public void onRefresh() { - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } } diff --git a/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java index 3583ff992a..dc3d7bd159 100644 --- a/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java @@ -18,7 +18,7 @@ import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.WebActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.db.MessageMarkReadDao; import com.gh.gamecenter.db.NoticeMarkReadDao; @@ -26,7 +26,7 @@ import com.gh.gamecenter.db.info.MessageMarkReadInfo; import com.gh.gamecenter.db.info.NoticeMarkReadInfo; import com.gh.gamecenter.entity.MessageNoticeEntity; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.google.gson.Gson; @@ -118,7 +118,7 @@ public class NoticeFragmentAdapter extends BaseRecyclerAdapter { } mNoticeList.addAll(response); - if (!fragment.isHidden() && !fragment.isEverpause()) { + if (!fragment.isHidden() && !fragment.isEverPause()) { notifyItemRangeInserted(mNoticeList.size() - response.size(), response.size()); } else { notifyDataSetChanged(); diff --git a/app/src/main/java/com/gh/gamecenter/message/WenDaViewHolder.java b/app/src/main/java/com/gh/gamecenter/message/WenDaViewHolder.java index 06b710a335..4c370dbcf5 100644 --- a/app/src/main/java/com/gh/gamecenter/message/WenDaViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/WenDaViewHolder.java @@ -1,39 +1,37 @@ -package com.gh.gamecenter.message; - -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.TextView; - -import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.gamecenter.R; - -import butterknife.BindView; -import butterknife.ButterKnife; - -/** - * Created by khy on 2017/4/5. - */ -public class WenDaViewHolder extends RecyclerView.ViewHolder { - - @BindView(R.id.wenda_user_icon) - public SimpleDraweeView userIcon; - @BindView(R.id.wenda_user_name) - public TextView userName; - @BindView(R.id.wenda_request_control) - public TextView requestControl; - @BindView(R.id.wenda_comment_answer) - public TextView commentAnswer; - @BindView(R.id.wenda_game_icon) - public SimpleDraweeView gameIcon; - @BindView(R.id.wenda_content) - public TextView wendaContent; - @BindView(R.id.wenda_comment) - public TextView wendaComment; - @BindView(R.id.wenda_time) - public TextView wendaTime; - - public WenDaViewHolder(View itemView) { - super(itemView); - ButterKnife.bind(this, itemView); - } -} +//package com.gh.gamecenter.message; +// +//import android.view.View; +//import android.widget.TextView; +// +//import com.facebook.drawee.view.SimpleDraweeView; +//import com.gh.base.BaseRecyclerViewHolder; +//import com.gh.gamecenter.R; +// +//import butterknife.BindView; +// +///** +// * Created by khy on 2017/4/5. +// */ +//public class WenDaViewHolder extends BaseRecyclerViewHolder { +// +// @BindView(R.id.wenda_user_icon) +// public SimpleDraweeView userIcon; +// @BindView(R.id.wenda_user_name) +// public TextView userName; +// @BindView(R.id.wenda_request_control) +// public TextView requestControl; +// @BindView(R.id.wenda_comment_answer) +// public TextView commentAnswer; +// @BindView(R.id.wenda_game_icon) +// public SimpleDraweeView gameIcon; +// @BindView(R.id.wenda_content) +// public TextView wendaContent; +// @BindView(R.id.wenda_comment) +// public TextView wendaComment; +// @BindView(R.id.wenda_time) +// public TextView wendaTime; +// +// public WenDaViewHolder(View itemView) { +// super(itemView); +// } +//} diff --git a/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java index 1c6777c633..c11d07cec7 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java @@ -48,12 +48,15 @@ public class News1Fragment extends BaseFragment implements SwipeRefreshLayout.On } }; + @Override + protected int getLayoutId() { + return R.layout.fragment_news1; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_news1); - refreshLayout.setColorSchemeResources(R.color.theme); refreshLayout.setOnRefreshListener(this); 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 0214e6f544..e858856ce4 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java @@ -17,14 +17,14 @@ import com.gh.common.util.ImageUtils; import com.gh.common.util.NewsUtils; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; 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.entity.ViewsEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.VisitManager; import com.gh.gamecenter.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.ObservableUtil; @@ -307,7 +307,7 @@ public class News1FragmentAdapter extends BaseRecyclerAdapter { if (response.size() != 0) { newsList.addAll(response); itemCount += response.size(); - if (!fragment.isHidden() && !fragment.isEverpause()) { + if (!fragment.isHidden() && !fragment.isEverPause()) { notifyItemRangeInserted(newsList.size() - response.size(), response.size()); } else { notifyDataSetChanged(); diff --git a/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java index e3be902b01..c86766ab03 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java @@ -89,12 +89,15 @@ public class News2Fragment extends BaseFragment implements SwipeRefreshLayout.On private Map concernMap; // 记录选择关注 private ConcernManager concernManager; + @Override + protected int getLayoutId() { + return R.layout.fragment_news2; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_news2); - recommendGameList = new ArrayList<>(); installGameList = new ArrayList<>(); concernManager = new ConcernManager(getActivity()); diff --git a/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java index 3df1840f90..cafb51daf4 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java @@ -32,7 +32,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.ShareCardActivity; import com.gh.gamecenter.ShareCardPicActivity; import com.gh.gamecenter.WebActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsDigestViewHolder; import com.gh.gamecenter.db.LibaoDao; @@ -43,7 +43,7 @@ import com.gh.gamecenter.entity.ConcernEntity; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; import com.gh.gamecenter.entity.ViewsEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.CommentManager; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.manager.VisitManager; @@ -197,7 +197,7 @@ public class News2FragmentAdapter extends BaseRecyclerAdapter { if (response.size() != 0) { concernList.addAll(response); itemCount += response.size(); - if (!fragment.isHidden() && !fragment.isEverpause()) { + if (!fragment.isHidden() && !fragment.isEverPause()) { notifyItemRangeInserted(concernList.size() - response.size(), response.size()); } else { notifyDataSetChanged(); @@ -416,7 +416,7 @@ public class News2FragmentAdapter extends BaseRecyclerAdapter { if (response.size() != 0) { concernList.addAll(response); itemCount += response.size(); - if (!fragment.isHidden() && !fragment.isEverpause()) { + if (!fragment.isHidden() && !fragment.isEverPause()) { notifyItemRangeInserted(concernList.size() - response.size(), response.size()); } else { notifyDataSetChanged(); diff --git a/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java index fcd8d1621b..f6cc71edd1 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java @@ -2,8 +2,6 @@ package com.gh.gamecenter.news; import android.app.Dialog; import android.content.Intent; -import android.os.Bundle; -import android.support.annotation.Nullable; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; @@ -40,8 +38,8 @@ import rx.functions.Action1; * Created by khy on 2017/4/7. * 资讯-攻略界面 */ -public class News3Fragment extends BaseFragment implements News3FragmentDialogAdapter.OnStrategyDialogCallBackListener - , SwipeRefreshLayout.OnRefreshListener { +public class News3Fragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener, + OnStrategyDialogCallBackListener { @BindView(R.id.strategy_game_name) TextView mGameName; @@ -74,9 +72,13 @@ public class News3Fragment extends BaseFragment implements News3FragmentDialogAd }; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - init(R.layout.fragment_news3); + protected int getLayoutId() { + return R.layout.fragment_news3; + } + + @Override + protected void initView(View view) { + super.initView(view); mSwipeRefreshLayout.setColorSchemeResources(R.color.theme); mSwipeRefreshLayout.setOnRefreshListener(this); 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 f572b1aabb..3c83552da9 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java @@ -11,11 +11,11 @@ import com.gh.common.util.DataUtils; import com.gh.common.util.NewsUtils; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.NewsFooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsTextViewHolder; import com.gh.gamecenter.entity.NewsEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; diff --git a/app/src/main/java/com/gh/gamecenter/news/News3FragmentDialogAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News3FragmentDialogAdapter.java index f8d7297ea4..4898e3a964 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News3FragmentDialogAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News3FragmentDialogAdapter.java @@ -7,7 +7,7 @@ import android.widget.LinearLayout; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.StrategyDialogViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.manager.ConcernManager; @@ -75,7 +75,5 @@ public class News3FragmentDialogAdapter extends BaseRecyclerAdapter { if (response.size() != 0) { newsList.addAll(response); itemCount += response.size(); - if (!fragment.isHidden() && !fragment.isEverpause()) { + if (!fragment.isHidden() && !fragment.isEverPause()) { notifyItemRangeInserted(newsList.size() - response.size(), response.size()); } else { notifyDataSetChanged(); diff --git a/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java b/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java index 1fbaf4c524..cc4688b376 100644 --- a/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java @@ -10,13 +10,13 @@ import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.HomeFragment; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.FragmentAdapter; import com.gh.gamecenter.eventbus.EBUISwitch; +import com.gh.gamecenter.fragment.HomeFragment; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -25,6 +25,9 @@ import org.greenrobot.eventbus.ThreadMode; import java.util.ArrayList; import java.util.List; +import butterknife.BindView; +import butterknife.OnClick; + /** * Created by khy on 2016/6/29. @@ -36,17 +39,38 @@ public class NewsFragment extends HomeFragment implements View.OnClickListener, private View mNewsSlidebarLine; private ViewPager mNewsVP; private LinearLayout.LayoutParams lparams; - private TextView mNewsZixun; - private TextView mNewsGuanzhu; - private TextView mNewsGonglve; - private TextView mNewsYuanchuang; + + @BindView(R.id.news_zixun_tv) + TextView mNewsZixun; + + @BindView(R.id.news_guanzhu_tv) + TextView mNewsGuanzhu; + + @BindView(R.id.news_gonglve_tv) + TextView mNewsGonglve; + + @BindView(R.id.news_yuanchuang_tv) + TextView mNewsYuanchuang; + private int width; private int currentItem; + @Override + protected int getLayoutId() { + return R.layout.fragment_news; + } + + @Override + protected void initView(View view) { + super.initView(view); + mNewsSlidebarLine = view.findViewById(R.id.slidebar_line); + mNewsVP = (ViewPager) view.findViewById(R.id.page_vp_content); + mNewsZixun.setSelected(true); + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - initView(); List list = new ArrayList<>(); list.add(new News1Fragment()); @@ -85,37 +109,26 @@ public class NewsFragment extends HomeFragment implements View.OnClickListener, outState.putInt("currentItem", currentItem); } + @OnClick({R.id.news_zixun_tv, R.id.news_guanzhu_tv, R.id.news_yuanchuang_tv, R.id.news_gonglve_tv}) @Override public void onClick(View v) { - super.onClick(v); - if (v == mNewsZixun) { - mNewsVP.setCurrentItem(0); - } else if (v == mNewsGuanzhu) { - mNewsVP.setCurrentItem(1); - } else if (v == mNewsGonglve) { - mNewsVP.setCurrentItem(2); - } else if (v == mNewsYuanchuang) { - mNewsVP.setCurrentItem(3); +// super.onClick(v); + switch (v.getId()) { + case R.id.news_zixun_tv: + mNewsVP.setCurrentItem(0); + break; + case R.id.news_guanzhu_tv: + mNewsVP.setCurrentItem(1); + break; + case R.id.news_gonglve_tv: + mNewsVP.setCurrentItem(2); + break; + case R.id.news_yuanchuang_tv: + mNewsVP.setCurrentItem(3); + break; } } - private void initView() { - ((LinearLayout) view).addView(View.inflate(getActivity(), R.layout.fragment_news_slidebar, null)); - ((LinearLayout) view).addView(View.inflate(getActivity(), R.layout.fragment_page, null)); - - mNewsSlidebarLine = view.findViewById(R.id.slidebar_line); - mNewsVP = (ViewPager) view.findViewById(R.id.page_vp_content); - mNewsZixun = (TextView) view.findViewById(R.id.news_zixun_tv); - mNewsGuanzhu = (TextView) view.findViewById(R.id.news_guanzhu_tv); - mNewsGonglve = (TextView) view.findViewById(R.id.news_gonglve_tv); - mNewsYuanchuang = (TextView) view.findViewById(R.id.news_yuanchuang_tv); - mNewsZixun.setOnClickListener(this); - mNewsGuanzhu.setOnClickListener(this); - mNewsGonglve.setOnClickListener(this); - mNewsYuanchuang.setOnClickListener(this); - mNewsZixun.setSelected(true); - } - @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { if (positionOffset != 0) { diff --git a/app/src/main/java/com/gh/gamecenter/news/OnStrategyDialogCallBackListener.java b/app/src/main/java/com/gh/gamecenter/news/OnStrategyDialogCallBackListener.java new file mode 100644 index 0000000000..4064544380 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/news/OnStrategyDialogCallBackListener.java @@ -0,0 +1,7 @@ +package com.gh.gamecenter.news; + +import com.gh.gamecenter.db.info.ConcernInfo; + +public interface OnStrategyDialogCallBackListener { + void selectPosition(int position, ConcernInfo concernInfo); +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java index edd8ba8e57..b3d2038e14 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java @@ -45,7 +45,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.ViewImageActivity; import com.gh.gamecenter.WebActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.NewsDetailCommentListViewHolder; import com.gh.gamecenter.db.VoteDao; import com.gh.gamecenter.db.info.VoteInfo; @@ -54,8 +54,8 @@ import com.gh.gamecenter.entity.CommentEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.NewsDetailEntity; import com.gh.gamecenter.entity.NewsEntity; -import com.gh.gamecenter.gamedetail.GameDetailTopViewHolder; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.gamecenter.adapter.viewholder.GameDetailTopViewHolder; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; diff --git a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragment.java b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragment.java index b6d2d9a863..ecd779a9cc 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragment.java @@ -64,12 +64,15 @@ public class ConcernFragment extends BaseFragment { } }; + @Override + protected int getLayoutId() { + return R.layout.fm_concern; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fm_concern); - reuse_nodata_skip.setVisibility(View.GONE); reuse_nodata_skip_tv_hint.setText("暂无关注"); reuse_nodata_skip_tv_btn.setText("查看精品推荐"); @@ -89,7 +92,7 @@ public class ConcernFragment extends BaseFragment { @Override public void onResume() { - if (isEverpause) { + if (isEverPause) { for (GameEntity entity : adapter.getGameList()) { entity.setEntryMap(DownloadManager.getInstance(getActivity()).getEntryMap(entity.getName())); } diff --git a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java index 51380c16f4..cc44668b1c 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java @@ -19,7 +19,7 @@ import com.gh.common.util.ImageUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; diff --git a/app/src/main/java/com/gh/gamecenter/personal/InstallFragment.java b/app/src/main/java/com/gh/gamecenter/personal/InstallFragment.java index d09511e27f..e24e881765 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/InstallFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/InstallFragment.java @@ -77,12 +77,15 @@ public class InstallFragment extends BaseFragment implements InstallFragmentAdap } } + @Override + protected int getLayoutId() { + return R.layout.fm_install; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fm_install); - reuse_nodata_skip.setVisibility(View.GONE); reuse_nodata_skip_tv_hint.setText("暂无游戏"); reuse_nodata_skip_tv_btn.setText("查看精品推荐"); @@ -102,7 +105,7 @@ public class InstallFragment extends BaseFragment implements InstallFragmentAdap @Override public void onResume() { - if (isEverpause) { + if (isEverPause) { for (GameEntity entity : adapter.getGameList()) { entity.setEntryMap(DownloadManager.getInstance(getActivity()).getEntryMap(entity.getName())); } diff --git a/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java index 770c02410b..cd54ed2ca9 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java @@ -34,7 +34,7 @@ import com.gh.download.DownloadManager; import com.gh.gamecenter.ChooseReceiverActivity; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameNormalSwipeViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; 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 e9e3970dae..375af455dd 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java @@ -95,12 +95,15 @@ public class PersonalFragment extends BaseFragment implements View.OnClickListen private boolean isLogin; private SharedPreferences sp; + @Override + protected int getLayoutId() { + return R.layout.fragment_personal; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_personal); - sp = getActivity().getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE); me_iv_top_icon.setOnClickListener(this); diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java index 5817643d3e..d847451af7 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java @@ -24,7 +24,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBDownloadStatus; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -66,13 +66,15 @@ public class SearchGameDetailFragment extends BaseFragment implements OnCallBack } }; + @Override + protected int getLayoutId() { + return R.layout.fm_search; + } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fm_search); - final LinearLayout reuse_none_data = (LinearLayout) view.findViewById(R.id.reuse_none_data); TextView skip_tv = new TextView(getContext()); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DisplayUtils.dip2px(getContext(), 140) diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java index 6ef591191f..088114df8f 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java @@ -19,12 +19,12 @@ import com.gh.common.util.StringUtils; import com.gh.common.view.DownloadDialog; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBSearch; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java index e977bb71c0..f7265849a6 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java @@ -24,7 +24,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBDownloadStatus; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -63,12 +63,15 @@ public class SearchGameListFragment extends BaseFragment implements OnCallBackLi } }; + @Override + protected int getLayoutId() { + return R.layout.fm_search; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fm_search); - final LinearLayout reuse_none_data = (LinearLayout) view.findViewById(R.id.reuse_none_data); TextView skip_tv = new TextView(getContext()); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DisplayUtils.dip2px(getContext(), 140) diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java index ae82f49894..50e98f80b9 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java @@ -19,14 +19,14 @@ import com.gh.common.util.StringUtils; import com.gh.common.view.DownloadDialog; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.adapter.viewholder.SearchHistoryViewHolder; import com.gh.gamecenter.db.SearchHistoryDao; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBSearch; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java index 16c1f95a2d..70cdc97b81 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java @@ -2,15 +2,14 @@ package com.gh.gamecenter.search; import android.os.Bundle; import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; -import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.RelativeLayout; import android.widget.TextView; +import com.gh.base.BaseFragment; import com.gh.common.util.DialogUtils; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; @@ -25,12 +24,11 @@ import java.util.ArrayList; import java.util.List; import butterknife.BindView; -import butterknife.ButterKnife; import butterknife.OnClick; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; -public class SearchHistoryFragment extends Fragment { +public class SearchHistoryFragment extends BaseFragment { @BindView(R.id.search_hot_tv) TextView mSearchHotTv; @@ -40,7 +38,6 @@ public class SearchHistoryFragment extends Fragment { RecyclerView mSearchHotRv; @BindView(R.id.search_history_rv) RecyclerView mSearchHistoryRv; - private View view; private SearchHistoryDao dao; private List mHistorylist; @@ -51,12 +48,14 @@ public class SearchHistoryFragment extends Fragment { private boolean isDestroy; + @Override + protected int getLayoutId() { + return R.layout.fm_search_history; + } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - view = View.inflate(getActivity(), R.layout.fm_search_history, null); - ButterKnife.bind(this, view); isDestroy = false; mHotlist = new ArrayList<>(); @@ -137,16 +136,6 @@ public class SearchHistoryFragment extends Fragment { }); } - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); - } - return view; - } - @Override public void onDestroyView() { super.onDestroyView(); diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java index 453b19a806..ab25a0712e 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java @@ -15,7 +15,7 @@ import android.widget.TextView; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.db.SearchHistoryDao; import com.gh.gamecenter.eventbus.EBSearch; diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java b/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java index d3d43260a9..0056a4e3e7 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java @@ -26,14 +26,14 @@ import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameImageViewHolder; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.java b/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.java index 8b655a3a8f..42644d190c 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.java +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.java @@ -95,6 +95,11 @@ public class SubjectFragment extends BaseFragment { return fragment; } + @Override + protected int getLayoutId() { + return R.layout.fragment_subject; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -106,7 +111,6 @@ public class SubjectFragment extends BaseFragment { mOrder = arguments.getString("order"); mTagType = arguments.getString("tagType"); mEntrance = arguments.getString(EntranceUtils.KEY_ENTRANCE); - init(R.layout.fragment_subject); reuse_no_connection.setOnClickListener(new View.OnClickListener() { @Override @@ -178,19 +182,19 @@ public class SubjectFragment extends BaseFragment { @Override public void onResume() { super.onResume(); - if (isEverpause) { + if (isEverPause) { for (GameEntity entity : adapter.getSubjectList()) { entity.setEntryMap(DownloadManager.getInstance(getContext()).getEntryMap(entity.getName())); } } - isEverpause = false; + isEverPause = false; DownloadManager.getInstance(getContext()).addObserver(dataWatcher); } @Override public void onPause() { super.onPause(); - isEverpause = true; + isEverPause = true; DownloadManager.getInstance(getContext()).removeObserver(dataWatcher); } diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectTileFragment.java b/app/src/main/java/com/gh/gamecenter/subject/SubjectTileFragment.java index ddacc145ae..2a5135d7f2 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectTileFragment.java +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectTileFragment.java @@ -99,11 +99,14 @@ public class SubjectTileFragment extends BaseFragment implements SubjectTypeAdap } } + @Override + protected int getLayoutId() { + return R.layout.fragment_subject_tiled; + } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_subject_tiled); Bundle arguments = getArguments(); mActionBarTitle = (TextView) getActivity().findViewById(R.id.actionbar_tv_title); diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java index 390e338657..66103bbdac 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java @@ -11,7 +11,7 @@ import android.view.ViewGroup; import com.gh.common.util.Utils; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java index 3dc588eaaa..52ff5805f2 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java @@ -11,9 +11,9 @@ import android.widget.ProgressBar; import com.gh.common.util.BitmapUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.entity.InstallGameEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.*; import java.io.File; diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeAdapter.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeAdapter.java index e4c4e4775c..2e5617cdf3 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeAdapter.java @@ -9,7 +9,7 @@ import android.view.ViewGroup; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.BaseRecyclerAdapter; /** * Created by khy on 2017/3/31. diff --git a/app/src/main/java/com/gh/gamecenter/wenda/WenDaFragment.java b/app/src/main/java/com/gh/gamecenter/wenda/WenDaFragment.java index fbc62defb1..01d0913294 100644 --- a/app/src/main/java/com/gh/gamecenter/wenda/WenDaFragment.java +++ b/app/src/main/java/com/gh/gamecenter/wenda/WenDaFragment.java @@ -1,21 +1,27 @@ -package com.gh.gamecenter.wenda; - -import com.gh.base.BaseFragment; -import com.gh.gamecenter.eventbus.EBNetworkState; - -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - -/** - * Created by khy on 2017/4/5. - */ -public class WenDaFragment extends BaseFragment { - - //连接上网络事件 - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBNetworkState busNetworkState) { - if (busNetworkState.isNetworkConnected()) { - - } - } -} +//package com.gh.gamecenter.wenda; +// +//import com.gh.base.BaseFragment; +//import com.gh.gamecenter.eventbus.EBNetworkState; +// +//import org.greenrobot.eventbus.Subscribe; +//import org.greenrobot.eventbus.ThreadMode; +// +///** +// * Created by khy on 2017/4/5. +// */ +//public class WenDaFragment extends BaseFragment { +// +// //连接上网络事件 +// @Subscribe(threadMode = ThreadMode.MAIN) +// public void onEventMainThread(EBNetworkState busNetworkState) { +// if (busNetworkState.isNetworkConnected()) { +// +// } +// } +// +// @Override +// protected int getLayoutId() { +// return 0; +// } +// +//} diff --git a/app/src/main/java/com/gh/gamecenter/listener/OnCallBackListener.java b/app/src/main/java/com/gh/listener/OnCallBackListener.java similarity index 84% rename from app/src/main/java/com/gh/gamecenter/listener/OnCallBackListener.java rename to app/src/main/java/com/gh/listener/OnCallBackListener.java index 6f12c7291d..5ff6adeef5 100644 --- a/app/src/main/java/com/gh/gamecenter/listener/OnCallBackListener.java +++ b/app/src/main/java/com/gh/listener/OnCallBackListener.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.listener; +package com.gh.listener; /** * Created by Administrator on 2016/9/8. diff --git a/app/src/main/java/com/gh/gamecenter/listener/OnCollectionCallBackListener.java b/app/src/main/java/com/gh/listener/OnCollectionCallBackListener.java similarity index 87% rename from app/src/main/java/com/gh/gamecenter/listener/OnCollectionCallBackListener.java rename to app/src/main/java/com/gh/listener/OnCollectionCallBackListener.java index bbb64806aa..fbaeb11690 100644 --- a/app/src/main/java/com/gh/gamecenter/listener/OnCollectionCallBackListener.java +++ b/app/src/main/java/com/gh/listener/OnCollectionCallBackListener.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.listener; +package com.gh.listener; import com.gh.gamecenter.entity.GameCollectionEntity; diff --git a/app/src/main/res/layout/activity_subject.xml b/app/src/main/res/layout/activity_subject.xml index ff46926976..5fb2f92b2e 100644 --- a/app/src/main/res/layout/activity_subject.xml +++ b/app/src/main/res/layout/activity_subject.xml @@ -38,8 +38,7 @@ android:layout_height = "wrap_content" android:layout_centerInParent = "true" /> - - + diff --git a/app/src/main/res/layout/fragment_game.xml b/app/src/main/res/layout/fragment_game.xml index 19728dde75..84e177aa51 100644 --- a/app/src/main/res/layout/fragment_game.xml +++ b/app/src/main/res/layout/fragment_game.xml @@ -1,26 +1,36 @@ - + android:layout_height = "match_parent" + android:orientation = "vertical" > - + + - - + android:layout_height = "match_parent" > - + - + - \ No newline at end of file + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_news.xml similarity index 73% rename from app/src/main/res/layout/fragment_home.xml rename to app/src/main/res/layout/fragment_news.xml index 6ae4d3b258..b330b5d77e 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_news.xml @@ -6,4 +6,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_news_slidebar.xml b/app/src/main/res/layout/fragment_news_slidebar.xml index b5c3499321..af88ac8797 100644 --- a/app/src/main/res/layout/fragment_news_slidebar.xml +++ b/app/src/main/res/layout/fragment_news_slidebar.xml @@ -2,13 +2,13 @@ - \ No newline at end of file + + + + + + + + + \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index aad892d527..7c18cde3e4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,4 @@ include ':app' -include ':libraries:EventBus' include ':libraries:MiPush' include ':libraries:MTA' include ':libraries:QQShare' From b3d63c5698cbd1cc9e940587ae981eaac0835fa6 Mon Sep 17 00:00:00 2001 From: CsHeng Date: Fri, 16 Jun 2017 15:39:45 +0800 Subject: [PATCH 4/6] =?UTF-8?q?1=E3=80=81=E5=A4=84=E7=90=86viewholder=202?= =?UTF-8?q?=E3=80=81=E5=A4=84=E7=90=86adapter=203=E3=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/gh/base/BaseActivity.java | 5 +- .../java/com/gh/base/BaseDetailActivity.java | 4 - .../main/java/com/gh/base/BaseFragment.java | 3 +- .../OnRequestCallBackListener.java} | 4 +- .../main/java/com/gh/base/SuggestionType.java | 96 +++++++-------- .../{ => adapter}/BaseRecyclerAdapter.java | 2 +- .../adapter/FragmentAdapter.java | 2 +- .../java/com/gh/common/util/CommentUtils.java | 40 +++---- .../java/com/gh/common/util/LibaoUtils.java | 113 +++++++++--------- .../com/gh/common/view/DownloadDialog.java | 2 +- .../java/com/gh/gamecenter/AboutActivity.java | 2 +- .../gh/gamecenter/ChooseReceiverActivity.java | 2 +- .../com/gh/gamecenter/CleanApkActivity.java | 4 +- .../gh/gamecenter/CommentDetailActivity.java | 2 +- .../com/gh/gamecenter/ConcernActivity.java | 2 +- .../com/gh/gamecenter/CropImageActivity.java | 2 +- .../gamecenter/DownloadManagerActivity.java | 4 +- .../gh/gamecenter/FileReceiverActivity.java | 2 +- .../com/gh/gamecenter/FileSenderActivity.java | 2 +- .../com/gh/gamecenter/GameDetailActivity.java | 4 +- .../com/gh/gamecenter/GameNewsActivity.java | 2 +- .../java/com/gh/gamecenter/KaiFuActivity.java | 2 +- .../gh/gamecenter/KcSelectGameActivity.java | 2 +- .../java/com/gh/gamecenter/LibaoActivity.java | 4 +- .../gh/gamecenter/LibaoDetailActivity.java | 20 ++-- .../gh/gamecenter/MessageDetailActivity.java | 9 +- .../com/gh/gamecenter/NewsDetailActivity.java | 2 +- .../com/gh/gamecenter/NewsSearchActivity.java | 2 +- .../com/gh/gamecenter/PluginActivity.java | 2 +- .../gamecenter/ReceiverWaitingActivity.java | 2 +- .../gh/gamecenter/SelectUserIconActivity.java | 2 +- .../com/gh/gamecenter/SettingActivity.java | 2 +- .../com/gh/gamecenter/ShareCardActivity.java | 2 +- .../gh/gamecenter/ShareCardPicActivity.java | 32 ++++- .../com/gh/gamecenter/ShareGhActivity.java | 3 +- .../gh/gamecenter/ShareGhWfifActivity.java | 2 +- .../com/gh/gamecenter/SubjectActivity.java | 2 +- .../gh/gamecenter/SuggestSelectActivity.java | 2 +- .../com/gh/gamecenter/SuggestionActivity.java | 2 +- .../com/gh/gamecenter/ToolBoxActivity.java | 2 +- .../java/com/gh/gamecenter/VoteActivity.java | 2 +- .../java/com/gh/gamecenter/WebActivity.java | 2 +- .../gamecenter/adapter/CleanApkAdapter.java | 23 ++-- .../adapter/CommentDetailAdapter.java | 2 +- .../gh/gamecenter/adapter/ConcernAdapter.java | 8 +- .../adapter/ConcernRecommendAdapter.java | 8 +- .../adapter/FileReceiverAdapter.java | 2 +- .../gamecenter/adapter/FileSenderAdapter.java | 2 +- .../gamecenter/adapter/GameNewsAdapter.java | 2 +- .../adapter/GameNewsTypeListAdapter.java | 9 +- .../gh/gamecenter/adapter/KaiFuAdapter.java | 28 ++--- .../adapter/KaiFuDialogAdapter.java | 11 +- .../adapter/KcSelectGameAdapter.java | 11 +- .../gamecenter/adapter/LiBaoCodeAdapter.java | 2 +- .../adapter/LibaoDetailAdapter.java | 33 +++-- .../adapter/MessageDetailAdapter.java | 70 +++-------- .../OnCollectionCallBackListener.java | 2 +- .../adapter/OnCommentCallBackListener.java | 7 ++ .../gamecenter/adapter/PlatformAdapter.java | 3 +- .../adapter/PlatformPagerAdapter.java | 1 - .../gh/gamecenter/adapter/PluginAdapter.java | 8 +- .../adapter/SubjectTypeAdapter.java | 2 +- .../gamecenter/adapter/ToolBoxRvAdapter.java | 8 +- .../gh/gamecenter/adapter/VoteAdapter.java | 10 +- .../viewholder/GameDetailGameViewHolder.java | 16 --- .../viewholder/GameNewsSearchViewHolder.java | 11 +- .../GameNewsTypeListViewHolder.java | 9 +- .../viewholder/GameNewsTypeViewHolder.java | 9 +- .../viewholder/GameTestViewHolder.java | 9 ++ .../viewholder/GameUpdateViewHolder.java | 22 ++-- .../adapter/viewholder/GameViewHolder.java | 4 +- .../viewholder/GameViewPagerViewHolder.java | 7 +- .../viewholder/KcSelectGameViewHolder.java | 6 +- .../viewholder/LiBaoCodeViewHolder.java | 11 +- .../viewholder/LibaoDetailTopViewHolder.java | 5 +- .../viewholder/LibaoNormalViewHolder.java | 6 +- .../viewholder/LibaoSearchViewHolder.java | 6 +- .../NewsDetailCommentListViewHolder.java | 7 +- .../viewholder/NewsDigestViewHolder.java | 6 +- .../viewholder/NewsFooterViewHolder.java | 6 +- .../viewholder/NewsHeadViewHolder.java | 6 +- .../viewholder/NewsImage1ViewHolder.java | 6 +- .../viewholder/NewsImage2ViewHolder.java | 6 +- .../viewholder/NewsImage3ViewHolder.java | 6 +- .../viewholder/NewsImageViewHolder.java | 6 +- .../viewholder/NewsTextViewHolder.java | 6 +- .../viewholder/NoDataSkipViewHolder.java | 24 ---- .../viewholder/PlatformViewHolder.java | 28 ++--- .../adapter/viewholder/ReuseViewHolder.java | 5 +- .../viewholder/SearchHistoryViewHolder.java | 12 +- .../viewholder/StrategyDialogViewHolder.java | 7 +- .../adapter/viewholder/ToolBoxViewHolder.java | 6 +- .../adapter/viewholder/VoteViewHolder.java | 7 +- .../download/GameDownloadFragmentAdapter.java | 2 +- .../download/GameUpdateFragmentAdapter.java | 2 +- .../com/gh/gamecenter/entity/LibaoEntity.java | 61 +++++++++- .../gh/gamecenter/entity/LibaoGameEntity.java | 33 ++++- .../gh/gamecenter/fragment/GameFragment.java | 4 +- .../gamecenter/game/GameFragmentAdapter.java | 6 +- .../gh/gamecenter/gamedetail/FuLiAdapter.java | 2 +- .../gamedetail/GameDetaiLibaoViewHolder.java | 26 ---- .../GameDetailCalenderViewHolder.java | 26 ---- .../gamedetail/GameDetailFuLiViewHolder.java | 45 ------- .../gamedetail/GameDetailGameTagAdapter.java | 2 +- .../GameDetailGameTagViewHolder.java | 23 ---- .../gamedetail/GameDetailGameViewHolder.java | 17 --- .../gamedetail/GameDetailIntroViewHolder.java | 24 ---- .../gamedetail/GameDetailKaiFuAdapter.java | 2 +- .../gamedetail/GameDetailKaiFuViewHolder.java | 47 -------- .../GameDetailNewsServerAdapter.java | 2 +- .../GameDetailNewsServerItemViewHolder.java | 29 ----- .../gamedetail/GameDetailNewsViewHolder.java | 31 ----- .../GameDetailNoticeViewHolder.java | 26 ---- .../gamedetail/GameDetailPluginAdapter.java | 2 +- .../gamedetail/GameDetailSkinViewHolder.java | 33 ----- .../gamedetail/GameDetailToolsAdapter.java | 2 +- .../gamedetail/GameGalleryAdapter.java | 2 +- .../gamedetail/GameLibaoGalleryAdapter.java | 18 ++- .../gamecenter/gamedetail/XinXiAdapter.java | 16 +-- .../gh/gamecenter/geetest/GeetestUtils.java | 3 +- .../gh/gamecenter/libao/Libao1Fragment.java | 6 +- .../libao/Libao1FragmentAdapter.java | 54 ++++----- .../libao/Libao2FragmentAdapter.java | 46 ++++--- .../gh/gamecenter/libao/Libao3Fragment.java | 4 +- .../libao/Libao3FragmentAdapter.java | 25 ++-- .../gamecenter/libao/LibaoHistoryAdapter.java | 6 +- .../message/CommentFragmentAdapter.java | 6 +- .../message/KeFuFragmentAdapter.java | 6 +- .../gamecenter/message/MessageFragment.java | 2 +- .../message/NoticeFragmentAdapter.java | 6 +- .../gamecenter/news/News1FragmentAdapter.java | 6 +- .../gamecenter/news/News2FragmentAdapter.java | 13 +- .../gamecenter/news/News3FragmentAdapter.java | 8 +- .../news/News3FragmentDialogAdapter.java | 2 +- .../gamecenter/news/News4FragmentAdapter.java | 6 +- .../com/gh/gamecenter/news/NewsFragment.java | 2 +- .../newsdetail/NewsDetailAdapter.java | 8 +- .../NewsDetailCommentViewHolder.java | 6 +- .../personal/ConcernFragmentAdapter.java | 2 +- .../personal/InstallFragmentAdapter.java | 2 +- .../search/SearchGameDetailFragment.java | 4 +- .../SearchGameDetailFragmentAdapter.java | 6 +- .../search/SearchGameListFragment.java | 4 +- .../search/SearchGameListFragmentAdapter.java | 6 +- .../search/SearchHistoryFragmentAdapter.java | 2 +- .../gh/gamecenter/subject/SubjectAdapter.java | 20 ++-- .../suggest/SelectGameViewHolder.java | 6 +- .../gamecenter/suggest/SuggestPicAdapter.java | 2 +- .../suggest/SuggestPicViewHolder.java | 6 +- .../suggest/SuggestSelectGameAdapter.java | 6 +- .../suggest/SuggestTypeAdapter.java | 2 +- .../suggest/SuggestTypeViewHolder.java | 6 +- 152 files changed, 666 insertions(+), 1022 deletions(-) rename app/src/main/java/com/gh/{listener/OnCallBackListener.java => base/OnRequestCallBackListener.java} (69%) rename app/src/main/java/com/gh/base/{ => adapter}/BaseRecyclerAdapter.java (96%) rename app/src/main/java/com/gh/{gamecenter => base}/adapter/FragmentAdapter.java (95%) rename app/src/main/java/com/gh/{listener => gamecenter/adapter}/OnCollectionCallBackListener.java (87%) create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/OnCommentCallBackListener.java delete mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/NoDataSkipViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetaiLibaoViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailCalenderViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFuLiViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailIntroViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNewsServerItemViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNewsViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNoticeViewHolder.java delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailSkinViewHolder.java diff --git a/app/src/main/java/com/gh/base/BaseActivity.java b/app/src/main/java/com/gh/base/BaseActivity.java index 7c271d0677..345955aaea 100644 --- a/app/src/main/java/com/gh/base/BaseActivity.java +++ b/app/src/main/java/com/gh/base/BaseActivity.java @@ -22,7 +22,6 @@ import com.gh.common.util.ShareUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBShowDialog; -import com.gh.listener.OnCallBackListener; import com.readystatesoftware.systembartint.SystemBarTintManager.SystemBarConfig; import org.greenrobot.eventbus.EventBus; @@ -36,7 +35,7 @@ import butterknife.ButterKnife; import static com.gh.common.util.EntranceUtils.KEY_DATA; import static com.gh.common.util.EntranceUtils.KEY_ENTRANCE; -public abstract class BaseActivity extends BaseAppCompatToolBarActivity implements OnCallBackListener { +public abstract class BaseActivity extends BaseAppCompatToolBarActivity implements OnRequestCallBackListener { protected String mEntrance; private boolean mIsPause; @@ -84,7 +83,7 @@ public abstract class BaseActivity extends BaseAppCompatToolBarActivity implemen } } - protected void init(String title) { + protected void initTitle(String title) { TextView actionbar_tv_title = (TextView) findViewById(R.id.actionbar_tv_title); actionbar_tv_title.setText(title); // setNavigationTitle(title); diff --git a/app/src/main/java/com/gh/base/BaseDetailActivity.java b/app/src/main/java/com/gh/base/BaseDetailActivity.java index 64c42cf1b8..baf0e32e93 100644 --- a/app/src/main/java/com/gh/base/BaseDetailActivity.java +++ b/app/src/main/java/com/gh/base/BaseDetailActivity.java @@ -100,8 +100,6 @@ public abstract class BaseDetailActivity extends BaseActivity implements View.On protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); -// View contentView = View.inflate(this, R.layout.activity_detail, null); - // 添加分享图标 iv_share = new ImageView(this); iv_share.setImageResource(R.drawable.ic_share); @@ -117,8 +115,6 @@ public abstract class BaseDetailActivity extends BaseActivity implements View.On R.id.reuse_actionbar); reuse_actionbar.addView(iv_share, params); -// init(contentView); - actionbar_tv_title = (TextView) findViewById(R.id.actionbar_tv_title); detail_rv_show = (RecyclerView) findViewById(R.id.detail_rv_show); detail_ll_bottom = (LinearLayout) findViewById(R.id.detail_ll_bottom); diff --git a/app/src/main/java/com/gh/base/BaseFragment.java b/app/src/main/java/com/gh/base/BaseFragment.java index de613b0a89..99d1f5f07b 100644 --- a/app/src/main/java/com/gh/base/BaseFragment.java +++ b/app/src/main/java/com/gh/base/BaseFragment.java @@ -11,7 +11,6 @@ import android.widget.Toast; import com.gh.common.util.EntranceUtils; import com.gh.common.util.RuntimeUtils; import com.gh.gamecenter.eventbus.EBMiPush; -import com.gh.listener.OnCallBackListener; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -23,7 +22,7 @@ import butterknife.ButterKnife; * Created by LGT on 2016/9/4. * Fragment 基类 */ -public abstract class BaseFragment extends Fragment implements OnCallBackListener { +public abstract class BaseFragment extends Fragment implements OnRequestCallBackListener { // TODO private view protected View view; diff --git a/app/src/main/java/com/gh/listener/OnCallBackListener.java b/app/src/main/java/com/gh/base/OnRequestCallBackListener.java similarity index 69% rename from app/src/main/java/com/gh/listener/OnCallBackListener.java rename to app/src/main/java/com/gh/base/OnRequestCallBackListener.java index 5ff6adeef5..3845b16a0e 100644 --- a/app/src/main/java/com/gh/listener/OnCallBackListener.java +++ b/app/src/main/java/com/gh/base/OnRequestCallBackListener.java @@ -1,9 +1,9 @@ -package com.gh.listener; +package com.gh.base; /** * Created by Administrator on 2016/9/8. */ -public interface OnCallBackListener { +public interface OnRequestCallBackListener { void loadDone(); diff --git a/app/src/main/java/com/gh/base/SuggestionType.java b/app/src/main/java/com/gh/base/SuggestionType.java index dc2a5bea63..73e3da0151 100644 --- a/app/src/main/java/com/gh/base/SuggestionType.java +++ b/app/src/main/java/com/gh/base/SuggestionType.java @@ -1,48 +1,48 @@ -package com.gh.base; - -import java.io.Serializable; - -public enum SuggestionType implements Serializable { - - FEEDBACK("普通反馈", 1), - SUGGESTION("功能建议", 2), - CRASH("发生闪退", 3), - GAME("游戏问题", 4), - COLLECT("游戏收录", 5), - POST("文章投稿", 6); - - private String mName; - private int mIndex; - - private SuggestionType(String name, int index) { - mName = name; - mIndex = index; - } - - public static String getName(int index) { - for (SuggestionType c : SuggestionType.values()) { - if (c.mIndex == index) { - return c.mName; - } - } - return ""; - } - - public static int getIndex(String name) { - for (SuggestionType c : SuggestionType.values()) { - if (c.mName == name) { - return c.mIndex; - } - } - return -1; - } - - public int getIndex() { - return mIndex; - } - - public String getName() { - return mName; - } - -} +//package com.gh.base; +// +//import java.io.Serializable; +// +//public enum SuggestionType implements Serializable { +// +// FEEDBACK("普通反馈", 1), +// SUGGESTION("功能建议", 2), +// CRASH("发生闪退", 3), +// GAME("游戏问题", 4), +// COLLECT("游戏收录", 5), +// POST("文章投稿", 6); +// +// private String mName; +// private int mIndex; +// +// private SuggestionType(String name, int index) { +// mName = name; +// mIndex = index; +// } +// +// public static String getName(int index) { +// for (SuggestionType c : SuggestionType.values()) { +// if (c.mIndex == index) { +// return c.mName; +// } +// } +// return ""; +// } +// +// public static int getIndex(String name) { +// for (SuggestionType c : SuggestionType.values()) { +// if (c.mName == name) { +// return c.mIndex; +// } +// } +// return -1; +// } +// +// public int getIndex() { +// return mIndex; +// } +// +// public String getName() { +// return mName; +// } +// +//} diff --git a/app/src/main/java/com/gh/base/BaseRecyclerAdapter.java b/app/src/main/java/com/gh/base/adapter/BaseRecyclerAdapter.java similarity index 96% rename from app/src/main/java/com/gh/base/BaseRecyclerAdapter.java rename to app/src/main/java/com/gh/base/adapter/BaseRecyclerAdapter.java index 7053e2722a..0014dcd1ce 100644 --- a/app/src/main/java/com/gh/base/BaseRecyclerAdapter.java +++ b/app/src/main/java/com/gh/base/adapter/BaseRecyclerAdapter.java @@ -1,4 +1,4 @@ -package com.gh.base; +package com.gh.base.adapter; import android.content.Context; import android.support.v7.widget.RecyclerView; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/FragmentAdapter.java b/app/src/main/java/com/gh/base/adapter/FragmentAdapter.java similarity index 95% rename from app/src/main/java/com/gh/gamecenter/adapter/FragmentAdapter.java rename to app/src/main/java/com/gh/base/adapter/FragmentAdapter.java index 1d42ceafe7..36faadf66e 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/FragmentAdapter.java +++ b/app/src/main/java/com/gh/base/adapter/FragmentAdapter.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.adapter; +package com.gh.base.adapter; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; diff --git a/app/src/main/java/com/gh/common/util/CommentUtils.java b/app/src/main/java/com/gh/common/util/CommentUtils.java index 451fd5aa34..a89b2e3275 100644 --- a/app/src/main/java/com/gh/common/util/CommentUtils.java +++ b/app/src/main/java/com/gh/common/util/CommentUtils.java @@ -5,9 +5,7 @@ import android.content.Context; import android.graphics.Color; import android.support.v4.content.ContextCompat; import android.text.TextUtils; -import android.view.Gravity; import android.view.View; -import android.view.ViewGroup; import android.view.Window; import android.widget.LinearLayout; import android.widget.TextView; @@ -15,7 +13,7 @@ import android.widget.TextView; import com.gh.gamecenter.CommentDetailActivity; import com.gh.gamecenter.MessageDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.MessageDetailAdapter; +import com.gh.gamecenter.adapter.OnCommentCallBackListener; import com.gh.gamecenter.db.CommentDao; import com.gh.gamecenter.entity.CommentEntity; @@ -65,17 +63,17 @@ public class CommentUtils { } } - public static void showReportDialog(final CommentEntity commentEntity, final Context mContext - , final MessageDetailAdapter.OnCommentCallBackListener mCallBackListener, final String newsId) { + public static void showReportDialog(final CommentEntity commentEntity, final Context context, + final OnCommentCallBackListener listener, final String newsId) { - CommentDao commentDao = new CommentDao(mContext); + CommentDao commentDao = new CommentDao(context); - final Dialog dialog = new Dialog(mContext); + final Dialog dialog = new Dialog(context); - LinearLayout container = new LinearLayout(mContext); + LinearLayout container = new LinearLayout(context); container.setOrientation(LinearLayout.VERTICAL); container.setBackgroundColor(Color.WHITE); - container.setPadding(0, DisplayUtils.dip2px(mContext, 12), 0, DisplayUtils.dip2px(mContext, 12)); + container.setPadding(0, DisplayUtils.dip2px(context, 12), 0, DisplayUtils.dip2px(context, 12)); List dialogType = new ArrayList<>(); @@ -91,16 +89,16 @@ public class CommentUtils { } for (String s : dialogType) { - final TextView reportTv = new TextView(mContext); + final TextView reportTv = new TextView(context); reportTv.setText(s); reportTv.setTextSize(17); - reportTv.setTextColor(ContextCompat.getColor(mContext, R.color.title)); + reportTv.setTextColor(ContextCompat.getColor(context, R.color.title)); reportTv.setBackgroundResource(R.drawable.textview_white_style); - int widthPixels = mContext.getResources().getDisplayMetrics().widthPixels; + int widthPixels = context.getResources().getDisplayMetrics().widthPixels; reportTv.setLayoutParams(new LinearLayout.LayoutParams((widthPixels * 9) / 10, LinearLayout.LayoutParams.WRAP_CONTENT)); - reportTv.setPadding(DisplayUtils.dip2px(mContext, 20), DisplayUtils.dip2px(mContext, 12), - 0, DisplayUtils.dip2px(mContext, 12)); + reportTv.setPadding(DisplayUtils.dip2px(context, 20), DisplayUtils.dip2px(context, 12), + 0, DisplayUtils.dip2px(context, 12)); container.addView(reportTv); reportTv.setOnClickListener(new View.OnClickListener() { @@ -109,23 +107,23 @@ public class CommentUtils { dialog.cancel(); switch (reportTv.getText().toString()) { case "回复": - if (mCallBackListener != null) { - mCallBackListener.showSoftInput(commentEntity); + if (listener != null) { + listener.onCommentCallback(commentEntity); } else if (!TextUtils.isEmpty(newsId)) { - mContext.startActivity(MessageDetailActivity.getMessageDetailIntent(mContext, commentEntity, newsId)); + context.startActivity(MessageDetailActivity.getMessageDetailIntent(context, commentEntity, newsId)); } else { - Utils.toast(mContext, "缺少关键属性"); + Utils.toast(context, "缺少关键属性"); } break; case "复制": - LibaoUtils.copyLink(commentEntity.getContent(), mContext); + LibaoUtils.copyLink(commentEntity.getContent(), context); break; case "举报": - showReportTypeDialog(commentEntity, mContext); + showReportTypeDialog(commentEntity, context); break; case "查看对话": - mContext.startActivity(CommentDetailActivity.getCommentDetailIntent(mContext, commentEntity.getId())); + context.startActivity(CommentDetailActivity.getCommentDetailIntent(context, commentEntity.getId())); break; } } diff --git a/app/src/main/java/com/gh/common/util/LibaoUtils.java b/app/src/main/java/com/gh/common/util/LibaoUtils.java index 0bd9011558..24784bf6d7 100644 --- a/app/src/main/java/com/gh/common/util/LibaoUtils.java +++ b/app/src/main/java/com/gh/common/util/LibaoUtils.java @@ -1,6 +1,5 @@ package com.gh.common.util; -import android.app.Activity; import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; @@ -215,7 +214,7 @@ public class LibaoUtils { }); } - public static void initLibaoBtn(final Activity activity, final TextView libaoBtn, final LibaoEntity libaoEntity, final LibaoDao libaoDao, + public static void initLibaoBtn(final Context context, final TextView libaoBtn, final LibaoEntity libaoEntity, final LibaoDao libaoDao, final boolean isInstallRequired, final LibaoDetailAdapter adapter, final String entrance) { libaoBtn.setTextColor(Color.WHITE); @@ -257,8 +256,7 @@ public class LibaoUtils { int[][] states2 = new int[2][]; states2[0] = new int[]{android.R.attr.state_pressed}; states2[1] = new int[]{}; - int[] colors2 = new int[]{Color.WHITE, - Color.parseColor("#ffb13c")}; + int[] colors2 = new int[]{Color.WHITE, Color.parseColor("#ffb13c")}; ColorStateList sl2 = new ColorStateList(states2, colors2); libaoBtn.setText("已淘号"); libaoBtn.setBackgroundResource(R.drawable.libao_taoed_style); @@ -278,16 +276,16 @@ public class LibaoUtils { public void onClick(View v) { // 领取限制 if ("领取".equals(libaoBtn.getText().toString()) || "淘号".equals(libaoBtn.getText().toString())) { - if (isInstallRequired && !isAppInstalled(libaoBtn.getContext(), libaoEntity.getPackageName())) { + if (isInstallRequired && !isAppInstalled(context, libaoEntity.getPackageName())) { String platform; if (TextUtils.isEmpty(libaoEntity.getPlatform())) { platform = ""; } else { - platform = PlatformUtils.getInstance(libaoBtn.getContext()) + platform = PlatformUtils.getInstance(context) .getPlatformName(libaoEntity.getPlatform()) + "版"; } - DialogUtils.showWarningDialog(libaoBtn.getContext(), "条件不符", + DialogUtils.showWarningDialog(context, "条件不符", Html.fromHtml("请先" + "" + "安装《" + libaoEntity.getGame().getName() + "》 " + platform + ""), "关闭", "立即安装" @@ -303,17 +301,17 @@ public class LibaoUtils { switch (libaoBtn.getText().toString()) { case "未开始": - Utils.toast(libaoBtn.getContext(), "还没到开始领取时间"); + Utils.toast(context, "还没到开始领取时间"); break; case "查看": - Intent intent = LibaoDetailActivity.getLibaoDetailIntent(libaoEntity, libaoBtn, entrance); - libaoBtn.getContext().startActivity(intent); + Intent intent = LibaoDetailActivity.getIntent(context, libaoEntity, entrance); + context.startActivity(intent); break; case "领取": - libaoLing(activity, libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, null, entrance); + libaoLing(context, libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, null, entrance); break; case "淘号": - postLibaoTao(libaoBtn.getContext(), libaoEntity.getId(), true, new PostLibaoListener() { + postLibaoTao(context, libaoEntity.getId(), true, new PostLibaoListener() { @Override public void postSucced(Object response) { @@ -330,11 +328,11 @@ public class LibaoUtils { try { String detail = responseBody.getString("detail"); if ("maintaining".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "网络状态异常,请稍后再试"); + Utils.toast(context, "网络状态异常,请稍后再试"); } else if ("fail to compete".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "淘号失败,稍后重试"); + Utils.toast(context, "淘号失败,稍后重试"); } else { - Utils.toast(libaoBtn.getContext(), "淘号异常"); + Utils.toast(context, "淘号异常"); } } catch (JSONException e) { e.printStackTrace(); @@ -342,13 +340,13 @@ public class LibaoUtils { return; } - Utils.toast(libaoBtn.getContext(), "淘号成功"); + Utils.toast(context, "淘号成功"); libaoEntity.setStatus("taoed"); LibaoInfo libaoInfo = LibaoInfo.createLibaoInfo(libaoEntity); libaoInfo.setCode(libaoCode); - libaoInfo.setTime(Utils.getTime(libaoBtn.getContext())); + libaoInfo.setTime(Utils.getTime(context)); libaoDao.add(libaoInfo); EventBus.getDefault().post(new EBReuse("libaoChanged")); @@ -357,20 +355,20 @@ public class LibaoUtils { adapter.notifyDataSetChanged(); final String finalLibaoCode = libaoCode; - DialogUtils.showWarningDialog(libaoBtn.getContext(), "淘号成功", Html.fromHtml("礼包码:" + DialogUtils.showWarningDialog(context, "淘号成功", Html.fromHtml("礼包码:" + "" + libaoCode + "" + "
淘号礼包不保证可用,请尽快进入游戏尝试兑换") , "关闭", " 复制礼包码" , new DialogUtils.ConfirmListener() { @Override public void onConfirm() { - copyLink(finalLibaoCode, libaoBtn.getContext()); + copyLink(finalLibaoCode, context); if (isInstallRequired) { libaoBtn.postDelayed(new Runnable() { @Override public void run() { - lunningAppDialog(libaoBtn.getContext() + lunningAppDialog(context , Html.fromHtml("礼包码:" + "" + finalLibaoCode + "" + " 复制成功" @@ -392,14 +390,14 @@ public class LibaoUtils { try { JSONObject errorJson = new JSONObject(exception.response().errorBody().string()); String detail = errorJson.getString("detail"); - Utils.toast(libaoBtn.getContext(), "返回::" + detail); + Utils.toast(context, "返回::" + detail); if ("coming".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "礼包领取时间未开始"); + Utils.toast(context, "礼包领取时间未开始"); } else if ("finish".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "礼包领取时间已结束"); + Utils.toast(context, "礼包领取时间已结束"); } else if ("fetched".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "你已领过这个礼包了"); - getCunHaoXiang(libaoBtn.getContext(), true); + Utils.toast(context, "你已领过这个礼包了"); + getCunHaoXiang(context, true); int[][] states2 = new int[2][]; states2[0] = new int[]{android.R.attr.state_pressed}; @@ -412,23 +410,23 @@ public class LibaoUtils { libaoBtn.setTextColor(sl2); libaoEntity.setStatus("taoed"); } else if ("try tao".equals(detail) || "used up".equals(detail)) { - DialogUtils.showHintDialog(libaoBtn.getContext(), "礼包已领光" + DialogUtils.showHintDialog(context, "礼包已领光" , "手速不够快,礼包已经被抢光了,十分抱歉", "知道了"); } else if ("maintaining".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "网络状态异常,请稍后再试"); + Utils.toast(context, "网络状态异常,请稍后再试"); } else if ("fail to compete".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "淘号失败,稍后重试"); + Utils.toast(context, "淘号失败,稍后重试"); } else { - Utils.toast(libaoBtn.getContext(), "操作失败"); + Utils.toast(context, "操作失败"); } } catch (Exception ex) { ex.printStackTrace(); - Utils.toast(libaoBtn.getContext(), "礼包处理异常" + ex.toString()); + Utils.toast(context, "礼包处理异常" + ex.toString()); } return; } } - Utils.toast(libaoBtn.getContext(), "发生异常"); + Utils.toast(context, "发生异常"); } }); break; @@ -437,10 +435,14 @@ public class LibaoUtils { }); } - private static void libaoLing(final Activity activity, final TextView libaoBtn, final LibaoEntity libaoEntity, final LibaoDetailAdapter adapter, + private static void libaoLing(final Context context, final TextView libaoBtn, final LibaoEntity libaoEntity, final LibaoDetailAdapter adapter, final boolean isInstallRequired, final LibaoDao libaoDao, String captchaCode, final String entrance) { - postLibaoLing(libaoBtn.getContext(), libaoEntity.getId(), true, new PostLibaoListener() { + if (BuildConfig.DEBUG) { + Log.e("LIBAO", "context? " + context + libaoBtn.getContext()); + } + + postLibaoLing(context, libaoEntity.getId(), true, new PostLibaoListener() { @Override public void postSucced(Object response) { @@ -454,7 +456,7 @@ public class LibaoUtils { } if (TextUtils.isEmpty(libaoCode)) { - Utils.toast(libaoBtn.getContext(), "领取异常"); + Utils.toast(context, "领取异常"); return; } libaoEntity.setAvailable(libaoEntity.getAvailable() - 1); @@ -462,7 +464,7 @@ public class LibaoUtils { libaoEntity.setStatus("linged"); LibaoInfo libaoInfo = LibaoInfo.createLibaoInfo(libaoEntity); - libaoInfo.setTime(Utils.getTime(libaoBtn.getContext())); + libaoInfo.setTime(Utils.getTime(context)); libaoInfo.setCode(libaoCode); libaoDao.add(libaoInfo); @@ -472,19 +474,19 @@ public class LibaoUtils { adapter.notifyDataSetChanged(); final String finalLibaoCode = libaoCode; - DialogUtils.showWarningDialog(libaoBtn.getContext(), "领取成功", Html.fromHtml("礼包码:" + DialogUtils.showWarningDialog(context, "领取成功", Html.fromHtml("礼包码:" + "" + libaoCode + "" + "
请尽快使用,礼包码将于60分钟后进入淘号池") , "关闭", " 复制礼包码" , new DialogUtils.ConfirmListener() { @Override public void onConfirm() { - copyLink(finalLibaoCode, libaoBtn.getContext()); + copyLink(finalLibaoCode, context); if (isInstallRequired) { libaoBtn.postDelayed(new Runnable() { @Override public void run() { - lunningAppDialog(libaoBtn.getContext() + lunningAppDialog(context , Html.fromHtml("礼包码:" + "" + finalLibaoCode + "" + " 复制成功" + "
请尽快进入游戏兑换"), libaoEntity); @@ -508,11 +510,11 @@ public class LibaoUtils { String detail = errorJson.getString("detail"); if ("coming".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "礼包领取时间未开始"); + Utils.toast(context, "礼包领取时间未开始"); } else if ("finish".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "礼包领取时间已结束"); + Utils.toast(context, "礼包领取时间已结束"); } else if ("fetched".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "你已领过这个礼包了"); + Utils.toast(context, "你已领过这个礼包了"); int countdown = 0; if (errorJson.toString().contains("countdown")) { countdown = errorJson.getInt("countdown"); @@ -520,7 +522,7 @@ public class LibaoUtils { if (countdown > 0 && countdown < 60 * 10) { EventBus.getDefault().post(new EBUISwitch(REFRESH_LIBAO_TIME, countdown)); } else { - getCunHaoXiang(libaoBtn.getContext(), true); + getCunHaoXiang(context, true); } int[][] states = new int[2][]; @@ -535,38 +537,33 @@ public class LibaoUtils { libaoEntity.setStatus("linged"); } else if ("try tao".equals(detail) || "used up".equals(detail)) { - DialogUtils.showHintDialog(libaoBtn.getContext(), "礼包已领光" + DialogUtils.showHintDialog(context, "礼包已领光" , "手速不够快,礼包已经被抢光了,十分抱歉", "知道了"); libaoEntity.setStatus("used_up"); - initLibaoBtn(activity, libaoBtn, libaoEntity, libaoDao, isInstallRequired, adapter, entrance); + initLibaoBtn(context, libaoBtn, libaoEntity, libaoDao, isInstallRequired, adapter, entrance); } else if ("maintaining".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "网络状态异常,请稍后再试"); + Utils.toast(context, "网络状态异常,请稍后再试"); } else { - Utils.toast(libaoBtn.getContext(), "操作失败"); + Utils.toast(context, "操作失败"); } } catch (Exception ex) { ex.printStackTrace(); - Utils.toast(libaoBtn.getContext(), "礼包处理异常"); + Utils.toast(context, "礼包处理异常"); } return; } else if (exception.code() == 412) { // 需要验证 - - if (BuildConfig.DEBUG) { - Log.e("LIBAO", "context? " + libaoBtn.getContext() + activity); - } - - GeetestUtils.getInstance().showDialog(activity, new GeetestListener() { + GeetestUtils.getInstance().showDialog(context, new GeetestListener() { @Override public void onVerified(String captcha) { - libaoLing(activity, libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, captcha, entrance); + libaoLing(context, libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, captcha, entrance); } }); return; } } - Utils.toast(libaoBtn.getContext(), "发生异常"); + Utils.toast(context, "发生异常"); } }, captchaCode); } @@ -612,8 +609,8 @@ public class LibaoUtils { // 合并List 和 List 并检查重复领取的礼包 - public static void initLiBaoEntity(LibaoDao libaoDao, List statusList - , List mLibaoList, Context mContext) { + public static void initLiBaoEntity(LibaoDao libaoDao, List statusList, + List libaoEntities, Context mContext) { for (LibaoInfo libaoInfo : libaoDao.getAll()) { for (LibaoStatusEntity libaoStatusEntity : statusList) { @@ -635,7 +632,7 @@ public class LibaoUtils { } } - for (LibaoEntity libaoEntity : mLibaoList) { + for (LibaoEntity libaoEntity : libaoEntities) { for (LibaoStatusEntity libaoStatusEntity : statusList) { if (libaoEntity.getId().equals(libaoStatusEntity.getId())) { libaoEntity.setAvailable(libaoStatusEntity.getAvailable()); 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 6dcedf45fa..d8212b0b82 100644 --- a/app/src/main/java/com/gh/common/view/DownloadDialog.java +++ b/app/src/main/java/com/gh/common/view/DownloadDialog.java @@ -32,7 +32,7 @@ import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBDownloadStatus; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBReuse; -import com.gh.listener.OnCollectionCallBackListener; +import com.gh.gamecenter.adapter.OnCollectionCallBackListener; import com.gh.gamecenter.manager.PackageManager; import org.greenrobot.eventbus.EventBus; diff --git a/app/src/main/java/com/gh/gamecenter/AboutActivity.java b/app/src/main/java/com/gh/gamecenter/AboutActivity.java index ccde701edd..24e7ab5d53 100644 --- a/app/src/main/java/com/gh/gamecenter/AboutActivity.java +++ b/app/src/main/java/com/gh/gamecenter/AboutActivity.java @@ -38,7 +38,7 @@ public class AboutActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_about)); + initTitle(getString(R.string.title_about)); ((TextView) findViewById(R.id.about_tv_version)).setText("V" + PackageUtils.getVersionName(this)); diff --git a/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java b/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java index b4545c33bb..b40fc36006 100644 --- a/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java @@ -147,7 +147,7 @@ public class ChooseReceiverActivity extends BaseActivity implements View.OnClick @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_choose_activity)); + initTitle(getString(R.string.title_choose_activity)); mTitleTv.setTextColor(Color.WHITE); mBackIv.setImageResource(R.drawable.reuse_kc_back); diff --git a/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java b/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java index 7e58482310..dabbf5270c 100644 --- a/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java @@ -68,11 +68,11 @@ public class CleanApkActivity extends BaseActivity implements CleanApkAdapter.On @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_clean_apk)); + initTitle(getString(R.string.title_clean_apk)); mNodataSkipLl.setVisibility(View.GONE); - mAdapter = new CleanApkAdapter(this, mApkDeleteBtn, mApkSelectAll); + mAdapter = new CleanApkAdapter(this, this, mApkDeleteBtn, mApkSelectAll); mApkRv.setLayoutManager(new LinearLayoutManager(this)); mApkRv.addItemDecoration(new VerticalItemDecoration(this, 8, true)); mApkRv.setAdapter(mAdapter); diff --git a/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java b/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java index 7a97fcc007..ae9a5c039e 100644 --- a/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java @@ -37,7 +37,7 @@ public class CommentDetailActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_comment_detail)); + initTitle(getString(R.string.title_comment_detail)); String commentId = getIntent().getExtras().getString("commentId"); diff --git a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java index e31a6c4439..a2c0e35f7c 100644 --- a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java @@ -52,7 +52,7 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_concern)); + initTitle(getString(R.string.title_concern)); concernManager = new ConcernManager(getApplicationContext()); diff --git a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java index 0ab0e0efc9..10c2c4e984 100644 --- a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java @@ -73,7 +73,7 @@ public class CropImageActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_crop_image)); + initTitle(getString(R.string.title_crop_image)); sp = getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE); diff --git a/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java b/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java index 5f0be0ed36..99119f8a98 100644 --- a/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java +++ b/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java @@ -17,7 +17,7 @@ import com.gh.base.BaseActivity; import com.gh.common.util.DisplayUtils; import com.gh.common.util.EntranceUtils; import com.gh.download.DownloadManager; -import com.gh.gamecenter.adapter.FragmentAdapter; +import com.gh.base.adapter.FragmentAdapter; import com.gh.gamecenter.download.FileSendFragment; import com.gh.gamecenter.download.GameDownLoadFragment; import com.gh.gamecenter.download.GameUpdateFragment; @@ -108,7 +108,7 @@ public class DownloadManagerActivity extends BaseActivity implements OnClickList protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_downloadmanager)); + initTitle(getString(R.string.title_downloadmanager)); downloadmanager_ll_download.setOnClickListener(this); downloadmanager_ll_update.setOnClickListener(this); diff --git a/app/src/main/java/com/gh/gamecenter/FileReceiverActivity.java b/app/src/main/java/com/gh/gamecenter/FileReceiverActivity.java index 58c18a4335..049c9d906f 100644 --- a/app/src/main/java/com/gh/gamecenter/FileReceiverActivity.java +++ b/app/src/main/java/com/gh/gamecenter/FileReceiverActivity.java @@ -252,7 +252,7 @@ public class FileReceiverActivity extends BaseActivity implements OnReceiverCanc @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_file_receive)); + initTitle(getString(R.string.title_file_receive)); isDestroy = false; diff --git a/app/src/main/java/com/gh/gamecenter/FileSenderActivity.java b/app/src/main/java/com/gh/gamecenter/FileSenderActivity.java index ff515125d3..48c2d1bccf 100644 --- a/app/src/main/java/com/gh/gamecenter/FileSenderActivity.java +++ b/app/src/main/java/com/gh/gamecenter/FileSenderActivity.java @@ -161,7 +161,7 @@ public class FileSenderActivity extends BaseActivity implements FileSenderAdapte @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_file_sender)); + initTitle(getString(R.string.title_file_sender)); mFileInfos = (List) AppController.get("FileInfo", false); diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java index b1aba40f95..d935c354cc 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java @@ -39,7 +39,7 @@ import com.gh.common.view.NoScrollableViewPager; import com.gh.download.DataWatcher; import com.gh.download.DownloadEntity; import com.gh.download.DownloadManager; -import com.gh.gamecenter.adapter.FragmentAdapter; +import com.gh.base.adapter.FragmentAdapter; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameDetailEntity; import com.gh.gamecenter.entity.GameEntity; @@ -186,7 +186,7 @@ public class GameDetailActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(""); + initTitle(""); mViewPager.setScrollable(true); diff --git a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java index 77aa27739c..a8f2545060 100644 --- a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java @@ -85,7 +85,7 @@ public class GameNewsActivity extends BaseActivity implements View.OnClickListen ivSearch.setVisibility(View.GONE); String gameName = getIntent().getStringExtra("gameName"); - init(gameName); + initTitle(gameName); mNoDataTv.setText("暂无内容"); diff --git a/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java b/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java index 599679c686..0dca49b2fc 100644 --- a/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java +++ b/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java @@ -109,7 +109,7 @@ public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.On @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_kaifu)); + initTitle(getString(R.string.title_kaifu)); kaifuType = "全部"; diff --git a/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java b/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java index 92a729564d..6910e59311 100644 --- a/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java +++ b/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java @@ -69,7 +69,7 @@ public class KcSelectGameActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_select_game)); + initTitle(getString(R.string.title_select_game)); if (getIntent() != null && getIntent().getExtras() != null) { mIsConn = getIntent().getExtras().getBoolean("isConn"); diff --git a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java index 56186e41a6..8392e676ef 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java @@ -12,7 +12,7 @@ import android.widget.TextView; import com.gh.base.BaseActivity; import com.gh.common.util.DisplayUtils; import com.gh.common.view.NoScrollableViewPager; -import com.gh.gamecenter.adapter.FragmentAdapter; +import com.gh.base.adapter.FragmentAdapter; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; import com.gh.gamecenter.libao.Libao1Fragment; @@ -64,7 +64,7 @@ public class LibaoActivity extends BaseActivity implements View.OnClickListener, @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init("礼包中心"); + initTitle("礼包中心"); mZuixinTv.setSelected(true); diff --git a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java index 9deb94a8d8..c672968cfa 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java @@ -1,5 +1,6 @@ package com.gh.gamecenter; +import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; @@ -8,9 +9,7 @@ import android.support.annotation.NonNull; import android.support.v7.widget.LinearLayoutManager; import android.text.TextUtils; import android.view.View; -import android.widget.TextView; -import com.gh.base.AppController; import com.gh.base.BaseDetailActivity; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.EntranceUtils; @@ -76,17 +75,17 @@ public class LibaoDetailActivity extends BaseDetailActivity implements LibaoDeta }; @NonNull - public static Intent getLibaoDetailIntent(LibaoEntity libaoEntity, TextView libaoBtn, String entrance) { - AppController.put("libaoEntity", libaoEntity); - Intent intent = new Intent(libaoBtn.getContext(), LibaoDetailActivity.class); + public static Intent getIntent(Context context, LibaoEntity libaoEntity, String entrance) { + Intent intent = new Intent(context, LibaoDetailActivity.class); intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance); + intent.putExtra(LibaoDetailActivity.class.getSimpleName(), libaoEntity); return intent; } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - AppController.put("libaoEntity", mAdapter.getLibaoEntity()); + outState.putParcelable(LibaoDetailActivity.class.getSimpleName(), mAdapter.getLibaoEntity()); } @Override @@ -94,15 +93,18 @@ public class LibaoDetailActivity extends BaseDetailActivity implements LibaoDeta super.onCreate(savedInstanceState); actionbar_tv_title.setText("礼包详情"); - mLibaoEntity = (LibaoEntity) AppController.get("libaoEntity", true); + if (savedInstanceState != null) { + mLibaoEntity = savedInstanceState.getParcelable(LibaoDetailActivity.class.getSimpleName()); + } else { + mLibaoEntity = getIntent().getParcelableExtra(LibaoDetailActivity.class.getSimpleName()); + } name = "礼包详情"; iv_share.setVisibility(View.GONE); mIsScroll = true; - mAdapter = new LibaoDetailAdapter(this, this, this, - mLibaoEntity, detail_tv_download, mEntrance); + mAdapter = new LibaoDetailAdapter(this, this, this, mLibaoEntity, detail_tv_download, mEntrance); detail_rv_show.setLayoutManager(new LinearLayoutManager(this) { @Override public boolean canScrollVertically() { diff --git a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java index a862856424..dcaaf4d836 100644 --- a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java @@ -34,6 +34,7 @@ import com.gh.common.util.TimestampUtils; import com.gh.common.util.TokenUtils; import com.gh.common.util.Utils; import com.gh.gamecenter.adapter.MessageDetailAdapter; +import com.gh.gamecenter.adapter.OnCommentCallBackListener; import com.gh.gamecenter.db.CommentDao; import com.gh.gamecenter.db.info.CommentInfo; import com.gh.gamecenter.entity.CommentEntity; @@ -63,7 +64,7 @@ import rx.schedulers.Schedulers; * Created by khy on 2016/11/8. * 消息详情界面 */ -public class MessageDetailActivity extends BaseActivity implements MessageDetailAdapter.OnCommentCallBackListener { +public class MessageDetailActivity extends BaseActivity implements OnCommentCallBackListener { @BindView(R.id.message_detail_rv) RecyclerView mMessageDetailRv; @@ -169,13 +170,13 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail mConcernEntity = null; } - init(getString(R.string.title_message_detail)); + initTitle(getString(R.string.title_message_detail)); sp = getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE); mCommentDao = new CommentDao(this); - adapter = new MessageDetailAdapter(this, mCommentDao, mMessageDetailRv, mConcernEntity, mEntrance); + adapter = new MessageDetailAdapter(this, this, mCommentDao, mMessageDetailRv, mConcernEntity, mEntrance); mLayoutManager = new LinearLayoutManager(this); mMessageDetailRv.setLayoutManager(mLayoutManager); mMessageDetailRv.setAdapter(adapter); @@ -538,7 +539,7 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail } @Override - public void showSoftInput(CommentEntity entity) { + public void onCommentCallback(CommentEntity entity) { mCommentEntity = entity; setSoftInput(true); } diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java index d05b1c4b06..2f87698189 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java @@ -207,7 +207,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(""); + initTitle(""); // 添加分享图标 iv_share = new ImageView(this); diff --git a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java index e3ce0863cf..da10a1a96b 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java @@ -88,7 +88,7 @@ public class NewsSearchActivity extends BaseActivity { searchKey = intent.getExtras().getString("searchKey"); gameId = intent.getExtras().getString("gameId"); - init(gameName); + initTitle(gameName); DisplayMetrics outMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(outMetrics); diff --git a/app/src/main/java/com/gh/gamecenter/PluginActivity.java b/app/src/main/java/com/gh/gamecenter/PluginActivity.java index 439b10a4e1..ec582e4b7e 100644 --- a/app/src/main/java/com/gh/gamecenter/PluginActivity.java +++ b/app/src/main/java/com/gh/gamecenter/PluginActivity.java @@ -72,7 +72,7 @@ public class PluginActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_plugin)); + initTitle(getString(R.string.title_plugin)); reuse_no_connection.setOnClickListener(new View.OnClickListener() { @Override diff --git a/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java b/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java index 2254bfadf8..0f809433b0 100644 --- a/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java @@ -119,7 +119,7 @@ public class ReceiverWaitingActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_receive_waiting)); + initTitle(getString(R.string.title_receive_waiting)); mTitleTv.setTextColor(Color.WHITE); mBackIv.setImageResource(R.drawable.reuse_kc_back); diff --git a/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java b/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java index a1d328b4ce..e1c4cb78be 100644 --- a/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java @@ -80,7 +80,7 @@ public class SelectUserIconActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_select_user_icon)); + initTitle(getString(R.string.title_select_user_icon)); sp = getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE); diff --git a/app/src/main/java/com/gh/gamecenter/SettingActivity.java b/app/src/main/java/com/gh/gamecenter/SettingActivity.java index 68a08e89a9..9b24c26396 100644 --- a/app/src/main/java/com/gh/gamecenter/SettingActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SettingActivity.java @@ -80,7 +80,7 @@ public class SettingActivity extends BaseActivity implements OnClickListener { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_settings)); + initTitle(getString(R.string.title_settings)); setting_tv_cache.setText(getCacheSize()); diff --git a/app/src/main/java/com/gh/gamecenter/ShareCardActivity.java b/app/src/main/java/com/gh/gamecenter/ShareCardActivity.java index 74965fd743..cd0063db77 100644 --- a/app/src/main/java/com/gh/gamecenter/ShareCardActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ShareCardActivity.java @@ -78,7 +78,7 @@ public class ShareCardActivity extends BaseActivity { picName = "shareImg.jpg"; - init(getString(R.string.title_share_card)); + initTitle(getString(R.string.title_share_card)); //修改沉浸栏以及ActionBar 颜色 mActionbar.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), android.R.color.black)); diff --git a/app/src/main/java/com/gh/gamecenter/ShareCardPicActivity.java b/app/src/main/java/com/gh/gamecenter/ShareCardPicActivity.java index af6df1b05c..d41a24b9e5 100644 --- a/app/src/main/java/com/gh/gamecenter/ShareCardPicActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ShareCardPicActivity.java @@ -1,5 +1,6 @@ package com.gh.gamecenter; +import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Canvas; @@ -22,9 +23,12 @@ import com.facebook.drawee.interfaces.DraweeController; import com.facebook.drawee.view.SimpleDraweeView; import com.facebook.imagepipeline.image.ImageInfo; import com.gh.base.BaseActivity; +import com.gh.common.util.EntranceUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.MessageShareUtils; import com.gh.common.util.QRCodeUtils; +import com.gh.common.util.StringUtils; +import com.gh.gamecenter.entity.ConcernEntity; import com.gh.gamecenter.retrofit.ObservableUtil; import com.readystatesoftware.systembartint.SystemBarTintManager; import com.tencent.tauth.Tencent; @@ -33,6 +37,7 @@ import java.io.File; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; +import java.util.ArrayList; import java.util.List; import java.util.Vector; import java.util.concurrent.CountDownLatch; @@ -81,6 +86,31 @@ public class ShareCardPicActivity extends BaseActivity { private String newsId; + public static void startShareCardPicActivity(Context context, ConcernEntity concernEntity, String entrance) { + + final String shareContent; + if (concernEntity.getBrief() != null) { + shareContent = concernEntity.getBrief(); + } else { + shareContent = concernEntity.getContent(); + } + + Intent intent = new Intent(context, ShareCardPicActivity.class); + Bundle bundle = new Bundle(); + bundle.putString("gameName", concernEntity.getGameName()); + bundle.putString("gameIconUrl", concernEntity.getGameIcon()); + bundle.putString("shareContent", shareContent); + if (concernEntity.getLink() == null) { + bundle.putString("newsId", concernEntity.getId()); + } + if (concernEntity.getImg() != null && concernEntity.getImg().size() > 0) { + bundle.putStringArrayList("shareArrImg", (ArrayList) concernEntity.getImg()); + } + intent.putExtras(bundle); + intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(entrance, "+(消息详情[", concernEntity.getGameName(), "])")); + context.startActivity(intent); + } + @Override protected int getLayoutId() { return R.layout.activity_sharecard_pic; @@ -110,7 +140,7 @@ public class ShareCardPicActivity extends BaseActivity { picName = "shareImgPic.jpg"; currentImgPosition = 0; - init(getString(R.string.title_share_card_pic)); + initTitle(getString(R.string.title_share_card_pic)); shareArrImg = new Vector<>(); shareArrImg.addAll(arrImg); diff --git a/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java b/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java index fb88647426..7f4605d819 100644 --- a/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java @@ -3,7 +3,6 @@ package com.gh.gamecenter; import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; -import android.graphics.BitmapFactory; import android.os.Bundle; import android.text.Html; import android.widget.Button; @@ -56,7 +55,7 @@ public class ShareGhActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_share_gh)); + initTitle(getString(R.string.title_share_gh)); ButterKnife.bind(this); mGhAddress.setText(Html.fromHtml("" + "www.ghzhushou.com" + "")); diff --git a/app/src/main/java/com/gh/gamecenter/ShareGhWfifActivity.java b/app/src/main/java/com/gh/gamecenter/ShareGhWfifActivity.java index 94853d51aa..395f4bac36 100644 --- a/app/src/main/java/com/gh/gamecenter/ShareGhWfifActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ShareGhWfifActivity.java @@ -135,7 +135,7 @@ public class ShareGhWfifActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_share_via_wifi)); + initTitle(getString(R.string.title_share_via_wifi)); ButterKnife.bind(this); mUriHandlers = new ArrayList<>(); diff --git a/app/src/main/java/com/gh/gamecenter/SubjectActivity.java b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java index fceaacbd08..d8ba806841 100644 --- a/app/src/main/java/com/gh/gamecenter/SubjectActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java @@ -86,7 +86,7 @@ public class SubjectActivity extends BaseActivity { mId = mBundle.getString("id"); mName = mBundle.getString("name"); - init(mName); + initTitle(mName); if (TextUtils.isEmpty(mName) && !TextUtils.isEmpty(mId)) { getSubjectName(mId); diff --git a/app/src/main/java/com/gh/gamecenter/SuggestSelectActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestSelectActivity.java index 184fad0fb8..72461b69a7 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestSelectActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestSelectActivity.java @@ -30,7 +30,7 @@ public class SuggestSelectActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_suggest_select)); + initTitle(getString(R.string.title_suggest_select)); } @OnClick({R.id.suggest_type1, R.id.suggest_type2, R.id.suggest_type3, R.id.suggest_type4, diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java index 7f1bd70f05..ea045d89a0 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java @@ -167,7 +167,7 @@ public class SuggestionActivity extends BaseActivity implements SuggestTypeAdapt @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_suggestion)); + initTitle(getString(R.string.title_suggestion)); curType = getIntent().getExtras().getInt("suggestType"); String suggestContent = getIntent().getExtras().getString("content"); diff --git a/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java b/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java index 607ddd043c..f80fac7dec 100644 --- a/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java @@ -60,7 +60,7 @@ public class ToolBoxActivity extends BaseActivity implements SwipeRefreshLayout. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init("光环工具箱"); + initTitle("光环工具箱"); mRefresh.setColorSchemeResources(R.color.theme); mRefresh.setOnRefreshListener(this); diff --git a/app/src/main/java/com/gh/gamecenter/VoteActivity.java b/app/src/main/java/com/gh/gamecenter/VoteActivity.java index 3c4cf950ac..96083d778f 100644 --- a/app/src/main/java/com/gh/gamecenter/VoteActivity.java +++ b/app/src/main/java/com/gh/gamecenter/VoteActivity.java @@ -90,7 +90,7 @@ public class VoteActivity extends BaseActivity implements SwipeRefreshLayout.OnR mVoteDao = new VersionVoteDao(this); - init(getString(R.string.title_vote_formatable, gameName)); + initTitle(getString(R.string.title_vote_formatable, gameName)); layoutManager = new LinearLayoutManager(this); mVoteRv.setLayoutManager(layoutManager); diff --git a/app/src/main/java/com/gh/gamecenter/WebActivity.java b/app/src/main/java/com/gh/gamecenter/WebActivity.java index 63c0a7a8a7..41697461cd 100644 --- a/app/src/main/java/com/gh/gamecenter/WebActivity.java +++ b/app/src/main/java/com/gh/gamecenter/WebActivity.java @@ -121,7 +121,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener{ } - init(webTitle); + initTitle(webTitle); webView.loadUrl(webUrl); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java index ee94d376c3..191f3d0c06 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java @@ -1,12 +1,12 @@ package com.gh.gamecenter.adapter; +import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Environment; -import android.os.Handler; import android.support.v4.content.ContextCompat; import android.support.v4.util.ArrayMap; import android.view.View; @@ -14,14 +14,15 @@ import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.TextView; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.BitmapUtils; import com.gh.common.util.PackageUtils; +import com.gh.common.util.RuntimeUtils; import com.gh.common.util.StringUtils; -import com.gh.gamecenter.CleanApkActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.KcSelectGameViewHolder; import com.gh.gamecenter.entity.InstallGameEntity; +import com.gh.gamecenter.retrofit.Response; import java.io.File; import java.text.DecimalFormat; @@ -29,7 +30,6 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; -import com.gh.gamecenter.retrofit.Response; import rx.Observable; import rx.android.schedulers.AndroidSchedulers; @@ -52,15 +52,12 @@ public class CleanApkAdapter extends BaseRecyclerAdapter private boolean mIsScanOver; - private Handler mHandler = new Handler(); + public CleanApkAdapter(Context context, OnScanListener listener, TextView apkDeleteBtn, CheckBox apkSelectAll) { + super(context); + mApkDeleteBtn = apkDeleteBtn; + mApkSelectAll = apkSelectAll; - public CleanApkAdapter(CleanApkActivity activity, TextView apkDeleteBtn, CheckBox apkSelectAll) { - super(activity); - this.mContext = activity; - this.mApkDeleteBtn = apkDeleteBtn; - this.mApkSelectAll = apkSelectAll; - - mScanListener = activity; + mScanListener = listener; mApkList = new ArrayList<>(); mSelectPosition = new ArrayMap<>(); @@ -137,7 +134,7 @@ public class CleanApkAdapter extends BaseRecyclerAdapter mApkList.add(apkEntity); mSelectPosition.put((mApkList.size() - 1), false); - mHandler.post(new Runnable() { + RuntimeUtils.getInstance().runOnUiThread(new Runnable() { @Override public void run() { notifyItemChanged((mApkList.size() - 1)); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java index 51ba305969..1afee4c8ca 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java @@ -9,7 +9,7 @@ import android.support.v7.widget.RecyclerView.ViewHolder; import android.view.View; import android.view.ViewGroup; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.Config; import com.gh.common.constant.ItemViewType; import com.gh.common.util.CommentUtils; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java index 8b783e6ca2..591ecdd559 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java @@ -4,7 +4,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; @@ -17,7 +17,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.ConcernViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.GameEntity; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -38,7 +38,7 @@ import rx.schedulers.Schedulers; */ public class ConcernAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mListener; + private OnRequestCallBackListener mListener; private List mConcernList; private List mConcernGameList; @@ -47,7 +47,7 @@ public class ConcernAdapter extends BaseRecyclerAdapter { private String mEntrance; - public ConcernAdapter(ConcernActivity context, OnCallBackListener listener, String entrance) { + public ConcernAdapter(ConcernActivity context, OnRequestCallBackListener listener, String entrance) { super(context); mListener = listener; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java index a82a839895..78ea0537be 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java @@ -5,7 +5,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; @@ -16,7 +16,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.ConcernViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.GameEntity; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -35,7 +35,7 @@ import rx.schedulers.Schedulers; */ public class ConcernRecommendAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mListener; + private OnRequestCallBackListener mListener; private List mGameList; private List mRecommendGameList; @@ -46,7 +46,7 @@ public class ConcernRecommendAdapter extends BaseRecyclerAdapter { private List mTypeList; - private String mNewsType; - private int mCurrentPosition; - public GameNewsTypeListAdapter(Context context, List tList, String type) { super(context); - mTypeList = tList; - mNewsType = type; - mCurrentPosition = 0; } @Override @@ -79,7 +73,6 @@ public class GameNewsTypeListAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mOnCallBackListener; + private OnRequestCallBackListener mOnRequestCallBackListener; private OnScrollToKaiFuIndexListener mOnScrollToKaiFuIndexListener; private List mSubjectList; @@ -76,10 +76,10 @@ public class KaiFuAdapter extends BaseRecyclerAdapter { private boolean mIsLoadedBottom; private boolean mIsLoadedTop; - public KaiFuAdapter(KaiFuActivity context, OnCallBackListener callBackListener, + public KaiFuAdapter(KaiFuActivity context, OnRequestCallBackListener callBackListener, OnScrollToKaiFuIndexListener scrollToKaiFuIndexListener, String kaifuType) { super(context); - mOnCallBackListener = callBackListener; + mOnRequestCallBackListener = callBackListener; mKaifuType = kaifuType; mOnScrollToKaiFuIndexListener = scrollToKaiFuIndexListener; @@ -118,14 +118,14 @@ public class KaiFuAdapter extends BaseRecyclerAdapter { e.printStackTrace(); } mInitOffset = offset; - mOnCallBackListener.loadDone(offset); + mOnRequestCallBackListener.loadDone(offset); initListBottom(offset); } @Override public void onFailure(HttpException e) { super.onFailure(e); - mOnCallBackListener.loadError(); + mOnRequestCallBackListener.loadError(); } }); @@ -196,8 +196,8 @@ public class KaiFuAdapter extends BaseRecyclerAdapter { @Override public void onFailure(HttpException e) { if (offset == mInitOffset) { - if (mOnCallBackListener != null) { - mOnCallBackListener.loadError(); + if (mOnRequestCallBackListener != null) { + mOnRequestCallBackListener.loadError(); } } else { Toast.makeText(mContext, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show(); @@ -336,11 +336,11 @@ public class KaiFuAdapter extends BaseRecyclerAdapter { initLocationMap(); - if (mOnCallBackListener != null) { + if (mOnRequestCallBackListener != null) { if (mSubjectList.size() == 0) { - mOnCallBackListener.loadEmpty(); + mOnRequestCallBackListener.loadEmpty(); } else { - mOnCallBackListener.loadDone(); + mOnRequestCallBackListener.loadDone(); } } @@ -354,8 +354,8 @@ public class KaiFuAdapter extends BaseRecyclerAdapter { @Override public void onFailure(HttpException e) { if (offset == mInitOffset) { - if (mOnCallBackListener != null) { - mOnCallBackListener.loadError(); + if (mOnRequestCallBackListener != null) { + mOnRequestCallBackListener.loadError(); } } else { Toast.makeText(mContext, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show(); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/KaiFuDialogAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/KaiFuDialogAdapter.java index 84806012cb..001556bad9 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/KaiFuDialogAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/KaiFuDialogAdapter.java @@ -11,9 +11,10 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; +import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; import com.gh.gamecenter.adapter.viewholder.StrategyDialogViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.manager.ConcernManager; @@ -57,7 +58,7 @@ public class KaiFuDialogAdapter extends BaseRecyclerAdapter { textView.setText("以下是已关注的游戏"); textView.setBackgroundColor(Color.parseColor("#ededed")); textView.setGravity(Gravity.CENTER); - return new TitleViewHolder(textView); + return new ReuseViewHolder(textView); } else { View view = mLayoutInflater.inflate(R.layout.dialog_strategy_item, parent, false); return new StrategyDialogViewHolder(view); @@ -119,10 +120,4 @@ public class KaiFuDialogAdapter extends BaseRecyclerAdapter { void selectPosition(int position, String tag, String gameName); } - public class TitleViewHolder extends RecyclerView.ViewHolder { - - public TitleViewHolder(View itemView) { - super(itemView); - } - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java index be33cb6b56..6c3fb98c0f 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java @@ -19,7 +19,7 @@ import android.widget.ProgressBar; import android.widget.TextView; import com.gh.base.AppController; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.ItemViewType; import com.gh.common.util.BitmapUtils; import com.gh.common.util.DisplayUtils; @@ -28,6 +28,7 @@ import com.gh.common.util.Utils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.KcSelectGameViewHolder; +import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.InstallGameEntity; import com.gh.gamecenter.kuaichuan.FileInfo; @@ -184,7 +185,7 @@ public class KcSelectGameAdapter extends BaseRecyclerAdapter { textView.setTextColor(ContextCompat.getColor(mContext, R.color.title)); textView.setBackgroundColor(Color.WHITE); textView.setText("已安装的应用(" + mApkList.size() + ")"); - return new TitleViewHolder(textView); + return new ReuseViewHolder(textView); } return null; } @@ -399,10 +400,4 @@ public class KcSelectGameAdapter extends BaseRecyclerAdapter { return mApkList.size(); } - public class TitleViewHolder extends RecyclerView.ViewHolder { - - public TitleViewHolder(View itemView) { - super(itemView); - } - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/LiBaoCodeAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/LiBaoCodeAdapter.java index 3bee5eed88..5574c8d111 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/LiBaoCodeAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/LiBaoCodeAdapter.java @@ -6,7 +6,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.LibaoUtils; import com.gh.common.util.StringUtils; import com.gh.gamecenter.R; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java index 729e4c7a15..4bf90b7d15 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java @@ -1,6 +1,5 @@ package com.gh.gamecenter.adapter; -import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.support.v7.widget.LinearLayoutManager; @@ -15,7 +14,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.OnRequestCallBackListener; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.LibaoUtils; @@ -24,14 +24,13 @@ import com.gh.common.util.StringUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailNewsViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoDetailTopViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.db.info.LibaoInfo; import com.gh.gamecenter.entity.LibaoDetailEntity; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; -import com.gh.gamecenter.adapter.viewholder.GameDetailNewsViewHolder; -import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -47,7 +46,7 @@ import rx.schedulers.Schedulers; */ public class LibaoDetailAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mOnCallBackListener; + private OnRequestCallBackListener mOnRequestCallBackListener; private OnCodeScrollListener mOnCodeScrollListener; private TextView mDownloadTv; @@ -61,11 +60,11 @@ public class LibaoDetailAdapter extends BaseRecyclerAdapter { private String mEntrance; - public LibaoDetailAdapter(Context context, OnCallBackListener onCallBackListener, + public LibaoDetailAdapter(Context context, OnRequestCallBackListener onRequestCallBackListener, OnCodeScrollListener onCodeScrollListener, LibaoEntity libaoEntity, TextView tvDownload, String entrance) { super(context); - mOnCallBackListener = onCallBackListener; + mOnRequestCallBackListener = onRequestCallBackListener; mOnCodeScrollListener = onCodeScrollListener; mLibaoEntity = libaoEntity; mDownloadTv = tvDownload; @@ -84,13 +83,13 @@ public class LibaoDetailAdapter extends BaseRecyclerAdapter { @Override public void onResponse(LibaoDetailEntity response) { mLibaoDetailEntity = response; - mOnCallBackListener.loadDone(); + mOnRequestCallBackListener.loadDone(); notifyDataSetChanged(); } @Override public void onFailure(HttpException e) { - mOnCallBackListener.loadEmpty(); + mOnRequestCallBackListener.loadEmpty(); } }); } @@ -194,11 +193,9 @@ public class LibaoDetailAdapter extends BaseRecyclerAdapter { } if (libaoInfo.getLibaoId().equals(mLibaoEntity.getId())) { - if (mContext instanceof Activity) { - LibaoUtils.initLibaoBtn((Activity) mContext, holder.libaoCopyBtn, mLibaoEntity, mLibaoDao, - mLibaoDetailEntity.getInstallRequired(), this, - StringUtils.buildString(mEntrance, "+(礼包详情[", mLibaoEntity.getName(), "])")); - } + LibaoUtils.initLibaoBtn(mContext, holder.libaoCopyBtn, mLibaoEntity, mLibaoDao, + mLibaoDetailEntity.getInstallRequired(), this, + StringUtils.buildString(mEntrance, "+(礼包详情[", mLibaoEntity.getName(), "])")); // holder.libaoCopyBtn.setBackgroundResource(R.drawable.textview_blue_style); // holder.libaoCopyBtn.setTextColor(Color.WHITE); @@ -271,11 +268,9 @@ public class LibaoDetailAdapter extends BaseRecyclerAdapter { holder.libaoDes.setText(content); if (mLibaoEntity.getStatus() != null && mLibaoDetailEntity != null) { - if (mContext instanceof Activity) { - LibaoUtils.initLibaoBtn((Activity) mContext, holder.libaoCopyBtn, mLibaoEntity, mLibaoDao, - mLibaoDetailEntity.getInstallRequired(), this, - StringUtils.buildString(mEntrance, "+(礼包详情[", mLibaoEntity.getName(), "])")); - } + LibaoUtils.initLibaoBtn(mContext, holder.libaoCopyBtn, mLibaoEntity, mLibaoDao, + mLibaoDetailEntity.getInstallRequired(), this, + StringUtils.buildString(mEntrance, "+(礼包详情[", mLibaoEntity.getName(), "])")); } // 判断按钮状态是否为空(礼包详情进入),重新获取 diff --git a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java index da3be2d99d..491646d0cd 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; -import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; @@ -14,7 +13,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.Config; import com.gh.common.util.CommentUtils; import com.gh.common.util.ConcernContentUtils; @@ -31,7 +30,6 @@ import com.gh.common.util.Utils; import com.gh.gamecenter.MessageDetailActivity; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.ShareCardActivity; import com.gh.gamecenter.ShareCardPicActivity; import com.gh.gamecenter.WebActivity; import com.gh.gamecenter.adapter.viewholder.CommentHeadViewHolder; @@ -78,7 +76,7 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { boolean isGetRvHeight = true; // 防止评论时弹出软键盘 影响RecyclerView高度 int rvHeight; private ConcernEntity mConcernEntity; - private OnCommentCallBackListener mCallBackListener; + private OnCommentCallBackListener mOnCommentCallBackListener; private RecyclerView mRecyclerView; private List mHotCommentList; private List mNormalCommentList; @@ -87,18 +85,18 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { private SharedPreferences sp; private String userName; //用户名 private String userIcon; //用户icon - private String entrance; + private String mEntrance; private boolean isOver; private boolean isLoading; private boolean isNetworkError; private boolean isRefreshPosition; - public MessageDetailAdapter(MessageDetailActivity context, CommentDao commentDao, RecyclerView messageDetailRv, - ConcernEntity concernEntity, String entrance) { + public MessageDetailAdapter(MessageDetailActivity context, OnCommentCallBackListener listener, CommentDao commentDao, + RecyclerView messageDetailRv, ConcernEntity concernEntity, String entrance) { super(context); - this.mRecyclerView = messageDetailRv; - this.entrance = entrance; - mCallBackListener = context; + mRecyclerView = messageDetailRv; + mEntrance = entrance; + mOnCommentCallBackListener = listener; mVoteDao = new VoteDao(context); mCommentDao = commentDao; @@ -123,7 +121,9 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { } else if (mConcernEntity != null) { isOver = true; notifyItemChanged(getItemCount() - 1); - mCallBackListener.showSoftInput(null); + if (mOnCommentCallBackListener != null) { + mOnCommentCallBackListener.onCommentCallback(null); + } } } @@ -291,7 +291,7 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { viewHolder.imgLayout.setVisibility(View.VISIBLE); viewHolder.imgLayout.removeAllViews(); ConcernContentUtils.addContentPic(mContext, viewHolder.imgLayout, mConcernEntity.getImg(), - StringUtils.buildString(entrance, "+(消息详情[", mConcernEntity.getGameName(), "])"), + StringUtils.buildString(mEntrance, "+(消息详情[", mConcernEntity.getGameName(), "])"), mContext.getResources().getDisplayMetrics().widthPixels - DisplayUtils.dip2px(mContext, 34)); } @@ -303,38 +303,7 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { viewHolder.share.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - String shareContent; - if (mConcernEntity.getBrief() != null) { - shareContent = mConcernEntity.getBrief(); - } else { - shareContent = mConcernEntity.getContent(); - } - if (mConcernEntity.getImg() != null && mConcernEntity.getImg().size() > 0) { - Intent intent = new Intent(mContext, ShareCardPicActivity.class); - Bundle bundle = new Bundle(); - bundle.putString("gameName", mConcernEntity.getGameName()); - bundle.putString("gameIconUrl", mConcernEntity.getGameIcon()); - bundle.putString("shareContent", shareContent); - if (mConcernEntity.getLink() == null) { - bundle.putString("newsId", mConcernEntity.getId()); - } - bundle.putStringArrayList("shareArrImg", (ArrayList) mConcernEntity.getImg()); - intent.putExtras(bundle); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(entrance, "+(消息详情[", mConcernEntity.getGameName(), "])")); - mContext.startActivity(intent); - } else { - Intent intent = new Intent(mContext, ShareCardActivity.class); - Bundle bundle = new Bundle(); - bundle.putString("gameName", mConcernEntity.getGameName()); - bundle.putString("gameIconUrl", mConcernEntity.getGameIcon()); - bundle.putString("shareContent", shareContent); - if (mConcernEntity.getLink() == null) { - bundle.putString("newsId", mConcernEntity.getId()); - } - intent.putExtras(bundle); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(entrance, "+(消息详情[", mConcernEntity.getGameName(), "])")); - mContext.startActivity(intent); - } + ShareCardPicActivity.startShareCardPicActivity(mContext, mConcernEntity, mEntrance); } }); @@ -355,12 +324,12 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { intent.putExtra("url", mConcernEntity.getLink()); intent.putExtra("gameName", mConcernEntity.getGameName()); intent.putExtra("newsId", mConcernEntity.getId()); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(entrance, "+(消息详情[", mConcernEntity.getGameName(), "])")); + intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(mEntrance, "+(消息详情[", mConcernEntity.getGameName(), "])")); mContext.startActivity(intent); } else { Intent intent = new Intent(mContext, NewsDetailActivity.class); intent.putExtra("newsId", mConcernEntity.getId()); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(entrance, "+(消息详情[", mConcernEntity.getGameName(), "])")); + intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(mEntrance, "+(消息详情[", mConcernEntity.getGameName(), "])")); mContext.startActivity(intent); } } @@ -369,7 +338,9 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { viewHolder.comment.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - mCallBackListener.showSoftInput(null); + if (mOnCommentCallBackListener != null) { + mOnCommentCallBackListener.onCommentCallback(null); + } } }); @@ -533,7 +504,7 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - CommentUtils.showReportDialog(finalCommentEntity, mContext, mCallBackListener, null); + CommentUtils.showReportDialog(finalCommentEntity, mContext, mOnCommentCallBackListener, null); } }); } @@ -677,7 +648,4 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { return isOver; } - public interface OnCommentCallBackListener { - void showSoftInput(CommentEntity entity); - } } diff --git a/app/src/main/java/com/gh/listener/OnCollectionCallBackListener.java b/app/src/main/java/com/gh/gamecenter/adapter/OnCollectionCallBackListener.java similarity index 87% rename from app/src/main/java/com/gh/listener/OnCollectionCallBackListener.java rename to app/src/main/java/com/gh/gamecenter/adapter/OnCollectionCallBackListener.java index fbaeb11690..3d550b0de7 100644 --- a/app/src/main/java/com/gh/listener/OnCollectionCallBackListener.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/OnCollectionCallBackListener.java @@ -1,4 +1,4 @@ -package com.gh.listener; +package com.gh.gamecenter.adapter; import com.gh.gamecenter.entity.GameCollectionEntity; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/OnCommentCallBackListener.java b/app/src/main/java/com/gh/gamecenter/adapter/OnCommentCallBackListener.java new file mode 100644 index 0000000000..1a5b5e2f3c --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/OnCommentCallBackListener.java @@ -0,0 +1,7 @@ +package com.gh.gamecenter.adapter; + +import com.gh.gamecenter.entity.CommentEntity; + +public interface OnCommentCallBackListener { + void onCommentCallback(CommentEntity entity); +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java index a41e185762..fd8eee1c4a 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java @@ -19,7 +19,7 @@ import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.Config; import com.gh.common.util.DataUtils; import com.gh.common.util.DialogUtils; @@ -39,7 +39,6 @@ import com.gh.gamecenter.adapter.viewholder.PlatformViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.CollectionColseEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.listener.OnCollectionCallBackListener; import com.gh.gamecenter.manager.PackageManager; import java.io.File; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/PlatformPagerAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/PlatformPagerAdapter.java index e7ed6806cc..fc19466560 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/PlatformPagerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/PlatformPagerAdapter.java @@ -18,7 +18,6 @@ import com.gh.download.DownloadManager; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.CollectionColseEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.listener.OnCollectionCallBackListener; import java.util.List; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java index 2dc9e0efbf..8a0c1720d8 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java @@ -4,7 +4,7 @@ import android.support.v4.util.ArrayMap; import android.view.View; import android.view.ViewGroup; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; import com.gh.common.util.DownloadItemUtils; @@ -20,7 +20,7 @@ import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.GameUpdateEntity; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.manager.PackageManager; @@ -34,14 +34,14 @@ import java.util.Map; */ public class PluginAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mListener; + private OnRequestCallBackListener mListener; private List mPluginList; private ArrayMap> mLocationMap; private String mEntrance; - public PluginAdapter(PluginActivity context, OnCallBackListener listener, String entrance) { + public PluginAdapter(PluginActivity context, OnRequestCallBackListener listener, String entrance) { super(context); mListener = listener; mEntrance = entrance; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java index a4693fb0fa..9984753955 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java @@ -12,7 +12,7 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.SubjectTypeAdapter.GameTypeViewHolder; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java index a3757900a5..0eca027305 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java @@ -10,7 +10,7 @@ import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; import com.gh.base.AppController; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.EntranceUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.MD5Utils; @@ -24,7 +24,7 @@ import com.gh.gamecenter.adapter.viewholder.LibaoSearchViewHolder; import com.gh.gamecenter.adapter.viewholder.ToolBoxViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.ToolBoxEntity; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.retrofit.ObservableUtil; import com.gh.gamecenter.retrofit.Response; @@ -50,7 +50,7 @@ import static com.gh.gamecenter.R.string.loading; public class ToolBoxRvAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private OnSearchCallBackListener mSearchListener; private List mEntityList; @@ -67,7 +67,7 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { private boolean mLoadKeyOver; private boolean mIsRequestError; // key请求返回409 - public ToolBoxRvAdapter(Context context, OnCallBackListener listener, OnSearchCallBackListener searchListener, + public ToolBoxRvAdapter(Context context, OnRequestCallBackListener listener, OnSearchCallBackListener searchListener, boolean isSearch, String key) { super(context); this.mIsSearch = isSearch; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java index d9a0e7e9ae..dcc9bd0e64 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java @@ -9,14 +9,14 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.VoteViewHolder; import com.gh.gamecenter.db.VersionVoteDao; import com.gh.gamecenter.entity.VersionVoteEntity; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -33,7 +33,7 @@ import rx.schedulers.Schedulers; */ public class VoteAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private OnAddVoteListener mAddVoteListener; @@ -49,11 +49,11 @@ public class VoteAdapter extends BaseRecyclerAdapter { private String mGameId; - public VoteAdapter(Context context, OnCallBackListener onCallBackListener + public VoteAdapter(Context context, OnRequestCallBackListener onRequestCallBackListener , OnAddVoteListener addVoteListener, String gameId, VersionVoteDao voteDao) { super(context); - this.mCallBackListener = onCallBackListener; + this.mCallBackListener = onRequestCallBackListener; this.mAddVoteListener = addVoteListener; this.mGameId = gameId; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameViewHolder.java deleted file mode 100644 index 60b9fd48f0..0000000000 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameViewHolder.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gh.gamecenter.adapter.viewholder; - -import android.view.View; - -import com.gh.base.BaseRecyclerViewHolder; - -/** - * Created by khy on 2017/3/29. - */ -public class GameDetailGameViewHolder extends BaseRecyclerViewHolder { - - public GameDetailGameViewHolder(View itemView) { - super(itemView); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsSearchViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsSearchViewHolder.java index 6853e6ca95..4e110b8598 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsSearchViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsSearchViewHolder.java @@ -1,26 +1,27 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.EditText; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/29. */ -public class GameNewsSearchViewHolder extends RecyclerView.ViewHolder { +public class GameNewsSearchViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.game_news_et_search) public EditText game_news_et_search; + @BindView(R.id.game_news_tv_search) public TextView game_news_tv_search; public GameNewsSearchViewHolder(View itemView) { super(itemView); - game_news_et_search = (EditText) itemView.findViewById(R.id.game_news_et_search); - game_news_tv_search = (TextView) itemView.findViewById(R.id.game_news_tv_search); - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeListViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeListViewHolder.java index a73ba2653d..39af1b764b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeListViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeListViewHolder.java @@ -3,20 +3,21 @@ package com.gh.gamecenter.adapter.viewholder; import android.support.v7.widget.RecyclerView; import android.view.View; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/29. */ -public class GameNewsTypeListViewHolder extends RecyclerView.ViewHolder { +public class GameNewsTypeListViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.game_news_type_list) public RecyclerView game_news_type_list; public GameNewsTypeListViewHolder(View itemView) { super(itemView); - - game_news_type_list = (RecyclerView) itemView.findViewById(R.id.game_news_type_list); - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeViewHolder.java index fb83d3a94c..471d3a1604 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeViewHolder.java @@ -1,22 +1,23 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/29. */ -public class GameNewsTypeViewHolder extends RecyclerView.ViewHolder { +public class GameNewsTypeViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.game_news_type_list_tv_type) public TextView game_news_type_list_tv_type; public GameNewsTypeViewHolder(View itemView) { super(itemView); - - game_news_type_list_tv_type = (TextView) itemView.findViewById(R.id.game_news_type_list_tv_type); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameTestViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameTestViewHolder.java index 5b8c3e3f99..7474127536 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameTestViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameTestViewHolder.java @@ -23,12 +23,21 @@ import com.gh.gamecenter.game.GameFragmentAdapter; import java.util.Date; import java.util.List; +import butterknife.BindView; + public class GameTestViewHolder extends GameViewHolder { + @BindView(R.id.home2_test_type) public TextView gameTestType; + + @BindView(R.id.home2_test_time) public TextView gameTestTime; + + @BindView(R.id.home2_game_kaifu_top) public TextView kaifuTop; + + @BindView(R.id.home2_game_kaifu_bottom) public TextView kaifuBottom; public GameTestViewHolder(View itemView) { diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java index d9ae064dff..53c3f0e2f4 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java @@ -1,32 +1,36 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/16. */ -public class GameUpdateViewHolder extends RecyclerView.ViewHolder { +public class GameUpdateViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.gu_item_iv_icon) public SimpleDraweeView gu_item_iv_icon; + + @BindView(R.id.gu_item_tv_name) public TextView gu_item_tv_name; + + @BindView(R.id.gu_item_tv_current) public TextView gu_item_tv_current; + + @BindView(R.id.gu_item_tv_new) public TextView gu_item_tv_new; + + @BindView(R.id.gu_item_btv_update) public TextView gu_item_btv_update; public GameUpdateViewHolder(View itemView) { super(itemView); - - gu_item_iv_icon = (SimpleDraweeView) itemView.findViewById(R.id.gu_item_iv_icon); - gu_item_tv_name = (TextView) itemView.findViewById(R.id.gu_item_tv_name); - gu_item_tv_current = (TextView) itemView.findViewById(R.id.gu_item_tv_current); - gu_item_tv_new = (TextView) itemView.findViewById(R.id.gu_item_tv_new); - gu_item_btv_update = (TextView) itemView.findViewById(R.id.gu_item_btv_update); - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java index bb4b7b4fae..3d44c025f1 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java @@ -1,6 +1,5 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; @@ -8,9 +7,10 @@ import android.widget.ProgressBar; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; -public class GameViewHolder extends RecyclerView.ViewHolder { +public class GameViewHolder extends BaseRecyclerViewHolder { public ImageView gameLibaoIcon; public TextView gameOrder; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java index c8287f40bf..027209efb0 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java @@ -1,22 +1,21 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; import cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager; /** * Created by LGT on 2016/11/14. * viewHolder */ -public class GameViewPagerViewHolder extends RecyclerView.ViewHolder { +public class GameViewPagerViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.view_pager) public AutoScrollViewPager viewPager; @@ -33,8 +32,6 @@ public class GameViewPagerViewHolder extends RecyclerView.ViewHolder { public GameViewPagerViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/KcSelectGameViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/KcSelectGameViewHolder.java index abc117c8f7..19ae0901e9 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/KcSelectGameViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/KcSelectGameViewHolder.java @@ -1,6 +1,5 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.CheckBox; import android.widget.ImageView; @@ -9,15 +8,15 @@ import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/1/20. */ -public class KcSelectGameViewHolder extends RecyclerView.ViewHolder { +public class KcSelectGameViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.select_game_order) public TextView gameOrder; @@ -50,6 +49,5 @@ public class KcSelectGameViewHolder extends RecyclerView.ViewHolder { public KcSelectGameViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LiBaoCodeViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LiBaoCodeViewHolder.java index 9d3cd080f4..b471987dd6 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LiBaoCodeViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LiBaoCodeViewHolder.java @@ -1,22 +1,25 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by khy on 2017/3/23. */ -public class LiBaoCodeViewHolder extends RecyclerView.ViewHolder { +public class LiBaoCodeViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.libao_code_tv) public TextView code; + + @BindView(R.id.libao_copy_btn) public TextView copy; public LiBaoCodeViewHolder(View itemView) { super(itemView); - code = (TextView) itemView.findViewById(R.id.libao_code_tv); - copy = (TextView) itemView.findViewById(R.id.libao_copy_btn); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java index 80b566eb5e..3fb5ce8eac 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java @@ -5,15 +5,15 @@ import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/12/14. */ -public class LibaoDetailTopViewHolder extends RecyclerView.ViewHolder { +public class LibaoDetailTopViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.libaodetail_name) public TextView libaoName; @@ -30,6 +30,5 @@ public class LibaoDetailTopViewHolder extends RecyclerView.ViewHolder { public LibaoDetailTopViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java index 9b808ad9a5..9b4dad7124 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/12/12. */ -public class LibaoNormalViewHolder extends RecyclerView.ViewHolder { +public class LibaoNormalViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.libao_name) public TextView libaoName; @@ -28,6 +27,5 @@ public class LibaoNormalViewHolder extends RecyclerView.ViewHolder { public LibaoNormalViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoSearchViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoSearchViewHolder.java index 3fb65f3dcf..f82d748a2e 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoSearchViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoSearchViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.EditText; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/12/26. */ -public class LibaoSearchViewHolder extends RecyclerView.ViewHolder { +public class LibaoSearchViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.libao_et_search) public EditText searchEt; @@ -24,6 +23,5 @@ public class LibaoSearchViewHolder extends RecyclerView.ViewHolder { public LibaoSearchViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailCommentListViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailCommentListViewHolder.java index 3fdf69b4fa..de76740ed7 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailCommentListViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailCommentListViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/12/28. */ -public class NewsDetailCommentListViewHolder extends RecyclerView.ViewHolder { +public class NewsDetailCommentListViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.newsdetail_comment_title) public TextView title; @@ -22,6 +21,6 @@ public class NewsDetailCommentListViewHolder extends RecyclerView.ViewHolder { public NewsDetailCommentListViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java index b6a1804705..c6c83ba4cc 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java @@ -1,22 +1,21 @@ 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.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by Administrator on 2016/9/8. * viewholder */ -public class NewsDigestViewHolder extends RecyclerView.ViewHolder { +public class NewsDigestViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_digest_thumb) public SimpleDraweeView thumb; @@ -41,7 +40,6 @@ public class NewsDigestViewHolder extends RecyclerView.ViewHolder { public NewsDigestViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsFooterViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsFooterViewHolder.java index 833a8b6ffa..093c95b2ea 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsFooterViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsFooterViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ProgressBar; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/8/18. * viewholder */ -public class NewsFooterViewHolder extends RecyclerView.ViewHolder { +public class NewsFooterViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_footer_loading) public ProgressBar loading; @@ -23,7 +22,6 @@ public class NewsFooterViewHolder extends RecyclerView.ViewHolder { public NewsFooterViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsHeadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsHeadViewHolder.java index f0f1e4c332..4bbba72a32 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsHeadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsHeadViewHolder.java @@ -1,26 +1,24 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/8/18. * viewholder */ -public class NewsHeadViewHolder extends RecyclerView.ViewHolder { +public class NewsHeadViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_head_label) public TextView label; public NewsHeadViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java index 0aeec12a6a..3c02ef0e05 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/6/6. * viewholder */ -public class NewsImage1ViewHolder extends RecyclerView.ViewHolder { +public class NewsImage1ViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_image1_thumb) public SimpleDraweeView thumb; @@ -27,7 +26,6 @@ public class NewsImage1ViewHolder extends RecyclerView.ViewHolder { public NewsImage1ViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } 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 index c982d2e262..d173fd50c1 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/7/5. * viewholder */ -public class NewsImage2ViewHolder extends RecyclerView.ViewHolder { +public class NewsImage2ViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_image2_title) public TextView title; @@ -31,7 +30,6 @@ public class NewsImage2ViewHolder extends RecyclerView.ViewHolder { public NewsImage2ViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } 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 index 8bb04c2b05..fb0b5399bf 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/7/5. * viewholder */ -public class NewsImage3ViewHolder extends RecyclerView.ViewHolder { +public class NewsImage3ViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_image3_title) public TextView title; @@ -27,7 +26,6 @@ public class NewsImage3ViewHolder extends RecyclerView.ViewHolder { public NewsImage3ViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImageViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImageViewHolder.java index 4247d0381e..f96961d267 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImageViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImageViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/8/17. * viewholder */ -public class NewsImageViewHolder extends RecyclerView.ViewHolder { +public class NewsImageViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_image_thumb) public SimpleDraweeView thumb; @@ -25,7 +24,6 @@ public class NewsImageViewHolder extends RecyclerView.ViewHolder { public NewsImageViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsTextViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsTextViewHolder.java index bbb7c5f762..f106702f3c 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsTextViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsTextViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/8/17. * viewholder */ -public class NewsTextViewHolder extends RecyclerView.ViewHolder { +public class NewsTextViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_text_line) public View line; @@ -24,7 +23,6 @@ public class NewsTextViewHolder extends RecyclerView.ViewHolder { public NewsTextViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NoDataSkipViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NoDataSkipViewHolder.java deleted file mode 100644 index 3155d26081..0000000000 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NoDataSkipViewHolder.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.gh.gamecenter.adapter.viewholder; - -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.TextView; - -import com.gh.gamecenter.R; - -/** - * Created by LGT on 2016/9/6. - */ -public class NoDataSkipViewHolder extends RecyclerView.ViewHolder { - - public TextView reuse_nodata_skip_tv_hint; - public TextView reuse_nodata_skip_tv_btn; - - public NoDataSkipViewHolder(View itemView) { - super(itemView); - - reuse_nodata_skip_tv_hint = (TextView) itemView.findViewById(R.id.reuse_nodata_skip_tv_hint); - reuse_nodata_skip_tv_btn = (TextView) itemView.findViewById(R.id.reuse_nodata_skip_tv_btn); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/PlatformViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/PlatformViewHolder.java index 3a23a92c34..dff07887f1 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/PlatformViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/PlatformViewHolder.java @@ -1,44 +1,38 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/9/27. */ -public class PlatformViewHolder extends RecyclerView.ViewHolder { +public class PlatformViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.download_item_tv_name) public TextView download_item_tv_name; + @BindView(R.id.download_item_tv_status) public TextView download_item_tv_status; + @BindView(R.id.download_item_progressbar) public TextView download_item_tv_hint; + @BindView(R.id.download_item_iv_pic) public ImageView download_item_open_collection; + @BindView(R.id.download_item_tv_hint) public ImageView download_item_colse_collection; + @BindView(R.id.download_item_open_collection) public SimpleDraweeView download_item_iv_pic; + @BindView(R.id.download_item_colse_collection) public ProgressBar download_item_progressbar; public PlatformViewHolder(View itemView) { super(itemView); - - download_item_tv_name = (TextView) itemView - .findViewById(R.id.download_item_tv_name); - download_item_tv_status = (TextView) itemView - .findViewById(R.id.download_item_tv_status); - download_item_progressbar = (ProgressBar) itemView - .findViewById(R.id.download_item_progressbar); - download_item_iv_pic = (SimpleDraweeView) itemView - .findViewById(R.id.download_item_iv_pic); - download_item_tv_hint = (TextView) itemView - .findViewById(R.id.download_item_tv_hint); - download_item_open_collection = (ImageView) itemView - .findViewById(R.id.download_item_open_collection); - download_item_colse_collection = (ImageView) itemView - .findViewById(R.id.download_item_colse_collection); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ReuseViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ReuseViewHolder.java index 20fbcc9f7c..c3b60a2e0e 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ReuseViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ReuseViewHolder.java @@ -1,12 +1,13 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; +import com.gh.base.BaseRecyclerViewHolder; + /** * Created by LGT on 2016/8/12. */ -public class ReuseViewHolder extends RecyclerView.ViewHolder { +public class ReuseViewHolder extends BaseRecyclerViewHolder { public ReuseViewHolder(View itemView) { super(itemView); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/SearchHistoryViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/SearchHistoryViewHolder.java index d4114c0990..d8dd7c4c62 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/SearchHistoryViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/SearchHistoryViewHolder.java @@ -1,25 +1,25 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/17. */ -public class SearchHistoryViewHolder extends RecyclerView.ViewHolder { +public class SearchHistoryViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.search_history_line) public View search_history_line; + @BindView(R.id.search_history_name) public TextView search_history_name; public SearchHistoryViewHolder(View itemView) { super(itemView); - - search_history_line = itemView.findViewById(R.id.search_history_line); - search_history_name = (TextView) itemView.findViewById(R.id.search_history_name); - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/StrategyDialogViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/StrategyDialogViewHolder.java index e2442344bc..1a25e597cd 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/StrategyDialogViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/StrategyDialogViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/12/5. */ -public class StrategyDialogViewHolder extends RecyclerView.ViewHolder { +public class StrategyDialogViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.dialog_strategy_item_icon) public ImageView selectIcon; @@ -22,6 +21,6 @@ public class StrategyDialogViewHolder extends RecyclerView.ViewHolder { public StrategyDialogViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java index 73e886e6be..0f8f27cc69 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 24/05/17. */ -public class ToolBoxViewHolder extends RecyclerView.ViewHolder { +public class ToolBoxViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.toolbox_item_game_thumb) public SimpleDraweeView mGameThumb; @BindView(R.id.toolbox_item_title) @@ -24,6 +23,5 @@ public class ToolBoxViewHolder extends RecyclerView.ViewHolder { public ToolBoxViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/VoteViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/VoteViewHolder.java index b6f43500db..5d7c552fab 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/VoteViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/VoteViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/4/11. * 投票ITEM */ -public class VoteViewHolder extends RecyclerView.ViewHolder { +public class VoteViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.vote_item_name) public TextView name; @@ -26,6 +25,6 @@ public class VoteViewHolder extends RecyclerView.ViewHolder { public VoteViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java index aaba97ba11..2fb0f57382 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java @@ -32,7 +32,7 @@ import com.gh.download.DownloadEntity; import com.gh.download.DownloadManager; import com.gh.download.DownloadStatus; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.DownloadHeadViewHolder; import com.gh.gamecenter.adapter.viewholder.GameDownloadViewHolder; import com.gh.gamecenter.eventbus.EBDownloadChanged; diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java index 38d18770cf..90f9fa0159 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java @@ -28,7 +28,7 @@ import com.gh.download.DownloadManager; import com.gh.download.DownloadStatus; import com.gh.gamecenter.DownloadManagerActivity; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.DownloadHeadViewHolder; import com.gh.gamecenter.adapter.viewholder.GameUpdateViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; diff --git a/app/src/main/java/com/gh/gamecenter/entity/LibaoEntity.java b/app/src/main/java/com/gh/gamecenter/entity/LibaoEntity.java index 711d578850..198f06314a 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/LibaoEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/LibaoEntity.java @@ -1,12 +1,15 @@ package com.gh.gamecenter.entity; +import android.os.Parcel; +import android.os.Parcelable; + import com.gh.gamecenter.db.info.LibaoInfo; import com.google.gson.annotations.SerializedName; /** * Created by khy on 2016/12/13. */ -public class LibaoEntity { +public class LibaoEntity implements Parcelable { @SerializedName("_id") private String id; @@ -212,4 +215,60 @@ public class LibaoEntity { this.repeat = repeat; } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeString(this.id); + dest.writeString(this.libaoId); + dest.writeString(this.content); + dest.writeParcelable(this.game, flags); + dest.writeString(this.icon); + dest.writeString(this.name); + dest.writeString(this.platform); + dest.writeString(this.status); + dest.writeString(this.beforeStatus); + dest.writeString(this.code); + dest.writeInt(this.available); + dest.writeInt(this.total); + dest.writeString(this.packageName); + dest.writeByte(this.active ? (byte) 1 : (byte) 0); + dest.writeLong(this.time); + dest.writeInt(this.repeat); + } + + protected LibaoEntity(Parcel in) { + this.id = in.readString(); + this.libaoId = in.readString(); + this.content = in.readString(); + this.game = in.readParcelable(LibaoGameEntity.class.getClassLoader()); + this.icon = in.readString(); + this.name = in.readString(); + this.platform = in.readString(); + this.status = in.readString(); + this.beforeStatus = in.readString(); + this.code = in.readString(); + this.available = in.readInt(); + this.total = in.readInt(); + this.packageName = in.readString(); + this.active = in.readByte() != 0; + this.time = in.readLong(); + this.repeat = in.readInt(); + } + + public static final Creator CREATOR = new Creator() { + @Override + public LibaoEntity createFromParcel(Parcel source) { + return new LibaoEntity(source); + } + + @Override + public LibaoEntity[] newArray(int size) { + return new LibaoEntity[size]; + } + }; } diff --git a/app/src/main/java/com/gh/gamecenter/entity/LibaoGameEntity.java b/app/src/main/java/com/gh/gamecenter/entity/LibaoGameEntity.java index ede192ecb9..86a49ca685 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/LibaoGameEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/LibaoGameEntity.java @@ -1,11 +1,14 @@ package com.gh.gamecenter.entity; +import android.os.Parcel; +import android.os.Parcelable; + import com.google.gson.annotations.SerializedName; /** * Created by khy on 2016/12/14. */ -public class LibaoGameEntity { +public class LibaoGameEntity implements Parcelable { @SerializedName("_id") private String id; @@ -37,4 +40,32 @@ public class LibaoGameEntity { this.name = name; } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeString(this.id); + dest.writeString(this.name); + } + + protected LibaoGameEntity(Parcel in) { + this.id = in.readString(); + this.name = in.readString(); + } + + public static final Creator CREATOR = new Creator() { + @Override + public LibaoGameEntity createFromParcel(Parcel source) { + return new LibaoGameEntity(source); + } + + @Override + public LibaoGameEntity[] newArray(int size) { + return new LibaoGameEntity[size]; + } + }; } diff --git a/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java index f72c93f004..5ce40754a5 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java @@ -25,7 +25,7 @@ import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; import com.gh.gamecenter.game.GameFragmentAdapter; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -37,7 +37,7 @@ import java.util.List; * Created by khy on 2016/12/6. * 新主界面 */ -public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnRefreshListener, OnCallBackListener { +public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnRefreshListener, OnRequestCallBackListener { private SwipeRefreshLayout fm_game_swipe_refresh; private RecyclerView fm_game_rv_list; diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java index 8872be504f..3e2472a771 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java @@ -46,7 +46,7 @@ import com.gh.gamecenter.PluginActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.ToolBoxActivity; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.ImagePagerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameHeadViewHolder; @@ -62,7 +62,7 @@ import com.gh.gamecenter.entity.SlideEntity; import com.gh.gamecenter.entity.SubjectDigestEntity; import com.gh.gamecenter.entity.SubjectEntity; import com.gh.gamecenter.fragment.GameFragment; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.manager.PackageManager; import com.gh.gamecenter.retrofit.Response; @@ -86,7 +86,7 @@ import rx.schedulers.Schedulers; public class GameFragmentAdapter extends BaseRecyclerAdapter { private GameFragment mGameFragment; - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private SwipeRefreshLayout mSwipeRefreshLayout; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java index 4c114713a8..35cb11fb9b 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java @@ -32,7 +32,7 @@ import com.gh.gamecenter.GameNewsActivity; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.entity.GameDetailEntity; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetaiLibaoViewHolder.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetaiLibaoViewHolder.java deleted file mode 100644 index e90361e591..0000000000 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetaiLibaoViewHolder.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gh.gamecenter.gamedetail; - -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.RelativeLayout; - -import com.gh.gamecenter.R; - -import butterknife.BindView; -import butterknife.ButterKnife; - -/** - * Created by khy on 2016/12/14. - */ -public class GameDetaiLibaoViewHolder extends RecyclerView.ViewHolder { - - @BindView(R.id.gamedetail_item_libao_gallery) - public RecyclerView libaoRv; - @BindView(R.id.gamedetail_item_open_list) - public RelativeLayout openList; - - public GameDetaiLibaoViewHolder(View itemView) { - super(itemView); - ButterKnife.bind(this, itemView); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailCalenderViewHolder.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailCalenderViewHolder.java deleted file mode 100644 index dcea8ad138..0000000000 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailCalenderViewHolder.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gh.gamecenter.gamedetail; - -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.TextView; - -import com.gh.gamecenter.R; - -import butterknife.BindView; -import butterknife.ButterKnife; - -/** - * Created by khy on 2017/3/28. - */ -public class GameDetailCalenderViewHolder extends RecyclerView.ViewHolder { - - @BindView(R.id.calendar_day) - public TextView calendarDay; - @BindView(R.id.calendar_kaifu) - public TextView calendarKaifu; - - public GameDetailCalenderViewHolder(View itemView) { - super(itemView); - ButterKnife.bind(this, itemView); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFuLiViewHolder.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFuLiViewHolder.java deleted file mode 100644 index bb8f1587f5..0000000000 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFuLiViewHolder.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gh.gamecenter.gamedetail; - -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; -import android.widget.TextView; - -import com.gh.common.view.MarqueeView; -import com.gh.gamecenter.R; - -import butterknife.BindView; -import butterknife.ButterKnife; - -/** - * Created by khy on 2017/3/27. - */ -public class GameDetailFuLiViewHolder extends RecyclerView.ViewHolder { - - @BindView(R.id.gamedetail_item_fuli_des) - public TextView fuliDes; - @BindView(R.id.gamedetail_qq_rl) - public RelativeLayout fuliQqRl; - @BindView(R.id.gamedetail_qq_des) - public TextView fuliQqDes; - @BindView(R.id.gamedetail_qq_btn) - public TextView fuliQqBtn; - @BindView(R.id.gamedetail_qqun_rl) - public RelativeLayout fuliQqunRl; - @BindView(R.id.gamedetail_qqun_btn) - public TextView fuliQqunBtn; - @BindView(R.id.gamedetail_qqun_des) - public TextView fuliQqunDes; - @BindView(R.id.gamedetail_item_notice) - public MarqueeView filiNotice; - @BindView(R.id.gamedetail_item_notice_ll) - public LinearLayout filiNoticeLl; - - - public GameDetailFuLiViewHolder(View itemView) { - super(itemView); - ButterKnife.bind(this, itemView); - - } -} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagAdapter.java index fe04497e72..8ccf42e86a 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagAdapter.java @@ -7,7 +7,7 @@ import android.widget.TextView; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.GameDetailGameTagTypeViewHolder; import java.util.List; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagViewHolder.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagViewHolder.java deleted file mode 100644 index 3beb7e7f14..0000000000 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagViewHolder.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gh.gamecenter.gamedetail; - -import android.support.v7.widget.RecyclerView; -import android.view.View; - -import com.gh.gamecenter.R; - -import butterknife.BindView; -import butterknife.ButterKnife; - -/** - * Created by khy on 2017/3/28. - */ -public class GameDetailGameTagViewHolder extends RecyclerView.ViewHolder { - - @BindView(R.id.gamedetail_gametag_rv) - public RecyclerView gametagRv; - - public GameDetailGameTagViewHolder(View itemView) { - super(itemView); - ButterKnife.bind(this, itemView); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameViewHolder.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameViewHolder.java deleted file mode 100644 index e41eb8c7da..0000000000 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameViewHolder.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gh.gamecenter.gamedetail; - -import android.support.v7.widget.RecyclerView; -import android.view.View; - -import butterknife.ButterKnife; - -/** - * Created by khy on 2017/3/29. - */ -public class GameDetailGameViewHolder extends RecyclerView.ViewHolder { - - public GameDetailGameViewHolder(View itemView) { - super(itemView); - ButterKnife.bind(this, itemView); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailIntroViewHolder.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailIntroViewHolder.java deleted file mode 100644 index dc5b4857d0..0000000000 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailIntroViewHolder.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.gh.gamecenter.gamedetail; - -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.TextView; - -import com.gh.gamecenter.R; - -/** - * Created by LGT on 2016/9/8. - */ -public class GameDetailIntroViewHolder extends RecyclerView.ViewHolder { - - public RecyclerView gamedetail_item_intro_gallery; - public TextView gamedetail_item_intro_content; - - public GameDetailIntroViewHolder(View itemView) { - super(itemView); - - gamedetail_item_intro_gallery = (RecyclerView) itemView.findViewById(R.id.gamedetail_item_intro_gallery); - gamedetail_item_intro_content = (TextView) itemView.findViewById(R.id.gamedetail_item_intro_content); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java index 3a8db79237..d633ffbf3e 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java @@ -17,7 +17,7 @@ import com.gh.common.util.DisplayUtils; import com.gh.common.util.StringUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.entity.CalendarEntity; import com.gh.gamecenter.entity.KaiFuServerEntity; import com.gh.gamecenter.eventbus.EBReuse; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuViewHolder.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuViewHolder.java deleted file mode 100644 index 6e2558f6ae..0000000000 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuViewHolder.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gh.gamecenter.gamedetail; - -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; -import android.widget.ScrollView; -import android.widget.TextView; - -import com.gh.gamecenter.R; - -import butterknife.BindView; -import butterknife.ButterKnife; - -/** - * Created by khy on 2017/3/28. - */ -public class GameDetailKaiFuViewHolder extends RecyclerView.ViewHolder { - - @BindView(R.id.gamedetail_kaifu_rv) - RecyclerView kaifuRv; - @BindView(R.id.gamedetail_kaifu_cur_month) - TextView curMonth; - @BindView(R.id.gamedetail_kaifu_next_month) - TextView nextMonth; - @BindView(R.id.gamedetail_kaifu_rl) - RelativeLayout kaifuRl; - @BindView(R.id.gamedetail_kaifu_detail) - RelativeLayout kaifuDetailRl; - @BindView(R.id.gamedetail_kaifu_colse_detail) - TextView colseDetail; - @BindView(R.id.gamedetail_kaifu_suggest) - TextView kaifuSuggest; - @BindView(R.id.gamedetail_kaifu_detail_time) - TextView detailTime; - @BindView(R.id.gamedetail_kaifu_detail_list) - LinearLayout detailList; - @BindView(R.id.gamedetail_kaifu_detail_sv) - ScrollView detailSv; - @BindView(R.id.gamedetail_kaifu_des) - TextView kaifuDes; - - public GameDetailKaiFuViewHolder(View itemView) { - super(itemView); - ButterKnife.bind(this, itemView); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNewsServerAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNewsServerAdapter.java index 2fc4c4f5c1..c533ff3680 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNewsServerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNewsServerAdapter.java @@ -8,7 +8,7 @@ import android.widget.RelativeLayout; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.entity.ServerEntity; import com.gh.gamecenter.adapter.viewholder.GameDetailNewsServerItemViewHolder; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNewsServerItemViewHolder.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNewsServerItemViewHolder.java deleted file mode 100644 index c9caa170e0..0000000000 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNewsServerItemViewHolder.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gh.gamecenter.gamedetail; - -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; - -import com.gh.gamecenter.R; - -/** - * Created by LGT on 2016/9/18. - */ -public class GameDetailNewsServerItemViewHolder extends RecyclerView.ViewHolder { - - public TextView newsserver_item_name; - public View newsserver_item_line; - public ImageView newsserver_item_point; - public TextView newsserver_item_time; - - public GameDetailNewsServerItemViewHolder(View itemView) { - super(itemView); - - newsserver_item_name = (TextView) itemView.findViewById(R.id.newsserver_item_name); - newsserver_item_line = itemView.findViewById(R.id.newsserver_item_line); - newsserver_item_point = (ImageView) itemView.findViewById(R.id.newsserver_item_point); - newsserver_item_time = (TextView) itemView.findViewById(R.id.newsserver_item_time); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNewsViewHolder.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNewsViewHolder.java deleted file mode 100644 index 3249a38c26..0000000000 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNewsViewHolder.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gh.gamecenter.gamedetail; - -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.gh.gamecenter.R; - -/** - * Created by LGT on 2016/9/8. - */ -public class GameDetailNewsViewHolder extends RecyclerView.ViewHolder { - - public LinearLayout gamedetail_item_news_more; - public LinearLayout gamedetail_item_news_list; - public TextView gamedetail_item_news_title; - public View gamedetail_item_line; - public View gamedetail_item_news_line_top; - - public GameDetailNewsViewHolder(View itemView) { - super(itemView); - - gamedetail_item_news_more = (LinearLayout) itemView.findViewById(R.id.gamedetail_item_news_more); - gamedetail_item_news_list = (LinearLayout) itemView.findViewById(R.id.gamedetail_item_news_list); - gamedetail_item_news_title = (TextView) itemView.findViewById(R.id.gamedetail_item_news_title); - gamedetail_item_line = itemView.findViewById(R.id.gamedetail_item_line); - gamedetail_item_news_line_top = itemView.findViewById(R.id.gamedetail_item_news_line_top); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNoticeViewHolder.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNoticeViewHolder.java deleted file mode 100644 index 74c472455e..0000000000 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNoticeViewHolder.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.gh.gamecenter.gamedetail; - -import android.support.v7.widget.RecyclerView; -import android.view.View; - -import com.gh.common.view.MarqueeView; -import com.gh.gamecenter.R; - -import butterknife.BindView; -import butterknife.ButterKnife; - -/** - * Created by khy on 2017/3/30. - */ -public class GameDetailNoticeViewHolder extends RecyclerView.ViewHolder { - - @BindView(R.id.gamedetail_item_notice) - public MarqueeView mvNotice; - @BindView(R.id.gamedetail_item_notice_line) - public View noticeLine; - - public GameDetailNoticeViewHolder(View itemView) { - super(itemView); - ButterKnife.bind(this, itemView); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailPluginAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailPluginAdapter.java index 4a65cd52f1..c5e0ea0f11 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailPluginAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailPluginAdapter.java @@ -11,7 +11,7 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.entity.TagEntity; import com.gh.gamecenter.entity.TipsEntity; import com.gh.gamecenter.entity.TitleEntity; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailSkinViewHolder.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailSkinViewHolder.java deleted file mode 100644 index 73109770f0..0000000000 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailSkinViewHolder.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.gh.gamecenter.gamedetail; - -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.ProgressBar; -import android.widget.TextView; - -import com.gh.gamecenter.R; - -import butterknife.BindView; -import butterknife.ButterKnife; - -/** - * Created by khy on 2016/11/16. - */ -public class GameDetailSkinViewHolder extends RecyclerView.ViewHolder { - - @BindView(R.id.skin_tv_download) - public TextView skinDownloadTv; - @BindView(R.id.skin_pb_progressbar) - public ProgressBar skinDownloadPb; - @BindView(R.id.skin_tv_per) - public TextView skinDownloadPerTv; - @BindView(R.id.skin_tv_des) - public TextView skinDownloadDes; - @BindView(R.id.skin_tv_name) - public TextView skinDownloadName; - - public GameDetailSkinViewHolder(View itemView) { - super(itemView); - ButterKnife.bind(this, itemView); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailToolsAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailToolsAdapter.java index c9b6d2eb14..f715fb5402 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailToolsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailToolsAdapter.java @@ -14,7 +14,7 @@ import com.gh.common.util.ImageUtils; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.WebActivity; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.ToolBoxViewHolder; import com.gh.gamecenter.entity.ToolBoxEntity; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryAdapter.java index 0cea0fd864..2b0a9df15f 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryAdapter.java @@ -11,7 +11,7 @@ import com.gh.common.util.EntranceUtils; import com.gh.common.util.ImageUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.ViewImageActivity; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.GameGalleryViewHolder; import java.util.ArrayList; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryAdapter.java index c348808f33..5343c03b9d 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryAdapter.java @@ -7,13 +7,11 @@ import android.graphics.Color; import android.view.View; import android.view.ViewGroup; -import com.gh.base.AppController; -import com.gh.common.util.EntranceUtils; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; -import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.adapter.viewholder.GameLibaoGalleryViewHolder; +import com.gh.gamecenter.entity.LibaoEntity; import java.util.List; @@ -23,12 +21,12 @@ import java.util.List; class GameLibaoGalleryAdapter extends BaseRecyclerAdapter { private List mLibaoList; - private String entrance; + private String mEntrance; GameLibaoGalleryAdapter(Context context, List libaoList, String entrance) { super(context); - this.mLibaoList = libaoList; - this.entrance = entrance; + mLibaoList = libaoList; + mEntrance = entrance; } @Override @@ -39,7 +37,7 @@ class GameLibaoGalleryAdapter extends BaseRecyclerAdapter { private List mGameList; - private String entrance; + private String mEntrance; private String name; private int position_plugin = -1; @@ -81,7 +81,7 @@ public class XinXiAdapter extends BaseRecyclerAdapter { public XinXiAdapter(Context context, String entrance) { super(context); - this.entrance = entrance; + mEntrance = entrance; mGameList = new ArrayList<>(); mGameDetailEntity = (GameDetailEntity) AppController.get("GameDetailEntity", false); @@ -295,7 +295,7 @@ public class XinXiAdapter extends BaseRecyclerAdapter { return new GameDetailGameTagViewHolder(view); case 6: view = mLayoutInflater.inflate(R.layout.gamedetail_item_game, parent, false); - return new GameDetailGameViewHolder(view); + return new ReuseViewHolder(view); case 100: view = mLayoutInflater.inflate(R.layout.game_normal_item, parent, false); return new GameNormalViewHolder(view); @@ -458,7 +458,7 @@ public class XinXiAdapter extends BaseRecyclerAdapter { new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)); viewHolder.gamedetail_item_intro_gallery.setAdapter( new GameGalleryAdapter(mContext, mGameDetailEntity.getGallery(), - StringUtils.buildString(entrance, "+(游戏详情[", mGameEntity.getName(), "]:游戏介绍)"))); + StringUtils.buildString(mEntrance, "+(游戏详情[", mGameEntity.getName(), "]:游戏介绍)"))); viewHolder.gamedetail_item_intro_gallery.addItemDecoration( new HorizontalItemDecoration(mContext, 1, mGameDetailEntity.getGallery().size())); } @@ -504,12 +504,12 @@ public class XinXiAdapter extends BaseRecyclerAdapter { DataCollectionUtils.uploadClick(mContext, "列表", name, gameEntity.getName()); GameDetailActivity.startGameDetailActivity(mContext, gameEntity, - StringUtils.buildString(entrance, "+(", name, "[", String.valueOf(position + 1), "])")); + StringUtils.buildString(mEntrance, "+(", name, "[", String.valueOf(position + 1), "])")); } }); DownloadItemUtils.setOnClickListener(mContext, holder.gameDownloadBtn, gameEntity, position, this, - StringUtils.buildString(entrance, "+(", name, "[", String.valueOf(position + 1), "])"), + StringUtils.buildString(mEntrance, "+(", name, "[", String.valueOf(position + 1), "])"), StringUtils.buildString(name, ":", gameEntity.getName())); DownloadItemUtils.updateItem(mContext, gameEntity, holder, true); diff --git a/app/src/main/java/com/gh/gamecenter/geetest/GeetestUtils.java b/app/src/main/java/com/gh/gamecenter/geetest/GeetestUtils.java index b1fe6b97b0..caca4441db 100644 --- a/app/src/main/java/com/gh/gamecenter/geetest/GeetestUtils.java +++ b/app/src/main/java/com/gh/gamecenter/geetest/GeetestUtils.java @@ -1,6 +1,5 @@ package com.gh.gamecenter.geetest; -import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; @@ -53,7 +52,7 @@ public class GeetestUtils { * @param context * @param listener */ - public void showDialog(Activity context, GeetestListener listener) { + public void showDialog(Context context, GeetestListener listener) { mProgressDialog = ProgressDialog.show(context, null, "Loading", true, true); diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java index 885dd412f7..2339f6d070 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java @@ -87,7 +87,7 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O mLayoutManager = new LinearLayoutManager(getActivity()); mRecyclerView.setLayoutManager(mLayoutManager); - adapter = new Libao1FragmentAdapter(Libao1Fragment.this, mIsSearch, mSearckKey, mEntrance); + adapter = new Libao1FragmentAdapter(this, this, this, mIsSearch, mSearckKey, mEntrance); mNormalAdapter = adapter; mRecyclerView.addItemDecoration(new VerticalItemDecoration(getContext(), 8, false)); mRecyclerView.setAdapter(adapter); @@ -286,13 +286,13 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O private void changeAdapter(boolean isRefresh) { String entrance = getActivity().getIntent().getStringExtra(EntranceUtils.KEY_ENTRANCE); if (mIsSearch) { - adapter = new Libao1FragmentAdapter(Libao1Fragment.this, mIsSearch, mSearckKey, entrance); + adapter = new Libao1FragmentAdapter(this, this, this, mIsSearch, mSearckKey, entrance); } else { if (mNormalAdapter != null && !isRefresh) { adapter = mNormalAdapter; // adapter.setSearchKey(mSearckKey); } else { - adapter = new Libao1FragmentAdapter(Libao1Fragment.this, mIsSearch, null, entrance); + adapter = new Libao1FragmentAdapter(this, this, this, mIsSearch, null, entrance); mNormalAdapter = adapter; adapter.addLibaoList(false, 0); } diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/Libao1FragmentAdapter.java index 2d002a96c6..828446badb 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao1FragmentAdapter.java @@ -1,6 +1,5 @@ package com.gh.gamecenter.libao; -import android.app.Activity; import android.content.Context; import android.content.Intent; import android.support.v7.widget.RecyclerView; @@ -10,23 +9,21 @@ import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; -import com.gh.base.AppController; +import com.gh.base.OnRequestCallBackListener; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.ItemViewType; -import com.gh.common.util.EntranceUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.LibaoUtils; import com.gh.common.util.PlatformUtils; import com.gh.common.util.Utils; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoSearchViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; -import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -46,28 +43,29 @@ class Libao1FragmentAdapter extends BaseRecyclerAdapter { private final static int ITEM_SEARCH = 1; private final static int ITEM_FOOTER = 1; - private Libao1Fragment libao1Fragment; - private OnCallBackListener mCallBackListener; + private Libao1Fragment mLibao1Fragment; + private OnRequestCallBackListener mCallBackListener; private OnSearchCallBackListener mSearchListener; private List mLibaoList; private LibaoDao mLibaoDao; private String mSerchKey; - private String entrance; + private String mEntrance; private int skipPosition; private boolean mIsSearch; private boolean isLoading; private boolean isOver; private boolean isNetworkError; - Libao1FragmentAdapter(Libao1Fragment libao1Fragment, boolean isSearch, String key, String entrance) { - super(libao1Fragment.getContext()); - this.libao1Fragment = libao1Fragment; - this.mCallBackListener = libao1Fragment; - this.mSearchListener = libao1Fragment; - this.mIsSearch = isSearch; - this.mSerchKey = key; + Libao1FragmentAdapter(Libao1Fragment libao1Fragment,OnRequestCallBackListener requestCallBackListener, + OnSearchCallBackListener searchListener, boolean isSearch, String key, String entrance) { + super(libao1Fragment.getActivity()); + mLibao1Fragment = libao1Fragment; + mCallBackListener = requestCallBackListener; + mSearchListener = searchListener; + mIsSearch = isSearch; + mSerchKey = key; - this.entrance = entrance; + mEntrance = entrance; mLibaoList = new ArrayList<>(); @@ -240,9 +238,7 @@ class Libao1FragmentAdapter extends BaseRecyclerAdapter { holder.libaoDes.setText(content); if (libaoEntity.getStatus() != null) { - if (mContext instanceof Activity) { - LibaoUtils.initLibaoBtn((Activity) mContext, holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, "(礼包中心-最新)"); - } + LibaoUtils.initLibaoBtn(mContext, holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, "(礼包中心-最新)"); // holder.libaoBtnStatus.setClickable(false); String tv = holder.libaoBtnStatus.getText().toString(); if ("已结束".equals(tv) || "已领光".equals(tv)) { @@ -251,11 +247,7 @@ class Libao1FragmentAdapter extends BaseRecyclerAdapter { holder.libaoBtnStatus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - skipPosition = position; - AppController.put("libaoEntity", libaoEntity); - Intent intent = new Intent(mContext, LibaoDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance + "+(礼包中心-最新)"); - libao1Fragment.startActivityForResult(intent, 0x123); + startLibaoDetailActivity(position, libaoEntity); } }); } @@ -264,15 +256,17 @@ class Libao1FragmentAdapter extends BaseRecyclerAdapter { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - skipPosition = position; - AppController.put("libaoEntity", libaoEntity); - Intent intent = new Intent(mContext, LibaoDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance + "+(礼包中心-最新)"); - libao1Fragment.startActivityForResult(intent, 0x123); + startLibaoDetailActivity(position, libaoEntity); } }); } + public void startLibaoDetailActivity(int position, LibaoEntity libaoEntity) { + skipPosition = position; + Intent intent = LibaoDetailActivity.getIntent(mContext, libaoEntity, mEntrance + "+(礼包中心-最新)"); + mLibao1Fragment.startActivityForResult(intent, 0x123); + } + private void initSearchViewHolder(final LibaoSearchViewHolder holder) { if (mSerchKey != null) { holder.searchEt.setText(mSerchKey); @@ -309,7 +303,7 @@ class Libao1FragmentAdapter extends BaseRecyclerAdapter { public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus) { InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(libao1Fragment.getActivity().getWindow().getDecorView().getWindowToken(), 0); + imm.hideSoftInputFromWindow(mLibao1Fragment.getActivity().getWindow().getDecorView().getWindowToken(), 0); } } }); diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java index 225d41959c..6fa966ac3e 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java @@ -1,6 +1,5 @@ package com.gh.gamecenter.libao; -import android.app.Activity; import android.content.Intent; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; @@ -10,7 +9,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; -import com.gh.base.AppController; +import com.gh.base.OnRequestCallBackListener; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.ItemViewType; import com.gh.common.util.ConcernUtils; import com.gh.common.util.DisplayUtils; @@ -22,14 +22,12 @@ import com.gh.common.util.PlatformUtils; import com.gh.gamecenter.ConcernActivity; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; -import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.newsdetail.NewsDetailCommentViewHolder; import com.gh.gamecenter.retrofit.ObservableUtil; @@ -56,9 +54,9 @@ import rx.schedulers.Schedulers; */ class Libao2FragmentAdapter extends BaseRecyclerAdapter { - private Libao2Fragment libao2Fragment; + private Libao2Fragment mLibao2Fragment; - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private List mLibaoList; private List gameIdList; @@ -70,7 +68,7 @@ class Libao2FragmentAdapter extends BaseRecyclerAdapter { private String key; private String ids; - private String entrance; + private String mEntrance; private int skipPosition; @@ -78,11 +76,11 @@ class Libao2FragmentAdapter extends BaseRecyclerAdapter { Libao2FragmentAdapter(Libao2Fragment libao2Fragment, String entrance) { - super(libao2Fragment.getContext()); - this.libao2Fragment = libao2Fragment; - this.mCallBackListener = libao2Fragment; + super(libao2Fragment.getActivity()); + mLibao2Fragment = libao2Fragment; + mCallBackListener = libao2Fragment; - this.entrance = entrance; + mEntrance = entrance; mLibaoList = new ArrayList<>(); gameIdList = new ArrayList<>(); @@ -343,9 +341,7 @@ class Libao2FragmentAdapter extends BaseRecyclerAdapter { holder.libaoDes.setText(content); if (libaoEntity.getStatus() != null) { - if (mContext instanceof Activity) { - LibaoUtils.initLibaoBtn((Activity) mContext, holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, "(礼包中心-关注)"); - } + LibaoUtils.initLibaoBtn(mContext, holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, "(礼包中心-关注)"); holder.libaoBtnStatus.setClickable(false); String tv = holder.libaoBtnStatus.getText().toString(); if ("已结束".equals(tv) || "已领光".equals(tv)) { @@ -354,11 +350,7 @@ class Libao2FragmentAdapter extends BaseRecyclerAdapter { holder.libaoBtnStatus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - skipPosition = position; - AppController.put("libaoEntity", libaoEntity); - Intent intent = new Intent(mContext, LibaoDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance + "+(礼包中心-关注)"); - libao2Fragment.startActivityForResult(intent, 0x123); + startLibaoDetailActivity(position, libaoEntity); } }); } @@ -367,15 +359,17 @@ class Libao2FragmentAdapter extends BaseRecyclerAdapter { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - skipPosition = position; - AppController.put("libaoEntity", libaoEntity); - Intent intent = new Intent(mContext, LibaoDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance + "+(礼包中心-关注)"); - libao2Fragment.startActivityForResult(intent, 0x123); + startLibaoDetailActivity(position, libaoEntity); } }); } + public void startLibaoDetailActivity(int position, LibaoEntity libaoEntity) { + skipPosition = position; + Intent intent = LibaoDetailActivity.getIntent(mContext, libaoEntity, mEntrance + "+(礼包中心-关注)"); + mLibao2Fragment.startActivityForResult(intent, 0x123); + } + private void initSkipCommentViewHolder(NewsDetailCommentViewHolder holder) { LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT , ViewGroup.LayoutParams.WRAP_CONTENT); @@ -387,8 +381,8 @@ class Libao2FragmentAdapter extends BaseRecyclerAdapter { @Override public void onClick(View v) { Intent intent = new Intent(mContext, ConcernActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance + "+(礼包中心-关注)"); - libao2Fragment.startActivityForResult(intent, 0x223); + intent.putExtra(EntranceUtils.KEY_ENTRANCE, mEntrance + "+(礼包中心-关注)"); + mLibao2Fragment.startActivityForResult(intent, 0x223); } }); diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java index 7d964c17ef..cf1e8802a4 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java @@ -39,7 +39,7 @@ public class Libao3Fragment extends BaseFragment implements SwipeRefreshLayout.O Runnable runnable = new Runnable() { @Override public void run() { - adapter = new Libao3FragmentAdapter(Libao3Fragment.this, mEntrance); + adapter = new Libao3FragmentAdapter(getActivity(), Libao3Fragment.this, mEntrance); mRecyclerView.setAdapter(adapter); mRefreshLayout.setRefreshing(false); } @@ -60,7 +60,7 @@ public class Libao3Fragment extends BaseFragment implements SwipeRefreshLayout.O mRecyclerView.setHasFixedSize(true); mLayoutManager = new LinearLayoutManager(getActivity()); mRecyclerView.setLayoutManager(mLayoutManager); - adapter = new Libao3FragmentAdapter(Libao3Fragment.this, mEntrance); + adapter = new Libao3FragmentAdapter(getActivity(), this, mEntrance); mRecyclerView.addItemDecoration(new VerticalItemDecoration(getContext(), 8, true)); mRecyclerView.setAdapter(adapter); diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java index 9279610377..594579259d 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java @@ -1,15 +1,15 @@ package com.gh.gamecenter.libao; -import android.content.Intent; +import android.content.Context; import android.text.Html; import android.text.Spanned; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; -import com.gh.base.AppController; +import com.gh.base.OnRequestCallBackListener; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.DialogUtils; -import com.gh.common.util.EntranceUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.LibaoUtils; import com.gh.common.util.PlatformUtils; @@ -17,12 +17,10 @@ import com.gh.common.util.StringUtils; import com.gh.common.util.Utils; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.db.info.LibaoInfo; import com.gh.gamecenter.entity.LibaoEntity; -import com.gh.listener.OnCallBackListener; import java.util.ArrayList; import java.util.List; @@ -34,20 +32,20 @@ import retrofit2.HttpException; */ class Libao3FragmentAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private List mLibaoList; private List mLibaoInfos; private LibaoDao mLibaoDao; - private String entrance; + private String mEntrance; - Libao3FragmentAdapter(Libao3Fragment libao3Fragment, String entrance) { - super(libao3Fragment.getContext()); - this.mCallBackListener = libao3Fragment; + Libao3FragmentAdapter(Context context, OnRequestCallBackListener listener, String entrance) { + super(context); + mCallBackListener = listener; - this.entrance = entrance; + mEntrance = entrance; mLibaoList = new ArrayList<>(); @@ -135,10 +133,7 @@ class Libao3FragmentAdapter extends BaseRecyclerAdapter { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - AppController.put("libaoEntity", libaoEntity); - Intent intent = new Intent(mContext, LibaoDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance + "+(礼包中心-存号箱)"); - mContext.startActivity(intent); + mContext.startActivity(LibaoDetailActivity.getIntent(mContext, libaoEntity, mEntrance + "+(礼包中心-存号箱)")); } }); diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java index 4c6dd1250e..d53958363b 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java @@ -13,13 +13,13 @@ import com.gh.common.constant.ItemViewType; import com.gh.common.util.DisplayUtils; import com.gh.common.util.LibaoUtils; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.db.info.LibaoInfo; import com.gh.gamecenter.entity.LibaoEntity; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -36,7 +36,7 @@ import rx.schedulers.Schedulers; */ public class LibaoHistoryAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private List mLibaoList; private LibaoDao mLibaoDao; diff --git a/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java index d9639e3154..826ddccf0d 100644 --- a/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java @@ -12,12 +12,12 @@ import com.gh.common.util.TokenUtils; import com.gh.gamecenter.CommentDetailActivity; import com.gh.gamecenter.MessageDetailActivity; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.entity.MessageCommentEntity; import com.gh.gamecenter.entity.UserEntity; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -38,7 +38,7 @@ import rx.schedulers.Schedulers; */ public class CommentFragmentAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private CommentFragment fragment; diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java index 4ef7ffc1b4..b7b57087a1 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java @@ -18,7 +18,7 @@ import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.WebActivity; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.db.KeFuMarkReadDao; import com.gh.gamecenter.db.MessageMarkReadDao; @@ -26,7 +26,7 @@ import com.gh.gamecenter.db.info.KeFuMarkReadInfo; import com.gh.gamecenter.db.info.MessageMarkReadInfo; import com.gh.gamecenter.entity.MessageKeFuEntity; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.google.gson.Gson; @@ -54,7 +54,7 @@ public class KeFuFragmentAdapter extends BaseRecyclerAdapter { private KeFuFragment fragment; - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private MessageMarkReadDao mReadDao; private KeFuMarkReadDao mKeFuReadDao; diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java index 53f0235ae5..5ff6c3a6bc 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java @@ -15,7 +15,7 @@ import com.gh.common.util.DisplayUtils; import com.gh.common.util.TokenUtils; import com.gh.common.util.Utils; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.FragmentAdapter; +import com.gh.base.adapter.FragmentAdapter; import com.gh.gamecenter.db.KeFuMarkReadDao; import com.gh.gamecenter.entity.MessageUnreadEntity; import com.gh.gamecenter.eventbus.EBReuse; diff --git a/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java index dc3d7bd159..8b2396d1ba 100644 --- a/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java @@ -18,7 +18,7 @@ import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.WebActivity; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.db.MessageMarkReadDao; import com.gh.gamecenter.db.NoticeMarkReadDao; @@ -26,7 +26,7 @@ import com.gh.gamecenter.db.info.MessageMarkReadInfo; import com.gh.gamecenter.db.info.NoticeMarkReadInfo; import com.gh.gamecenter.entity.MessageNoticeEntity; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.google.gson.Gson; @@ -53,7 +53,7 @@ import rx.schedulers.Schedulers; public class NoticeFragmentAdapter extends BaseRecyclerAdapter { private NoticeFragment fragment; - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private MessageMarkReadDao mReadDao; private NoticeMarkReadDao mNoticReadDao; 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 e858856ce4..a408484b67 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java @@ -17,14 +17,14 @@ import com.gh.common.util.ImageUtils; import com.gh.common.util.NewsUtils; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; 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.entity.ViewsEntity; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.VisitManager; import com.gh.gamecenter.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.ObservableUtil; @@ -55,7 +55,7 @@ import rx.schedulers.Schedulers; public class News1FragmentAdapter extends BaseRecyclerAdapter { private News1Fragment fragment; - private OnCallBackListener listener; + private OnRequestCallBackListener listener; private List newsList; diff --git a/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java index cafb51daf4..916bee2924 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java @@ -12,6 +12,8 @@ import android.view.ViewGroup; import android.widget.Toast; import com.gh.base.AppController; +import com.gh.base.OnRequestCallBackListener; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.ItemViewType; import com.gh.common.util.ConcernContentUtils; import com.gh.common.util.ConcernUtils; @@ -32,7 +34,6 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.ShareCardActivity; import com.gh.gamecenter.ShareCardPicActivity; import com.gh.gamecenter.WebActivity; -import com.gh.base.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsDigestViewHolder; import com.gh.gamecenter.db.LibaoDao; @@ -43,7 +44,6 @@ import com.gh.gamecenter.entity.ConcernEntity; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; import com.gh.gamecenter.entity.ViewsEntity; -import com.gh.listener.OnCallBackListener; import com.gh.gamecenter.manager.CommentManager; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.manager.VisitManager; @@ -80,7 +80,7 @@ public class News2FragmentAdapter extends BaseRecyclerAdapter { private News2Fragment fragment; - private OnCallBackListener listener; + private OnRequestCallBackListener listener; private List concernList; private List gameIdList; @@ -563,15 +563,14 @@ public class News2FragmentAdapter extends BaseRecyclerAdapter { viewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + LibaoEntity entity = null; for (LibaoStatusEntity libaoStatusEntity : libaoStatusList) { if (concernEntity.getId().equals(libaoStatusEntity.getId())) { - AppController.put("libaoEntity", LibaoEntity.createLibaoEntity( - concernEntity, libaoStatusEntity, finalLibaoCode)); + entity = LibaoEntity.createLibaoEntity(concernEntity, libaoStatusEntity, finalLibaoCode); } } skipPosition = viewHolder.getPosition(); - Intent intent = new Intent(mContext, LibaoDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, "(资讯:关注[2-4])"); + Intent intent = LibaoDetailActivity.getIntent(mContext, entity, "(资讯:关注[2-4])"); fragment.startActivityForResult(intent, 0x122); } }); 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 3c83552da9..af23821f23 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java @@ -11,11 +11,11 @@ import com.gh.common.util.DataUtils; import com.gh.common.util.NewsUtils; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.NewsFooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsTextViewHolder; import com.gh.gamecenter.entity.NewsEntity; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -36,7 +36,7 @@ import rx.schedulers.Schedulers; */ public class News3FragmentAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private List mNewsList; @@ -44,7 +44,7 @@ public class News3FragmentAdapter extends BaseRecyclerAdapter { private boolean isLoading; private boolean isNetworkError; - public News3FragmentAdapter(Context context, OnCallBackListener callBackListener) { + public News3FragmentAdapter(Context context, OnRequestCallBackListener callBackListener) { super(context); this.mCallBackListener = callBackListener; mNewsList = new ArrayList<>(); diff --git a/app/src/main/java/com/gh/gamecenter/news/News3FragmentDialogAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News3FragmentDialogAdapter.java index 4898e3a964..2d86d7628e 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News3FragmentDialogAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News3FragmentDialogAdapter.java @@ -7,7 +7,7 @@ import android.widget.LinearLayout; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.StrategyDialogViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.manager.ConcernManager; 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 0712cd2262..f8e7df5ea9 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java @@ -17,14 +17,14 @@ import com.gh.common.util.ImageUtils; import com.gh.common.util.NewsUtils; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; 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.entity.ViewsEntity; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.VisitManager; import com.gh.gamecenter.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.ObservableUtil; @@ -55,7 +55,7 @@ import rx.schedulers.Schedulers; public class News4FragmentAdapter extends BaseRecyclerAdapter { private News4Fragment fragment; - private OnCallBackListener listener; + private OnRequestCallBackListener listener; private List newsList; diff --git a/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java b/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java index cc4688b376..80d5c41aea 100644 --- a/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java @@ -14,7 +14,7 @@ import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.FragmentAdapter; +import com.gh.base.adapter.FragmentAdapter; import com.gh.gamecenter.eventbus.EBUISwitch; import com.gh.gamecenter.fragment.HomeFragment; diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java index b3d2038e14..4f3544d2b5 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java @@ -45,7 +45,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.ViewImageActivity; import com.gh.gamecenter.WebActivity; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.NewsDetailCommentListViewHolder; import com.gh.gamecenter.db.VoteDao; import com.gh.gamecenter.db.info.VoteInfo; @@ -55,7 +55,7 @@ import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.NewsDetailEntity; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.adapter.viewholder.GameDetailTopViewHolder; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -83,7 +83,7 @@ import rx.schedulers.Schedulers; */ public class NewsDetailAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mListener; + private OnRequestCallBackListener mListener; private List mCommentEntityList; private GameEntity mGameEntity; @@ -103,7 +103,7 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter { private VoteDao mVoteDao; private int defaultTextZoom = 85; - public NewsDetailAdapter(Context context, OnCallBackListener listener, String entrance) { + public NewsDetailAdapter(Context context, OnRequestCallBackListener listener, String entrance) { super(context); mListener = listener; mEntrance = entrance; diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailCommentViewHolder.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailCommentViewHolder.java index b5ac44d713..59a668e88f 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailCommentViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailCommentViewHolder.java @@ -1,24 +1,22 @@ package com.gh.gamecenter.newsdetail; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/11/28. */ -public class NewsDetailCommentViewHolder extends RecyclerView.ViewHolder { +public class NewsDetailCommentViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.newsdetail_item_comment) public TextView commentTv; public NewsDetailCommentViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java index cc44668b1c..bbc7e293ce 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java @@ -19,7 +19,7 @@ import com.gh.common.util.ImageUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; diff --git a/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java index cd54ed2ca9..c63412218a 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java @@ -34,7 +34,7 @@ import com.gh.download.DownloadManager; import com.gh.gamecenter.ChooseReceiverActivity; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameNormalSwipeViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java index d847451af7..e79cc8a236 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java @@ -24,7 +24,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBDownloadStatus; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -33,7 +33,7 @@ import java.util.ArrayList; import butterknife.BindView; -public class SearchGameDetailFragment extends BaseFragment implements OnCallBackListener { +public class SearchGameDetailFragment extends BaseFragment implements OnRequestCallBackListener { @BindView(R.id.search_detail) RecyclerView search_detail; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java index 088114df8f..faebe9ab18 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java @@ -19,12 +19,12 @@ import com.gh.common.util.StringUtils; import com.gh.common.view.DownloadDialog; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBSearch; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -39,7 +39,7 @@ import rx.schedulers.Schedulers; class SearchGameDetailFragmentAdapter extends BaseRecyclerAdapter { - private OnCallBackListener listener; + private OnRequestCallBackListener listener; private List gameList; private ArrayMap> locationMap; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java index f7265849a6..f9f1de6d34 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java @@ -24,7 +24,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBDownloadStatus; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -33,7 +33,7 @@ import java.util.ArrayList; import butterknife.BindView; -public class SearchGameListFragment extends BaseFragment implements OnCallBackListener { +public class SearchGameListFragment extends BaseFragment implements OnRequestCallBackListener { @BindView(R.id.search_detail) RecyclerView search_detail; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java index 50e98f80b9..4e1a30daf5 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java @@ -19,14 +19,14 @@ import com.gh.common.util.StringUtils; import com.gh.common.view.DownloadDialog; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.adapter.viewholder.SearchHistoryViewHolder; import com.gh.gamecenter.db.SearchHistoryDao; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBSearch; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -41,7 +41,7 @@ import rx.schedulers.Schedulers; class SearchGameListFragmentAdapter extends BaseRecyclerAdapter { - private OnCallBackListener listener; + private OnRequestCallBackListener listener; private SearchHistoryDao dao; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java index ab25a0712e..893d5b8024 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java @@ -15,7 +15,7 @@ import android.widget.TextView; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.db.SearchHistoryDao; import com.gh.gamecenter.eventbus.EBSearch; diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java b/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java index 0056a4e3e7..776c198df2 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java @@ -26,14 +26,14 @@ import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameImageViewHolder; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -54,7 +54,7 @@ import static android.R.attr.name; public class SubjectAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mOnCallBackListener; + private OnRequestCallBackListener mOnRequestCallBackListener; private List mSubjectList; @@ -72,10 +72,10 @@ public class SubjectAdapter extends BaseRecyclerAdapter { private boolean mIsOrder; private boolean mIsLoaded; - public SubjectAdapter(Context context, OnCallBackListener listener, String type, String id + public SubjectAdapter(Context context, OnRequestCallBackListener listener, String type, String id , String name, String entrance, String order, String tagType, boolean isOrder) { super(context); - this.mOnCallBackListener = listener; + this.mOnRequestCallBackListener = listener; this.mType = type; this.mId = id; this.mName = name; @@ -133,11 +133,11 @@ public class SubjectAdapter extends BaseRecyclerAdapter { initLocationMap(); - if (mOnCallBackListener != null) { + if (mOnRequestCallBackListener != null) { if (mSubjectList.size() == 0) { - mOnCallBackListener.loadEmpty(); + mOnRequestCallBackListener.loadEmpty(); } else { - mOnCallBackListener.loadDone(); + mOnRequestCallBackListener.loadDone(); } } @@ -149,8 +149,8 @@ public class SubjectAdapter extends BaseRecyclerAdapter { mIsLoaded = true; if (page == 1) { - if (mOnCallBackListener != null) { - mOnCallBackListener.loadError(); + if (mOnRequestCallBackListener != null) { + mOnRequestCallBackListener.loadError(); } } else { Toast.makeText(mContext, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show(); diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SelectGameViewHolder.java b/app/src/main/java/com/gh/gamecenter/suggest/SelectGameViewHolder.java index 74b9c5f0a5..ac4389097a 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SelectGameViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SelectGameViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.suggest; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/4/1. */ -public class SelectGameViewHolder extends RecyclerView.ViewHolder { +public class SelectGameViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.game_icon) public SimpleDraweeView gameIcon; @@ -22,6 +21,5 @@ public class SelectGameViewHolder extends RecyclerView.ViewHolder { public SelectGameViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java index 66103bbdac..233a0e9541 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java @@ -11,7 +11,7 @@ import android.view.ViewGroup; import com.gh.common.util.Utils; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java index 47f58bde11..0a2666036f 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.suggest; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/3/31. */ -public class SuggestPicViewHolder extends RecyclerView.ViewHolder { +public class SuggestPicViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.pic_item_icon) public SimpleDraweeView icon; @@ -22,6 +21,5 @@ public class SuggestPicViewHolder extends RecyclerView.ViewHolder { public SuggestPicViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java index 52ff5805f2..b64fe24293 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java @@ -11,9 +11,9 @@ import android.widget.ProgressBar; import com.gh.common.util.BitmapUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.entity.InstallGameEntity; -import com.gh.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.*; import java.io.File; @@ -29,7 +29,7 @@ import rx.android.schedulers.*; */ public class SuggestSelectGameAdapter extends BaseRecyclerAdapter { - private OnCallBackListener listener; + private OnRequestCallBackListener listener; private List apkList; diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeAdapter.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeAdapter.java index 2e5617cdf3..8589fedab7 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeAdapter.java @@ -9,7 +9,7 @@ import android.view.ViewGroup; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; -import com.gh.base.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; /** * Created by khy on 2017/3/31. diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeViewHolder.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeViewHolder.java index 0dd0f5204f..0a3cbd7870 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.suggest; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/3/31. */ -public class SuggestTypeViewHolder extends RecyclerView.ViewHolder { +public class SuggestTypeViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.suggest_type_icon) public ImageView icon; @@ -22,6 +21,5 @@ public class SuggestTypeViewHolder extends RecyclerView.ViewHolder { public SuggestTypeViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } From 5e668d9e13bc9239c57c66d67281446b8d7dbabd Mon Sep 17 00:00:00 2001 From: CsHeng Date: Fri, 16 Jun 2017 16:12:28 +0800 Subject: [PATCH 5/6] fix deprecated --- .../main/java/com/gh/base/AppController.java | 28 ++++++++-------- .../java/com/gh/base/BaseDetailActivity.java | 5 +-- .../com/gh/common/util/DownloadItemUtils.java | 25 +++++--------- .../gh/common/view/CardRelativeLayout.java | 33 ++++++++++--------- .../gamecenter/DownloadManagerActivity.java | 4 +-- .../com/gh/gamecenter/GameDetailActivity.java | 7 ++-- .../com/gh/gamecenter/NewsDetailActivity.java | 5 +-- ...ragment.java => GameDownloadFragment.java} | 2 +- .../download/GameUpdateFragmentAdapter.java | 8 ++--- 9 files changed, 57 insertions(+), 60 deletions(-) rename app/src/main/java/com/gh/gamecenter/download/{GameDownLoadFragment.java => GameDownloadFragment.java} (99%) diff --git a/app/src/main/java/com/gh/base/AppController.java b/app/src/main/java/com/gh/base/AppController.java index 175e3f35f4..1b29d1eaee 100644 --- a/app/src/main/java/com/gh/base/AppController.java +++ b/app/src/main/java/com/gh/base/AppController.java @@ -72,20 +72,6 @@ public class AppController extends Application { objectMap.remove(key); } - public static String getProcessName(Context cxt, int pid) { - ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE); - List runningApps = am.getRunningAppProcesses(); - if (runningApps == null) { - return null; - } - for (RunningAppProcessInfo procInfo : runningApps) { - if (procInfo.pid == pid) { - return procInfo.processName; - } - } - return null; - } - public static synchronized AppController getInstance() { return mInstance; } @@ -239,4 +225,18 @@ public class AppController extends Application { return false; } +// public static String getProcessName(Context cxt, int pid) { +// ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE); +// List runningApps = am.getRunningAppProcesses(); +// if (runningApps == null) { +// return null; +// } +// for (RunningAppProcessInfo procInfo : runningApps) { +// if (procInfo.pid == pid) { +// return procInfo.processName; +// } +// } +// return null; +// } + } diff --git a/app/src/main/java/com/gh/base/BaseDetailActivity.java b/app/src/main/java/com/gh/base/BaseDetailActivity.java index baf0e32e93..be705425b9 100644 --- a/app/src/main/java/com/gh/base/BaseDetailActivity.java +++ b/app/src/main/java/com/gh/base/BaseDetailActivity.java @@ -2,6 +2,7 @@ package com.gh.base; import android.content.Intent; import android.os.Bundle; +import android.support.v4.content.ContextCompat; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.View; @@ -275,9 +276,9 @@ public abstract class BaseDetailActivity extends BaseActivity implements View.On detail_tv_per.setText("安装"); if (mDownloadEntity.isPluggable() && PackageManager.isInstalled(mDownloadEntity.getPackageName())) { - detail_pb_progressbar.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_plugin_radius_style)); + detail_pb_progressbar.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_plugin_radius_style)); } else { - detail_pb_progressbar.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_normal_radius_style)); + detail_pb_progressbar.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_normal_radius_style)); } break; case cancel: diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java index 186cc1c4e8..92eaf80a13 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java @@ -3,6 +3,7 @@ package com.gh.common.util; import android.content.Context; import android.graphics.Color; import android.os.Message; +import android.support.v4.content.ContextCompat; import android.support.v4.util.ArrayMap; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; @@ -239,7 +240,7 @@ public class DownloadItemUtils { if (isNormal) { holder.gameDownloadBtn.setText("下载中"); holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_downloading_style); - holder.gameDownloadBtn.setTextColor(context.getResources().getColorStateList(R.color.text_downloading_style)); + holder.gameDownloadBtn.setTextColor(ContextCompat.getColorStateList(context, R.color.text_downloading_style)); } } else if (status.equals(DownloadStatus.waiting)) { holder.gameProgressbar.setProgress((int) (downloadEntity.getPercent() * 10)); @@ -253,7 +254,7 @@ public class DownloadItemUtils { if (isNormal) { holder.gameDownloadBtn.setText("下载中"); holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_downloading_style); - holder.gameDownloadBtn.setTextColor(context.getResources().getColorStateList(R.color.text_downloading_style)); + holder.gameDownloadBtn.setTextColor(ContextCompat.getColorStateList(context, R.color.text_downloading_style)); } } else if (status.equals(DownloadStatus.pause) || status.equals(DownloadStatus.timeout) @@ -269,7 +270,7 @@ public class DownloadItemUtils { if (isNormal) { holder.gameDownloadBtn.setText("下载中"); holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_downloading_style); - holder.gameDownloadBtn.setTextColor(context.getResources().getColorStateList(R.color.text_downloading_style)); + holder.gameDownloadBtn.setTextColor(ContextCompat.getColorStateList(context, R.color.text_downloading_style)); } } else if (status.equals(DownloadStatus.done)) { holder.gameProgressbar.setProgress(1000); @@ -388,7 +389,7 @@ public class DownloadItemUtils { downloadBtn.setText("下载中"); downloadBtn.setBackgroundResource(R.drawable.game_item_btn_downloading_style); - downloadBtn.setTextColor(context.getResources().getColorStateList(R.color.text_downloading_style)); + downloadBtn.setTextColor(ContextCompat.getColorStateList(context, R.color.text_downloading_style)); DownloadManager.getInstance(context).putStatus(gameEntity.getApk().get(0).getUrl(), "downloading"); } else { @@ -397,10 +398,7 @@ public class DownloadItemUtils { } //插件化 - private static void plugin(Context context, - GameEntity gameEntity, - TextView downloadBtn, - String entrance, + private static void plugin(Context context, GameEntity gameEntity, TextView downloadBtn, String entrance, String location) { String msg = FileUtils.isCanDownload(context, gameEntity.getApk().get(0).getSize()); if (TextUtils.isEmpty(msg)) { @@ -411,7 +409,7 @@ public class DownloadItemUtils { downloadBtn.setText("下载中"); downloadBtn.setBackgroundResource(R.drawable.game_item_btn_downloading_style); - downloadBtn.setTextColor(context.getResources().getColorStateList(R.color.text_downloading_style)); + downloadBtn.setTextColor(ContextCompat.getColorStateList(context, R.color.text_downloading_style)); DownloadManager.getInstance(context).putStatus(gameEntity.getApk().get(0).getUrl(), "downloading"); } else { @@ -420,9 +418,7 @@ public class DownloadItemUtils { } //安装 - private static void install(final Context context, - GameEntity gameEntity, - int position, + private static void install(final Context context, GameEntity gameEntity, int position, RecyclerView.Adapter adapter) { DownloadEntity downloadEntity = DownloadManager.getInstance(context).get(gameEntity.getApk().get(0).getUrl()); if (downloadEntity != null) { @@ -441,10 +437,7 @@ public class DownloadItemUtils { } //更新 - private static void update(Context context, - GameEntity gameEntity, - String entrance, - String location) { + private static void update(Context context, GameEntity gameEntity, String entrance, String location) { DataUtils.onGameUpdateEvent(context, gameEntity.getName(), gameEntity.getApk().get(0).getPlatform(), "下载开始"); DownloadManager.createDownload(context, gameEntity, "更新", entrance, location); } diff --git a/app/src/main/java/com/gh/common/view/CardRelativeLayout.java b/app/src/main/java/com/gh/common/view/CardRelativeLayout.java index 11adc2f5b6..e218b11818 100644 --- a/app/src/main/java/com/gh/common/view/CardRelativeLayout.java +++ b/app/src/main/java/com/gh/common/view/CardRelativeLayout.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.drawable.Drawable; +import android.support.v4.content.ContextCompat; import android.util.AttributeSet; import android.widget.RelativeLayout; @@ -47,25 +48,25 @@ public class CardRelativeLayout extends RelativeLayout { } if (isTran) { - mLeftDrawable = getResources().getDrawable(R.drawable.frame_tran_left); - topDrawable = getResources().getDrawable(R.drawable.frame_tran_top); - mRightDrawable = getResources().getDrawable(R.drawable.frame_tran_right); - bottomDrawable = getResources().getDrawable(R.drawable.frame_tran_bottom); + mLeftDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_left); + topDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_top); + mRightDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_right); + bottomDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_bottom); - leftTopDrawable = getResources().getDrawable(R.drawable.frame_tran_left_top_square); - rightTopDrawable = getResources().getDrawable(R.drawable.frame_tran_right_top_square); - leftBottomDrawable = getResources().getDrawable(R.drawable.frame_tran_left_bottom_square); - rightBottomDrawable = getResources().getDrawable(R.drawable.frame_tran_right_bottom_square); + leftTopDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_left_top_square); + rightTopDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_right_top_square); + leftBottomDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_left_bottom_square); + rightBottomDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_right_bottom_square); } else { - mLeftDrawable = getResources().getDrawable(R.drawable.frame_left); - topDrawable = getResources().getDrawable(R.drawable.frame_top); - mRightDrawable = getResources().getDrawable(R.drawable.frame_right); - bottomDrawable = getResources().getDrawable(R.drawable.frame_bottom); + mLeftDrawable = ContextCompat.getDrawable(context, R.drawable.frame_left); + topDrawable = ContextCompat.getDrawable(context, R.drawable.frame_top); + mRightDrawable = ContextCompat.getDrawable(context, R.drawable.frame_right); + bottomDrawable = ContextCompat.getDrawable(context, R.drawable.frame_bottom); - leftTopDrawable = getResources().getDrawable(R.drawable.frame_left_top_square); - rightTopDrawable = getResources().getDrawable(R.drawable.frame_right_top_square); - leftBottomDrawable = getResources().getDrawable(R.drawable.frame_left_bottom_square); - rightBottomDrawable = getResources().getDrawable(R.drawable.frame_right_bottom_square); + leftTopDrawable = ContextCompat.getDrawable(context, R.drawable.frame_left_top_square); + rightTopDrawable = ContextCompat.getDrawable(context, R.drawable.frame_right_top_square); + leftBottomDrawable = ContextCompat.getDrawable(context, R.drawable.frame_left_bottom_square); + rightBottomDrawable = ContextCompat.getDrawable(context, R.drawable.frame_right_bottom_square); } } diff --git a/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java b/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java index 99119f8a98..662e7af179 100644 --- a/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java +++ b/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java @@ -19,7 +19,7 @@ import com.gh.common.util.EntranceUtils; import com.gh.download.DownloadManager; import com.gh.base.adapter.FragmentAdapter; import com.gh.gamecenter.download.FileSendFragment; -import com.gh.gamecenter.download.GameDownLoadFragment; +import com.gh.gamecenter.download.GameDownloadFragment; import com.gh.gamecenter.download.GameUpdateFragment; import com.gh.gamecenter.eventbus.EBDownloadChanged; import com.gh.gamecenter.eventbus.EBMiPush; @@ -149,7 +149,7 @@ public class DownloadManagerActivity extends BaseActivity implements OnClickList downloadmanager_slide_line.setLayoutParams(lparams); List list = new ArrayList<>(); - list.add(new GameDownLoadFragment()); + list.add(new GameDownloadFragment()); list.add(new GameUpdateFragment()); list.add(new FileSendFragment()); downloadmanager_viewPager.setAdapter(new FragmentAdapter(getSupportFragmentManager(), list)); diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java index d935c354cc..e975db4e0f 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java @@ -7,6 +7,7 @@ import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.support.design.widget.AppBarLayout; import android.support.v4.app.Fragment; +import android.support.v4.content.ContextCompat; import android.support.v4.view.ViewPager; import android.text.TextUtils; import android.view.MotionEvent; @@ -20,6 +21,7 @@ import android.widget.Toast; import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.AppController; import com.gh.base.BaseActivity; +import com.gh.base.adapter.FragmentAdapter; import com.gh.common.constant.Config; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.ConcernUtils; @@ -39,7 +41,6 @@ import com.gh.common.view.NoScrollableViewPager; import com.gh.download.DataWatcher; import com.gh.download.DownloadEntity; import com.gh.download.DownloadManager; -import com.gh.base.adapter.FragmentAdapter; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameDetailEntity; import com.gh.gamecenter.entity.GameEntity; @@ -612,9 +613,9 @@ public class GameDetailActivity extends BaseActivity { mDownloadPer.setText("安装"); if (mDownloadEntity.isPluggable() && PackageManager.isInstalled(mDownloadEntity.getPackageName())) { - mDownloadPb.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_plugin_radius_style)); + mDownloadPb.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_plugin_radius_style)); } else { - mDownloadPb.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_normal_radius_style)); + mDownloadPb.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_normal_radius_style)); } break; case cancel: diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java index 2f87698189..309d5efd3a 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java @@ -7,6 +7,7 @@ import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; +import android.support.v4.content.ContextCompat; import android.support.v4.view.MotionEventCompat; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; @@ -689,9 +690,9 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener detail_tv_per.setText("安装"); if (mDownloadEntity.isPluggable() && PackageManager.isInstalled(mDownloadEntity.getPackageName())) { - detail_pb_progressbar.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_plugin_radius_style)); + detail_pb_progressbar.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_plugin_radius_style)); } else { - detail_pb_progressbar.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_normal_radius_style)); + detail_pb_progressbar.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_normal_radius_style)); } break; case cancel: diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java similarity index 99% rename from app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java rename to app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java index 4f41cafc91..0639feb55a 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java @@ -44,7 +44,7 @@ import org.greenrobot.eventbus.ThreadMode; * * @author 黄壮华 */ -public class GameDownLoadFragment extends BaseFragment implements View.OnClickListener { +public class GameDownloadFragment extends BaseFragment implements View.OnClickListener { private RecyclerViewExtended downloadmanager_rv_show; private GameDownloadFragmentAdapter adapter; diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java index 90f9fa0159..a1b831db8f 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java @@ -409,11 +409,11 @@ class GameUpdateFragmentAdapter extends BaseRecyclerAdapter { if (NetworkUtils.isWifiConnected(mContext)) { if ("插件化".equals(str)) { viewHolder.gu_item_btv_update.setText("插件化中"); - viewHolder.gu_item_btv_update.setTextColor(mContext.getResources().getColorStateList(R.color.text_plugining_style)); + viewHolder.gu_item_btv_update.setTextColor(ContextCompat.getColorStateList(mContext, R.color.text_plugining_style)); viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_plugining_style); } else { viewHolder.gu_item_btv_update.setText("更新中"); - viewHolder.gu_item_btv_update.setTextColor(mContext.getResources().getColorStateList(R.color.text_downloading_style)); + viewHolder.gu_item_btv_update.setTextColor(ContextCompat.getColorStateList(mContext, R.color.text_downloading_style)); viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_downloading_style); } @@ -482,12 +482,12 @@ class GameUpdateFragmentAdapter extends BaseRecyclerAdapter { if (updateEntity.isPluggable()) { viewHolder.gu_item_btv_update.setText("插件化中"); viewHolder.gu_item_btv_update.setTextColor( - mContext.getResources().getColorStateList(R.color.text_plugining_style)); + ContextCompat.getColorStateList(mContext, R.color.text_plugining_style)); viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_plugining_style); } else { viewHolder.gu_item_btv_update.setText("更新中"); viewHolder.gu_item_btv_update.setTextColor( - mContext.getResources().getColorStateList(R.color.text_downloading_style)); + ContextCompat.getColorStateList(mContext, R.color.text_downloading_style)); viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_downloading_style); } } From fc5b6ae4e4b528f0e6966821cef910627d1bf3ca Mon Sep 17 00:00:00 2001 From: CsHeng Date: Sat, 17 Jun 2017 15:52:42 +0800 Subject: [PATCH 6/6] =?UTF-8?q?1=E3=80=81=E5=A4=84=E7=90=86viewpager=20fra?= =?UTF-8?q?gment=202=E3=80=81=E5=B0=86MainActivity=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91=E7=A7=BB=E5=88=B0MainFragment?= =?UTF-8?q?=EF=BC=8CMessageFragment=EF=BC=8CNewsFragment=E5=90=8C=E7=90=86?= =?UTF-8?q?=EF=BC=8C=203=E3=80=81=E5=A4=84=E7=90=86=E9=A6=96=E9=A1=B5ViewP?= =?UTF-8?q?ager=E7=AD=89=E6=89=8B=E5=8A=A8=E8=AE=A1=E7=AE=97size=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=204=E3=80=81=E6=B7=BB=E5=8A=A0=E4=B8=80?= =?UTF-8?q?=E5=A0=86ScaleXXXView=EF=BC=8C=E5=8F=AF=E4=BB=A5=E7=94=A8?= =?UTF-8?q?=E6=9D=A5=E8=AE=BE=E5=AE=9AView=E6=9C=AC=E8=BA=AB=E7=9A=84?= =?UTF-8?q?=E6=AF=94=E4=BE=8B=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TODO 1、将DownloadManagerActivity也处理成Fragment 2、其他界面也慢慢处理成Fragment --- app/build.gradle | 1 + .../gh/base/BaseAppCompatToolBarActivity.java | 2 +- .../gh/base/{ => fragment}/BaseFragment.java | 21 +- .../base/fragment/BaseFragment_ViewPager.java | 109 ++++++ .../BaseFragment_ViewPager_Checkable.java | 105 +++++ .../java/com/gh/common/util/PackageUtils.java | 17 +- .../common/view/ScaleAutoScrollViewPager.java | 49 +++ .../gh/common/view/ScaleSimpleDraweeView.java | 63 +++ .../com/gh/gamecenter/GameDetailActivity.java | 2 +- .../java/com/gh/gamecenter/LibaoActivity.java | 2 +- .../java/com/gh/gamecenter/MainActivity.java | 351 +---------------- .../java/com/gh/gamecenter/SkipActivity.java | 2 +- .../gamecenter/adapter/ImagePagerAdapter.java | 1 + .../viewholder/GameViewPagerViewHolder.java | 12 +- .../gamecenter/download/FileSendFragment.java | 2 +- .../download/GameDownloadFragment.java | 2 +- .../download/GameUpdateFragment.java | 2 +- .../gh/gamecenter/fragment/GameFragment.java | 7 +- .../gh/gamecenter/fragment/MainFragment.java | 305 ++++++++++++++- .../gh/gamecenter/fragment/NewsFragment.java | 129 ++++++ ...agment.java => SearchToolbarFragment.java} | 120 +++--- .../gamecenter/game/GameFragmentAdapter.java | 67 +--- .../gamecenter/gamedetail/FuliFragment.java | 2 +- .../gamecenter/gamedetail/XinXiFragment.java | 2 +- .../gh/gamecenter/libao/Libao1Fragment.java | 2 +- .../gh/gamecenter/libao/Libao2Fragment.java | 2 +- .../gh/gamecenter/libao/Libao3Fragment.java | 2 +- .../gamecenter/message/CommentFragment.java | 2 +- .../gh/gamecenter/message/KeFuFragment.java | 2 +- .../gamecenter/message/MessageFragment.java | 158 +++----- .../gh/gamecenter/message/NoticeFragment.java | 2 +- .../com/gh/gamecenter/news/News1Fragment.java | 4 +- .../com/gh/gamecenter/news/News2Fragment.java | 4 +- .../com/gh/gamecenter/news/News3Fragment.java | 4 +- .../com/gh/gamecenter/news/News4Fragment.java | 4 +- .../com/gh/gamecenter/news/NewsFragment.java | 212 ---------- .../gamecenter/news/NewsWrapperFragment.java | 53 +++ .../gamecenter/personal/ConcernFragment.java | 2 +- .../gamecenter/personal/InstallFragment.java | 2 +- .../gamecenter/personal/PersonalFragment.java | 2 +- .../search/SearchGameDetailFragment.java | 2 +- .../search/SearchGameListFragment.java | 2 +- .../search/SearchHistoryFragment.java | 2 +- .../gamecenter/subject/SubjectFragment.java | 7 +- .../subject/SubjectTileFragment.java | 2 +- .../gh/gamecenter/wenda/WenDaFragment.java | 2 +- .../main/res/drawable/selector_ic_game.xml | 8 + .../main/res/drawable/selector_ic_message.xml | 8 + .../main/res/drawable/selector_ic_news.xml | 8 + .../main/res/drawable/selector_ic_user.xml | 8 + app/src/main/res/layout/activity_libao.xml | 2 +- app/src/main/res/layout/fragment_game.xml | 44 +-- .../{activity_main.xml => fragment_main.xml} | 59 ++- app/src/main/res/layout/fragment_message.xml | 20 +- app/src/main/res/layout/fragment_news.xml | 71 +++- .../res/layout/fragment_news_slidebar.xml | 65 ---- app/src/main/res/layout/fragment_page.xml | 17 - app/src/main/res/layout/fragment_toolbar.xml | 86 ++++ .../res/layout/fragment_wrapper_toolbar.xml | 18 + .../main/res/layout/game_viewpager_item.xml | 51 ++- app/src/main/res/layout/gamedetail_body.xml | 2 +- app/src/main/res/layout/home_actionbar.xml | 94 ----- app/src/main/res/values/dimens.xml | 2 +- libraries/EventBus/libs/EventBus-2.4.0.jar | Bin 45282 -> 0 bytes .../EventBus/src/main/AndroidManifest.xml | 6 - .../{EventBus => LGLibrary}/build.gradle | 3 + .../proguard-library.txt | 18 - .../LGLibrary/src/main/AndroidManifest.xml | 7 + .../adapter/BaseFragmentPagerAdapter.java | 53 +++ .../listeners/IllegalAttachException.java | 23 ++ .../listeners/OnBackPressedListener.java | 9 + .../listeners/OnBrowserActionListener.java | 13 + .../listeners/UpdateableFragment.java | 12 + .../lightgame/view/CheckableImageView.java | 42 ++ .../lightgame/view/CheckableLinearLayout.java | 57 +++ .../com/lightgame/view/DoubleTapTextView.java | 69 ++++ .../view/NoScrollableViewPager.java | 16 +- .../view/imageview/AspectRatioImageView.java | 73 ++++ .../view/imageview/RoundedDrawable.java | 366 ++++++++++++++++++ .../view/imageview/RoundedImageView.java | 323 ++++++++++++++++ .../RoundedTransformationBuilder.java | 121 ++++++ .../view/imageview/ScaleImageView.java | 47 +++ .../view/imageview/ScaleRoundedImageView.java | 47 +++ .../view/scale/ScaleFrameLayout.java | 50 +++ .../view/scale/ScaleLinearLayout.java | 51 +++ .../view/scale/ScaleRelativeLayout.java | 50 +++ .../lightgame/view/scale/ScaleViewPager.java | 51 +++ .../src/main/res/values/lightgame_attrs.xml | 21 + .../src/main/res/values/lightgame_ids.xml | 7 + settings.gradle | 1 + 90 files changed, 2803 insertions(+), 1145 deletions(-) rename app/src/main/java/com/gh/base/{ => fragment}/BaseFragment.java (85%) create mode 100755 app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager.java create mode 100755 app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager_Checkable.java create mode 100644 app/src/main/java/com/gh/common/view/ScaleAutoScrollViewPager.java create mode 100644 app/src/main/java/com/gh/common/view/ScaleSimpleDraweeView.java create mode 100644 app/src/main/java/com/gh/gamecenter/fragment/NewsFragment.java rename app/src/main/java/com/gh/gamecenter/fragment/{HomeFragment.java => SearchToolbarFragment.java} (64%) delete mode 100644 app/src/main/java/com/gh/gamecenter/news/NewsFragment.java create mode 100644 app/src/main/java/com/gh/gamecenter/news/NewsWrapperFragment.java create mode 100644 app/src/main/res/drawable/selector_ic_game.xml create mode 100644 app/src/main/res/drawable/selector_ic_message.xml create mode 100644 app/src/main/res/drawable/selector_ic_news.xml create mode 100644 app/src/main/res/drawable/selector_ic_user.xml rename app/src/main/res/layout/{activity_main.xml => fragment_main.xml} (76%) delete mode 100644 app/src/main/res/layout/fragment_news_slidebar.xml delete mode 100644 app/src/main/res/layout/fragment_page.xml create mode 100644 app/src/main/res/layout/fragment_toolbar.xml create mode 100644 app/src/main/res/layout/fragment_wrapper_toolbar.xml delete mode 100644 app/src/main/res/layout/home_actionbar.xml delete mode 100644 libraries/EventBus/libs/EventBus-2.4.0.jar delete mode 100644 libraries/EventBus/src/main/AndroidManifest.xml rename libraries/{EventBus => LGLibrary}/build.gradle (69%) rename libraries/{EventBus => LGLibrary}/proguard-library.txt (63%) create mode 100644 libraries/LGLibrary/src/main/AndroidManifest.xml create mode 100755 libraries/LGLibrary/src/main/java/com/lightgame/adapter/BaseFragmentPagerAdapter.java create mode 100644 libraries/LGLibrary/src/main/java/com/lightgame/listeners/IllegalAttachException.java create mode 100755 libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBackPressedListener.java create mode 100644 libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBrowserActionListener.java create mode 100755 libraries/LGLibrary/src/main/java/com/lightgame/listeners/UpdateableFragment.java create mode 100644 libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableImageView.java create mode 100644 libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableLinearLayout.java create mode 100644 libraries/LGLibrary/src/main/java/com/lightgame/view/DoubleTapTextView.java rename {app/src/main/java/com/gh/common => libraries/LGLibrary/src/main/java/com/lightgame}/view/NoScrollableViewPager.java (70%) create mode 100755 libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/AspectRatioImageView.java create mode 100755 libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedDrawable.java create mode 100755 libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedImageView.java create mode 100644 libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedTransformationBuilder.java create mode 100755 libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleImageView.java create mode 100755 libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleRoundedImageView.java create mode 100755 libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleFrameLayout.java create mode 100755 libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleLinearLayout.java create mode 100755 libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleRelativeLayout.java create mode 100644 libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleViewPager.java create mode 100644 libraries/LGLibrary/src/main/res/values/lightgame_attrs.xml create mode 100644 libraries/LGLibrary/src/main/res/values/lightgame_ids.xml diff --git a/app/build.gradle b/app/build.gradle index 3e1a0dff7f..38ebbd488a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -188,6 +188,7 @@ dependencies { compile libs.eventbus apt libs.eventbusApt + compile project(':libraries:LGLibrary') compile project(':libraries:MiPush') compile project(':libraries:MTA') compile project(':libraries:QQShare') diff --git a/app/src/main/java/com/gh/base/BaseAppCompatToolBarActivity.java b/app/src/main/java/com/gh/base/BaseAppCompatToolBarActivity.java index b9cc082191..7eafe7edbf 100644 --- a/app/src/main/java/com/gh/base/BaseAppCompatToolBarActivity.java +++ b/app/src/main/java/com/gh/base/BaseAppCompatToolBarActivity.java @@ -23,7 +23,7 @@ public abstract class BaseAppCompatToolBarActivity extends BaseAppCompatActivity private SystemBarTintManager mTintManager; // TODO 获取沉浸栏管理,要进行版本判断或者判断是否为空 - protected SystemBarTintManager getTintManager() { + public SystemBarTintManager getTintManager() { return mTintManager; } diff --git a/app/src/main/java/com/gh/base/BaseFragment.java b/app/src/main/java/com/gh/base/fragment/BaseFragment.java similarity index 85% rename from app/src/main/java/com/gh/base/BaseFragment.java rename to app/src/main/java/com/gh/base/fragment/BaseFragment.java index 99d1f5f07b..9002fff95a 100644 --- a/app/src/main/java/com/gh/base/BaseFragment.java +++ b/app/src/main/java/com/gh/base/fragment/BaseFragment.java @@ -1,6 +1,7 @@ -package com.gh.base; +package com.gh.base.fragment; import android.os.Bundle; +import android.support.annotation.LayoutRes; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; @@ -8,6 +9,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import com.gh.base.OnRequestCallBackListener; import com.gh.common.util.EntranceUtils; import com.gh.common.util.RuntimeUtils; import com.gh.gamecenter.eventbus.EBMiPush; @@ -22,7 +24,7 @@ import butterknife.ButterKnife; * Created by LGT on 2016/9/4. * Fragment 基类 */ -public abstract class BaseFragment extends Fragment implements OnRequestCallBackListener { +public abstract class BaseFragment extends Fragment implements OnRequestCallBackListener, View.OnClickListener { // TODO private view protected View view; @@ -31,8 +33,23 @@ public abstract class BaseFragment extends Fragment implements OnRequestCallBack protected String mEntrance; + @LayoutRes protected abstract int getLayoutId(); + /** + * 责任链,谁处理了就返回true,否则返回super.handleOnClick(View view) + * + * @return + */ + protected boolean handleOnClick(View view) { + return true; + } + + @Override + public void onClick(View v) { + handleOnClick(v); + } + protected void initView(View view) { } diff --git a/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager.java b/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager.java new file mode 100755 index 0000000000..3417aa45b3 --- /dev/null +++ b/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager.java @@ -0,0 +1,109 @@ +/** + * project: OPlay + *

+ *

+ * ======================================================================== + * amend date amend user amend reason + * 2013-3-6 CsHeng + */ + +package com.gh.base.fragment; + +import android.os.Bundle; +import android.support.annotation.IdRes; +import android.support.annotation.LayoutRes; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.support.v4.view.PagerAdapter; +import android.support.v4.view.ViewPager; +import android.view.View; + +import com.lightgame.adapter.BaseFragmentPagerAdapter; +import com.lightgame.view.DoubleTapTextView; + +import java.util.ArrayList; +import java.util.List; + +/** + * ViewPager 配合RadioGroup实现双切换
+ * 记得自己控制onCreateView返回和radioGroup里面radiobutton个数,Viewpager的布局
+ * + * @author CsHeng + * @date 2013-3-6 + */ +public abstract class BaseFragment_ViewPager extends BaseFragment implements DoubleTapTextView.OnDoubleTapListener { + + private static final String ARGS_INDEX = "index"; + protected int mCheckedIndex = 0; + protected PagerAdapter mAdapter; + protected List mFragmentsList; + protected ViewPager mViewPager; + + @LayoutRes + protected abstract int getLayoutId(); + + @IdRes + protected abstract int getViewPagerId(); + + protected abstract void initFragmentList(List fragments); + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mFragmentsList = new ArrayList<>(); + initFragmentList(mFragmentsList); + mAdapter = BaseFragmentPagerAdapter.newInstance(getChildFragmentManager(), mFragmentsList); + final Bundle args = getArguments(); + if (args != null) { + mCheckedIndex = args.getInt(ARGS_INDEX); + } + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + mViewPager = (ViewPager) view.findViewById(getViewPagerId()); + mViewPager.setOffscreenPageLimit(mFragmentsList.size()); + mViewPager.setAdapter(mAdapter); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + if (mCheckedIndex < mFragmentsList.size()) { + mViewPager.setCurrentItem(mCheckedIndex, false); + } + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + if (getArguments() != null) { + getArguments().putInt(ARGS_INDEX, mCheckedIndex); + } + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + if (mViewPager != null) { + mViewPager.setAdapter(null); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + if (mFragmentsList != null) { + mFragmentsList.clear(); + } + } + + @Override + public boolean onDoubleTap() { + final Fragment fragment = mFragmentsList.get(mViewPager.getCurrentItem()); + return fragment instanceof DoubleTapTextView.OnDoubleTapListener && ((DoubleTapTextView.OnDoubleTapListener) + fragment).onDoubleTap(); + } + +} diff --git a/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager_Checkable.java b/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager_Checkable.java new file mode 100755 index 0000000000..8e0be2c8b7 --- /dev/null +++ b/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager_Checkable.java @@ -0,0 +1,105 @@ +/** + * project: OPlay + *

+ *

+ * ======================================================================== + * amend date amend user amend reason + * 2013-3-6 CsHeng + */ + +package com.gh.base.fragment; + +import android.os.Bundle; +import android.support.annotation.IdRes; +import android.support.annotation.Nullable; +import android.support.v4.view.ViewPager; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Checkable; + + +/** + * ViewPager 配合ViewGroup Checkable实现双切换
+ * 记得自己控制onCreateView返回和ViewGroup里面Checkable个数,ViewPager的布局
+ * + * @author CsHeng + * @date 2013-3-6 + * @update 2014-09-29 + */ +public abstract class BaseFragment_ViewPager_Checkable extends BaseFragment_ViewPager implements + ViewPager.OnPageChangeListener { + + protected ViewGroup mCheckableGroup; + + @IdRes + protected abstract int getCheckableGroupId(); + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + mCheckableGroup = (ViewGroup) view.findViewById(getCheckableGroupId()); + for (int i = 0, size = mCheckableGroup.getChildCount(); i < size; i++) { + mCheckableGroup.getChildAt(i).setOnClickListener(this); + } + mViewPager.addOnPageChangeListener(this); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + mViewPager.removeOnPageChangeListener(this); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + checkIndex(mCheckedIndex); + } + + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + + } + + @Override + public void onPageSelected(int index) { + onPageChanged(index); + } + + @Override + public void onPageScrollStateChanged(int state) { + + } + + @Override + protected boolean handleOnClick(View view) { + final int toCheck = mCheckableGroup.indexOfChild(view); + if (toCheck != -1) { + mViewPager.setCurrentItem(toCheck, false); + return true; + } + return super.handleOnClick(view); + } + + protected void checkIndex(int index) { + final int childCount = mCheckableGroup.getChildCount(); + if (index < childCount && mCheckedIndex < childCount) { + final View toChecked = mCheckableGroup.getChildAt(index); + if (toChecked instanceof Checkable) { + ((Checkable) toChecked).setChecked(true); + } + if (index != mCheckedIndex) { + final View checkedChild = mCheckableGroup.getChildAt(mCheckedIndex); + if (checkedChild instanceof Checkable) { + ((Checkable) checkedChild).setChecked(false); + } + } + mCheckedIndex = index; + } + } + + protected void onPageChanged(int index) { + checkIndex(index); + } + +} diff --git a/app/src/main/java/com/gh/common/util/PackageUtils.java b/app/src/main/java/com/gh/common/util/PackageUtils.java index aca1629360..73dc01c5f5 100644 --- a/app/src/main/java/com/gh/common/util/PackageUtils.java +++ b/app/src/main/java/com/gh/common/util/PackageUtils.java @@ -91,12 +91,10 @@ public class PackageUtils { private static String[] parseSignature(byte[] signature) { String[] ret = null; try { - CertificateFactory certFactory = CertificateFactory - .getInstance("X.509"); - X509Certificate cert = (X509Certificate) certFactory - .generateCertificate(new ByteArrayInputStream(signature)); - ret = new String[]{cert.getPublicKey().toString(), - cert.getSerialNumber().toString()}; + CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); + X509Certificate cert = (X509Certificate) certFactory.generateCertificate( + new ByteArrayInputStream(signature)); + ret = new String[]{cert.getPublicKey().toString(), cert.getSerialNumber().toString()}; } catch (CertificateException e) { e.printStackTrace(); } @@ -159,8 +157,8 @@ public class PackageUtils { */ public static Intent getUninstallIntent(Context context, String path) { Intent uninstallIntent = new Intent(); - uninstallIntent.setAction("android.intent.action.DELETE"); - uninstallIntent.addCategory("android.intent.category.DEFAULT"); + uninstallIntent.setAction(Intent.ACTION_DELETE); + uninstallIntent.addCategory(Intent.CATEGORY_DEFAULT); String packageName = getPackageNameByPath(context, path); uninstallIntent.setData(Uri.parse("package:" + packageName)); InstallUtils.getInstance(context).addUninstall(packageName); @@ -172,8 +170,7 @@ public class PackageUtils { */ public static String getPackageNameByPath(Context context, String path) { PackageManager packageManager = context.getApplicationContext().getPackageManager(); - PackageInfo info = packageManager.getPackageArchiveInfo(path, - PackageManager.GET_ACTIVITIES); + PackageInfo info = packageManager.getPackageArchiveInfo(path, PackageManager.GET_ACTIVITIES); if (info != null) { ApplicationInfo appInfo = info.applicationInfo; return appInfo.packageName; diff --git a/app/src/main/java/com/gh/common/view/ScaleAutoScrollViewPager.java b/app/src/main/java/com/gh/common/view/ScaleAutoScrollViewPager.java new file mode 100644 index 0000000000..bb934f13d5 --- /dev/null +++ b/app/src/main/java/com/gh/common/view/ScaleAutoScrollViewPager.java @@ -0,0 +1,49 @@ +package com.gh.common.view; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; + +import com.gh.gamecenter.R; + +import cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager; + +/** + * @author CsHeng + * @Date 17/06/2017 + * @Time 12:24 PM + */ + +public class ScaleAutoScrollViewPager extends AutoScrollViewPager { + + private boolean mMeasureByHeight = false; // default width + private float mScale = 1f;// default square + + public ScaleAutoScrollViewPager(Context context) { + super(context); + } + + public ScaleAutoScrollViewPager(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mScale = a.getFloat(R.styleable.ScaleView_fractionValue, mScale); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mScale), height); + } else { + setMeasuredDimension(width, (int) (width * mScale)); + } + + } +} diff --git a/app/src/main/java/com/gh/common/view/ScaleSimpleDraweeView.java b/app/src/main/java/com/gh/common/view/ScaleSimpleDraweeView.java new file mode 100644 index 0000000000..569dfd766f --- /dev/null +++ b/app/src/main/java/com/gh/common/view/ScaleSimpleDraweeView.java @@ -0,0 +1,63 @@ +package com.gh.common.view; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; + +import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.gamecenter.R; + +/** + * @author CsHeng + * @Date 17/06/2017 + * @Time 2:46 PM + */ + +public class ScaleSimpleDraweeView extends SimpleDraweeView { + + private boolean mMeasureByHeight = false; // default width + + private float mFraction = 1f;// default square + + public ScaleSimpleDraweeView(Context context) { + super(context); + } + + public ScaleSimpleDraweeView(Context context, AttributeSet attrs) { + super(context, attrs); + init(context, attrs); + } + + public ScaleSimpleDraweeView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(context, attrs); + } + + public ScaleSimpleDraweeView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + init(context, attrs); + } + + public void init(Context context, AttributeSet attrs) { + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mFraction), height); + } else { + setMeasuredDimension(width, (int) (width * mFraction)); + } + } + + +} diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java index e975db4e0f..6a5b336dbe 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java @@ -37,7 +37,7 @@ import com.gh.common.util.PackageUtils; import com.gh.common.util.ShareUtils; import com.gh.common.util.Utils; import com.gh.common.view.DownloadDialog; -import com.gh.common.view.NoScrollableViewPager; +import com.lightgame.view.NoScrollableViewPager; import com.gh.download.DataWatcher; import com.gh.download.DownloadEntity; import com.gh.download.DownloadManager; diff --git a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java index 8392e676ef..d62e3dc6c7 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java @@ -11,7 +11,7 @@ import android.widget.TextView; import com.gh.base.BaseActivity; import com.gh.common.util.DisplayUtils; -import com.gh.common.view.NoScrollableViewPager; +import com.lightgame.view.NoScrollableViewPager; import com.gh.base.adapter.FragmentAdapter; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index b7e1c65fa8..b425eb8b44 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -5,29 +5,20 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; -import android.graphics.Color; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; import android.provider.Settings; import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentTransaction; import android.support.v4.util.ArrayMap; import android.text.Html; import android.text.Spanned; import android.text.TextUtils; import android.view.KeyEvent; -import android.view.View; -import android.view.View.OnClickListener; -import android.widget.CheckedTextView; -import android.widget.ImageView; import com.gh.base.AppController; import com.gh.base.BaseActivity; -import com.gh.base.SearchBarHint; import com.gh.common.constant.Config; import com.gh.common.util.ClassUtils; import com.gh.common.util.DataCollectionUtils; @@ -47,37 +38,27 @@ import com.gh.download.DataWatcher; import com.gh.download.DownloadEntity; import com.gh.download.DownloadManager; import com.gh.download.DownloadStatus; -import com.gh.gamecenter.db.KeFuMarkReadDao; -import com.gh.gamecenter.db.MessageMarkReadDao; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.db.info.GameInfo; -import com.gh.gamecenter.db.info.MessageMarkReadInfo; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameDigestEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.GameUpdateEntity; -import com.gh.gamecenter.entity.MessageUnreadEntity; import com.gh.gamecenter.eventbus.EBDownloadStatus; import com.gh.gamecenter.eventbus.EBPackage; -import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBShowDialog; -import com.gh.gamecenter.eventbus.EBSkip; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.fragment.GameFragment; +import com.gh.gamecenter.fragment.MainFragment; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.manager.FilterManager; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.manager.PackageManager; import com.gh.gamecenter.manager.UpdateManager; -import com.gh.gamecenter.message.MessageFragment; -import com.gh.gamecenter.news.NewsFragment; -import com.gh.gamecenter.personal.PersonalFragment; import com.gh.gamecenter.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.ObservableUtil; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; -import com.readystatesoftware.systembartint.SystemBarTintManager; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -95,7 +76,6 @@ import java.util.concurrent.CountDownLatch; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; -import butterknife.BindView; import okhttp3.MediaType; import okhttp3.RequestBody; import okhttp3.ResponseBody; @@ -109,40 +89,13 @@ import rx.schedulers.Schedulers; /** * 项目的主Activity,3个Fragment都嵌入在这里。 */ -public class MainActivity extends BaseActivity implements OnClickListener { +public class MainActivity extends BaseActivity { - public static final int INDEX_GAME = 0; - public static final int INDEX_NEWS = 1; - public static final int INDEX_MESSAGE = 2; - public static final int INDEX_PERSONAL = 3; public final static String EB_MAINACTIVITY_TAG = "MainActivity"; public final static String EB_SKIP_GAMEFRAGMENT = "GameFragment"; - @BindView(R.id.main_iv_game) - ImageView ivGame; - @BindView(R.id.main_iv_news) - ImageView ivNews; - @BindView(R.id.main_iv_message) - ImageView ivMessage; - @BindView(R.id.main_iv_personal) - ImageView ivPersonal; - @BindView(R.id.main_tv_game) - CheckedTextView tvGame; - @BindView(R.id.main_tv_news) - CheckedTextView tvNews; - @BindView(R.id.main_tv_message) - CheckedTextView tvMessage; - @BindView(R.id.main_tv_personal) - CheckedTextView tvPersonal; - @BindView(R.id.main_iv_message_hint) - View mMessageHint; - private NewsFragment newsFragment; - private MessageFragment messageFragment; - private PersonalFragment personalFragment; - private GameFragment gameFragment; private SharedPreferences sp; private ConcernManager concernManager; - private ArrayList mSearchHintLint; - private int currentTab; + private boolean isSkipped; Runnable skipRun = new Runnable() { @Override @@ -374,13 +327,12 @@ public class MainActivity extends BaseActivity implements OnClickListener { @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - outState.putInt("currentTab", currentTab); outState.putBoolean("isSkipped", isSkipped); } @Override protected int getLayoutId() { - return R.layout.activity_main; + return R.layout.layout_wrapper_activity; } @Override @@ -681,19 +633,18 @@ public class MainActivity extends BaseActivity implements OnClickListener { isSkipped = false; - initViews(); +// initViews(); if (savedInstanceState != null) { - currentTab = savedInstanceState.getInt("currentTab"); +// currentTab = savedInstanceState.getInt("currentTab"); isSkipped = savedInstanceState.getBoolean("isSkipped"); - } else { - currentTab = 0; +// } else { +// currentTab = 0; } - setTabSelection(currentTab); + + replaceFragment(new MainFragment()); concernManager = new ConcernManager(getApplicationContext()); - getSearchHints(); - if (!isNewFirstLaunch && sp.getBoolean("autoupdate", true)) { // 检查助手更新 UpdateManager.getInstance(this).checkUpdate(true, null); @@ -745,9 +696,6 @@ public class MainActivity extends BaseActivity implements OnClickListener { getSuggestionType(); - checkMarkRead(); // 检查是否有记录已读消息 - - checkMessageUnread(true); // 检查是否有未读消息 } @Override @@ -762,123 +710,6 @@ public class MainActivity extends BaseActivity implements OnClickListener { handler.removeCallbacksAndMessages(null); } - private void checkMessageUnread(boolean isCheck) { - TokenUtils.getToken(this, isCheck) - .flatMap(new Func1>() { - @Override - public Observable call(String token) { - return RetrofitManager.getMessage().getMessageUnread(token); - } - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response() { - @Override - public void onResponse(MessageUnreadEntity response) { - super.onResponse(response); - if (response != null && response.getKefuList() != null && response.getKefuList().size() > 0) { - KeFuMarkReadDao dao = new KeFuMarkReadDao(MainActivity.this); - for (int i = 0; i < response.getKefuList().size(); i++) { - if (dao.isMarkRead(response.getKefuList().get(i))) { - response.getKefuList().remove(i); - i--; - } - } - - if (response.getKefuList() != null && response.getKefuList().size() > 0) { - mMessageHint.setVisibility(View.VISIBLE); - } - - } - - if (response != null && response.getComment() > 0) { - mMessageHint.setVisibility(View.VISIBLE); - } - } - - @Override - public void onFailure(HttpException e) { - if (e != null && e.code() == 401) { - checkMessageUnread(false); - } - } - }); - } - - private void checkMarkRead() { - MessageMarkReadDao readDao = new MessageMarkReadDao(MainActivity.this); - List readInfos = readDao.getAll(); - if (readInfos == null || readInfos.size() == 0) { - return; - } - - MessageMarkReadInfo readInfo = readInfos.get(0); - HashMap kefuIds = readInfo.getKefuIds(); - HashMap noticeIds = readInfo.getNoticeIds(); - - if (kefuIds != null && kefuIds.size() > 0) { - Utils.log("======提交已读客服消息"); - JSONArray array = new JSONArray(); - for (String s : kefuIds.keySet()) { - array.put(s); - } - Utils.log("======客服id::" + array.toString()); - RequestBody body = RequestBody.create(MediaType.parse("application/json"), array.toString()); - postMarkRead("kefu", true, body, readDao); - } - - if (noticeIds != null && noticeIds.size() > 0) { - Utils.log("======提交已读公告消息"); - JSONArray array = new JSONArray(); - for (String s : noticeIds.keySet()) { - array.put(s); - } - Utils.log("======客服id::" + array.toString()); - RequestBody body = RequestBody.create(MediaType.parse("application/json"), array.toString()); - postMarkRead("notice", true, body, readDao); - } - - } - - private void postMarkRead(final String type, boolean isCkeck, final RequestBody body, final MessageMarkReadDao readDao) { - TokenUtils - .getToken(MainActivity.this, isCkeck) - .flatMap(new Func1>() { - @Override - public Observable call(String token) { - if ("kefu".equals(type)) { - return RetrofitManager.getMessage().postMarkKeFuRead(body, token); - } else { - return RetrofitManager.getMessage().postMarkNoticeRead(body, token); - } - } - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response() { - @Override - public void onResponse(ResponseBody response) { - super.onResponse(response); - Utils.log("=========postMarkRead::" + type); - if ("kefu".equals(type)) { - readDao.cleanKeFu(); - } else { - readDao.cleanNotice(); - } - - } - - @Override - public void onFailure(HttpException e) { - super.onFailure(e); - if (e != null && e.code() == 401) { - postMarkRead(type, false, body, readDao); - } - } - }); - - } - private void getSuggestionType() { RetrofitManager .getApi() @@ -996,7 +827,7 @@ public class MainActivity extends BaseActivity implements OnClickListener { final ArrayList concernDigest = new ArrayList<>(); if (arrGameId.size() == 0) { - EventBus.getDefault().post(new EBUISwitch("NewsFragment", -2)); // 没有关注 + EventBus.getDefault().post(new EBUISwitch("NewsWrapperFragment", -2)); // 没有关注 } List> list = new ArrayList<>(); @@ -1019,13 +850,6 @@ public class MainActivity extends BaseActivity implements OnClickListener { }); } - private void initViews() { - findViewById(R.id.main_ll_game).setOnClickListener(this); - findViewById(R.id.main_ll_news).setOnClickListener(this); - findViewById(R.id.main_ll_message).setOnClickListener(this); - findViewById(R.id.main_ll_personal).setOnClickListener(this); - } - private void checkPermission() { List installedList = getPackageManager().getInstalledPackages(0); if (installedList.isEmpty()) { @@ -1049,32 +873,6 @@ public class MainActivity extends BaseActivity implements OnClickListener { } } - private void getSearchHints() { - RetrofitManager.getApi().getSearchHints() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response>() { - @Override - public void onResponse(ArrayList response) { - if (response.size() != 0) { -// if (response.size() == 1) { -// mSearchHintLint = response.get(0); -// } else { -// mSearchHintLint = response.get(RandomUtils.nextInt(response.size())); -// } - - mSearchHintLint = response; - if (gameFragment != null) { - gameFragment.setHint(mSearchHintLint); - } - if (newsFragment != null) { - newsFragment.setHint(mSearchHintLint); - } - } - } - }); - } - // 获取META-INF中的plugin_update 文件,判断是否从游戏插件中下载的app,是则获取游戏id,启动游戏更新,下载该游戏 private void getPluginUpdate() { ApplicationInfo appinfo = getApplicationInfo(); @@ -1109,133 +907,6 @@ public class MainActivity extends BaseActivity implements OnClickListener { } } - @Override - public void onClick(View v) { - final int id = v.getId(); - switch (v.getId()) { - case R.id.main_ll_game: - EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, INDEX_GAME)); - setTabSelection(INDEX_GAME); - break; - case R.id.main_ll_news: - EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, INDEX_NEWS)); - setTabSelection(INDEX_NEWS); - break; - case R.id.main_ll_message: - EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, INDEX_MESSAGE)); - setTabSelection(INDEX_MESSAGE); - break; - case R.id.main_ll_personal: - EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, INDEX_PERSONAL)); - setTabSelection(INDEX_PERSONAL); - break; - default: - break; - } - - SystemBarTintManager tintManager = getTintManager(); - if (tintManager != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - if (id == R.id.main_ll_personal) { - tintManager.setStatusBarTintResource(R.color.theme); - } else if (Build.MANUFACTURER.equals("Meizu") || Build.MANUFACTURER.equals("Xiaomi")) { - tintManager.setStatusBarTintColor(Color.WHITE); - } else { - tintManager.setStatusBarTintColor(Color.BLACK); - } - } - } - - private void setTabSelection(int index) { - clearSelection(); - FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); - hideFragments(transaction); - switch (index) { - case INDEX_GAME: - ivGame.setImageResource(R.drawable.ic_game_select); - tvGame.setChecked(true); - gameFragment = alterFragment(transaction, GameFragment.class); - break; - case INDEX_NEWS: - ivNews.setImageResource(R.drawable.ic_news_select); - tvNews.setChecked(true); - newsFragment = alterFragment(transaction, NewsFragment.class); - break; - case INDEX_MESSAGE: - ivMessage.setImageResource(R.drawable.ic_message_select); - tvMessage.setChecked(true); - messageFragment = alterFragment(transaction, MessageFragment.class); - break; - case INDEX_PERSONAL: - ivPersonal.setImageResource(R.drawable.ic_user_select); - tvPersonal.setChecked(true); - personalFragment = alterFragment(transaction, PersonalFragment.class); - break; - default: - break; - } - currentTab = index; - transaction.commit(); - } - - // 清除掉所有的选中状态。 - private void clearSelection() { - ivGame.setImageResource(R.drawable.ic_game_unselect); - ivNews.setImageResource(R.drawable.ic_news_unselect); - ivMessage.setImageResource(R.drawable.ic_message_unselect); - ivPersonal.setImageResource(R.drawable.ic_user_unselect); - - tvGame.setChecked(false); - tvNews.setChecked(false); - tvMessage.setChecked(false); - tvPersonal.setChecked(false); - } - - // 将所有的Fragment都置为隐藏状态。 - private void hideFragments(FragmentTransaction transaction) { - List list = getSupportFragmentManager().getFragments(); - if (list != null) { - for (Fragment fragment : list) { - transaction.hide(fragment); - } - } - } - - // private T alterFragment(Class cls) { - private T alterFragment(FragmentTransaction transaction, Class cls) { - T fragmentByTag = (T) getSupportFragmentManager().findFragmentByTag(cls.getSimpleName()); - try { - if (fragmentByTag != null) { - transaction.show(fragmentByTag); - } else { - fragmentByTag = cls.newInstance(); - transaction.add(R.id.main_content, fragmentByTag, cls.getSimpleName()); - if (fragmentByTag instanceof SearchBarHint && mSearchHintLint != null && mSearchHintLint.size() > 0) { - ((SearchBarHint) fragmentByTag).setHint(mSearchHintLint); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return fragmentByTag; - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBSkip skip) { - if (EB_SKIP_GAMEFRAGMENT.equals(skip.getType())) { - EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, INDEX_GAME)); - setTabSelection(INDEX_GAME); - EventBus.getDefault().post(new EBSkip(EB_MAINACTIVITY_TAG, skip.getCurrentItem())); - } - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBReuse reuse) { - if (MessageFragment.MESSAGE_READ_OVER.equals(reuse.getType())) { - Utils.log("======= over??"); - mMessageHint.setVisibility(View.GONE); - } - } - @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBPackage busFour) { final String packageName = busFour.getPackageName(); diff --git a/app/src/main/java/com/gh/gamecenter/SkipActivity.java b/app/src/main/java/com/gh/gamecenter/SkipActivity.java index 2974e5fd42..cc97b12c43 100644 --- a/app/src/main/java/com/gh/gamecenter/SkipActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SkipActivity.java @@ -38,7 +38,7 @@ public class SkipActivity extends BaseActivity { @Override protected int getLayoutId() { //TODO 暂时无意义设置,避免崩溃罢了,修改完主题和Toolbar相关内容会干掉这个 - return R.layout.activity_main; + return R.layout.fragment_main; } @Override 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 9a10c42c60..e75347b229 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java @@ -70,6 +70,7 @@ public class ImagePagerAdapter extends RecyclingPagerAdapter { ImageUtils.getInstance().display(mContext.getResources(), (SimpleDraweeView) view, slideEntity.getImage(), R.drawable.preload); + // indicator.setPosition(mSlideEntityList.mSize(), getPosition(position)); view.setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java index 027209efb0..e4f5b76ff6 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java @@ -1,8 +1,9 @@ package com.gh.gamecenter.adapter.viewholder; import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; import android.widget.LinearLayout; -import android.widget.RelativeLayout; import android.widget.TextView; import com.gh.base.BaseRecyclerViewHolder; @@ -23,15 +24,18 @@ public class GameViewPagerViewHolder extends BaseRecyclerViewHolder { public LinearLayout viewpager_ll_hint; @BindView(R.id.viewpager_tv_failure) public TextView viewpager_tv_failure; - @BindView(R.id.home_subject_rl) - public RelativeLayout subjectRl; @BindView(R.id.home_subject_failure) public TextView subjectFailure; @BindView(R.id.home_subject_ll) public LinearLayout subjectLl; - public GameViewPagerViewHolder(View itemView) { + public GameViewPagerViewHolder(View itemView, int width) { super(itemView); + // 傻逼viewpager拿不到高度,一定要自己算下,妈的,先不管了 + FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, (int) (width / 16f * 7f)); + viewPager.setLayoutParams(params); + } } diff --git a/app/src/main/java/com/gh/gamecenter/download/FileSendFragment.java b/app/src/main/java/com/gh/gamecenter/download/FileSendFragment.java index db930a33d1..a5724f9943 100644 --- a/app/src/main/java/com/gh/gamecenter/download/FileSendFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/FileSendFragment.java @@ -6,7 +6,7 @@ import android.text.Html; import android.view.View; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DialogUtils; import com.gh.common.util.StringUtils; import com.gh.gamecenter.CleanApkActivity; diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java index 0639feb55a..52a438c1ac 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java @@ -15,7 +15,7 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.constant.Constants; import com.gh.common.util.DialogUtils; import com.gh.common.util.NetworkUtils; diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java index ff40f55e54..f36aa86354 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java @@ -7,7 +7,7 @@ import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.EntranceUtils; import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; diff --git a/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java index 5ce40754a5..9eeeef4aff 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java @@ -37,7 +37,7 @@ import java.util.List; * Created by khy on 2016/12/6. * 新主界面 */ -public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnRefreshListener, OnRequestCallBackListener { +public class GameFragment extends SearchToolbarFragment implements SwipeRefreshLayout.OnRefreshListener, OnRequestCallBackListener { private SwipeRefreshLayout fm_game_swipe_refresh; private RecyclerView fm_game_rv_list; @@ -91,8 +91,7 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR @Override protected void initView(final View view) { super.initView(view); - View inflate = View.inflate(getActivity(), R.layout.fragment_game, null); - ((LinearLayout) view).addView(inflate); + reuse_no_connection = (LinearLayout) view.findViewById(R.id.reuse_no_connection); fm_game_swipe_refresh = (SwipeRefreshLayout) view.findViewById(R.id.fm_game_swipe_refresh); fm_game_rv_list = (RecyclerView) view.findViewById(R.id.fm_game_rv_list); @@ -115,7 +114,7 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR ((DefaultItemAnimator) fm_game_rv_list.getItemAnimator()).setSupportsChangeAnimations(false); fm_game_rv_list.setHasFixedSize(true); fm_game_rv_list.setLayoutManager(new LinearLayoutManager(getActivity())); - adapter = new GameFragmentAdapter(GameFragment.this, fm_game_swipe_refresh); + adapter = new GameFragmentAdapter(this, fm_game_swipe_refresh); fm_game_rv_list.setAdapter(adapter); fm_game_rv_list.addOnScrollListener(new RecyclerView.OnScrollListener() { diff --git a/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java index ba241ecb20..1af3438a05 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java @@ -1,10 +1,295 @@ -//package com.gh.gamecenter.fragment; -// -///** -// * @author CsHeng -// * @Date 05/05/2017 -// * @Time 3:26 PM -// */ -// -//public class MainFragment { -//} +package com.gh.gamecenter.fragment; + +import android.content.Context; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.view.View; + +import com.gh.base.SearchBarHint; +import com.gh.base.fragment.BaseFragment_ViewPager_Checkable; +import com.gh.common.util.TokenUtils; +import com.gh.common.util.Utils; +import com.gh.gamecenter.MainActivity; +import com.gh.gamecenter.R; +import com.gh.gamecenter.db.KeFuMarkReadDao; +import com.gh.gamecenter.db.MessageMarkReadDao; +import com.gh.gamecenter.db.info.MessageMarkReadInfo; +import com.gh.gamecenter.entity.MessageUnreadEntity; +import com.gh.gamecenter.eventbus.EBReuse; +import com.gh.gamecenter.eventbus.EBSkip; +import com.gh.gamecenter.eventbus.EBUISwitch; +import com.gh.gamecenter.message.MessageFragment; +import com.gh.gamecenter.news.NewsWrapperFragment; +import com.gh.gamecenter.personal.PersonalFragment; +import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.retrofit.RetrofitManager; +import com.lightgame.view.NoScrollableViewPager; +import com.readystatesoftware.systembartint.SystemBarTintManager; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; +import org.json.JSONArray; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import butterknife.BindView; +import okhttp3.MediaType; +import okhttp3.RequestBody; +import okhttp3.ResponseBody; +import retrofit2.HttpException; +import rx.Observable; +import rx.android.schedulers.AndroidSchedulers; +import rx.functions.Func1; +import rx.schedulers.Schedulers; + +import static com.gh.gamecenter.MainActivity.EB_MAINACTIVITY_TAG; +import static com.gh.gamecenter.MainActivity.EB_SKIP_GAMEFRAGMENT; + +/** + * @author CsHeng + * @Date 05/05/2017 + * @Time 3:26 PM + */ + +public class MainFragment extends BaseFragment_ViewPager_Checkable { + + public static final int INDEX_GAME = 0; + public static final int INDEX_NEWS = 1; + public static final int INDEX_MESSAGE = 2; + public static final int INDEX_PERSONAL = 3; + private ArrayList mSearchHintLint; + @BindView(R.id.main_iv_message_hint) + View mMessageHint; + + @Override + protected int getLayoutId() { + return R.layout.fragment_main; + } + + @Override + protected int getCheckableGroupId() { + return R.id.lightgame_tab_container; + } + + @Override + protected int getViewPagerId() { + return R.id.lightgame_tab_viewpager; + } + + @Override + protected void initFragmentList(List fragments) { + fragments.add(new GameFragment()); + fragments.add(new NewsWrapperFragment()); + fragments.add(new MessageFragment()); + fragments.add(new PersonalFragment()); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + checkMarkRead(getContext()); // 检查是否有记录已读消息 + checkMessageUnread(getContext(), true); // 检查是否有未读消息 + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + if (mViewPager instanceof NoScrollableViewPager) { + ((NoScrollableViewPager) mViewPager).setScrollable(false); + } + getSearchHints(); + } + + @Override + protected boolean handleOnClick(View view) { + boolean res = super.handleOnClick(view); + EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, mCheckedIndex)); + return res; + } + + @Override + protected void onPageChanged(int index) { + super.onPageChanged(index); + + Fragment fragment = mFragmentsList.get(index); + if (fragment instanceof SearchBarHint && mSearchHintLint != null && !mSearchHintLint.isEmpty()) { + ((SearchBarHint) fragment).setHint(mSearchHintLint); + } + + if (getActivity() instanceof MainActivity) { + SystemBarTintManager tintManager = ((MainActivity) getActivity()).getTintManager(); + if (tintManager != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + if (index == INDEX_PERSONAL) { + tintManager.setStatusBarTintResource(R.color.theme); + } else if (Build.MANUFACTURER.equals("Meizu") || Build.MANUFACTURER.equals("Xiaomi")) { + tintManager.setStatusBarTintColor(Color.WHITE); + } else { + tintManager.setStatusBarTintColor(Color.BLACK); + } + } + } + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEventMainThread(EBSkip skip) { + if (EB_SKIP_GAMEFRAGMENT.equals(skip.getType())) { + EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, INDEX_GAME)); + checkIndex(INDEX_GAME); + EventBus.getDefault().post(new EBSkip(EB_MAINACTIVITY_TAG, skip.getCurrentItem())); + } + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEventMainThread(EBReuse reuse) { + if (MessageFragment.MESSAGE_READ_OVER.equals(reuse.getType())) { + if (mMessageHint != null) { + mMessageHint.setVisibility(View.GONE); + } + } + } + + private void getSearchHints() { + RetrofitManager.getApi().getSearchHints() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Response>() { + @Override + public void onResponse(ArrayList response) { + if (response.size() != 0) { + mSearchHintLint = response; + + for (Fragment fragment : mFragmentsList) { + if (fragment instanceof SearchBarHint) { + ((SearchBarHint) fragment).setHint(mSearchHintLint); + } + } + } + } + }); + } + + private void checkMessageUnread(final Context context, boolean isCheck) { + TokenUtils.getToken(context, isCheck) + .flatMap(new Func1>() { + @Override + public Observable call(String token) { + return RetrofitManager.getMessage().getMessageUnread(token); + } + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Response() { + @Override + public void onResponse(MessageUnreadEntity response) { + super.onResponse(response); + if (response != null && response.getKefuList() != null && response.getKefuList().size() > 0) { + KeFuMarkReadDao dao = new KeFuMarkReadDao(context); + for (int i = 0; i < response.getKefuList().size(); i++) { + if (dao.isMarkRead(response.getKefuList().get(i))) { + response.getKefuList().remove(i); + i--; + } + } + + if (response.getKefuList() != null && response.getKefuList().size() > 0) { + mMessageHint.setVisibility(View.VISIBLE); + } + + } + + if (response != null && response.getComment() > 0) { + mMessageHint.setVisibility(View.VISIBLE); + } + } + + @Override + public void onFailure(HttpException e) { + if (e != null && e.code() == 401) { + checkMessageUnread(getContext(), false); + } + } + }); + } + + private void checkMarkRead(Context context) { + MessageMarkReadDao readDao = new MessageMarkReadDao(context); + List readInfos = readDao.getAll(); + if (readInfos == null || readInfos.size() == 0) { + return; + } + + MessageMarkReadInfo readInfo = readInfos.get(0); + HashMap kefuIds = readInfo.getKefuIds(); + HashMap noticeIds = readInfo.getNoticeIds(); + + if (kefuIds != null && kefuIds.size() > 0) { + Utils.log("======提交已读客服消息"); + JSONArray array = new JSONArray(); + for (String s : kefuIds.keySet()) { + array.put(s); + } + Utils.log("======客服id::" + array.toString()); + RequestBody body = RequestBody.create(MediaType.parse("application/json"), array.toString()); + postMarkRead(context, "kefu", true, body, readDao); + } + + if (noticeIds != null && noticeIds.size() > 0) { + Utils.log("======提交已读公告消息"); + JSONArray array = new JSONArray(); + for (String s : noticeIds.keySet()) { + array.put(s); + } + Utils.log("======客服id::" + array.toString()); + RequestBody body = RequestBody.create(MediaType.parse("application/json"), array.toString()); + postMarkRead(context, "notice", true, body, readDao); + } + + } + + private void postMarkRead(final Context context, final String type, boolean isCkeck, final RequestBody body, + final MessageMarkReadDao readDao) { + TokenUtils.getToken(context, isCkeck) + .flatMap(new Func1>() { + @Override + public Observable call(String token) { + if ("kefu".equals(type)) { + return RetrofitManager.getMessage().postMarkKeFuRead(body, token); + } else { + return RetrofitManager.getMessage().postMarkNoticeRead(body, token); + } + } + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Response() { + @Override + public void onResponse(ResponseBody response) { + super.onResponse(response); + Utils.log("=========postMarkRead::" + type); + if ("kefu".equals(type)) { + readDao.cleanKeFu(); + } else { + readDao.cleanNotice(); + } + + } + + @Override + public void onFailure(HttpException e) { + super.onFailure(e); + if (e != null && e.code() == 401) { + postMarkRead(context, type, false, body, readDao); + } + } + }); + + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/fragment/NewsFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/NewsFragment.java new file mode 100644 index 0000000000..636ff5a57d --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/fragment/NewsFragment.java @@ -0,0 +1,129 @@ +package com.gh.gamecenter.fragment; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.util.DisplayMetrics; +import android.view.View; +import android.widget.LinearLayout; + +import com.gh.base.fragment.BaseFragment_ViewPager_Checkable; +import com.gh.common.util.DataCollectionUtils; +import com.gh.common.util.DisplayUtils; +import com.gh.gamecenter.MainActivity; +import com.gh.gamecenter.R; +import com.gh.gamecenter.eventbus.EBUISwitch; +import com.gh.gamecenter.news.News1Fragment; +import com.gh.gamecenter.news.News2Fragment; +import com.gh.gamecenter.news.News3Fragment; +import com.gh.gamecenter.news.News4Fragment; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import java.util.List; + +import butterknife.BindView; + +import static com.gh.gamecenter.news.NewsWrapperFragment.EB_NEWSFRAGMENT_TAG; + +/** + * @author CsHeng + * @Date 17/06/2017 + * @Time 10:30 AM + */ + +public class NewsFragment extends BaseFragment_ViewPager_Checkable { + + @BindView(R.id.slidebar_line) + View mNewsSlidebarLine; + private LinearLayout.LayoutParams mLayoutParams; + private int mWidth; + + @Override + protected int getLayoutId() { + return R.layout.fragment_news; + } + + @Override + protected int getCheckableGroupId() { + return R.id.lightgame_tab_container; + } + + @Override + protected int getViewPagerId() { + return R.id.lightgame_tab_viewpager; + } + + @Override + protected void initFragmentList(List fragments) { + fragments.add(new News1Fragment()); + fragments.add(new News2Fragment()); + fragments.add(new News3Fragment()); + fragments.add(new News4Fragment()); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + DisplayMetrics outMetrics = new DisplayMetrics(); + getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); + mWidth = outMetrics.widthPixels / 4; + mLayoutParams = new LinearLayout.LayoutParams(mWidth / 2, DisplayUtils.dip2px(getActivity(), 2)); + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + mLayoutParams.leftMargin = (int) (mWidth * (mCheckedIndex + 0.25f)); + mNewsSlidebarLine.setLayoutParams(mLayoutParams); + + view.postDelayed(new Runnable() { + @Override + public void run() { + EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, mCheckedIndex)); + } + }, 100); + } + + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + super.onPageScrolled(position, positionOffset, positionOffsetPixels); + if (positionOffset != 0) { + mLayoutParams.leftMargin = (int) (mWidth * (position + positionOffset + 0.25f)); + mNewsSlidebarLine.setLayoutParams(mLayoutParams); +// } else { +// if (currentItem != mNewsVP.getCurrentItem()) { +// currentItem = mNewsVP.getCurrentItem(); +// EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, currentItem)); +// } + } + } + + @Override + protected void onPageChanged(int index) { + super.onPageChanged(index); + if (index == 0) { + DataCollectionUtils.uploadPosition(getActivity(), "资讯", "1", "资讯"); + } else if (index == 1) { + DataCollectionUtils.uploadPosition(getActivity(), "资讯", "2", "攻略"); + } else if (index == 2) { + DataCollectionUtils.uploadPosition(getActivity(), "资讯", "3", "原创"); + } else if (index == 3) { + DataCollectionUtils.uploadPosition(getActivity(), "资讯", "4", "关注"); + } + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEventMainThread(EBUISwitch busNine) { + if (MainActivity.EB_MAINACTIVITY_TAG.equals(busNine.getFrom())) { + if (busNine.getPosition() == 1) { + EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, mCheckedIndex)); + } + } + } + + +} diff --git a/app/src/main/java/com/gh/gamecenter/fragment/HomeFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java similarity index 64% rename from app/src/main/java/com/gh/gamecenter/fragment/HomeFragment.java rename to app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java index 5c9404e453..b27fe10d93 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/HomeFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java @@ -7,15 +7,13 @@ import android.view.View; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.view.animation.ScaleAnimation; -import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; import com.gh.base.SearchBarHint; +import com.gh.base.fragment.BaseFragment; import com.gh.common.constant.Config; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; -import com.gh.common.util.DisplayUtils; import com.gh.common.util.EntranceUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.ConcernActivity; @@ -38,39 +36,35 @@ import butterknife.BindView; * Created by LGT on 2016/9/9. * 工具栏 搜索控制 */ -public abstract class HomeFragment extends BaseFragment implements View.OnClickListener, SearchBarHint { +public class SearchToolbarFragment extends BaseFragment implements View.OnClickListener, SearchBarHint { - private TextView downloadHint; - private TextView searchHint; + @BindView(R.id.action_tip) + TextView mDownloadHintTv; + + @BindView(R.id.actionbar_search_input) + TextView mSearchHintTv; + + @BindView(R.id.actionbar_rl_download) + View mDownloadView; private AlphaAnimation mAlphaAnimation; - private ArrayList hintList; - private int hintIndex; + private ArrayList mHintList; + private int mHintIndex; - @BindView(R.id.actionbar_rl_download) - View mActionBarDownloadView; + @Override + protected int getLayoutId() { + return R.layout.fragment_toolbar; + } @Override protected void initView(View view) { super.initView(view); -// SharedPreferences sp = getActivity().getSharedPreferences( -// Config.PREFERENCE, Context.MODE_PRIVATE); - LinearLayout home_actionbar = (LinearLayout) view.findViewById(R.id.home_actionbar); - LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, DisplayUtils.dip2px(getActivity(), 55)); - -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { -// int top = DisplayUtils.getStatusBarHeight(getResources()); -// home_actionbar.setPadding(0, top, 0, 0); -// lparams.height += top; -// } - home_actionbar.setLayoutParams(lparams); initActionBar(view); - final ScaleAnimation scaleAnimation = new ScaleAnimation(0.4f, 1.0f, 0.4f, 1.0f - , Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); + final ScaleAnimation scaleAnimation = new ScaleAnimation(0.4f, 1.0f, 0.4f, 1.0f, + Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); scaleAnimation.setDuration(500); mAlphaAnimation = new AlphaAnimation(1f, 0.2f); @@ -86,7 +80,7 @@ public abstract class HomeFragment extends BaseFragment implements View.OnClickL @Override public void onAnimationEnd(Animation animation) { if (mAlphaAnimation != null) { - searchHint.setAnimation(mAlphaAnimation); + mSearchHintTv.setAnimation(mAlphaAnimation); mAlphaAnimation.start(); } } @@ -106,14 +100,14 @@ public abstract class HomeFragment extends BaseFragment implements View.OnClickL @Override public void onAnimationEnd(Animation animation) { // 切换数据 - if (hintIndex > hintList.size() - 1) { - hintIndex = 0; + if (mHintIndex > mHintList.size() - 1) { + mHintIndex = 0; } - searchHint.setHint(hintList.get(hintIndex)); - hintIndex++; + mSearchHintTv.setHint(mHintList.get(mHintIndex)); + mHintIndex++; if (scaleAnimation != null) { - searchHint.setAnimation(scaleAnimation); + mSearchHintTv.setAnimation(scaleAnimation); scaleAnimation.start(); } } @@ -124,12 +118,12 @@ public abstract class HomeFragment extends BaseFragment implements View.OnClickL } }); - if (hintList != null && hintList.size() > 0) { - if (hintList.size() > 1) { - searchHint.setAnimation(mAlphaAnimation); + if (mHintList != null && mHintList.size() > 0) { + if (mHintList.size() > 1) { + mSearchHintTv.setAnimation(mAlphaAnimation); } else { - String hint = hintList.get(0); - searchHint.setHint(hint); + String hint = mHintList.get(0); + mSearchHintTv.setHint(hint); } } @@ -140,49 +134,47 @@ public abstract class HomeFragment extends BaseFragment implements View.OnClickL super.onCreate(savedInstanceState); if (savedInstanceState != null) { - hintList = savedInstanceState.getStringArrayList("hint"); + mHintList = savedInstanceState.getStringArrayList("hint"); } - hintIndex = 0; + mHintIndex = 0; } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - if (hintList != null && !hintList.isEmpty()) { - outState.putStringArrayList("hint", hintList); + if (mHintList != null && !mHintList.isEmpty()) { + outState.putStringArrayList("hint", mHintList); } } private void initActionBar(View view) { - mActionBarDownloadView.setOnClickListener(this); + mDownloadView.setOnClickListener(this); view.findViewById(R.id.actionbar_iv_search).setOnClickListener(this); view.findViewById(R.id.actionbar_notification).setOnClickListener(this); view.findViewById(R.id.actionbar_search_rl).setOnClickListener(this); if (Config.isShow(getActivity())) { - mActionBarDownloadView.setVisibility(View.VISIBLE); + mDownloadView.setVisibility(View.VISIBLE); } else { - mActionBarDownloadView.setVisibility(View.GONE); + mDownloadView.setVisibility(View.GONE); } - downloadHint = (TextView) view.findViewById(R.id.action_tip); int updateSize = PackageManager.getUpdateListSize(); int downloadSize = DownloadManager.getInstance(getActivity()).getAll().size(); if (downloadSize != 0) { - downloadHint.setVisibility(View.VISIBLE); - downloadHint.setText(String.valueOf(downloadSize)); + mDownloadHintTv.setVisibility(View.VISIBLE); + mDownloadHintTv.setText(String.valueOf(downloadSize)); } else if (updateSize != 0) { - downloadHint.setVisibility(View.VISIBLE); - downloadHint.setText(String.valueOf(updateSize)); + mDownloadHintTv.setVisibility(View.VISIBLE); + mDownloadHintTv.setText(String.valueOf(updateSize)); } else { - downloadHint.setVisibility(View.GONE); + mDownloadHintTv.setVisibility(View.GONE); } - searchHint = (TextView) view.findViewById(R.id.actionbar_search_input); - searchHint.setOnClickListener(this); + mSearchHintTv.setOnClickListener(this); } @Override @@ -199,7 +191,7 @@ public abstract class HomeFragment extends BaseFragment implements View.OnClickL Intent intent = new Intent(getActivity(), SearchActivity.class); intent.putExtra("clicked", true); - intent.putExtra("hint", searchHint.getHint().toString()); + intent.putExtra("hint", mSearchHintTv.getHint().toString()); intent.putExtra(EntranceUtils.KEY_ENTRANCE, "(工具栏)"); startActivity(intent); } else if (id == R.id.actionbar_search_input || id == R.id.actionbar_search_rl) { @@ -208,7 +200,7 @@ public abstract class HomeFragment extends BaseFragment implements View.OnClickL Intent intent = new Intent(getActivity(), SearchActivity.class); intent.putExtra("clicked", false); - intent.putExtra("hint", searchHint.getHint().toString()); + intent.putExtra("hint", mSearchHintTv.getHint().toString()); intent.putExtra(EntranceUtils.KEY_ENTRANCE, "(工具栏)"); startActivity(intent); } else if (id == R.id.actionbar_notification) { @@ -226,9 +218,9 @@ public abstract class HomeFragment extends BaseFragment implements View.OnClickL public void onEventMainThread(EBReuse reuse) { if ("Refresh".equals(reuse.getType())) { if (Config.isShow(getActivity())) { - mActionBarDownloadView.setVisibility(View.VISIBLE); + mDownloadView.setVisibility(View.VISIBLE); } else { - mActionBarDownloadView.setVisibility(View.GONE); + mDownloadView.setVisibility(View.GONE); } } } @@ -238,24 +230,24 @@ public abstract class HomeFragment extends BaseFragment implements View.OnClickL int updateSize = PackageManager.getUpdateListSize(); int downloadSize = DownloadManager.getInstance(getActivity()).getAll().size(); if (downloadSize != 0) { - downloadHint.setVisibility(View.VISIBLE); - downloadHint.setText(String.valueOf(downloadSize)); + mDownloadHintTv.setVisibility(View.VISIBLE); + mDownloadHintTv.setText(String.valueOf(downloadSize)); } else if (updateSize != 0) { - downloadHint.setVisibility(View.VISIBLE); - downloadHint.setText(String.valueOf(updateSize)); + mDownloadHintTv.setVisibility(View.VISIBLE); + mDownloadHintTv.setText(String.valueOf(updateSize)); } else { - downloadHint.setVisibility(View.GONE); + mDownloadHintTv.setVisibility(View.GONE); } } @Override public void setHint(ArrayList hint) { if (hint != null && hint.size() > 0) { - hintList = hint; - if (hint.size() == 1 && searchHint != null) { - searchHint.setHint(hintList.get(0)); - } else if (mAlphaAnimation != null && searchHint != null) { - searchHint.setAnimation(mAlphaAnimation); + mHintList = hint; + if (hint.size() == 1 && mSearchHintTv != null) { + mSearchHintTv.setHint(mHintList.get(0)); + } else if (mAlphaAnimation != null && mSearchHintTv != null) { + mSearchHintTv.setAnimation(mAlphaAnimation); } } } diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java index 3e2472a771..a01fa78a0c 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java @@ -11,18 +11,18 @@ import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.text.TextUtils; import android.util.DisplayMetrics; -import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; -import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.OnRequestCallBackListener; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.ItemViewType; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DataCollectionUtils; @@ -46,7 +46,6 @@ import com.gh.gamecenter.PluginActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.ToolBoxActivity; -import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.ImagePagerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameHeadViewHolder; @@ -62,7 +61,6 @@ import com.gh.gamecenter.entity.SlideEntity; import com.gh.gamecenter.entity.SubjectDigestEntity; import com.gh.gamecenter.entity.SubjectEntity; import com.gh.gamecenter.fragment.GameFragment; -import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.manager.PackageManager; import com.gh.gamecenter.retrofit.Response; @@ -74,7 +72,6 @@ import java.util.List; import java.util.Locale; import java.util.Map; -import cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager; import retrofit2.HttpException; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Func1; @@ -108,7 +105,6 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { private boolean mIsOver; private boolean mIsInitPlugin; private boolean mIsAutoScroll; - private int mTopHeight; public GameFragmentAdapter(GameFragment gameFragment, SwipeRefreshLayout refreshLayout) { super(gameFragment.getContext()); @@ -137,11 +133,6 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { mIsInitPlugin = false; mIsAutoScroll = false; - DisplayMetrics outMetrics = new DisplayMetrics(); - gameFragment.getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); - - mTopHeight = (int) (outMetrics.widthPixels / 16f * 10.5f); - initSubjectDigest(true); } @@ -461,52 +452,20 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == ItemViewType.GAME_SLIDE) { - View view = mLayoutInflater.inflate(R.layout.game_viewpager_item, parent, false); DisplayMetrics outMetrics = new DisplayMetrics(); mGameFragment.getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); - LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, mTopHeight); //整个头部大小16:10 viewpager大小16:7 - view.setLayoutParams(params); - - AutoScrollViewPager viewPager = (AutoScrollViewPager) view.findViewById(R.id.view_pager); - RelativeLayout.LayoutParams vpParams = new RelativeLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, (int) (outMetrics.widthPixels / 16f * 7f)); - viewPager.setLayoutParams(vpParams); - - RelativeLayout subjectRl = (RelativeLayout) view.findViewById(R.id.home_subject_rl); - RelativeLayout.LayoutParams subjectParams = new RelativeLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, (int) (outMetrics.widthPixels / 16f * 3.5f)); - subjectParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); - subjectRl.setLayoutParams(subjectParams); - - LinearLayout hint = (LinearLayout) view.findViewById(R.id.viewpager_ll_hint); - RelativeLayout.LayoutParams hintParams = new RelativeLayout.LayoutParams( - ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); - hintParams.setMargins(0, (int) (outMetrics.widthPixels / 16f * 6.5f), DisplayUtils.dip2px(mContext, 10), 0); - hintParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); - hint.setLayoutParams(hintParams); - - return new GameViewPagerViewHolder(view); + return new GameViewPagerViewHolder(mLayoutInflater.inflate(R.layout.game_viewpager_item, parent, false), + outMetrics.widthPixels); } else if (viewType == ItemViewType.COLUMN_HEADER) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.game_head_item, parent, false); - return new GameHeadViewHolder(view); + return new GameHeadViewHolder(mLayoutInflater.inflate(R.layout.game_head_item, parent, false)); } else if (viewType == ItemViewType.GAME_NORMAL) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.game_normal_item, parent, false); - return new GameNormalViewHolder(view); + return new GameNormalViewHolder(mLayoutInflater.inflate(R.layout.game_normal_item, parent, false)); } else if (viewType == ItemViewType.GAME_TEST) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.game_test_item, parent, false); - return new GameTestViewHolder(view); + return new GameTestViewHolder(mLayoutInflater.inflate(R.layout.game_test_item, parent, false)); } else if (viewType == ItemViewType.GAME_IMAGE) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.game_image_item, parent, false); - return new GameImageViewHolder(view); + return new GameImageViewHolder(mLayoutInflater.inflate(R.layout.game_image_item, parent, false)); } else if (viewType == ItemViewType.LOADING) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.refresh_footerview, parent, false); - return new FooterViewHolder(view); + return new FooterViewHolder(mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false)); } return null; } @@ -604,18 +563,18 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { if (mSlideList.size() != 0 && viewHolder.viewPager.getAdapter() == null) { viewHolder.viewpager_ll_hint.removeAllViews(); + int margin = DisplayUtils.dip2px(mContext, 6); for (int i = 0, size = mSlideList.size(); i < size; i++) { ImageView imageView = new ImageView(mContext); - LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams( - DisplayUtils.dip2px(mContext, 6), DisplayUtils.dip2px(mContext, 6)); - lparams.bottomMargin = DisplayUtils.dip2px(mContext, 6); + LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(margin, margin); +// lparams.bottomMargin = DisplayUtils.dip2px(mContext, 6); if (i == 0) { imageView.setImageResource(R.drawable.oval_hint_up); } else { imageView.setImageResource(R.drawable.oval_hint_dn); } if (i != 0) { - lparams.leftMargin = DisplayUtils.dip2px(mContext, 6); + lparams.leftMargin = margin; } imageView.setLayoutParams(lparams); viewHolder.viewpager_ll_hint.addView(imageView); diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java index e40be171e5..0729d73060 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java @@ -5,7 +5,7 @@ import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; import android.view.View; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.MeasureLinearLayoutManager; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.GameDetailActivity; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiFragment.java index b3a76e3c4b..b84e1eed6e 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiFragment.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiFragment.java @@ -5,7 +5,7 @@ import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DownloadItemUtils; import com.gh.download.DataWatcher; import com.gh.download.DownloadEntity; diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java index 2339f6d070..d840ff36ee 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java @@ -11,7 +11,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.EntranceUtils; import com.gh.common.view.SwipeLayout; import com.gh.common.view.VerticalItemDecoration; diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java index 232b53ee31..50a9fe81f0 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java @@ -10,7 +10,7 @@ import android.view.View; import android.widget.LinearLayout; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.LibaoActivity; import com.gh.gamecenter.R; diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java index cf1e8802a4..71af321214 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java @@ -9,7 +9,7 @@ import android.view.View; import android.widget.LinearLayout; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBReuse; diff --git a/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java b/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java index eeb1191701..2808189945 100644 --- a/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java @@ -11,7 +11,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBUISwitch; diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java b/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java index c83fbfdfc2..5d326a1584 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java @@ -10,7 +10,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBUISwitch; diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java index 5ff6c3a6bc..9c3e4f25ad 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java @@ -1,21 +1,19 @@ package com.gh.gamecenter.message; import android.content.Context; +import android.os.Bundle; +import android.support.annotation.Nullable; import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentTransaction; -import android.support.v4.view.ViewPager; import android.util.DisplayMetrics; import android.view.View; import android.widget.LinearLayout; -import android.widget.RelativeLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment_ViewPager_Checkable; import com.gh.common.util.DisplayUtils; import com.gh.common.util.TokenUtils; import com.gh.common.util.Utils; import com.gh.gamecenter.R; -import com.gh.base.adapter.FragmentAdapter; import com.gh.gamecenter.db.KeFuMarkReadDao; import com.gh.gamecenter.entity.MessageUnreadEntity; import com.gh.gamecenter.eventbus.EBReuse; @@ -27,11 +25,9 @@ import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; -import java.util.ArrayList; import java.util.List; import butterknife.BindView; -import butterknife.OnClick; import okhttp3.ResponseBody; import retrofit2.HttpException; import rx.Observable; @@ -43,28 +39,22 @@ import rx.schedulers.Schedulers; * Created by khy on 2017/4/5. * 首页-消息 */ -public class MessageFragment extends BaseFragment implements ViewPager.OnPageChangeListener { +public class MessageFragment extends BaseFragment_ViewPager_Checkable { public static final String MESSAGE_READ_OVER = "messageReadOver"; public static final String EB_MESSAGEFRAGMENT_TAG = "MessageFragment"; - @BindView(R.id.message_comment_tv) - TextView mMessageCommentTv; + @BindView(R.id.message_comment_hint) TextView mMessageCommentHint; - @BindView(R.id.message_comment_ll) - LinearLayout mMessageCommentLl; - @BindView(R.id.message_kefu_tv) - TextView mMessageKefuTv; + @BindView(R.id.message_kefu_hint) View mMessageKefuHint; - @BindView(R.id.message_kefu_rl) - RelativeLayout mMessageKefuRl; + @BindView(R.id.message_slide_line) View mMessageSlideLine; - @BindView(R.id.meaasge_viewPager) - ViewPager mMeaasgeViewPager; - private LinearLayout.LayoutParams lparams; - private int width; + + private LinearLayout.LayoutParams mLayoutParams; + private int mWidth; private int mKeFuUnreadCount; @Override @@ -72,45 +62,49 @@ public class MessageFragment extends BaseFragment implements ViewPager.OnPageCha return R.layout.fragment_message; } + @Override + protected int getCheckableGroupId() { + return R.id.lightgame_tab_container; + } + + @Override + protected int getViewPagerId() { + return R.id.lightgame_tab_viewpager; + } + + @Override + protected void initFragmentList(List fragments) { + fragments.add(new CommentFragment()); + fragments.add(new KeFuFragment()); + } + @Override protected void initView(View view) { super.initView(view); - LinearLayout title = (LinearLayout) view.findViewById(R.id.actionbar_title_ll); - LinearLayout.LayoutParams tparams = new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, DisplayUtils.dip2px(getActivity(), 55)); - - title.setLayoutParams(tparams); - DisplayMetrics outMetrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); - width = outMetrics.widthPixels / 2; - lparams = new LinearLayout.LayoutParams((int) (width * 0.6), - DisplayUtils.dip2px(getContext(), 2)); - lparams.leftMargin = (int) (width * (0 + 0.2f)); - mMessageSlideLine.setLayoutParams(lparams); + mWidth = outMetrics.widthPixels / 2; + mLayoutParams = new LinearLayout.LayoutParams((int) (mWidth * 0.6), DisplayUtils.dip2px(getContext(), 2)); + mLayoutParams.leftMargin = (int) (mWidth * (0 + 0.2f)); + mMessageSlideLine.setLayoutParams(mLayoutParams); - mMessageCommentTv.setSelected(true); + initMessageUnread(getContext(), true); - List list = new ArrayList<>(); - list.add(new CommentFragment()); - list.add(new KeFuFragment()); - mMeaasgeViewPager.setAdapter(new FragmentAdapter(getChildFragmentManager(), list)); - mMeaasgeViewPager.addOnPageChangeListener(this); - mMeaasgeViewPager.setCurrentItem(0); + } - initMessageUnread(true); + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); view.postDelayed(new Runnable() { @Override public void run() { - EventBus.getDefault().post(new EBUISwitch(EB_MESSAGEFRAGMENT_TAG, mMeaasgeViewPager.getCurrentItem())); + EventBus.getDefault().post(new EBUISwitch(EB_MESSAGEFRAGMENT_TAG, mCheckedIndex)); } }, 100); } - private void initMessageUnread(boolean isCheck) { - Context context = getContext(); - if (context == null) return; + private void initMessageUnread(final Context context, boolean isCheck) { TokenUtils.getToken(context, isCheck) .flatMap(new Func1>() { @Override @@ -130,7 +124,7 @@ public class MessageFragment extends BaseFragment implements ViewPager.OnPageCha } if (response.getKefuList() != null && response.getKefuList().size() > 0) { - KeFuMarkReadDao dao = new KeFuMarkReadDao(getContext()); + KeFuMarkReadDao dao = new KeFuMarkReadDao(context); for (int i = 0; i < response.getKefuList().size(); i++) { if (dao.isMarkRead(response.getKefuList().get(i))) { response.getKefuList().remove(i); @@ -148,7 +142,7 @@ public class MessageFragment extends BaseFragment implements ViewPager.OnPageCha @Override public void onFailure(HttpException e) { if (e != null && e.code() == 401) { - initMessageUnread(false); + initMessageUnread(context, false); } } }); @@ -157,27 +151,23 @@ public class MessageFragment extends BaseFragment implements ViewPager.OnPageCha // 隐藏未读提示 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBUISwitch reuse) { - if ("kefuMarkReadCount".equals(reuse.getFrom()) - && reuse.getPosition() == mKeFuUnreadCount) { + if ("kefuMarkReadCount".equals(reuse.getFrom()) && reuse.getPosition() == mKeFuUnreadCount) { mMessageKefuHint.setVisibility(View.GONE); - if (mMessageKefuHint.getVisibility() == View.GONE - && mMessageCommentHint.getVisibility() == View.GONE) { + if (mMessageKefuHint.getVisibility() == View.GONE && mMessageCommentHint.getVisibility() == View.GONE) { EventBus.getDefault().post(new EBReuse(MESSAGE_READ_OVER)); } - } else if ("commentMarkRead".equals(reuse.getFrom()) - && mMessageCommentHint.getVisibility() == View.VISIBLE) { + } else if ("commentMarkRead".equals(reuse.getFrom()) && mMessageCommentHint.getVisibility() == View.VISIBLE) { mMessageCommentHint.setVisibility(View.GONE); - postMarkCommentRead(true); - if (mMessageKefuHint.getVisibility() == View.GONE - && mMessageCommentHint.getVisibility() == View.GONE) { + postMarkCommentRead(getContext(), true); + if (mMessageKefuHint.getVisibility() == View.GONE && mMessageCommentHint.getVisibility() == View.GONE) { EventBus.getDefault().post(new EBReuse(MESSAGE_READ_OVER)); } } } - private void postMarkCommentRead(boolean isCheck) { + private void postMarkCommentRead(final Context context, boolean isCheck) { TokenUtils - .getToken(getContext(), isCheck) + .getToken(context, isCheck) .flatMap(new Func1>() { @Override public Observable call(String token) { @@ -197,67 +187,25 @@ public class MessageFragment extends BaseFragment implements ViewPager.OnPageCha public void onFailure(HttpException e) { super.onFailure(e); if (e != null && e.code() == 401) { - postMarkCommentRead(false); + postMarkCommentRead(context, false); } } }); } - - @OnClick({R.id.message_comment_ll, R.id.message_kefu_rl}) - public void onViewClicked(View view) { - switch (view.getId()) { - case R.id.message_comment_ll: - mMeaasgeViewPager.setCurrentItem(0); - break; - case R.id.message_kefu_rl: - mMeaasgeViewPager.setCurrentItem(1); - break; - } - } - @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + super.onPageScrolled(position, positionOffset, positionOffsetPixels); if (positionOffset != 0) { - lparams.leftMargin = (int) (width * (position + positionOffset + 0.2f)); - mMessageSlideLine.setLayoutParams(lparams); + mLayoutParams.leftMargin = (int) (mWidth * (position + positionOffset + 0.2f)); + mMessageSlideLine.setLayoutParams(mLayoutParams); } } @Override - public void onPageSelected(int position) { - if (position == 0) { - EventBus.getDefault().post(new EBUISwitch(EB_MESSAGEFRAGMENT_TAG, 0)); - mMessageCommentTv.setSelected(true); - mMessageKefuTv.setSelected(false); - } else if (position == 1) { - EventBus.getDefault().post(new EBUISwitch(EB_MESSAGEFRAGMENT_TAG, 1)); - mMessageCommentTv.setSelected(false); - mMessageKefuTv.setSelected(true); - } + protected void onPageChanged(int index) { + super.onPageChanged(index); + EventBus.getDefault().post(new EBUISwitch(EB_MESSAGEFRAGMENT_TAG, index)); } - @Override - public void onPageScrollStateChanged(int state) { - - } - - @Override - public void onHiddenChanged(boolean hidden) { - super.onHiddenChanged(hidden); - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - List list = getChildFragmentManager().getFragments(); - if (list != null) { - if (hidden) { - for (Fragment fragment : getChildFragmentManager().getFragments()) { - transaction.hide(fragment); - } - } else { - for (Fragment fragment : getChildFragmentManager().getFragments()) { - transaction.show(fragment); - } - } - } - transaction.commit(); - } } diff --git a/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java b/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java index dc633ea79a..0737b98149 100644 --- a/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java @@ -10,7 +10,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBUISwitch; diff --git a/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java index c11d07cec7..99d49b8249 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java @@ -9,7 +9,7 @@ import android.view.View; import android.widget.LinearLayout; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBNetworkState; @@ -119,7 +119,7 @@ public class News1Fragment extends BaseFragment implements SwipeRefreshLayout.On // 资讯Fragment界面切换事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBUISwitch busNine) { - if (NewsFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { + if (NewsWrapperFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { if (busNine.getPosition() == 0) { if (loadingLayout.getVisibility() == View.VISIBLE) { adapter.addList(0); diff --git a/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java index c86766ab03..0c1dc9f714 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java @@ -16,7 +16,7 @@ import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.PackageUtils; @@ -436,7 +436,7 @@ public class News2Fragment extends BaseFragment implements SwipeRefreshLayout.On // Fragment界面切换事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBUISwitch swith) { - if (NewsFragment.EB_NEWSFRAGMENT_TAG.equals(swith.getFrom())) { + if (NewsWrapperFragment.EB_NEWSFRAGMENT_TAG.equals(swith.getFrom())) { if (swith.getPosition() == 1) { if (loadingLayout.getVisibility() == View.VISIBLE) { adapter.addList(0); diff --git a/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java index f6cc71edd1..fe33d9f7b4 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java @@ -13,7 +13,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DisplayUtils; import com.gh.common.util.EntranceUtils; import com.gh.gamecenter.ConcernActivity; @@ -220,7 +220,7 @@ public class News3Fragment extends BaseFragment implements SwipeRefreshLayout.On // 资讯Fragment界面切换事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBUISwitch busNine) { - if (NewsFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { + if (NewsWrapperFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { if (busNine.getPosition() == 2 && mLoading.getVisibility() == View.VISIBLE) { mStrategyAdapter.addList(0); } 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 fa8a828059..37e95a3645 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java @@ -9,7 +9,7 @@ import android.view.View; import android.widget.LinearLayout; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBNetworkState; @@ -119,7 +119,7 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On // 资讯Fragment界面切换事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBUISwitch busNine) { - if (NewsFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { + if (NewsWrapperFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { if (busNine.getPosition() == 3) { if (loadingLayout.getVisibility() == View.VISIBLE) { adapter.addList(0); diff --git a/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java b/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java deleted file mode 100644 index 80d5c41aea..0000000000 --- a/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java +++ /dev/null @@ -1,212 +0,0 @@ -package com.gh.gamecenter.news; - -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentTransaction; -import android.support.v4.view.ViewPager; -import android.util.DisplayMetrics; -import android.view.View; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.gamecenter.MainActivity; -import com.gh.gamecenter.R; -import com.gh.base.adapter.FragmentAdapter; -import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.fragment.HomeFragment; - -import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - - -/** - * Created by khy on 2016/6/29. - * 资讯Fragment - */ -public class NewsFragment extends HomeFragment implements View.OnClickListener, ViewPager.OnPageChangeListener { - - public final static String EB_NEWSFRAGMENT_TAG = "NewsFragment"; - private View mNewsSlidebarLine; - private ViewPager mNewsVP; - private LinearLayout.LayoutParams lparams; - - @BindView(R.id.news_zixun_tv) - TextView mNewsZixun; - - @BindView(R.id.news_guanzhu_tv) - TextView mNewsGuanzhu; - - @BindView(R.id.news_gonglve_tv) - TextView mNewsGonglve; - - @BindView(R.id.news_yuanchuang_tv) - TextView mNewsYuanchuang; - - private int width; - private int currentItem; - - @Override - protected int getLayoutId() { - return R.layout.fragment_news; - } - - @Override - protected void initView(View view) { - super.initView(view); - mNewsSlidebarLine = view.findViewById(R.id.slidebar_line); - mNewsVP = (ViewPager) view.findViewById(R.id.page_vp_content); - mNewsZixun.setSelected(true); - } - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - List list = new ArrayList<>(); - list.add(new News1Fragment()); - list.add(new News2Fragment()); - list.add(new News3Fragment()); - list.add(new News4Fragment()); - mNewsVP.setAdapter(new FragmentAdapter(getChildFragmentManager(), list)); - mNewsVP.addOnPageChangeListener(this); - - currentItem = 0; - if (savedInstanceState != null) { - currentItem = savedInstanceState.getInt("currentItem"); - } - - mNewsVP.setCurrentItem(currentItem); - - DisplayMetrics outMetrics = new DisplayMetrics(); - getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); - width = outMetrics.widthPixels / 4; - lparams = new LinearLayout.LayoutParams(width / 2, - DisplayUtils.dip2px(getActivity(), 2)); - lparams.leftMargin = (int) (width * (currentItem + 0.25f)); - mNewsSlidebarLine.setLayoutParams(lparams); - - view.postDelayed(new Runnable() { - @Override - public void run() { - EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, mNewsVP.getCurrentItem())); - } - }, 100); - } - - @Override - public void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - outState.putInt("currentItem", currentItem); - } - - @OnClick({R.id.news_zixun_tv, R.id.news_guanzhu_tv, R.id.news_yuanchuang_tv, R.id.news_gonglve_tv}) - @Override - public void onClick(View v) { -// super.onClick(v); - switch (v.getId()) { - case R.id.news_zixun_tv: - mNewsVP.setCurrentItem(0); - break; - case R.id.news_guanzhu_tv: - mNewsVP.setCurrentItem(1); - break; - case R.id.news_gonglve_tv: - mNewsVP.setCurrentItem(2); - break; - case R.id.news_yuanchuang_tv: - mNewsVP.setCurrentItem(3); - break; - } - } - - @Override - public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { - if (positionOffset != 0) { - lparams.leftMargin = (int) (width * (position + positionOffset + 0.25f)); - mNewsSlidebarLine.setLayoutParams(lparams); - } else { - if (currentItem != mNewsVP.getCurrentItem()) { - currentItem = mNewsVP.getCurrentItem(); - EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, currentItem)); - } - } - } - - @Override - public void onPageSelected(int position) { - if (position == 0) { - mNewsZixun.setSelected(true); - mNewsGuanzhu.setSelected(false); - mNewsGonglve.setSelected(false); - mNewsYuanchuang.setSelected(false); - - DataCollectionUtils.uploadPosition(getActivity(), "资讯", "1", "资讯"); - } else if (position == 1) { - mNewsZixun.setSelected(false); - mNewsGuanzhu.setSelected(true); - mNewsGonglve.setSelected(false); - mNewsYuanchuang.setSelected(false); - - DataCollectionUtils.uploadPosition(getActivity(), "资讯", "2", "攻略"); - } else if (position == 2) { - mNewsZixun.setSelected(false); - mNewsGuanzhu.setSelected(false); - mNewsGonglve.setSelected(true); - mNewsYuanchuang.setSelected(false); - - DataCollectionUtils.uploadPosition(getActivity(), "资讯", "3", "原创"); - } else if (position == 3) { - mNewsZixun.setSelected(false); - mNewsGuanzhu.setSelected(false); - mNewsGonglve.setSelected(false); - mNewsYuanchuang.setSelected(true); - - DataCollectionUtils.uploadPosition(getActivity(), "资讯", "4", "关注"); - } - } - - @Override - public void onPageScrollStateChanged(int i) { - - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBUISwitch busNine) { - if (MainActivity.EB_MAINACTIVITY_TAG.equals(busNine.getFrom())) { - if (busNine.getPosition() == 1) { - EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, mNewsVP.getCurrentItem())); - } - } - } - - @Override - public void onHiddenChanged(boolean hidden) { - super.onHiddenChanged(hidden); - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - List list = getChildFragmentManager().getFragments(); - if (list != null) { - if (hidden) { - for (Fragment fragment : getChildFragmentManager().getFragments()) { - transaction.hide(fragment); - } - } else { - for (Fragment fragment : getChildFragmentManager().getFragments()) { - transaction.show(fragment); - } - } - } - transaction.commit(); - } - -} - diff --git a/app/src/main/java/com/gh/gamecenter/news/NewsWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/news/NewsWrapperFragment.java new file mode 100644 index 0000000000..4466d0956d --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/news/NewsWrapperFragment.java @@ -0,0 +1,53 @@ +package com.gh.gamecenter.news; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.View; + +import com.gh.base.SearchBarHint; +import com.gh.base.fragment.BaseFragment; +import com.gh.gamecenter.R; +import com.gh.gamecenter.fragment.NewsFragment; +import com.gh.gamecenter.fragment.SearchToolbarFragment; + +import java.util.ArrayList; + + +/** + * Created by khy on 2016/6/29. + * 资讯Fragment + */ +public class NewsWrapperFragment extends BaseFragment implements SearchBarHint { + + public final static String EB_NEWSFRAGMENT_TAG = "NewsWrapperFragment"; + + private SearchToolbarFragment mSearchToolbarFragment; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mSearchToolbarFragment = new SearchToolbarFragment(); + } + + @Override + protected int getLayoutId() { + return R.layout.fragment_wrapper_toolbar; + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + getChildFragmentManager().beginTransaction() + .replace(R.id.wrapper_toolbar, mSearchToolbarFragment) + .replace(R.id.wrapper_main_content, new NewsFragment()).commitAllowingStateLoss(); + } + + @Override + public void setHint(ArrayList hintList) { + if (mSearchToolbarFragment != null) { + mSearchToolbarFragment.setHint(hintList); + } + } + +} + diff --git a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragment.java b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragment.java index ecd779a9cc..312ed76d2a 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragment.java @@ -8,7 +8,7 @@ import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DownloadItemUtils; import com.gh.common.view.VerticalItemDecoration; import com.gh.download.DataWatcher; diff --git a/app/src/main/java/com/gh/gamecenter/personal/InstallFragment.java b/app/src/main/java/com/gh/gamecenter/personal/InstallFragment.java index e24e881765..6c2b577dcb 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/InstallFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/InstallFragment.java @@ -10,7 +10,7 @@ import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DialogUtils; import com.gh.common.util.DownloadItemUtils; import com.gh.common.view.SwipeLayout; 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 375af455dd..a4930ee705 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java @@ -26,7 +26,7 @@ import android.widget.TextView; import android.widget.Toast; import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.constant.Config; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java index e79cc8a236..be6191004f 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java @@ -13,7 +13,7 @@ import android.view.ViewTreeObserver; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DisplayUtils; import com.gh.common.util.DownloadItemUtils; import com.gh.common.view.VerticalItemDecoration; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java index f9f1de6d34..69224520ff 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java @@ -13,7 +13,7 @@ import android.view.ViewTreeObserver; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DisplayUtils; import com.gh.common.util.DownloadItemUtils; import com.gh.common.view.VerticalItemDecoration; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java index 70cdc97b81..90ec0114a0 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java @@ -9,7 +9,7 @@ import android.view.ViewGroup; import android.widget.RelativeLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DialogUtils; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.java b/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.java index 42644d190c..6c773311c4 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.java +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.java @@ -10,7 +10,7 @@ import android.view.View; import android.widget.LinearLayout; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DownloadItemUtils; import com.gh.common.util.EntranceUtils; @@ -26,7 +26,7 @@ import com.gh.gamecenter.eventbus.EBNetworkState; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.news.NewsFragment; +import com.gh.gamecenter.news.NewsWrapperFragment; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -108,6 +108,7 @@ public class SubjectFragment extends BaseFragment { mName = arguments.getString("name"); mIsOrder = arguments.getBoolean("order"); mType = arguments.getString("type"); + //TODO ????? order 是 boolean mOrder = arguments.getString("order"); mTagType = arguments.getString("tagType"); mEntrance = arguments.getString(EntranceUtils.KEY_ENTRANCE); @@ -287,7 +288,7 @@ public class SubjectFragment extends BaseFragment { // 资讯Fragment界面切换事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBUISwitch busNine) { - if (NewsFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { + if (NewsWrapperFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { if (busNine.getPosition() == 0) { if (subject_pb_loading.getVisibility() == View.VISIBLE) { adapter.initList(1); diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectTileFragment.java b/app/src/main/java/com/gh/gamecenter/subject/SubjectTileFragment.java index 2a5135d7f2..5cbf1817f7 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectTileFragment.java +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectTileFragment.java @@ -17,7 +17,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DisplayUtils; import com.gh.common.util.StringUtils; import com.gh.gamecenter.R; diff --git a/app/src/main/java/com/gh/gamecenter/wenda/WenDaFragment.java b/app/src/main/java/com/gh/gamecenter/wenda/WenDaFragment.java index 01d0913294..cba995b85d 100644 --- a/app/src/main/java/com/gh/gamecenter/wenda/WenDaFragment.java +++ b/app/src/main/java/com/gh/gamecenter/wenda/WenDaFragment.java @@ -1,6 +1,6 @@ //package com.gh.gamecenter.wenda; // -//import com.gh.base.BaseFragment; +//import com.gh.base.fragment.BaseFragment; //import com.gh.gamecenter.eventbus.EBNetworkState; // //import org.greenrobot.eventbus.Subscribe; diff --git a/app/src/main/res/drawable/selector_ic_game.xml b/app/src/main/res/drawable/selector_ic_game.xml new file mode 100644 index 0000000000..66ed99c36d --- /dev/null +++ b/app/src/main/res/drawable/selector_ic_game.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_ic_message.xml b/app/src/main/res/drawable/selector_ic_message.xml new file mode 100644 index 0000000000..f5eafa020f --- /dev/null +++ b/app/src/main/res/drawable/selector_ic_message.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_ic_news.xml b/app/src/main/res/drawable/selector_ic_news.xml new file mode 100644 index 0000000000..087dc331c8 --- /dev/null +++ b/app/src/main/res/drawable/selector_ic_news.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_ic_user.xml b/app/src/main/res/drawable/selector_ic_user.xml new file mode 100644 index 0000000000..e461a4ace1 --- /dev/null +++ b/app/src/main/res/drawable/selector_ic_user.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_libao.xml b/app/src/main/res/layout/activity_libao.xml index a0e2dfb1e2..ecf17def08 100644 --- a/app/src/main/res/layout/activity_libao.xml +++ b/app/src/main/res/layout/activity_libao.xml @@ -68,7 +68,7 @@ android:layout_width = "match_parent" android:layout_height = "match_parent" > - - + android:layout_height = "match_parent" > - + - + android:layout_height = "match_parent" + android:layout_below = "@+id/home_actionbar" > - + android:layout_height = "wrap_content" /> - + - + - + - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/fragment_main.xml similarity index 76% rename from app/src/main/res/layout/activity_main.xml rename to app/src/main/res/layout/fragment_main.xml index 2bf2e2e948..13894d43ca 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -2,20 +2,20 @@ android:layout_width = "match_parent" android:layout_height = "match_parent" > - + android:layout_above = "@id/lightgame_tab_container" /> - - + android:src = "@drawable/selector_ic_game" /> - - + + - + android:src = "@drawable/selector_ic_news" /> - + - - + android:src = "@drawable/selector_ic_message" /> - + - - - + android:src = "@drawable/selector_ic_user" /> - + diff --git a/app/src/main/res/layout/fragment_message.xml b/app/src/main/res/layout/fragment_message.xml index e48d4ab602..e6963c2fb1 100644 --- a/app/src/main/res/layout/fragment_message.xml +++ b/app/src/main/res/layout/fragment_message.xml @@ -7,12 +7,12 @@ - - - - + diff --git a/app/src/main/res/layout/fragment_news.xml b/app/src/main/res/layout/fragment_news.xml index b330b5d77e..c19595ca6e 100644 --- a/app/src/main/res/layout/fragment_news.xml +++ b/app/src/main/res/layout/fragment_news.xml @@ -1,13 +1,74 @@ - - + - + - + - \ No newline at end of file + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_news_slidebar.xml b/app/src/main/res/layout/fragment_news_slidebar.xml deleted file mode 100644 index af88ac8797..0000000000 --- a/app/src/main/res/layout/fragment_news_slidebar.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_page.xml b/app/src/main/res/layout/fragment_page.xml deleted file mode 100644 index 07d7c8856a..0000000000 --- a/app/src/main/res/layout/fragment_page.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_toolbar.xml b/app/src/main/res/layout/fragment_toolbar.xml new file mode 100644 index 0000000000..fd642c1410 --- /dev/null +++ b/app/src/main/res/layout/fragment_toolbar.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_wrapper_toolbar.xml b/app/src/main/res/layout/fragment_wrapper_toolbar.xml new file mode 100644 index 0000000000..426052332d --- /dev/null +++ b/app/src/main/res/layout/fragment_wrapper_toolbar.xml @@ -0,0 +1,18 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/game_viewpager_item.xml b/app/src/main/res/layout/game_viewpager_item.xml index ed85df3471..f4897f94fb 100644 --- a/app/src/main/res/layout/game_viewpager_item.xml +++ b/app/src/main/res/layout/game_viewpager_item.xml @@ -1,11 +1,20 @@ - + android:layout_height = "wrap_content" + android:orientation = "vertical" + app:fractionValue = "0.65625" + app:layout_heightPercent = "65.625%" + app:measureBy = "width" > + - + + android:layout_height = "wrap_content" + app:fractionValue = "0.4375" + app:measureBy = "width" > + android:layout_gravity = "bottom|right" + android:gravity = "center" + android:orientation = "horizontal" + android:paddingBottom = "6dp" + android:paddingLeft = "10dp" + android:paddingRight = "10dp" /> - + - + + android:layout_height = "wrap_content" + android:layout_gravity = "bottom" + app:fractionValue = "0.21875" + app:measureBy = "width" > + android:textSize = "14sp" /> + android:paddingTop = "2dp" /> - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/gamedetail_body.xml b/app/src/main/res/layout/gamedetail_body.xml index 85b556e455..5cbbd1104b 100644 --- a/app/src/main/res/layout/gamedetail_body.xml +++ b/app/src/main/res/layout/gamedetail_body.xml @@ -100,7 +100,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 9ca90332c4..b0adb442b3 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -8,7 +8,7 @@ 9dp - 48dp + 55dp 72dp diff --git a/libraries/EventBus/libs/EventBus-2.4.0.jar b/libraries/EventBus/libs/EventBus-2.4.0.jar deleted file mode 100644 index 106ed5b53d0527b8946454acb037a3bd8c0c5359..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45282 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�j$FdY6oB3}%K&7bMBTpOek@dmza% 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

  • )8kO_cTe6c?E>>uEdGd}74k^_t3@DwRrq;jmnsm(ocK&Y@&h zL0*(&SNyS)_5ma&6vz)778atT(MlY25&he)3S>0%=Ya}w@FTYeLS9@=m{D3mf*HJ7 zl^^71e9#kqI9y@=c;=r+egG}#(Z8F?3oA%Vh^wkG$xDC}el!5Rwf}X1TyFk6eh9mP z9)n!7?rVVj*YhEMG)VcQfrXQqnVpmUGkceN+unuyqixTBv^8@BW#jz^fjV14`y3Rn z1?ZzK<-gS-Ao2sQ{|n(?HeEm0zXLy^8E?4ISkRRn4(fNhUyy8||NhQ5OvKp4+QP}+ z)z0)j?qmiqtr=tz5)SHCieI>hAf?}N|8=_%adrO7Obk5IcRDmVNT8GV`wt=ls37jW zMAkn(%!3oL=RZ8&0>!2Wij(=57do$-74YYlw35)gP66f(yz z@F>t5=YPUMGmt-Q165s&UH%+2z~k>Pnn)iYfPjz|f`B0VMIs#aeu>|Q3|?UPFJyi| zBIEtMU;LiH!vwFxd57%=RV2BuC%~$5f`h?JK;D7#K?BwAz`rR72@VA>uyzMc1I;9V z2mLSQ*1*BwrNi#Pc%a?YzXShN&FJ?p7x{-Lc{I?g{Z%_Pw_paGR<-1w5m_tpILX1%4XfZcle2+{S-b@}a7S;p{(JPlHaq?oy8v)O@NDfn!5q8)pWrXaCE#-43AcB0 z@{a#6x!=D?;0a)NG8FFrOy)n*!NAW5JQL?m3dZZ7O5NLa;Mo&*LQOvZQ0Vua2EOI? zPGBqW?+N_94Y=Sv2)>EyP8TWcpXuJWr3+jY{44xB)!^uVr26~L1YhO8!?z{hhyNdI z-r#2ezSeOkLzZ=q%zs(=0H=d5FWk|QvhShav)G^{3k{kdK|s)gehfgLwe50${Plkl CS4t58 diff --git a/libraries/EventBus/src/main/AndroidManifest.xml b/libraries/EventBus/src/main/AndroidManifest.xml deleted file mode 100644 index 4df1b5b2fd..0000000000 --- a/libraries/EventBus/src/main/AndroidManifest.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/libraries/EventBus/build.gradle b/libraries/LGLibrary/build.gradle similarity index 69% rename from libraries/EventBus/build.gradle rename to libraries/LGLibrary/build.gradle index 89d074a4f1..cc778bafa7 100644 --- a/libraries/EventBus/build.gradle +++ b/libraries/LGLibrary/build.gradle @@ -2,6 +2,9 @@ apply plugin: 'com.android.library' dependencies { compile fileTree(dir: 'libs', exclude: 'android-support-*.jar', include: '*.jar') + provided libs.supportV4 + provided libs.supportAppCompat + provided libs.supportRecyclerView } android { diff --git a/libraries/EventBus/proguard-library.txt b/libraries/LGLibrary/proguard-library.txt similarity index 63% rename from libraries/EventBus/proguard-library.txt rename to libraries/LGLibrary/proguard-library.txt index 44a1304068..f2fe1559a2 100644 --- a/libraries/EventBus/proguard-library.txt +++ b/libraries/LGLibrary/proguard-library.txt @@ -18,21 +18,3 @@ #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} - --keep class de.greenrobot.event.** {*;} --keepclassmembers class ** { - public void onEvent*(**); - void onEvent*(**); -} - --keepattributes *Annotation* -#-keepclassmembers class ** { -# @org.greenrobot.eventbus.Subscribe ; -#} --keep enum de.greenrobot.event.ThreadMode { *; } - -# Only required if you use AsyncExecutor --keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent { - (java.lang.Throwable); -} - diff --git a/libraries/LGLibrary/src/main/AndroidManifest.xml b/libraries/LGLibrary/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..269e0bc84d --- /dev/null +++ b/libraries/LGLibrary/src/main/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/adapter/BaseFragmentPagerAdapter.java b/libraries/LGLibrary/src/main/java/com/lightgame/adapter/BaseFragmentPagerAdapter.java new file mode 100755 index 0000000000..b852e5a473 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/adapter/BaseFragmentPagerAdapter.java @@ -0,0 +1,53 @@ +/** + * project: OPlay + *

    + *

    + * ======================================================================== + * amend date amend user amend reason + * 2013-3-5 CsHeng + */ + +package com.lightgame.adapter; + +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; + +import java.util.List; + +/** + * 通用Fragment Page Adapter + * + * @author CsHeng + * @date 2013-3-8 + */ +public class BaseFragmentPagerAdapter extends FragmentPagerAdapter { + + List mFragments; + + // nested fragment should pass getChildFragmentManager() + private BaseFragmentPagerAdapter(FragmentManager fm, List fragments) { + super(fm); + mFragments = fragments; + } + + /** + * @param fm Pass getSupportFragmentManager() or Nested Fragment Should Pass getChildFragmentManager() + * @param fragments + * @return + */ + public static BaseFragmentPagerAdapter newInstance(FragmentManager fm, List fragments) { + return new BaseFragmentPagerAdapter(fm, fragments); + } + + @Override + public Fragment getItem(int position) { + return mFragments.get(position); + } + + @Override + public int getCount() { + return mFragments.size(); + } + +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/listeners/IllegalAttachException.java b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/IllegalAttachException.java new file mode 100644 index 0000000000..0deb12be25 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/IllegalAttachException.java @@ -0,0 +1,23 @@ +package com.lightgame.listeners; + +/** + * Fragment Attach 到Activity时若不满足条件则抛出 + * Created by csheng on 15-9-29. + */ +public class IllegalAttachException extends RuntimeException { + + public IllegalAttachException() { + } + + public IllegalAttachException(String detailMessage) { + super(detailMessage); + } + + public IllegalAttachException(String detailMessage, Throwable throwable) { + super(detailMessage, throwable); + } + + public IllegalAttachException(Throwable throwable) { + super(throwable); + } +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBackPressedListener.java b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBackPressedListener.java new file mode 100755 index 0000000000..60d1894405 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBackPressedListener.java @@ -0,0 +1,9 @@ +package com.lightgame.listeners; + +/** + * Forward activity onBackPressed() events to fragment + * (If nested fragments need this, just forward again) + */ +public interface OnBackPressedListener { + public boolean onHandleBackPressed(); +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBrowserActionListener.java b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBrowserActionListener.java new file mode 100644 index 0000000000..b845c84dc0 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBrowserActionListener.java @@ -0,0 +1,13 @@ +package com.lightgame.listeners; + +/** + * @author CsHeng + * @Date 14-10-16 + * @Time 下午9:11 + */ +public interface OnBrowserActionListener { + public void onRotateImage(); + + public void onSaveImage(); +} + diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/listeners/UpdateableFragment.java b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/UpdateableFragment.java new file mode 100755 index 0000000000..81b205a531 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/UpdateableFragment.java @@ -0,0 +1,12 @@ +package com.lightgame.listeners; + +import java.util.List; + +/** + * @author: CsHeng (csheng1204[at]gmail[dot]com) + * Date: 13-12-24 + * Time: 下午2:52 + */ +public interface UpdateableFragment { + public void onFragmentNeedsUpdate(List listData); +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableImageView.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableImageView.java new file mode 100644 index 0000000000..5a3afd29ae --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableImageView.java @@ -0,0 +1,42 @@ +package com.lightgame.view; + +import android.content.Context; +import android.support.v7.widget.AppCompatImageView; +import android.util.AttributeSet; +import android.widget.Checkable; + +public class CheckableImageView extends AppCompatImageView implements Checkable { + + private boolean mChecked; + private static final int[] CHECKED_STATE_SET = { + android.R.attr.state_checked + }; + + public CheckableImageView(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public int[] onCreateDrawableState(int extraSpace) { + final int[] drawableState = super.onCreateDrawableState(extraSpace + 1); + if (isChecked()) { + mergeDrawableStates(drawableState, CHECKED_STATE_SET); + } + return drawableState; + } + + public void toggle() { + setChecked(!mChecked); + } + + public boolean isChecked() { + return mChecked; + } + + public void setChecked(boolean checked) { + if (mChecked != checked) { + mChecked = checked; + refreshDrawableState(); + } + } +} \ No newline at end of file diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableLinearLayout.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableLinearLayout.java new file mode 100644 index 0000000000..07edc46f66 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableLinearLayout.java @@ -0,0 +1,57 @@ +package com.lightgame.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Checkable; +import android.widget.LinearLayout; + +public class CheckableLinearLayout extends LinearLayout implements Checkable { + + private static final int[] CHECKED_STATE_SET = {android.R.attr.state_checked}; + + private boolean mChecked = false; + + public CheckableLinearLayout(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public boolean isChecked() { + return mChecked; + } + + public void setChecked(boolean b) { + if (b != mChecked) { + mChecked = b; + refreshDrawableState(); + setChildChecked(this, b); + } + } + + private void setChildChecked(ViewGroup vg, boolean checked) { + for (int i = 0, size = vg.getChildCount(); i < size; i++) { + final View child = vg.getChildAt(i); + if (child instanceof Checkable) { + ((Checkable) child).setChecked(checked); + } + if (child instanceof ViewGroup) { + setChildChecked((ViewGroup) child, checked); + } + } + } + + public void toggle() { + setChecked(!mChecked); + } + + @Override + public int[] onCreateDrawableState(int extraSpace) { + final int[] drawableState = super.onCreateDrawableState(extraSpace + 1); + if (isChecked()) { + mergeDrawableStates(drawableState, CHECKED_STATE_SET); + } + return drawableState; + } + +} \ No newline at end of file diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/DoubleTapTextView.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/DoubleTapTextView.java new file mode 100644 index 0000000000..df8c4d0aad --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/DoubleTapTextView.java @@ -0,0 +1,69 @@ +package com.lightgame.view; + +import android.content.Context; +import android.support.v7.widget.AppCompatTextView; +import android.util.AttributeSet; +import android.view.GestureDetector; +import android.view.MotionEvent; + +/** + * @author CsHeng + * @Date 14-10-29 + * @Time 下午3:16 + */ +public class DoubleTapTextView extends AppCompatTextView { + + private OnDoubleTapListener mOnDoubleTapListener; + private GestureDetector mGestureDetector; + + public DoubleTapTextView(Context context) { + super(context); + mGestureDetector = new GestureDetector(getContext(), new GestureListener()); + } + + public DoubleTapTextView(Context context, AttributeSet attrs) { + super(context, attrs); + mGestureDetector = new GestureDetector(getContext(), new GestureListener()); + } + + public DoubleTapTextView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + mGestureDetector = new GestureDetector(getContext(), new GestureListener()); + } + + public void setOnDoubleTapListener(OnDoubleTapListener onDoubleTapListener) { + mOnDoubleTapListener = onDoubleTapListener; + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + return mGestureDetector.onTouchEvent(event); + } + + private class GestureListener extends GestureDetector.SimpleOnGestureListener { + + @Override + public boolean onDown(MotionEvent e) { + return true; + } + + @Override + public boolean onDoubleTap(MotionEvent e) { + if (mOnDoubleTapListener != null) { + return mOnDoubleTapListener.onDoubleTap(); + } + return false; + } + } + + /** + * @author CsHeng + * @Date 14-10-29 + * @Time 下午3:15 + */ + public interface OnDoubleTapListener { + boolean onDoubleTap(); + } + +} + diff --git a/app/src/main/java/com/gh/common/view/NoScrollableViewPager.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/NoScrollableViewPager.java similarity index 70% rename from app/src/main/java/com/gh/common/view/NoScrollableViewPager.java rename to libraries/LGLibrary/src/main/java/com/lightgame/view/NoScrollableViewPager.java index 0218c116bd..2aa022f254 100644 --- a/app/src/main/java/com/gh/common/view/NoScrollableViewPager.java +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/NoScrollableViewPager.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.lightgame.view; import android.content.Context; import android.support.v4.view.ViewPager; @@ -11,30 +11,30 @@ import android.view.MotionEvent; */ public class NoScrollableViewPager extends ViewPager { - private boolean isScrollable; + private boolean mIsScrollable; public NoScrollableViewPager(Context context) { super(context); - isScrollable = true; + mIsScrollable = true; } public NoScrollableViewPager(Context context, AttributeSet attrs) { super(context, attrs); - isScrollable = true; - + mIsScrollable = true; } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { - return isScrollable && super.onInterceptTouchEvent(ev); + return mIsScrollable && super.onInterceptTouchEvent(ev); } @Override public boolean onTouchEvent(MotionEvent ev) { - return isScrollable && super.onTouchEvent(ev); + return mIsScrollable && super.onTouchEvent(ev); } public void setScrollable(boolean scrollable) { - isScrollable = scrollable; + mIsScrollable = scrollable; } + } diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/AspectRatioImageView.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/AspectRatioImageView.java new file mode 100755 index 0000000000..ba99a7028e --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/AspectRatioImageView.java @@ -0,0 +1,73 @@ +package com.lightgame.view.imageview; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.drawable.Drawable; +import android.support.v7.widget.AppCompatImageView; +import android.util.AttributeSet; + +import com.lightgame.R; + + +/** + * 按照宽度适配,高度保持比例即可 + * + * @author CsHeng + * @date 2013-3-13 + */ +public class AspectRatioImageView extends AppCompatImageView { + + private boolean mMeasureByHeight = false; // default width + private float mFraction = 1f;// default square + + public AspectRatioImageView(Context context) { + super(context); + } + + public AspectRatioImageView(Context context, AttributeSet attrs) { + super(context, attrs); + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mMeasureByHeight = enumV != 0; + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + a.recycle(); + } + + public AspectRatioImageView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mMeasureByHeight = enumV != 0; + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + Drawable drawable = getDrawable(); + if (drawable != null) { + if (mMeasureByHeight) { + int height = MeasureSpec.getSize(heightMeasureSpec); + int dih = drawable.getIntrinsicHeight(); + if (dih > 0) { + int width = height * drawable.getIntrinsicWidth() / dih; + setMeasuredDimension(width, height); + } else { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + } else { + int width = MeasureSpec.getSize(widthMeasureSpec); + int diw = drawable.getIntrinsicWidth(); + if (diw > 0) { + int height = width * drawable.getIntrinsicHeight() / diw; + setMeasuredDimension(width, height); + } else { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + } + } else { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + + } +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedDrawable.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedDrawable.java new file mode 100755 index 0000000000..24ffe3901e --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedDrawable.java @@ -0,0 +1,366 @@ +package com.lightgame.view.imageview; + +import android.content.res.ColorStateList; +import android.graphics.Bitmap; +import android.graphics.Bitmap.Config; +import android.graphics.BitmapShader; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.ColorFilter; +import android.graphics.Matrix; +import android.graphics.Paint; +import android.graphics.PixelFormat; +import android.graphics.Rect; +import android.graphics.RectF; +import android.graphics.Shader; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; +import android.util.Log; +import android.widget.ImageView.ScaleType; + +@SuppressWarnings("UnusedDeclaration") +public class RoundedDrawable extends Drawable { + + public static final String TAG = "RoundedDrawable"; + public static final int DEFAULT_BORDER_COLOR = Color.BLACK; + private ColorStateList mBorderColor = ColorStateList.valueOf(DEFAULT_BORDER_COLOR); + private final RectF mBounds = new RectF(); + private final RectF mDrawableRect = new RectF(); + private final RectF mBitmapRect = new RectF(); + private final BitmapShader mBitmapShader; + private final Paint mBitmapPaint; + private final int mBitmapWidth; + private final int mBitmapHeight; + private final RectF mBorderRect = new RectF(); + private final Paint mBorderPaint; + private final Matrix mShaderMatrix = new Matrix(); + private float mCornerRadius = 0; + private boolean mOval = false; + private float mBorderWidth = 0; + private ScaleType mScaleType = ScaleType.FIT_CENTER; + + public RoundedDrawable(Bitmap bitmap) { + + mBitmapWidth = bitmap.getWidth(); + mBitmapHeight = bitmap.getHeight(); + mBitmapRect.set(0, 0, mBitmapWidth, mBitmapHeight); + + mBitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); + mBitmapShader.setLocalMatrix(mShaderMatrix); + + mBitmapPaint = new Paint(); + mBitmapPaint.setStyle(Paint.Style.FILL); + mBitmapPaint.setAntiAlias(true); + mBitmapPaint.setShader(mBitmapShader); + + mBorderPaint = new Paint(); + mBorderPaint.setStyle(Paint.Style.STROKE); + mBorderPaint.setAntiAlias(true); + mBorderPaint.setColor(mBorderColor.getColorForState(getState(), DEFAULT_BORDER_COLOR)); + mBorderPaint.setStrokeWidth(mBorderWidth); + } + + public static RoundedDrawable fromBitmap(Bitmap bitmap) { + if (bitmap != null) { + return new RoundedDrawable(bitmap); + } else { + return null; + } + } + + public static Drawable fromDrawable(Drawable drawable) { + if (drawable != null) { + if (drawable instanceof RoundedDrawable) { + // just return if it's already a RoundedDrawable + return drawable; + } else if (drawable instanceof LayerDrawable) { + LayerDrawable ld = (LayerDrawable) drawable; + int num = ld.getNumberOfLayers(); + + // loop through layers to and change to RoundedDrawables if possible + for (int i = 0; i < num; i++) { + Drawable d = ld.getDrawable(i); + ld.setDrawableByLayerId(ld.getId(i), fromDrawable(d)); + } + return ld; + } + + // try to get a bitmap from the drawable and + Bitmap bm = drawableToBitmap(drawable); + if (bm != null) { + return new RoundedDrawable(bm); + } else { + Log.w(TAG, "Failed to create bitmap from drawable!"); + } + } + return drawable; + } + + public static Bitmap drawableToBitmap(Drawable drawable) { + if (drawable instanceof BitmapDrawable) { + return ((BitmapDrawable) drawable).getBitmap(); + } + + Bitmap bitmap; + int width = Math.max(drawable.getIntrinsicWidth(), 1); + int height = Math.max(drawable.getIntrinsicHeight(), 1); + try { + bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + drawable.draw(canvas); + } catch (Exception e) { + e.printStackTrace(); + bitmap = null; + } + + return bitmap; + } + + private void updateShaderMatrix() { + float scale; + float dx; + float dy; + + switch (mScaleType) { + case CENTER: + mBorderRect.set(mBounds); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + + mShaderMatrix.set(null); + mShaderMatrix.setTranslate((int) ((mBorderRect.width() - mBitmapWidth) * 0.5f + 0.5f), + (int) ((mBorderRect.height() - mBitmapHeight) * 0.5f + 0.5f)); + break; + + case CENTER_CROP: + mBorderRect.set(mBounds); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + + mShaderMatrix.set(null); + + dx = 0; + dy = 0; + + if (mBitmapWidth * mBorderRect.height() > mBorderRect.width() * mBitmapHeight) { + scale = mBorderRect.height() / (float) mBitmapHeight; + dx = (mBorderRect.width() - mBitmapWidth * scale) * 0.5f; + } else { + scale = mBorderRect.width() / (float) mBitmapWidth; + dy = (mBorderRect.height() - mBitmapHeight * scale) * 0.5f; + } + + mShaderMatrix.setScale(scale, scale); + mShaderMatrix.postTranslate((int) (dx + 0.5f) + mBorderWidth, + (int) (dy + 0.5f) + mBorderWidth); + break; + + case CENTER_INSIDE: + mShaderMatrix.set(null); + + if (mBitmapWidth <= mBounds.width() && mBitmapHeight <= mBounds.height()) { + scale = 1.0f; + } else { + scale = Math.min(mBounds.width() / (float) mBitmapWidth, + mBounds.height() / (float) mBitmapHeight); + } + + dx = (int) ((mBounds.width() - mBitmapWidth * scale) * 0.5f + 0.5f); + dy = (int) ((mBounds.height() - mBitmapHeight * scale) * 0.5f + 0.5f); + + mShaderMatrix.setScale(scale, scale); + mShaderMatrix.postTranslate(dx, dy); + + mBorderRect.set(mBitmapRect); + mShaderMatrix.mapRect(mBorderRect); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + mShaderMatrix.setRectToRect(mBitmapRect, mBorderRect, Matrix.ScaleToFit.FILL); + break; + + default: + case FIT_CENTER: + mBorderRect.set(mBitmapRect); + mShaderMatrix.setRectToRect(mBitmapRect, mBounds, Matrix.ScaleToFit.CENTER); + mShaderMatrix.mapRect(mBorderRect); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + mShaderMatrix.setRectToRect(mBitmapRect, mBorderRect, Matrix.ScaleToFit.FILL); + break; + + case FIT_END: + mBorderRect.set(mBitmapRect); + mShaderMatrix.setRectToRect(mBitmapRect, mBounds, Matrix.ScaleToFit.END); + mShaderMatrix.mapRect(mBorderRect); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + mShaderMatrix.setRectToRect(mBitmapRect, mBorderRect, Matrix.ScaleToFit.FILL); + break; + + case FIT_START: + mBorderRect.set(mBitmapRect); + mShaderMatrix.setRectToRect(mBitmapRect, mBounds, Matrix.ScaleToFit.START); + mShaderMatrix.mapRect(mBorderRect); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + mShaderMatrix.setRectToRect(mBitmapRect, mBorderRect, Matrix.ScaleToFit.FILL); + break; + + case FIT_XY: + mBorderRect.set(mBounds); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + mShaderMatrix.set(null); + mShaderMatrix.setRectToRect(mBitmapRect, mBorderRect, Matrix.ScaleToFit.FILL); + break; + } + + mDrawableRect.set(mBorderRect); + mBitmapShader.setLocalMatrix(mShaderMatrix); + } + + @Override + public void draw(Canvas canvas) { + + if (mOval) { + if (mBorderWidth > 0) { + canvas.drawOval(mDrawableRect, mBitmapPaint); + canvas.drawOval(mBorderRect, mBorderPaint); + } else { + canvas.drawOval(mDrawableRect, mBitmapPaint); + } + } else { + if (mBorderWidth > 0) { + canvas.drawRoundRect(mDrawableRect, Math.max(mCornerRadius, 0), + Math.max(mCornerRadius, 0), mBitmapPaint); + canvas.drawRoundRect(mBorderRect, mCornerRadius, mCornerRadius, mBorderPaint); + } else { + canvas.drawRoundRect(mDrawableRect, mCornerRadius, mCornerRadius, mBitmapPaint); + } + } + } + + @Override + public void setDither(boolean dither) { + mBitmapPaint.setDither(dither); + invalidateSelf(); + } + + @Override + public void setFilterBitmap(boolean filter) { + mBitmapPaint.setFilterBitmap(filter); + invalidateSelf(); + } + + @Override + public void setAlpha(int alpha) { + mBitmapPaint.setAlpha(alpha); + invalidateSelf(); + } + + @Override + public void setColorFilter(ColorFilter cf) { + mBitmapPaint.setColorFilter(cf); + invalidateSelf(); + } + + @Override + public boolean isStateful() { + return mBorderColor.isStateful(); + } + + @Override + public int getOpacity() { + return PixelFormat.TRANSLUCENT; + } + + @Override + protected boolean onStateChange(int[] state) { + int newColor = mBorderColor.getColorForState(state, 0); + if (mBorderPaint.getColor() != newColor) { + mBorderPaint.setColor(newColor); + return true; + } else { + return super.onStateChange(state); + } + } + + @Override + protected void onBoundsChange(Rect bounds) { + super.onBoundsChange(bounds); + + mBounds.set(bounds); + + updateShaderMatrix(); + } + + @Override + public int getIntrinsicWidth() { + return mBitmapWidth; + } + + @Override + public int getIntrinsicHeight() { + return mBitmapHeight; + } + + public float getCornerRadius() { + return mCornerRadius; + } + + public RoundedDrawable setCornerRadius(float radius) { + mCornerRadius = radius; + return this; + } + + public float getBorderWidth() { + return mBorderWidth; + } + + public RoundedDrawable setBorderWidth(int width) { + mBorderWidth = width; + mBorderPaint.setStrokeWidth(mBorderWidth); + return this; + } + + public int getBorderColor() { + return mBorderColor.getDefaultColor(); + } + + public RoundedDrawable setBorderColor(int color) { + return setBorderColors(ColorStateList.valueOf(color)); + } + + public ColorStateList getBorderColors() { + return mBorderColor; + } + + public RoundedDrawable setBorderColors(ColorStateList colors) { + mBorderColor = colors != null ? colors : ColorStateList.valueOf(0); + mBorderPaint.setColor(mBorderColor.getColorForState(getState(), DEFAULT_BORDER_COLOR)); + return this; + } + + public boolean isOval() { + return mOval; + } + + public RoundedDrawable setOval(boolean oval) { + mOval = oval; + return this; + } + + public ScaleType getScaleType() { + return mScaleType; + } + + public RoundedDrawable setScaleType(ScaleType scaleType) { + if (scaleType == null) { + scaleType = ScaleType.FIT_CENTER; + } + if (mScaleType != scaleType) { + mScaleType = scaleType; + updateShaderMatrix(); + } + return this; + } + + public Bitmap toBitmap() { + return drawableToBitmap(this); + } +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedImageView.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedImageView.java new file mode 100755 index 0000000000..a74e174dbd --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedImageView.java @@ -0,0 +1,323 @@ +package com.lightgame.view.imageview; + +import android.content.Context; +import android.content.res.ColorStateList; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; +import android.net.Uri; +import android.support.v7.widget.AppCompatImageView; +import android.util.AttributeSet; +import android.util.Log; + +import com.lightgame.R; + + +@SuppressWarnings("UnusedDeclaration") +public class RoundedImageView extends AppCompatImageView { + + public static final String TAG = "RoundedImageView"; + public static final int DEFAULT_RADIUS = 0; + private int mCornerRadius = DEFAULT_RADIUS; + public static final int DEFAULT_BORDER_WIDTH = 0; + private int mBorderWidth = DEFAULT_BORDER_WIDTH; + private static final ScaleType[] SCALE_TYPES = { + ScaleType.MATRIX, + ScaleType.FIT_XY, + ScaleType.FIT_START, + ScaleType.FIT_CENTER, + ScaleType.FIT_END, + ScaleType.CENTER, + ScaleType.CENTER_CROP, + ScaleType.CENTER_INSIDE + }; + private ColorStateList mBorderColor = + ColorStateList.valueOf(RoundedDrawable.DEFAULT_BORDER_COLOR); + private boolean mOval = false; + private boolean mRoundBackground = false; + + private int mResource; + private Drawable mDrawable; + private Drawable mBackgroundDrawable; + + private ScaleType mScaleType; + + public RoundedImageView(Context context) { + super(context); + } + + public RoundedImageView(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public RoundedImageView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.RoundedImageView, defStyle, 0); + + int index = a.getInt(R.styleable.RoundedImageView_android_scaleType, -1); + if (index >= 0) { + setScaleType(SCALE_TYPES[index]); + } else { + // default scaletype to FIT_CENTER + setScaleType(ScaleType.FIT_CENTER); + } + + mCornerRadius = a.getDimensionPixelSize(R.styleable.RoundedImageView_corner_radius, -1); + mBorderWidth = a.getDimensionPixelSize(R.styleable.RoundedImageView_border_width, -1); + + // don't allow negative values for radius and border + if (mCornerRadius < 0) { + mCornerRadius = DEFAULT_RADIUS; + } + if (mBorderWidth < 0) { + mBorderWidth = DEFAULT_BORDER_WIDTH; + } + + mBorderColor = a.getColorStateList(R.styleable.RoundedImageView_border_color); + if (mBorderColor == null) { + mBorderColor = ColorStateList.valueOf(RoundedDrawable.DEFAULT_BORDER_COLOR); + } + + mRoundBackground = a.getBoolean(R.styleable.RoundedImageView_round_background, false); + mOval = a.getBoolean(R.styleable.RoundedImageView_is_oval, false); + + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(); + + a.recycle(); + } + + @Override + public void setImageResource(int resId) { + if (mResource != resId) { + mResource = resId; + mDrawable = resolveResource(); + updateDrawableAttrs(); + super.setImageDrawable(mDrawable); + } + } + + @Override + public void setImageURI(Uri uri) { + super.setImageURI(uri); + setImageDrawable(getDrawable()); + } @Override + protected void drawableStateChanged() { + super.drawableStateChanged(); + invalidate(); + } + + @Override + public void setImageDrawable(Drawable drawable) { + mResource = 0; + mDrawable = RoundedDrawable.fromDrawable(drawable); + updateDrawableAttrs(); + super.setImageDrawable(mDrawable); + } + + @Override + public void setImageBitmap(Bitmap bm) { + mResource = 0; + mDrawable = RoundedDrawable.fromBitmap(bm); + updateDrawableAttrs(); + super.setImageDrawable(mDrawable); + } /** + * Return the current scale type in use by this ImageView. + * + * @attr ref android.R.styleable#ImageView_scaleType + * @see ScaleType + */ + @Override + public ScaleType getScaleType() { + return mScaleType; + } + + private Drawable resolveResource() { + Resources rsrc = getResources(); + if (rsrc == null) { + return null; + } + + Drawable d = null; + + if (mResource != 0) { + try { + d = rsrc.getDrawable(mResource); + } catch (Exception e) { + Log.w(TAG, "Unable to find resource: " + mResource, e); + // Don't try again. + mResource = 0; + } + } + return RoundedDrawable.fromDrawable(d); + } + + @Override + public void setBackground(Drawable background) { + setBackgroundDrawable(background); + } /** + * Controls how the image should be resized or moved to match the size + * of this ImageView. + * + * @param scaleType The desired scaling mode. + * @attr ref android.R.styleable#ImageView_scaleType + */ + @Override + public void setScaleType(ScaleType scaleType) { + if (scaleType == null) { + throw new NullPointerException(); + } + + if (mScaleType != scaleType) { + mScaleType = scaleType; + + switch (scaleType) { + case CENTER: + case CENTER_CROP: + case CENTER_INSIDE: + case FIT_CENTER: + case FIT_START: + case FIT_END: + case FIT_XY: + super.setScaleType(ScaleType.FIT_XY); + break; + default: + super.setScaleType(scaleType); + break; + } + + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(); + invalidate(); + } + } + + @Override + @Deprecated + public void setBackgroundDrawable(Drawable background) { + mBackgroundDrawable = RoundedDrawable.fromDrawable(background); + updateBackgroundDrawableAttrs(); + super.setBackgroundDrawable(mBackgroundDrawable); + } + + private void updateDrawableAttrs() { + updateAttrs(mDrawable, false); + } + + private void updateBackgroundDrawableAttrs() { + updateAttrs(mBackgroundDrawable, true); + } + + private void updateAttrs(Drawable drawable, boolean background) { + if (drawable == null) { + return; + } + + if (drawable instanceof RoundedDrawable) { + ((RoundedDrawable) drawable) + .setScaleType(mScaleType) + .setCornerRadius(background && !mRoundBackground ? 0 : mCornerRadius) + .setBorderWidth(background && !mRoundBackground ? 0 : mBorderWidth) + .setBorderColors(mBorderColor) + .setOval(mOval); + } else if (drawable instanceof LayerDrawable) { + // loop through layers to and set drawable attrs + LayerDrawable ld = ((LayerDrawable) drawable); + int layers = ld.getNumberOfLayers(); + for (int i = 0; i < layers; i++) { + updateAttrs(ld.getDrawable(i), background); + } + } + } + + public int getCornerRadius() { + return mCornerRadius; + } + + public void setCornerRadius(int radius) { + if (mCornerRadius == radius) { + return; + } + + mCornerRadius = radius; + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(); + } + + public int getBorderWidth() { + return mBorderWidth; + } + + public void setBorderWidth(int width) { + if (mBorderWidth == width) { + return; + } + + mBorderWidth = width; + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(); + invalidate(); + } + + public int getBorderColor() { + return mBorderColor.getDefaultColor(); + } + + public void setBorderColor(int color) { + setBorderColors(ColorStateList.valueOf(color)); + } + + public ColorStateList getBorderColors() { + return mBorderColor; + } + + public void setBorderColors(ColorStateList colors) { + if (mBorderColor.equals(colors)) { + return; + } + + mBorderColor = + (colors != null) ? colors : ColorStateList.valueOf(RoundedDrawable.DEFAULT_BORDER_COLOR); + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(); + if (mBorderWidth > 0) { + invalidate(); + } + } + + public boolean isOval() { + return mOval; + } + + public void setOval(boolean oval) { + mOval = oval; + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(); + invalidate(); + } + + public boolean isRoundBackground() { + return mRoundBackground; + } + + public void setRoundBackground(boolean roundBackground) { + if (mRoundBackground == roundBackground) { + return; + } + + mRoundBackground = roundBackground; + updateBackgroundDrawableAttrs(); + invalidate(); + } + + + + + + + + +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedTransformationBuilder.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedTransformationBuilder.java new file mode 100644 index 0000000000..efabe2c00c --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedTransformationBuilder.java @@ -0,0 +1,121 @@ +/* +* Copyright (C) 2015 Vincent Mi +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package com.lightgame.view.imageview; + +import android.content.res.ColorStateList; +import android.content.res.Resources; +import android.util.DisplayMetrics; +import android.util.TypedValue; +import android.widget.ImageView; + +public final class RoundedTransformationBuilder { + + //private final Resources mResources; + private final DisplayMetrics mDisplayMetrics; + + private float mCornerRadius = 0; + private boolean mOval = false; + private float mBorderWidth = 0; + private ColorStateList mBorderColor = + ColorStateList.valueOf(RoundedDrawable.DEFAULT_BORDER_COLOR); + private ImageView.ScaleType mScaleType = ImageView.ScaleType.FIT_CENTER; + + public RoundedTransformationBuilder() { + mDisplayMetrics = Resources.getSystem().getDisplayMetrics(); + } + + public RoundedTransformationBuilder scaleType(ImageView.ScaleType scaleType) { + mScaleType = scaleType; + return this; + } + + /** + * set corner radius in px + */ + public RoundedTransformationBuilder cornerRadius(float radiusPx) { + mCornerRadius = radiusPx; + return this; + } + + /** + * set corner radius in dip + */ + public RoundedTransformationBuilder cornerRadiusDp(float radiusDp) { + mCornerRadius = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, radiusDp, mDisplayMetrics); + return this; + } + + /** + * set border width in px + */ + public RoundedTransformationBuilder borderWidth(float widthPx) { + mBorderWidth = widthPx; + return this; + } + + /** + * set border width in dip + */ + public RoundedTransformationBuilder borderWidthDp(float widthDp) { + mBorderWidth = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, widthDp, mDisplayMetrics); + return this; + } + + + /** + * set border color + */ + public RoundedTransformationBuilder borderColor(int color) { + mBorderColor = ColorStateList.valueOf(color); + return this; + } + + public RoundedTransformationBuilder borderColor(ColorStateList colors) { + mBorderColor = colors; + return this; + } + + public RoundedTransformationBuilder oval(boolean oval) { + mOval = oval; + return this; + } + +// public Transformation build() { +// return new Transformation() { +// @Override public Bitmap transform(Bitmap source) { +// Bitmap transformed = RoundedDrawable.fromBitmap(source) +// .setScaleType(mScaleType) +// .setCornerRadius(mCornerRadius) +// .setBorderWidth(mBorderWidth) +// .setBorderColor(mBorderColor) +// .setOval(mOval) +// .toBitmap(); +// if (!source.equals(transformed)) { +// source.recycle(); +// } +// return transformed; +// } +// +// @Override public String key() { +// return "r:" + mCornerRadius +// + "b:" + mBorderWidth +// + "c:" + mBorderColor +// + "o:" + mOval; +// } +// }; +// } +} \ No newline at end of file diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleImageView.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleImageView.java new file mode 100755 index 0000000000..4bdd7b2e47 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleImageView.java @@ -0,0 +1,47 @@ +package com.lightgame.view.imageview; + +import android.content.Context; +import android.content.res.TypedArray; +import android.support.v7.widget.AppCompatImageView; +import android.util.AttributeSet; + +import com.lightgame.R; + + +/** + * 按照百分比来保持View的大小,可选以width或者height做参考系 + * + * @author CsHeng + * @date 2013-3-14 + */ +public class ScaleImageView extends AppCompatImageView { + + private boolean mMeasureByHeight = false; // default width + + private float mFraction = 1f;// default square + + public ScaleImageView(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + width = (int) (height * mFraction); + } else { + height = (int) (width * mFraction); + } + setMeasuredDimension(width, height); + + } + +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleRoundedImageView.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleRoundedImageView.java new file mode 100755 index 0000000000..dc7dc1a0b3 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleRoundedImageView.java @@ -0,0 +1,47 @@ +package com.lightgame.view.imageview; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; + +import com.lightgame.R; + + +/** + * Created with IntelliJ IDEA. + * User: CsHeng + * Date: 13-3-26 + * Time: 下午12:54 + * To change this template use File | Settings | File Templates. + */ +public class ScaleRoundedImageView extends RoundedImageView { + + private boolean mMeasureByHeight = false; // default width + + private float mFraction = 1f;// default square + + public ScaleRoundedImageView(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mFraction), height); + } else { + setMeasuredDimension(width, (int) (width * mFraction)); + } + } + +} + + diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleFrameLayout.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleFrameLayout.java new file mode 100755 index 0000000000..aec369e112 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleFrameLayout.java @@ -0,0 +1,50 @@ +package com.lightgame.view.scale; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; +import android.widget.FrameLayout; + +import com.lightgame.R; + + +/** + * Created with IntelliJ IDEA. + * User: CsHeng + * Date: 13-3-15 + * Time: 下午4:38 + * To change this template use File | Settings | File Templates. + */ +public class ScaleFrameLayout extends FrameLayout { + + private boolean mMeasureByHeight = false; // default width + private float mFraction = 1f;// default square + + public ScaleFrameLayout(Context context) { + super(context); + } + + public ScaleFrameLayout(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mFraction), height); + } else { + setMeasuredDimension(width, (int) (width * mFraction)); + } + } + +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleLinearLayout.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleLinearLayout.java new file mode 100755 index 0000000000..dd4ef8be93 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleLinearLayout.java @@ -0,0 +1,51 @@ +package com.lightgame.view.scale; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; +import android.widget.LinearLayout; + +import com.lightgame.R; + + +/** + * Created with IntelliJ IDEA. + * User: CsHeng + * Date: 13-3-15 + * Time: 下午12:31 + * To change this template use File | Settings | File Templates. + */ +public class ScaleLinearLayout extends LinearLayout { + + private boolean mMeasureByHeight = false; // default width + private float mFraction = 1f;// default square + + public ScaleLinearLayout(Context context) { + super(context); + } + + public ScaleLinearLayout(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mFraction), height); + } else { + setMeasuredDimension(width, (int) (width * mFraction)); + } + } + + +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleRelativeLayout.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleRelativeLayout.java new file mode 100755 index 0000000000..8e2d29cb3a --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleRelativeLayout.java @@ -0,0 +1,50 @@ +package com.lightgame.view.scale; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; +import android.widget.RelativeLayout; + +import com.lightgame.R; + + +/** + * Created with IntelliJ IDEA. + * User: CsHeng + * Date: 13-3-15 + * Time: 下午4:38 + * To change this template use File | Settings | File Templates. + */ +public class ScaleRelativeLayout extends RelativeLayout { + + private boolean mMeasureByHeight = false; // default width + private float mFraction = 1f;// default square + + public ScaleRelativeLayout(Context context) { + super(context); + } + + public ScaleRelativeLayout(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mFraction), height); + } else { + setMeasuredDimension(width, (int) (width * mFraction)); + } + } + +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleViewPager.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleViewPager.java new file mode 100644 index 0000000000..e76d014a47 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleViewPager.java @@ -0,0 +1,51 @@ +package com.lightgame.view.scale; + +import android.content.Context; +import android.content.res.TypedArray; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; + +import com.lightgame.R; + + +/** + * Created with IntelliJ IDEA. + * User: CsHeng + * Date: 13-3-15 + * Time: 下午4:38 + * To change this template use File | Settings | File Templates. + */ +public class ScaleViewPager extends ViewPager { + + private boolean mMeasureByHeight = false; // default width + private float mScale = 1f;// default square + + public ScaleViewPager(Context context) { + super(context); + } + + public ScaleViewPager(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mScale = a.getFloat(R.styleable.ScaleView_fractionValue, mScale); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mScale), height); + } else { + setMeasuredDimension(width, (int) (width * mScale)); + } + + } + +} diff --git a/libraries/LGLibrary/src/main/res/values/lightgame_attrs.xml b/libraries/LGLibrary/src/main/res/values/lightgame_attrs.xml new file mode 100644 index 0000000000..ae0ab99f67 --- /dev/null +++ b/libraries/LGLibrary/src/main/res/values/lightgame_attrs.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libraries/LGLibrary/src/main/res/values/lightgame_ids.xml b/libraries/LGLibrary/src/main/res/values/lightgame_ids.xml new file mode 100644 index 0000000000..430479cb2c --- /dev/null +++ b/libraries/LGLibrary/src/main/res/values/lightgame_ids.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 7c18cde3e4..db9e7de06e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,5 @@ include ':app' +include ':libraries:LGLibrary' include ':libraries:MiPush' include ':libraries:MTA' include ':libraries:QQShare'