From a31d2cd28bc3cdeb694d7a598359d0a16ed36c7d Mon Sep 17 00:00:00 2001 From: huangzhuanghua <401742778@qq.com> Date: Tue, 29 Nov 2016 10:49:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E9=99=A4volley=20=E4=B8=ADTAG?= =?UTF-8?q?=E7=9A=84=E6=BB=A5=E7=94=A8=E5=AF=BC=E8=87=B4=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E5=8A=A0=E8=BD=BD=E5=90=8C=E4=B8=80url?= =?UTF-8?q?=EF=BC=8C=E9=A1=B9=E7=9B=AE=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 3 +- .../java/com/android/volley/RequestQueue.java | 5 - .../main/java/com/gh/base/AppController.java | 8 -- ...lActivity.java => BaseDetailActivity.java} | 15 +-- .../gh/common/util/ConcernContentUtils.java | 2 +- .../java/com/gh/common/util/HttpsUtils.java | 37 +++++- .../java/com/gh/common/util/PackageUtils.java | 22 +--- .../com/gh/common/util/PostCommentUtils.java | 24 ++-- .../java/com/gh/common/util/RunningUtils.java | 4 +- .../com/gh/common/util/TimestampUtils.java | 4 + .../java/com/gh/download/DownloadTask.java | 3 + .../java/com/gh/download/DownloadThread.java | 2 +- .../com/gh/gamecenter/ConcernActivity.java | 4 - .../com/gh/gamecenter/GameDetailActivity.java | 18 +-- .../com/gh/gamecenter/GameNewsActivity.java | 9 -- .../java/com/gh/gamecenter/MainActivity.java | 10 +- .../gh/gamecenter/MessageDetailActivity.java | 18 ++- .../com/gh/gamecenter/NewsDetailActivity.java | 16 +-- .../com/gh/gamecenter/NewsSearchActivity.java | 11 +- .../com/gh/gamecenter/PluginActivity.java | 9 +- .../com/gh/gamecenter/SettingActivity.java | 20 +--- .../java/com/gh/gamecenter/SkipActivity.java | 8 +- .../com/gh/gamecenter/SubjectActivity.java | 1 - .../com/gh/gamecenter/SuggestionActivity.java | 10 +- .../gh/gamecenter/adapter/ConcernAdapter.java | 2 +- .../adapter/ConcernRecommendAdapter.java | 4 +- .../gamecenter/adapter/GameNewsAdapter.java | 3 +- .../adapter/MessageDetailAdapter.java | 17 +-- .../gh/gamecenter/adapter/SubjectAdapter.java | 2 +- ...ngeSkinUtils.java => ChangeSkinUtils.java} | 71 ++++-------- .../gamecenter/changeskin/DownloadUtils.java | 108 +++++++----------- ...GetFileMD5Utils.java => FileMD5Utils.java} | 73 ++++++------ .../gh/gamecenter/changeskin/NetSpeed.java | 4 +- .../{PatchData.java => PatchEntity.java} | 7 +- .../gh/gamecenter/changeskin/SkinConfig.java | 12 +- .../download/GameDownLoadFragment.java | 7 -- .../download/GameUpdateFragment.java | 4 - .../download/GameUpdateFragmentAdapter.java | 4 +- .../com/gh/gamecenter/entity/AppEntity.java | 11 +- .../entity/GameCollectionEntity.java | 4 + .../gamecenter/entity/GameDetailEntity.java | 6 +- .../com/gh/gamecenter/entity/GameEntity.java | 8 +- .../gh/gamecenter/entity/GameInfoEntity.java | 12 -- .../gamecenter/entity/GameUpdateEntity.java | 24 ---- .../gamecenter/entity/NewsDetailEntity.java | 5 + .../com/gh/gamecenter/entity/NewsEntity.java | 1 + .../gh/gamecenter/entity/SubjectEntity.java | 1 - .../com/gh/gamecenter/entity/TagEntity.java | 6 - .../gh/gamecenter/entity/ThumbnailEntity.java | 1 + .../com/gh/gamecenter/entity/UserEntity.java | 2 + .../com/gh/gamecenter/eventbus/EBPackage.java | 1 - .../com/gh/gamecenter/eventbus/EBSearch.java | 1 + .../gh/gamecenter/eventbus/EBTypeChange.java | 1 + .../gh/gamecenter/eventbus/EBUISwitch.java | 1 - .../com/gh/gamecenter/game/Game1Fragment.java | 9 -- .../gamecenter/game/Game1FragmentAdapter.java | 4 +- .../com/gh/gamecenter/game/Game2Fragment.java | 23 +--- .../gamecenter/game/Game2FragmentAdapter.java | 2 +- .../com/gh/gamecenter/game/Game3Fragment.java | 24 +--- .../gamecenter/game/Game3FragmentAdapter.java | 2 +- .../com/gh/gamecenter/game/GameFragment.java | 3 +- .../gamedetail/GameDetailAdapter.java | 10 +- .../com/gh/gamecenter/news/News1Fragment.java | 4 +- .../com/gh/gamecenter/news/NewsFragment.java | 3 +- .../newsdetail/NewsDetailAdapter.java | 5 +- .../gamecenter/personal/ConcernFragment.java | 18 +-- .../personal/ConcernFragmentAdapter.java | 3 +- .../gamecenter/personal/InstallFragment.java | 17 +-- .../personal/InstallFragmentAdapter.java | 4 +- .../gamecenter/personal/PersonalFragment.java | 72 ++++++------ .../receiver/ActivitySkipReceiver.java | 1 + .../gamecenter/receiver/DownloadReceiver.java | 1 + .../receiver/InstallAndUninstallReceiver.java | 2 - .../gamecenter/receiver/InstallReceiver.java | 1 + .../receiver/NetworkStateReceiver.java | 5 +- .../search/SearchGameDetailFragment.java | 38 ++++-- .../SearchGameDetailFragmentAdapter.java | 53 +++------ .../search/SearchGameListFragment.java | 48 ++++++-- .../search/SearchGameListFragmentAdapter.java | 52 +++------ app/src/main/res/layout/fm_search.xml | 1 + 80 files changed, 461 insertions(+), 610 deletions(-) rename app/src/main/java/com/gh/base/{DetailActivity.java => BaseDetailActivity.java} (96%) rename app/src/main/java/com/gh/gamecenter/changeskin/{InitChangeSkinUtils.java => ChangeSkinUtils.java} (85%) rename app/src/main/java/com/gh/gamecenter/changeskin/{GetFileMD5Utils.java => FileMD5Utils.java} (54%) rename app/src/main/java/com/gh/gamecenter/changeskin/{PatchData.java => PatchEntity.java} (62%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a41b9fb41c..9e54d7f04c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -143,7 +143,8 @@ - + diff --git a/app/src/main/java/com/android/volley/RequestQueue.java b/app/src/main/java/com/android/volley/RequestQueue.java index 57a427528f..bcd86f6726 100644 --- a/app/src/main/java/com/android/volley/RequestQueue.java +++ b/app/src/main/java/com/android/volley/RequestQueue.java @@ -19,8 +19,6 @@ package com.android.volley; import android.os.Handler; import android.os.Looper; -import com.gh.common.util.Utils; - import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; @@ -206,9 +204,6 @@ public class RequestQueue { cancelAll(new RequestFilter() { @Override public boolean apply(Request request) { - Utils.log("111" + request.getTag().toString()); - Utils.log("111" + tag); - Utils.log("111" + (request.getTag() == tag)); return request.getTag() == tag; } }); diff --git a/app/src/main/java/com/gh/base/AppController.java b/app/src/main/java/com/gh/base/AppController.java index e79757ec85..b6efa14434 100644 --- a/app/src/main/java/com/gh/base/AppController.java +++ b/app/src/main/java/com/gh/base/AppController.java @@ -162,14 +162,6 @@ public class AppController extends Application { getInstance().addRequest(request); } - public static void addToRequestQueue(Request request, String tag) { - if (TextUtils.isEmpty(tag)) { - tag = TAG; - } - request.setTag(tag); - getInstance().addRequest(request); - } - public static void canclePendingRequests(String tag) { if (TextUtils.isEmpty(tag)) { tag = TAG; diff --git a/app/src/main/java/com/gh/base/DetailActivity.java b/app/src/main/java/com/gh/base/BaseDetailActivity.java similarity index 96% rename from app/src/main/java/com/gh/base/DetailActivity.java rename to app/src/main/java/com/gh/base/BaseDetailActivity.java index 1142d7ceba..e67eb06624 100644 --- a/app/src/main/java/com/gh/base/DetailActivity.java +++ b/app/src/main/java/com/gh/base/BaseDetailActivity.java @@ -41,8 +41,9 @@ import java.util.Map; /** * Created by Administrator on 2016/9/19. + * 游戏详情、新闻详情基类(控制底部下载栏) */ -public abstract class DetailActivity extends BaseActivity implements View.OnClickListener { +public abstract class BaseDetailActivity extends BaseActivity implements View.OnClickListener { protected TextView actionbar_tv_title; protected RecyclerView detail_rv_show; @@ -71,7 +72,7 @@ public abstract class DetailActivity extends BaseActivity implements View.OnClic if (gameEntity != null && gameEntity.getApk().size() == 1) { String url = gameEntity.getApk().get(0).getUrl(); if (url.equals(downloadEntity.getUrl())) { - if (!"pause".equals(DownloadManager.getInstance(DetailActivity.this). + if (!"pause".equals(DownloadManager.getInstance(BaseDetailActivity.this). getStatus(downloadEntity.getUrl()))) { mDownloadEntity = downloadEntity; invalidate(); @@ -393,7 +394,7 @@ public abstract class DetailActivity extends BaseActivity implements View.OnClic Map kv = new HashMap<>(); kv.put("版本", gameEntity.getApk().get(0).getPlatform()); kv.put("页面", name); - DataUtils.onEvent(DetailActivity.this, "游戏启动", gameEntity.getName(), kv); + DataUtils.onEvent(BaseDetailActivity.this, "游戏启动", gameEntity.getName(), kv); PackageUtils.launchApplicationByPackageName(this, gameEntity.getApk().get(0).getPackageName()); } else { @@ -411,19 +412,19 @@ public abstract class DetailActivity extends BaseActivity implements View.OnClic Map kv = new HashMap<>(); kv.put("版本", apkEntity.getPlatform()); kv.put("状态", "下载开始"); - DataUtils.onEvent(DetailActivity.this, "游戏下载", gameEntity.getName(), kv); + DataUtils.onEvent(BaseDetailActivity.this, "游戏下载", gameEntity.getName(), kv); Map kv2 = new HashMap<>(); kv2.put("版本", apkEntity.getPlatform()); kv2.put("状态", "下载开始"); kv2.put("页面", name); kv2.put("位置", entrance); - DataUtils.onEvent(DetailActivity.this, "游戏下载位置", gameEntity.getName(), kv2); + DataUtils.onEvent(BaseDetailActivity.this, "游戏下载位置", gameEntity.getName(), kv2); Map kv3 = new HashMap<>(); kv3.put(entrance, "下载数"); kv3.put(entrance, "下载开始"); - DataUtils.onEvent(DetailActivity.this, "应用数据", gameEntity.getName(), kv3); + DataUtils.onEvent(BaseDetailActivity.this, "应用数据", gameEntity.getName(), kv3); Map map = new HashMap<>(); map.put("game", gameEntity.getName()); @@ -446,7 +447,7 @@ public abstract class DetailActivity extends BaseActivity implements View.OnClic detail_pb_progressbar.setProgress(0); detail_tv_per.setText("0.0%"); - DownloadManager.getInstance(DetailActivity.this).putStatus(apkEntity.getUrl(), "downloading"); + DownloadManager.getInstance(BaseDetailActivity.this).putStatus(apkEntity.getUrl(), "downloading"); } else { toast(msg); } diff --git a/app/src/main/java/com/gh/common/util/ConcernContentUtils.java b/app/src/main/java/com/gh/common/util/ConcernContentUtils.java index 19bbf63523..9420398a89 100644 --- a/app/src/main/java/com/gh/common/util/ConcernContentUtils.java +++ b/app/src/main/java/com/gh/common/util/ConcernContentUtils.java @@ -15,7 +15,7 @@ import java.util.List; /** * Created by khy on 2016/11/8. * - * 初始化z资讯关注-内容图片 + * 初始化资讯关注-内容图片 * **/ public class ConcernContentUtils { diff --git a/app/src/main/java/com/gh/common/util/HttpsUtils.java b/app/src/main/java/com/gh/common/util/HttpsUtils.java index 0158283113..288bbde2d3 100644 --- a/app/src/main/java/com/gh/common/util/HttpsUtils.java +++ b/app/src/main/java/com/gh/common/util/HttpsUtils.java @@ -1,8 +1,12 @@ package com.gh.common.util; +import java.io.IOException; +import java.io.InputStream; import java.net.URL; +import java.security.KeyStore; import java.security.SecureRandom; import java.security.cert.CertificateException; +import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import javax.net.ssl.HostnameVerifier; @@ -11,6 +15,7 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; +import javax.net.ssl.TrustManagerFactory; import javax.net.ssl.X509TrustManager; /** @@ -26,7 +31,6 @@ public class HttpsUtils { @Override public void checkServerTrusted(X509Certificate[] chain, String authType) - throws CertificateException { } @@ -42,7 +46,6 @@ public class HttpsUtils { public boolean verify(String hostname, SSLSession session) { return true; } - } private static SSLSocketFactory mSSLSocketFactory; @@ -53,8 +56,12 @@ public class HttpsUtils { SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, new TrustManager[]{new MyTrustManager()}, new SecureRandom()); mSSLSocketFactory = sc.getSocketFactory(); +// SSLContext sslContext = SSLContext.getInstance("TLS"); +// sslContext.init(null, null, null); +// mSSLSocketFactory = sslContext.getSocketFactory(); mHostnameVerifier = new MyHostnameVerifier(); +// mHostnameVerifier = OkHostnameVerifier.INSTANCE; HttpsURLConnection.setDefaultSSLSocketFactory(mSSLSocketFactory); HttpsURLConnection.setDefaultHostnameVerifier(mHostnameVerifier); @@ -62,4 +69,30 @@ public class HttpsUtils { return (HttpsURLConnection) url.openConnection(); } + public SSLSocketFactory setCertificates(InputStream is) { + try { + CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); + KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + keyStore.load(null); + keyStore.setCertificateEntry("0", certificateFactory.generateCertificate(is)); + SSLContext sslContext = SSLContext.getInstance("TLS"); + TrustManagerFactory trustManagerFactory = + TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + trustManagerFactory.init(keyStore); + sslContext.init(null, trustManagerFactory.getTrustManagers(), new SecureRandom()); + return sslContext.getSocketFactory(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (is != null) { + try { + is.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return null; + } + } 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 91bfb7407b..443dff2c61 100644 --- a/app/src/main/java/com/gh/common/util/PackageUtils.java +++ b/app/src/main/java/com/gh/common/util/PackageUtils.java @@ -73,28 +73,19 @@ public class PackageUtils { } /* - * 判断是否可以更新 + * 判断是否可以更新,只判断gh_version的大小 */ public static boolean isCanUpdate(Context context, GameUpdateEntity gameUpdateEntity) { - // 判断是否gh_version是否相同 + // 判断是否gh_version是否存在 String gh_version = (String) PackageUtils.getMetaData( context, gameUpdateEntity.getPackageName(), "gh_version"); if (gh_version != null) { gh_version = gh_version.substring(2); - // 判断gh_version是否相同 - if (gh_version.equals(gameUpdateEntity.getGhVersion())) { - // 判断version是否相同 - String version = PackageUtils.getVersionByPackage( - context, gameUpdateEntity.getPackageName()); - if (version != null && version.equals(gameUpdateEntity.getVersion())) { - // 版本相同,无需显示插件更新,继续查看是否有可更新的游戏包 - return false; - } - } + // 判断gh_version的大小 + return Long.parseLong(gh_version) < Long.parseLong(gameUpdateEntity.getGhVersion()); } else { return false; } - return true; } /* @@ -102,10 +93,7 @@ public class PackageUtils { */ public static boolean isSignature(Context context, String packageName) { String signature = getApkSignatureByPackageName(context, packageName); - if (publicKey.equals(signature)) { - return true; - } - return false; + return publicKey.equals(signature); } /* diff --git a/app/src/main/java/com/gh/common/util/PostCommentUtils.java b/app/src/main/java/com/gh/common/util/PostCommentUtils.java index 8e9730c3b9..00b999ab3d 100644 --- a/app/src/main/java/com/gh/common/util/PostCommentUtils.java +++ b/app/src/main/java/com/gh/common/util/PostCommentUtils.java @@ -18,8 +18,12 @@ import org.json.JSONObject; */ public class PostCommentUtils { - public static void addCommentData(final String url, final String content, final Context context, - final PostCommentListener listener) { + public static void addCommentData(Context context, String url, String content, PostCommentListener listener) { + addCommentData(context, url, content, true, listener); + } + + public static void addCommentData(final Context context, final String url, final String content, + final boolean isCheck, final PostCommentListener listener) { new Thread(new Runnable() { @Override public void run() { @@ -36,8 +40,7 @@ public class PostCommentUtils { @Override public void onErrorResponse(VolleyError error) { if (error.networkResponse != null && error.networkResponse.statusCode == 401) { - TokenUtils.getToken(context, false); - addCommentData(url, content, context, listener); + addCommentData(context, url, content, false, listener); return; } if (listener != null){ @@ -46,13 +49,17 @@ public class PostCommentUtils { } }); request.setShouldCache(false); - request.addHeader("TOKEN", TokenUtils.getToken(context)); + request.addHeader("TOKEN", TokenUtils.getToken(context, isCheck)); AppController.addToRequestQueue(request); } }).start(); } - public static void addCommentVoto(final String newsId, final Context context) { + public static void addCommentVoto(final Context context, final String newsId) { + addCommentVoto(context, newsId, true); + } + + public static void addCommentVoto(final Context context, final String newsId, final boolean isCheck) { new Thread(new Runnable() { @Override public void run() { @@ -63,13 +70,12 @@ public class PostCommentUtils { @Override public void onErrorResponse(VolleyError error) { if (error.networkResponse != null && error.networkResponse.statusCode == 401) { - TokenUtils.getToken(context, false); - addCommentVoto(newsId, context); + addCommentVoto(context, newsId, false); } } }); request.setShouldCache(false); - request.addHeader("TOKEN", TokenUtils.getToken(context)); + request.addHeader("TOKEN", TokenUtils.getToken(context, isCheck)); AppController.addToRequestQueue(request); } }).start(); diff --git a/app/src/main/java/com/gh/common/util/RunningUtils.java b/app/src/main/java/com/gh/common/util/RunningUtils.java index 2ce68b4fe5..917b70ad3a 100644 --- a/app/src/main/java/com/gh/common/util/RunningUtils.java +++ b/app/src/main/java/com/gh/common/util/RunningUtils.java @@ -85,8 +85,8 @@ public class RunningUtils { .getSystemService(Context.ACTIVITY_SERVICE); List infos = activityManager.getRunningTasks(100); for (RunningTaskInfo info : infos) { - if (info.topActivity.getPackageName().equals( - context.getPackageName())) { + if (info.topActivity.getPackageName().equals(context.getPackageName()) + && info.baseActivity.getPackageName().equals(context.getPackageName())) { return true; } } diff --git a/app/src/main/java/com/gh/common/util/TimestampUtils.java b/app/src/main/java/com/gh/common/util/TimestampUtils.java index a84ef4905b..05149b749d 100644 --- a/app/src/main/java/com/gh/common/util/TimestampUtils.java +++ b/app/src/main/java/com/gh/common/util/TimestampUtils.java @@ -49,6 +49,8 @@ public class TimestampUtils { intervalMap.put("^" + Config.HOST + "support/setting/platform" + "$", 120); intervalMap.put("^" + Config.HOST + "update/package/.+" + "$", 125); intervalMap.put("^" + Config.HOST + "update/game/.+/package/.+" + "$", 130); + intervalMap.put("^" + Config.COMMENT_HOST + "article/.+/comment\\?limit=10\\&offset=.+" + "$", 135); + intervalMap.put("^" + Config.COMMENT_HOST + "article/.+/comment\\?order=hot\\&limit=10\\&offset=.+" + "$", 140); } private static void initCDMap() { @@ -79,6 +81,8 @@ public class TimestampUtils { cdMap.put("^" + Config.HOST + "support/setting/platform" + "$", Constants.PLATFORM_CD); cdMap.put("^" + Config.HOST + "update/package/.+" + "$", Constants.UPDATE_CD); cdMap.put("^" + Config.HOST + "update/game/.+/package/.+" + "$", Constants.UPDATE_CD); + cdMap.put("^" + Config.COMMENT_HOST + "article/.+/comment\\?limit=10\\&offset=.+" + "$", Constants.COMMENT_CD); + cdMap.put("^" + Config.COMMENT_HOST + "article/.+/comment\\?order=hot\\&limit=10\\&offset=.+" + "$", Constants.COMMENT_CD); cdMap.put("^" + Config.HOST + "device/.+/concern" + "$", 0); cdMap.put("^" + Config.HOST + "device/.+/concern/.+" + "$", 0); cdMap.put("^" + Config.HOST + "stat/download" + "$", 0); diff --git a/app/src/main/java/com/gh/download/DownloadTask.java b/app/src/main/java/com/gh/download/DownloadTask.java index cd287ba6dc..6d073e7698 100644 --- a/app/src/main/java/com/gh/download/DownloadTask.java +++ b/app/src/main/java/com/gh/download/DownloadTask.java @@ -123,6 +123,9 @@ public class DownloadTask implements DownloadListener { || status == DownloadStatus.notfound) { entry.setProgress(0); entry.setPercent(0); + if (status == DownloadStatus.hijack) { + entry.setError(error); + } FileUtils.deleteFile(entry.getPath()); DownloadDao.getInstance(context).delete(entry.getUrl()); Utils.log(DownloadTask.class.getSimpleName(), diff --git a/app/src/main/java/com/gh/download/DownloadThread.java b/app/src/main/java/com/gh/download/DownloadThread.java index 2b71b6f80b..7d16f06fe2 100644 --- a/app/src/main/java/com/gh/download/DownloadThread.java +++ b/app/src/main/java/com/gh/download/DownloadThread.java @@ -86,7 +86,7 @@ public class DownloadThread extends Thread { //链接被劫持,抛出异常 Utils.log("eTag = " + eTag); Utils.log("eTag2 = " + eTag2); - listener.onStatusChanged(DownloadStatus.hijack); + listener.onStatusChanged(DownloadStatus.hijack, connection.getURL().toString()); Utils.log(DownloadThread.class.getSimpleName(), "error-->链接被劫持"); return; } diff --git a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java index 1c14ad8f3f..58575ab9f9 100644 --- a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java @@ -8,7 +8,6 @@ import android.view.View.OnClickListener; import android.widget.LinearLayout; import android.widget.RelativeLayout; -import com.gh.base.AppController; import com.gh.base.BaseActivity; import com.gh.common.constant.Config; import com.gh.common.util.ConcernUtils; @@ -28,8 +27,6 @@ import java.util.List; public class ConcernActivity extends BaseActivity implements OnClickListener { - public static final String TAG = ConcernActivity.class.getSimpleName(); - private Concern_LinearLayout view; private RecyclerView concern_rv_show, concern_rv_recommend; private ConcernAdapter concernAdapter; @@ -210,7 +207,6 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { @Override protected void onDestroy() { super.onDestroy(); - AppController.canclePendingRequests(TAG); String uuid = TokenUtils.getDeviceId(this); JSONArray data = new JSONArray(); for (ConcernInfo concernInfo : concernManager.getConcernGame()) { diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java index d74d816331..af96c8b754 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java @@ -10,11 +10,11 @@ import android.widget.RelativeLayout; import com.android.volley.Response; import com.android.volley.VolleyError; import com.gh.base.AppController; -import com.gh.base.DetailActivity; +import com.gh.base.BaseDetailActivity; import com.gh.common.constant.Config; import com.gh.common.util.DataUtils; import com.gh.common.util.DialogUtils; -import com.gh.gamecenter.changeskin.InitChangeSkinUtils; +import com.gh.gamecenter.changeskin.ChangeSkinUtils; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBConcernChanged; import com.gh.gamecenter.gamedetail.GameDetailAdapter; @@ -30,9 +30,7 @@ import java.util.Map; /** * Created by khy on 2016/8/12. */ -public class GameDetailActivity extends DetailActivity implements View.OnClickListener{ - - public static final String TAG = GameDetailActivity.class.getSimpleName(); +public class GameDetailActivity extends BaseDetailActivity implements View.OnClickListener{ private GameDetailAdapter adapter; @@ -176,7 +174,7 @@ public class GameDetailActivity extends DetailActivity implements View.OnClickLi reuse_no_connection.setVisibility(View.VISIBLE); } }); - AppController.addToRequestQueue(request, TAG); + AppController.addToRequestQueue(request); } // 关注事件 @@ -224,15 +222,9 @@ public class GameDetailActivity extends DetailActivity implements View.OnClickLi } } - @Override - protected void onDestroy() { - super.onDestroy(); - AppController.canclePendingRequests(TAG); - } - @Override public boolean onKeyDown(int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0 && InitChangeSkinUtils.isChecking) { + if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0 && ChangeSkinUtils.isChecking) { DialogUtils.showWarningDialog(GameDetailActivity.this, "退出提示", "素材更新还在检测中,如果强行退出会中断所有进度,确定退出?", "取消", "强行退出", new DialogUtils.ConfiremListener() { diff --git a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java index bdf2f78b33..a5a64f12c3 100644 --- a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java @@ -11,7 +11,6 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; -import com.gh.base.AppController; import com.gh.base.BaseActivity; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.adapter.GameNewsAdapter; @@ -25,8 +24,6 @@ import java.util.ArrayList; */ public class GameNewsActivity extends BaseActivity implements View.OnClickListener{ - public static final String TAG = GameNewsActivity.class.getSimpleName(); - private GameNewsAdapter adapter; private GameNewsTypeListAdapter typeListAdapter; @@ -148,12 +145,6 @@ public class GameNewsActivity extends BaseActivity implements View.OnClickListen typeListAdapter.setNewsType(change.getType(), change.getPosition()); } - @Override - protected void onDestroy() { - super.onDestroy(); - AppController.canclePendingRequests(TAG); - } - @Override public void onClick(View v) { if (v == ivSearch){ diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 7308a7aef7..1243d9a116 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -131,6 +131,7 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene private boolean isShowDownload = false; private boolean isNewFirstLaunch; + private boolean isSkipped; private Handler handler = new Handler(); @@ -442,6 +443,7 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("currentTab", currentTab); + outState.putBoolean("isSkipped", isSkipped); } @Override @@ -461,9 +463,12 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene sp = getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE); isNewFirstLaunch = sp.getBoolean("isNewFirstLaunchV" + PackageUtils.getVersion(getApplicationContext()), true); + isSkipped = false; + initViews(); if (savedInstanceState != null) { currentTab = savedInstanceState.getInt("currentTab"); + isSkipped = savedInstanceState.getBoolean("isSkipped"); } else if (isNewFirstLaunch) { currentTab = 1; } else { @@ -1028,8 +1033,9 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene Runnable runnable = new Runnable() { @Override public void run() { - //TODO 重复跳转问题 - if (getIntent() != null && getIntent().getExtras() != null) { + if (getIntent() != null && getIntent().getExtras() != null + && !isSkipped) { + isSkipped = true; String to = getIntent().getExtras().getString("to"); if(!TextUtils.isEmpty(to)){ Class clazz = intentClass(to); diff --git a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java index 3ce685ad84..b7d6809e51 100644 --- a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java @@ -6,6 +6,7 @@ import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.text.Editable; +import android.text.TextUtils; import android.text.TextWatcher; import android.view.View; import android.view.inputmethod.InputMethodManager; @@ -17,6 +18,7 @@ import android.widget.Toast; import com.android.volley.VolleyError; import com.android.volley.toolbox.DiskBasedCache; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.AppController; import com.gh.base.BaseActivity; import com.gh.common.constant.Config; import com.gh.common.util.GzipUtils; @@ -36,8 +38,6 @@ import org.json.JSONException; import org.json.JSONObject; import java.io.File; -import java.util.Date; -import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; @@ -69,6 +69,12 @@ public class MessageDetailActivity extends BaseActivity { private CommentDao mCommentDao; + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + AppController.put("ConcernEntity", adapter.getConcernEntity()); + } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -104,7 +110,7 @@ public class MessageDetailActivity extends BaseActivity { }); //检查sp是否有用户信息 - if (sp.getString("user_name", null) == null || sp.getString("user_name" , null).isEmpty()) { + if (TextUtils.isEmpty(sp.getString("user_name", null))) { new Thread(new Runnable() { @Override public void run() { @@ -119,7 +125,6 @@ public class MessageDetailActivity extends BaseActivity { }); } }).start(); - } else { mMessageDetailIconDv.setImageURI(sp.getString("user_icon", "res:///"+ R.drawable.user_default_icon_comment)); @@ -198,8 +203,9 @@ public class MessageDetailActivity extends BaseActivity { } final String newsId = adapter.getNewsId(); - PostCommentUtils.addCommentData(Config.COMMENT_HOST + "article/" + newsId + "/comment" - , jsonObject.toString(), MessageDetailActivity.this, new PostCommentUtils.PostCommentListener() { + PostCommentUtils.addCommentData(MessageDetailActivity.this, + Config.COMMENT_HOST + "article/" + newsId + "/comment", jsonObject.toString(), + new PostCommentUtils.PostCommentListener() { @Override public void postSucced(JSONObject response) { mToast.cancel(); diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java index ed2cb4307e..97724abf63 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java @@ -19,7 +19,7 @@ import com.android.volley.Response; import com.android.volley.TimeoutError; import com.android.volley.VolleyError; import com.gh.base.AppController; -import com.gh.base.DetailActivity; +import com.gh.base.BaseDetailActivity; import com.gh.common.constant.Config; import com.gh.common.util.DataUtils; import com.gh.common.util.DisplayUtils; @@ -42,9 +42,7 @@ import java.util.Map; * * @author 黄壮华 */ -public class NewsDetailActivity extends DetailActivity implements OnClickListener { - - public static final String TAG = NewsDetailActivity.class.getSimpleName(); +public class NewsDetailActivity extends BaseDetailActivity implements OnClickListener { private NewsDetailAdapter adapter; @@ -261,7 +259,7 @@ public class NewsDetailActivity extends DetailActivity implements OnClickListene } } }); - AppController.addToRequestQueue(request, TAG); + AppController.addToRequestQueue(request); } private long[] mHits = new long[2]; @@ -344,7 +342,7 @@ public class NewsDetailActivity extends DetailActivity implements OnClickListene } } }, null); - AppController.addToRequestQueue(gameRequest, TAG); + AppController.addToRequestQueue(gameRequest); } // 关注事件 @@ -417,10 +415,4 @@ public class NewsDetailActivity extends DetailActivity implements OnClickListene } } - @Override - protected void onDestroy() { - super.onDestroy(); - AppController.canclePendingRequests(TAG); - } - } diff --git a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java index dc680d4352..e8e65b609c 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java @@ -44,11 +44,10 @@ import java.util.Map; /** * Created by khy on 2016/8/22. + * 新闻搜索界面 */ public class NewsSearchActivity extends BaseActivity { - public static final String TAG = NewsSearchActivity.class.getSimpleName(); - private RecyclerView gamedetail_news_rv; private List newsEntities; private NewsSearchAdapter searchAdapter; @@ -221,7 +220,7 @@ public class NewsSearchActivity extends BaseActivity { searchAdapter.notifyItemChanged(searchAdapter.getItemCount() - 1); } }); - AppController.addToRequestQueue(request, TAG); + AppController.addToRequestQueue(request); } private void removeDuplicateData(ArrayList newsList) { @@ -241,12 +240,6 @@ public class NewsSearchActivity extends BaseActivity { } } - @Override - protected void onDestroy() { - super.onDestroy(); - AppController.canclePendingRequests(TAG); - } - public class NewsSearchAdapter extends RecyclerView.Adapter{ @Override public int getItemViewType(int position) { diff --git a/app/src/main/java/com/gh/gamecenter/PluginActivity.java b/app/src/main/java/com/gh/gamecenter/PluginActivity.java index 8c6db5a379..7e1a498acb 100644 --- a/app/src/main/java/com/gh/gamecenter/PluginActivity.java +++ b/app/src/main/java/com/gh/gamecenter/PluginActivity.java @@ -7,7 +7,6 @@ import android.view.View; import android.widget.LinearLayout; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.AppController; import com.gh.base.BaseActivity; import com.gh.common.util.DownloadItemUtils; import com.gh.download.DataWatcher; @@ -24,11 +23,10 @@ import java.util.List; /** * Created by LGT on 2016/7/6. + * 可插件化界面 */ public class PluginActivity extends BaseActivity { - public static final String TAG = PluginActivity.class.getSimpleName(); - private RecyclerView plugin_list; private PluginAdapter adapter; private ProgressBarCircularIndeterminate plugin_pb_loading; @@ -165,9 +163,4 @@ public class PluginActivity extends BaseActivity { DownloadManager.getInstance(this).addObserver(dataWatcher); } - @Override - protected void onDestroy() { - super.onDestroy(); - AppController.canclePendingRequests(TAG); - } } diff --git a/app/src/main/java/com/gh/gamecenter/SettingActivity.java b/app/src/main/java/com/gh/gamecenter/SettingActivity.java index bd21116de3..2196a8f1ef 100644 --- a/app/src/main/java/com/gh/gamecenter/SettingActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SettingActivity.java @@ -65,8 +65,6 @@ import de.greenrobot.event.EventBus; */ public class SettingActivity extends BaseActivity implements OnClickListener { - public static final String TAG = SettingActivity.class.getSimpleName(); - private SwitchButton setting_sb_autoinstall, setting_sb_autodelete, setting_sb_deletedata, setting_sb_autoupdate, setting_sb_concerngame; private TextView setting_tv_version, app_tv_speed, app_tv_percent, @@ -409,8 +407,7 @@ public class SettingActivity extends BaseActivity implements OnClickListener { appEntity = gson.fromJson(response.toString(), AppEntity.class); - float version = Float.valueOf(appEntity - .getVersion()); + float version = Float.valueOf(appEntity.getVersion()); float currentVersion = Float.valueOf(PackageUtils.getVersion(getApplicationContext())); if (version > currentVersion) { @@ -450,7 +447,7 @@ public class SettingActivity extends BaseActivity implements OnClickListener { toast("检查更新失败"); } }); - AppController.addToRequestQueue(request, TAG); + AppController.addToRequestQueue(request); } private void showUpdateDialog(final String md5) { @@ -472,10 +469,7 @@ public class SettingActivity extends BaseActivity implements OnClickListener { @Override public void onClick(View v) { if (appEntity.isForce()) { - Intent data = new Intent(); - data.putExtra("isForce", true); - setResult(RESULT_OK, data); - finish(); + AppController.getInstance().finishActivity(); } else { updateDialog.dismiss(); } @@ -525,10 +519,7 @@ public class SettingActivity extends BaseActivity implements OnClickListener { DownloadManager.getInstance(getApplicationContext()).cancel( appEntity.getUrl()); if (appEntity.isForce()) { - Intent data = new Intent(); - data.putExtra("isForce", true); - setResult(RESULT_OK, data); - finish(); + AppController.getInstance().finishActivity(); } else { downloadDialog.dismiss(); isShowDownload = false; @@ -586,7 +577,7 @@ public class SettingActivity extends BaseActivity implements OnClickListener { StringExtendedRequest request = new StringExtendedRequest(Request.Method.POST, url, null, null); request.setParams(params); request.setShouldCache(false); - AppController.addToRequestQueue(request, TAG); + AppController.addToRequestQueue(request); Utils.log("提交更新数据" + new JSONObject(params).toString()); } @@ -609,6 +600,5 @@ public class SettingActivity extends BaseActivity implements OnClickListener { protected void onDestroy() { saveCurrentSetting(); super.onDestroy(); - AppController.canclePendingRequests(TAG); } } diff --git a/app/src/main/java/com/gh/gamecenter/SkipActivity.java b/app/src/main/java/com/gh/gamecenter/SkipActivity.java index 32b293f89a..b9a0fcb438 100644 --- a/app/src/main/java/com/gh/gamecenter/SkipActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SkipActivity.java @@ -1,10 +1,12 @@ package com.gh.gamecenter; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; import com.gh.base.BaseActivity; +import com.gh.common.util.PlatformUtils; import com.gh.common.util.RunningUtils; /** @@ -59,7 +61,11 @@ public class SkipActivity extends BaseActivity { intent.putExtra("id", id); intent.putExtra("name", getIntent().getData().getQueryParameter("name")); } else if ("suggestion".equals(host)) { - intent.putExtra("content", getIntent().getData().getQueryParameter("content")); + Uri uri = getIntent().getData(); + String content = "【" + uri.getQueryParameter("game_name") + + "-" + PlatformUtils.getInstance(this).getPlatformName(uri.getQueryParameter("platform")) + + "-V" + uri.getQueryParameter("version") + "】"; + intent.putExtra("content", content); intent.putExtra("to", "SuggestionActivity"); } } diff --git a/app/src/main/java/com/gh/gamecenter/SubjectActivity.java b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java index 395b3e0bcc..fa744797c0 100644 --- a/app/src/main/java/com/gh/gamecenter/SubjectActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java @@ -7,7 +7,6 @@ import android.view.View; import android.widget.LinearLayout; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.AppController; import com.gh.base.BaseActivity; import com.gh.common.util.DownloadItemUtils; import com.gh.download.DataWatcher; diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java index 8d2bef6caf..fd994a2a8f 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java @@ -41,8 +41,6 @@ import java.util.regex.Pattern; * */ public class SuggestionActivity extends BaseActivity implements OnClickListener { - public static final String TAG = SuggestionActivity.class.getSimpleName(); - private TextView tv_suggest_connectway; private EditText et_suggest_content, et_suggest_connectway; private CardView btn_suggest_post; @@ -86,6 +84,12 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener } }); + + String content = getIntent().getStringExtra("content"); + if (!TextUtils.isEmpty(content)) { + et_suggest_content.setText(content); + et_suggest_content.setSelection(et_suggest_content.getText().length()); + } } @Override @@ -223,7 +227,7 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener } }); request.setShouldCache(false); - AppController.addToRequestQueue(request, TAG); + AppController.addToRequestQueue(request); } private boolean isEmailAddress(String email) { 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 b60066669e..f253df411b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java @@ -92,7 +92,7 @@ public class ConcernAdapter extends RecyclerView.Adapter { } } }); - AppController.addToRequestQueue(concernObjectRequest, ConcernActivity.TAG); + AppController.addToRequestQueue(concernObjectRequest); } } 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 e4aba641a5..d198262cc5 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java @@ -98,7 +98,7 @@ public class ConcernRecommendAdapter extends RecyclerView.Adapter list) { 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 7e9774fde2..0bed98201b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java @@ -25,7 +25,6 @@ import com.gh.common.util.NewsUtils; import com.gh.common.util.PostCommentUtils; import com.gh.common.util.Utils; import com.gh.common.view.CardLinearLayout; -import com.gh.gamecenter.GameNewsActivity; import com.gh.gamecenter.MessageDetailActivity; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; @@ -114,12 +113,12 @@ public class MessageDetailAdapter extends RecyclerView.Adapter() { @Override @@ -142,14 +141,14 @@ public class MessageDetailAdapter extends RecyclerView.Adapter() { @@ -181,7 +180,7 @@ public class MessageDetailAdapter extends RecyclerView.Adapter patchDatas = new ArrayList(); - private static List updatePatchList; + private static List patchDatas = new ArrayList(); + private static List updatePatchList; private static Timer timer; private static Timer poiTimer; @@ -65,13 +64,13 @@ public class InitChangeSkinUtils { if( "".equals(jsonRuslt) ){ startCheckMD5Thread(); }else { - List patchData = parseDesPatchJson(jsonRuslt); + List patchData = parseDesPatchJson(jsonRuslt); patchDatas.addAll(patchData); if( patchData.size() < SkinConfig.perPage ) { startCheckMD5Thread(); }else{ - pageNum += 1; - String urlPath = SkinConfig.JSON_PATCHURL.replace( "*", ""+pageNum ); + pageNum++; + String urlPath = SkinConfig.JSON_PATCHURL + pageNum; DownloadUtils.downloadJson( urlPath, handler ); } } @@ -179,7 +178,7 @@ public class InitChangeSkinUtils { changeViewState( showTxt, "blue", SkinConfig.TYPE_DESUPDATE, false ); startSetPoint(); - String urlPath = SkinConfig.JSON_PATCHURL.replace( "*", ""+pageNum ); + String urlPath = SkinConfig.JSON_PATCHURL + pageNum; //下载数据json DownloadUtils.downloadJson( urlPath, handler); } @@ -256,21 +255,21 @@ public class InitChangeSkinUtils { } //比较文件的MD5值,返回MD5值不同的文件个数 - private static void relMD5File( Map dirMD5Map ) { - updatePatchList = new ArrayList(); + private static void relMD5File( Map dirMD5Map ) { + updatePatchList = new ArrayList(); int patchSize = 0; curMD5Num = 0; //获取目录下所有文件的 MD5 值 for ( int i = 0; i < patchDatas.size(); i++ ) { - PatchData data = patchDatas.get( i ); - String path = data.filePath; - String updateMD5 = data.MD5; + PatchEntity data = patchDatas.get( i ); + String path = data.path; + String updateMD5 = data.md5; String updateUrl = data.url; String updateSize = data.size; //替换地址中标识符& String replacePath = path.replace("&", SkinConfig.patchVersion); - patchDatas.get(i).filePath = replacePath; + patchDatas.get(i).path = replacePath; String localMD5 = dirMD5Map.get( "/" + replacePath ); if ( localMD5 != null ) { @@ -298,8 +297,8 @@ public class InitChangeSkinUtils { final Thread checkMD5Thrad = new Thread(new Runnable() { @Override public void run() { - localMD5Num = GetFileMD5Utils.getDirNum(new File(filePath)); - Map dirMD5Map = GetFileMD5Utils.getDirMD5(new File(filePath), true, handler); + localMD5Num = FileMD5Utils.getDirNum(new File(filePath)); + Map dirMD5Map = FileMD5Utils.getDirMD5(new File(filePath), handler); Message msg = Message.obtain(); msg.obj = dirMD5Map; msg.what = SkinConfig.MSG_MD5_OVER; @@ -310,32 +309,10 @@ public class InitChangeSkinUtils { } //解析json数据 - private static List parseDesPatchJson(String jsonString) { - List patchList = new ArrayList(); - JSONArray fileArray; - try { - fileArray = new JSONArray(jsonString); - for(int i = 0; i < fileArray.length(); i++ ) { - PatchData patchData = new PatchData(); - JSONObject fileObject = fileArray.getJSONObject(i); - - String md5 = fileObject.getString("md5"); - String size = fileObject.getString("size"); - String path = fileObject.getString("path"); - String url = fileObject.getString("url"); - - patchData.MD5 = md5; - patchData.size = size; - patchData.filePath = path; - patchData.url = url; - - patchList.add(patchData); - } - return patchList; - } catch (JSONException e) { - e.printStackTrace(); - return null; - } + private static List parseDesPatchJson(String jsonString) { + Type listType = new TypeToken>() {}.getType(); + Gson gson = new Gson(); + return gson.fromJson(jsonString, listType); } //指定目录,下载替换文件 @@ -353,8 +330,8 @@ public class InitChangeSkinUtils { } downPosition = i; - PatchData patchData = updatePatchList.get( i ); - String filePath = patchData.filePath; + PatchEntity patchData = updatePatchList.get( i ); + String filePath = patchData.path; Utils.log("updateProgress---" + updatePatchList.size() + "::" + i); DownloadUtils.saveUrlToFile( filePath, patchData.url, handler ); } diff --git a/app/src/main/java/com/gh/gamecenter/changeskin/DownloadUtils.java b/app/src/main/java/com/gh/gamecenter/changeskin/DownloadUtils.java index 22e437b1ae..857b278322 100644 --- a/app/src/main/java/com/gh/gamecenter/changeskin/DownloadUtils.java +++ b/app/src/main/java/com/gh/gamecenter/changeskin/DownloadUtils.java @@ -5,10 +5,6 @@ import android.os.Message; import com.gh.common.util.Utils; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.File; @@ -17,57 +13,72 @@ import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; -import java.util.ArrayList; -import java.util.List; /** * Created by yyq on 2016/11/3. + * */ public class DownloadUtils { - //下载需要替换的文件 - public static void saveUrlToFile(String filePath, String destUrl, Handler handler) { - int BUFFER_SIZE = 2048 * 2048; - FileOutputStream fos = null; - BufferedInputStream bis = null; - HttpURLConnection httpUrl = null; - URL url = null; - byte[] buf = new byte[ BUFFER_SIZE ]; - int size = 0; + private static final int BUFFER_SIZE = 2048 * 2048; + private static final int CONNECT_TIME = 5000; + private static final int READ_TIME = 5000; - //建立链接 + //下载需要替换的文件 + public static void saveUrlToFile(String filePath, String url, Handler handler) { + BufferedInputStream bis = null; + FileOutputStream fos = null; try { - url = new URL( destUrl ); - httpUrl = (HttpURLConnection) url.openConnection(); + // 建立链接 + HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); + connection.setRequestMethod("GET"); + connection.setConnectTimeout(CONNECT_TIME); + connection.setReadTimeout(READ_TIME); + connection.setDoInput(true); //连接指定的资源 - httpUrl.connect(); + connection.connect(); //获取网络输入流 - bis = new BufferedInputStream( httpUrl.getInputStream() ); - File file = new File( filePath ); + bis = new BufferedInputStream(connection.getInputStream()); + File file = new File(filePath); if(!file.exists()) { - if( !file.getParentFile().exists() ) { - file.getParentFile().mkdirs(); + File dir = file.getParentFile(); + if (dir.exists() || dir.mkdirs()) { + file.createNewFile(); } - file.createNewFile(); } Utils.log("createNewFile::" + file.getName() + "::" + file.getAbsolutePath() + "::" + file.exists() + "::" + file.isFile()); fos = new FileOutputStream(file); //保存文件 - while ( ( size = bis.read( buf ) ) != -1) - fos.write( buf, 0, size ); + int size; + byte[] buffer = new byte[BUFFER_SIZE]; + while ((size = bis.read(buffer)) != -1) { + fos.write(buffer, 0, size); + } + fos.flush(); Utils.log("updateProgress---saveUrlToFile"); - handler.sendEmptyMessage( SkinConfig.MSG_PROGRESS_UPDATE ); - - fos.close(); - bis.close(); - httpUrl.disconnect(); - } catch (Exception e) { + handler.sendEmptyMessage(SkinConfig.MSG_PROGRESS_UPDATE); + } catch (IOException e) { Utils.log("saveUrlToFile::" + e.toString()); - InitChangeSkinUtils.NetWorkErrorControl(); + ChangeSkinUtils.NetWorkErrorControl(); //出现异常暂停下载 e.printStackTrace(); + } finally { + if (bis != null) { + try { + bis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (fos != null) { + try { + fos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } } } @@ -124,37 +135,6 @@ public class DownloadUtils { } - - //解析json数据 - private static List parseDesPatchJson(String jsonString) { - List patchList = new ArrayList(); - JSONArray fileArray; - try { - fileArray = new JSONArray(jsonString); - for(int i = 0; i < fileArray.length(); i++ ) { - PatchData patchData = new PatchData(); - JSONObject fileObject = fileArray.getJSONObject(i); - - String md5 = fileObject.getString("md5"); - String size = fileObject.getString("size"); - String path = fileObject.getString("path"); - String url = fileObject.getString("url"); - - patchData.MD5 = md5; - patchData.size = size; - patchData.filePath = path; - patchData.url = url; - - patchList.add(patchData); - } - return patchList; - } catch (JSONException e) { - e.printStackTrace(); - return null; - } - } - - private static byte[] readStream(InputStream inputStream) throws IOException { ByteArrayOutputStream bout = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; diff --git a/app/src/main/java/com/gh/gamecenter/changeskin/GetFileMD5Utils.java b/app/src/main/java/com/gh/gamecenter/changeskin/FileMD5Utils.java similarity index 54% rename from app/src/main/java/com/gh/gamecenter/changeskin/GetFileMD5Utils.java rename to app/src/main/java/com/gh/gamecenter/changeskin/FileMD5Utils.java index c4a43511bd..6d7bca66cf 100644 --- a/app/src/main/java/com/gh/gamecenter/changeskin/GetFileMD5Utils.java +++ b/app/src/main/java/com/gh/gamecenter/changeskin/FileMD5Utils.java @@ -11,21 +11,21 @@ import java.util.Map; /** * Created by yyq on 2016/11/2. + * */ -public class GetFileMD5Utils { +public class FileMD5Utils { + /** * 获取单个文件的MD5值! - - * @param file - * @return + * @param file 文件 + * @return md5 */ - public static String getFileMD5(File file) { if (!file.isFile()) { return null; } - MessageDigest digest = null; - FileInputStream in = null; + MessageDigest digest; + FileInputStream in; byte buffer[] = new byte[1024]; int len; try { @@ -42,18 +42,17 @@ public class GetFileMD5Utils { BigInteger bigInt = new BigInteger(1, digest.digest()); - if(bigInt.toString().length()<39) { + if (bigInt.toString().length() < 39) { int length = bigInt.toString(16).length(); - if(length < 32){ + if (length < 32) { String bigStr = bigInt.toString(16); - for(int i=0; i<(32-length); i++){ + for (int i = 0; i < (32 - length); i++) { bigStr = "0" + bigStr; } return bigStr; } } - return bigInt.toString(16); } @@ -62,48 +61,48 @@ public class GetFileMD5Utils { /** * 获取文件夹中文件的MD5值 * - * @param file - * @param listChild - * ;true递归子目录中的文件 - * @param handler - * @return + * @param folder 文件夹 + * @param handler handler + * @return 文件MD5 map */ - public static Map getDirMD5(File file, boolean listChild, Handler handler) { - if (!file.isDirectory()) { - return null; + public static Map getDirMD5(File folder, Handler handler) { + Map map = new HashMap<>(); + if (!folder.isDirectory()) { + return map; } - Map map = new HashMap(); String md5; - File files[] = file.listFiles(); - for (int i = 0; i < files.length; i++) { - File f = files[i]; - if (f.isDirectory() && listChild) { - map.putAll(getDirMD5(f, listChild, handler)); + for (File file : folder.listFiles()) { + if (file.isDirectory()) { + map.putAll(getDirMD5(file, handler)); } else { - md5 = getFileMD5(f); - handler.sendEmptyMessage( SkinConfig.MSG_MD5_PROGRSS ); + md5 = getFileMD5(file); + handler.sendEmptyMessage(SkinConfig.MSG_MD5_PROGRSS); if (md5 != null) { - map.put(f.getPath(), md5); + map.put(file.getPath(), md5); } } } return map; } - - public static int getDirNum(File file) { + /** + * 获取文件夹下文件数量 + * @param folder 文件夹 + * @return 文件数量 + */ + public static int getDirNum(File folder) { int dirNum = 0; - File files[] = file.listFiles(); - for (int i = 0; i < files.length; i++) { - File f = files[i]; - if (f.isDirectory()) { - dirNum += getDirNum(f); + if (!folder.isDirectory()) { + return dirNum; + } + for (File file : folder.listFiles()) { + if (file.isDirectory()) { + dirNum += getDirNum(file); } else { - dirNum ++; + dirNum++; } } return dirNum; } - } diff --git a/app/src/main/java/com/gh/gamecenter/changeskin/NetSpeed.java b/app/src/main/java/com/gh/gamecenter/changeskin/NetSpeed.java index 8f2da730d9..17027f1853 100644 --- a/app/src/main/java/com/gh/gamecenter/changeskin/NetSpeed.java +++ b/app/src/main/java/com/gh/gamecenter/changeskin/NetSpeed.java @@ -8,6 +8,7 @@ import android.os.Message; /** * Created by yyq on 2016/11/4. + * */ public class NetSpeed { @@ -29,8 +30,7 @@ public class NetSpeed { Message msg = handler.obtainMessage(); msg.what = SkinConfig.MSG_NETWORK_SPEED ; - String speeds = String.valueOf(speed) + " kb/s"; - msg.obj = speeds; + msg.obj = String.valueOf(speed) + " kb/s"; handler.sendMessage(msg);//更新界面 } } diff --git a/app/src/main/java/com/gh/gamecenter/changeskin/PatchData.java b/app/src/main/java/com/gh/gamecenter/changeskin/PatchEntity.java similarity index 62% rename from app/src/main/java/com/gh/gamecenter/changeskin/PatchData.java rename to app/src/main/java/com/gh/gamecenter/changeskin/PatchEntity.java index 09b10f536b..1d9744bd7c 100644 --- a/app/src/main/java/com/gh/gamecenter/changeskin/PatchData.java +++ b/app/src/main/java/com/gh/gamecenter/changeskin/PatchEntity.java @@ -2,10 +2,11 @@ package com.gh.gamecenter.changeskin; /** * Created by yyq on 2016/11/2. + * */ -public class PatchData { - public String MD5; +public class PatchEntity { + public String md5; public String size; - public String filePath; + public String path; public String url; } diff --git a/app/src/main/java/com/gh/gamecenter/changeskin/SkinConfig.java b/app/src/main/java/com/gh/gamecenter/changeskin/SkinConfig.java index 3f4cfda5d7..8edd391331 100644 --- a/app/src/main/java/com/gh/gamecenter/changeskin/SkinConfig.java +++ b/app/src/main/java/com/gh/gamecenter/changeskin/SkinConfig.java @@ -2,14 +2,15 @@ package com.gh.gamecenter.changeskin; /** * Created by khy on 2016/11/16. + * */ public class SkinConfig { public static int PG_STATE = 1; /* - pageNum : 页数 - perPage : 请求数量 + * pageNum : 页数 + * perPage : 请求数量 */ public static int perPage = 300; @@ -26,10 +27,11 @@ public class SkinConfig { public static final int MSG_MD5_OVER = 104; public static final int MSG_NETWORK_ERROR = 200; - public static String GAME_ID = "57ce84f88ab49e83728b4572"; + public static final String GAME_ID = "57ce84f88ab49e83728b4572"; - // http://api.ghzhushou.com/v2d2/game/57ce84f88ab49e83728b4572/skin/data?page=1&per_page=1000 - public static String JSON_PATCHURL = "http://api.ghzhushou.com/v2d2/game/" + GAME_ID + "/skin/data?page=*&per_page=" + perPage; + // http://api.ghzhushou.com/v2d2/game/57ce84f88ab49e83728b4572/skin/data?per_page=1000&page=1 + public static final String JSON_PATCHURL = "http://api.ghzhushou.com/v2d2/game/" + + GAME_ID + "/skin/data?per_page=" + perPage + "&page="; // ewan.anfeng 安峰 public static String patchVersion = "com.netease.ma.ewan.anfeng"; 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 addd84c68b..91c1282f63 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java @@ -29,7 +29,6 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBDownloadChanged; import com.gh.gamecenter.eventbus.EBMiPush; import com.gh.gamecenter.eventbus.EBPackage; -import com.gh.gamecenter.eventbus.EBShowDone; import com.gh.gamecenter.eventbus.EBSkip; import com.gh.gamecenter.eventbus.EBUISwitch; @@ -331,12 +330,6 @@ public class GameDownLoadFragment extends Fragment implements View.OnClickListen } } - public void onEventMainThread(EBShowDone showDone) { - if ("下载管理".equals(showDone.getFrom()) && downloadmanager_rv_show != null) { - downloadmanager_rv_show.smoothScrollToPosition(showDone.getPosition()); - } - } - @Override public void onResume() { super.onResume(); 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 7aa0e01d0b..d1d78f567e 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java @@ -12,7 +12,6 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.AppController; import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBDownloadChanged; @@ -33,8 +32,6 @@ import de.greenrobot.event.EventBus; */ public class GameUpdateFragment extends Fragment { - public static final String TAG = GameUpdateFragment.class.getSimpleName(); - private View view; private RecyclerView gameupdate_rv_show; private GameUpdateFragmentAdapter adapter; @@ -146,6 +143,5 @@ public class GameUpdateFragment extends Fragment { public void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); - AppController.canclePendingRequests(TAG); } } 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 a30d0c639a..0149f8876c 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java @@ -155,7 +155,7 @@ public class GameUpdateFragmentAdapter extends RecyclerView.Adapter packages) { this.packages = packages; } + public List getPackage() { return packages; } diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameDetailEntity.java b/app/src/main/java/com/gh/gamecenter/entity/GameDetailEntity.java index 534f918990..a91725b94a 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameDetailEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/GameDetailEntity.java @@ -21,14 +21,14 @@ public class GameDetailEntity { @SerializedName("download_off_text") private String downloadOffText; @SerializedName("skin_test") - private boolean skinTest; + private boolean isSkinTest; public boolean isSkinTest() { - return skinTest; + return isSkinTest; } public void setSkinTest(boolean skinTest) { - this.skinTest = skinTest; + this.isSkinTest = skinTest; } public void setDownloadOffText(String downloadOffText) { diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.java b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.java index d69cbb21fc..50b2a5bf25 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.java @@ -42,7 +42,7 @@ public class GameEntity { private String link; @SerializedName("concern_article_exists") - private boolean newsExists = true; + private boolean isNewsExists = true; @SerializedName("download_off_text") private String downloadOffText; @@ -56,11 +56,11 @@ public class GameEntity { } public boolean isNewsExists() { - return newsExists; + return isNewsExists; } public void setNewsExists(boolean newsExists) { - this.newsExists = newsExists; + this.isNewsExists = newsExists; } public String getLink() { @@ -211,7 +211,7 @@ public class GameEntity { gameEntity.setType(type); gameEntity.setPluggable(isPluggable); gameEntity.setLink(link); - gameEntity.setNewsExists(newsExists); + gameEntity.setNewsExists(isNewsExists); gameEntity.setDownloadOffText(downloadOffText); return gameEntity; } diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameInfoEntity.java b/app/src/main/java/com/gh/gamecenter/entity/GameInfoEntity.java index 625cf23600..ea914df237 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameInfoEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/GameInfoEntity.java @@ -1,7 +1,5 @@ package com.gh.gamecenter.entity; -import java.util.ArrayList; - public class GameInfoEntity { private String id; @@ -10,8 +8,6 @@ public class GameInfoEntity { private boolean isSignature; private long installTime; - private ArrayList packageList; - public String getId() { return id; } @@ -52,12 +48,4 @@ public class GameInfoEntity { this.installTime = installTime; } - public ArrayList getPackageList() { - return packageList; - } - - public void setPackageList(ArrayList packageList) { - this.packageList = packageList; - } - } diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameUpdateEntity.java b/app/src/main/java/com/gh/gamecenter/entity/GameUpdateEntity.java index f24963b3fb..8bc43f20c3 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameUpdateEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/GameUpdateEntity.java @@ -29,18 +29,12 @@ public class GameUpdateEntity { private boolean isPluggable; - private ApkEntity apk; - private String etag; private String brief; private ArrayList tag; - public GameUpdateEntity() { - - } - public String getBrief() { return brief; } @@ -145,22 +139,4 @@ public class GameUpdateEntity { this.etag = etag; } - public ApkEntity getApk() { - if (apk == null) { - apk = new ApkEntity(); - apk.setGhVersion(ghVersion); - apk.setVersion(version); - apk.setPackageName(packageName); - apk.setPlatform(platform); - apk.setSize(size); - apk.setUrl(url); - apk.setEtag(etag); - } - return apk; - } - - public void setApk(ApkEntity apk) { - this.apk = apk; - } - } diff --git a/app/src/main/java/com/gh/gamecenter/entity/NewsDetailEntity.java b/app/src/main/java/com/gh/gamecenter/entity/NewsDetailEntity.java index 619ca1854c..d5ad355220 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/NewsDetailEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/NewsDetailEntity.java @@ -8,10 +8,15 @@ public class NewsDetailEntity { @SerializedName("_id") private String id; + private long time; + private String author; + private String content; + private String title; + private String type; @SerializedName("game_id") diff --git a/app/src/main/java/com/gh/gamecenter/entity/NewsEntity.java b/app/src/main/java/com/gh/gamecenter/entity/NewsEntity.java index 40163c660b..fd282bf2d4 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/NewsEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/NewsEntity.java @@ -8,6 +8,7 @@ public class NewsEntity { private String id; private String type; + private String title; @SerializedName("time") diff --git a/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.java b/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.java index a760346c1a..a2b6bec6ee 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.java @@ -60,5 +60,4 @@ public class SubjectEntity { this.data = data; } - } diff --git a/app/src/main/java/com/gh/gamecenter/entity/TagEntity.java b/app/src/main/java/com/gh/gamecenter/entity/TagEntity.java index 83765d0d97..7949c5d2b4 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/TagEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/TagEntity.java @@ -31,10 +31,4 @@ public class TagEntity { this.des = des; } - @Override - public String toString() { - return "TagEntity [name=" + name + ", icon=" + icon + ", des=" + des - + "]"; - } - } diff --git a/app/src/main/java/com/gh/gamecenter/entity/ThumbnailEntity.java b/app/src/main/java/com/gh/gamecenter/entity/ThumbnailEntity.java index 7bf231c4d6..6390ef6059 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/ThumbnailEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/ThumbnailEntity.java @@ -8,6 +8,7 @@ import java.util.List; public class ThumbnailEntity { private String type; + private List url; public String getType() { diff --git a/app/src/main/java/com/gh/gamecenter/entity/UserEntity.java b/app/src/main/java/com/gh/gamecenter/entity/UserEntity.java index c6ac62bbe7..f76e97664b 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/UserEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/UserEntity.java @@ -12,6 +12,7 @@ public class UserEntity { public void setIcon(String icon) { this.icon = icon; } + public String getIcon() { return icon; } @@ -19,6 +20,7 @@ public class UserEntity { public void setName(String name) { this.name = name; } + public String getName() { return name; } diff --git a/app/src/main/java/com/gh/gamecenter/eventbus/EBPackage.java b/app/src/main/java/com/gh/gamecenter/eventbus/EBPackage.java index 27885d09a9..bda6da40ea 100644 --- a/app/src/main/java/com/gh/gamecenter/eventbus/EBPackage.java +++ b/app/src/main/java/com/gh/gamecenter/eventbus/EBPackage.java @@ -6,7 +6,6 @@ public class EBPackage { private String packageName; public EBPackage(String type, String packageName) { - super(); this.type = type; this.packageName = packageName; } diff --git a/app/src/main/java/com/gh/gamecenter/eventbus/EBSearch.java b/app/src/main/java/com/gh/gamecenter/eventbus/EBSearch.java index 059297be80..b1f75b3996 100644 --- a/app/src/main/java/com/gh/gamecenter/eventbus/EBSearch.java +++ b/app/src/main/java/com/gh/gamecenter/eventbus/EBSearch.java @@ -6,6 +6,7 @@ package com.gh.gamecenter.eventbus; public class EBSearch { private String key; + private boolean isSearch; public EBSearch(String key, boolean isSearch) { diff --git a/app/src/main/java/com/gh/gamecenter/eventbus/EBTypeChange.java b/app/src/main/java/com/gh/gamecenter/eventbus/EBTypeChange.java index 2d6914037e..7bf8c7eb55 100644 --- a/app/src/main/java/com/gh/gamecenter/eventbus/EBTypeChange.java +++ b/app/src/main/java/com/gh/gamecenter/eventbus/EBTypeChange.java @@ -11,6 +11,7 @@ public class EBTypeChange { public EBTypeChange(String type, int position) { this.type = type; + this.position = position; } public String getType() { diff --git a/app/src/main/java/com/gh/gamecenter/eventbus/EBUISwitch.java b/app/src/main/java/com/gh/gamecenter/eventbus/EBUISwitch.java index da634ef43a..1e59285b96 100644 --- a/app/src/main/java/com/gh/gamecenter/eventbus/EBUISwitch.java +++ b/app/src/main/java/com/gh/gamecenter/eventbus/EBUISwitch.java @@ -6,7 +6,6 @@ public class EBUISwitch { private int position; public EBUISwitch(String from, int position) { - super(); this.position = position; this.from = from; } diff --git a/app/src/main/java/com/gh/gamecenter/game/Game1Fragment.java b/app/src/main/java/com/gh/gamecenter/game/Game1Fragment.java index 628014e8ca..24fb1e97b6 100644 --- a/app/src/main/java/com/gh/gamecenter/game/Game1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/game/Game1Fragment.java @@ -10,7 +10,6 @@ import android.widget.LinearLayout; import com.facebook.drawee.backends.pipeline.Fresco; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.AppController; import com.gh.base.BaseFragment; import com.gh.common.util.DownloadItemUtils; import com.gh.download.DataWatcher; @@ -35,8 +34,6 @@ import java.util.List; */ public class Game1Fragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener { - public static final String TAG = Game1Fragment.class.getSimpleName(); - private SwipeRefreshLayout fm_game_swipe_refresh; private RecyclerView fm_game_rv_list; private Game1FragmentAdapter adapter; @@ -295,10 +292,4 @@ public class Game1Fragment extends BaseFragment implements SwipeRefreshLayout.On handler.postDelayed(runnable, 1000); } - @Override - public void onDestroy() { - super.onDestroy(); - AppController.canclePendingRequests(TAG); - } - } diff --git a/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java index b2af850260..80164b8408 100644 --- a/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java @@ -176,7 +176,7 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter(); - sp = getActivity().getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE); + SharedPreferences sp = getActivity().getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE); isNewFirstLaunch = sp.getBoolean("isNewFirstLaunchV" + PackageUtils.getVersion(getActivity()), true); 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 1324030931..93c15e6ca5 100644 --- a/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java @@ -57,9 +57,8 @@ public class NewsFragment extends HomeFragment implements View.OnClickListener, if (savedInstanceState != null) { currentItem = savedInstanceState.getInt("currentItem"); } - home_vp_content.setCurrentItem(currentItem); - initTextView(); + home_vp_content.setCurrentItem(currentItem); DisplayMetrics outMetrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); 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 e9f7241a2f..18e4d80308 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java @@ -58,6 +58,7 @@ import java.util.Map; /** * Created by LGT on 2016/9/13. + * 新闻详情数据适配器 */ public class NewsDetailAdapter extends RecyclerView.Adapter { @@ -111,7 +112,7 @@ public class NewsDetailAdapter extends RecyclerView.Adapter { } } }); - AppController.addToRequestQueue(request, NewsDetailActivity.TAG); + AppController.addToRequestQueue(request); } private void getNewsMore() { @@ -142,7 +143,7 @@ public class NewsDetailAdapter extends RecyclerView.Adapter { } } }, null); - AppController.addToRequestQueue(request, NewsDetailActivity.TAG); + AppController.addToRequestQueue(request); } @Override 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 76df924683..aaf058f8c3 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,6 @@ import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.AppController; import com.gh.base.BaseFragment; import com.gh.common.util.DownloadItemUtils; import com.gh.download.DataWatcher; @@ -28,19 +27,16 @@ import de.greenrobot.event.EventBus; /** * Created by LGT on 2016/8/12. + * 我的光环-已关注界面 */ public class ConcernFragment extends BaseFragment { - public static final String TAG = ConcernFragment.class.getSimpleName(); - private RecyclerView fm_concern_rv_show; private ConcernFragmentAdapter adapter; private LinearLayout reuse_nodata_skip; private TextView reuse_nodata_skip_tv_hint; private TextView reuse_nodata_skip_tv_btn; - private boolean isEverpause; - private DataWatcher dataWatcher = new DataWatcher() { @Override public void onDataChanged(DownloadEntity downloadEntity) { @@ -62,8 +58,6 @@ public class ConcernFragment extends BaseFragment { public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - isEverpause = false; - init(R.layout.fm_concern); reuse_nodata_skip.setVisibility(View.GONE); @@ -142,28 +136,20 @@ public class ConcernFragment extends BaseFragment { @Override public void onResume() { - super.onResume(); if (isEverpause) { for (GameEntity entity : adapter.getGameList()) { entity.setEntryMap(DownloadManager.getInstance(getActivity()).getEntryMap(entity.getName())); } adapter.notifyDataSetChanged(); } - isEverpause = false; + super.onResume(); DownloadManager.getInstance(getActivity()).addObserver(dataWatcher); } @Override public void onPause() { super.onPause(); - isEverpause = true; DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher); } - @Override - public void onDestroy() { - super.onDestroy(); - AppController.canclePendingRequests(TAG); - } - } 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 0ebdd1d80d..31ecac4707 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java @@ -41,6 +41,7 @@ import java.util.Map; /** * Created by LGT on 2016/8/15. + * 已关注界面-数据适配器 */ public class ConcernFragmentAdapter extends RecyclerView.Adapter { @@ -110,7 +111,7 @@ public class ConcernFragmentAdapter extends RecyclerView.Adapter() { @Override @@ -240,7 +240,7 @@ public class InstallFragmentAdapter extends RecyclerView.Adapter= Build.VERSION_CODES.KITKAT) { RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) me_iv_top_setting.getLayoutParams(); params.topMargin = DisplayUtils.getInternalDimensionSize(getResources(), "status_bar_height") @@ -383,8 +380,12 @@ public class PersonalFragment extends Fragment implements View.OnClickListener, }.start(); } - private void modifyNickname(final String nickname) { + private void modifyNickname(String nickname) { final Dialog waitDialog = DialogUtils.showWaitDialog(getActivity(), "修改中..."); + modifyNickname(waitDialog, nickname, true); + } + + private void modifyNickname(final Dialog waitDialog, final String nickname, final boolean isCheck) { new Thread(){ @Override public void run() { @@ -404,30 +405,31 @@ public class PersonalFragment extends Fragment implements View.OnClickListener, }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { + if (error.networkResponse != null + && error.networkResponse.statusCode == 401) { + modifyNickname(waitDialog, nickname, false); + return; + } waitDialog.dismiss(); - if (error.networkResponse != null) { - if (error.networkResponse.statusCode == 401) { - TokenUtils.getToken(getActivity(), false); // TODO 提示网络请求不能在UI线程执行 - modifyNickname(nickname); - } else if (error.networkResponse.statusCode == 403) { - try { - JSONObject response = new JSONObject(new String(error.networkResponse.data)); - String detail = response.getString("detail"); - if ("too long".equals(detail)) { - Toast.makeText(getActivity(), "昵称太长", Toast.LENGTH_SHORT).show(); - } else if ("invalid".equals(detail)) { - Toast.makeText(getActivity(), "非法字符", Toast.LENGTH_SHORT).show(); - } else if ("repeat".equals(detail)) { - Toast.makeText(getActivity(), "昵称已存在", Toast.LENGTH_SHORT).show(); - } else if ("no change".equals(detail)) { - Toast.makeText(getActivity(), "昵称一致", Toast.LENGTH_SHORT).show(); - } else if ("too frequent".equals(detail)) { - Toast.makeText(getActivity(), "修改太频繁,请稍后再试", Toast.LENGTH_SHORT).show(); - } - } catch (JSONException e) { - e.printStackTrace(); - Toast.makeText(getActivity(), "修改失败", Toast.LENGTH_SHORT).show(); + if (error.networkResponse != null + && error.networkResponse.statusCode == 403) { + try { + JSONObject response = new JSONObject(new String(error.networkResponse.data)); + String detail = response.getString("detail"); + if ("too long".equals(detail)) { + Toast.makeText(getActivity(), "昵称太长", Toast.LENGTH_SHORT).show(); + } else if ("invalid".equals(detail)) { + Toast.makeText(getActivity(), "非法字符", Toast.LENGTH_SHORT).show(); + } else if ("repeat".equals(detail)) { + Toast.makeText(getActivity(), "昵称已存在", Toast.LENGTH_SHORT).show(); + } else if ("no change".equals(detail)) { + Toast.makeText(getActivity(), "昵称一致", Toast.LENGTH_SHORT).show(); + } else if ("too frequent".equals(detail)) { + Toast.makeText(getActivity(), "修改太频繁,请稍后再试", Toast.LENGTH_SHORT).show(); } + } catch (JSONException e) { + e.printStackTrace(); + Toast.makeText(getActivity(), "修改失败", Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(getActivity(), "修改失败", Toast.LENGTH_SHORT).show(); @@ -435,8 +437,8 @@ public class PersonalFragment extends Fragment implements View.OnClickListener, } }); request.setShouldCache(false); - request.addHeader("TOKEN", TokenUtils.getToken(getActivity())); - AppController.addToRequestQueue(request, TAG); + request.addHeader("TOKEN", TokenUtils.getToken(getActivity(), isCheck)); + AppController.addToRequestQueue(request); } }.start(); } @@ -468,16 +470,10 @@ public class PersonalFragment extends Fragment implements View.OnClickListener, Config.USER_HOST + "device/" + TokenUtils.getDeviceId(getActivity()), new JSONObject(params).toString(), null, null); request.addHeader("TOKEN", TokenUtils.getToken(getActivity())); - AppController.addToRequestQueue(request, TAG); + AppController.addToRequestQueue(request); } }.start(); } } - @Override - public void onDestroy() { - super.onDestroy(); - AppController.canclePendingRequests(TAG); - } - } diff --git a/app/src/main/java/com/gh/gamecenter/receiver/ActivitySkipReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/ActivitySkipReceiver.java index 7c08166ddb..da1551c2b6 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/ActivitySkipReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/ActivitySkipReceiver.java @@ -11,6 +11,7 @@ import com.gh.gamecenter.SplashScreenActivity; /** * Created by khy on 2016/9/1. + * 光环插件跳转助手 */ public class ActivitySkipReceiver extends BroadcastReceiver { diff --git a/app/src/main/java/com/gh/gamecenter/receiver/DownloadReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/DownloadReceiver.java index 5daaea87da..2cee396534 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/DownloadReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/DownloadReceiver.java @@ -14,6 +14,7 @@ import de.greenrobot.event.EventBus; /** * Created by LGT on 2016/10/10. + * notification下载跳转 */ public class DownloadReceiver extends BroadcastReceiver { diff --git a/app/src/main/java/com/gh/gamecenter/receiver/InstallAndUninstallReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/InstallAndUninstallReceiver.java index b8904cf747..ece246ead0 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/InstallAndUninstallReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/InstallAndUninstallReceiver.java @@ -19,8 +19,6 @@ public class InstallAndUninstallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - - // 接收安装广播 if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) { String packageName = intent.getDataString(); diff --git a/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java index c487fba67d..28d7965bb6 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java @@ -15,6 +15,7 @@ import de.greenrobot.event.EventBus; /** * Created by LGT on 2016/10/10. + * notification安装跳转 */ public class InstallReceiver extends BroadcastReceiver { diff --git a/app/src/main/java/com/gh/gamecenter/receiver/NetworkStateReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/NetworkStateReceiver.java index e1c74fe8a1..53068079fa 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/NetworkStateReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/NetworkStateReceiver.java @@ -14,10 +14,7 @@ public class NetworkStateReceiver extends BroadcastReceiver { // 监听网络状态的变化 @Override public void onReceive(Context context, Intent intent) { - - EventBus.getDefault().post( - new EBNetworkState(NetworkUtils - .isNetworkConnected(context))); + EventBus.getDefault().post(new EBNetworkState(NetworkUtils.isNetworkConnected(context))); } } 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 8c7f0ccf29..3695093c0d 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java @@ -12,10 +12,9 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.gh.gamecenter.R; +import com.gh.gamecenter.listener.OnCallBackListener; -public class SearchGameDetailFragment extends Fragment { - - public static final String TAG = SearchGameDetailFragment.class.getSimpleName(); +public class SearchGameDetailFragment extends Fragment implements OnCallBackListener { private View view; private RecyclerView search_detail; @@ -41,8 +40,7 @@ public class SearchGameDetailFragment extends Fragment { search_detail = (RecyclerView) view.findViewById(R.id.search_detail); search_detail.setHasFixedSize(true); search_detail.setLayoutManager(new LinearLayoutManager(getActivity())); - search_detail.setAdapter(new SearchGameDetailFragmentAdapter(getActivity(), search_detail, - search_loading, reuse_none_date, reuse_no_connection, key)); + search_detail.setAdapter(new SearchGameDetailFragmentAdapter(SearchGameDetailFragment.this, key)); } @Nullable @@ -59,9 +57,33 @@ public class SearchGameDetailFragment extends Fragment { this.key = key; } - public void search(String key) { - search_detail.setAdapter(new SearchGameDetailFragmentAdapter(getActivity(), search_detail, - search_loading, reuse_none_date, reuse_no_connection, key)); + @Override + public void loadDone() { + search_loading.setVisibility(View.GONE); + search_detail.setVisibility(View.VISIBLE); + reuse_none_date.setVisibility(View.GONE); + reuse_no_connection.setVisibility(View.GONE); + } + + @Override + public void loadDone(Object obj) { + + } + + @Override + public void loadError() { + search_loading.setVisibility(View.GONE); + search_detail.setVisibility(View.GONE); + reuse_none_date.setVisibility(View.GONE); + reuse_no_connection.setVisibility(View.VISIBLE); + } + + @Override + public void loadEmpty() { + search_loading.setVisibility(View.GONE); + search_detail.setVisibility(View.GONE); + reuse_none_date.setVisibility(View.VISIBLE); + reuse_no_connection.setVisibility(View.GONE); } } 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 8d19b65315..788641e9ed 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java @@ -9,7 +9,6 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; -import android.widget.LinearLayout; import com.android.volley.Response; import com.android.volley.VolleyError; @@ -24,6 +23,7 @@ import com.gh.common.view.DownloadDialog; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.entity.GameEntity; +import com.gh.gamecenter.listener.OnCallBackListener; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; import com.google.gson.Gson; @@ -40,43 +40,25 @@ import java.util.Map; public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter { private Context context; - - private RecyclerView search_detail; - private LinearLayout search_loading; - private LinearLayout search_nogame; - private LinearLayout search_connection; + private OnCallBackListener listener; private List gameList; private String key; - public SearchGameDetailFragmentAdapter(Context context, - RecyclerView search_detail, - LinearLayout search_loading, - LinearLayout search_nogame, - LinearLayout search_connection, - String key) { - - this.context = context; - this.search_detail = search_detail; - this.search_loading = search_loading; - this.search_nogame = search_nogame; - this.search_connection = search_connection; + public SearchGameDetailFragmentAdapter(SearchGameDetailFragment fragment, String key) { + this.context = fragment.getActivity(); + this.listener = fragment; gameList = new ArrayList<>(); this.key = key; if (!TextUtils.isEmpty(key)) { - search_loading.setVisibility(View.VISIBLE); - search_detail.setVisibility(View.GONE); - search_nogame.setVisibility(View.GONE); - search_connection.setVisibility(View.GONE); search(key); } else { - search_loading.setVisibility(View.GONE); - search_detail.setVisibility(View.GONE); - search_nogame.setVisibility(View.VISIBLE); - search_connection.setVisibility(View.GONE); + if (listener != null) { + listener.loadEmpty(); + } } } @@ -86,27 +68,30 @@ public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter() { @Override public void onResponse(JSONArray response) { - search_loading.setVisibility(View.GONE); - Type listType = new TypeToken>() {}.getType(); Gson gson = new Gson(); List list = gson.fromJson(response.toString(), listType); - if (list != null && list.size() > 0) { - search_detail.setVisibility(View.VISIBLE); + if (list != null && list.size() != 0) { + if (listener != null) { + listener.loadDone(); + } gameList = list; notifyItemRangeInserted(0, gameList.size()); } else { - search_nogame.setVisibility(View.VISIBLE); + if (listener != null) { + listener.loadEmpty(); + } } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { - search_loading.setVisibility(View.GONE); - search_connection.setVisibility(View.VISIBLE); + if (listener != null) { + listener.loadError(); + } } }); - AppController.addToRequestQueue(request, SearchGameDetailFragment.TAG); + AppController.addToRequestQueue(request); } @Override 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 eb789e0498..af64badf7f 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java @@ -12,12 +12,15 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.gh.gamecenter.R; +import com.gh.gamecenter.listener.OnCallBackListener; -public class SearchGameListFragment extends Fragment { - - public static final String TAG = SearchGameListFragment.class.getSimpleName(); +public class SearchGameListFragment extends Fragment implements OnCallBackListener { private View view; + private RecyclerView search_detail; + private LinearLayout search_loading; + private LinearLayout reuse_none_date; + private LinearLayout reuse_no_connection; private String key; @@ -30,15 +33,14 @@ public class SearchGameListFragment extends Fragment { TextView reuse_tv_none_data = (TextView) view.findViewById(R.id.reuse_tv_none_data); reuse_tv_none_data.setText("搜索为空"); - LinearLayout search_loading = (LinearLayout) view.findViewById(R.id.search_gamedetail_ll_loading); - LinearLayout search_nogame = (LinearLayout) view.findViewById(R.id.reuse_none_data); - LinearLayout search_connection = (LinearLayout) view.findViewById(R.id.reuse_no_connection); + search_loading = (LinearLayout) view.findViewById(R.id.search_gamedetail_ll_loading); + reuse_none_date = (LinearLayout) view.findViewById(R.id.reuse_none_data); + reuse_no_connection = (LinearLayout) view.findViewById(R.id.reuse_no_connection); - RecyclerView search_detail = (RecyclerView) view.findViewById(R.id.search_detail); + search_detail = (RecyclerView) view.findViewById(R.id.search_detail); search_detail.setHasFixedSize(true); search_detail.setLayoutManager(new LinearLayoutManager(getActivity())); - search_detail.setAdapter(new SearchGameListFragmentAdapter(getActivity(), search_detail, - search_loading, search_nogame, search_connection, key)); + search_detail.setAdapter(new SearchGameListFragmentAdapter(SearchGameListFragment.this, key)); } @Nullable @@ -55,4 +57,32 @@ public class SearchGameListFragment extends Fragment { this.key = key; } + @Override + public void loadDone() { + search_loading.setVisibility(View.GONE); + search_detail.setVisibility(View.VISIBLE); + reuse_none_date.setVisibility(View.GONE); + reuse_no_connection.setVisibility(View.GONE); + } + + @Override + public void loadDone(Object obj) { + + } + + @Override + public void loadError() { + search_loading.setVisibility(View.GONE); + search_detail.setVisibility(View.GONE); + reuse_none_date.setVisibility(View.GONE); + reuse_no_connection.setVisibility(View.VISIBLE); + } + + @Override + public void loadEmpty() { + search_loading.setVisibility(View.GONE); + search_detail.setVisibility(View.GONE); + reuse_none_date.setVisibility(View.VISIBLE); + reuse_no_connection.setVisibility(View.GONE); + } } 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 ec3206d7dd..29ea520358 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java @@ -8,7 +8,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; -import android.widget.LinearLayout; import com.android.volley.Response; import com.android.volley.VolleyError; @@ -24,6 +23,7 @@ import com.gh.common.view.DownloadDialog; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.entity.GameEntity; +import com.gh.gamecenter.listener.OnCallBackListener; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; import com.google.gson.Gson; @@ -40,42 +40,25 @@ import java.util.Map; public class SearchGameListFragmentAdapter extends RecyclerView.Adapter { private Context context; - - private RecyclerView search_detail; - private LinearLayout search_loading; - private LinearLayout search_nogame; - private LinearLayout search_connection; + private OnCallBackListener listener; private List gameList; private String key; - public SearchGameListFragmentAdapter(Context context, - RecyclerView search_detail, - LinearLayout search_loading, - LinearLayout search_nogame, - LinearLayout search_connection, - String key) { - this.context = context; - this.search_detail = search_detail; - this.search_loading = search_loading; - this.search_nogame = search_nogame; - this.search_connection = search_connection; + public SearchGameListFragmentAdapter(SearchGameListFragment fragment, String key) { + this.context = fragment.getActivity(); + this.listener = fragment; gameList = new ArrayList<>(); this.key = key; if (!TextUtils.isEmpty(key)) { - search_loading.setVisibility(View.VISIBLE); - search_detail.setVisibility(View.GONE); - search_nogame.setVisibility(View.GONE); - search_connection.setVisibility(View.GONE); searchGame(key); } else { - search_loading.setVisibility(View.GONE); - search_detail.setVisibility(View.GONE); - search_nogame.setVisibility(View.VISIBLE); - search_connection.setVisibility(View.GONE); + if (listener != null) { + listener.loadEmpty(); + } } } @@ -85,27 +68,30 @@ public class SearchGameListFragmentAdapter extends RecyclerView.Adapter() { @Override public void onResponse(JSONArray response) { - search_loading.setVisibility(View.GONE); - Type listType = new TypeToken>() {}.getType(); Gson gson = new Gson(); List list = gson.fromJson(response.toString(), listType); - if (list != null && list.size() > 0) { - search_detail.setVisibility(View.VISIBLE); + if (list != null && list.size() != 0) { + if (listener != null) { + listener.loadDone(); + } gameList = list; notifyItemRangeInserted(0, gameList.size()); } else { - search_nogame.setVisibility(View.VISIBLE); + if (listener != null) { + listener.loadEmpty(); + } } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { - search_loading.setVisibility(View.GONE); - search_connection.setVisibility(View.VISIBLE); + if (listener != null) { + listener.loadError(); + } } }); - AppController.addToRequestQueue(request, SearchGameListFragment.TAG); + AppController.addToRequestQueue(request); } @Override diff --git a/app/src/main/res/layout/fm_search.xml b/app/src/main/res/layout/fm_search.xml index 601afa657a..7d3e483ba0 100644 --- a/app/src/main/res/layout/fm_search.xml +++ b/app/src/main/res/layout/fm_search.xml @@ -8,6 +8,7 @@ android:id="@+id/search_detail" android:layout_width="match_parent" android:layout_height="match_parent" + android:visibility="gone" android:overScrollMode="never" >