Merge branch '2.1' of https://git.oschina.net/dreamhua/GH-ASSISTv1.45 into 2.1
This commit is contained in:
@ -14,22 +14,26 @@ import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.volley.Response;
|
||||
import com.android.volley.VolleyError;
|
||||
import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
|
||||
import com.gh.base.AppController;
|
||||
import com.gh.base.BaseFragment;
|
||||
import com.gh.common.constant.Config;
|
||||
import com.gh.common.util.ImageUtils;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.db.info.ConcernInfo;
|
||||
import com.gh.gamecenter.entity.GameEntity;
|
||||
import com.gh.gamecenter.eventbus.EBConcernChanged;
|
||||
import com.gh.gamecenter.eventbus.EBNetworkState;
|
||||
import com.gh.gamecenter.eventbus.EBUISwitch;
|
||||
import com.gh.gamecenter.manager.ConcernManager;
|
||||
import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest;
|
||||
import com.gh.gamecenter.volley.extended.JsonObjectExtendedRequest;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
@ -58,6 +62,7 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On
|
||||
|
||||
private List<GameEntity> gameList;//关注推荐列表
|
||||
private List<GameEntity> recommendGameList;
|
||||
private List<GameEntity> installGameList;//安装的游戏
|
||||
|
||||
private Map<Integer, Boolean> concernMap;//记录选择关注
|
||||
|
||||
@ -251,7 +256,64 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On
|
||||
reuse_none_data.setVisibility(View.VISIBLE);
|
||||
news_swipe_refresh.setRefreshing(false);
|
||||
|
||||
initConcernRecommend();
|
||||
initInstallGame();
|
||||
}
|
||||
|
||||
private int count;
|
||||
|
||||
//推荐关注改为手机安装的游戏+光环助手
|
||||
private void initInstallGame() {
|
||||
List<ConcernInfo> installedList = concernManager.getInstalledGame();
|
||||
String gameId;
|
||||
|
||||
final int size = installedList.size() + 1;
|
||||
|
||||
installGameList = new ArrayList<>();
|
||||
recommendGameList = new ArrayList<>();
|
||||
for (int i = 0 ; i < size ; i++) {
|
||||
if (i == size - 1){
|
||||
gameId = "5618b86e8ab49e17088b4575"; // 光环助手ID
|
||||
}else {
|
||||
gameId = installedList.get(i).getId();
|
||||
}
|
||||
|
||||
final int finalI = i;
|
||||
JsonObjectExtendedRequest request = new JsonObjectExtendedRequest(
|
||||
Config.HOST + "game/" + gameId + "/digest",
|
||||
new Response.Listener<JSONObject>() {
|
||||
@Override
|
||||
public void onResponse(JSONObject response) {
|
||||
Gson gson = new Gson();
|
||||
GameEntity gameEntity = gson.fromJson(response.toString(), GameEntity.class);
|
||||
|
||||
if (finalI == size - 1){
|
||||
recommendGameList.add(gameEntity);
|
||||
}else {
|
||||
installGameList.add(gameEntity);
|
||||
}
|
||||
|
||||
addCount();
|
||||
if (count == size) {
|
||||
initConcernRecommend();
|
||||
}
|
||||
}
|
||||
}, new Response.ErrorListener() {
|
||||
@Override
|
||||
public void onErrorResponse(VolleyError error) {
|
||||
addCount();
|
||||
if (count == size) {
|
||||
initConcernRecommend();
|
||||
}
|
||||
}
|
||||
});
|
||||
AppController.addToRequestQueue(request, TAG);
|
||||
}
|
||||
}
|
||||
|
||||
private void addCount() {
|
||||
synchronized (News4Fragment.class) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
private void initConcernRecommend() {
|
||||
@ -263,16 +325,30 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On
|
||||
Type listType = new TypeToken<ArrayList<GameEntity>>() {}.getType();
|
||||
Gson gson = new Gson();
|
||||
gameList = gson.fromJson(response.toString(), listType);
|
||||
|
||||
//根据热门卡牌顺序进行排序
|
||||
if (gameList != null && gameList.size() != 0) {
|
||||
recommendGameList = new ArrayList<>();
|
||||
for (int i = 0, size = gameList.size(); i < size; i++) {
|
||||
if (!concernManager.isConcern(gameList.get(i).getId())
|
||||
&& recommendGameList.size() < 4) {
|
||||
recommendGameList.add(gameList.get(i));
|
||||
if (!concernManager.isConcern(gameList.get(i).getId())) {
|
||||
for (int j = 0; j < installGameList.size(); j++) {
|
||||
if (recommendGameList.size() >= 4) continue;
|
||||
if (installGameList.get(j).getId().equals(gameList.get(i).getId())) {
|
||||
recommendGameList.add(gameList.get(i));
|
||||
installGameList.remove(j);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//自由排序
|
||||
if (recommendGameList.size() < 4){
|
||||
for (GameEntity gameEntity : installGameList) {
|
||||
if (recommendGameList.size() >= 4) continue;
|
||||
recommendGameList.add(gameEntity);
|
||||
}
|
||||
}
|
||||
|
||||
if (recommendGameList != null && recommendGameList.size() != 0) {
|
||||
getActivity().runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
@ -320,7 +396,7 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On
|
||||
if (concernMap.get(finalI)){
|
||||
finalIvConcern.setImageResource(R.drawable.concern_select_false);
|
||||
concernMap.put(finalI, false);
|
||||
}else {
|
||||
} else {
|
||||
finalIvConcern.setImageResource(R.drawable.concern_select_true);
|
||||
concernMap.put(finalI, true);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user