issues97:资讯-关注的内容为空时,增加推荐关注的小板块
This commit is contained in:
@ -3,19 +3,39 @@ package com.gh.gamecenter.news;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.util.ArrayMap;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.volley.Response;
|
||||
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.ConcernActivity;
|
||||
import com.gh.gamecenter.R;
|
||||
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.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import org.json.JSONArray;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/8/15.
|
||||
@ -30,10 +50,20 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On
|
||||
private LinearLayoutManager layoutManager;
|
||||
private LinearLayout reuse_no_connection;
|
||||
private LinearLayout reuse_none_data;
|
||||
private LinearLayout news4_concern_ly;
|
||||
private LinearLayout news4_recommend_ly;
|
||||
private ProgressBarCircularIndeterminate news_pb_loading;
|
||||
private TextView news4_concern;
|
||||
|
||||
private boolean isEverpause;
|
||||
|
||||
private List<GameEntity> gameList;//关注推荐列表
|
||||
private List<GameEntity> recommendGameList;
|
||||
|
||||
private Map<Integer, Boolean> concernMap;//记录选择关注
|
||||
|
||||
private ConcernManager concernManager;
|
||||
|
||||
private Handler handler = new Handler();
|
||||
|
||||
@Override
|
||||
@ -44,6 +74,9 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On
|
||||
|
||||
isEverpause = false;
|
||||
|
||||
concernManager = new ConcernManager(getActivity());
|
||||
concernMap = new ArrayMap<>();
|
||||
|
||||
news_rv_show.setHasFixedSize(true);
|
||||
layoutManager = new LinearLayoutManager(getActivity());
|
||||
news_rv_show.setLayoutManager(layoutManager);
|
||||
@ -66,6 +99,17 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On
|
||||
news_swipe_refresh.setColorSchemeResources(R.color.theme);
|
||||
news_swipe_refresh.setOnRefreshListener(this);
|
||||
|
||||
news4_concern.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
for (Integer integer : concernMap.keySet()) {
|
||||
if (concernMap.get(integer)){
|
||||
concernManager.addByEntity(recommendGameList.get(integer));//添加关注
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
reuse_no_connection.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@ -199,6 +243,98 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On
|
||||
news_rv_show.setVisibility(View.GONE);
|
||||
reuse_none_data.setVisibility(View.VISIBLE);
|
||||
news_swipe_refresh.setRefreshing(false);
|
||||
|
||||
initConcernRecommend();
|
||||
}
|
||||
|
||||
private void initConcernRecommend() {
|
||||
JsonArrayExtendedRequest recommendRequest = new JsonArrayExtendedRequest(
|
||||
Config.HOST + "v1d45/game/remenkapai",
|
||||
new Response.Listener<JSONArray>() {
|
||||
@Override
|
||||
public void onResponse(JSONArray response) {
|
||||
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.add(gameList.get(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (recommendGameList.size() != 0) {
|
||||
getActivity().runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
initConcernRecommendView();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}, null);
|
||||
AppController.addToRequestQueue(recommendRequest, ConcernActivity.TAG);
|
||||
}
|
||||
|
||||
private void initConcernRecommendView() {
|
||||
news4_concern_ly.removeAllViews();
|
||||
|
||||
ImageView ivIcon;
|
||||
TextView tvName;
|
||||
ImageView ivConcern;
|
||||
for (int i = 0; i < 4; i++){
|
||||
concernMap.put(i, true);
|
||||
|
||||
View view = View.inflate(getActivity(), R.layout.concern_item, null);
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
params.weight = 1;
|
||||
|
||||
ivIcon = (ImageView) view.findViewById(R.id.concern_item_icon);
|
||||
tvName = (TextView) view.findViewById(R.id.concern_item_name);
|
||||
ivConcern = (ImageView) view.findViewById(R.id.concern_item_concern_iv);
|
||||
view.findViewById(R.id.concern_item_concern).setVisibility(View.GONE);
|
||||
|
||||
ivConcern.setVisibility(View.VISIBLE);
|
||||
ImageUtils.getInstance(getActivity()).display(recommendGameList.get(i).getIcon(), ivIcon);
|
||||
tvName.setText(recommendGameList.get(i).getName());
|
||||
ivConcern.setImageResource(R.drawable.concern_select_true);
|
||||
|
||||
news4_concern_ly.addView(view,params);
|
||||
|
||||
final ImageView finalIvConcern = ivConcern;
|
||||
final int finalI = i;
|
||||
ivConcern.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (concernMap.get(finalI)){
|
||||
finalIvConcern.setImageResource(R.drawable.concern_select_false);
|
||||
concernMap.put(finalI, false);
|
||||
}else {
|
||||
finalIvConcern.setImageResource(R.drawable.concern_select_true);
|
||||
concernMap.put(finalI, true);
|
||||
}
|
||||
|
||||
//判断关注按钮是否可用
|
||||
boolean isEnabled = false;
|
||||
for (Integer integer : concernMap.keySet()) {
|
||||
if (concernMap.get(integer)){
|
||||
isEnabled = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (isEnabled){
|
||||
news4_concern.setTextColor(getResources().getColor(R.color.theme));
|
||||
news4_concern.setEnabled(true);
|
||||
}else {
|
||||
news4_concern.setTextColor(getResources().getColor(R.color.btn_pause));
|
||||
news4_concern.setEnabled(false);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
news4_recommend_ly.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user