From f0b473db2c45d70e960484eebbcd46e2835c0b92 Mon Sep 17 00:00:00 2001 From: khy <18814188563@163.com> Date: Wed, 12 Oct 2016 18:54:18 +0800 Subject: [PATCH] =?UTF-8?q?issues97=EF=BC=9A=E8=B5=84=E8=AE=AF-=E5=85=B3?= =?UTF-8?q?=E6=B3=A8=E7=9A=84=E5=86=85=E5=AE=B9=E4=B8=BA=E7=A9=BA=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=8E=A8=E8=8D=90=E5=85=B3=E6=B3=A8?= =?UTF-8?q?=E7=9A=84=E5=B0=8F=E6=9D=BF=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/gamecenter/news/News4Fragment.java | 136 ++++++++++++++++++ .../drawable-hdpi/concern_select_false.png | Bin 0 -> 2075 bytes .../res/drawable-hdpi/concern_select_true.png | Bin 0 -> 2188 bytes .../main/res/drawable/textview_white_dn.xml | 19 +++ .../res/drawable/textview_white_style.xml | 8 ++ .../main/res/drawable/textview_white_up.xml | 9 ++ app/src/main/res/layout/concern_item.xml | 43 ++++-- app/src/main/res/layout/fragment_news4.xml | 80 ++++++++++- 8 files changed, 277 insertions(+), 18 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/concern_select_false.png create mode 100644 app/src/main/res/drawable-hdpi/concern_select_true.png create mode 100644 app/src/main/res/drawable/textview_white_dn.xml create mode 100644 app/src/main/res/drawable/textview_white_style.xml create mode 100644 app/src/main/res/drawable/textview_white_up.xml 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 0b4cb9bdab..4ac995e378 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java @@ -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 gameList;//关注推荐列表 + private List recommendGameList; + + private Map 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() { + @Override + public void onResponse(JSONArray response) { + Type listType = new TypeToken>() {}.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 diff --git a/app/src/main/res/drawable-hdpi/concern_select_false.png b/app/src/main/res/drawable-hdpi/concern_select_false.png new file mode 100644 index 0000000000000000000000000000000000000000..ce0e2cade70594f94e4b074958331dd0a267a3e9 GIT binary patch literal 2075 zcmaJ?3s4hx8V?qE34&5JfMA+XMKQ_doec>Z2uM^wAqU7%V6(e{kjJLUQbJVd;lLF^ z98@ay1Qk6v0ZW{Mo&ws62W{wR@d0O54$A?hJbF4(fkS#51+O>bbZ7Vb|M$P&@B4n= zYqoe-%r*}B@km^p2&wt`@pfYI!6TCJcua-oKt_}#MKC2wk?Wug zG!BK3+z-D&#U#=@MQTM7o)o=P1Y|N)ekygaI9jLlm=4t2c?v66!0vB4Tep zW>P7yRB(-i`kGWy^e##`W<)7G2A>YIIBbdlWUzQ3Tgcr^VFN5a6W}sgAf3e#5jPj0 zEL>E=n-Nio;$)EvzKAyoH511TA|^8@Cx?;4VPM7#0t4XN|l&i-fGhJ_@ zEn1MFCfKMp;A%`yv0H?cST-)95=>u*pff~AzcH*gEhLIa8Pg0Im@Eds)amSTz0x+} zap?bOyj9zz$TgtMIMjq?8)2dzD%v8L$ldQdvMUm7M6pISQ4~lk!{BTks>kIr36=Q5 zK-7qc!x10=zz6AkzK}(SRa}q`0&EVQ10hNt1VAhrFVMhtWmfYQpyd7WiGPDBOrbIA&B}n0B!Xc4cBXX3E42 zl<;tS)p-maB`8s?N3a~zMth-N$1OvR>W@$)(unCOuQDxCzl8+^BM`tLGQb8|d^(D9 zIdq|rEugEEJP_ik5Kx7p)CD~9n+(40RN{n)#IQ(6Bw(R{iVJh;LX{Avvsfsfu*L!D zFju97U@pQJ0uYr+P-NPh=Qqu?ctmulefwrKh?h6Rh3bikG7_U>3Rn4(NRGjBnN(r^ ze!OZ&Y`pZ{uGk%C+P42O%+;&^*m1AH<3Q-jHIt8~U2&+!FOgBo;LbXv_~hvE!GgkK z{di~k=_f0~KK}H@e>{fnTjtk%w)Gu+bF^W&I_;UKtG^x_$shR^*55rFRQs@~uW<~R_vzm767usJN)sL)`RJ?EM@3H$ z-SNECF>x%^x@XlZHLEteOQG3w0B%)JK>h$S5^Yhopm|JR7A6vpYm3DJ{ypfD8iRw*GPX79d;heVB zYTX(iAFphiq-Zd`J|QbaAlL@Oa9r0|Ohm*|9+w-`QdM1D8x>e{f8_2hb711o&``qT zwIzSg%*{Q~+uO^Y4XCK7=>4J8EvdQZ{Wgt8oHbHbwp`;d^slc|l9OwCdUlJ%;gw1R5+)Cpl-%C$;pv!gZ!RxCxvz8I=Sqt>psu`p#f9j;ThqtZ6^)H|c1C7pWyRHB zajNx)Yp8#MEMxx;6nR=SN!f^6PbM2d4TQwo*{i@-_}Zj|Jl_BuV>{` zO-)U8JYD*^F=Ihw=@#0?j=#P9G7*L4C>ATBzh~BDp8(k)z)s zv$S;0O}iLe%1ZUJ3*g)7+)<~8D-JwO`^!3Q7nA(!!BrL4tgD#NzRIbT*&FDe2O zw7$TfPsj=$37_=3r$m0;CiV9`1vJynf3L+6<2L;!+&)0b~|MT~Kzx%yO@$>zM z&78l@p-?C`($(Ssa!w#Wk@YNcj2`ItlAQiZNJ5D~TtURbT8!d_;&Kd-s^HC700yIR zTk9})3T4J#Wl$&)DqAB&a1|Y%l%X3`8WK&RxO*BjFcOUsfE?SbREwwsmDj0&5*1NH zcrvC;paO42 zh-eY@ol&7OKfoK;VgQfM2N4#B4Y)yc77tKAZTm}mQSsWqxa+$!?LnXCo zQH3x->@%f{+=-}B1fdZ!7_qUj^jHoZ*KQ`U5X4}z8EiI4N`SgJH31tywT?E;AjWiv zR;eMBxEh#bgyp!N5K&1>-?^aD$Yk${)w-!bks)IkU=4#sXEIc(Nx$Ao>xcmCe`b7C zS{D?j!59IU4%cfDG9L=sG?XqC628D&013F> z95*i?F~oM`PGhBN9RaHmY+ARH)IEh|{~=cBt;Jvh*9PHu%ybp_Md1Xli^4U4xA$b$ zd2}A|S%^}N;<38rlZkrgw;0nZw_&J{7FPjpBP~>Z#0nTeVJ3%+02^ZQK@8(^K!Jem z1}fw{2<9nJNP%J0DLnc?1m9IEc|v-knKnr1#=@8iF2V%`3IPJLSQwvV<3J$7Rmfq4 zi}D3bn93kcWK0&%2gNjfL{{kJ@_lQNoA=FysmYGglC6VS=haatGryCHy@Cu6o@MQf z%D^0J&yOH#I<{p6WFyN;ZcIPn!kbCk(tynl76%3UIru00&s1(Yj16_TSdOk;CYhab zU}#1j=UIr zt}k7h7D?DdcrCm`Q@T)(IJC+Lnla;Ce_T@Qj4=nZ>gpQ#=8Qiz|FgHFgK_!a*Wwt) zwK-vD7sOk=i5Z#Ov3!gl5B5t_i!X630rDf(mP4)?rjzzhQ@+0a zpU;C1hLr5QR!#FaX)NQZ8GT>Q`+B(rqf7EhuWR+Sug`>iQeH~7mB@s}K3C&234 z=3AFtF8bRG_FP%y+c4~RG%Ao$)Wie;>T%IFg%_ z$gH{f;&DYH9~fHd+U+6SLMQqTRJuntnB=xD6`xhEdO=^Ae)ry*7wnpFzJ7r@%WBn* zcz3o(u+LW$S0#)t+wxa|C5hT&y{#74%uNN`4LQv1j=mL#itjIUETbUKuL=@Vnh&)U zN&ZY&PKo z>lo2C0GqSQE(LDy@y$0lKOIhvFz+@tmpC?_CBhp$43dr~>w(eHpw!Wr-n7lnIu9#q z1d$erXX&>cVA=6fyWBHit*p&!S;Iqm(K5|8=98vJPF)YLzqUPRI$6;i*0MUeIP93H z(`#38^+r|m$*9r2o(}7b6HWlDTr2WGcW-j}5tXlumA%SGh*sK)q?jd7lxpV#Qn?!asjkO{K9Je)Frby%$GCLnc zJTiJ;U&bnnG}-CazAQGaE83V^k)H3+o_}O0aA<+B;)@@9pR|{oPR4bdGF!xdA`0zR ooc4{?KdyYLCmvqG$3MM6X^B#l{JK)KWb*$&D)AMcTeT_azy9i%WdHyG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/textview_white_dn.xml b/app/src/main/res/drawable/textview_white_dn.xml new file mode 100644 index 0000000000..b7f9fad0b0 --- /dev/null +++ b/app/src/main/res/drawable/textview_white_dn.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_white_style.xml b/app/src/main/res/drawable/textview_white_style.xml new file mode 100644 index 0000000000..1f2672f282 --- /dev/null +++ b/app/src/main/res/drawable/textview_white_style.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_white_up.xml b/app/src/main/res/drawable/textview_white_up.xml new file mode 100644 index 0000000000..9abc96b62c --- /dev/null +++ b/app/src/main/res/drawable/textview_white_up.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/concern_item.xml b/app/src/main/res/layout/concern_item.xml index e9f33c3e9d..5924189756 100644 --- a/app/src/main/res/layout/concern_item.xml +++ b/app/src/main/res/layout/concern_item.xml @@ -25,21 +25,34 @@ android:textColor="@color/title" android:textSize="14sp" /> - + android:layout_height="wrap_content"> + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_news4.xml b/app/src/main/res/layout/fragment_news4.xml index 996a6bcd5b..7e35d8eb33 100644 --- a/app/src/main/res/layout/fragment_news4.xml +++ b/app/src/main/res/layout/fragment_news4.xml @@ -1,5 +1,7 @@ - @@ -22,8 +24,80 @@ android:layout_centerInParent="true" android:background="@color/theme" /> + + + + + + + + + + + + + + + + + + + + + - - \ No newline at end of file