Files
assistant-android/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java
2017-10-16 16:49:22 +08:00

720 lines
30 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.gh.gamecenter;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.v4.view.MotionEventCompat;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gh.base.BaseActivity;
import com.gh.base.OnRequestCallBackListener;
import com.gh.common.util.ApkActiveUtils;
import com.gh.common.util.CheckLoginUtils;
import com.gh.common.util.CollectionUtils;
import com.gh.common.util.DataCollectionUtils;
import com.gh.common.util.DataUtils;
import com.gh.common.util.DetailDownloadUtils;
import com.gh.common.util.DisplayUtils;
import com.gh.common.util.EntranceUtils;
import com.gh.common.util.ShareUtils;
import com.gh.common.view.VerticalItemDecoration;
import com.gh.download.DownloadManager;
import com.gh.gamecenter.adapter.viewholder.DetailViewHolder;
import com.gh.gamecenter.entity.GameEntity;
import com.gh.gamecenter.entity.NewsDetailEntity;
import com.gh.gamecenter.entity.NewsEntity;
import com.gh.gamecenter.entity.UserDataEntity;
import com.gh.gamecenter.eventbus.EBConcernChanged;
import com.gh.gamecenter.eventbus.EBDownloadStatus;
import com.gh.gamecenter.eventbus.EBNetworkState;
import com.gh.gamecenter.eventbus.EBPackage;
import com.gh.gamecenter.newsdetail.NewsDetailAdapter;
import com.gh.gamecenter.retrofit.Response;
import com.gh.gamecenter.retrofit.RetrofitManager;
import com.google.gson.Gson;
import com.jakewharton.rxbinding.view.RxView;
import com.lightgame.download.DataWatcher;
import com.lightgame.download.DownloadEntity;
import com.lightgame.utils.Utils;
import com.tencent.tauth.Tencent;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import butterknife.BindView;
import retrofit2.HttpException;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import rx.schedulers.Schedulers;
/**
* 文章详情页面 要启动该页面 需要传入一下参数 放入 EssayEntity中传过来 文章 id 文章标题 title 文章发表时间 time
*
* @author 黄壮华
*/
public class NewsDetailActivity extends BaseActivity implements OnClickListener, OnRequestCallBackListener {
@BindView(R.id.actionbar_tv_title)
TextView mActionbarTitle;
@BindView(R.id.news_detail_rv_show)
RecyclerView mDetailRv;
@BindView(R.id.news_detail_ll_bottom)
LinearLayout mDetailBottomLl;
@BindView(R.id.reuse_ll_loading)
LinearLayout mReuseLoading;
@BindView(R.id.reuse_no_connection)
LinearLayout mNoConn;
@BindView(R.id.reuse_none_data)
LinearLayout mNoneData;
@BindView(R.id.reuse_tv_none_data)
TextView mNoneDataTv;
@BindView(R.id.news_detail_ll_coment)
RelativeLayout mDetailCommentLl;
View mNewsShare;
ImageView mNewsCollection;
private NewsDetailAdapter adapter;
private static final String KEY_COLLECTIONNEWS = "isCollectionNews";
private boolean isSentReport = false;
private boolean isSecondDown = false;
private boolean mIsCollectionNews;
private float Y11, Y12, Y21, Y22;
private float X11, X12, X21, X22;
private double R11;
private int fontsize;
private int scrollSize = 300;//滑动距离超过300触发事件放大缩小字体
private long start = 0L;
private String newsId;
private String downloadOffText;
private SharedPreferences sp;
private GameEntity gameEntity;
private NewsEntity mNewsEntity;
private DownloadEntity mDownloadEntity;
private Handler handler = new Handler();
private long[] mHits = new long[2];
private DataWatcher dataWatcher = new DataWatcher() {
@Override
public void onDataChanged(DownloadEntity downloadEntity) {
if (gameEntity != null && gameEntity.getApk().size() == 1) {
String url = gameEntity.getApk().get(0).getUrl();
if (url.equals(downloadEntity.getUrl())) {
if (!"pause".equals(DownloadManager.getInstance(NewsDetailActivity.this).
getStatus(downloadEntity.getUrl()))) {
mDownloadEntity = downloadEntity;
DetailDownloadUtils.detailInvalidate(getDetailViewHolder());
}
}
}
}
};
Runnable runnable = new Runnable() {
@Override
public void run() {
if (newsId != null) {
getNewsDigest(newsId);
} else {
if (mNewsEntity == null) return;
if (mNewsEntity.getType() != null) {
mActionbarTitle.setText(mNewsEntity.getType());
}
adapter.setId(mNewsEntity.getId());
adapter.setType(mNewsEntity.getType());
adapter.setTitle(mNewsEntity.getTitle());
adapter.getNewsDetail();
}
}
};
private DetailViewHolder getDetailViewHolder() {
// 每次获取需要重新创建, 防止数据刷新
return new DetailViewHolder(mContentView, gameEntity, mDownloadEntity, downloadOffText, null,
true, mEntrance, "新闻详情", adapter.getTitle()); // 下载按钮ViewHolder
}
/**
* 启动新闻详情页面
*/
public static void startNewsDetailActivity(Context context, NewsEntity newsEntity, String entrance) {
if (!TextUtils.isEmpty(newsEntity.getLink())) {
context.startActivity(WebActivity.getIntentByNews(context, newsEntity, entrance));
} else {
Intent intent = new Intent(context, NewsDetailActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance);
intent.putExtra(NewsEntity.class.getSimpleName(), newsEntity);
context.startActivity(intent);
}
}
/**
* 在收藏启动新闻详情页面
*/
public static void startNewsDetailByCollection(Context context, NewsEntity newsEntity, String entrance) {
if (!TextUtils.isEmpty(newsEntity.getLink())) {
Intent intent = WebActivity.getIntentByNews(context, newsEntity, entrance);
context.startActivity(intent);
} else {
Intent intent = new Intent(context, NewsDetailActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance);
intent.putExtra(NewsEntity.class.getSimpleName(), newsEntity);
intent.putExtra(KEY_COLLECTIONNEWS, true);
context.startActivity(intent);
}
}
@NonNull
public static Intent getIntentById(Context context, String newsId, boolean isCollectionNews, String entrance) {
Intent intent = new Intent(context, NewsDetailActivity.class);
intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance);
intent.putExtra(KEY_COLLECTIONNEWS, isCollectionNews);
intent.putExtra(EntranceUtils.KEY_NEWSID, newsId);
return intent;
}
@NonNull
public static Intent getIntentById(Context context, String newsId, String entrance) {
Intent intent = new Intent(context, NewsDetailActivity.class);
intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance);
intent.putExtra(EntranceUtils.KEY_NEWSID, newsId);
return intent;
}
// @Override
// protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// super.onActivityResult(requestCode, resultCode, data);
// // 刷新评论数
// if (resultCode == 1001 ) {
// adapter.commentChange(data.getExtras().getInt("commentNum"));
// }
// }
@Override
protected int getLayoutId() {
return R.layout.activity_news_detail;
}
//接收QQ或者QQ空间分享回调
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
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);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initTitle("");
// 增加actionBar Button
RelativeLayout reuse_actionbar = mContentView.findViewById(R.id.reuse_actionbar);
mNewsShare = LayoutInflater.from(this).inflate(R.layout.menu_action_share, reuse_actionbar, false); // 绑定parentView 否则会丢失宽高
mNewsShare.setVisibility(View.GONE);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mNewsShare.getLayoutParams();
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
params.addRule(RelativeLayout.CENTER_VERTICAL);
reuse_actionbar.addView(mNewsShare, params);
mNewsCollection = (ImageView) LayoutInflater.from(this).inflate(R.layout.menu_action_collection, reuse_actionbar, false);
mNewsCollection.setVisibility(View.GONE);
RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) mNewsCollection.getLayoutParams();
params2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
params2.addRule(RelativeLayout.CENTER_VERTICAL);
params2.setMargins(0, 0 ,params.width, 0);
reuse_actionbar.addView(mNewsCollection, params2);
mDetailRv.setHasFixedSize(true);
mDetailRv.setLayoutManager(new LinearLayoutManager(this));
mDetailRv.addItemDecoration(new VerticalItemDecoration(this, 8, false));
adapter = new NewsDetailAdapter(this, this, mEntrance);
mDetailRv.setAdapter(adapter);
newsId = getIntent().getStringExtra(EntranceUtils.KEY_NEWSID);
mIsCollectionNews = getIntent().getBooleanExtra(KEY_COLLECTIONNEWS, false);
if (getIntent().getBundleExtra(EntranceUtils.KEY_DATA) != null) {
newsId = getIntent().getBundleExtra(EntranceUtils.KEY_DATA).getString(EntranceUtils.KEY_NEWSID);
}
if (newsId == null) {
mNewsEntity = getIntent().getParcelableExtra(NewsEntity.class.getSimpleName());
if (mNewsEntity != null) {
if (mNewsEntity.getType() != null) {
mActionbarTitle.setText(mNewsEntity.getType());
}
adapter.setId(mNewsEntity.getId());
adapter.setType(mNewsEntity.getType());
adapter.setTitle(mNewsEntity.getTitle());
adapter.getNewsDetail();
mNewsShare.setVisibility(View.VISIBLE);
if (mIsCollectionNews) {
getNewsDigest(mNewsEntity.getId());
}
}
} else {
getNewsDigest(newsId);
}
start = System.currentTimeMillis();
View view = getWindow().findViewById(Window.ID_ANDROID_CONTENT);
if (view != null) {
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
mHits[mHits.length - 1] = SystemClock.uptimeMillis();
if (mHits[0] >= (SystemClock.uptimeMillis() - 1000)) {
mDetailRv.scrollToPosition(0);
}
}
});
}
sp = PreferenceManager.getDefaultSharedPreferences(this);
fontsize = sp.getInt("fontsize", 1);
if (fontsize == 0) {
fontsize = 1;
}
mNoConn.setOnClickListener(this);
mDetailCommentLl.setOnClickListener(this);
mNewsCollection.setOnClickListener(this);
// 防抖处理
RxView.clicks(mNewsShare)
.throttleFirst(1, TimeUnit.SECONDS)
.subscribe(new Action1<Void>() {
@Override
public void call(Void aVoid) {
if (adapter != null && adapter.getNewsDetailEntity() != null) {
Map<String, Object> kv = new HashMap<>();
kv.put("名字", adapter.getNewsDetailEntity().getTitle());
kv.put("位置", "分享");
DataUtils.onEvent(NewsDetailActivity.this, "点击", "新闻详情", kv);
DataCollectionUtils.uploadClick(NewsDetailActivity.this, "分享", "新闻详情"
, adapter.getNewsDetailEntity().getTitle());
String url = "http://www.ghzs666.com/article/" +
adapter.getNewsDetailEntity().getId() + ".html";
if (gameEntity == null) {
showShare(url, adapter.getNewsDetailEntity().getTitle(),
"http://image.ghzs666.com/pic/57d604808ab49e467d8b4568.png",
adapter.getNewsDetailEntity().getTitle(), null, false);
} else {
showShare(url, gameEntity.getName(), gameEntity.getIcon(),
adapter.getNewsDetailEntity().getTitle(), gameEntity.getTag(), false);
}
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
handler.removeCallbacksAndMessages(null);
}
@Override
protected void onPause() {
super.onPause();
if (!isSentReport) {
long end = System.currentTimeMillis();
int seconds = (int) ((end - start) / 1000);
String cost;
if (seconds < 5) {
cost = "小于5秒";
} else if (seconds < 30) {
cost = "5秒30秒";
} else if (seconds < 60) {
cost = "30秒60秒";
} else {
cost = "大于60秒";
}
if (adapter.getNewsDetailEntity() != null) {
// 阅读报告
Map<String, Object> kv = new HashMap<>();
kv.put("用时", cost);
DataUtils.onEvent(NewsDetailActivity.this, "阅读文章", adapter.getNewsDetailEntity().getTitle(), kv);
// 阅读报告
Map<String, Object> kv1 = new HashMap<>();
kv1.put(mEntrance, "阅读数");
kv1.put(mEntrance, "用时:" + cost);
DataUtils.onEvent(NewsDetailActivity.this, "文章数据", adapter.getNewsDetailEntity().getTitle(), kv1);
if (seconds > 0) {
DataCollectionUtils.uploadNews(this, adapter.getNewsDetailEntity(), gameEntity, seconds, mEntrance);
}
}
isSentReport = true;
}
DownloadManager.getInstance(this).removeObserver(dataWatcher);
}
@Override
protected void onResume() {
super.onResume();
if (gameEntity != null
&& gameEntity.getApk() != null
&& gameEntity.getApk().size() == 1) {
DetailDownloadUtils.detailInitDownload(getDetailViewHolder(), true);
}
DownloadManager.getInstance(this).addObserver(dataWatcher);
}
@Override
public void loadDone() { // 通知更新收藏按钮
mNewsCollection.setVisibility(View.VISIBLE);
NewsDetailEntity newsDetailEntity = adapter.getNewsDetailEntity();
if (newsDetailEntity.getUserData() != null && newsDetailEntity.getUserData().isArticleFavorite()) {
mNewsCollection.setImageResource(R.drawable.detail_collection_select);
} else {
mNewsCollection.setImageResource(R.drawable.detail_collection_unselect);
}
}
@Override
public void loadDone(Object obj) {
if (mReuseLoading != null) {
mReuseLoading.setVisibility(View.GONE);
mDetailRv.setVisibility(View.VISIBLE);
}
getGameDetail((String) obj);
}
@Override
public void loadError() {
mDetailRv.setVisibility(View.GONE);
mReuseLoading.setVisibility(View.GONE);
mDetailBottomLl.setVisibility(View.GONE);
mNoConn.setVisibility(View.VISIBLE);
}
@Override
public void loadEmpty() {
}
private void getNewsDigest(final String newsId) {
RetrofitManager.getInstance(this).getApi().getNewsDigest(newsId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Response<NewsEntity>() {
@Override
public void onResponse(NewsEntity response) {
if (mIsCollectionNews && mNewsEntity != null && response != null) { // 对比查看收藏文章是否修改
Gson gson = new Gson();
String newEntity = gson.toJson(response.getThumbnail());
String entity = gson.toJson(mNewsEntity.getThumbnail());
if (!newEntity.equals(entity) || !response.getType().equals(mNewsEntity.getType())
|| !response.getTitle().equals(mNewsEntity.getTitle())) {
CollectionUtils.INSTANCE.patchCollection(NewsDetailActivity.this, response.getId(), CollectionUtils.CollectionType.article);
} else {
Utils.log("========相同");
}
return;
}
mNewsEntity = response;
if (response.getType() != null) {
mActionbarTitle.setText(response.getType());
}
adapter.setId(newsId);
adapter.setType(response.getType());
adapter.setTitle(response.getTitle());
adapter.getNewsDetail();
mNewsShare.setVisibility(View.VISIBLE);
}
@Override
public void onFailure(HttpException e) {
mDetailRv.setVisibility(View.GONE);
mReuseLoading.setVisibility(View.GONE);
mDetailBottomLl.setVisibility(View.GONE);
mNoConn.setVisibility(View.VISIBLE);
}
});
}
/**
* 增加手势监听,控制字体大小
*
* @author 柯皓源
*/
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
switch (ev.getAction() & MotionEventCompat.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
isSecondDown = false;
int pointerIndex = MotionEventCompat.findPointerIndex(ev, MotionEventCompat.getPointerId(ev, 0));
Y11 = MotionEventCompat.getY(ev, pointerIndex);
X11 = MotionEventCompat.getX(ev, pointerIndex);
break;
case MotionEvent.ACTION_UP:
final int actionUpIndex = MotionEventCompat.getActionIndex(ev);
int pointerIndex2 = MotionEventCompat.findPointerIndex(ev, MotionEventCompat.getPointerId(ev, actionUpIndex));
Y12 = MotionEventCompat.getY(ev, pointerIndex2);
X12 = MotionEventCompat.getX(ev, pointerIndex2);
float X2 = Math.abs(X12 - X22);
float Y2 = Math.abs(Y12 - Y22);
float R2 = (X2 * X2) + (Y2 * Y2);
double R12 = Math.sqrt(R2);
if (isSecondDown) {
if ((R11 - R12) > scrollSize && fontsize > 1) {
fontsize--;
adapter.setFontSize(fontsize);
sp.edit().putInt("fontsize", fontsize).apply();
String fontSizeText = getFontSize(fontsize);
Utils.toast(this, fontSizeText);
}
if ((R11 - R12) < -scrollSize && fontsize < 4) {
fontsize++;
adapter.setFontSize(fontsize);
sp.edit().putInt("fontsize", fontsize).apply();
String fontSizeText = getFontSize(fontsize);
Utils.toast(this, fontSizeText);
}
}
break;
case MotionEvent.ACTION_MOVE:
if (isSecondDown) {
return true;
}
break;
case MotionEventCompat.ACTION_POINTER_DOWN:
isSecondDown = true;
final int pointerIndexDown = MotionEventCompat.getActionIndex(ev);
int pointerIndex1 = MotionEventCompat.findPointerIndex(ev, MotionEventCompat.getPointerId(ev, pointerIndexDown));
Y21 = MotionEventCompat.getY(ev, pointerIndex1);
X21 = MotionEventCompat.getX(ev, pointerIndex1);
float X1 = Math.abs(X11 - X21);
float Y1 = Math.abs(Y11 - Y21);
float R1 = (X1 * X1) + (Y1 * Y1);
R11 = Math.sqrt(R1);
break;
case MotionEventCompat.ACTION_POINTER_UP:
final int pointerIndexUp = MotionEventCompat.getActionIndex(ev);
int pointerIndex21 = MotionEventCompat.findPointerIndex(ev, MotionEventCompat.getPointerId(ev, pointerIndexUp));
Y22 = MotionEventCompat.getY(ev, pointerIndex21);
X22 = MotionEventCompat.getX(ev, pointerIndex21);
break;
}
return super.dispatchTouchEvent(ev);
}
@Override
public void onClick(final View v) {
if (v == mNoConn) {
mDetailRv.setVisibility(View.VISIBLE);
mReuseLoading.setVisibility(View.VISIBLE);
mNoConn.setVisibility(View.GONE);
handler.postDelayed(runnable, 1000);
} else if (v == mDetailCommentLl) {
CheckLoginUtils.checkLogin(this, new CheckLoginUtils.OnLoggenInListener() {
@Override
public void onLoggedIn() {
Intent intent = MessageDetailActivity.getIntentById(NewsDetailActivity.this, adapter.getNewsDetailEntity().getId(), null, true
, mEntrance + "(新闻详情[" + adapter.getTitle() + "])");
startActivity(intent);
}
});
} else if (v == mNewsCollection) {
CheckLoginUtils.checkLogin(this, new CheckLoginUtils.OnLoggenInListener() {
@Override
public void onLoggedIn() {
final NewsDetailEntity newsDetailEntity = adapter.getNewsDetailEntity();
mNewsCollection.setEnabled(false);
if (newsDetailEntity.getUserData() != null && newsDetailEntity.getUserData().isArticleFavorite()) {
CollectionUtils.INSTANCE.deleteCollection(NewsDetailActivity.this, mNewsEntity.getId(),
CollectionUtils.CollectionType.article,
new CollectionUtils.OnCollectionListener() {
@Override
public void onSuccess() {
newsDetailEntity.getUserData().setArticleFavorite(false);
mNewsCollection.setEnabled(true);
mNewsCollection.setImageResource(R.drawable.detail_collection_unselect);
toast("取消收藏");
}
@Override
public void onError() {
mNewsCollection.setEnabled(true);
toast("取消收藏失败");
}
});
} else {
Map<String, String> map = new HashMap<>();
map.put("_id", mNewsEntity.getId());
CollectionUtils.INSTANCE.postCollection(NewsDetailActivity.this, new JSONObject(map).toString(),
CollectionUtils.CollectionType.article,
new CollectionUtils.OnCollectionListener() {
@Override
public void onSuccess() {
UserDataEntity userData = newsDetailEntity.getUserData();
if (userData == null) {
userData = new UserDataEntity();
newsDetailEntity.setUserData(userData);
}
userData.setArticleFavorite(true);
mNewsCollection.setEnabled(true);
mNewsCollection.setImageResource(R.drawable.detail_collection_select);
toast("收藏成功");
}
@Override
public void onError() {
mNewsCollection.setEnabled(true);
toast("收藏失败");
}
});
}
}
});
}
}
private String getFontSize(int i) {
switch (i) {
case 1:
return "小字号";
case 2:
return "中字号";
case 3:
return "大字号";
case 4:
return "特大字号";
default:
return "未知字号";
}
}
private void getGameDetail(String gameId) {
if (TextUtils.isEmpty(gameId)) {
mDetailBottomLl.setVisibility(View.GONE);
return;
}
RetrofitManager.getInstance(this).getApi().getGameNewsDigest(gameId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Response<GameEntity>() {
@Override
public void onResponse(GameEntity response) {
ApkActiveUtils.filterHideApk(response);
gameEntity = response;
adapter.setGameEntity(gameEntity);
adapter.notifyItemInserted(1);
downloadOffText = gameEntity.getDownloadOffText();
mDetailBottomLl.setVisibility(View.VISIBLE);
DetailDownloadUtils.detailInitDownload(getDetailViewHolder(), true);
}
});
}
// 关注事件
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(EBConcernChanged changed) {
NewsDetailEntity newsDetailEntity = adapter.getNewsDetailEntity();
if (newsDetailEntity != null && gameEntity != null && changed.isSingle() && changed.getGameId().equals(gameEntity.getId())) {
if (newsDetailEntity.getUserData() == null) {
newsDetailEntity.setUserData(new UserDataEntity());
}
newsDetailEntity.getUserData().setGameConcerned(changed.isConcern());
adapter.notifyItemChanged(1);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(EBNetworkState busNetworkState) {
if (busNetworkState.isNetworkConnected()) {
if (mNoConn.getVisibility() == View.VISIBLE) {
mDetailRv.setVisibility(View.VISIBLE);
mReuseLoading.setVisibility(View.VISIBLE);
mDetailRv.setPadding(0, 0, 0, DisplayUtils.dip2px(getApplicationContext(), 60));
mNoConn.setVisibility(View.GONE);
handler.postDelayed(runnable, 1000);
}
}
}
// 接收下载被删除消息
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(EBDownloadStatus status) {
if ("delete".equals(status.getStatus())
&& gameEntity != null
&& gameEntity.getApk() != null
&& gameEntity.getApk().size() == 1) {
String url = gameEntity.getApk().get(0).getUrl();
if (url.equals(status.getUrl())) {
DetailDownloadUtils.detailInitDownload(getDetailViewHolder(), false);
}
}
}
// 接受安装、卸载消息
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(EBPackage busFour) {
if (gameEntity != null
&& gameEntity.getApk() != null
&& gameEntity.getApk().size() == 1) {
String packageName = gameEntity.getApk().get(0).getPackageName();
if (packageName.equals(busFour.getPackageName())) {
DetailDownloadUtils.detailInitDownload(getDetailViewHolder(), false);
}
}
}
}