From a0cae1b7b8ff5004515fbf3bc021a48adf7e43f1 Mon Sep 17 00:00:00 2001 From: khy <18814188563@163.com> Date: Wed, 26 Apr 2017 15:34:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=B8=E6=88=8F=E8=AF=A6=E6=83=85=E6=8E=A5?= =?UTF-8?q?=E5=85=A5=E6=B8=B8=E6=88=8F=E6=8E=A8=E8=8D=90=EF=BC=88=E5=A4=A7?= =?UTF-8?q?=E5=AE=B6=E9=83=BD=E5=9C=A8=E7=8E=A9=EF=BC=89=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/DialogUtils.java | 3 + .../util/MeasureHeightLayoutManager.java | 17 +- .../com/gh/common/util/MessageShareUtils.java | 6 +- .../java/com/gh/common/util/ShareUtils.java | 2 +- .../gh/gamecenter/CommentDetailActivity.java | 2 +- .../com/gh/gamecenter/GameDetailActivity.java | 46 +- .../com/gh/gamecenter/GameNewsActivity.java | 20 +- .../java/com/gh/gamecenter/KaiFuActivity.java | 36 +- .../gh/gamecenter/KcSelectGameActivity.java | 2 +- .../java/com/gh/gamecenter/MainActivity.java | 113 ++- .../gh/gamecenter/MessageDetailActivity.java | 51 +- .../com/gh/gamecenter/NewsNormalActivity.java | 8 +- .../com/gh/gamecenter/NewsSearchActivity.java | 2 +- .../gamecenter/ReceiverWaitingActivity.java | 48 +- .../com/gh/gamecenter/SubjectActivity.java | 40 +- .../gh/gamecenter/adapter/KaiFuAdapter.java | 40 +- .../adapter/KcSelectGameAdapter.java | 12 +- .../gh/gamecenter/adapter/SubjectAdapter.java | 40 +- .../download/GameDownLoadFragment.java | 4 +- .../gamecenter/entity/GameDetailEntity.java | 33 + .../com/gh/gamecenter/game/GameFragment.java | 2 +- .../gamecenter/game/GameFragmentAdapter.java | 64 +- .../gamecenter/gamedetail/FuliFragment.java | 2 +- .../gamedetail/GameDetailAdapter.java | 844 ------------------ .../gamedetail/GameDetailKaiFuAdapter.java | 5 +- .../gamecenter/gamedetail/XinXiAdapter.java | 109 ++- .../gamecenter/gamedetail/XinXiFragment.java | 4 +- .../gh/gamecenter/libao/Libao1Fragment.java | 4 +- .../gh/gamecenter/libao/Libao2Fragment.java | 2 +- .../gh/gamecenter/manager/UpdateManager.java | 8 + .../gamecenter/message/CommentFragment.java | 2 +- .../gh/gamecenter/message/NoticeFragment.java | 2 +- .../com/gh/gamecenter/news/News1Fragment.java | 2 +- .../com/gh/gamecenter/news/News2Fragment.java | 2 +- .../com/gh/gamecenter/news/News3Fragment.java | 2 +- .../com/gh/gamecenter/news/News4Fragment.java | 2 +- app/src/main/res/layout/activity_setting.xml | 112 +-- app/src/main/res/layout/activity_subject.xml | 1 + app/src/main/res/layout/reuse_actionbar.xml | 6 +- 39 files changed, 601 insertions(+), 1099 deletions(-) delete mode 100644 app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailAdapter.java diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index 94d2d16866..9440082b32 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -151,6 +151,9 @@ public class DialogUtils { sizeName = df.format(size) + "MB"; } + if (sendTime == 0) { + sendTime = 1; + } int i = (filesSize / 1024) / (sendTime / 1000); String speed ; diff --git a/app/src/main/java/com/gh/common/util/MeasureHeightLayoutManager.java b/app/src/main/java/com/gh/common/util/MeasureHeightLayoutManager.java index 856ad63460..089bb14bab 100644 --- a/app/src/main/java/com/gh/common/util/MeasureHeightLayoutManager.java +++ b/app/src/main/java/com/gh/common/util/MeasureHeightLayoutManager.java @@ -26,12 +26,15 @@ public class MeasureHeightLayoutManager extends LinearLayoutManager { int height = 0; for (int i = 0; i < getItemCount(); i++) { - measureScrapChild(recycler, i, - View.MeasureSpec.makeMeasureSpec(i, View.MeasureSpec.UNSPECIFIED), - View.MeasureSpec.makeMeasureSpec(i, View.MeasureSpec.UNSPECIFIED), - mMeasuredDimension); - height = height + mMeasuredDimension[0]; - + try { + measureScrapChild(recycler, i, + View.MeasureSpec.makeMeasureSpec(i, View.MeasureSpec.UNSPECIFIED), + View.MeasureSpec.makeMeasureSpec(i, View.MeasureSpec.UNSPECIFIED), + mMeasuredDimension); + height = height + mMeasuredDimension[0]; + } catch (Exception e) { + e.printStackTrace(); + } } if (height > heightSize){ super.onMeasure(recycler, state, widthSpec, heightSpec); @@ -42,7 +45,7 @@ public class MeasureHeightLayoutManager extends LinearLayoutManager { } private void measureScrapChild(RecyclerView.Recycler recycler, int position, int widthSpec, - int heightSpec, int[] measuredDimension) { + int heightSpec, int[] measuredDimension) throws Exception{ View view = recycler.getViewForPosition(position); if (view.getVisibility() == View.GONE) { measuredDimension[0] = 0; diff --git a/app/src/main/java/com/gh/common/util/MessageShareUtils.java b/app/src/main/java/com/gh/common/util/MessageShareUtils.java index c4e41ea0fa..8369053fbe 100644 --- a/app/src/main/java/com/gh/common/util/MessageShareUtils.java +++ b/app/src/main/java/com/gh/common/util/MessageShareUtils.java @@ -112,7 +112,8 @@ public class MessageShareUtils { } RelativeLayout contentView = new RelativeLayout(context); - contentView.setBackgroundColor(0x8c000000); + contentView.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); + contentView.setBackgroundColor(Color.YELLOW); contentView.setFocusable(true); contentView.setFocusableInTouchMode(true); @@ -135,6 +136,7 @@ public class MessageShareUtils { LinearLayout llBottom = (LinearLayout) view; ViewGroup.LayoutParams layoutParams = llBottom.getLayoutParams(); layoutParams.height = DisplayUtils.dip2px(context, contentSize); + shareRecyclerView.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); llBottom.addView(shareRecyclerView); return; } @@ -175,7 +177,7 @@ public class MessageShareUtils { @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { LinearLayout linearLayout = new LinearLayout(context); - linearLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, DisplayUtils.dip2px(context, itemSize))); + linearLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DisplayUtils.dip2px(context, itemSize))); linearLayout.setOrientation(LinearLayout.VERTICAL); linearLayout.setGravity(Gravity.CENTER_HORIZONTAL); linearLayout.setBackgroundResource(R.drawable.cardview_item_style); diff --git a/app/src/main/java/com/gh/common/util/ShareUtils.java b/app/src/main/java/com/gh/common/util/ShareUtils.java index 1a08324c6d..1809a4940f 100644 --- a/app/src/main/java/com/gh/common/util/ShareUtils.java +++ b/app/src/main/java/com/gh/common/util/ShareUtils.java @@ -174,7 +174,7 @@ public class ShareUtils { @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { LinearLayout linearLayout = new LinearLayout(context); - linearLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, DisplayUtils.dip2px(context, 90))); + linearLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DisplayUtils.dip2px(context, 90))); linearLayout.setOrientation(LinearLayout.VERTICAL); linearLayout.setGravity(Gravity.CENTER_HORIZONTAL); linearLayout.setBackgroundResource(R.drawable.cardview_item_style); diff --git a/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java b/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java index e187184170..496c09ac61 100644 --- a/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java @@ -33,7 +33,7 @@ public class CommentDetailActivity extends BaseActivity { mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.setAdapter(mAdapter); - mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { + mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java index fe2ed2d8a9..bc42689377 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java @@ -7,20 +7,40 @@ import android.os.Bundle; import android.support.v4.app.Fragment; import android.text.TextUtils; import android.view.View; -import android.widget.*; -import butterknife.BindView; -import butterknife.OnClick; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.AppController; import com.gh.base.BaseFragmentActivity; import com.gh.common.constant.Config; -import com.gh.common.util.*; +import com.gh.common.util.ConcernUtils; +import com.gh.common.util.DataCollectionUtils; +import com.gh.common.util.DataUtils; +import com.gh.common.util.DialogUtils; +import com.gh.common.util.FileUtils; +import com.gh.common.util.GameUtils; +import com.gh.common.util.ImageUtils; +import com.gh.common.util.NetworkUtils; +import com.gh.common.util.PackageUtils; +import com.gh.common.util.ShareUtils; +import com.gh.common.util.Utils; import com.gh.common.view.DownloadDialog; import com.gh.common.view.NoScrollableViewPager; -import com.gh.download.*; +import com.gh.download.DataWatcher; +import com.gh.download.DownloadEntity; +import com.gh.download.DownloadManager; import com.gh.gamecenter.adapter.FragmentAdapter; -import com.gh.gamecenter.entity.*; -import com.gh.gamecenter.eventbus.*; +import com.gh.gamecenter.entity.ApkEntity; +import com.gh.gamecenter.entity.GameDetailEntity; +import com.gh.gamecenter.entity.GameEntity; +import com.gh.gamecenter.eventbus.EBDownloadStatus; +import com.gh.gamecenter.eventbus.EBMoveTop; +import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.gamedetail.FuliFragment; import com.gh.gamecenter.gamedetail.XinXiFragment; import com.gh.gamecenter.manager.ConcernManager; @@ -29,14 +49,20 @@ import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.jakewharton.rxbinding.view.RxView; import com.tencent.tauth.Tencent; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +import butterknife.BindView; +import butterknife.OnClick; import retrofit2.adapter.rxjava.HttpException; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Action1; import rx.schedulers.Schedulers; -import java.util.*; -import java.util.concurrent.TimeUnit; - /** * Created by khy on 2017/3/24. * 游戏详情适配器 diff --git a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java index d972441908..29a18f3150 100644 --- a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java @@ -2,12 +2,16 @@ package com.gh.gamecenter; import android.os.Bundle; import android.support.v4.util.ArrayMap; -import android.support.v7.widget.*; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.text.TextUtils; -import android.view.*; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; -import butterknife.BindView; + import com.gh.base.BaseActivity; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.adapter.GameNewsAdapter; @@ -15,13 +19,15 @@ import com.gh.gamecenter.adapter.GameNewsTypeListAdapter; import com.gh.gamecenter.eventbus.EBTypeChange; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; -import retrofit2.adapter.rxjava.HttpException; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; import java.util.ArrayList; import java.util.List; +import butterknife.BindView; +import retrofit2.adapter.rxjava.HttpException; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + /** * Created by LGT on 2016/8/29. * 游戏新闻界面 @@ -80,7 +86,7 @@ public class GameNewsActivity extends BaseActivity implements View.OnClickListen layoutManager = new LinearLayoutManager(this); game_news_list.setLayoutManager(layoutManager); - game_news_list.setOnScrollListener(new RecyclerView.OnScrollListener() { + game_news_list.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); diff --git a/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java b/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java index b5bafc119a..33de0a4323 100644 --- a/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java +++ b/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java @@ -8,25 +8,35 @@ import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.KeyEvent; import android.view.View; -import android.widget.*; -import butterknife.BindView; +import android.widget.LinearLayout; +import android.widget.PopupWindow; +import android.widget.RelativeLayout; +import android.widget.TextView; + import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; import com.gh.base.BaseActivity; import com.gh.common.util.DownloadItemUtils; import com.gh.common.util.MeasureHeightLayoutManager; +import com.gh.common.util.Utils; import com.gh.common.view.VerticalItemDecoration; -import com.gh.download.*; +import com.gh.download.DataWatcher; +import com.gh.download.DownloadEntity; +import com.gh.download.DownloadManager; import com.gh.gamecenter.adapter.KaiFuAdapter; import com.gh.gamecenter.adapter.KaiFuDialogAdapter; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.eventbus.*; +import com.gh.gamecenter.eventbus.EBDownloadStatus; +import com.gh.gamecenter.eventbus.EBNetworkState; +import com.gh.gamecenter.eventbus.EBPackage; import com.jakewharton.rxbinding.view.RxView; -import rx.functions.Action1; import java.util.ArrayList; import java.util.concurrent.TimeUnit; +import butterknife.BindView; +import rx.functions.Action1; + /** * Created by khy on 2017/3/16. * 首页-开服表 @@ -41,6 +51,7 @@ public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.O @BindView(R.id.popup_bg) View mPopupBg; @BindView(R.id.kaifu_select_game_rl) RelativeLayout mSelectGameRl; @BindView(R.id.reuse_no_connection) LinearLayout mNoConnection; + @BindView(R.id.reuse_none_data) LinearLayout mNoData; private PopupWindow mPopupWindow; @@ -105,7 +116,7 @@ public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.O mRecyclerView.setLayoutManager(layoutManager); mRecyclerView.setAdapter(mAdapter); - mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { + mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); @@ -173,7 +184,7 @@ public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.O mPopupWindow.setAnimationStyle(R.style.scale_popwindow_anim_style); mPopupWindow.showAtLocation(mSelectGameRl, 0, 0, 0); - selectGameRv.setOnScrollListener(new RecyclerView.OnScrollListener() { + selectGameRv.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); @@ -220,10 +231,12 @@ public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.O kaifuOffset = 0; kaifuType = tag; + Utils.log("==========load"); mRecyclerView.setVisibility(View.VISIBLE); mPbLoading.setVisibility(View.VISIBLE); mNoConnection.setVisibility(View.GONE); + mNoData.setVisibility(View.GONE); mAdapter = new KaiFuAdapter(this, this, this, kaifuType); mRecyclerView.setAdapter(mAdapter); @@ -274,11 +287,13 @@ public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.O } toast("加载失败,请检查网络状态"); mPbLoading.setVisibility(View.GONE); + mNoData.setVisibility(View.GONE); mNoConnection.setVisibility(View.VISIBLE); } @Override public void loadDone() { + mNoData.setVisibility(View.GONE); if (mPbLoading != null && mPbLoading.getVisibility() == View.VISIBLE) { mPbLoading.setVisibility(View.GONE); } @@ -288,6 +303,13 @@ public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.O } } + @Override + public void loadEmpty() { + super.loadEmpty(); + mNoData.setVisibility(View.VISIBLE); + mNoConnection.setVisibility(View.GONE); + } + @Override public void loadDone(Object obj) { super.loadDone(obj); diff --git a/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java b/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java index 102cf12c0d..c63ab9ebc8 100644 --- a/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java +++ b/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java @@ -122,7 +122,7 @@ public class KcSelectGameActivity extends BaseActivity { } }); - mSelectRv.setOnScrollListener(new RecyclerView.OnScrollListener() { + mSelectRv.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 36c8073f99..8eebb2d8b9 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -1,40 +1,97 @@ package com.gh.gamecenter; -import android.content.*; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.graphics.Color; import android.net.Uri; -import android.os.*; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.SystemClock; import android.provider.Settings; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.support.v4.util.ArrayMap; -import android.text.*; +import android.text.Html; +import android.text.Spanned; +import android.text.TextUtils; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; -import android.widget.*; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.TextView; + import com.gh.base.BaseFragmentActivity; import com.gh.common.constant.Config; -import com.gh.common.util.*; -import com.gh.download.*; +import com.gh.common.util.ClassUtils; +import com.gh.common.util.DataCollectionUtils; +import com.gh.common.util.DataLogUtils; +import com.gh.common.util.DataUtils; +import com.gh.common.util.DialogUtils; +import com.gh.common.util.FileUtils; +import com.gh.common.util.GameUtils; +import com.gh.common.util.LibaoUtils; +import com.gh.common.util.PackageUtils; +import com.gh.common.util.PlatformUtils; +import com.gh.common.util.TokenUtils; +import com.gh.common.util.TrafficUtils; +import com.gh.common.util.Utils; +import com.gh.download.DataWatcher; +import com.gh.download.DownloadEntity; +import com.gh.download.DownloadManager; +import com.gh.download.DownloadStatus; import com.gh.gamecenter.db.MessageMarkReadDao; -import com.gh.gamecenter.db.info.*; -import com.gh.gamecenter.entity.*; -import com.gh.gamecenter.eventbus.*; +import com.gh.gamecenter.db.info.ConcernInfo; +import com.gh.gamecenter.db.info.GameInfo; +import com.gh.gamecenter.db.info.MessageMarkReadInfo; +import com.gh.gamecenter.entity.ApkEntity; +import com.gh.gamecenter.entity.GameDigestEntity; +import com.gh.gamecenter.entity.GameEntity; +import com.gh.gamecenter.entity.GameUpdateEntity; +import com.gh.gamecenter.entity.SuggestionTypeEntity; +import com.gh.gamecenter.eventbus.EBDownloadStatus; +import com.gh.gamecenter.eventbus.EBPackage; +import com.gh.gamecenter.eventbus.EBShowDialog; +import com.gh.gamecenter.eventbus.EBSkip; +import com.gh.gamecenter.eventbus.EBUISwitch; import com.gh.gamecenter.game.GameFragment; -import com.gh.gamecenter.manager.*; +import com.gh.gamecenter.manager.ConcernManager; +import com.gh.gamecenter.manager.DataCollectionManager; +import com.gh.gamecenter.manager.FilterManager; +import com.gh.gamecenter.manager.GameManager; +import com.gh.gamecenter.manager.PackageManager; +import com.gh.gamecenter.manager.UpdateManager; import com.gh.gamecenter.message.MessageFragment; import com.gh.gamecenter.news.NewsFragment; import com.gh.gamecenter.personal.PersonalFragment; -import com.gh.gamecenter.retrofit.*; +import com.gh.gamecenter.retrofit.JSONObjectResponse; +import com.gh.gamecenter.retrofit.ObservableUtil; import com.gh.gamecenter.retrofit.Response; -import de.greenrobot.event.EventBus; -import okhttp3.*; +import com.gh.gamecenter.retrofit.RetrofitManager; + import org.json.JSONArray; import org.json.JSONObject; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.CountDownLatch; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + +import de.greenrobot.event.EventBus; +import okhttp3.MediaType; +import okhttp3.RequestBody; +import okhttp3.ResponseBody; import retrofit2.adapter.rxjava.HttpException; import rx.Observable; import rx.android.schedulers.AndroidSchedulers; @@ -42,12 +99,6 @@ import rx.functions.Action1; import rx.functions.Func1; import rx.schedulers.Schedulers; -import java.io.IOException; -import java.util.*; -import java.util.concurrent.CountDownLatch; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - /** * 项目的主Activity,3个Fragment都嵌入在这里。 */ @@ -414,11 +465,11 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene public void onResponse(ResponseBody response) { super.onResponse(response); Utils.log("=========postMarkRead::" + type); -// if ("kefu".equals(type)) { -// readDao.cleanKeFu(); -// } else { -// readDao.cleanNotice(); -// } + if ("kefu".equals(type)) { + readDao.cleanKeFu(); + } else { + readDao.cleanNotice(); + } } @@ -632,17 +683,6 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene // 获取已安装游戏 private void getInstalledListFromServer() { ArrayList list = PackageUtils.getAllPackageName(getApplicationContext()); -// if (list.isEmpty()) { -// if (isNewFirstLaunch) { // 延迟0.3s,防止页面未注册eventbus,接收消息失败 -// handler.postDelayed(new Runnable() { -// @Override -// public void run() { -// EventBus.getDefault().post(new EBUISwitch("NewsFragment", -1)); //通知更新推荐关注小版块 -// } -// }, 300); -// } -// return; -// } PackageManager.init(list); @@ -735,9 +775,6 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene * 更新关注列表数据 */ private void update() { -// if (isNewFirstLaunch) { -// EventBus.getDefault().post(new EBUISwitch("NewsFragment", -1)); //通知更新推荐关注小版块 -// } new Thread(){ @Override public void run() { diff --git a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java index 52bdd687d0..9ecee492a9 100644 --- a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java @@ -1,37 +1,64 @@ package com.gh.gamecenter; import android.app.Dialog; -import android.content.*; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; import android.graphics.Rect; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.text.*; -import android.view.*; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.view.KeyEvent; +import android.view.View; +import android.view.ViewTreeObserver; import android.view.inputmethod.InputMethodManager; -import android.widget.*; -import butterknife.*; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.ScrollView; +import android.widget.TextView; + import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.AppController; import com.gh.base.BaseActivity; import com.gh.common.constant.Config; -import com.gh.common.util.*; +import com.gh.common.util.DialogUtils; +import com.gh.common.util.ImageUtils; +import com.gh.common.util.PostCommentUtils; +import com.gh.common.util.TimestampUtils; +import com.gh.common.util.TokenUtils; +import com.gh.common.util.Utils; import com.gh.gamecenter.adapter.MessageDetailAdapter; import com.gh.gamecenter.db.CommentDao; import com.gh.gamecenter.db.info.CommentInfo; -import com.gh.gamecenter.entity.*; +import com.gh.gamecenter.entity.CommentEntity; +import com.gh.gamecenter.entity.CommentnumEntity; +import com.gh.gamecenter.entity.ConcernEntity; +import com.gh.gamecenter.entity.ViewsEntity; import com.gh.gamecenter.manager.CommentManager; -import com.gh.gamecenter.retrofit.*; +import com.gh.gamecenter.retrofit.OkHttpCache; +import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.retrofit.RetrofitManager; import com.google.gson.Gson; -import org.json.*; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import butterknife.OnTouch; import retrofit2.adapter.rxjava.HttpException; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; -import java.util.List; - /** * Created by khy on 2016/11/8. * 消息详情界面 @@ -106,7 +133,7 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail mMessageDetailEt.addTextChangedListener(watcher); mMessageDetailCommentSend.setEnabled(false); - mMessageDetailRv.setOnScrollListener(new RecyclerView.OnScrollListener() { + mMessageDetailRv.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (newState == RecyclerView.SCROLL_STATE_IDLE diff --git a/app/src/main/java/com/gh/gamecenter/NewsNormalActivity.java b/app/src/main/java/com/gh/gamecenter/NewsNormalActivity.java index 65d597b0f6..b19a3e652c 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsNormalActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsNormalActivity.java @@ -6,14 +6,16 @@ import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.LinearLayout; -import butterknife.BindView; -import butterknife.OnClick; + import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; import com.gh.base.BaseActivity; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.adapter.NewsNormalAdapter; import com.gh.gamecenter.eventbus.EBNetworkState; +import butterknife.BindView; +import butterknife.OnClick; + /** * Created by khy on 2017/3/15. * @@ -64,7 +66,7 @@ public class NewsNormalActivity extends BaseActivity implements SwipeRefreshLayo mAdapter = new NewsNormalAdapter(NewsNormalActivity.this, NewsNormalActivity.this, mNewsType); mRecyclerView.addItemDecoration(new VerticalItemDecoration(this, 8, true)); mRecyclerView.setAdapter(mAdapter); - mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { + mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (newState == RecyclerView.SCROLL_STATE_IDLE diff --git a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java index acb0218877..11c34bd397 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java @@ -129,7 +129,7 @@ public class NewsSearchActivity extends BaseActivity { } }); - gamedetail_news_rv.setOnScrollListener(new RecyclerView.OnScrollListener() { + gamedetail_news_rv.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); diff --git a/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java b/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java index af29d54542..b86e794463 100644 --- a/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java @@ -1,31 +1,54 @@ package com.gh.gamecenter; import android.app.Activity; -import android.content.*; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; import android.graphics.Color; -import android.os.*; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; import android.text.Html; import android.text.TextUtils; -import android.view.*; -import android.widget.*; -import butterknife.BindView; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.AppController; import com.gh.base.BaseActivity; import com.gh.common.constant.Config; -import com.gh.common.util.*; +import com.gh.common.util.DialogUtils; +import com.gh.common.util.DisplayUtils; +import com.gh.common.util.RandomUtils; +import com.gh.common.util.UserIconUtils; +import com.gh.common.util.Utils; import com.gh.common.view.RadarLayout; -import com.gh.gamecenter.kuaichuan.*; +import com.gh.gamecenter.kuaichuan.BaseTransfer; +import com.gh.gamecenter.kuaichuan.Constant; +import com.gh.gamecenter.kuaichuan.FileInfo; +import com.gh.gamecenter.kuaichuan.HotspotManager; +import com.gh.gamecenter.kuaichuan.IpPortInfo; +import com.gh.gamecenter.kuaichuan.WifiMgr; import com.gh.gamecenter.receiver.WifiAPBroadcastReceiver; import com.readystatesoftware.systembartint.SystemBarTintManager; + import org.json.JSONObject; -import java.io.Serializable; import java.lang.ref.WeakReference; -import java.net.*; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetAddress; +import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.List; +import butterknife.BindView; + /** * Created by khy on 2017/1/20. */ @@ -80,12 +103,13 @@ public class ReceiverWaitingActivity extends BaseActivity { Utils.toast(activity, "接收异常::ReceiverWaitingActivity"); return; } - ArrayList list = new ArrayList<>(); - list.addAll(activity.mFileInfos); + ArrayList list = new ArrayList(); + list.add(activity.mFileInfos); // 把真个list集合塞进parentList(0)里, List 无法进行序列化 + IpPortInfo ipPortInfo = (IpPortInfo) msg.obj; Bundle bundle = new Bundle(); bundle.putSerializable(Constant.KEY_IP_PORT_INFO, ipPortInfo); - bundle.putSerializable(Constant.KEY_IP_FILE_INFO, (Serializable) activity.mFileInfos); +// bundle.putSerializable(Constant.KEY_IP_FILE_INFO, (Serializable) activity.mFileInfos); bundle.putParcelableArrayList(Constant.KEY_IP_FILE_INFO, list); bundle.putBoolean("isOpenWifi", activity.isOpenWifi); diff --git a/app/src/main/java/com/gh/gamecenter/SubjectActivity.java b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java index 74e0db6c6c..23c202b4a5 100644 --- a/app/src/main/java/com/gh/gamecenter/SubjectActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java @@ -1,38 +1,50 @@ package com.gh.gamecenter; import android.os.Bundle; -import android.support.v7.widget.*; +import android.support.v7.widget.DefaultItemAnimator; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; -import butterknife.BindView; + import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; import com.gh.base.BaseActivity; -import com.gh.common.util.*; +import com.gh.common.util.DisplayUtils; +import com.gh.common.util.DownloadItemUtils; import com.gh.common.view.VerticalItemDecoration; -import com.gh.download.*; +import com.gh.download.DataWatcher; +import com.gh.download.DownloadEntity; +import com.gh.download.DownloadManager; import com.gh.gamecenter.adapter.SubjectAdapter; import com.gh.gamecenter.adapter.SubjectTypeAdapter; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.eventbus.*; +import com.gh.gamecenter.eventbus.EBDownloadStatus; +import com.gh.gamecenter.eventbus.EBNetworkState; +import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.RetrofitManager; + import org.json.JSONException; import org.json.JSONObject; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; import java.util.ArrayList; +import butterknife.BindView; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + public class SubjectActivity extends BaseActivity implements SubjectTypeAdapter.OnSelectTypeListener { @BindView(R.id.subject_list) RecyclerView subject_list; @BindView(R.id.subject_type_list) RecyclerView subject_type_list; @BindView(R.id.subject_pb_loading) ProgressBarCircularIndeterminate subject_pb_loading; @BindView(R.id.reuse_no_connection) LinearLayout reuse_no_connection; + @BindView(R.id.reuse_none_data) LinearLayout mNoData; private SubjectAdapter adapter; private LinearLayoutManager layoutManager; @@ -89,13 +101,14 @@ public class SubjectActivity extends BaseActivity implements SubjectTypeAdapter layoutManager = new LinearLayoutManager(this); + ((DefaultItemAnimator)subject_list.getItemAnimator()).setSupportsChangeAnimations(false); subject_list.addItemDecoration(new VerticalItemDecoration(this, 8, true)); subject_list.setHasFixedSize(true); subject_list.setLayoutManager(layoutManager); adapter = new SubjectAdapter(this, SubjectActivity.this, type); subject_list.setAdapter(adapter); - subject_list.setOnScrollListener(new RecyclerView.OnScrollListener() { + subject_list.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); @@ -148,16 +161,25 @@ public class SubjectActivity extends BaseActivity implements SubjectTypeAdapter toast("加载失败,请检查网络状态"); subject_list.setVisibility(View.GONE); reuse_no_connection.setVisibility(View.VISIBLE); + mNoData.setVisibility(View.GONE); } @Override public void loadDone() { + mNoData.setVisibility(View.GONE); if (subject_pb_loading != null && subject_pb_loading.getVisibility() == View.VISIBLE) { subject_pb_loading.setVisibility(View.GONE); } page ++; } + @Override + public void loadEmpty() { + super.loadEmpty(); + mNoData.setVisibility(View.VISIBLE); + reuse_no_connection.setVisibility(View.GONE); + } + @Override public void loadDone(Object obj) { super.loadDone(obj); @@ -169,6 +191,7 @@ public class SubjectActivity extends BaseActivity implements SubjectTypeAdapter ViewGroup.LayoutParams params = subject_type_list.getLayoutParams(); params.height = (int) Math.ceil(gameType.size() / 4f) * DisplayUtils.dip2px(this, 37); subject_type_list.setLayoutParams(params); + ((DefaultItemAnimator)subject_type_list.getItemAnimator()).setSupportsChangeAnimations(false); SubjectTypeAdapter adapter = new SubjectTypeAdapter(SubjectActivity.this, SubjectActivity.this, gameType); subject_type_list.setAdapter(adapter); } @@ -249,7 +272,6 @@ public class SubjectActivity extends BaseActivity implements SubjectTypeAdapter @Override public void onSelectType(String type) { - Utils.toast(this, type); page = 1; this.type = type; subject_list.setVisibility(View.VISIBLE); 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 1e77c411f2..21b7d077bf 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/KaiFuAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/KaiFuAdapter.java @@ -4,27 +4,47 @@ import android.support.v4.util.ArrayMap; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.text.TextUtils; -import android.view.*; -import android.widget.*; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + import com.gh.common.constant.ItemViewType; -import com.gh.common.util.*; +import com.gh.common.util.DataCollectionUtils; +import com.gh.common.util.DataUtils; +import com.gh.common.util.DisplayUtils; +import com.gh.common.util.DownloadItemUtils; +import com.gh.common.util.GameUtils; +import com.gh.common.util.ImageUtils; +import com.gh.common.util.KaiFuUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.KaiFuActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.*; +import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.listener.OnCallBackListener; import com.gh.gamecenter.manager.GameManager; -import com.gh.gamecenter.retrofit.*; +import com.gh.gamecenter.retrofit.JSONObjectResponse; +import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.retrofit.RetrofitManager; + import org.json.JSONException; import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import retrofit2.adapter.rxjava.HttpException; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; -import java.util.*; - /** * Created by khy on 2017/3/16. */ @@ -159,7 +179,11 @@ public class KaiFuAdapter extends BaseRecyclerAdapter { initLocationMap(); if (mOnCallBackListener != null) { - mOnCallBackListener.loadDone(); + if (mSubjectList.size() == 0) { + mOnCallBackListener.loadEmpty(); + } else { + mOnCallBackListener.loadDone(); + } } mIsLoadedBottom = true; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java index e7237c3f38..31a8d6a982 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java @@ -133,11 +133,17 @@ public class KcSelectGameAdapter extends BaseRecyclerAdapter { mHandler.post(new Runnable() { @Override public void run() { - mSelectPb.setVisibility(View.GONE); - mInstallCount.setText("已安装的游戏(" + mGameList.size() + ")"); - notifyItemRangeChanged(0, getItemCount() - 1); + notifyItemRangeChanged(0, getItemCount() - 1); // TODO 刷新一次顶部标题栏消失?? } }); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + mSelectPb.setVisibility(View.GONE); + mInstallCount.setText("已安装的游戏(" + mGameList.size() + ")"); + notifyDataSetChanged(); + } + }, 100); } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java index 9efc1005f2..b8228051ce 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java @@ -4,27 +4,42 @@ import android.support.v4.util.ArrayMap; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.text.TextUtils; -import android.view.*; +import android.view.View; +import android.view.ViewGroup; import android.widget.Toast; + import com.gh.common.constant.ItemViewType; -import com.gh.common.util.*; +import com.gh.common.util.DataCollectionUtils; +import com.gh.common.util.DataUtils; +import com.gh.common.util.DownloadItemUtils; +import com.gh.common.util.GameUtils; +import com.gh.common.util.GameViewUtils; +import com.gh.common.util.ImageUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; -import com.gh.gamecenter.adapter.viewholder.*; +import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameImageViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.listener.OnCallBackListener; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import retrofit2.adapter.rxjava.HttpException; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Func1; import rx.schedulers.Schedulers; -import java.util.*; - public class SubjectAdapter extends BaseRecyclerAdapter { @@ -77,6 +92,7 @@ public class SubjectAdapter extends BaseRecyclerAdapter { } mIsLoaded = false; + final String finalType = type; RetrofitManager.getApi().getColumn(mId, page, type) .map(new Func1, List>() { @Override @@ -97,12 +113,14 @@ public class SubjectAdapter extends BaseRecyclerAdapter { manager.addOrUpdate(entity.getApk(), entity.getId(), entity.getName()); } - if (page == 1) { - if (response.get(0).getTag().size() != 0) { + if (page == 1 && finalType.isEmpty()) { + if (response.get(0).getTag() != null && response.get(0).getTag().size() != 0) { mOnCallBackListener.loadDone(response.get(0).getTag()); } - if (TextUtils.isEmpty(response.get(0).getToutu())) { + if ((response.get(0).getTag() == null + || (response.get(0).getTag() != null && response.get(0).getTag().size() == 0)) + && TextUtils.isEmpty(response.get(0).getToutu())) { response.remove(0); } } @@ -122,7 +140,11 @@ public class SubjectAdapter extends BaseRecyclerAdapter { initLocationMap(); if (mOnCallBackListener != null ) { - mOnCallBackListener.loadDone(); + if (mSubjectList.size() == 0) { + mOnCallBackListener.loadEmpty(); + } else { + mOnCallBackListener.loadDone(); + } } mIsLoaded = true; diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java index 5a1df08f65..e5b319f8b1 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java @@ -7,6 +7,7 @@ import android.os.Bundle; import android.os.Message; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; +import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; @@ -212,7 +213,8 @@ public class GameDownLoadFragment extends Fragment implements View.OnClickListen downloadmanager_rv_show.setAdapter(adapter); layoutManager = new LinearLayoutManager(getActivity()); downloadmanager_rv_show.setLayoutManager(layoutManager); - downloadmanager_rv_show.setOnScrollListener(new RecyclerView.OnScrollListener() { + ((DefaultItemAnimator)downloadmanager_rv_show.getItemAnimator()).setSupportsChangeAnimations(false); + downloadmanager_rv_show.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { int position = layoutManager.findFirstVisibleItemPosition(); diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameDetailEntity.java b/app/src/main/java/com/gh/gamecenter/entity/GameDetailEntity.java index fddb23d696..1b83c7f557 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameDetailEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/GameDetailEntity.java @@ -44,6 +44,9 @@ public class GameDetailEntity { @SerializedName("server") private List kaiFuServer; + @SerializedName("related_game") + private List relatedGames; + private String fulishuoming; public boolean isSkinTest() { @@ -170,6 +173,14 @@ public class GameDetailEntity { return kaiFuServer; } + public List getRelatedGames() { + return relatedGames; + } + + public void setRelatedGames(List relatedGames) { + this.relatedGames = relatedGames; + } + public void setKaiFuServer(List kaiFuServer) { this.kaiFuServer = kaiFuServer; } @@ -278,4 +289,26 @@ public class GameDetailEntity { this.title = title; } } + + public class RelatedGame { + private String score; + + private List game; + + public String getScore() { + return score; + } + + public void setScore(String score) { + this.score = score; + } + + public List getGame() { + return game; + } + + public void setGame(List game) { + this.game = game; + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragment.java b/app/src/main/java/com/gh/gamecenter/game/GameFragment.java index f50b150b0f..f10ddc9c3d 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragment.java +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragment.java @@ -97,7 +97,7 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR adapter = new GameFragmentAdapter(GameFragment.this, fm_game_swipe_refresh); fm_game_rv_list.setAdapter(adapter); - fm_game_rv_list.setOnScrollListener(new RecyclerView.OnScrollListener() { + fm_game_rv_list.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (newState == RecyclerView.SCROLL_STATE_IDLE){ 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 f0c29b1b6a..bf900c97d5 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java @@ -1,6 +1,8 @@ package com.gh.gamecenter.game; -import android.content.*; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; import android.graphics.Color; import android.net.Uri; import android.support.v4.util.ArrayMap; @@ -10,31 +12,69 @@ import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.text.TextUtils; import android.util.DisplayMetrics; -import android.view.*; -import android.widget.*; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + import com.facebook.drawee.view.SimpleDraweeView; import com.gh.common.constant.Config; import com.gh.common.constant.ItemViewType; -import com.gh.common.util.*; +import com.gh.common.util.DataCollectionUtils; +import com.gh.common.util.DataUtils; +import com.gh.common.util.DisplayUtils; +import com.gh.common.util.DownloadItemUtils; +import com.gh.common.util.GameUtils; +import com.gh.common.util.GameViewUtils; +import com.gh.common.util.ImageUtils; +import com.gh.common.util.NewsUtils; +import com.gh.common.util.PlatformUtils; +import com.gh.common.util.RandomUtils; +import com.gh.common.util.Utils; import com.gh.common.view.AutoScrollViewPager; import com.gh.download.DownloadManager; -import com.gh.gamecenter.*; +import com.gh.gamecenter.KaiFuActivity; +import com.gh.gamecenter.NewsDetailActivity; +import com.gh.gamecenter.PluginActivity; +import com.gh.gamecenter.R; +import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.ImagePagerAdapter; -import com.gh.gamecenter.adapter.viewholder.*; -import com.gh.gamecenter.entity.*; +import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameHeadViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameImageViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameViewPagerViewHolder; +import com.gh.gamecenter.entity.ApkEntity; +import com.gh.gamecenter.entity.GameEntity; +import com.gh.gamecenter.entity.GameUpdateEntity; +import com.gh.gamecenter.entity.SlideEntity; +import com.gh.gamecenter.entity.SubjectDigestEntity; +import com.gh.gamecenter.entity.SubjectEntity; import com.gh.gamecenter.listener.OnCallBackListener; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.manager.PackageManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + import retrofit2.adapter.rxjava.HttpException; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Func1; import rx.schedulers.Schedulers; -import java.util.*; - /** * Created by khy on 2016/12/6. * @@ -254,6 +294,12 @@ class GameFragmentAdapter extends BaseRecyclerAdapter { initPlugin(); } + @Override + public void onError(Throwable e) { + super.onError(e); + Utils.log("======" + e.toString()); + } + @Override public void onFailure(HttpException e) { if (listener != null) { diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java index 95c8c28cb6..b0e2383a22 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java @@ -55,7 +55,7 @@ public class FuliFragment extends BaseFragment { mRecyclerView.addItemDecoration(new VerticalItemDecoration(getContext(), 8, false)); mRecyclerView.setAdapter(mAdapter); - mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { + mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { if (mRecyclerView.getChildCount() <= 0) return; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailAdapter.java deleted file mode 100644 index 32f63977db..0000000000 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailAdapter.java +++ /dev/null @@ -1,844 +0,0 @@ -//package com.gh.gamecenter.gamedetail; -// -//import android.content.Context; -//import android.content.Intent; -//import android.graphics.Color; -//import android.support.v7.widget.GridLayoutManager; -//import android.support.v7.widget.LinearLayoutManager; -//import android.support.v7.widget.RecyclerView; -//import android.text.Html; -//import android.text.TextUtils; -//import android.view.LayoutInflater; -//import android.view.View; -//import android.view.ViewGroup; -//import android.widget.LinearLayout; -//import android.widget.TextView; -//import android.widget.Toast; -// -//import com.facebook.drawee.view.SimpleDraweeView; -//import com.gh.common.util.ConcernUtils; -//import com.gh.common.util.DataCollectionUtils; -//import com.gh.common.util.DataUtils; -//import com.gh.common.util.DialogUtils; -//import com.gh.common.util.DisplayUtils; -//import com.gh.common.util.ImageUtils; -//import com.gh.common.util.NewsUtils; -//import com.gh.common.view.HorizontalItemDecoration; -//import com.gh.gamecenter.GameDetailActivity; -//import com.gh.gamecenter.GameNewsActivity; -//import com.gh.gamecenter.R; -//import com.gh.gamecenter.changeskin.ChangeSkinUtils; -//import com.gh.gamecenter.db.LibaoDao; -//import com.gh.gamecenter.db.info.LibaoInfo; -//import com.gh.gamecenter.entity.ApkEntity; -//import com.gh.gamecenter.entity.GameDetailEntity; -//import com.gh.gamecenter.entity.GameEntity; -//import com.gh.gamecenter.entity.LibaoEntity; -//import com.gh.gamecenter.entity.LibaoStatusEntity; -//import com.gh.gamecenter.entity.NewsEntity; -//import com.gh.gamecenter.entity.ServerEntity; -//import com.gh.gamecenter.entity.TagEntity; -//import com.gh.gamecenter.listener.OnCallBackListener; -//import com.gh.gamecenter.manager.ConcernManager; -//import com.gh.gamecenter.retrofit.JSONObjectResponse; -//import com.gh.gamecenter.retrofit.Response; -//import com.gh.gamecenter.retrofit.RetrofitManager; -// -//import org.json.JSONArray; -//import org.json.JSONException; -//import org.json.JSONObject; -// -//import java.text.SimpleDateFormat; -//import java.util.ArrayList; -//import java.util.Collections; -//import java.util.Comparator; -//import java.util.Date; -//import java.util.HashMap; -//import java.util.List; -//import java.util.Locale; -//import java.util.Map; -// -//import okhttp3.ResponseBody; -//import retrofit2.adapter.rxjava.HttpException; -//import rx.android.schedulers.AndroidSchedulers; -//import rx.functions.Func1; -//import rx.schedulers.Schedulers; -// -///** -// * Created by LGT on 2016/9/8. -// * 游戏详情-数据适配器 -// */ -//public class GameDetailAdapter extends RecyclerView.Adapter { -// -// private Context context; -// private OnCallBackListener listener; -// -// private ConcernManager concernManager; -// -// private GameEntity gameEntity; -// private GameDetailEntity gameDetailEntity; -// private List libaoList; -// -// private HashMap skinMap; -// -// private String entrance; -// -// private int position_top = -1; -// private int position_newsserver = -1; -// private int position_skin = -1; -// private int position_plugin = -1; -// private int position_libao = -1; -// private int position_news = -1; -// private int position_intro = -1; -// -// public GameDetailAdapter(GameDetailActivity activity, String entrance) { -// this.context = activity; -// this.listener = activity; -// -// this.entrance = entrance; -// -// skinMap = new HashMap<>(); -// libaoList = new ArrayList<>(); -// -// concernManager = new ConcernManager(context); -// } -// -// public void setGameEntity(GameEntity gameEntity) { -// this.gameEntity = gameEntity; -// } -// -// public GameDetailEntity getGameDetailEntity() { -// return gameDetailEntity; -// } -// -// // 获取游戏详情 -// public void getGameDetail() { -// RetrofitManager.getApi().getGameDetail(gameEntity.getId()) -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(new Response() { -// @Override -// public void onResponse(GameDetailEntity response) { -// gameDetailEntity = response; -// -// getGameNews(); -// -// getNewsServer(); -// -// addLibaoList(); -// -// if (gameDetailEntity.isSkinTest()) { -// getSkinDigest(); -// } -// } -// -// @Override -// public void onFailure(HttpException e) { -// if (listener != null) { -// listener.loadError(); -// } -// } -// }); -// } -// -// private void addLibaoList(){ -// RetrofitManager.getLibao().getLibaoByGame(gameEntity.getId(), 0 , 128) -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(new Response>(){ -// @Override -// public void onResponse(List response) { -// getLibaoStatus(response); -// } -// }); -// } -// -// //获取礼包状态 -// private void getLibaoStatus(final List response) { -// StringBuilder builder = new StringBuilder(); -// for (int i = 0, size = response.size(); i < size; i++) { -// builder.append(response.get(i).getId()); -// builder.append("-"); -// } -// if (builder.length() == 0) { -// return; -// } -// builder.deleteCharAt(builder.length() - 1); -// String ids = builder.toString(); -// -// RetrofitManager.getLibao().getLibaoStatus(ids) -// .map(new Func1, Object>() { -// @Override -// public Object call(List list) { -// LibaoDao libaoDao = new LibaoDao(context); -// for (LibaoInfo libaoInfo : libaoDao.getAll()) { -// for (int i = 0; i < list.size(); i++) { -// if (libaoInfo.getLibaoId().equals(list.get(i).getId())) { -// if ("ling".equals(libaoInfo.getStatus()) || "linged".equals(libaoInfo.getStatus())) { -// list.get(i).setStatus("linged"); -// } else { -// list.get(i).setStatus("taoed"); -// } -// } -// } -// } -// for (int i = 0; i < response.size(); i++) { -// LibaoEntity libaoEntity = response.get(i); -// for (LibaoStatusEntity libaoStatusEntity : list) { -// if (libaoStatusEntity.getId().equals(libaoEntity.getId())) { -// if ("finish".equals(libaoStatusEntity.getStatus())) { -// response.remove(i); -// i--; -// break; -// } -// if (libaoEntity.getId().equals(libaoStatusEntity.getId())) { -// libaoEntity.setStatus(libaoStatusEntity.getStatus()); -// libaoEntity.setAvailable(libaoStatusEntity.getAvailable()); -// libaoEntity.setTotal(libaoStatusEntity.getTotal()); -// } -// } -// } -// } -// if (response.size() != 0) { -// libaoList = response; -// initPosition(); -// } -// return null; -// } -// }) -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(new Response(){ -// @Override -// public void onResponse(Object response) { -// super.onResponse(response); -// notifyDataSetChanged(); -// } -// }); -// } -// -// -// private void getSkinDigest() { -// RetrofitManager.getApi().getGameSkin(gameEntity.getId()) -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(new JSONObjectResponse() { -// @Override -// public void onResponse(JSONObject response) { -// if (response.length() != 0) { -// try { -// String des = response.getString("des"); -// String name = response.getString("name"); -// skinMap.put("des", des); -// skinMap.put("name", name); -// -// notifyDataSetChanged(); -// } catch (JSONException e) { -// e.printStackTrace(); -// } -// } -// } -// }); -// } -// -// // 获取游戏新闻 -// private void getGameNews() { -// RetrofitManager.getApi().getGameNews(gameEntity.getId(), 3) -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(new Response>() { -// @Override -// public void onResponse(List response) { -// gameDetailEntity.setNews(response); -// -// if (listener != null) { -// listener.loadDone(); -// } -// initPosition(); -// notifyDataSetChanged(); -// } -// -// @Override -// public void onFailure(HttpException e) { -// if (listener != null) { -// listener.loadDone(); -// } -// initPosition(); -// notifyDataSetChanged(); -// } -// }); -// } -// -// // 获取开服信息 -// private void getNewsServer() { -// RetrofitManager.getApi().getGameServer(gameEntity.getId()) -// .map(new Func1>() { -// @Override -// public List call(ResponseBody responseBody) { -// List serverInfo = new ArrayList<>(); -// try { -// JSONArray response = new JSONArray(responseBody.string()); -// if (response.length() != 0) { -// SimpleDateFormat format = new SimpleDateFormat( -// "Mdd", Locale.getDefault()); -// int today = Integer.valueOf(format.format(new Date())); -// for (int i = 0, size = response.length(); i < size; i++) { -// ServerEntity entity = new ServerEntity(); -// JSONObject jsonObject2; -// jsonObject2 = response.getJSONObject(i); -// String server = jsonObject2.getString("server"); -// if (server.length() > 4) { -// server = server.substring(0, 4); -// } -// entity.setServer(server); -// entity.setTime(Long.valueOf(jsonObject2.getString("time") + "000")); -// int day = Integer.valueOf(format.format(new Date(entity.getTime()))); -// if (day == today + 1) { -// entity.setTag("明天"); -// serverInfo.add(entity); -// } else if (day == today - 1) { -// entity.setTag("昨天"); -// serverInfo.add(entity); -// } else if (day == today) { -// entity.setTag("今天"); -// serverInfo.add(entity); -// } -// } -// -// Comparator comparator = new Comparator() { -// @Override -// public int compare(ServerEntity lhs, ServerEntity rhs) { -// return (int) (lhs.getTime() - rhs.getTime()); -// } -// }; -// Collections.sort(serverInfo, comparator); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } -// return serverInfo; -// } -// }) -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(new Response>() { -// @Override -// public void onResponse(List response) { -// gameDetailEntity.setServerInfo(response); -// initPosition(); -// if (position_newsserver != -1) { -// notifyItemInserted(position_newsserver); -// } -// } -// }); -// } -// -// @Override -// public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { -// if (viewType == 1) { -// View view = LayoutInflater.from(parent.getContext()) -// .inflate(R.layout.gamedetail_item_top, parent, false); -// return new GameDetailTopViewHolder(view); -// } else if (viewType == 2) { -// View view = LayoutInflater.from(parent.getContext()) -// .inflate(R.layout.gamedetail_item_newsserver,parent,false); -// return new GameDetailNewsServerViewHolder(view); -// } else if (viewType == 3) { -// View view = LayoutInflater.from(parent.getContext()) -// .inflate(R.layout.gamedetail_item_plugin, parent, false); -// return new GameDetailPluginViewHolder(view); -// } else if (viewType == 4) { -// View view = LayoutInflater.from(parent.getContext()) -// .inflate(R.layout.gamedetail_item_news, parent, false); -// return new GameDetailNewsViewHolder(view); -// } else if (viewType == 5) { -// View view = LayoutInflater.from(parent.getContext()) -// .inflate(R.layout.gamedetail_item_intro, parent, false); -// return new GameDetailIntroViewHolder(view); -// } else if (viewType == 6) { -// View view = LayoutInflater.from(parent.getContext()) -// .inflate(R.layout.gamedetail_item_skin, parent, false); -// return new GameDetailSkinViewHolder(view); -// } else if (viewType == 7) { -// View view = LayoutInflater.from(parent.getContext()) -// .inflate(R.layout.gamedetail_item_libao_rv, parent, false); -// return new GameDetaiLibaoViewHolder(view); -// } -// return null; -// } -// -// @Override -// public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { -// if (holder instanceof GameDetailTopViewHolder){ -// initTopViewHolder((GameDetailTopViewHolder) holder); -// } else if (holder instanceof GameDetailPluginViewHolder){ -// initPluginViewHolder((GameDetailPluginViewHolder) holder); -// } else if (holder instanceof GameDetailNewsViewHolder){ -// initNewsViewHolder((GameDetailNewsViewHolder) holder); -// } else if (holder instanceof GameDetailIntroViewHolder){ -// initIntroViewHolder((GameDetailIntroViewHolder) holder); -// } else if (holder instanceof GameDetailNewsServerViewHolder) { -// initNewsServerViewHolder((GameDetailNewsServerViewHolder) holder); -// } else if (holder instanceof GameDetailSkinViewHolder) { -// initSkinViewHolder((GameDetailSkinViewHolder) holder); -// } else if (holder instanceof GameDetaiLibaoViewHolder) { -// initLibaoViewHolder((GameDetaiLibaoViewHolder) holder); -// } -// } -// -// private void initLibaoViewHolder(GameDetaiLibaoViewHolder holder) { -// holder.libaoRv.setLayoutManager(new LinearLayoutManager(context -// , LinearLayoutManager.HORIZONTAL, false)); -// holder.libaoRv.setAdapter(new GameLibaoGalleryAdapter(context, libaoList, -// entrance + "+(游戏详情[" + gameEntity.getName() + "]:游戏礼包)")); -// } -// -// private void initSkinViewHolder(GameDetailSkinViewHolder holder) { -// if (skinMap.get("des") != null && skinMap.get("name") != null) { -// holder.skinDownloadDes.setText(skinMap.get("des")); -// holder.skinDownloadName.setText(skinMap.get("name")); -// } -// ChangeSkinUtils.changeSkinControl(holder, context); -// } -// -// private void initNewsServerViewHolder(final GameDetailNewsServerViewHolder viewHolder) { -// List serverInfo = gameDetailEntity.getServerInfo(); -// viewHolder.gamedetail_newsserver_show.setLayoutManager(new LinearLayoutManager( -// context, LinearLayoutManager.HORIZONTAL, false)); -// viewHolder.gamedetail_newsserver_show.setAdapter( -// new GameDetailNewsServerAdapter(context, serverInfo)); -// viewHolder.gamedetail_newsserver_show.setOnScrollListener(new RecyclerView.OnScrollListener() { -// @Override -// public void onScrolled(RecyclerView recyclerView, int dx, int dy) { -// super.onScrolled(recyclerView, dx, dy); -// LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager(); -// if (layoutManager.findFirstVisibleItemPosition() == 0 -// && layoutManager.findViewByPosition(0).getLeft() == 0) { -// viewHolder.gamedetail_newsserver_left.setVisibility(View.INVISIBLE); -// viewHolder.gamedetail_newsserver_right.setVisibility(View.VISIBLE); -// } else if (layoutManager.findLastVisibleItemPosition() == recyclerView.getAdapter().getItemCount() - 1 -// && layoutManager.findViewByPosition(recyclerView.getAdapter().getItemCount() - 1).getRight() == recyclerView.getWidth()) { -// viewHolder.gamedetail_newsserver_left.setVisibility(View.VISIBLE); -// viewHolder.gamedetail_newsserver_right.setVisibility(View.INVISIBLE); -// } else { -// viewHolder.gamedetail_newsserver_left.setVisibility(View.VISIBLE); -// viewHolder.gamedetail_newsserver_right.setVisibility(View.VISIBLE); -// } -// } -// }); -// if (serverInfo.size() <= 3) { -// viewHolder.gamedetail_newsserver_left.setVisibility(View.GONE); -// viewHolder.gamedetail_newsserver_right.setVisibility(View.GONE); -// } else { -// int todayPosition = -1; -// int tomorrowPosition = -1; -// for (int j = 0, sizej = serverInfo.size(); j < sizej; j++) { -// if ("今天".equals(serverInfo.get(j).getTag()) -// && todayPosition == -1) { -// todayPosition = j; -// } else if ("明天".equals(serverInfo.get(j).getTag()) -// && tomorrowPosition == -1) { -// tomorrowPosition = j; -// } -// } -// if (!(todayPosition == 0 || todayPosition == 1 || todayPosition == -1)) { -// if (serverInfo.size() >= todayPosition + 2) { -// viewHolder.gamedetail_newsserver_show.scrollToPosition(todayPosition - 1); -// } else { -// viewHolder.gamedetail_newsserver_show.scrollToPosition(todayPosition); -// } -// } else if (todayPosition == -1 -// && !(tomorrowPosition == 0 || tomorrowPosition == 1 || tomorrowPosition == -1)) { -// if (serverInfo.size() >= todayPosition + 2) { -// viewHolder.gamedetail_newsserver_show.scrollToPosition(tomorrowPosition - 1); -// } else { -// viewHolder.gamedetail_newsserver_show.scrollToPosition(tomorrowPosition); -// } -// } else if (todayPosition == -1 && tomorrowPosition == -1) { -// viewHolder.gamedetail_newsserver_show.scrollToPosition(serverInfo.size() - 1); -// viewHolder.gamedetail_newsserver_show.setVisibility(View.GONE); -// } else { -// viewHolder.gamedetail_newsserver_left.setVisibility(View.GONE); -// } -// if (todayPosition == serverInfo.size() - 1 -// || todayPosition == serverInfo.size() - 2) { -// viewHolder.gamedetail_newsserver_right.setVisibility(View.GONE); -// } -// if (todayPosition == -1 -// && (tomorrowPosition == serverInfo.size() - 1 -// || tomorrowPosition == serverInfo.size() - 2)) { -// viewHolder.gamedetail_newsserver_right.setVisibility(View.GONE); -// } -// } -// } -// -// private void initIntroViewHolder(GameDetailIntroViewHolder viewHolder) { -// if (viewHolder.gamedetail_item_intro_gallery.getAdapter() == null ) { -// viewHolder.gamedetail_item_intro_gallery.setHasFixedSize(true); -// viewHolder.gamedetail_item_intro_gallery.setLayoutManager( -// new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)); -// viewHolder.gamedetail_item_intro_gallery.setAdapter( -// new GameGalleryAdapter(context, gameDetailEntity.getGallery(), -// entrance + "+(游戏详情[" + gameEntity.getName() + "]:游戏介绍)")); -// viewHolder.gamedetail_item_intro_gallery.addItemDecoration( -// new HorizontalItemDecoration(context, 1, gameDetailEntity.getGallery().size())); -// } -// if (TextUtils.isEmpty(gameDetailEntity.getDes())) { -// viewHolder.gamedetail_item_intro_content.setText(""); -// } else { -// viewHolder.gamedetail_item_intro_content.setText(gameDetailEntity.getDes()); -// } -// } -// -// private void initNewsViewHolder(GameDetailNewsViewHolder viewHolder) { -// if (gameDetailEntity.getNews().size() < 3) { -// viewHolder.gamedetail_item_news_more.setVisibility(View.GONE); -// } else { -// viewHolder.gamedetail_item_news_more.setVisibility(View.VISIBLE); -// viewHolder.gamedetail_item_news_more.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// if (gameDetailEntity.getArticleTypes() != null -// && gameEntity.getId() != null -// && gameEntity.getName() != null) { -// Map kv = new HashMap<>(); -// kv.put("名字", gameEntity.getName()); -// kv.put("位置", "资讯攻略-全部"); -// DataUtils.onEvent(context, "点击", "游戏详情", kv); -// -// DataCollectionUtils.uploadClick(context, "资讯攻略-全部", "游戏详情", gameEntity.getName()); -// -// Intent intent = new Intent(context, GameNewsActivity.class); -// intent.putExtra("articleTypes", gameDetailEntity.getArticleTypes()); -// intent.putExtra("gameName", gameEntity.getName()); -// intent.putExtra("gameId", gameEntity.getId()); -// intent.putExtra("entrance", entrance + "+(游戏详情[" + gameEntity.getName() + "]:资讯攻略-全部)"); -// context.startActivity(intent); -// } -// } -// }); -// } -// final List newsList = gameDetailEntity.getNews(); -// int childCount = viewHolder.gamedetail_item_news_list.getChildCount(); -// if (childCount == 0) { -// for (int i = 0, size = newsList.size(); i < size; i++) { -// View view = View.inflate(context, R.layout.gamedetail_news_item, null); -// -// TextView tv_tag = (TextView) view.findViewById(R.id.gamedetail_news_item_tag); -// if ("活动".equals(newsList.get(i).getType())){ -// tv_tag.setBackgroundResource(R.drawable.textview_orange_style); -// } else if ("公告".equals(newsList.get(i).getType())){ -// tv_tag.setBackgroundResource(R.drawable.textview_red_style); -// } else { -// tv_tag.setBackgroundResource(R.drawable.textview_blue_style); -// } -// tv_tag.setText(newsList.get(i).getType()); -// -// TextView tv_title = (TextView) view.findViewById(R.id.gamedetail_news_item_title); -// tv_title.setText(Html.fromHtml(newsList.get(i).getTitle())); -// -// final NewsEntity newsEntity = newsList.get(i); -// final int ii = i; -// view.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// Map kv = new HashMap<>(); -// kv.put("名字", newsEntity.getTitle()); -// kv.put("位置", String.valueOf(ii + 1)); -// DataUtils.onEvent(context, "点击", "游戏详情-资讯攻略", kv); -// -// DataCollectionUtils.uploadClick(context, "资讯攻略", "游戏详情", newsEntity.getTitle()); -// -// // 统计阅读量 -// NewsUtils.statNewsViews(newsEntity.getId()); -// NewsUtils.startNewsDetailActivity(context, newsEntity, entrance + "+(游戏详情[" + gameEntity.getName() + "]:资讯攻略-列表[" + (ii + 1) + "])"); -// } -// }); -// viewHolder.gamedetail_item_news_list.addView(view); -// } -// } -// } -// -// private void initPluginViewHolder(final GameDetailPluginViewHolder viewHolder) { -// ArrayList tags = gameDetailEntity.getTag(); -// -// viewHolder.gamedetail_ll_plugin.setVisibility(View.GONE); -//// viewHolder.open_plugin_detail_ll.setOnClickListener(new View.OnClickListener() { -//// @Override -//// public void onClick(View v) { -//// if (viewHolder.gamedetail_ll_plugin.getVisibility() == View.GONE) { -//// viewHolder.gamedetail_ll_plugin.setVisibility(View.VISIBLE); -//// viewHolder.gamedetail_ll_plugin_colse.setVisibility(View.GONE); -//// viewHolder.open_plugin_detail_img.setImageResource(R.drawable.up_img); -//// viewHolder.open_plugin_detail_tv.setText("收起"); -//// } else { -//// viewHolder.gamedetail_ll_plugin.setVisibility(View.GONE); -//// viewHolder.gamedetail_ll_plugin_colse.setVisibility(View.VISIBLE); -//// viewHolder.open_plugin_detail_img.setImageResource(R.drawable.down_img); -//// viewHolder.open_plugin_detail_tv.setText("详情"); -//// } -//// } -//// }); -// int childCount = viewHolder.gamedetail_ll_plugin.getChildCount(); -// if (childCount == 0) { -// View view; -// SimpleDraweeView iv_hint; -// TextView tv_hint; -// TextView tv_content; -// TagEntity tagEntity; -// if (gameDetailEntity.getTips() != null && !TextUtils.isEmpty(gameDetailEntity.getTips().getContent())) { -// view = View.inflate(context, R.layout.gamedetail_plugin_item, null); -// iv_hint = (SimpleDraweeView) view.findViewById(R.id.gamedetail_iv_hint); -// tv_hint = (TextView) view.findViewById(R.id.gamedetail_tv_hint); -// tv_content = (TextView) view.findViewById(R.id.gamedetail_tv_content); -// ImageUtils.display(iv_hint, gameDetailEntity.getTips().getIcon()); -// tv_hint.setTextColor(Color.parseColor(gameDetailEntity.getTips().getTitle().getColor())); -// tv_hint.setText(gameDetailEntity.getTips().getTitle().getValue()); -// tv_content.setText(gameDetailEntity.getTips().getContent()); -// viewHolder.gamedetail_ll_plugin.addView(view); -// -// view = View.inflate(context, R.layout.gamedetail_plugin_item, null); -// iv_hint = (SimpleDraweeView) view.findViewById(R.id.gamedetail_iv_hint); -// tv_hint = (TextView) view.findViewById(R.id.gamedetail_tv_hint); -// tv_content = (TextView) view.findViewById(R.id.gamedetail_tv_content); -// ImageUtils.display(iv_hint, gameDetailEntity.getTips().getIcon()); -// tv_hint.setTextColor(Color.parseColor(gameDetailEntity.getTips().getTitle().getColor())); -// tv_hint.setText(gameDetailEntity.getTips().getTitle().getValue()); -// tv_content.setText(gameDetailEntity.getTips().getContent()); -// viewHolder.gamedetail_ll_plugin_colse.addView(view); -// } -// -// if (tags.isEmpty()) { -//// viewHolder.open_plugin_detail_ll.setVisibility(View.GONE); -// } else { -//// viewHolder.open_plugin_detail_ll.setVisibility(View.VISIBLE); -// -// for (int i = 0, size = tags.size(); i < size; i++) { -// view = View.inflate(context, R.layout.gamedetail_plugin_item, null); -// iv_hint = (SimpleDraweeView) view.findViewById(R.id.gamedetail_iv_hint); -// tv_hint = (TextView) view.findViewById(R.id.gamedetail_tv_hint); -// tv_content = (TextView) view.findViewById(R.id.gamedetail_tv_content); -// tagEntity = tags.get(i); -// tv_content.setText(tagEntity.getDes()); -// tv_hint.setText(tagEntity.getName()); -// tv_hint.setTextColor(Color.parseColor(tagEntity.getColor())); -//// iv_hint.setImageURI(tagEntity.getIcon()); -// ImageUtils.display(iv_hint, tagEntity.getIcon()); -// viewHolder.gamedetail_ll_plugin.addView(view); -// } -// -// RecyclerView recyclerView = new RecyclerView(context); -// recyclerView.setLayoutManager(new GridLayoutManager(context, 3)); -// -// int index = (int) Math.ceil(tags.size() / 3.0); -// LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( -// ViewGroup.LayoutParams.MATCH_PARENT, DisplayUtils.dip2px(context, index * 28)); -// params.setMargins(0, DisplayUtils.dip2px(context, index * 3), 0, 0); -// -// recyclerView.setLayoutParams(params); -// recyclerView.setAdapter(new GameDetailPluginAdapter(tags, context)); -// viewHolder.gamedetail_ll_plugin_colse.addView(recyclerView); -// } -// -// } -// } -// -// -// private void initTopViewHolder(final GameDetailTopViewHolder viewHolder) { -// if (concernManager.isConcern(gameEntity.getId())) { -// viewHolder.gamedetail_tv_concern.setText("取消关注"); -// viewHolder.gamedetail_tv_concern.setBackgroundResource(R.drawable.border_red_bg); -// viewHolder.gamedetail_tv_concern.setTextColor(Color.parseColor("#ff4147")); -// } else { -// viewHolder.gamedetail_tv_concern.setText("关注"); -// viewHolder.gamedetail_tv_concern.setBackgroundResource(R.drawable.textview_concern_red_style); -// viewHolder.gamedetail_tv_concern.setTextColor(0xffffffff); -// } -// -// viewHolder.gamedetail_tv_name.setText(gameEntity.getName()); -// ImageUtils.display(viewHolder.gamedetail_iv_thumb, gameEntity.getIcon()); -// if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) { -// viewHolder.gamedetail_tv_info.setText(""); -// } else { -// ApkEntity apkEntity = gameEntity.getApk().get(0); -// viewHolder.gamedetail_tv_info.setText(String.format("V%s | %s", apkEntity.getVersion(), apkEntity.getSize())); -// } -// viewHolder.gamedetail_tv_concern.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// final TextView concern = (TextView) v; -// if ("关注".equals(concern.getText().toString())) { -// -// Map kv = new HashMap<>(); -// kv.put("状态", "关注"); -// DataUtils.onEvent(context, "游戏关注", gameEntity.getName(), kv); -// -// Map kv2 = new HashMap<>(); -// kv2.put("点击", "关注"); -// DataUtils.onEvent(context, "插件数据", gameEntity.getName(), kv2); -// -// DataCollectionUtils.uploadConcern(context, gameEntity.getName(), gameEntity.getId(), "关注"); -// -// concernManager.addByEntity(gameEntity); -// concern.setText("取消关注"); -// concern.setBackgroundResource(R.drawable.border_red_bg); -// concern.setTextColor(Color.parseColor("#ff4147")); -// -// Toast.makeText(context, "关注成功", Toast.LENGTH_SHORT).show(); -// -// // 添加关注 -// ConcernUtils.postConcernGameId(context, gameEntity.getId()); -// } else { -// Map kv2 = new HashMap<>(); -// kv2.put("点击", "取消关注"); -// DataUtils.onEvent(context, "插件数据", gameEntity.getName(), kv2); -// -// DialogUtils.showCancelDialog(context, new DialogUtils.ConfiremListener() { -// @Override -// public void onConfirem() { -// Map kv = new HashMap<>(); -// kv.put("状态", "取消关注"); -// DataUtils.onEvent(context, "游戏关注", gameEntity.getName(), kv); -// -// DataCollectionUtils.uploadConcern(context, -// gameEntity.getName(), gameEntity.getId(), "取消关注"); -// -// concernManager.deleteConcern(gameEntity.getId()); -// concern.setText("关注"); -// concern.setBackgroundResource(R.drawable.textview_concern_red_style); -// concern.setTextColor(0xffffffff); -// -// // 取消关注 -// ConcernUtils.deleteConcernData(context, gameEntity.getId()); -// } -// }); -// } -// } -// }); -// -// } -// -// private void initPosition() { -// if (gameDetailEntity == null) { -// return; -// } -// position_top = 0; -// if (gameDetailEntity.getServerInfo() != null -// && gameDetailEntity.getServerInfo().size() != 0) { -// position_newsserver = 1; -// } -// if (gameDetailEntity.getTag() != null -// && gameDetailEntity.getTag().size() != 0) { -// if (position_newsserver != -1) { -// position_plugin = position_newsserver + 1; -// } else { -// position_plugin = 1; -// } -// } -// if (gameDetailEntity.isSkinTest()) { -// if (position_plugin != -1) { -// position_skin = position_plugin + 1; -// } else if (position_newsserver != -1) { -// position_skin = position_newsserver + 1; -// } else { -// position_skin = 1; -// } -// } -// if (libaoList.size() > 0) { -// if (position_skin != -1) { -// position_libao = position_skin + 1; -// } else if (position_plugin != -1) { -// position_libao = position_plugin + 1; -// } else if (position_newsserver != -1) { -// position_libao = position_newsserver + 1; -// } else { -// position_libao = 1; -// } -// } -// if (gameDetailEntity.getNews() != null -// && gameDetailEntity.getNews().size() != 0) { -// if (position_libao != -1) { -// position_news = position_libao + 1; -// } else if (position_skin != -1) { -// position_news = position_skin + 1; -// } else if (position_plugin != -1) { -// position_news = position_plugin + 1; -// } else if (position_newsserver != -1) { -// position_news = position_newsserver + 1; -// } else { -// position_news = 1; -// } -// } -// if (gameDetailEntity.getGallery() != null -// && gameDetailEntity.getGallery().size() != 0) { -// if (position_news != -1) { -// position_intro = position_news + 1; -// } else if (position_libao != -1) { -// position_intro = position_libao + 1; -// } else if (position_skin != -1) { -// position_intro = position_skin + 1; -// } else if (position_plugin != -1) { -// position_intro = position_plugin + 1; -// } else if (position_newsserver != -1) { -// position_intro = position_newsserver + 1; -// } else { -// position_intro = 1; -// } -// } -// } -// -// @Override -// public int getItemCount() { -// int index = 0; -// if (position_top != -1) { -// index++; -// } -// if (position_newsserver != -1) { -// index++; -// } -// if (position_skin != -1) { -// index++; -// } -// if (position_plugin != -1) { -// index++; -// } -// if (position_libao != -1) { -// index++; -// } -// if (position_news != -1) { -// index++; -// } -// if (position_intro != -1) { -// index++; -// } -// return index; -// } -// -// @Override -// public int getItemViewType(int position) { -// -// if (position_top != -1 && position == position_top) { -// return 1; -// } -// if (position_top != -1 && gameDetailEntity.isSkinTest() && position == position_skin) { -// return 6; -// } -// if (position_newsserver != -1 && position == position_newsserver) { -// return 2; -// } -// if (position_plugin != -1 && position == position_plugin) { -// return 3; -// } -// if (position_libao != -1 && position == position_libao) { -// return 7; -// } -// if (position_news != -1 && position == position_news) { -// return 4; -// } -// if (position_intro != -1 && position == position_intro) { -// return 5; -// } -// return position; -// } -// -//} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java index 889410fb45..bfb62671ac 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java @@ -9,7 +9,6 @@ import android.os.Message; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.view.Gravity; -import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; @@ -17,7 +16,6 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.gh.common.util.DisplayUtils; -import com.gh.common.util.Utils; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.adapter.BaseRecyclerAdapter; @@ -60,7 +58,6 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter { super.handleMessage(msg); switch (msg.what) { case 0: - Utils.log("============lololo"); notifyDataSetChanged(); break; case 1: @@ -242,7 +239,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter { } } - mHandler.sendEmptyMessageDelayed(0, 5000); + mHandler.sendEmptyMessage(0); } public int getWeekByDay(int year, int month) { 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 001a1e3d7b..46c1ca2423 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiAdapter.java @@ -2,31 +2,57 @@ package com.gh.gamecenter.gamedetail; import android.content.Intent; import android.graphics.Color; -import android.support.v7.widget.*; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.text.Html; import android.text.TextUtils; -import android.view.*; -import android.widget.*; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.AppController; -import com.gh.common.util.*; +import com.gh.common.util.DataCollectionUtils; +import com.gh.common.util.DataUtils; +import com.gh.common.util.DisplayUtils; +import com.gh.common.util.DownloadItemUtils; +import com.gh.common.util.GameUtils; +import com.gh.common.util.GameViewUtils; +import com.gh.common.util.ImageUtils; +import com.gh.common.util.NewsUtils; +import com.gh.common.util.RandomUtils; import com.gh.common.view.HorizontalItemDecoration; import com.gh.common.view.MarqueeView; import com.gh.download.DownloadManager; -import com.gh.gamecenter.*; +import com.gh.gamecenter.GameNewsActivity; +import com.gh.gamecenter.R; +import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.adapter.BaseRecyclerAdapter; -import com.gh.gamecenter.adapter.viewholder.*; -import com.gh.gamecenter.entity.*; +import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; +import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; +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.manager.GameManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import retrofit2.adapter.rxjava.HttpException; +import rx.Observable; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; -import java.util.*; - /** * Created by khy on 2017/3/27. * 游戏详情-信息 @@ -64,7 +90,7 @@ public class XinXiAdapter extends BaseRecyclerAdapter { getGameNews(); - initGameList(); + initGameIds(); } @@ -89,35 +115,64 @@ public class XinXiAdapter extends BaseRecyclerAdapter { }); } - public void initGameList() { + public void initGameIds() { + if (mGameDetailEntity.getRelatedGames() == null + || mGameDetailEntity.getRelatedGames() != null + && mGameDetailEntity.getRelatedGames().size() == 0) return; - // TODO 大家都在玩 数据接口 - RetrofitManager.getApi().getColumn("57d7a0418ab49eb95b8b463d", 2, "") + List relatedGames = mGameDetailEntity.getRelatedGames(); + ArrayList list = new ArrayList<>(); + for (GameDetailEntity.RelatedGame relatedGame : relatedGames) { + int size = relatedGame.getGame().size(); + if (size > 3) { + int[] randomArray = RandomUtils.getRandomArray(size, 3); + for (int i : randomArray) { + list.add(relatedGame.getGame().get(i)); + } + break; + } else { + list.addAll(relatedGame.getGame()); + } + + if (list.size() == 3) { + break; + } + } + + initGameList(list); + } + + //获取游戏简介 + private void initGameList(List ids) { + final List result = new ArrayList<>(); + + List> sequences = new ArrayList<>(); + for (String id : ids) { + sequences.add(RetrofitManager.getApi().getGameDigest(id)); + } + Observable.merge(sequences) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response>() { + .subscribe(new Response() { @Override - public void onResponse(List response) { - GameManager manager = new GameManager(mContext); - if (response.size() != 0) { - for (GameEntity entity : response) { + public void onNext(GameEntity response) { + result.add(response); + } + + @Override + public void onCompleted() { + if (result.size() != 0) { + GameManager manager = new GameManager(mContext); + for (GameEntity entity : result) { entity.setEntryMap(DownloadManager.getInstance(mContext).getEntryMap(entity.getName())); manager.addOrUpdate(entity.getApk(), entity.getId(), entity.getName()); } - mGameList.addAll(response); + mGameList.addAll(result); initPosition(); notifyDataSetChanged(); - } } - - @Override - public void onFailure(HttpException e) { - - Utils.toast(mContext, "关联游戏加载失败"); - - } }); } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiFragment.java index b4159b66a9..38481c4014 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiFragment.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiFragment.java @@ -2,6 +2,7 @@ package com.gh.gamecenter.gamedetail; import android.os.Bundle; import android.support.annotation.Nullable; +import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; @@ -68,11 +69,12 @@ public class XinXiFragment extends BaseFragment { distance = DisplayUtils.dip2px(getActivity(), 75); mAdapter = new XinXiAdapter(this); + ((DefaultItemAnimator)mRecyclerView.getItemAnimator()).setSupportsChangeAnimations(false); layoutManager = new LinearLayoutManager(getContext()); mRecyclerView.setLayoutManager(layoutManager); mRecyclerView.setAdapter(mAdapter); - mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { + mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { if (mRecyclerView.getChildCount() <= 0) return; diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java index d064631405..c7b8904fa4 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java @@ -85,7 +85,7 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O mHistoryRv.setLayoutManager(mHistoryLm); mHistoryRv.setAdapter(historyAdapter); - mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { + mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (newState == RecyclerView.SCROLL_STATE_IDLE @@ -154,7 +154,7 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O } }); - mHistoryRv.setOnScrollListener(new RecyclerView.OnScrollListener() { + mHistoryRv.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (newState == RecyclerView.SCROLL_STATE_IDLE diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java index a10d15e96c..0569f15880 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java @@ -62,7 +62,7 @@ public class Libao2Fragment extends BaseFragment implements SwipeRefreshLayout.O mRecyclerView.addItemDecoration(new VerticalItemDecoration(getContext(), 8, false)); mRecyclerView.setAdapter(adapter); - mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { + mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (newState == RecyclerView.SCROLL_STATE_IDLE diff --git a/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java b/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java index 063ac14657..5a156f35f2 100644 --- a/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java +++ b/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java @@ -258,6 +258,14 @@ public class UpdateManager { if (appEntity != null && appEntity.isForce()) { AppController.getInstance().finishActivity(); } + } else if (DownloadStatus.neterror.equals(downloadEntity.getStatus())) { + Utils.toast(context, "网络错误,请稍后重试"); + } else if (DownloadStatus.timeout.equals(downloadEntity.getStatus())) { + Utils.toast(context, "请求超时,请稍后重试"); + } else if (DownloadStatus.notfound.equals(downloadEntity.getStatus())) { + Utils.toast(context, "下载链接异常,请稍后重试"); + } else if (DownloadStatus.hijack.equals(downloadEntity.getStatus())) { + Utils.toast(context, "网络劫持,请稍后重试"); } } } diff --git a/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java b/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java index 0cc5aff24a..22eee88b64 100644 --- a/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java @@ -69,7 +69,7 @@ public class CommentFragment extends BaseFragment implements SwipeRefreshLayout. mRecyclerview.addItemDecoration(new VerticalItemDecoration(getContext(), 1, true)); mRecyclerview.setAdapter(mAdapter); - mRecyclerview.setOnScrollListener(new RecyclerView.OnScrollListener() { + mRecyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); diff --git a/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java b/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java index 58bc8efe4f..6005cf5fdf 100644 --- a/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java @@ -66,7 +66,7 @@ public class NoticeFragment extends BaseFragment implements SwipeRefreshLayout.O mRecyclerview.addItemDecoration(new VerticalItemDecoration(getContext(), 8, true)); mRecyclerview.setAdapter(mAdapter); - mRecyclerview.setOnScrollListener(new RecyclerView.OnScrollListener() { + mRecyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); diff --git a/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java index 7ddddcb219..f93c862ea5 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java @@ -56,7 +56,7 @@ public class News1Fragment extends BaseFragment implements SwipeRefreshLayout.On recyclerView.addItemDecoration(new VerticalItemDecoration(getContext(), 8, true)); adapter = new News1FragmentAdapter(News1Fragment.this); recyclerView.setAdapter(adapter); - recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { + recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (newState == RecyclerView.SCROLL_STATE_IDLE diff --git a/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java index 9f919ecad8..5697f029e8 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java @@ -64,7 +64,7 @@ public class News2Fragment extends BaseFragment implements News2FragmentDialogAd mStrategyRv.setLayoutManager(layoutManager); mStrategyRv.setAdapter(mStrategyAdapter); - mStrategyRv.setOnScrollListener(new RecyclerView.OnScrollListener() { + mStrategyRv.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); diff --git a/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java index d713009dc0..2d56a5dfa6 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java @@ -56,7 +56,7 @@ public class News3Fragment extends BaseFragment implements SwipeRefreshLayout.On adapter = new News3FragmentAdapter(News3Fragment.this); recyclerView.addItemDecoration(new VerticalItemDecoration(getContext(), 8, true)); recyclerView.setAdapter(adapter); - recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { + recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (newState == RecyclerView.SCROLL_STATE_IDLE 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 369150a4a5..53ffc9ed62 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java @@ -103,7 +103,7 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On recyclerView.addItemDecoration(new VerticalItemDecoration(getContext(), 8, true)); adapter = new News4FragmentAdapter(News4Fragment.this); recyclerView.setAdapter(adapter); - recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { + recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (newState == RecyclerView.SCROLL_STATE_IDLE diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml index 3732ad22ce..fc23ef0927 100644 --- a/app/src/main/res/layout/activity_setting.xml +++ b/app/src/main/res/layout/activity_setting.xml @@ -85,26 +85,36 @@ + android:gravity="center_vertical" + android:paddingLeft="10dp" + android:paddingRight="10dp"> - + android:layout_height="match_parent" + android:gravity="center_vertical" + android:orientation="vertical"> - + + + + + android:layout_centerVertical="true" /> + android:paddingLeft="10dp" + android:paddingRight="10dp"> + android:layout_centerVertical="true" /> + android:paddingLeft="10dp" + android:paddingRight="10dp"> + android:layout_centerVertical="true" /> + android:paddingLeft="10dp" + android:paddingRight="10dp"> + android:layout_centerVertical="true" /> @@ -247,43 +256,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" /> + android:src="@drawable/about_more_iocn" /> diff --git a/app/src/main/res/layout/activity_subject.xml b/app/src/main/res/layout/activity_subject.xml index ee2048bf77..c1237a7a42 100644 --- a/app/src/main/res/layout/activity_subject.xml +++ b/app/src/main/res/layout/activity_subject.xml @@ -36,6 +36,7 @@ android:background="@color/theme" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/reuse_actionbar.xml b/app/src/main/res/layout/reuse_actionbar.xml index 2a2778304a..abc8cbb1ae 100644 --- a/app/src/main/res/layout/reuse_actionbar.xml +++ b/app/src/main/res/layout/reuse_actionbar.xml @@ -22,9 +22,11 @@ android:id="@+id/actionbar_tv_title" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_centerInParent="true" android:gravity="center" android:textColor="@color/title" - android:textSize="17sp" /> + android:textSize="17sp" + android:layout_centerVertical="true" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" /> \ No newline at end of file