From dbbeff14aef950d63da537174c47330d48391f4b Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Fri, 14 Jul 2017 16:44:45 +0800 Subject: [PATCH] =?UTF-8?q?2.6=E6=B5=8B=E8=AF=95=E3=80=80=EF=BC=A2?= =?UTF-8?q?=EF=BC=B5=EF=BC=A7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/LibaoUtils.java | 3 + .../gh/gamecenter/CommentDetailActivity.java | 17 +++++- .../com/gh/gamecenter/GameDetailActivity.java | 36 +++++------ .../java/com/gh/gamecenter/WebActivity.java | 18 +++--- .../adapter/CommentDetailAdapter.java | 18 ++++-- .../gamecenter/adapter/ToolBoxRvAdapter.java | 61 +++++++++++-------- .../NewsDetailContentViewHolder.java | 1 + .../retrofit/OkHttpInterceptor.java | 5 +- .../retrofit/OkHttpNetworkInterceptor.java | 4 +- .../com/gh/gamecenter/retrofit/Response.java | 2 +- .../gamecenter/retrofit/RetrofitManager.java | 3 +- .../search/SearchGameDetailFragment.java | 10 +++ .../search/SearchGameListFragment.java | 10 +++ .../res/layout/activity_comment_detail.xml | 13 +++- 14 files changed, 133 insertions(+), 68 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/LibaoUtils.java b/app/src/main/java/com/gh/common/util/LibaoUtils.java index 0bd9011558..853b0f9f40 100644 --- a/app/src/main/java/com/gh/common/util/LibaoUtils.java +++ b/app/src/main/java/com/gh/common/util/LibaoUtils.java @@ -642,6 +642,9 @@ public class LibaoUtils { libaoEntity.setTotal(libaoStatusEntity.getTotal()); String beforeStatus = libaoStatusEntity.getBeforeStatus(); + if (TextUtils.isEmpty(beforeStatus)) { + beforeStatus = libaoStatusEntity.getStatus(); + } int repeat = libaoEntity.getRepeat(); if (repeat > 0 && libaoDao.isCanLing(libaoEntity.getId(), mContext) diff --git a/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java b/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java index 7a97fcc007..23cf9eaae9 100644 --- a/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java @@ -5,6 +5,9 @@ import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; import com.gh.base.BaseActivity; import com.gh.gamecenter.adapter.CommentDetailAdapter; @@ -18,6 +21,10 @@ public class CommentDetailActivity extends BaseActivity { @BindView(R.id.comment_detail_rv) RecyclerView mRecyclerView; + @BindView(R.id.reuse_none_data) + LinearLayout mNoData; + @BindView(R.id.reuse_tv_none_data) + TextView mNoDataTv; private CommentDetailAdapter mAdapter; private LinearLayoutManager mLayoutManager; @@ -41,7 +48,7 @@ public class CommentDetailActivity extends BaseActivity { String commentId = getIntent().getExtras().getString("commentId"); - mAdapter = new CommentDetailAdapter(this, commentId); + mAdapter = new CommentDetailAdapter(this, this, commentId); mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.setAdapter(mAdapter); @@ -56,4 +63,12 @@ public class CommentDetailActivity extends BaseActivity { } }); } + + @Override + public void loadEmpty() { + super.loadEmpty(); + mNoData.setVisibility(View.VISIBLE); + mNoDataTv.setText("天了噜~页面不见了"); + mRecyclerView.setVisibility(View.GONE); + } } diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java index ac7bf14908..b1db9c881a 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java @@ -256,6 +256,24 @@ public class GameDetailActivity extends BaseActivity { } }); + // 防抖处理 + RxView.clicks(mShareIv) + .throttleFirst(1, TimeUnit.SECONDS) + .subscribe(new Action1() { + @Override + public void call(Void aVoid) { + if (TextUtils.isEmpty(shareCode)) return; + + Map kv = new HashMap<>(); + kv.put("点击", "分享"); + DataUtils.onEvent(GameDetailActivity.this, "插件数据", mGameEntity.getName(), kv); + + DataCollectionUtils.uploadClick(GameDetailActivity.this, "分享", "游戏详情", mGameEntity.getName()); + + String url = "http://www.ghzs666.com/game/" + shareCode; + showShare(url, mGameEntity.getName(), mGameEntity.getIcon(), null, mGameEntity.getTag(), false); + } + }); } @Override @@ -532,24 +550,6 @@ public class GameDetailActivity extends BaseActivity { mViewPager.setCurrentItem(0); } else if (v == mTanBarXinXiTv) { mViewPager.setCurrentItem(1); - } else if (v == mShareIv) { - if (TextUtils.isEmpty(shareCode)) return; - // 防抖处理 - 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.ghzs666.com/game/" + shareCode; - showShare(url, mGameEntity.getName(), mGameEntity.getIcon(), null, mGameEntity.getTag(), false); - } - }); } else if (v == mNoConnection) { mLoading.setVisibility(View.VISIBLE); mNoConnection.setVisibility(View.GONE); diff --git a/app/src/main/java/com/gh/gamecenter/WebActivity.java b/app/src/main/java/com/gh/gamecenter/WebActivity.java index 669a6b5528..f6a47ef7ac 100644 --- a/app/src/main/java/com/gh/gamecenter/WebActivity.java +++ b/app/src/main/java/com/gh/gamecenter/WebActivity.java @@ -191,6 +191,15 @@ public class WebActivity extends BaseActivity implements View.OnClickListener{ if (newsId != null) { getNewsCommentNum(); } + + RxView.clicks(mShareIv) + .throttleFirst(1, TimeUnit.SECONDS) + .subscribe(new Action1() { + @Override + public void call(Void aVoid) { + showShare(mToolBoxEntity.getUrl(), mToolBoxEntity.getDes(), mToolBoxEntity.getIcon(), mToolBoxEntity.getName(), null, true); + } + }); } public void getNewsCommentNum() { @@ -219,15 +228,6 @@ public class WebActivity extends BaseActivity implements View.OnClickListener{ 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) { - showShare(mToolBoxEntity.getUrl(), mToolBoxEntity.getDes(), mToolBoxEntity.getIcon(), mToolBoxEntity.getName(), null, true); - } - }); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java index e891f0f111..283d0f0fc8 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java @@ -22,6 +22,7 @@ import com.gh.gamecenter.db.CommentDao; import com.gh.gamecenter.db.VoteDao; import com.gh.gamecenter.db.info.VoteInfo; import com.gh.gamecenter.entity.CommentEntity; +import com.gh.gamecenter.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -39,6 +40,8 @@ import rx.schedulers.Schedulers; */ public class CommentDetailAdapter extends BaseRecyclerAdapter { + private OnCallBackListener mListener; + private SharedPreferences mSharedPreferences; private List mCommentList; @@ -55,8 +58,9 @@ public class CommentDetailAdapter extends BaseRecyclerAdapter { private boolean mIsLoading; private boolean mIsNetworkError; - public CommentDetailAdapter(Context context, String commentId) { + public CommentDetailAdapter(Context context, OnCallBackListener listener, String commentId) { super(context); + mListener = listener; mCommentId = commentId; mVoteDao = new VoteDao(context); @@ -84,7 +88,9 @@ public class CommentDetailAdapter extends BaseRecyclerAdapter { super.onResponse(response); mCommentList.addAll(response); - if (response.size() < 20) { + if (mCommentList.size() == 0) { + mListener.loadEmpty(); + } else if (response.size() < 20) { mIsOver = true; } @@ -95,10 +101,10 @@ public class CommentDetailAdapter extends BaseRecyclerAdapter { @Override public void onFailure(HttpException e) { super.onFailure(e); - Utils.toast(mContext, "评论加载失败, 请检查网络设置"); - mIsNetworkError = true; - mIsLoading = false; - notifyItemChanged(getItemCount() - 1); + Utils.toast(mContext, "评论加载失败, 请检查网络设置"); + mIsNetworkError = true; + mIsLoading = false; + notifyItemChanged(getItemCount() - 1); } }); } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java index 134ddf09ce..209f88b861 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java @@ -167,8 +167,10 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { mLoadKeyOver = true; loadData(mIsSearch, 0); } else { - if (response.size() > 0) { - mEntityList.addAll(response); + if (response.size() >= 0) { + if (response.size() > 0) { + mEntityList.addAll(response); + } mCallBackListener.loadDone(); if (response.size() < 20) { @@ -209,7 +211,7 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { public int getItemViewType(int position) { if (position == 0) { return 0; - } else if (position == getItemCount() - 1) { + } else if (position == 1 || position == getItemCount() - 1) { return 1; } else { return 2; @@ -235,11 +237,11 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (holder instanceof ToolBoxViewHolder) { ToolBoxViewHolder viewHolder = (ToolBoxViewHolder) holder; - ToolBoxEntity toolBoxEntity = mEntityList.get(position - 1); + ToolBoxEntity toolBoxEntity = mEntityList.get(position - 2); initToolBoxViewHolder(viewHolder, toolBoxEntity); } else if (holder instanceof FooterViewHolder) { FooterViewHolder viewHolder = (FooterViewHolder) holder; - initFooterViewHolder(viewHolder); + initFooterViewHolder(viewHolder, position); } else if (holder instanceof LibaoSearchViewHolder) { LibaoSearchViewHolder viewHolder = (LibaoSearchViewHolder) holder; initSearchViewHolder(viewHolder); @@ -249,7 +251,7 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { @Override public int getItemCount() { if (mEntityList.size() > 0) { - return mEntityList.size() + 2; + return mEntityList.size() + 3; } else { return 1; } @@ -301,21 +303,10 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { } - private void initFooterViewHolder(FooterViewHolder viewHolder) { + private void initFooterViewHolder(FooterViewHolder viewHolder, int position) { viewHolder.initItemPadding(); - if (mIsNetworkError) { - viewHolder.lineLeft.setVisibility(View.GONE); - viewHolder.lineRight.setVisibility(View.GONE); - viewHolder.loading.setVisibility(View.GONE); - viewHolder.hint.setText("加载失败,点击重试"); - viewHolder.itemView.setClickable(true); - viewHolder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - loadData(mIsSearch, mEntityList.size()); - } - }); - } else if (mIsOver) { + + if (position == 1) { viewHolder.lineLeft.setVisibility(View.VISIBLE); viewHolder.lineRight.setVisibility(View.VISIBLE); viewHolder.loading.setVisibility(View.GONE); @@ -328,11 +319,31 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { } }); } else { - viewHolder.lineLeft.setVisibility(View.GONE); - viewHolder.lineRight.setVisibility(View.GONE); - viewHolder.loading.setVisibility(View.VISIBLE); - viewHolder.hint.setText(loading); - viewHolder.itemView.setClickable(false); + if (mIsNetworkError) { + viewHolder.lineLeft.setVisibility(View.GONE); + viewHolder.lineRight.setVisibility(View.GONE); + viewHolder.loading.setVisibility(View.GONE); + viewHolder.hint.setText("加载失败,点击重试"); + viewHolder.itemView.setClickable(true); + viewHolder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + loadData(mIsSearch, mEntityList.size()); + } + }); + } else if (mIsOver) { + viewHolder.lineLeft.setVisibility(View.VISIBLE); + viewHolder.lineRight.setVisibility(View.VISIBLE); + viewHolder.loading.setVisibility(View.GONE); + viewHolder.hint.setText("加载完毕"); + viewHolder.itemView.setClickable(false); + } else { + viewHolder.lineLeft.setVisibility(View.GONE); + viewHolder.lineRight.setVisibility(View.GONE); + viewHolder.loading.setVisibility(View.VISIBLE); + viewHolder.hint.setText(loading); + viewHolder.itemView.setClickable(false); + } } } diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailContentViewHolder.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailContentViewHolder.java index 659bcf516e..76ef0b7d8f 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailContentViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailContentViewHolder.java @@ -20,6 +20,7 @@ public class NewsDetailContentViewHolder extends RecyclerView.ViewHolder { public NewsDetailContentViewHolder(View itemView) { super(itemView); + itemView.requestFocus(); newsdetail_item_tv_title = (TextView) itemView.findViewById(R.id.newsdetail_item_tv_title); newsdetail_item_tv_time = (TextView) itemView.findViewById(R.id.newsdetail_item_tv_time); newsdetail_item_tv_author = (TextView) itemView.findViewById(R.id.newsdetail_item_tv_author); diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpInterceptor.java b/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpInterceptor.java index 4b30ddaeaa..120d2a38aa 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpInterceptor.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpInterceptor.java @@ -4,6 +4,7 @@ import com.gh.base.AppController; import com.gh.common.util.GzipUtils; import com.gh.common.util.NetworkUtils; import com.gh.common.util.TimestampUtils; +import com.gh.common.util.Utils; import java.io.IOException; @@ -58,8 +59,8 @@ public class OkHttpInterceptor implements Interceptor { } // log 打印 -// Utils.log(String.format("Interceptor Received response for %s in %n%s", -// response.request().url(), response.headers())); + Utils.log(String.format("Interceptor Received response for %s in %n%s", + response.request().url(), response.headers())); return response; } diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpNetworkInterceptor.java b/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpNetworkInterceptor.java index 37e6b4fdf4..cee129dcf8 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpNetworkInterceptor.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpNetworkInterceptor.java @@ -1,7 +1,6 @@ package com.gh.gamecenter.retrofit; import com.gh.base.AppController; -import com.gh.common.util.GzipUtils; import com.gh.common.util.NetworkUtils; import com.gh.common.util.TimestampUtils; @@ -38,7 +37,8 @@ public class OkHttpNetworkInterceptor implements Interceptor { @Override public BufferedSource source() { Buffer buffer = new Buffer(); - buffer.write(GzipUtils.compressBytes("[]".getBytes())); +// buffer.write(GzipUtils.compressBytes("[]".getBytes())); + buffer.write("[]".getBytes()); return buffer; } }; diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/Response.java b/app/src/main/java/com/gh/gamecenter/retrofit/Response.java index 3cf0d3a5fe..d4aeec70e4 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/Response.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/Response.java @@ -30,7 +30,7 @@ public class Response extends Subscriber { if (e instanceof HttpException) { onFailure((HttpException) e); } else { - onFailure(e); + onFailure(null); } } diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/RetrofitManager.java b/app/src/main/java/com/gh/gamecenter/retrofit/RetrofitManager.java index da9458196c..c3113a1323 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/RetrofitManager.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/RetrofitManager.java @@ -4,6 +4,7 @@ import com.gh.common.constant.Config; import com.gh.gamecenter.BuildConfig; import java.io.File; +import java.util.concurrent.TimeUnit; import okhttp3.Cache; import okhttp3.OkHttpClient; @@ -42,7 +43,7 @@ public class RetrofitManager { final OkHttpClient okHttpClient = builder .addNetworkInterceptor(new OkHttpNetworkInterceptor()) .addInterceptor(new OkHttpInterceptor()) -// .connectTimeout(30, TimeUnit.SECONDS) + .connectTimeout(8, TimeUnit.SECONDS) .cache(cache) .build(); mApiService = new Retrofit.Builder() diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java index 5817643d3e..735936ee60 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java @@ -121,6 +121,16 @@ public class SearchGameDetailFragment extends BaseFragment implements OnCallBack } } }); + + reuse_no_connection.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + search_loading.setVisibility(View.VISIBLE); + reuse_no_connection.setVisibility(View.GONE); + adapter = new SearchGameDetailFragmentAdapter(SearchGameDetailFragment.this, key, type, mEntrance); + search_detail.setAdapter(adapter); + } + }); } @Override diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java index e977bb71c0..4d3d31923d 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java @@ -117,6 +117,16 @@ public class SearchGameListFragment extends BaseFragment implements OnCallBackLi } } }); + + reuse_no_connection.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + search_loading.setVisibility(View.VISIBLE); + reuse_no_connection.setVisibility(View.GONE); + adapter = new SearchGameListFragmentAdapter(SearchGameListFragment.this, key, type, mEntrance); + search_detail.setAdapter(adapter); + } + }); } @Override diff --git a/app/src/main/res/layout/activity_comment_detail.xml b/app/src/main/res/layout/activity_comment_detail.xml index 2b448fc619..41201239d9 100644 --- a/app/src/main/res/layout/activity_comment_detail.xml +++ b/app/src/main/res/layout/activity_comment_detail.xml @@ -6,9 +6,16 @@ - + android:layout_height = "match_parent" > + + + + + \ No newline at end of file