From 719177b8167dc38415d2eed92449e2bb34c6091f Mon Sep 17 00:00:00 2001 From: khy <18814188563@163.com> Date: Tue, 25 Oct 2016 14:50:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E5=85=B3=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/MainActivity.java | 76 +++++++++++++++++++ .../com/gh/gamecenter/news/News4Fragment.java | 15 ++-- 2 files changed, 84 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 8a69932fd5..7d2707c890 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -34,6 +34,7 @@ import com.android.volley.VolleyError; import com.gh.base.AppController; import com.gh.base.BaseFragmentActivity; import com.gh.common.constant.Config; +import com.gh.common.util.ConcernUtils; import com.gh.common.util.DataUtils; import com.gh.common.util.DeviceUtils; import com.gh.common.util.DialogUtils; @@ -429,6 +430,7 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene } if (isNewFirstLaunch) { getPluginUpdate(); + initConcern(); // 初始化关注 sp.edit().putBoolean("isNewFirstLaunch", false).apply(); } @@ -463,6 +465,80 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene Log.e("TD_CHANNEL_ID", (String) PackageUtils.getMetaData(this, getPackageName(), "TD_CHANNEL_ID")); } + //初始化关注 + private void initConcern() { + final List arrGameId = new ArrayList<>(); + final String getConcernUrl = Config.HOST + "device/" + TokenUtils.getDeviceId(MainActivity.this) + "/concern"; + ConcernUtils.loadConcernData(getConcernUrl, new ConcernUtils.DownJsonListener() { + @Override + public void downSucced(String str) { + try { + JSONArray jsonArray = new JSONArray(str); + for (int i = 0; i < jsonArray.length(); i++) { + String gameId = (String) jsonArray.get(i); + arrGameId.add(gameId); + } + + getConcernDigest(arrGameId); + } catch (JSONException e) { + e.printStackTrace(); + } + } + + @Override + public void downFailed() { + + } + }); + + } + + private int initConcernCount; + + private void addInitConcernCount() { + synchronized (MainActivity.class) { + initConcernCount++; + } + } + + private void getConcernDigest(final List arrGameId) { + final ArrayList concernDigest = new ArrayList<>(); + + final int size = arrGameId.size(); + initConcernCount = 0; + for (String gameId : arrGameId) { + JsonObjectExtendedRequest request = new JsonObjectExtendedRequest( + Config.HOST + "game/" + gameId + "/digest", + new Response.Listener() { + @Override + public void onResponse(JSONObject response) { + if (response.length() != 0) { + Gson gson = new Gson(); + GameEntity gameEntity = gson.fromJson(response.toString(), GameEntity.class); + concernDigest.add(gameEntity); + } + + addInitConcernCount(); + if (size == initConcernCount && concernDigest.size() != 0) { + concernManager.addByList(concernDigest); + Utils.log("初始化关注成功=="); + } + } + }, new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + addInitConcernCount(); + if (size == initConcernCount && concernDigest.size() != 0) { + concernManager.addByList(concernDigest); + Utils.log("初始化关注--有一个以上的游戏无法添加"); + } + } + }); + AppController.addToRequestQueue(request, TAG); + } + + } + private void initViews() { home1Layout = (LinearLayout) findViewById(R.id.main_ll_game); home2Layout = (LinearLayout) findViewById(R.id.main_ll_news); diff --git a/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java index 061e566ff8..482ddef65e 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java @@ -322,15 +322,16 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On new Response.Listener() { @Override public void onResponse(JSONObject response) { - Gson gson = new Gson(); - GameEntity gameEntity = gson.fromJson(response.toString(), GameEntity.class); + if (response.length() != 0){ + Gson gson = new Gson(); + GameEntity gameEntity = gson.fromJson(response.toString(), GameEntity.class); - if (finalI == size - 1){ - recommendGameList.add(gameEntity); - }else if (gameEntity.isExists()){ - installGameList.add(gameEntity); + if (finalI == size - 1){ + recommendGameList.add(gameEntity); + }else if (gameEntity.isExists()){ + installGameList.add(gameEntity); + } } - addCount(); if (count == size) { initConcernRecommend();