From c97db56a74fb6229447689593a291ed58e50e97b Mon Sep 17 00:00:00 2001
From: huangzhuanghua <401742778@qq.com>
Date: Tue, 21 Jun 2016 11:56:55 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E6=94=B6?=
=?UTF-8?q?=E9=9B=86=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=8E=BB=E6=8E=89=E7=82=B9?=
=?UTF-8?q?=E5=87=BB=E5=8A=A0=E8=BD=BD=E6=9B=B4=E5=A4=9A=EF=BC=8C=E6=96=B0?=
=?UTF-8?q?=E9=97=BB=E5=92=8C=E4=B8=8B=E8=BD=BD=E6=95=B0=E6=8D=AE=E5=AE=9E?=
=?UTF-8?q?=E6=97=B6=E4=B8=8A=E4=BC=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/AndroidManifest.xml | 1 -
.../java/com/gh/common/util/ImageUtils.java | 24 ++-
...{Gh_ImageView.java => Gh_ImageLayout.java} | 9 +-
.../gh/gamecenter/GameDetailsActivity.java | 17 +-
.../com/gh/gamecenter/HotCardActivity.java | 12 +-
.../java/com/gh/gamecenter/MainActivity.java | 3 +-
.../java/com/gh/gamecenter/NewsActivity.java | 31 +--
.../gh/gamecenter/NewsOrRaidersActivity.java | 12 ++
.../com/gh/gamecenter/OriginalActivity.java | 30 +++
.../gh/gamecenter/SplashScreenActivity.java | 31 ++-
.../com/gh/gamecenter/SuggestionActivity.java | 1 -
.../com/gh/gamecenter/ViewImageActivity.java | 114 +++++++++--
.../adapter/NewsOrRaidersListAdapter.java | 38 ++--
.../gamecenter/adapter/OriginalAdapter.java | 182 +++++++++++-------
.../download/GameUpdateFragment.java | 86 ++++++---
.../gamecenter/entity/GameDetailsEntity.java | 14 --
.../gamecenter/game/Game1FragmentAdapter.java | 14 +-
.../com/gh/gamecenter/game/Game2Fragment.java | 14 ++
.../gamecenter/game/Game2FragmentAdapter.java | 52 +++--
.../gamedetails/GameDetailsFragment.java | 6 +-
.../gamedetails/GameInformationFragment.java | 108 +++++++----
.../gamedetails/GameStrategyFragment.java | 109 +++++++----
.../gamecenter/home/HomeFragmentAdapter.java | 18 +-
.../manager/DataCollectionManager.java | 63 +++++-
.../gh/gamecenter/plugin/Plugin1Fragment.java | 18 +-
.../plugin/Plugin1FragmentAdapter.java | 58 +++---
.../plugin/Plugin2FragmentAdapter.java | 8 +-
.../plugin/Plugin3FragmentAdapter.java | 8 +-
.../search/Search1DetailFragmentAdapter.java | 6 +-
.../Search2GameListFragmentAdapter.java | 6 +-
app/src/main/res/layout/viewimage_item.xml | 16 +-
31 files changed, 744 insertions(+), 365 deletions(-)
rename app/src/main/java/com/gh/common/view/{Gh_ImageView.java => Gh_ImageLayout.java} (82%)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5a5dc0413c..5706edd9cd 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -123,7 +123,6 @@
android:screenOrientation="portrait" />
>() {
- }.getType();
+ Type listType = new TypeToken>() {}.getType();
Gson gson = new Gson();
GameManager manager = new GameManager(getApplicationContext());
List gameList = gson
@@ -179,14 +178,13 @@ public class HotCardActivity extends BaseActivity {
for (GameEntity entity : gameList) {
// 黄壮华 初始化游戏状态 修改2015/8/15
entity.setEntryMap(gameMap.get(entity.getName()));
- adapter.getList().add(entity);
- adapter.notifyItemInserted(adapter.getList().size() - 1);
for (ApkEntity apkEntity : entity.getApk()) {
- manager.addOrUpdate(new GameInfo(
- apkEntity.getPackageName(), entity.getId(), entity
- .getName()));
+ manager.addOrUpdate(new GameInfo(apkEntity.getPackageName(),
+ entity.getId(), entity.getName()));
}
}
+ adapter.getList().addAll(gameList);
+ adapter.notifyItemRangeInserted(adapter.getList().size() - gameList.size(), gameList.size());
}
// 黄壮华 获取游戏位置信息 修改2015/8/15
diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java
index 4c3ff75ced..2baf80e81d 100644
--- a/app/src/main/java/com/gh/gamecenter/MainActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java
@@ -235,8 +235,7 @@ public class MainActivity extends BaseFragmentActivity implements
.getConnectedType(MainActivity.this));
map.put("createdOn",
System.currentTimeMillis() / 1000);
- DataCollectionManager.onEvent(MainActivity.this,
- "download", map);
+ DataCollectionManager.onEvent(MainActivity.this, "download", map);
entryMap.put(PackageUtils.getPackageNameByPath(
getApplicationContext(),
diff --git a/app/src/main/java/com/gh/gamecenter/NewsActivity.java b/app/src/main/java/com/gh/gamecenter/NewsActivity.java
index 98fda54cf9..8b2b6e3222 100644
--- a/app/src/main/java/com/gh/gamecenter/NewsActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/NewsActivity.java
@@ -328,8 +328,7 @@ public class NewsActivity extends BaseActivity implements OnClickListener {
NetworkUtils.getConnectedType(this));
map.put("createdOn",
System.currentTimeMillis() / 1000);
- DataCollectionManager.onEvent(this, "download",
- map);
+ DataCollectionManager.onEvent(this, "download", map);
DownloadEntry entry = new DownloadEntry();
@@ -465,9 +464,7 @@ public class NewsActivity extends BaseActivity implements OnClickListener {
.getConnectedType(NewsActivity.this));
map.put("createdOn",
System.currentTimeMillis() / 1000);
- DataCollectionManager.onEvent(
- NewsActivity.this, "download",
- map);
+ DataCollectionManager.onEvent(NewsActivity.this, "download", map);
DownloadEntry entry = new DownloadEntry();
@@ -767,6 +764,12 @@ public class NewsActivity extends BaseActivity implements OnClickListener {
}
if (gameEntity.getApk() == null) {
essaydetails_ll_bottom.setVisibility(View.GONE);
+ } else if (gameEntity.getApk().isEmpty()) {
+ essaydetails_ll_bottom.setVisibility(View.VISIBLE);
+ essaydetails_tv_download.setText("暂无下载");
+ essaydetails_tv_download.setBackgroundResource(R.drawable.textview_gray_style);
+ essaydetails_tv_download.setTextColor(0xFF999999);
+ essaydetails_tv_download.setClickable(false);
} else if (Config.isShow) {
essaydetails_ll_bottom.setVisibility(View.VISIBLE);
String url = gameEntity.getApk().get(0).getUrl();
@@ -781,6 +784,9 @@ public class NewsActivity extends BaseActivity implements OnClickListener {
}
}
}
+ if (gameEntity != null && "光环助手".equals(gameEntity.getName())) {
+ essaydetails_ll_bottom.setVisibility(View.GONE);
+ }
adapter.notifyItemChanged(0);
}
@@ -1075,19 +1081,11 @@ public class NewsActivity extends BaseActivity implements OnClickListener {
view.loadUrl("javascript:(function(){"
+ "var imgs = document.getElementsByTagName(\"img\");"
+ "for (var i = 0; i < imgs.length - 1; i++) {"
- + " if (typeof(imgs[i].high_quality_image) == 'undefined') {"
- + " window.imagelistener.addImage(imgs[i].src);"
- + " } else {"
- + " window.imagelistener.addImage(imgs[i].high_quality_image);"
- + " }"
+ + " window.imagelistener.addImage(imgs[i].src);"
+ "}"
+ "for (var i = 0; i < imgs.length - 1; i++) {"
+ " imgs[i].onclick = function() {"
- + " if (typeof(this.high_quality_image) == 'undefined') {"
- + " window.imagelistener.openImage(this.src);"
- + " } else {"
- + " window.imagelistener.openImage(this.high_quality_image);"
- + " }"
+ + " window.imagelistener.openImage(this.src);"
+ " }"
+ "}"
+ "var as = document.getElementsByTagName(\"a\");"
@@ -1255,6 +1253,9 @@ public class NewsActivity extends BaseActivity implements OnClickListener {
}
}
}
+ if (gameEntity != null && "光环助手".equals(gameEntity.getName())) {
+ essaydetails_ll_bottom.setVisibility(View.GONE);
+ }
DownloadManager.getInstance(this).addObserver(dataWatcher);
}
diff --git a/app/src/main/java/com/gh/gamecenter/NewsOrRaidersActivity.java b/app/src/main/java/com/gh/gamecenter/NewsOrRaidersActivity.java
index 9fa6b5ce68..c19e1a568e 100644
--- a/app/src/main/java/com/gh/gamecenter/NewsOrRaidersActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/NewsOrRaidersActivity.java
@@ -129,6 +129,18 @@ public class NewsOrRaidersActivity extends BaseActivity {
news_rl_label.setLayoutParams(rparams);
}
}
+
+ @Override
+ public void onScrollStateChanged(RecyclerView recyclerView,
+ int newState) {
+ super.onScrollStateChanged(recyclerView, newState);
+ if (!isDestroy && newState == RecyclerView.SCROLL_STATE_IDLE
+ && layoutManager.findLastVisibleItemPosition() + 1 == adapter.getItemCount()) {
+ if (!adapter.isRemove() && !adapter.isLoading() && !adapter.isNetworkError()) {
+ adapter.addList();
+ }
+ }
+ }
});
news_list.addItemDecoration(new VerticalItemDecoration(this, 1));
}
diff --git a/app/src/main/java/com/gh/gamecenter/OriginalActivity.java b/app/src/main/java/com/gh/gamecenter/OriginalActivity.java
index 214df9d559..5bd6159823 100644
--- a/app/src/main/java/com/gh/gamecenter/OriginalActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/OriginalActivity.java
@@ -25,6 +25,8 @@ public class OriginalActivity extends BaseActivity implements SwipeRefreshLayout
private ProgressBarCircularIndeterminate original_pb_loading;
private LinearLayout reuse_no_connection;
+ private boolean isDestroy;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -33,6 +35,8 @@ public class OriginalActivity extends BaseActivity implements SwipeRefreshLayout
init(contentView, "原创");
+ isDestroy = false;
+
original_swipe_refresh.setColorSchemeResources(R.color.theme_colors);
original_swipe_refresh.setOnRefreshListener(this);
@@ -53,6 +57,19 @@ public class OriginalActivity extends BaseActivity implements SwipeRefreshLayout
original_pb_loading, reuse_no_connection, true);
original_list.setAdapter(adapter);
original_list.addItemDecoration(new VerticalItemDecoration(this, 1));
+ original_list.setOnScrollListener(new RecyclerView.OnScrollListener() {
+ @Override
+ public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
+ super.onScrollStateChanged(recyclerView, newState);
+
+ if (!isDestroy && newState == RecyclerView.SCROLL_STATE_IDLE
+ && layoutManager.findLastVisibleItemPosition() + 1 == adapter.getItemCount()) {
+ if (!adapter.isRemove() && !adapter.isLoading() && !adapter.isNetworkError()) {
+ adapter.addList(adapter.getNewsList().size());
+ }
+ }
+ }
+ });
}
private Handler handler = new Handler();
@@ -70,4 +87,17 @@ public class OriginalActivity extends BaseActivity implements SwipeRefreshLayout
public void onRefresh() {
handler.postDelayed(runnable, 1000);
}
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ isDestroy = true;
+ original_swipe_refresh = null;
+ original_list = null;
+ layoutManager = null;
+ adapter = null;
+ original_pb_loading = null;
+ reuse_no_connection = null;
+ handler = null;
+ }
}
diff --git a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java
index 07ff1b78fa..2cec51c81d 100644
--- a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java
@@ -484,7 +484,7 @@ public class SplashScreenActivity extends BaseActivity {
Collections.sort(list, comparator);
StringBuilder builder = new StringBuilder();
- String packages = null;
+ String packages;
PackageManager.clearUpdateList();
for (int i = 0, sizei = (list.size() / 10) + 1; i < sizei; i++) {
builder.delete(0, builder.length());
@@ -501,15 +501,34 @@ public class SplashScreenActivity extends BaseActivity {
@Override
public void onResponse(JSONArray response) {
- Utils.log("getUpdateList="
- + response.toString());
+ Utils.log("getUpdateList=" + response.toString());
if (response.length() != 0) {
Gson gson = new Gson();
Type listType = new TypeToken>() {}.getType();
- ArrayList games = gson
- .fromJson(response.toString(),
- listType);
+ ArrayList games = gson.fromJson(response.toString(), listType);
+ GameUpdateEntity gameUpdateEntity;
+ for (int i = 0; i < games.size(); i++) {
+ gameUpdateEntity = games.get(i);
+ // 判断是否gh_version是否相同
+ String gh_version = (String) PackageUtils
+ .getMetaData(SplashScreenActivity.this, gameUpdateEntity.getPackageName(), "gh_version");
+ if (gh_version != null) {
+ gh_version = gh_version.substring(2);
+ // 判断gh_version是否相同
+ if (gh_version.equals(gameUpdateEntity.getGhVersion())) {
+ // 判断version是否相同
+ String version = PackageUtils
+ .getVersionByPackage(SplashScreenActivity.this, gameUpdateEntity.getPackageName());
+ if (version.equals(gameUpdateEntity.getVersion())) {
+ // 版本相同,无需显示插件更新,继续查看是否有可更新的游戏包
+ games.remove(i);
+ i--;
+ continue;
+ }
+ }
+ }
+ }
PackageManager.addUpdateList(games);
}
}
diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java
index b839ce0b4e..6bac7525fc 100644
--- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java
@@ -25,7 +25,6 @@ import com.gh.base.AppController;
import com.gh.base.BaseActivity;
import com.gh.common.constant.Config;
import com.gh.common.util.PackageUtils;
-import com.gh.common.util.Utils;
import org.json.JSONException;
import org.json.JSONObject;
diff --git a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java
index 790884af56..a53bdcc86a 100644
--- a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java
@@ -2,21 +2,28 @@ package com.gh.gamecenter;
import android.content.Intent;
import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.RelativeLayout;
+import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
import com.gh.base.BaseActivity;
import com.gh.common.util.DisplayUtils;
import com.gh.common.util.ImageUtils;
-import com.gh.common.view.Gh_ImageView;
-import com.gh.common.view.Gh_ImageView.OnSingleTapListener;
+import com.gh.common.view.Gh_ImageLayout;
+import com.gh.common.view.Gh_ImageLayout.OnSingleTapListener;
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URL;
import java.util.ArrayList;
/**
@@ -39,9 +46,42 @@ public class ViewImageActivity extends BaseActivity implements
private int width;
private String scaleType;
+ private Handler handler = new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ notifyItemChanged(msg.arg1);
+ }
+ };
+
+ private void notifyItemChanged(int position) {
+ Object object = viewimage_vp_show.findViewWithTag(position);
+ if (object != null) {
+ RelativeLayout view = (RelativeLayout) object;
+ ImageView imageView = (ImageView) view.findViewById(R.id.viewimage_iv_show);
+ final ProgressBarCircularIndeterminate progressBar = (ProgressBarCircularIndeterminate) view.findViewById(R.id.viewimage_pb_loading);
+ progressBar.setVisibility(View.VISIBLE);
+ if (scaleType != null) {
+ ImageUtils.getInstance(getApplicationContext()).display(
+ urls.get(position), imageView, ScaleType.FIT_CENTER, new ImageUtils.OnLoadingCompleteListener() {
+ @Override
+ public void onLoadingComplete() {
+ progressBar.setVisibility(View.GONE);
+ }
+ });
+ } else {
+ ImageUtils.getInstance(getApplicationContext()).display(
+ urls.get(position), imageView, new ImageUtils.OnLoadingCompleteListener() {
+ @Override
+ public void onLoadingComplete() {
+ progressBar.setVisibility(View.GONE);
+ }
+ });
+ }
+ }
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
Intent intent = getIntent();
@@ -49,6 +89,10 @@ public class ViewImageActivity extends BaseActivity implements
current = intent.getIntExtra("current", 0);
scaleType = intent.getStringExtra("ScaleType");
+ if (savedInstanceState != null) {
+ current = savedInstanceState.getInt("currentItem", 0);
+ }
+
setContentView(R.layout.activity_viewimage);
DisplayMetrics outMetrics = new DisplayMetrics();
@@ -70,20 +114,26 @@ public class ViewImageActivity extends BaseActivity implements
viewimage_vp_show.addOnPageChangeListener(this);
}
+ @Override
+ protected void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putInt("currentItem", viewimage_vp_show.getCurrentItem());
+ }
+
private class ViewImageAdapter extends PagerAdapter implements
OnSingleTapListener {
@Override
public int getCount() {
-
return urls.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
-
- Gh_ImageView imageView = new Gh_ImageView(ViewImageActivity.this);
- imageView.setOnSingleTapListener(this);
+ Gh_ImageLayout view = (Gh_ImageLayout) View.inflate(container.getContext(),
+ R.layout.viewimage_item, null);
+ view.setOnSingleTapListener(this);
+ ImageView imageView = (ImageView) view.findViewById(R.id.viewimage_iv_show);
if (scaleType != null) {
ImageUtils.getInstance(getApplicationContext()).display(
urls.get(position), imageView, ScaleType.FIT_CENTER);
@@ -91,40 +141,40 @@ public class ViewImageActivity extends BaseActivity implements
ImageUtils.getInstance(getApplicationContext()).display(
urls.get(position), imageView);
}
- container.addView(imageView);
- return imageView;
+ if (!urls.get(position).startsWith("http://image.ghzhushou.com/pic/hq/")) {
+ checkUrl(urls.get(position));
+ }
+ view.setTag(position);
+ container.addView(view);
+ return view;
}
@Override
public boolean isViewFromObject(View view, Object object) {
-
return view == object;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
-
container.removeView((View) object);
object = null;
}
@Override
public void onSingleTap() {
-
finish();
}
+
}
@Override
public void onPageScrollStateChanged(int newState) {
-
}
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
-
if (positionOffset != 0) {
rparams.leftMargin = (int) (width * (positionOffset + position));
viewimage_slide_line.setLayoutParams(rparams);
@@ -133,13 +183,45 @@ public class ViewImageActivity extends BaseActivity implements
@Override
public void onPageSelected(int position) {
-
}
+ private void checkUrl(final String url) {
+ if (!url.startsWith("http://image.ghzhushou.com/pic/")){
+ return;
+ }
+ new Thread(){
+ @Override
+ public void run() {
+ try {
+ String newUrl = "http://image.ghzhushou.com/pic/hq" + url.substring(url.lastIndexOf("/"));
+ HttpURLConnection connection = (HttpURLConnection) new URL(newUrl).openConnection();
+ connection.setRequestMethod("GET");
+ connection.setConnectTimeout(5 * 1000);
+ connection.setReadTimeout(5 * 1000);
+ connection.connect();
+ int code = connection.getResponseCode();
+ if (code == 200) {
+ //图片存在
+ for (int i = 0, size = urls.size(); i < size; i++) {
+ if (urls.get(i).equals(url)){
+ urls.set(i, newUrl);
+ Message msg = new Message();
+ msg.arg1 = i;
+ handler.sendMessage(msg);
+ break;
+ }
+ }
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }.start();
+ }
+
@Override
protected void onDestroy() {
-
super.onDestroy();
viewimage_vp_show = null;
adapter = null;
diff --git a/app/src/main/java/com/gh/gamecenter/adapter/NewsOrRaidersListAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/NewsOrRaidersListAdapter.java
index 5fd17aed52..135cf1b3a5 100644
--- a/app/src/main/java/com/gh/gamecenter/adapter/NewsOrRaidersListAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/adapter/NewsOrRaidersListAdapter.java
@@ -95,7 +95,7 @@ public class NewsOrRaidersListAdapter extends
private boolean isRemove = false;
private boolean isLoading = false;
- private boolean isLoaded = false;
+// private boolean isLoaded = false;
private boolean isNetworkError = false;
private LayoutInflater layoutInflater;
@@ -298,8 +298,8 @@ public class NewsOrRaidersListAdapter extends
}
refreshCount();
showRecyclerView();
- isLoaded = true;
- notifyItemChanged(getItemCount() - 1);
+// isLoaded = true;
+// notifyItemChanged(getItemCount() - 1);
}
}, new Response.ErrorListener() {
@@ -345,8 +345,8 @@ public class NewsOrRaidersListAdapter extends
}
}
isLoading = false;
- isLoaded = true;
- notifyItemChanged(getItemCount() - 1);
+// isLoaded = true;
+// notifyItemChanged(getItemCount() - 1);
}
}, new Response.ErrorListener() {
@@ -763,19 +763,21 @@ public class NewsOrRaidersListAdapter extends
holder.footerview_progressbar.setVisibility(View.GONE);
holder.footerview_tv_loading.setText("加载完毕");
holder.rootView.setClickable(false);
- } else if (isLoaded) {
- holder.footerview_progressbar.setVisibility(View.GONE);
- holder.footerview_tv_loading.setText("点击加载更多");
- holder.rootView.setClickable(true);
- holder.rootView.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- isLoaded = false;
- notifyItemChanged(getItemCount() - 1);
- addList();
- }
- });
- } else {
+ }
+// else if (isLoaded) {
+// holder.footerview_progressbar.setVisibility(View.GONE);
+// holder.footerview_tv_loading.setText("点击加载更多");
+// holder.rootView.setClickable(true);
+// holder.rootView.setOnClickListener(new OnClickListener() {
+// @Override
+// public void onClick(View v) {
+// isLoaded = false;
+// notifyItemChanged(getItemCount() - 1);
+// addList();
+// }
+// });
+// }
+ else {
holder.footerview_progressbar.setVisibility(View.VISIBLE);
holder.footerview_tv_loading.setText("加载中...");
holder.rootView.setClickable(false);
diff --git a/app/src/main/java/com/gh/gamecenter/adapter/OriginalAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/OriginalAdapter.java
index 3b68ae0602..b76a40461d 100644
--- a/app/src/main/java/com/gh/gamecenter/adapter/OriginalAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/adapter/OriginalAdapter.java
@@ -2,12 +2,10 @@ package com.gh.gamecenter.adapter;
import android.app.Activity;
import android.content.Context;
-import android.graphics.Color;
import android.net.Uri;
import android.support.v4.util.ArrayMap;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.RecyclerView;
-import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
@@ -23,14 +21,16 @@ import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.TimeoutError;
import com.android.volley.VolleyError;
+import com.android.volley.toolbox.DiskBasedCache;
import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
import com.gh.base.AppController;
import com.gh.common.constant.Config;
-import com.gh.common.util.DialogUtils;
+import com.gh.common.constant.Constants;
import com.gh.common.util.DisplayUtils;
+import com.gh.common.util.GzipUtils;
import com.gh.common.util.ImageUtils;
import com.gh.common.util.NewsUtils;
-import com.gh.common.util.RandomUtils;
+import com.gh.common.util.TimestampUtils;
import com.gh.common.util.Utils;
import com.gh.gamecenter.OriginalActivity;
import com.gh.gamecenter.R;
@@ -40,20 +40,16 @@ import com.gh.gamecenter.entity.NewsEntity;
import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest;
import com.gh.gamecenter.volley.extended.JsonObjectExtendedRequest;
import com.google.gson.Gson;
-import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
-import org.w3c.dom.Text;
+import java.io.File;
import java.lang.reflect.Type;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
-import java.util.Locale;
-import java.util.Random;
/**
* Created by LGT on 2016/6/3.
@@ -67,14 +63,14 @@ public class OriginalAdapter extends RecyclerView.Adapter slideList;
private List newsList;
private ArrayMap viewsMap;
+ private List urlList;
private boolean isLoading;
private boolean isRemove;
private boolean isNetworkError;
- private boolean isLoaded;
+// private boolean isLoaded;
public OriginalAdapter(Activity act,
RecyclerView recyclerView,
@@ -89,14 +85,14 @@ public class OriginalAdapter extends RecyclerView.Adapter();
newsList = new ArrayList();
viewsMap = new ArrayMap();
+ urlList = new ArrayList();
isLoading = false;
isRemove = false;
isNetworkError = false;
- isLoaded = false;
+// isLoaded = false;
if (isLoad) {
load();
@@ -119,8 +115,9 @@ public class OriginalAdapter extends RecyclerView.Adapter() {
@Override
public void onResponse(JSONArray response) {
@@ -128,10 +125,8 @@ public class OriginalAdapter extends RecyclerView.Adapter>() {}.getType();
Gson gson = new Gson();
List list = gson.fromJson(response.toString(), listType);
- for (int i = 0; i < list.size(); i++) {
- newsList.add(list.get(i));
- notifyItemInserted(newsList.size());
- }
+ newsList.addAll(list);
+ notifyItemRangeInserted(newsList.size() - list.size(), list.size());
if (offset == 0 && game_swipe_refresh.isRefreshing()) {
game_swipe_refresh.setRefreshing(false);
@@ -139,12 +134,13 @@ public class OriginalAdapter extends RecyclerView.Adapter list, final int start) {
+ if (list == null || list.isEmpty()) {
+ return;
+ }
StringBuilder ids = new StringBuilder();
for (int i = 0, size = list.size(); i < size; i++) {
ids.append(list.get(i).getId());
ids.append("-");
}
- final JsonArrayExtendedRequest request = new JsonArrayExtendedRequest(
- Config.HOST + "v1d46/news/views?ids=" + ids.substring(0, ids.length() - 1)
- + "&time=" + System.currentTimeMillis(),
+ final String url = "http://data.ghzhushou.com/v1d46/news/" + ids.substring(0, ids.length() - 1) + "/visit";
+ if (!urlList.contains(url)) {
+ urlList.add(url);
+ }
+ JsonArrayExtendedRequest request = new JsonArrayExtendedRequest(url,
new Response.Listener() {
@Override
public void onResponse(JSONArray response) {
@@ -204,7 +205,6 @@ public class OriginalAdapter extends RecyclerView.Adapter() {
@@ -444,6 +456,9 @@ public class OriginalAdapter extends RecyclerView.Adapter 60 && gap < 3600) {
- return Math.floor(gap / 60) + "分钟前";
- } else if (gap >= 3600 && gap < 86400) {
- return Math.floor(gap / 3600) + "小时前";
- } else {
- SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日", Locale.getDefault());
- return format.format(time * 1000);
- }
- }
+ private static final String DEFAULT_CACHE_DIR = "volley";
- private void setNewsViwes(TextView textView, int views, String time) {
- long now = System.currentTimeMillis() / 1000;
- int gap = (int) (now - Long.valueOf(time)) / 100;
- if (gap >= 40) {
- gap = 40;
+ private void modifyVolleyCache(String id) {
+ String key = null;
+ for (int i = 0, size = urlList.size(); i < size; i++) {
+ if (urlList.get(i).contains(id)) {
+ key = urlList.get(i);
+ break;
+ }
}
- int factor = RandomUtils.nextInt(50 - gap) + (gap >= 40 ? RandomUtils.nextInt(40) : gap);
- if (views == 0) {
- views = 1;
+ if (key == null) {
+ return;
}
- if (factor == 0) {
- factor = 1;
+ File cacheDir = new File(context.getCacheDir(), DEFAULT_CACHE_DIR);
+ DiskBasedCache cache = new DiskBasedCache(cacheDir);
+ byte[] data = cache.getData(key);
+ if (data != null) {
+ try {
+ JSONArray jsonArray = new JSONArray(new String(GzipUtils.decompressBytes(data)));
+ JSONObject jsonObject;
+ for (int i = 0, size = jsonArray.length(); i < size; i++) {
+ jsonObject = jsonArray.getJSONObject(i);
+ if (jsonObject.getString("id").equals(id)) {
+ jsonObject.put("views", jsonObject.getInt("views") + 1);
+ break;
+ }
+ }
+ Utils.log(jsonArray.toString());
+ cache.modify(key, GzipUtils.compressBytes(jsonArray.toString().getBytes()));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ } else {
+ Utils.log("modifyVolleyCache is null");
}
- textView.setText(views * factor + "次浏览");
}
private void setType(TextView textView, String type) {
@@ -496,7 +516,7 @@ public class OriginalAdapter extends RecyclerView.Adapter getNewsList() {
+ return newsList;
+ }
+
}
diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java
index b5753892ee..2d9953f752 100644
--- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java
@@ -222,28 +222,51 @@ public class GameUpdateFragment extends Fragment {
if (response.length() != 0) {
Gson gson = new Gson();
- GameUpdateEntity game = gson.fromJson(
- response.toString(), GameUpdateEntity.class);
- list.add(game);
+ Type listType = new TypeToken>() {}.getType();
+ ArrayList games = gson.fromJson(response.toString(), listType);
- int i = list.size() - 1;
- locationMap.put(list.get(i).getPackageName(), i);
- packageNameMap.put(list.get(i).getUrl(), list
- .get(i).getPackageName());
- successMap.put(i, false);
+ GameUpdateEntity gameUpdateEntity;
+ for (int i = 0; i < games.size(); i++) {
+ gameUpdateEntity = games.get(i);
+ // 判断是否gh_version是否相同
+ String gh_version = (String) PackageUtils
+ .getMetaData(getActivity(), gameUpdateEntity.getPackageName(), "gh_version");
+ if (gh_version != null) {
+ gh_version = gh_version.substring(2);
+ // 判断gh_version是否相同
+ if (gh_version.equals(gameUpdateEntity.getGhVersion())) {
+ // 判断version是否相同
+ String version = PackageUtils
+ .getVersionByPackage(getActivity(), gameUpdateEntity.getPackageName());
+ if (version.equals(gameUpdateEntity.getVersion())) {
+ // 版本相同,无需显示插件更新,继续查看是否有可更新的游戏包
+ games.remove(i);
+ i--;
+ continue;
+ }
+ }
+ }
+ }
+
+ if (games.size() == 1) {
+ GameUpdateEntity game = games.get(0);
+ list.add(game);
+
+ int i = list.size() - 1;
+ locationMap.put(list.get(i).getPackageName(), i);
+ packageNameMap.put(list.get(i).getUrl(), list.get(i).getPackageName());
+ successMap.put(i, false);
+
+ EventBus.getDefault().post(new EBDownloadChanged("update",
+ View.VISIBLE, list.size()));
+ }
PackageManager.addUpdateList(list);
gameupdate_ll_loading.setVisibility(View.GONE);
- EventBus.getDefault().post(
- new EBDownloadChanged("update",
- View.VISIBLE, list.size()));
+ gameupdate_rv_show.getAdapter().notifyDataSetChanged();
- gameupdate_rv_show.getAdapter()
- .notifyDataSetChanged();
-
- if (!list.isEmpty()
- && gameupdate_tv_none.getVisibility() == View.VISIBLE) {
+ if (!list.isEmpty() && gameupdate_tv_none.getVisibility() == View.VISIBLE) {
gameupdate_tv_none.setVisibility(View.GONE);
}
}
@@ -252,7 +275,6 @@ public class GameUpdateFragment extends Fragment {
@Override
public void onErrorResponse(VolleyError error) {
-
gameupdate_ll_loading.setVisibility(View.GONE);
}
});
@@ -346,15 +368,35 @@ public class GameUpdateFragment extends Fragment {
@Override
public void onResponse(JSONArray response) {
- Utils.log("getUpdateList="
- + response.toString());
+ Utils.log("getUpdateList=" + response.toString());
if (response.length() != 0) {
Gson gson = new Gson();
Type listType = new TypeToken>() {}.getType();
- ArrayList games = gson
- .fromJson(response.toString(),
- listType);
+ ArrayList games = gson.fromJson(response.toString(), listType);
+
+ GameUpdateEntity gameUpdateEntity;
+ for (int i = 0; i < games.size(); i++) {
+ gameUpdateEntity = games.get(i);
+ // 判断是否gh_version是否相同
+ String gh_version = (String) PackageUtils
+ .getMetaData(getActivity(), gameUpdateEntity.getPackageName(), "gh_version");
+ if (gh_version != null) {
+ gh_version = gh_version.substring(2);
+ // 判断gh_version是否相同
+ if (gh_version.equals(gameUpdateEntity.getGhVersion())) {
+ // 判断version是否相同
+ String version = PackageUtils
+ .getVersionByPackage(getActivity(), gameUpdateEntity.getPackageName());
+ if (version.equals(gameUpdateEntity.getVersion())) {
+ // 版本相同,无需显示插件更新,继续查看是否有可更新的游戏包
+ games.remove(i);
+ i--;
+ continue;
+ }
+ }
+ }
+ }
PackageManager.addUpdateList(games);
list.addAll(games);
diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameDetailsEntity.java b/app/src/main/java/com/gh/gamecenter/entity/GameDetailsEntity.java
index 2836b33018..8d5fee9681 100644
--- a/app/src/main/java/com/gh/gamecenter/entity/GameDetailsEntity.java
+++ b/app/src/main/java/com/gh/gamecenter/entity/GameDetailsEntity.java
@@ -1,7 +1,5 @@
package com.gh.gamecenter.entity;
-import com.google.gson.annotations.SerializedName;
-
import java.util.ArrayList;
public class GameDetailsEntity {
@@ -11,10 +9,6 @@ public class GameDetailsEntity {
private String remind;
private ArrayList news;
private ArrayList gallery;
-
- @SerializedName("high_quality_image")
- private ArrayList highGallery;
-
private String des;
private String downloadAddWord;
@@ -58,14 +52,6 @@ public class GameDetailsEntity {
this.gallery = gallery;
}
- public ArrayList getHighGallery() {
- return highGallery;
- }
-
- public void setHighGallery(ArrayList highGallery) {
- this.highGallery = highGallery;
- }
-
public String getDes() {
return des;
}
diff --git a/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java
index c6211ea232..e15c2aef23 100644
--- a/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java
@@ -160,21 +160,15 @@ public class Game1FragmentAdapter extends
}
public void processingData(JSONArray response, int offset) {
- Type listType = new TypeToken>() {
- }.getType();
+ Type listType = new TypeToken>() {}.getType();
Gson gson = new Gson();
- List gameList = gson
- .fromJson(response.toString(), listType);
+ List gameList = gson.fromJson(response.toString(), listType);
GameManager manager = new GameManager(context);
if (gameList != null && !gameList.isEmpty()) {
for (GameEntity entity : gameList) {
// 黄壮华 初始化游戏状态 修改2015/8/15
if (!TextUtils.isEmpty(entity.getName())) {
entity.setEntryMap(gameMap.get(entity.getName()));
- list.add(entity);
- if (!fragment.isEverpause()) {
- notifyItemInserted(list.size() - 1);
- }
for (ApkEntity apkEntity : entity.getApk()) {
manager.addOrUpdate(new GameInfo(
apkEntity.getPackageName(), entity.getId(), entity
@@ -182,6 +176,10 @@ public class Game1FragmentAdapter extends
}
}
}
+ list.addAll(gameList);
+ if (!fragment.isEverpause()) {
+ notifyItemRangeInserted(list.size() - gameList.size(), gameList.size());
+ }
}
if (fragment.isEverpause()) {
diff --git a/app/src/main/java/com/gh/gamecenter/game/Game2Fragment.java b/app/src/main/java/com/gh/gamecenter/game/Game2Fragment.java
index f7fdcc04c4..5f6bd1872b 100644
--- a/app/src/main/java/com/gh/gamecenter/game/Game2Fragment.java
+++ b/app/src/main/java/com/gh/gamecenter/game/Game2Fragment.java
@@ -221,6 +221,20 @@ public class Game2Fragment extends Fragment implements OnRefreshListener {
}
}
+ @Override
+ public void onScrollStateChanged(RecyclerView recyclerView,
+ int newState) {
+ super.onScrollStateChanged(recyclerView, newState);
+ if (!isDestroy
+ && newState == RecyclerView.SCROLL_STATE_IDLE
+ && layoutManager.findLastVisibleItemPosition() == adapter
+ .getItemCount() - 1) {
+ if (!adapter.isRemove() && !adapter.isLoading()) {
+ adapter.addList(adapter.getTotalSize());
+ }
+ }
+ }
+
});
recyclerview.addItemDecoration(new VerticalItemDecoration(
getActivity(), 1));
diff --git a/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java
index 56a95f241a..18d472cdd7 100644
--- a/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java
@@ -80,7 +80,8 @@ public class Game2FragmentAdapter extends
private TextView game_tv_label;
private boolean isRemove;
- private boolean isLoaded;
+ private boolean isLoading;
+// private boolean isLoaded;
private boolean isNetworkError;
private boolean isDestory;
@@ -124,7 +125,8 @@ public class Game2FragmentAdapter extends
beforeGameList = new ArrayList();
isRemove = false;
- isLoaded = false;
+ isLoading = false;
+// isLoaded = false;
isNetworkError = false;
isDestory = false;
@@ -132,6 +134,10 @@ public class Game2FragmentAdapter extends
}
public void addList(final int offset) {
+ if (isLoading) {
+ return;
+ }
+ isLoading = true;
JsonArrayExtendedRequest request = new JsonArrayExtendedRequest(
TimestampUtils.addTimestamp(Config.HOST
+ "v1d45/game/xincekapai?limit=10&offset=" + offset,
@@ -142,14 +148,16 @@ public class Game2FragmentAdapter extends
if (!isDestory) {
processingData(response, offset);
}
- isLoaded = true;
- notifyItemChanged(getItemCount() - 1);
+ isLoading = false;
+// isLoaded = true;
+// notifyItemChanged(getItemCount() - 1);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
+ isLoading = false;
// 无网络连接和访问超时
if (error.getClass().equals(NoConnectionError.class)
|| error.getClass().equals(TimeoutError.class)) {
@@ -480,19 +488,21 @@ public class Game2FragmentAdapter extends
holder.footerview_progressbar.setVisibility(View.GONE);
holder.footerview_tv_loading.setText("加载完毕");
holder.rootView.setClickable(false);
- } else if (isLoaded) {
- holder.footerview_progressbar.setVisibility(View.GONE);
- holder.footerview_tv_loading.setText("点击加载更多");
- holder.rootView.setClickable(true);
- holder.rootView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- isLoaded = false;
- notifyItemChanged(getItemCount() - 1);
- addList(getTotalSize());
- }
- });
- } else {
+ }
+// else if (isLoaded) {
+// holder.footerview_progressbar.setVisibility(View.GONE);
+// holder.footerview_tv_loading.setText("点击加载更多");
+// holder.rootView.setClickable(true);
+// holder.rootView.setOnClickListener(new View.OnClickListener() {
+// @Override
+// public void onClick(View v) {
+// isLoaded = false;
+// notifyItemChanged(getItemCount() - 1);
+// addList(getTotalSize());
+// }
+// });
+// }
+ else {
holder.footerview_progressbar.setVisibility(View.VISIBLE);
holder.footerview_tv_loading.setText("加载中...");
holder.rootView.setClickable(false);
@@ -695,6 +705,14 @@ public class Game2FragmentAdapter extends
+ dayAfterTomorrowGameList.size() + beforeGameList.size();
}
+ public boolean isRemove() {
+ return isRemove;
+ }
+
+ public boolean isLoading() {
+ return isLoading;
+ }
+
public List getTodayList() {
return todayGameList;
}
diff --git a/app/src/main/java/com/gh/gamecenter/gamedetails/GameDetailsFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetails/GameDetailsFragment.java
index a9e2fb6fe0..2ca286a47c 100644
--- a/app/src/main/java/com/gh/gamecenter/gamedetails/GameDetailsFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/gamedetails/GameDetailsFragment.java
@@ -1237,11 +1237,7 @@ public class GameDetailsFragment extends Fragment {
DataCollectionManager.onEvent(getActivity(), "click-item", map);
Intent intent = new Intent(getActivity(), ViewImageActivity.class);
- if (entity.getHighGallery() != null && entity.getHighGallery().size() != 0) {
- intent.putStringArrayListExtra("urls", entity.getHighGallery());
- } else {
- intent.putStringArrayListExtra("urls", entity.getGallery());
- }
+ intent.putStringArrayListExtra("urls", entity.getGallery());
intent.putExtra("current", getPosition());
startActivity(intent);
}
diff --git a/app/src/main/java/com/gh/gamecenter/gamedetails/GameInformationFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetails/GameInformationFragment.java
index e8b52cb798..e4fa22644c 100644
--- a/app/src/main/java/com/gh/gamecenter/gamedetails/GameInformationFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/gamedetails/GameInformationFragment.java
@@ -52,11 +52,12 @@ import com.gh.gamecenter.eventbus.EBSlide;
import com.gh.gamecenter.manager.DataCollectionManager;
import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest;
import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
import org.json.JSONArray;
import org.json.JSONException;
-import org.json.JSONObject;
+import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -94,6 +95,7 @@ public class GameInformationFragment extends Fragment {
private int column;
private boolean isNull = false;
+ private boolean isLoading = false;
private boolean isNetworkError = false;
private boolean isDestroy = false;
@@ -204,6 +206,19 @@ public class GameInformationFragment extends Fragment {
super.onScrollStateChanged(recyclerView, newState);
if (newState == OnScrollListener.SCROLL_STATE_IDLE) {
+ int position = adapter.getNewsList().size() + 4;
+ if (!Config.isShow) {
+ position--;
+ }
+ if (linearLayoutManager.findLastVisibleItemPosition() == position
+ && !adapter.isRemove() && !isLoading) {
+ if (currentPosition == -1) {
+ searchFormServer(adapter.getNewsList().size());
+ } else {
+ getGameInformation(adapter.getNewsList().size());
+ }
+ }
+
if (dis > distance) {
EventBus.getDefault().post(new EBSlide(distance, 0, false));
EventBus.getDefault().post(new EBSlide(distance, 2, false));
@@ -266,6 +281,10 @@ public class GameInformationFragment extends Fragment {
}
private void getGameInformation(final int offset, final boolean isFirst) {
+ if (isLoading) {
+ return;
+ }
+ isLoading = true;
if (offset == 0) {
adapter = adapterMap.get(type);
if (adapter == null) {
@@ -291,11 +310,12 @@ public class GameInformationFragment extends Fragment {
@Override
public void onResponse(JSONArray response) {
+ isLoading = false;
if (!isDestroy) {
try {
processingData(response, offset, isFirst);
- adapter.setLoaded(true);
- adapter.notifyItemChanged(adapter.getItemCount() - 2);
+// adapter.setLoaded(true);
+// adapter.notifyItemChanged(adapter.getItemCount() - 2);
} catch (JSONException e) {
e.printStackTrace();
}
@@ -305,6 +325,7 @@ public class GameInformationFragment extends Fragment {
@Override
public void onErrorResponse(VolleyError error) {
+ isLoading = false;
// 无网络连接和访问超时
if (error.getClass().equals(NoConnectionError.class)
|| error.getClass().equals(TimeoutError.class)) {
@@ -334,20 +355,17 @@ public class GameInformationFragment extends Fragment {
}
}
- private void processingData(JSONArray response, int offset, boolean isFirst)
- throws JSONException {
+ private void processingData(JSONArray response, int offset, boolean isFirst) throws JSONException {
+ Type listType = new TypeToken>() {}.getType();
Gson gson = new Gson();
- int size = response.length();
+ List newsList = gson.fromJson(response.toString(), listType);
if (offset == 0) {
fm_gameinformation_ll_loading.setVisibility(View.GONE);
fm_gameinformation_rv_show.setVisibility(View.VISIBLE);
}
- for (int i = 0; i < size; i++) {
- JSONObject jsonObject = response.getJSONObject(i);
- adapter.getNewsList().add(
- gson.fromJson(jsonObject.toString(), NewsEntity.class));
- adapter.notifyItemInserted(adapter.getNewsList().size() + 2);
- }
+ int size = response.length();
+ adapter.getNewsList().addAll(newsList);
+ adapter.notifyItemRangeInserted(adapter.getNewsList().size() - size + 3, size);
if (size < 20) {
adapter.setRemove(true);
adapter.notifyItemRemoved(adapter.getNewsList().size() + 3);
@@ -535,6 +553,10 @@ public class GameInformationFragment extends Fragment {
}
private void searchFormServer(final int offset) {
+ if (isLoading) {
+ return;
+ }
+ isLoading = true;
if (offset == 0) {
EventBus.getDefault().post(new EBSlide(0, 0, false));
EventBus.getDefault().post(new EBSlide(0, 2, false));
@@ -554,11 +576,12 @@ public class GameInformationFragment extends Fragment {
@Override
public void onResponse(JSONArray response) {
+ isLoading = false;
if (!isDestroy) {
try {
processingSearchData(response);
- adapter.setLoaded(true);
- adapter.notifyItemChanged(adapter.getItemCount() - 2);
+// adapter.setLoaded(true);
+// adapter.notifyItemChanged(adapter.getItemCount() - 2);
} catch (JSONException e) {
e.printStackTrace();
}
@@ -568,6 +591,7 @@ public class GameInformationFragment extends Fragment {
@Override
public void onErrorResponse(VolleyError error) {
+ isLoading = false;
// 无网络连接和访问超时
if (error.getClass().equals(NoConnectionError.class)
|| error.getClass().equals(TimeoutError.class)) {
@@ -586,14 +610,12 @@ public class GameInformationFragment extends Fragment {
}
private void processingSearchData(JSONArray response) throws JSONException {
+ Type listType = new TypeToken>() {}.getType();
Gson gson = new Gson();
+ List newsList = gson.fromJson(response.toString(), listType);
int size = response.length();
- for (int i = 0; i < size; i++) {
- JSONObject jsonObject = response.getJSONObject(i);
- adapter.getNewsList().add(
- gson.fromJson(jsonObject.toString(), NewsEntity.class));
- adapter.notifyItemInserted(adapter.getNewsList().size() + 2);
- }
+ adapter.getNewsList().addAll(newsList);
+ adapter.notifyItemRangeInserted(adapter.getNewsList().size() - size + 3, size);
if (size < 20) {
adapter.setRemove(true);
adapter.notifyItemRemoved(adapter.getNewsList().size() + 3);
@@ -607,21 +629,21 @@ public class GameInformationFragment extends Fragment {
private ArrayList newsList;
private boolean isRemove;
- private boolean isLoaded;
+// private boolean isLoaded;
public GameInformationAdapter(ArrayList newsList) {
this.newsList = newsList;
isRemove = false;
- isLoaded = false;
+// isLoaded = false;
}
public ArrayList getNewsList() {
return newsList;
}
- public void setLoaded(boolean isLoaded) {
- this.isLoaded = isLoaded;
- }
+// public void setLoaded(boolean isLoaded) {
+// this.isLoaded = isLoaded;
+// }
public boolean isRemove() {
return isRemove;
@@ -735,23 +757,25 @@ public class GameInformationFragment extends Fragment {
}
}
});
- } else if (isLoaded) {
- viewHolder.item_pb_loading.setVisibility(View.GONE);
- viewHolder.item_tv_loading.setText("点击加载更多");
- viewHolder.itemView.setClickable(true);
- viewHolder.itemView.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- isLoaded = false;
- notifyItemChanged(getItemCount() - 2);
- if (currentPosition == -1) {
- searchFormServer(newsList.size());
- } else {
- getGameInformation(newsList.size());
- }
- }
- });
- } else {
+ }
+// else if (isLoaded) {
+// viewHolder.item_pb_loading.setVisibility(View.GONE);
+// viewHolder.item_tv_loading.setText("点击加载更多");
+// viewHolder.itemView.setClickable(true);
+// viewHolder.itemView.setOnClickListener(new OnClickListener() {
+// @Override
+// public void onClick(View v) {
+// isLoaded = false;
+// notifyItemChanged(getItemCount() - 2);
+// if (currentPosition == -1) {
+// searchFormServer(newsList.size());
+// } else {
+// getGameInformation(newsList.size());
+// }
+// }
+// });
+// }
+ else {
viewHolder.item_pb_loading.setVisibility(View.VISIBLE);
viewHolder.item_tv_loading.setText("加载中...");
viewHolder.itemView.setClickable(false);
diff --git a/app/src/main/java/com/gh/gamecenter/gamedetails/GameStrategyFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetails/GameStrategyFragment.java
index 23e197b1e9..689695b6f0 100644
--- a/app/src/main/java/com/gh/gamecenter/gamedetails/GameStrategyFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/gamedetails/GameStrategyFragment.java
@@ -52,11 +52,12 @@ import com.gh.gamecenter.eventbus.EBSlide;
import com.gh.gamecenter.manager.DataCollectionManager;
import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest;
import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
import org.json.JSONArray;
import org.json.JSONException;
-import org.json.JSONObject;
+import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -94,6 +95,7 @@ public class GameStrategyFragment extends Fragment {
private int column;
private boolean isNull = false;
+ private boolean isLoading = false;
private boolean isNetworkError = false;
private boolean isDestroy = false;
@@ -205,6 +207,19 @@ public class GameStrategyFragment extends Fragment {
super.onScrollStateChanged(recyclerView, newState);
if (newState == OnScrollListener.SCROLL_STATE_IDLE) {
+ int position = adapter.getNewsList().size() + 4;
+ if (!Config.isShow) {
+ position--;
+ }
+ if (linearLayoutManager.findLastVisibleItemPosition() == position
+ && !adapter.isRemove() && !isLoading) {
+ if (currentPosition == -1) {
+ searchFormServer(adapter.getNewsList().size());
+ } else {
+ getGameInformation(adapter.getNewsList().size());
+ }
+ }
+
if (dis > distance) {
EventBus.getDefault().post(new EBSlide(distance, 0, false));
EventBus.getDefault().post(new EBSlide(distance, 1, false));
@@ -267,6 +282,10 @@ public class GameStrategyFragment extends Fragment {
}
private void getGameInformation(final int offset, final boolean isFirst) {
+ if (isLoading) {
+ return;
+ }
+ isLoading = true;
if (offset == 0) {
adapter = adapterMap.get(type);
if (adapter == null) {
@@ -291,11 +310,12 @@ public class GameStrategyFragment extends Fragment {
@Override
public void onResponse(JSONArray response) {
+ isLoading = false;
if (!isDestroy) {
try {
processingData(response, offset, isFirst);
- adapter.setLoaded(true);
- adapter.notifyItemChanged(adapter.getItemCount() - 2);
+// adapter.setLoaded(true);
+// adapter.notifyItemChanged(adapter.getItemCount() - 2);
} catch (JSONException e) {
e.printStackTrace();
}
@@ -305,6 +325,7 @@ public class GameStrategyFragment extends Fragment {
@Override
public void onErrorResponse(VolleyError error) {
+ isLoading = false;
// 无网络连接和访问超时
if (error.getClass().equals(NoConnectionError.class)
|| error.getClass().equals(TimeoutError.class)) {
@@ -336,18 +357,16 @@ public class GameStrategyFragment extends Fragment {
private void processingData(JSONArray response, int offset, boolean isFirst)
throws JSONException {
- Gson gson = new Gson();
- int size = response.length();
if (offset == 0) {
fm_gamestrategy_ll_loading.setVisibility(View.GONE);
fm_gamestrategy_rv_show.setVisibility(View.VISIBLE);
}
- for (int i = 0; i < size; i++) {
- JSONObject jsonObject = response.getJSONObject(i);
- adapter.getNewsList().add(
- gson.fromJson(jsonObject.toString(), NewsEntity.class));
- adapter.notifyItemInserted(adapter.getNewsList().size() + 2);
- }
+ Type listType = new TypeToken>() {}.getType();
+ Gson gson = new Gson();
+ List newsList = gson.fromJson(response.toString(), listType);
+ int size = response.length();
+ adapter.getNewsList().addAll(newsList);
+ adapter.notifyItemRangeInserted(adapter.getNewsList().size() - size + 3, size);
if (size < 20) {
adapter.setRemove(true);
adapter.notifyItemRemoved(adapter.getNewsList().size() + 3);
@@ -541,6 +560,10 @@ public class GameStrategyFragment extends Fragment {
}
private void searchFormServer(int offset) {
+ if (isLoading) {
+ return;
+ }
+ isLoading = true;
if (offset == 0) {
EventBus.getDefault().post(new EBSlide(0, 0, false));
EventBus.getDefault().post(new EBSlide(0, 1, false));
@@ -560,11 +583,12 @@ public class GameStrategyFragment extends Fragment {
@Override
public void onResponse(JSONArray response) {
+ isLoading = false;
if (!isDestroy) {
try {
processingSearchData(response);
- adapter.setLoaded(true);
- adapter.notifyItemChanged(adapter.getItemCount() - 2);
+// adapter.setLoaded(true);
+// adapter.notifyItemChanged(adapter.getItemCount() - 2);
} catch (JSONException e) {
e.printStackTrace();
@@ -575,6 +599,7 @@ public class GameStrategyFragment extends Fragment {
@Override
public void onErrorResponse(VolleyError error) {
+ isLoading = false;
// 无网络连接和访问超时
if (error.getClass().equals(NoConnectionError.class)
|| error.getClass().equals(TimeoutError.class)) {
@@ -593,14 +618,12 @@ public class GameStrategyFragment extends Fragment {
}
private void processingSearchData(JSONArray response) throws JSONException {
+ Type listType = new TypeToken>() {}.getType();
Gson gson = new Gson();
+ List newsList = gson.fromJson(response.toString(), listType);
int size = response.length();
- for (int i = 0; i < size; i++) {
- JSONObject jsonObject = response.getJSONObject(i);
- adapter.getNewsList().add(
- gson.fromJson(jsonObject.toString(), NewsEntity.class));
- adapter.notifyItemInserted(adapter.getNewsList().size() + 2);
- }
+ adapter.getNewsList().addAll(newsList);
+ adapter.notifyItemRangeInserted(adapter.getNewsList().size() - size + 3, size);
if (size < 20) {
adapter.setRemove(true);
adapter.notifyItemRemoved(adapter.getNewsList().size() + 3);
@@ -614,21 +637,21 @@ public class GameStrategyFragment extends Fragment {
private ArrayList newsList;
private boolean isRemove;
- private boolean isLoaded;
+// private boolean isLoaded;
public GameStrategyAdapter(ArrayList newsList) {
this.newsList = newsList;
isRemove = false;
- isLoaded = false;
+// isLoaded = false;
}
public ArrayList getNewsList() {
return newsList;
}
- public void setLoaded(boolean isLoaded) {
- this.isLoaded = isLoaded;
- }
+// public void setLoaded(boolean isLoaded) {
+// this.isLoaded = isLoaded;
+// }
public boolean isRemove() {
return isRemove;
@@ -748,24 +771,26 @@ public class GameStrategyFragment extends Fragment {
}
}
});
- } else if (isLoaded) {
- viewHolder.item_pb_loading.setVisibility(View.GONE);
- viewHolder.item_tv_loading.setText("点击加载更多");
- viewHolder.itemView.setClickable(true);
- viewHolder.itemView
- .setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- isLoaded = false;
- notifyItemChanged(getItemCount() - 2);
- if (currentPosition == -1) {
- searchFormServer(newsList.size());
- } else {
- getGameInformation(newsList.size());
- }
- }
- });
- } else {
+ }
+// else if (isLoaded) {
+// viewHolder.item_pb_loading.setVisibility(View.GONE);
+// viewHolder.item_tv_loading.setText("点击加载更多");
+// viewHolder.itemView.setClickable(true);
+// viewHolder.itemView
+// .setOnClickListener(new OnClickListener() {
+// @Override
+// public void onClick(View v) {
+// isLoaded = false;
+// notifyItemChanged(getItemCount() - 2);
+// if (currentPosition == -1) {
+// searchFormServer(newsList.size());
+// } else {
+// getGameInformation(newsList.size());
+// }
+// }
+// });
+// }
+ else {
viewHolder.item_pb_loading.setVisibility(View.VISIBLE);
viewHolder.item_tv_loading.setText("加载中...");
viewHolder.itemView.setClickable(false);
diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.java
index ee58d9f0b2..f8cdbea458 100644
--- a/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.java
@@ -1509,7 +1509,23 @@ public class HomeFragmentAdapter extends
} else if (position == position_yuedujingxuan) {
title.setText("阅读精选");
thumb.setBackgroundResource(R.drawable.home_yuedujingxuan);
- link.setVisibility(View.GONE);
+ link.setVisibility(View.VISIBLE);
+ link.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ DataUtils.onEvent(context, "更多>", "阅读精选");
+
+ Map map = new HashMap();
+ map.put("location", "阅读精选-更多");
+ map.put("createOn", System.currentTimeMillis() / 1000);
+ map.put("page", "主页");
+ DataCollectionManager.onEvent(context, "click-item", map);
+
+ Intent intent = new Intent(context, OriginalActivity.class);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(intent);
+ }
+ });
} else if (position == position_remenkapai) {
title.setText("热门卡牌");
thumb.setBackgroundResource(R.drawable.home_remenkapai);
diff --git a/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java b/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java
index f600bc33e3..51e52dfd0b 100644
--- a/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java
+++ b/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java
@@ -1,7 +1,6 @@
package com.gh.gamecenter.manager;
import android.content.Context;
-import android.util.Log;
import com.android.volley.Request.Method;
import com.android.volley.Response;
@@ -34,6 +33,7 @@ public class DataCollectionManager {
private DataCollectionManager(Context context) {
mContext = context;
dao = new DataCollectionDao(mContext);
+ isUploading = false;
}
public static DataCollectionManager getInstance(Context context) {
@@ -64,8 +64,11 @@ public class DataCollectionManager {
onEvent(context, entity, isUpload);
}
- public static void onEvent(Context context, String type,
- Map map) {
+ public static void onEvent(Context context, String type, Map map) {
+ if ("news".equals(type) || "download".equals(type)) {
+ DataCollectionManager.getInstance(context).realTimeUpload(type, map);
+ return;
+ }
onEvent(context, type, new JSONObject(map).toString(), true);
}
@@ -119,6 +122,43 @@ public class DataCollectionManager {
}
}
+ /*
+ * 实时上传
+ */
+ private void realTimeUpload(String type, Map map) {
+ String version = PackageUtils.getVersion(mContext);
+ String user = DeviceUtils.getDeviceID(mContext);
+ String channel = (String) PackageUtils.getMetaData(mContext,
+ mContext.getPackageName(), "TD_CHANNEL_ID");
+ map.put("version", version);
+ map.put("user", user);
+ map.put("channel", channel);
+ Map params = new HashMap();
+ params.put("type", type);
+ params.put("data", new JSONObject(map).toString());
+ String url = "http://data.ghzhushou.com/collection/upload2";
+ JSONObject body = new JSONObject(params);
+ JsonObjectExtendedRequest request = new JsonObjectExtendedRequest(
+ Method.POST, url, body.toString(),
+ new Response.Listener() {
+ @Override
+ public void onResponse(JSONObject response) {
+ Utils.log("realTimeUpload = " + response);
+ }
+ },
+ new Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+ // 上传失败,检查网络状态,继续上传
+ Utils.log("realTimeUpload = " + error);
+ if (error.networkResponse != null) {
+ Utils.log(new String(error.networkResponse.data));
+ }
+ }
+ });
+ AppController.addToRequestQueue(request, DataCollectionManager.class);
+ }
+
/*
* 统计点击数据
*/
@@ -158,10 +198,15 @@ public class DataCollectionManager {
}
}
+ private boolean isUploading;
+
// 上传数据
- private void upload(List list)
- throws JSONException {
- String url = "http://114.215.139.210/data/collection/upload";
+ private void upload(List list) throws JSONException {
+ if (isUploading) {
+ return;
+ }
+ isUploading = true;
+ String url = "http://data.ghzhushou.com/collection/upload";
final List ids = new ArrayList();
@@ -214,7 +259,7 @@ public class DataCollectionManager {
new Response.Listener() {
@Override
public void onResponse(JSONObject response) {
-
+ isUploading = false;
Utils.log(response);
try {
if ("success".equals(response.getString("status"))) {
@@ -222,14 +267,13 @@ public class DataCollectionManager {
dao.delete(ids);
}
} catch (JSONException e) {
-
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
-
+ isUploading = false;
// 上传失败,检查网络状态,继续上传
Utils.log(error);
if (error.networkResponse != null) {
@@ -237,7 +281,6 @@ public class DataCollectionManager {
}
}
});
- Log.e("result", new String(request.getBody()));
AppController.addToRequestQueue(request, DataCollectionManager.class);
}
diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Plugin1Fragment.java b/app/src/main/java/com/gh/gamecenter/plugin/Plugin1Fragment.java
index e299962007..472c2c8610 100644
--- a/app/src/main/java/com/gh/gamecenter/plugin/Plugin1Fragment.java
+++ b/app/src/main/java/com/gh/gamecenter/plugin/Plugin1Fragment.java
@@ -51,6 +51,7 @@ public class Plugin1Fragment extends Fragment implements OnRefreshListener {
private View view;
private RecyclerView recyclerview;
+ private LinearLayoutManager layoutManager;
private SwipeRefreshLayout game_swipe_refresh;
private Plugin1FragmentAdapter adapter;
private LinearLayout reuse_no_connection;
@@ -144,7 +145,8 @@ public class Plugin1Fragment extends Fragment implements OnRefreshListener {
recyclerview = (RecyclerView) view.findViewById(R.id.game_list);
recyclerview.setHasFixedSize(true);
- recyclerview.setLayoutManager(new LinearLayoutManager(getActivity()));
+ layoutManager = new LinearLayoutManager(getActivity());
+ recyclerview.setLayoutManager(layoutManager);
// 黄壮华 添加 初始化游戏状态 修改2015/8/21
DownloadItemUtils.initializeGameMap(getActivity(), gameMap);
@@ -171,6 +173,20 @@ public class Plugin1Fragment extends Fragment implements OnRefreshListener {
dismissEntity, game_pb_loading, false);
recyclerview.setAdapter(adapter);
recyclerview.addItemDecoration(new VerticalItemDecoration(getActivity(), 1));
+ recyclerview.setOnScrollListener(new RecyclerView.OnScrollListener() {
+ @Override
+ public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
+ super.onScrollStateChanged(recyclerView, newState);
+ if (newState == RecyclerView.SCROLL_STATE_IDLE
+ && layoutManager.findLastVisibleItemPosition() == 1 + adapter
+ .getList().size()) {
+ if (!adapter.isRemove() && !adapter.isLoading()) {
+ adapter.addList(adapter.getList().size());
+ }
+ }
+ }
+
+ });
EventBus.getDefault().register(this);
}
diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Plugin1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/plugin/Plugin1FragmentAdapter.java
index eeb80a99a4..d5f06e3c36 100644
--- a/app/src/main/java/com/gh/gamecenter/plugin/Plugin1FragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/plugin/Plugin1FragmentAdapter.java
@@ -82,7 +82,7 @@ public class Plugin1FragmentAdapter extends
private boolean isRemove;
private boolean isLoading;
- private boolean isLoaded;
+// private boolean isLoaded;
private boolean isNetworkError;
private boolean isSlideError;
private boolean isListError;
@@ -131,7 +131,7 @@ public class Plugin1FragmentAdapter extends
isRemove = false;
isLoading = false;
- isLoaded = false;
+// isLoaded = false;
isNetworkError = false;
isSlideError = false;
isListError = false;
@@ -149,7 +149,6 @@ public class Plugin1FragmentAdapter extends
@Override
public void run() {
initSlide(true);
- addList(0);
}
};
@@ -176,6 +175,8 @@ public class Plugin1FragmentAdapter extends
}
notifyItemChanged(0);
}
+
+ addList(0);
}
}, new Response.ErrorListener() {
@@ -192,6 +193,8 @@ public class Plugin1FragmentAdapter extends
showView();
}
}
+
+ addList(0);
}
});
AppController.addToRequestQueue(slideRequest, Plugin1Fragment.class);
@@ -211,8 +214,8 @@ public class Plugin1FragmentAdapter extends
public void onResponse(JSONArray response) {
processingData(response, offset);
isLoading = false;
- isLoaded = true;
- notifyItemChanged(getItemCount() - 1);
+// isLoaded = true;
+// notifyItemChanged(getItemCount() - 1);
}
}, new Response.ErrorListener() {
@@ -280,16 +283,15 @@ public class Plugin1FragmentAdapter extends
for (GameEntity entity : gameList) {
// 黄壮华 初始化游戏状态 修改2015/8/15
entity.setEntryMap(gameMap.get(entity.getName()));
- list.add(entity);
- if (!fragment.isHidden() && !fragment.isEverpause()) {
- final int size = list.size();
- notifyItemInserted(size);
- }
for (ApkEntity apkEntity : entity.getApk()) {
manager.addOrUpdate(new GameInfo(apkEntity.getPackageName(),
entity.getId(), entity.getName()));
}
}
+ list.addAll(gameList);
+ if (!fragment.isHidden() && !fragment.isEverpause()) {
+ notifyItemRangeInserted(list.size() - gameList.size() + 1, gameList.size());
+ }
}
if (fragment.isHidden() || fragment.isEverpause()) {
@@ -452,19 +454,21 @@ public class Plugin1FragmentAdapter extends
holder.footerview_progressbar.setVisibility(View.GONE);
holder.footerview_tv_loading.setText("加载完毕");
holder.rootView.setClickable(false);
- } else if (isLoaded) {
- holder.footerview_progressbar.setVisibility(View.GONE);
- holder.footerview_tv_loading.setText("点击加载更多");
- holder.rootView.setClickable(true);
- holder.rootView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- isLoaded = false;
- notifyItemChanged(getItemCount() - 1);
- addList(list.size());
- }
- });
- } else {
+ }
+// else if (isLoaded) {
+// holder.footerview_progressbar.setVisibility(View.GONE);
+// holder.footerview_tv_loading.setText("点击加载更多");
+// holder.rootView.setClickable(true);
+// holder.rootView.setOnClickListener(new View.OnClickListener() {
+// @Override
+// public void onClick(View v) {
+// isLoaded = false;
+// notifyItemChanged(getItemCount() - 1);
+// addList(list.size());
+// }
+// });
+// }
+ else {
holder.footerview_progressbar.setVisibility(View.VISIBLE);
holder.footerview_tv_loading.setText("加载中...");
holder.rootView.setClickable(false);
@@ -576,6 +580,14 @@ public class Plugin1FragmentAdapter extends
}
}
+ public boolean isRemove() {
+ return isRemove;
+ }
+
+ public boolean isLoading() {
+ return isLoading;
+ }
+
public List getList() {
return list;
}
diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Plugin2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/plugin/Plugin2FragmentAdapter.java
index 0b17054817..810bd02737 100644
--- a/app/src/main/java/com/gh/gamecenter/plugin/Plugin2FragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/plugin/Plugin2FragmentAdapter.java
@@ -206,15 +206,15 @@ public class Plugin2FragmentAdapter extends
for (GameEntity entity : gameList) {
// 黄壮华 初始化游戏状态 修改2015/8/15
entity.setEntryMap(gameMap.get(entity.getName()));
- list.add(entity);
- if (!fragment.isHidden() && !fragment.isEverpause()) {
- notifyItemInserted(list.size() - 1);
- }
for (ApkEntity apkEntity : entity.getApk()) {
manager.addOrUpdate(new GameInfo(apkEntity.getPackageName(),
entity.getId(), entity.getName()));
}
}
+ list.addAll(gameList);
+ if (!fragment.isHidden() && !fragment.isEverpause()) {
+ notifyItemRangeInserted(list.size() - gameList.size(), gameList.size());
+ }
}
if (fragment.isHidden() || fragment.isEverpause()) {
diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Plugin3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/plugin/Plugin3FragmentAdapter.java
index 080272db78..7f375efedd 100644
--- a/app/src/main/java/com/gh/gamecenter/plugin/Plugin3FragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/plugin/Plugin3FragmentAdapter.java
@@ -214,15 +214,15 @@ public class Plugin3FragmentAdapter extends
for (GameEntity entity : gameList) {
// 黄壮华 初始化游戏状态 修改2015/8/15
entity.setEntryMap(gameMap.get(entity.getName()));
- list.add(entity);
- if (!fragment.isHidden() && !fragment.isEverpause()) {
- notifyItemInserted(list.size() - 1);
- }
for (ApkEntity apkEntity : entity.getApk()) {
manager.addOrUpdate(new GameInfo(apkEntity.getPackageName(),
entity.getId(), entity.getName()));
}
}
+ list.addAll(gameList);
+ if (!fragment.isHidden() && !fragment.isEverpause()) {
+ notifyItemRangeInserted(list.size() - gameList.size(), gameList.size());
+ }
}
if (fragment.isHidden() || fragment.isEverpause()) {
diff --git a/app/src/main/java/com/gh/gamecenter/search/Search1DetailFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/Search1DetailFragmentAdapter.java
index 08a3ce71cf..7682374d7c 100644
--- a/app/src/main/java/com/gh/gamecenter/search/Search1DetailFragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/search/Search1DetailFragmentAdapter.java
@@ -100,10 +100,8 @@ public class Search1DetailFragmentAdapter extends RecyclerView.Adapter list = gson.fromJson(response.toString(), listType);
if (list != null && list.size() > 0) {
search_detail.setVisibility(View.VISIBLE);
- for (int i = 0, size = list.size(); i < size; i++) {
- gameList.add(list.get(i));
- notifyItemInserted(gameList.size() + 1);
- }
+ gameList.addAll(list);
+ notifyItemRangeInserted(gameList.size() - list.size(), list.size());
} else {
search_nogame.setVisibility(View.VISIBLE);
}
diff --git a/app/src/main/java/com/gh/gamecenter/search/Search2GameListFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/Search2GameListFragmentAdapter.java
index cdca065f61..6225b67489 100644
--- a/app/src/main/java/com/gh/gamecenter/search/Search2GameListFragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/search/Search2GameListFragmentAdapter.java
@@ -102,10 +102,8 @@ public class Search2GameListFragmentAdapter extends
List list = gson.fromJson(response.toString(), listType);
if (list != null && list.size() > 0) {
search_detail.setVisibility(View.VISIBLE);
- for (int i = 0, size = list.size(); i < size; i++) {
- gameList.add(list.get(i));
- notifyItemInserted(gameList.size() - 1);
- }
+ gameList.addAll(list);
+ notifyItemRangeInserted(gameList.size() - list.size(), list.size());
} else {
search_nogame.setVisibility(View.VISIBLE);
}
diff --git a/app/src/main/res/layout/viewimage_item.xml b/app/src/main/res/layout/viewimage_item.xml
index ab721c1552..b96de8d431 100644
--- a/app/src/main/res/layout/viewimage_item.xml
+++ b/app/src/main/res/layout/viewimage_item.xml
@@ -1,12 +1,20 @@
-
-
-
\ No newline at end of file
+
+
+
\ No newline at end of file