From f219b62fcc0912c1aeec30bbb94ec1bb6f2c2a48 Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Thu, 25 May 2017 09:54:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=AE=B1=EF=BC=88=E4=B8=BA?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=EF=BC=89?= =?UTF-8?q?=EF=BC=8C=E8=A7=A3=E5=86=B3footeritem=E9=AB=98=E5=BA=A6?= =?UTF-8?q?=E4=B8=8D=E4=B8=80=E9=97=AE=E9=A2=98=E5=92=8C=E5=BC=80=E6=9C=8D?= =?UTF-8?q?=E8=A1=A8=E9=97=AA=E9=80=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 3 + .../java/com/gh/common/util/CommentUtils.java | 6 +- .../java/com/gh/gamecenter/KaiFuActivity.java | 7 +- .../com/gh/gamecenter/SuggestionActivity.java | 4 +- .../com/gh/gamecenter/ToolBoxActivity.java | 122 ++++++++++++++++++ .../java/com/gh/gamecenter/WebActivity.java | 67 ++++++++-- .../gh/gamecenter/adapter/KaiFuAdapter.java | 1 + .../gamecenter/adapter/ToolBoxRvAdapter.java | 96 ++++++++++++++ .../adapter/viewholder/FooterViewHolder.java | 9 ++ .../adapter/viewholder/ToolBoxViewHolder.java | 29 +++++ .../gh/gamecenter/entity/ToolBoxEntity.java | 8 ++ .../gamecenter/game/GameFragmentAdapter.java | 10 +- .../gamedetail/GameDetailPluginAdapter.java | 1 + .../gamecenter/gamedetail/XinXiAdapter.java | 13 +- .../message/CommentFragmentAdapter.java | 10 +- .../message/KeFuFragmentAdapter.java | 1 + .../gamecenter/message/MessageFragment.java | 20 +++ .../message/NoticeFragmentAdapter.java | 7 - .../gamecenter/news/News1FragmentAdapter.java | 1 + .../gamecenter/news/News2FragmentAdapter.java | 1 + .../gamecenter/news/News4FragmentAdapter.java | 1 + .../gh/gamecenter/subject/SubjectAdapter.java | 1 + app/src/main/res/layout/activity_toolbox.xml | 35 +++++ app/src/main/res/layout/toolbox_item.xml | 48 +++++++ 24 files changed, 472 insertions(+), 29 deletions(-) create mode 100644 app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java create mode 100644 app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/entity/ToolBoxEntity.java create mode 100644 app/src/main/res/layout/activity_toolbox.xml create mode 100644 app/src/main/res/layout/toolbox_item.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d845184337..1740f3259d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -176,6 +176,9 @@ android:name = "com.gh.gamecenter.VoteActivity" android:screenOrientation = "portrait" android:windowSoftInputMode = "stateAlwaysHidden|adjustResize" /> + diff --git a/app/src/main/java/com/gh/common/util/CommentUtils.java b/app/src/main/java/com/gh/common/util/CommentUtils.java index 62a7409192..451fd5aa34 100644 --- a/app/src/main/java/com/gh/common/util/CommentUtils.java +++ b/app/src/main/java/com/gh/common/util/CommentUtils.java @@ -5,7 +5,9 @@ import android.content.Context; import android.graphics.Color; import android.support.v4.content.ContextCompat; import android.text.TextUtils; +import android.view.Gravity; import android.view.View; +import android.view.ViewGroup; import android.view.Window; import android.widget.LinearLayout; import android.widget.TextView; @@ -90,8 +92,6 @@ public class CommentUtils { for (String s : dialogType) { final TextView reportTv = new TextView(mContext); - reportTv.setPadding(DisplayUtils.dip2px(mContext, 20), DisplayUtils.dip2px(mContext, 12), - 0, DisplayUtils.dip2px(mContext, 12)); reportTv.setText(s); reportTv.setTextSize(17); reportTv.setTextColor(ContextCompat.getColor(mContext, R.color.title)); @@ -99,6 +99,8 @@ public class CommentUtils { int widthPixels = mContext.getResources().getDisplayMetrics().widthPixels; reportTv.setLayoutParams(new LinearLayout.LayoutParams((widthPixels * 9) / 10, LinearLayout.LayoutParams.WRAP_CONTENT)); + reportTv.setPadding(DisplayUtils.dip2px(mContext, 20), DisplayUtils.dip2px(mContext, 12), + 0, DisplayUtils.dip2px(mContext, 12)); container.addView(reportTv); reportTv.setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java b/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java index 86c7a4e16d..77ede15f1e 100644 --- a/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java +++ b/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java @@ -136,8 +136,11 @@ public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.On smoothMove = false; int n = mMovePosition - layoutManager.findFirstVisibleItemPosition(); if (0 <= n && n < mRecyclerView.getChildCount()) { - int top = layoutManager.findViewByPosition(n).getTop(); - mRecyclerView.smoothScrollBy(0, top); + View view = layoutManager.findViewByPosition(n); + if (view!= null) { + int top = view.getTop(); + mRecyclerView.smoothScrollBy(0, top); + } } } diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java index c256fe673f..7f1bd70f05 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java @@ -315,8 +315,6 @@ public class SuggestionActivity extends BaseActivity implements SuggestTypeAdapt for (String s : dialogType) { final TextView reportTv = new TextView(SuggestionActivity.this); - reportTv.setPadding(DisplayUtils.dip2px(SuggestionActivity.this, 20), DisplayUtils.dip2px(SuggestionActivity.this, 12), - 0, DisplayUtils.dip2px(SuggestionActivity.this, 12)); reportTv.setText(s); reportTv.setTextSize(17); reportTv.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.title)); @@ -324,6 +322,8 @@ public class SuggestionActivity extends BaseActivity implements SuggestTypeAdapt int widthPixels = getResources().getDisplayMetrics().widthPixels; reportTv.setLayoutParams(new LinearLayout.LayoutParams((widthPixels * 9) / 10, LinearLayout.LayoutParams.WRAP_CONTENT)); + reportTv.setPadding(DisplayUtils.dip2px(SuggestionActivity.this, 20), DisplayUtils.dip2px(SuggestionActivity.this, 12), + 0, DisplayUtils.dip2px(SuggestionActivity.this, 12)); container.addView(reportTv); reportTv.setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java b/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java new file mode 100644 index 0000000000..16de6fac3c --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java @@ -0,0 +1,122 @@ +package com.gh.gamecenter; + +import android.os.Bundle; +import android.support.v4.widget.SwipeRefreshLayout; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.LinearLayout; + +import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; +import com.gh.base.BaseActivity; +import com.gh.common.view.VerticalItemDecoration; +import com.gh.gamecenter.adapter.ToolBoxRvAdapter; + +import butterknife.BindView; +import butterknife.OnClick; + +/** + * Created by khy on 24/05/17. + */ + +public class ToolBoxActivity extends BaseActivity implements SwipeRefreshLayout.OnRefreshListener{ + + @BindView(R.id.toolbox_rv) + RecyclerView mToolboxRv; + @BindView(R.id.reuse_none_data) + LinearLayout mNoneData; + @BindView(R.id.reuse_no_connection) + LinearLayout mNoConnection; + @BindView(R.id.toolbox_refresh) + SwipeRefreshLayout mRefresh; + @BindView(R.id.toolbox_loading) + ProgressBarCircularIndeterminate mLoading; + + private LinearLayoutManager mLayoutManager; + private ToolBoxRvAdapter mRvAdapter; + + Runnable runnable = new Runnable() { + @Override + public void run() { + mRvAdapter = new ToolBoxRvAdapter(ToolBoxActivity.this, ToolBoxActivity.this); + mToolboxRv.setAdapter(mRvAdapter); + } + }; + + + @Override + protected int getLayoutId() { + return R.layout.activity_toolbox; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + init("工具箱"); + + mRefresh.setColorSchemeResources(R.color.theme); + mRefresh.setOnRefreshListener(this); + + mLayoutManager = new LinearLayoutManager(this); + mToolboxRv.setLayoutManager(mLayoutManager); + mRvAdapter = new ToolBoxRvAdapter(this, this); + mToolboxRv.addItemDecoration(new VerticalItemDecoration(this, 8, true)); + mToolboxRv.setAdapter(mRvAdapter); + + mToolboxRv.addOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrollStateChanged(RecyclerView recyclerView, int newState) { + super.onScrollStateChanged(recyclerView, newState); + if (newState == RecyclerView.SCROLL_STATE_IDLE + && mLayoutManager.findLastVisibleItemPosition() + 1 == mRvAdapter.getItemCount()) { + if (!mRvAdapter.isOver() && !mRvAdapter.isLoading() && !mRvAdapter.isNetworkError()) { +// mRvAdapter.loadData(); + } + } + } + }); + } + + @OnClick(R.id.reuse_no_connection) + public void onClick() { + mLoading.setVisibility(View.VISIBLE); + mNoConnection.setVisibility(View.GONE); + mLoading.postDelayed(runnable, 1000); + } + + @Override + public void loadDone() { + super.loadDone(); + mRefresh.setRefreshing(false); + mNoneData.setVisibility(View.GONE); + mNoConnection.setVisibility(View.GONE); + mToolboxRv.setVisibility(View.VISIBLE); + mLoading.setVisibility(View.GONE); + + } + + @Override + public void loadEmpty() { + super.loadEmpty(); + mRefresh.setRefreshing(false); + mNoneData.setVisibility(View.VISIBLE); + mNoConnection.setVisibility(View.GONE); + mToolboxRv.setVisibility(View.GONE); + mLoading.setVisibility(View.GONE); + } + + @Override + public void loadError() { + super.loadError(); + mRefresh.setRefreshing(false); + mNoneData.setVisibility(View.GONE); + mNoConnection.setVisibility(View.VISIBLE); + mToolboxRv.setVisibility(View.GONE); + mLoading.setVisibility(View.GONE); + } + + @Override + public void onRefresh() { + mRefresh.postDelayed(runnable, 1000); + } +} diff --git a/app/src/main/java/com/gh/gamecenter/WebActivity.java b/app/src/main/java/com/gh/gamecenter/WebActivity.java index f969af475d..614007ff69 100644 --- a/app/src/main/java/com/gh/gamecenter/WebActivity.java +++ b/app/src/main/java/com/gh/gamecenter/WebActivity.java @@ -13,27 +13,37 @@ import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; +import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; import com.gh.base.BaseActivity; +import com.gh.common.util.DataCollectionUtils; +import com.gh.common.util.DataUtils; import com.gh.common.util.DisplayUtils; import com.gh.common.util.EntranceUtils; +import com.gh.common.util.ShareUtils; import com.gh.gamecenter.entity.CommentnumEntity; import com.gh.gamecenter.retrofit.RetrofitManager; +import com.jakewharton.rxbinding.view.RxView; +import com.tencent.tauth.Tencent; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; import butterknife.BindView; import butterknife.OnClick; import rx.android.schedulers.AndroidSchedulers; +import rx.functions.Action1; import rx.schedulers.Schedulers; /** * Created by khy on 2016/10/18. */ -public class WebActivity extends BaseActivity { +public class WebActivity extends BaseActivity implements View.OnClickListener{ @BindView(R.id.news_webview) WebView webView; @@ -46,6 +56,8 @@ public class WebActivity extends BaseActivity { @BindView(R.id.actionbar_tv_title) TextView newsTitle; + private ImageView mShareIv; + private String newsId; private int commentNum; @@ -68,6 +80,9 @@ public class WebActivity extends BaseActivity { // 刷新评论数 if (resultCode == 1001 && progressBar.getVisibility() == View.VISIBLE && newsId != null) { webComment.setText("查看评论(" + data.getExtras().getInt("commentNum") + ")"); + } else if (requestCode == com.tencent.connect.common.Constants.REQUEST_QQ_SHARE + || requestCode == com.tencent.connect.common.Constants.REQUEST_QZONE_SHARE) { + Tencent.onActivityResultData(requestCode, resultCode, data, ShareUtils.getInstance(this).QqShareListener); } } @@ -86,6 +101,24 @@ public class WebActivity extends BaseActivity { newsId = getIntent().getStringExtra("newsId"); } + if (false) { + + mShareIv = new ImageView(this); + mShareIv.setImageResource(R.drawable.ic_share); + mShareIv.setOnClickListener(this); + mShareIv.setVisibility(View.GONE); + mShareIv.setPadding(DisplayUtils.dip2px(this, 13), DisplayUtils.dip2px(this, 11) + , DisplayUtils.dip2px(this, 11), DisplayUtils.dip2px(this, 13)); + RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( + DisplayUtils.dip2px(this, 48), DisplayUtils.dip2px(this, 48)); + params.addRule(RelativeLayout.CENTER_VERTICAL); + params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); + RelativeLayout reuse_actionbar = (RelativeLayout) mContentView.findViewById( + R.id.reuse_actionbar); + reuse_actionbar.addView(mShareIv, params); + } + + init(webTitle); webView.loadUrl(webUrl); @@ -176,13 +209,31 @@ public class WebActivity extends BaseActivity { }); } - @OnClick(R.id.web_comment) - public void OnCommentClickListener() { - Intent intent = new Intent(this, MessageDetailActivity.class); - intent.putExtra("newsId", newsId); - intent.putExtra("commentNum", commentNum); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mEntrance + "+(光环浏览器)"); - startActivityForResult(intent, 1001); + @Override + public void onClick(View v) { + if (v == webComment) { + Intent intent = new Intent(this, MessageDetailActivity.class); + intent.putExtra("newsId", newsId); + intent.putExtra("commentNum", commentNum); + intent.putExtra(EntranceUtils.KEY_ENTRANCE, mEntrance + "+(光环浏览器)"); + startActivityForResult(intent, 1001); + } else if (v == mShareIv) { +// RxView.clicks(mShareIv) +// .throttleFirst(1, TimeUnit.SECONDS) +// .subscribe(new Action1() { +// @Override +// public void call(Void aVoid) { +// Map kv = new HashMap<>(); +// kv.put("点击", "分享"); +// DataUtils.onEvent(GameDetailActivity.this, "插件数据", mGameEntity.getName(), kv); +// +// DataCollectionUtils.uploadClick(GameDetailActivity.this, "分享", "游戏详情", mGameEntity.getName()); +// +// String url = "http://www.ghzhushou.com/game/" + shareCode; +// showShare(url, mGameEntity.getName(), mGameEntity.getIcon(), null, mGameEntity.getTag()); +// } +// }); + } } @Override diff --git a/app/src/main/java/com/gh/gamecenter/adapter/KaiFuAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/KaiFuAdapter.java index d4980a191c..c06ae5ed2b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/KaiFuAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/KaiFuAdapter.java @@ -358,6 +358,7 @@ public class KaiFuAdapter extends BaseRecyclerAdapter { } private void initFooterViewHolder(FooterViewHolder viewHolder, final int position) { + viewHolder.initItemPadding(); if (mIsNetworkError) { viewHolder.loading.setVisibility(View.GONE); viewHolder.hint.setText("加载失败,点击重试"); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java new file mode 100644 index 0000000000..0e8f5fefe6 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java @@ -0,0 +1,96 @@ +package com.gh.gamecenter.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.gh.common.constant.ItemViewType; +import com.gh.gamecenter.R; +import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; +import com.gh.gamecenter.adapter.viewholder.ToolBoxViewHolder; +import com.gh.gamecenter.listener.OnCallBackListener; + +/** + * Created by khy on 24/05/17. + */ + +public class ToolBoxRvAdapter extends BaseRecyclerAdapter { + + private OnCallBackListener mCallBackListener; + + private boolean mIsLoading; + private boolean mIsOver; + private boolean mIsNetworkError; + + public ToolBoxRvAdapter(Context context, OnCallBackListener listener) { + super(context); + mCallBackListener = listener; + + loadData(0); + } + + public void loadData(int offset) { + + } + + @Override + public int getItemViewType(int position) { + if (position == getItemCount() - 1) { + return 0; + } else { + return 1; + } + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + if (viewType == 0) { + View view = LayoutInflater.from(mContext).inflate(R.layout.refresh_footerview, parent, false); + return new FooterViewHolder(view); + } else { + View view = LayoutInflater.from(mContext).inflate(R.layout.toolbox_item, parent, false); + return new ToolBoxViewHolder(view); + } + + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + if (holder instanceof ToolBoxViewHolder) { + ToolBoxViewHolder viewHolder = (ToolBoxViewHolder) holder; + initToolBoxViewHolder(viewHolder); + } else if (holder instanceof FooterViewHolder) { + FooterViewHolder viewHolder = (FooterViewHolder) holder; + viewHolder.initFooterViewHolder(mIsNetworkError, mIsOver + , new View.OnClickListener() { + @Override + public void onClick(View v) { +// loadData(); + } + }); + } + } + + @Override + public int getItemCount() { + return 10; + } + + private void initToolBoxViewHolder(ToolBoxViewHolder viewHolder) { + + } + + public boolean isOver() { + return mIsOver; + } + + public boolean isLoading() { + return mIsLoading; + } + + public boolean isNetworkError() { + return mIsNetworkError; + } +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java index 21d1b77c2e..71c9954e87 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java @@ -29,11 +29,20 @@ public class FooterViewHolder extends ViewHolder { @BindView(R.id.footerview_line_right) public View lineRight; + private View mView; + public FooterViewHolder(View itemView) { super(itemView); + mView = itemView; ButterKnife.bind(this, itemView); } + // 减去recyclerView item间隔(个别列表间隔很大) + public void initItemPadding() { + mView.setPadding(0, 0, 0, 0); + } + + public void initFooterViewHolder(boolean mIsNetworkError, boolean mIsOver, OnClickListener onClickListener) { if (mIsNetworkError) { diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java new file mode 100644 index 0000000000..73e886e6be --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java @@ -0,0 +1,29 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.TextView; + +import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.gamecenter.R; + +import butterknife.BindView; +import butterknife.ButterKnife; + +/** + * Created by khy on 24/05/17. + */ + +public class ToolBoxViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.toolbox_item_game_thumb) + public SimpleDraweeView mGameThumb; + @BindView(R.id.toolbox_item_title) + public TextView mTitle; + @BindView(R.id.toolbox_item_des) + public TextView mDes; + + public ToolBoxViewHolder(View itemView) { + super(itemView); + ButterKnife.bind(this, itemView); + } +} diff --git a/app/src/main/java/com/gh/gamecenter/entity/ToolBoxEntity.java b/app/src/main/java/com/gh/gamecenter/entity/ToolBoxEntity.java new file mode 100644 index 0000000000..925b80c16f --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/entity/ToolBoxEntity.java @@ -0,0 +1,8 @@ +package com.gh.gamecenter.entity; + +/** + * Created by khy on 24/05/17. + */ + +public class ToolBoxEntity { +} diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java index a48df495f3..adaaac4be0 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java @@ -45,6 +45,7 @@ import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.PluginActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; +import com.gh.gamecenter.ToolBoxActivity; import com.gh.gamecenter.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.ImagePagerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; @@ -692,6 +693,9 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { subjectName.setText(mSubjectDigestList.get(i).getName()); } + if (i == 3) { + subjectName.setText("工具箱"); + } if (i == 4) { subjectName.setText("开服表"); subjectIcon.setImageURI(Uri.parse("res:///" + R.drawable.home_entrance_kaifu)); @@ -701,13 +705,17 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { contentView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (finalI < 4 && !mIsSubjectDigestError && mSubjectDigestList.size() > finalI) { + if (finalI < 3 && !mIsSubjectDigestError && mSubjectDigestList.size() > finalI) { SubjectDigestEntity entity = mSubjectDigestList.get(finalI); SubjectActivity.startSubjectActivity(mContext, entity.getColumnId(), entity.getColumnName(), entity.getOrder() , StringUtils.buildString("(游戏-专题:", entity.getName(), "[1-", String.valueOf(finalI + 1), "]", ")")); DataCollectionUtils.uploadPosition(mContext, "游戏", String.valueOf(finalI + 1), mSubjectDigestList.get(finalI).getName()); + } else if (finalI == 3) { + Intent intent = new Intent(mContext, ToolBoxActivity.class); + mContext.startActivity(intent); + } else if (finalI == 4) { Intent intent = new Intent(mContext, KaiFuActivity.class); intent.putExtra(EntranceUtils.KEY_ENTRANCE, "(游戏-专题:开服表[1-6])"); diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailPluginAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailPluginAdapter.java index 26d0249692..614e17b649 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailPluginAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailPluginAdapter.java @@ -10,6 +10,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; +import com.gh.common.util.Utils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.entity.TagEntity; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiAdapter.java index a6779e0dc1..611641c04b 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiAdapter.java @@ -41,6 +41,7 @@ import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameDetailEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.NewsEntity; +import com.gh.gamecenter.entity.TagEntity; import com.gh.gamecenter.entity.TipsEntity; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.Response; @@ -415,21 +416,27 @@ public class XinXiAdapter extends BaseRecyclerAdapter { private void initPluginViewHolder(final GameDetailPluginViewHolder viewHolder) { viewHolder.gamedetailPluginLine.setVisibility(View.VISIBLE); final TipsEntity tips = mGameDetailEntity.getTips(); + ArrayList tag = mGameDetailEntity.getTag(); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext); GridLayoutManager layoutManager = new GridLayoutManager(mContext, 3); layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { - if (tips != null) { + if (!TextUtils.isEmpty(tips.getContent())) { return position == 0 ? 3 : 1; } else { - return 3; + return 1; } } }); + + if (tag == null || mGameDetailEntity.getTag().size() == 0) { + viewHolder.gamedetailPluginOpen.setVisibility(View.INVISIBLE); + } + if (isOpenPlugin) { viewHolder.gameDetailPluginRv.setLayoutManager(linearLayoutManager); viewHolder.gamedetailPluginOpen.setPadding(0, 0, 0, 0); @@ -437,7 +444,7 @@ public class XinXiAdapter extends BaseRecyclerAdapter { } else { viewHolder.gameDetailPluginRv.setLayoutManager(layoutManager); } - viewHolder.gameDetailPluginRv.setAdapter(new GameDetailPluginAdapter(mGameDetailEntity.getTag(), tips, isOpenPlugin, mContext)); + viewHolder.gameDetailPluginRv.setAdapter(new GameDetailPluginAdapter(tag, tips, isOpenPlugin, mContext)); viewHolder.gamedetailPluginOpen.setOnClickListener(new View.OnClickListener() { @Override diff --git a/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java index cf709a18aa..67b3aadd7d 100644 --- a/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java @@ -22,10 +22,12 @@ import com.gh.gamecenter.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import de.greenrobot.event.EventBus; +import okhttp3.ResponseBody; import retrofit2.HttpException; import rx.Observable; import rx.android.schedulers.AndroidSchedulers; @@ -92,11 +94,11 @@ public class CommentFragmentAdapter extends BaseRecyclerAdapter { } mCommentList.addAll(response); -// if (!fragment.isHidden() && !fragment.isEverpause()) { -// notifyItemRangeInserted(mCommentList.size() - response.size(), response.size()); -// } else { + if (!fragment.isHidden() && !fragment.isEverpause()) { + notifyItemRangeInserted(mCommentList.size() - response.size(), response.size()); + } else { notifyDataSetChanged(); -// } + } } else { isRemove = true; diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java index 854c1503da..e6f273834a 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java @@ -232,6 +232,7 @@ public class KeFuFragmentAdapter extends BaseRecyclerAdapter { } private void initFooterViewHolder(FooterViewHolder viewHolder) { + viewHolder.initItemPadding(); if (isNetworkError) { viewHolder.loading.setVisibility(View.GONE); viewHolder.hint.setText("加载失败,点击重试"); diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java index 0c4f9299a6..f868d1d22d 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java @@ -3,6 +3,7 @@ package com.gh.gamecenter.message; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; import android.util.DisplayMetrics; import android.view.View; @@ -232,4 +233,23 @@ public class MessageFragment extends BaseFragment implements ViewPager.OnPageCha public void onPageScrollStateChanged(int state) { } + + @Override + public void onHiddenChanged(boolean hidden) { + super.onHiddenChanged(hidden); + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + List list = getChildFragmentManager().getFragments(); + if (list != null) { + if (hidden) { + for (Fragment fragment : getChildFragmentManager().getFragments()) { + transaction.hide(fragment); + } + } else { + for (Fragment fragment : getChildFragmentManager().getFragments()) { + transaction.show(fragment); + } + } + } + transaction.commit(); + } } diff --git a/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java index dbc872b4ee..a85b1206b7 100644 --- a/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java @@ -92,11 +92,6 @@ public class NoticeFragmentAdapter extends BaseRecyclerAdapter { .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Response>() { - @Override - public void onError(Throwable e) { - super.onError(e); - Utils.log("======onError" + e.toString()); - } @Override public void onResponse(List response) { @@ -165,7 +160,6 @@ public class NoticeFragmentAdapter extends BaseRecyclerAdapter { String ids = new Gson().toJson(mReceiveIds); - Utils.log("=========ids" + ids); final RequestBody body = RequestBody.create(MediaType.parse("application/json"), ids); TokenUtils.getToken(mContext, isCheck) @@ -182,7 +176,6 @@ public class NoticeFragmentAdapter extends BaseRecyclerAdapter { public void onResponse(ResponseBody response) { super.onResponse(response); mReceiveIds.clear(); - Utils.log("=========ids:: Notice::onResponse"); } @Override diff --git a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java index bce79f8786..0214e6f544 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java @@ -232,6 +232,7 @@ public class News1FragmentAdapter extends BaseRecyclerAdapter { } private void initFooterViewHolder(FooterViewHolder viewHolder) { + viewHolder.initItemPadding(); if (isNetworkError) { viewHolder.loading.setVisibility(View.GONE); viewHolder.hint.setText("加载失败,点击重试"); diff --git a/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java index b1fb940a69..cb6ff2783c 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java @@ -706,6 +706,7 @@ public class News2FragmentAdapter extends BaseRecyclerAdapter { } private void initFooterViewHolder(FooterViewHolder viewHolder) { + viewHolder.initItemPadding(); if (isNetworkError) { viewHolder.loading.setVisibility(View.GONE); viewHolder.hint.setText("加载失败,点击重试"); diff --git a/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java index b3cf3d487e..b4276625b0 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java @@ -235,6 +235,7 @@ public class News4FragmentAdapter extends BaseRecyclerAdapter { } private void initFooterViewHolder(FooterViewHolder viewHolder) { + viewHolder.initItemPadding(); if (isNetworkError) { viewHolder.loading.setVisibility(View.GONE); viewHolder.hint.setText("加载失败,点击重试"); diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java b/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java index 873440dfdc..c6bb157bec 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java @@ -413,6 +413,7 @@ public class SubjectAdapter extends BaseRecyclerAdapter { } private void initFooterViewHolder(FooterViewHolder viewHolder) { + viewHolder.initItemPadding(); if (mIsNetworkError) { viewHolder.loading.setVisibility(View.GONE); viewHolder.hint.setText("加载失败,点击重试"); diff --git a/app/src/main/res/layout/activity_toolbox.xml b/app/src/main/res/layout/activity_toolbox.xml new file mode 100644 index 0000000000..8dbab417f9 --- /dev/null +++ b/app/src/main/res/layout/activity_toolbox.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/toolbox_item.xml b/app/src/main/res/layout/toolbox_item.xml new file mode 100644 index 0000000000..021be26531 --- /dev/null +++ b/app/src/main/res/layout/toolbox_item.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + \ No newline at end of file