entrance检查与统一
This commit is contained in:
@ -40,6 +40,8 @@ public class BaseActivity extends Activity implements OnCallBackListener {
|
||||
|
||||
private SystemBarTintManager tintManager;
|
||||
|
||||
protected String entrance;
|
||||
|
||||
private boolean isPause;
|
||||
|
||||
@Override
|
||||
@ -48,6 +50,10 @@ public class BaseActivity extends Activity implements OnCallBackListener {
|
||||
Utils.log(this.getClass().getSimpleName());
|
||||
AppController.getInstance().addActivity(this);
|
||||
EventBus.getDefault().register(this);
|
||||
entrance = getIntent().getStringExtra("entrance");
|
||||
if (getIntent().getBundleExtra("data") != null) {
|
||||
entrance = getIntent().getBundleExtra("data").getString("entrance");
|
||||
}
|
||||
}
|
||||
|
||||
protected void init(View contentView, String title) {
|
||||
|
||||
@ -335,8 +335,7 @@ public abstract class BaseDetailActivity extends BaseActivity implements View.On
|
||||
});
|
||||
}
|
||||
} else {
|
||||
DownloadDialog.getInstance(this)
|
||||
.showPopupWindow(v, gameEntity, entrance, name + ":" + title);
|
||||
DownloadDialog.getInstance(this).showPopupWindow(v, gameEntity, entrance, name + ":" + title);
|
||||
}
|
||||
} else {
|
||||
toast("稍等片刻~!游戏正在上传中...");
|
||||
@ -346,6 +345,7 @@ public abstract class BaseDetailActivity extends BaseActivity implements View.On
|
||||
if ("下载中".equals(str)) {
|
||||
Intent intent = new Intent(this, DownloadManagerActivity.class);
|
||||
intent.putExtra("url", gameEntity.getApk().get(0).getUrl());
|
||||
intent.putExtra("entrance", entrance + "+(" + name + "[" + title + "])");
|
||||
startActivity(intent);
|
||||
} else if ("安装".equals(str)) {
|
||||
PackageUtils.launchSetup(this, mDownloadEntity.getPath());
|
||||
|
||||
@ -37,6 +37,8 @@ import de.greenrobot.event.EventBus;
|
||||
|
||||
public class BaseFragmentActivity extends FragmentActivity {
|
||||
|
||||
protected String entrance;
|
||||
|
||||
private boolean isPause;
|
||||
|
||||
@Override
|
||||
@ -45,6 +47,10 @@ public class BaseFragmentActivity extends FragmentActivity {
|
||||
Utils.log(this.getClass().getSimpleName());
|
||||
AppController.getInstance().addActivity(this);
|
||||
EventBus.getDefault().register(this);
|
||||
entrance = getIntent().getStringExtra("entrance");
|
||||
if (getIntent().getBundleExtra("data") != null) {
|
||||
entrance = getIntent().getBundleExtra("data").getString("entrance");
|
||||
}
|
||||
}
|
||||
|
||||
public void init(View contentView, String title) {
|
||||
|
||||
@ -126,32 +126,38 @@ public class HomeFragment extends Fragment implements View.OnClickListener {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
final int id = v.getId();
|
||||
if (id == R.id.actionbar_notification) {
|
||||
DataUtils.onEvent(getActivity(), "主页", "关注图标");
|
||||
DataCollectionUtils.uploadClick(getActivity(), "关注图标", "主页");
|
||||
|
||||
startActivity(new Intent(getActivity(), ConcernActivity.class));
|
||||
} else if (id == R.id.actionbar_rl_download) {
|
||||
if (id == R.id.actionbar_rl_download) {
|
||||
DataUtils.onEvent(getActivity(), "主页", "下载图标");
|
||||
DataCollectionUtils.uploadClick(getActivity(), "下载图标", "主页");
|
||||
|
||||
startActivity(new Intent(getActivity(), DownloadManagerActivity.class));
|
||||
Intent intent = new Intent(getActivity(), DownloadManagerActivity.class);
|
||||
intent.putExtra("entrance", "(工具栏)");
|
||||
startActivity(intent);
|
||||
} else if (id == R.id.actionbar_iv_search) {
|
||||
DataUtils.onEvent(getActivity(), "主页", "搜索图标");
|
||||
DataCollectionUtils.uploadClick(getActivity(), "搜索图标", "主页");
|
||||
|
||||
Intent intent = new Intent(getActivity(), SearchActivity.class);
|
||||
intent.putExtra("clicked", true);
|
||||
intent.putExtra("hint", hint);
|
||||
intent.putExtra("entrance", "(工具栏)");
|
||||
startActivity(intent);
|
||||
} else if (id == R.id.actionbar_search_input) {
|
||||
DataUtils.onEvent(getActivity(), "主页", "搜索框");
|
||||
DataCollectionUtils.uploadClick(getActivity(), "搜索框", "主页");
|
||||
|
||||
Intent goSearch = new Intent(getActivity(), SearchActivity.class);
|
||||
goSearch.putExtra("clicked", false);
|
||||
goSearch.putExtra("hint", hint);
|
||||
startActivity(goSearch);
|
||||
} else if (id == R.id.actionbar_iv_search) {
|
||||
DataUtils.onEvent(getActivity(), "主页", "搜索图标");
|
||||
DataCollectionUtils.uploadClick(getActivity(), "搜索图标", "主页");
|
||||
Intent intent = new Intent(getActivity(), SearchActivity.class);
|
||||
intent.putExtra("clicked", false);
|
||||
intent.putExtra("hint", hint);
|
||||
intent.putExtra("entrance", "(工具栏)");
|
||||
startActivity(intent);
|
||||
} else if (id == R.id.actionbar_notification) {
|
||||
DataUtils.onEvent(getActivity(), "主页", "关注图标");
|
||||
DataCollectionUtils.uploadClick(getActivity(), "关注图标", "主页");
|
||||
|
||||
Intent searchIntent = new Intent(getActivity(), SearchActivity.class);
|
||||
searchIntent.putExtra("clicked", true);
|
||||
searchIntent.putExtra("hint", hint);
|
||||
startActivity(searchIntent);
|
||||
Intent intent = new Intent(getActivity(), ConcernActivity.class);
|
||||
intent.putExtra("entrance", "(工具栏)");
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -20,42 +20,40 @@ import java.util.List;
|
||||
**/
|
||||
public class ConcernContentUtils {
|
||||
|
||||
public static void addContentPic(int width, LinearLayout linearLayout, List<String> list, Context context) {
|
||||
public static void addContentPic(Context context, LinearLayout linearLayout, List<String> list,
|
||||
String entrance, int width) {
|
||||
int count = list.size();
|
||||
LinearLayout ll;
|
||||
int index = 0;
|
||||
for (int i = 0, size = (int) Math.ceil(list.size() / 3.0f); i < size; i++) {
|
||||
switch (count % 3) {
|
||||
case 0:
|
||||
ll = new LinearLayout(context);
|
||||
ll.setOrientation(LinearLayout.HORIZONTAL);
|
||||
for (int j = 0; j < 3; j++) {
|
||||
ll.addView(getImageView(list, index, width, 0, context));
|
||||
index += 1;
|
||||
}
|
||||
linearLayout.addView(ll);
|
||||
count -= 3;
|
||||
break;
|
||||
case 1:
|
||||
linearLayout.addView(getImageView(list, index, width, 1, context));
|
||||
count -= 1;
|
||||
int type = count % 3;
|
||||
if (type == 0) {
|
||||
LinearLayout ll = new LinearLayout(context);
|
||||
ll.setOrientation(LinearLayout.HORIZONTAL);
|
||||
for (int j = 0; j < 3; j++) {
|
||||
ll.addView(getImageView(context, list, entrance, index, width, 0));
|
||||
index += 1;
|
||||
break;
|
||||
case 2:
|
||||
ll = new LinearLayout(context);
|
||||
ll.setOrientation(LinearLayout.HORIZONTAL);
|
||||
for (int j = 0; j < 2; j++) {
|
||||
ll.addView(getImageView(list, index, width, 2, context));
|
||||
index += 1;
|
||||
}
|
||||
linearLayout.addView(ll);
|
||||
count -= 2;
|
||||
break;
|
||||
}
|
||||
linearLayout.addView(ll);
|
||||
count -= 3;
|
||||
} else if (type == 1) {
|
||||
linearLayout.addView(getImageView(context, list, entrance, index, width, 1));
|
||||
count -= 1;
|
||||
index += 1;
|
||||
} else if (type == 2) {
|
||||
LinearLayout ll = new LinearLayout(context);
|
||||
ll.setOrientation(LinearLayout.HORIZONTAL);
|
||||
for (int j = 0; j < 2; j++) {
|
||||
ll.addView(getImageView(context, list, entrance, index, width, 2));
|
||||
index += 1;
|
||||
}
|
||||
linearLayout.addView(ll);
|
||||
count -= 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static SimpleDraweeView getImageView(final List<String> list, final int position, int width, int type, final Context context) {
|
||||
private static SimpleDraweeView getImageView(final Context context, final List<String> list, final String entrance,
|
||||
final int position, int width, int type) {
|
||||
SimpleDraweeView imageView;
|
||||
if (type == 0) {
|
||||
imageView = new SimpleDraweeView(context);
|
||||
@ -65,14 +63,16 @@ public class ConcernContentUtils {
|
||||
DisplayUtils.dip2px(context, 2), DisplayUtils.dip2px(context, 4));
|
||||
lparams.weight = 1;
|
||||
imageView.setLayoutParams(lparams);
|
||||
ImageUtils.getInstance().display(context.getResources(), imageView, ScalingUtils.ScaleType.CENTER_CROP, list.get(position));
|
||||
ImageUtils.getInstance().display(context.getResources(), imageView,
|
||||
ScalingUtils.ScaleType.CENTER_CROP, list.get(position));
|
||||
} else if (type == 1) {
|
||||
imageView = new SimpleDraweeView(context);
|
||||
LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(width, width / 2);
|
||||
lparams.setMargins(DisplayUtils.dip2px(context, 2), 0,
|
||||
DisplayUtils.dip2px(context, 2), DisplayUtils.dip2px(context, 4));
|
||||
imageView.setLayoutParams(lparams);
|
||||
ImageUtils.getInstance().display(context.getResources(), imageView, ScalingUtils.ScaleType.CENTER_CROP, list.get(position));
|
||||
ImageUtils.getInstance().display(context.getResources(), imageView,
|
||||
ScalingUtils.ScaleType.CENTER_CROP, list.get(position));
|
||||
} else {
|
||||
imageView = new SimpleDraweeView(context);
|
||||
LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(
|
||||
@ -81,7 +81,8 @@ public class ConcernContentUtils {
|
||||
DisplayUtils.dip2px(context, 2), DisplayUtils.dip2px(context, 4));
|
||||
lparams.weight = 1;
|
||||
imageView.setLayoutParams(lparams);
|
||||
ImageUtils.getInstance().display(context.getResources(), imageView, ScalingUtils.ScaleType.CENTER_CROP, list.get(position));
|
||||
ImageUtils.getInstance().display(context.getResources(), imageView,
|
||||
ScalingUtils.ScaleType.CENTER_CROP, list.get(position));
|
||||
}
|
||||
imageView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
@ -90,6 +91,7 @@ public class ConcernContentUtils {
|
||||
checkIntent.putExtra("urls", (ArrayList<String>) list);
|
||||
checkIntent.putExtra("current", position);
|
||||
checkIntent.putExtra("ScaleType", "FIT_CENTER");
|
||||
checkIntent.putExtra("entrance", entrance);
|
||||
context.startActivity(checkIntent);
|
||||
}
|
||||
});
|
||||
|
||||
@ -185,8 +185,7 @@ public class DialogUtils {
|
||||
@Override
|
||||
public void onConfirem() {
|
||||
// 跳转wifi管理界面
|
||||
Intent intent = new Intent("android.settings.WIFI_SETTINGS");
|
||||
context.startActivity(intent);
|
||||
context.startActivity(new Intent("android.settings.WIFI_SETTINGS"));
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -205,14 +204,12 @@ public class DialogUtils {
|
||||
if (ShareUtils.isQQClientAvailable(context)) {
|
||||
//安装了QQ会直接调用QQ,打开手机QQ进行会话 QQ号:2586716223
|
||||
String str = "mqqwpa://im/chat?chat_type=wpa&uin=" + finalQq + "&version=1&src_type=web&web_src=oicqzone.com";
|
||||
Uri uri = Uri.parse(str);
|
||||
Intent it = new Intent(Intent.ACTION_VIEW, uri);
|
||||
context.startActivity(it);
|
||||
context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(str)));
|
||||
} else {
|
||||
//没有安装QQ 复制账号
|
||||
ClipboardManager cmb = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
cmb.setText(finalQq);
|
||||
Utils.toast(context,"已复制" + finalQq);
|
||||
Utils.toast(context, "已复制" + finalQq);
|
||||
}
|
||||
}
|
||||
}, null);
|
||||
|
||||
@ -328,7 +328,7 @@ public class DownloadItemUtils {
|
||||
download_percentage, downloadBtn, entity, true);
|
||||
}
|
||||
|
||||
public static void setNormalOnClickListener(final Context context,
|
||||
private static void setNormalOnClickListener(final Context context,
|
||||
final TextView downloadBtn,
|
||||
final GameEntity gameEntity,
|
||||
final int position,
|
||||
@ -370,6 +370,7 @@ public class DownloadItemUtils {
|
||||
} else if ("下载中".equals(str)) {
|
||||
Intent intent = new Intent(context, DownloadManagerActivity.class);
|
||||
intent.putExtra("url", gameEntity.getApk().get(0).getUrl());
|
||||
intent.putExtra("entrance", entrance + "+(" + location.split(":")[0] + ")");
|
||||
context.startActivity(intent);
|
||||
} else if ("更新".equals(str)) {
|
||||
if (NetworkUtils.isWifiConnected(context)) {
|
||||
@ -387,7 +388,7 @@ public class DownloadItemUtils {
|
||||
});
|
||||
}
|
||||
|
||||
public static void setPluginOnClickListener(final Context context,
|
||||
private static void setPluginOnClickListener(final Context context,
|
||||
final TextView downloadBtn,
|
||||
final GameEntity entity,
|
||||
final String entrance,
|
||||
|
||||
@ -49,8 +49,8 @@ public class GameUtils {
|
||||
public static void startGameDetailActivity(Context context, GameEntity gameEntity, String entrance) {
|
||||
AppController.put("GameEntity", gameEntity);
|
||||
Intent intent = new Intent(context, GameDetailActivity.class);
|
||||
intent.putExtra("entrance", entrance);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.putExtra("entrance", entrance);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@ -59,9 +59,9 @@ public class GameUtils {
|
||||
*/
|
||||
public static void startGameDetailActivity(Context context, String gameId, String entrance) {
|
||||
Intent intent = new Intent(context, GameDetailActivity.class);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.putExtra("gameId", gameId);
|
||||
intent.putExtra("entrance", entrance);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
|
||||
@ -210,7 +210,7 @@ public class LibaoUtils {
|
||||
}
|
||||
|
||||
public static void initLibaoBtn(final TextView libaoBtn, final LibaoEntity libaoEntity, final LibaoDao libaoDao,
|
||||
final boolean isInstallRequired, final LibaoDetailAdapter adapter) {
|
||||
final boolean isInstallRequired, final LibaoDetailAdapter adapter, final String entrance) {
|
||||
|
||||
libaoBtn.setTextColor(Color.WHITE);
|
||||
switch (libaoEntity.getStatus()) {
|
||||
@ -300,11 +300,11 @@ public class LibaoUtils {
|
||||
case "查看":
|
||||
AppController.put("libaoEntity", libaoEntity);
|
||||
Intent intent = new Intent(libaoBtn.getContext(), LibaoDetailActivity.class);
|
||||
intent.putExtra("entrance", entrance);
|
||||
libaoBtn.getContext().startActivity(intent);
|
||||
break;
|
||||
case "领取":
|
||||
libaoLing(libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, null);
|
||||
|
||||
libaoLing(libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, null, entrance);
|
||||
break;
|
||||
case "淘号":
|
||||
postLibaoTao(libaoBtn.getContext(), libaoEntity.getId(), true, new PostLibaoListener() {
|
||||
@ -411,7 +411,7 @@ public class LibaoUtils {
|
||||
}
|
||||
|
||||
private static void libaoLing(final TextView libaoBtn, final LibaoEntity libaoEntity, final LibaoDetailAdapter adapter,
|
||||
final boolean isInstallRequired, final LibaoDao libaoDao, String captchaCode) {
|
||||
final boolean isInstallRequired, final LibaoDao libaoDao, String captchaCode, final String entrance) {
|
||||
|
||||
postLibaoLing(libaoBtn.getContext(), libaoEntity.getId(), true, new PostLibaoListener() {
|
||||
@Override
|
||||
@ -492,7 +492,7 @@ public class LibaoUtils {
|
||||
DialogUtils.showHintDialog(libaoBtn.getContext(), "礼包已领光"
|
||||
, "手速不够快,礼包已经被抢光了,十分抱歉", "知道了");
|
||||
libaoEntity.setStatus("used_up");
|
||||
initLibaoBtn(libaoBtn, libaoEntity, libaoDao, isInstallRequired, adapter);
|
||||
initLibaoBtn(libaoBtn, libaoEntity, libaoDao, isInstallRequired, adapter, entrance);
|
||||
|
||||
} else if ("maintaining".equals(detail)) {
|
||||
Utils.toast(libaoBtn.getContext(), "网络状态异常,请稍后再试");
|
||||
@ -510,7 +510,7 @@ public class LibaoUtils {
|
||||
.showDialog(new GeetestUtils.GeetestListener() {
|
||||
@Override
|
||||
public void succed(String response) {
|
||||
libaoLing(libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, response);
|
||||
libaoLing(libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, response, entrance);
|
||||
}
|
||||
});
|
||||
return;
|
||||
|
||||
@ -5,11 +5,8 @@ import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.gh.base.AppController;
|
||||
import com.gh.gamecenter.MessageDetailActivity;
|
||||
import com.gh.gamecenter.NewsDetailActivity;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.entity.ConcernEntity;
|
||||
import com.gh.gamecenter.entity.NewsEntity;
|
||||
import com.gh.gamecenter.retrofit.Response;
|
||||
import com.gh.gamecenter.retrofit.RetrofitManager;
|
||||
@ -46,22 +43,11 @@ public class NewsUtils {
|
||||
*/
|
||||
public static void startNewsDetailActivity(Context context, NewsEntity newsEntity, String entrance) {
|
||||
Intent intent = new Intent(context, NewsDetailActivity.class);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.putExtra("id", newsEntity.getId());
|
||||
intent.putExtra("title", newsEntity.getTitle());
|
||||
intent.putExtra("type", newsEntity.getType());
|
||||
intent.putExtra("entrance", entrance);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动消息详情页面
|
||||
*/
|
||||
public static void startMessageActivity(Context context, ConcernEntity concernEntity, String entrance) {
|
||||
AppController.put("ConcernEntity", concernEntity);
|
||||
Intent intent = new Intent(context, MessageDetailActivity.class);
|
||||
intent.putExtra("entrance", entrance);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
|
||||
@ -368,9 +368,9 @@ public class ShareUtils {
|
||||
}
|
||||
}
|
||||
|
||||
Intent sendIntent = new Intent(Intent.ACTION_VIEW, Uri.parse( "smsto:" ));
|
||||
sendIntent.putExtra( "sms_body", smsBody);
|
||||
sendIntent.setType( "vnd.android-dir/mms-sms" );
|
||||
Intent sendIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("smsto:"));
|
||||
sendIntent.putExtra("sms_body", smsBody);
|
||||
sendIntent.setType("vnd.android-dir/mms-sms");
|
||||
|
||||
try {
|
||||
context.startActivity(sendIntent);
|
||||
|
||||
@ -36,6 +36,8 @@ import com.gh.gamecenter.listener.OnCollectionCallBackListener;
|
||||
import com.gh.gamecenter.manager.PackageManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
@ -275,98 +277,79 @@ public class DownloadDialog implements OnCollectionCallBackListener {
|
||||
viewPager.setCurrentItem(currentItem);
|
||||
}
|
||||
|
||||
private ArrayList<ApkEntity> sortApk(List<ApkEntity> apkList) {
|
||||
List<ApkEntity> pluginDoneList = new ArrayList<>(); // 安装插件
|
||||
List<ApkEntity> pluginDownloadList = new ArrayList<>(); // 插件化下载中
|
||||
List<ApkEntity> pluginList = new ArrayList<>(); // 插件化
|
||||
List<ApkEntity> updateDoneList = new ArrayList<>(); // 安装更新
|
||||
List<ApkEntity> updateDownloadList = new ArrayList<>(); // 更新下载中
|
||||
List<ApkEntity> updateList = new ArrayList<>(); // 更新
|
||||
List<ApkEntity> doneList = new ArrayList<>(); // 安装
|
||||
List<ApkEntity> downloadList = new ArrayList<>(); // 下载中
|
||||
List<ApkEntity> installList = new ArrayList<>(); // 启动
|
||||
List<ApkEntity> noPicList = new ArrayList<>(); // 默认(无图片)
|
||||
private ArrayList<ApkEntity> sortApk(ArrayList<ApkEntity> apkList) {
|
||||
/*
|
||||
* 安装插件 10
|
||||
* 插件化下载中 9
|
||||
* 插件化 8
|
||||
* 安装更新 7
|
||||
* 更新下载中 6
|
||||
* 更新 5
|
||||
* 安装 4
|
||||
* 下载中 3
|
||||
* 启动 2
|
||||
* 默认(有图片)1
|
||||
* 默认(无图片)0
|
||||
*/
|
||||
|
||||
DownloadEntity downloadEntity;
|
||||
String packageName;
|
||||
Object gh_id;
|
||||
for (int i = 0, size = apkList.size(); i < size; i++) {
|
||||
downloadEntity = DownloadManager.getInstance(context).get(apkList.get(i).getUrl());
|
||||
packageName = apkList.get(i).getPackageName();
|
||||
gh_id = PackageUtils.getMetaData(context, packageName, "gh_id");
|
||||
for (ApkEntity apkEntity : apkList) {
|
||||
downloadEntity = DownloadManager.getInstance(context).get(apkEntity.getUrl());
|
||||
if (downloadEntity == null) {
|
||||
if (PackageManager.isInstalled(packageName)
|
||||
&& (gh_id == null || gh_id.equals(gameEntity.getId()))) {
|
||||
if (PackageManager.isCanUpdate(gameEntity.getId(), packageName)) {
|
||||
updateList.add(apkList.remove(i));
|
||||
size--;
|
||||
i--;
|
||||
} else if (!PackageUtils.isSignature(context, packageName)) {
|
||||
pluginList.add(apkList.remove(i));
|
||||
size--;
|
||||
i--;
|
||||
} else {
|
||||
installList.add(apkList.remove(i));
|
||||
size--;
|
||||
i--;
|
||||
}
|
||||
} else {
|
||||
String platform = apkList.get(i).getPlatform();
|
||||
int id = PlatformUtils.getInstance(context).getPlatformPic(platform);
|
||||
if (id == 0) {
|
||||
String path = PlatformUtils.getInstance(context).getPlatformPicPath(platform);
|
||||
if (path == null) {
|
||||
noPicList.add(apkList.remove(i));
|
||||
size--;
|
||||
i--;
|
||||
packageName = apkEntity.getPackageName();
|
||||
if (PackageManager.isInstalled(packageName)) {
|
||||
gh_id = PackageUtils.getMetaData(context, packageName, "gh_id");
|
||||
if (gh_id == null || gh_id.equals(gameEntity.getId())) {
|
||||
if (!PackageUtils.isSignature(context, packageName)) {
|
||||
apkEntity.setOrder(8);
|
||||
} else if (PackageManager.isCanUpdate(gameEntity.getId(), packageName)) {
|
||||
apkEntity.setOrder(5);
|
||||
} else {
|
||||
apkEntity.setOrder(2);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
apkEntity.setOrder(1);
|
||||
|
||||
String platform = apkEntity.getPlatform();
|
||||
int id = PlatformUtils.getInstance(context).getPlatformPic(platform);
|
||||
if (id == 0) {
|
||||
String path = PlatformUtils.getInstance(context).getPlatformPicPath(platform);
|
||||
if (path == null) {
|
||||
apkEntity.setOrder(0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (downloadEntity.getStatus().equals(DownloadStatus.done)) {
|
||||
if (downloadEntity.isPluggable()) {
|
||||
pluginDoneList.add(apkList.remove(i));
|
||||
size--;
|
||||
i--;
|
||||
apkEntity.setOrder(10);
|
||||
} else if (downloadEntity.isUpdate()) {
|
||||
updateDoneList.add(apkList.remove(i));
|
||||
size--;
|
||||
i--;
|
||||
apkEntity.setOrder(7);
|
||||
} else {
|
||||
doneList.add(apkList.remove(i));
|
||||
size--;
|
||||
i--;
|
||||
apkEntity.setOrder(4);
|
||||
}
|
||||
} else {
|
||||
if (downloadEntity.isPluggable()) {
|
||||
pluginDownloadList.add(apkList.remove(i));
|
||||
size--;
|
||||
i--;
|
||||
apkEntity.setOrder(9);
|
||||
} else if (downloadEntity.isUpdate()) {
|
||||
updateDownloadList.add(apkList.remove(i));
|
||||
size--;
|
||||
i--;
|
||||
apkEntity.setOrder(6);
|
||||
} else {
|
||||
downloadList.add(apkList.remove(i));
|
||||
size--;
|
||||
i--;
|
||||
apkEntity.setOrder(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ArrayList<ApkEntity> list = new ArrayList<>();
|
||||
list.addAll(pluginDoneList);
|
||||
list.addAll(pluginDownloadList);
|
||||
list.addAll(pluginList);
|
||||
list.addAll(updateDoneList);
|
||||
list.addAll(updateDownloadList);
|
||||
list.addAll(updateList);
|
||||
list.addAll(doneList);
|
||||
list.addAll(downloadList);
|
||||
list.addAll(installList);
|
||||
list.addAll(apkList);
|
||||
list.addAll(noPicList);
|
||||
return list;
|
||||
Comparator<ApkEntity> comparator = new Comparator<ApkEntity>() {
|
||||
@Override
|
||||
public int compare(ApkEntity lhs, ApkEntity rhs) {
|
||||
return rhs.getOrder() - lhs.getOrder();
|
||||
}
|
||||
};
|
||||
Collections.sort(apkList, comparator);
|
||||
return apkList;
|
||||
}
|
||||
|
||||
// 接收安装成功的消息,更新界面
|
||||
|
||||
@ -23,6 +23,7 @@ import butterknife.BindView;
|
||||
|
||||
/**
|
||||
* Created by LGT on 2016/8/29.
|
||||
* 游戏新闻界面
|
||||
*/
|
||||
public class GameNewsActivity extends BaseActivity implements View.OnClickListener{
|
||||
|
||||
|
||||
@ -25,6 +25,7 @@ import de.greenrobot.event.EventBus;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/12/12.
|
||||
*
|
||||
*/
|
||||
public class LibaoActivity extends BaseFragmentActivity implements View.OnClickListener,
|
||||
ViewPager.OnPageChangeListener {
|
||||
@ -42,7 +43,6 @@ public class LibaoActivity extends BaseFragmentActivity implements View.OnClickL
|
||||
|
||||
private LinearLayout.LayoutParams lparams;
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
@ -18,6 +18,7 @@ import rx.schedulers.Schedulers;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/12/13.
|
||||
*
|
||||
*/
|
||||
public class LibaoDetailActivity extends BaseDetailActivity {
|
||||
|
||||
@ -35,9 +36,9 @@ public class LibaoDetailActivity extends BaseDetailActivity {
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
actionbar_tv_title.setText("礼包详情");
|
||||
title = "礼包详情";
|
||||
|
||||
mLibaoEntity = (LibaoEntity) AppController.get("libaoEntity", true);
|
||||
name = "礼包详情";
|
||||
|
||||
iv_share.setVisibility(View.GONE);
|
||||
|
||||
@ -46,6 +47,7 @@ public class LibaoDetailActivity extends BaseDetailActivity {
|
||||
detail_rv_show.setAdapter(mAdapter);
|
||||
|
||||
if (mLibaoEntity.getGame().getId() != null) {
|
||||
title = mLibaoEntity.getName();
|
||||
getGameDigest();
|
||||
}
|
||||
|
||||
@ -73,8 +75,6 @@ public class LibaoDetailActivity extends BaseDetailActivity {
|
||||
@Override
|
||||
public void onResponse(GameEntity response) {
|
||||
gameEntity = response;
|
||||
title = gameEntity.getName();
|
||||
entrance = "礼包详情"; //TODO
|
||||
|
||||
downloadAddWord = gameEntity.getDownloadAddWord();
|
||||
downloadOffText = gameEntity.getDownloadOffText();
|
||||
|
||||
@ -227,7 +227,8 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene
|
||||
|
||||
DataCollectionUtils.uploadDownload(this, downloadEntity, "完成");
|
||||
|
||||
if (downloadEntity.getEntrance().matches("^" + "\\(游戏\\-插件:滚动图\\[.+\\]\\)" + "$")) {
|
||||
if (downloadEntity.getEntrance().matches("^" + "\\(游戏\\-插件:滚动图\\[.+\\]\\)" + "$")
|
||||
|| downloadEntity.getEntrance().matches("^" + "\\(游戏\\-专题:滚动图\\[.+\\]\\)" + "$")) {
|
||||
// 首页轮播图数据统计
|
||||
statLunbotuData(downloadEntity.getEntrance());
|
||||
}
|
||||
@ -944,6 +945,7 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene
|
||||
Intent intent = new Intent(MainActivity.this, DownloadManagerActivity.class);
|
||||
intent.putExtra("currentItem", 1);
|
||||
intent.putExtra("packageName", packageName);
|
||||
intent.putExtra("entrance", "(游戏插件)");
|
||||
startActivity(intent);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -93,8 +93,6 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail
|
||||
|
||||
private int commentNum = -1; //区分来源 -1:资讯关注列表 !=-1 :新闻详情
|
||||
|
||||
private boolean openSoftInput;
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
@ -110,7 +108,6 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail
|
||||
Intent intent = getIntent();
|
||||
newsId = intent.getExtras().getString("newsId");
|
||||
commentNum = intent.getExtras().getInt("commentNum");
|
||||
openSoftInput = intent.getExtras().getBoolean("openSoftInput"); //新闻详情的发表评论
|
||||
|
||||
//复用问题 mConcernEntity对应的文章有可能和跳转之前的文章不一致
|
||||
if (mConcernEntity != null && newsId != null && !newsId.equals(mConcernEntity.getId())) {
|
||||
@ -199,7 +196,7 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail
|
||||
getConcernDigest();
|
||||
}
|
||||
|
||||
if (openSoftInput) {
|
||||
if (intent.getExtras().getBoolean("openSoftInput")) {//新闻详情的发表评论
|
||||
setSoftInput(true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,6 +61,7 @@ import rx.android.schedulers.AndroidSchedulers;
|
||||
import rx.functions.Action1;
|
||||
import rx.schedulers.Schedulers;
|
||||
|
||||
|
||||
/**
|
||||
* 文章详情页面 要启动该页面 需要传入一下参数 放入 EssayEntity中传过来 文章 id 文章标题 title 文章发表时间 time
|
||||
*
|
||||
@ -105,8 +106,6 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener
|
||||
private Handler handler = new Handler();
|
||||
|
||||
private String entrance;
|
||||
private String name;
|
||||
private String title;
|
||||
private String downloadOffText;
|
||||
|
||||
private DataWatcher dataWatcher = new DataWatcher() {
|
||||
@ -151,8 +150,6 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener
|
||||
R.id.reuse_actionbar);
|
||||
reuse_actionbar.addView(iv_share, params);
|
||||
|
||||
name = "新闻详情";
|
||||
|
||||
init(contentView);
|
||||
|
||||
DisplayMetrics outMetrics = new DisplayMetrics();
|
||||
@ -174,7 +171,6 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener
|
||||
if (type != null) {
|
||||
actionbar_tv_title.setText(type);
|
||||
}
|
||||
this.title = title;
|
||||
adapter.setId(id);
|
||||
adapter.setType(type);
|
||||
adapter.setTitle(title);
|
||||
@ -380,8 +376,6 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener
|
||||
adapter.setTitle(response.getTitle());
|
||||
adapter.getNewsDetail();
|
||||
|
||||
title = response.getTitle();
|
||||
|
||||
iv_share.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
@ -400,7 +394,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener
|
||||
|
||||
@Override
|
||||
public void onClick(final View v) {
|
||||
if (v == reuse_no_connection) {
|
||||
if (v == reuse_no_connection) {
|
||||
detail_rv_show.setVisibility(View.VISIBLE);
|
||||
reuse_ll_loading.setVisibility(View.VISIBLE);
|
||||
reuse_no_connection.setVisibility(View.GONE);
|
||||
@ -420,7 +414,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener
|
||||
}
|
||||
} else {
|
||||
DownloadDialog.getInstance(this)
|
||||
.showPopupWindow(v, gameEntity, entrance, name + ":" + title);
|
||||
.showPopupWindow(v, gameEntity, entrance, "新闻详情:" + adapter.getTitle());
|
||||
}
|
||||
} else {
|
||||
toast("稍等片刻~!游戏正在上传中...");
|
||||
@ -430,6 +424,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener
|
||||
if ("下载中".equals(str)) {
|
||||
Intent intent = new Intent(this, DownloadManagerActivity.class);
|
||||
intent.putExtra("url", gameEntity.getApk().get(0).getUrl());
|
||||
intent.putExtra("entrance", entrance + "(新闻详情[" + adapter.getTitle() + "])");
|
||||
startActivity(intent);
|
||||
} else if ("安装".equals(str)) {
|
||||
PackageUtils.launchSetup(this, mDownloadEntity.getPath());
|
||||
@ -439,6 +434,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener
|
||||
intent.putExtra("commentNum", -1);
|
||||
intent.putExtra("newsId", adapter.getNewsDetailEntity().getId());
|
||||
intent.putExtra("openSoftInput", true);
|
||||
intent.putExtra("entrance", entrance + "(新闻详情[" + adapter.getTitle() + "])");
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
@ -698,7 +694,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener
|
||||
private void download() {
|
||||
String str = detail_tv_download.getText().toString();
|
||||
if (str.contains("启动")) {
|
||||
DataUtils.onGameLaunchEvent(this, gameEntity.getName(), gameEntity.getApk().get(0).getPlatform(), name);
|
||||
DataUtils.onGameLaunchEvent(this, gameEntity.getName(), gameEntity.getApk().get(0).getPlatform(), "新闻详情");
|
||||
|
||||
PackageUtils.launchApplicationByPackageName(this, gameEntity.getApk().get(0).getPackageName());
|
||||
} else {
|
||||
@ -715,7 +711,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener
|
||||
if (TextUtils.isEmpty(msg)) {
|
||||
DataUtils.onGameDownloadEvent(this, gameEntity.getName(), apkEntity.getPlatform(), entrance, "下载开始");
|
||||
|
||||
DownloadManager.createDownload(this, apkEntity, gameEntity, method, entrance, name + ":" + title);
|
||||
DownloadManager.createDownload(this, apkEntity, gameEntity, method, entrance, "新闻详情:" + adapter.getTitle());
|
||||
|
||||
detail_tv_download.setVisibility(View.GONE);
|
||||
detail_pb_progressbar.setVisibility(View.VISIBLE);
|
||||
|
||||
@ -277,7 +277,7 @@ public class NewsSearchActivity extends BaseActivity {
|
||||
|
||||
// 统计阅读量
|
||||
NewsUtils.statNewsViews(newsEntity.getId());
|
||||
NewsUtils.startNewsDetailActivity(NewsSearchActivity.this, newsEntity, entrance + "+(游戏新闻搜索)");
|
||||
NewsUtils.startNewsDetailActivity(NewsSearchActivity.this, newsEntity, entrance + "+(游戏新闻搜索:" + searchKey + ")");
|
||||
}
|
||||
});
|
||||
}else if (holder instanceof FooterViewHolder){
|
||||
|
||||
@ -52,7 +52,6 @@ public class SearchActivity extends BaseFragmentActivity {
|
||||
private Handler handler = new Handler(){
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
super.handleMessage(msg);
|
||||
if (msg.what == 1){
|
||||
setResultPresentModel(1);
|
||||
}
|
||||
|
||||
@ -213,7 +213,9 @@ public class SettingActivity extends BaseActivity implements OnClickListener {
|
||||
});
|
||||
break;
|
||||
case R.id.setting_rl_feedback:
|
||||
startActivity(new Intent(SettingActivity.this, SuggestionActivity.class));
|
||||
Intent intent = new Intent(SettingActivity.this, SuggestionActivity.class);
|
||||
intent.putExtra("entrance", "(设置)");
|
||||
startActivity(intent);
|
||||
break;
|
||||
case R.id.setting_tv_disclaimer:
|
||||
String content = sp.getString("disclaimer", null);
|
||||
|
||||
@ -27,7 +27,7 @@ public class SkipActivity extends BaseActivity {
|
||||
}
|
||||
Intent intent = new Intent();
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.putExtra("entrance", "(网页跳转)");
|
||||
intent.putExtra("entrance", "(浏览器)");
|
||||
if (RunningUtils.isRunning(this)
|
||||
&& MainActivity.class.getName().equals(RunningUtils.getBaseActivity(this))) {
|
||||
// 应用正在运行,前台或后台
|
||||
@ -48,6 +48,10 @@ public class SkipActivity extends BaseActivity {
|
||||
+ "-V" + uri.getQueryParameter("version") + "】";
|
||||
intent.putExtra("content", content);
|
||||
intent.setClass(this, SuggestionActivity.class);
|
||||
} else if ("download".equals(host)) {
|
||||
intent.setClass(this, DownloadManagerActivity.class);
|
||||
intent.putExtra("gameId", id);
|
||||
intent.putExtra("packageName", getIntent().getData().getQueryParameter("packageName"));
|
||||
}
|
||||
} else {
|
||||
// 应用未在运行
|
||||
@ -72,6 +76,10 @@ public class SkipActivity extends BaseActivity {
|
||||
+ "-V" + uri.getQueryParameter("version") + "】";
|
||||
intent.putExtra("content", content);
|
||||
intent.putExtra("to", "SuggestionActivity");
|
||||
} else if ("download".equals(host)) {
|
||||
intent.putExtra("to", "DownloadManagerActivity");
|
||||
intent.putExtra("gameId", id);
|
||||
intent.putExtra("packageName", getIntent().getData().getQueryParameter("packageName"));
|
||||
}
|
||||
}
|
||||
startActivity(intent);
|
||||
|
||||
@ -49,8 +49,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener
|
||||
@BindView(R.id.et_suggest_connectway) EditText et_suggest_connectway;
|
||||
@BindView(R.id.btn_suggest_post) CardLinearLayout btn_suggest_post;
|
||||
|
||||
private boolean isShowing = false;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@ -110,7 +108,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener
|
||||
if (TextUtils.isEmpty(email)) {
|
||||
showConfirmDialog(email);
|
||||
} else if (isEmailAddress(email)) {
|
||||
isShowing = true;
|
||||
Dialog dialog = new Dialog(this);
|
||||
View view = View.inflate(this, R.layout.set_wait_dialog, null);
|
||||
TextView message = (TextView) view
|
||||
@ -120,15 +117,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener
|
||||
dialog.setContentView(view);
|
||||
dialog.setCanceledOnTouchOutside(false);
|
||||
dialog.setCancelable(false);
|
||||
// dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||
// @Override
|
||||
// public void onDismiss(DialogInterface dialog) {
|
||||
// if (isShowing) {
|
||||
// AppController.canclePendingRequests(TAG);
|
||||
// toast("取消发送");
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
dialog.show();
|
||||
sendSuggestion(dialog, email);
|
||||
} else {
|
||||
@ -165,7 +153,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener
|
||||
new DialogUtils.CancelListener() {
|
||||
@Override
|
||||
public void onCancel() {
|
||||
isShowing = true;
|
||||
Dialog dialog = new Dialog(SuggestionActivity.this);
|
||||
View view = View.inflate(SuggestionActivity.this,
|
||||
R.layout.set_wait_dialog, null);
|
||||
@ -176,15 +163,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener
|
||||
dialog.setContentView(view);
|
||||
dialog.setCanceledOnTouchOutside(false);
|
||||
dialog.setCancelable(false);
|
||||
// dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||
// @Override
|
||||
// public void onDismiss(DialogInterface dialog) {
|
||||
// if (isShowing) {
|
||||
// AppController.canclePendingRequests(TAG);
|
||||
// toast("取消发送");
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
dialog.show();
|
||||
sendSuggestion(dialog, email);
|
||||
}
|
||||
@ -210,7 +188,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener
|
||||
.subscribe(new JSONObjectResponse() {
|
||||
@Override
|
||||
public void onResponse(JSONObject response) {
|
||||
isShowing = false;
|
||||
dialog.dismiss();
|
||||
|
||||
if (response.length() != 0) {
|
||||
@ -231,7 +208,6 @@ public class SuggestionActivity extends BaseActivity implements OnClickListener
|
||||
|
||||
@Override
|
||||
public void onFailure(HttpException e) {
|
||||
isShowing = false;
|
||||
dialog.dismiss();
|
||||
|
||||
toast("提交失败,请检查网络状态");
|
||||
|
||||
@ -29,6 +29,7 @@ import rx.schedulers.Schedulers;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/10/18.
|
||||
*
|
||||
*/
|
||||
public class WebActivity extends BaseActivity {
|
||||
|
||||
@ -41,6 +42,8 @@ public class WebActivity extends BaseActivity {
|
||||
private String newsId;
|
||||
private int commentNum;
|
||||
|
||||
private String entrance;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@ -57,6 +60,8 @@ public class WebActivity extends BaseActivity {
|
||||
}
|
||||
// webUrl = "http://tieba.baidu.com/f?kw=%E7%BD%91%E6%98%93%E9%98%B4%E9%98%B3%E5%B8%88&red_tag=3194925450";
|
||||
|
||||
entrance = getIntent().getStringExtra("entrance");
|
||||
|
||||
View contentView = View.inflate(this, R.layout.activity_web, null);
|
||||
init(contentView, webTitle);
|
||||
|
||||
@ -135,6 +140,7 @@ public class WebActivity extends BaseActivity {
|
||||
Intent intent = new Intent(this, MessageDetailActivity.class);
|
||||
intent.putExtra("newsId", newsId);
|
||||
intent.putExtra("commentNum", commentNum);
|
||||
intent.putExtra("entrance", entrance + "+(光环浏览器)");
|
||||
startActivityForResult(intent, 1001);
|
||||
}
|
||||
|
||||
|
||||
@ -44,10 +44,17 @@ public class ConcernAdapter extends RecyclerView.Adapter<ConcernViewHolder> {
|
||||
|
||||
private ConcernManager concernManager;
|
||||
|
||||
private String entrance;
|
||||
|
||||
public ConcernAdapter(ConcernActivity activity) {
|
||||
this.context = activity;
|
||||
this.listener = activity;
|
||||
|
||||
entrance = activity.getIntent().getStringExtra("entrance");
|
||||
if (activity.getIntent().getBundleExtra("data") != null) {
|
||||
entrance = activity.getIntent().getBundleExtra("data").getString("entrance");
|
||||
}
|
||||
|
||||
concernManager = new ConcernManager(context);
|
||||
|
||||
concernList = concernManager.getConcernGame();
|
||||
@ -156,7 +163,7 @@ public class ConcernAdapter extends RecyclerView.Adapter<ConcernViewHolder> {
|
||||
|
||||
DataCollectionUtils.uploadClick(context, "列表", "我的关注", gameEntity.getName());
|
||||
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, "(我的关注-列表)");
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, entrance + "+(我的关注-列表)");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -45,10 +45,17 @@ public class ConcernRecommendAdapter extends RecyclerView.Adapter<ConcernViewHol
|
||||
|
||||
private Toast toast;
|
||||
|
||||
private String entrance;
|
||||
|
||||
public ConcernRecommendAdapter(ConcernActivity activity) {
|
||||
this.context = activity;
|
||||
this.listener = activity;
|
||||
|
||||
entrance = activity.getIntent().getStringExtra("entrance");
|
||||
if (activity.getIntent().getBundleExtra("data") != null) {
|
||||
entrance = activity.getIntent().getBundleExtra("data").getString("entrance");
|
||||
}
|
||||
|
||||
gameList = new ArrayList<>();
|
||||
concernManager = new ConcernManager(context);
|
||||
|
||||
@ -168,7 +175,7 @@ public class ConcernRecommendAdapter extends RecyclerView.Adapter<ConcernViewHol
|
||||
|
||||
DataCollectionUtils.uploadClick(context, "推荐", "我的关注", gameEntity.getName());
|
||||
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, "(我的关注-推荐)");
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, entrance + "+(我的关注-推荐)");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -205,13 +205,13 @@ public class GameNewsAdapter extends RecyclerView.Adapter {
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", newsEntity.getTitle());
|
||||
kv.put("位置", String.valueOf(viewHolder.getPosition() + 1));
|
||||
DataUtils.onEvent(context, "点击", "游戏新闻详情", kv);
|
||||
DataUtils.onEvent(context, "点击", "游戏新闻列表", kv);
|
||||
|
||||
DataCollectionUtils.uploadClick(context, newsType, "游戏新闻详情", newsEntity.getTitle());
|
||||
DataCollectionUtils.uploadClick(context, newsType, "游戏新闻列表", newsEntity.getTitle());
|
||||
|
||||
// 统计阅读量
|
||||
NewsUtils.statNewsViews(newsEntity.getId());
|
||||
NewsUtils.startNewsDetailActivity(context, newsEntity, entrance + "+(游戏新闻详情:" + newsType + ")");
|
||||
NewsUtils.startNewsDetailActivity(context, newsEntity, entrance + "+(游戏新闻列表:" + newsType + ")");
|
||||
}
|
||||
});
|
||||
} else if (holder instanceof NewsFooterViewHolder){
|
||||
@ -237,13 +237,13 @@ public class GameNewsAdapter extends RecyclerView.Adapter {
|
||||
public void onClick(View v) {
|
||||
String searchKey = ((GameNewsSearchViewHolder) holder).game_news_et_search.getText().toString().trim();
|
||||
if (searchKey.length() >= 1) {
|
||||
Intent intent = new Intent(context,NewsSearchActivity.class);
|
||||
Intent intent = new Intent(context, NewsSearchActivity.class);
|
||||
intent.putExtra("gameName", "搜索结果");
|
||||
intent.putExtra("searchKey", searchKey);
|
||||
intent.putExtra("gameId", gameId);
|
||||
intent.putExtra("entrance", entrance + "+(游戏新闻详情:" + newsType + ")");
|
||||
intent.putExtra("entrance", entrance + "+(游戏新闻列表:" + newsType + ")");
|
||||
context.startActivity(intent);
|
||||
}else {
|
||||
} else {
|
||||
Toast.makeText(context,"请输入关键字",Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
@ -88,18 +88,18 @@ public class ImagePagerAdapter extends RecyclingPagerAdapter {
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", slideEntity.getName());
|
||||
kv.put("位置", getPosition(position) + 1);
|
||||
DataUtils.onEvent(context, "点击", "游戏-插件-滚动图", kv);
|
||||
DataUtils.onEvent(context, "点击", "游戏-专题-滚动图", kv);
|
||||
|
||||
// 首页轮播图数据统计
|
||||
DataLogUtils.uploadLunbotuLog(context, slideEntity.getType(),
|
||||
slideEntity.getName(), String.valueOf(getPosition(position) + 1));
|
||||
|
||||
String entrance = "(游戏-专题:滚动图["
|
||||
+ slideEntity.getName()
|
||||
+ "=" + slideEntity.getType()
|
||||
+ "=" + (getPosition(position) + 1)
|
||||
+ "])";
|
||||
if ("game".equals(slideEntity.getType())) {
|
||||
String entrance = "(游戏-插件:滚动图["
|
||||
+ slideEntity.getName()
|
||||
+ "=" + slideEntity.getType()
|
||||
+ "=" + (getPosition(position) + 1)
|
||||
+ "])";
|
||||
GameUtils.startGameDetailActivity(context, slideEntity.getLink(), entrance);
|
||||
} else if ("news".equals(slideEntity.getType())) {
|
||||
// 统计阅读量
|
||||
@ -107,16 +107,13 @@ public class ImagePagerAdapter extends RecyclingPagerAdapter {
|
||||
|
||||
Intent intent = new Intent(context, NewsDetailActivity.class);
|
||||
intent.putExtra("newsId", slideEntity.getLink());
|
||||
intent.putExtra("entrance", "(游戏-插件:滚动图["
|
||||
+ slideEntity.getName()
|
||||
+ "=" + slideEntity.getType()
|
||||
+ "=" + (getPosition(position) + 1)
|
||||
+ "])");
|
||||
intent.putExtra("entrance", entrance);
|
||||
context.startActivity(intent);
|
||||
} else if ("column".equals(slideEntity.getType())) {
|
||||
Intent intent = new Intent(context, SubjectActivity.class);
|
||||
intent.putExtra("id", slideEntity.getLink());
|
||||
intent.putExtra("name", slideEntity.getName());
|
||||
intent.putExtra("entrance", entrance);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
|
||||
@ -53,12 +53,16 @@ public class LibaoDetailAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
|
||||
|
||||
private List<LibaoInfo> mLibaoInfos;
|
||||
|
||||
private String entrance;
|
||||
|
||||
public LibaoDetailAdapter(LibaoDetailActivity libaoDetailActivity, LibaoEntity libaoEntity, TextView tvDownload) {
|
||||
this.mContext = libaoDetailActivity;
|
||||
this.mCallBackListener = libaoDetailActivity;
|
||||
this.mLibaoEntity = libaoEntity;
|
||||
this.mDownloadTv = tvDownload;
|
||||
|
||||
entrance = libaoDetailActivity.getIntent().getStringExtra("entrance");
|
||||
|
||||
mLibaoDao = new LibaoDao(mContext);
|
||||
mLibaoInfos = mLibaoDao.getAll();
|
||||
|
||||
@ -256,7 +260,8 @@ public class LibaoDetailAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
|
||||
holder.libaoDes.setText(content);
|
||||
|
||||
if (mLibaoEntity.getStatus() != null && mLibaoDetailEntity != null) {
|
||||
LibaoUtils.initLibaoBtn(holder.libaoCopyBtn, mLibaoEntity, mLibaoDao, mLibaoDetailEntity.getInstallRequired(), this);
|
||||
LibaoUtils.initLibaoBtn(holder.libaoCopyBtn, mLibaoEntity, mLibaoDao,
|
||||
mLibaoDetailEntity.getInstallRequired(), this, entrance + "+(礼包详情[" + mLibaoEntity.getName() + "])");
|
||||
}
|
||||
|
||||
// 判断按钮状态是否为空(礼包详情进入),重新获取
|
||||
@ -265,11 +270,12 @@ public class LibaoDetailAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
|
||||
@Override
|
||||
public void postSucced(Object response) {
|
||||
List<LibaoStatusEntity> statusList = (List<LibaoStatusEntity>) response;
|
||||
if (statusList.size() == 0) return;
|
||||
mLibaoEntity.setStatus(statusList.get(0).getStatus());
|
||||
mLibaoEntity.setAvailable(statusList.get(0).getAvailable());
|
||||
mLibaoEntity.setTotal(statusList.get(0).getTotal());
|
||||
notifyItemChanged(0);
|
||||
if (statusList.size() != 0) {
|
||||
mLibaoEntity.setStatus(statusList.get(0).getStatus());
|
||||
mLibaoEntity.setAvailable(statusList.get(0).getAvailable());
|
||||
mLibaoEntity.setTotal(statusList.get(0).getTotal());
|
||||
notifyItemChanged(0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -90,6 +90,7 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
|
||||
private String userName; //用户名
|
||||
private String userIcon; //用户icon
|
||||
private String entrance;
|
||||
|
||||
private boolean isOver;
|
||||
private boolean isLoading;
|
||||
@ -115,6 +116,7 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
|
||||
userName = sp.getString("user_name", null);
|
||||
userIcon = sp.getString("user_icon", null);
|
||||
entrance = context.getIntent().getStringExtra("entrance");
|
||||
|
||||
isOver = false;
|
||||
isLoading = false;
|
||||
@ -362,8 +364,9 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
} else {
|
||||
viewHolder.imgLayout.setVisibility(View.VISIBLE);
|
||||
viewHolder.imgLayout.removeAllViews();
|
||||
ConcernContentUtils.addContentPic(mContext.getResources().getDisplayMetrics().widthPixels
|
||||
- DisplayUtils.dip2px(mContext, 34), viewHolder.imgLayout, mConcernEntity.getImg(), mContext);
|
||||
ConcernContentUtils.addContentPic(mContext, viewHolder.imgLayout, mConcernEntity.getImg(),
|
||||
entrance + "+(消息详情[" + mConcernEntity.getGameName() + "])",
|
||||
mContext.getResources().getDisplayMetrics().widthPixels - DisplayUtils.dip2px(mContext, 34));
|
||||
}
|
||||
|
||||
viewHolder.thumb.setImageURI(mConcernEntity.getGameIcon());
|
||||
@ -390,6 +393,7 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
}
|
||||
bundle.putStringArrayList("shareArrImg", (ArrayList<String>) mConcernEntity.getImg());
|
||||
intent.putExtras(bundle);
|
||||
intent.putExtra("entrance", entrance + "+(消息详情[" + mConcernEntity.getGameName() + "])");
|
||||
mContext.startActivity(intent);
|
||||
} else {
|
||||
Intent intent = new Intent(mContext, ShareCardActivity.class);
|
||||
@ -401,6 +405,7 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
bundle.putString("newsId", mConcernEntity.getId());
|
||||
}
|
||||
intent.putExtras(bundle);
|
||||
intent.putExtra("entrance", entrance + "+(消息详情[" + mConcernEntity.getGameName() + "])");
|
||||
mContext.startActivity(intent);
|
||||
}
|
||||
}
|
||||
@ -423,11 +428,12 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
intent.putExtra("url", mConcernEntity.getLink());
|
||||
intent.putExtra("gameName", mConcernEntity.getGameName());
|
||||
intent.putExtra("newsId", mConcernEntity.getId());
|
||||
intent.putExtra("entrance", entrance + "+(消息详情[" + mConcernEntity.getGameName() + "])");
|
||||
mContext.startActivity(intent);
|
||||
} else {
|
||||
Intent intent = new Intent(mContext, NewsDetailActivity.class);
|
||||
intent.putExtra("newsId", mConcernEntity.getId());
|
||||
intent.putExtra("entrance", "(消息详情)");
|
||||
intent.putExtra("entrance", entrance + "+(消息详情[" + mConcernEntity.getGameName() + "])");
|
||||
mContext.startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
||||
@ -139,6 +139,7 @@ public class PlatformAdapter extends RecyclerView.Adapter<PlatformViewHolder> {
|
||||
// 打开下载管理界面
|
||||
Intent intent = new Intent(context, DownloadManagerActivity.class);
|
||||
intent.putExtra("url", apkEntity.getUrl());
|
||||
intent.putExtra("entrance", entrance + "(" + location.split(":")[0] + ")");
|
||||
context.startActivity(intent);
|
||||
} else if ("启动".equals(status)) {
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
|
||||
@ -33,6 +33,7 @@ import java.util.Map;
|
||||
|
||||
/**
|
||||
* Created by LGT on 2016/7/6.
|
||||
*
|
||||
*/
|
||||
public class PluginAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
@ -179,12 +180,12 @@ public class PluginAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
||||
|
||||
DataCollectionUtils.uploadClick(context, "列表", "可以插件化的游戏", gameEntity.getName());
|
||||
|
||||
GameUtils.startGameDetailActivity(context, gameEntity.getId(), entrance + "+(可以插件化的游戏)");
|
||||
GameUtils.startGameDetailActivity(context, gameEntity.getId(), entrance + "+(插件化[" + (viewHolder.getPosition() + 1) + "])");
|
||||
}
|
||||
});
|
||||
|
||||
DownloadItemUtils.setOnClickListener(context, viewHolder.downloadBtn, gameEntity, position,
|
||||
PluginAdapter.this, entrance + "+(可以插件化的游戏)", "可以插件化的游戏:" + gameEntity.getName());
|
||||
PluginAdapter.this, entrance + "+(插件化[" + (viewHolder.getPosition() + 1) + "])", "插件化:" + gameEntity.getName());
|
||||
|
||||
DownloadItemUtils.updateItem(context, viewHolder.gameDes,
|
||||
viewHolder.game_progressbar, viewHolder.game_ll_info, viewHolder.download_speed,
|
||||
|
||||
@ -32,6 +32,7 @@ import rx.schedulers.Schedulers;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/12/5.
|
||||
*
|
||||
*/
|
||||
public class StrategyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
@ -42,6 +43,7 @@ public class StrategyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
||||
private List<NewsEntity> mNewsList;
|
||||
|
||||
private String mGameId;
|
||||
private String entrance;
|
||||
|
||||
private boolean isRemove;
|
||||
private boolean isLoading;
|
||||
@ -52,6 +54,8 @@ public class StrategyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
||||
this.mGameId = gameId;
|
||||
this.mNoData = noData;
|
||||
|
||||
entrance = strategyActivity.getIntent().getStringExtra("entrance");
|
||||
|
||||
mNewsList = new ArrayList<>();
|
||||
|
||||
isLoading = false;
|
||||
@ -187,7 +191,7 @@ public class StrategyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
||||
|
||||
// 统计阅读量
|
||||
NewsUtils.statNewsViews(newsEntity.getId());
|
||||
NewsUtils.startNewsDetailActivity(mStrategyActivity, newsEntity, "主页-游戏-攻略");
|
||||
NewsUtils.startNewsDetailActivity(mStrategyActivity, newsEntity, entrance + "+(攻略[" + newsEntity.getTitle() + "])");
|
||||
}
|
||||
});
|
||||
} else {
|
||||
@ -227,10 +231,6 @@ public class StrategyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
||||
}
|
||||
|
||||
public boolean isCanLoading() {
|
||||
if (isNetworkError != true && isLoading != true && isRemove != true) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return (!isNetworkError && !isLoading && !isRemove);
|
||||
}
|
||||
}
|
||||
|
||||
@ -51,7 +51,6 @@ public class SubjectAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
|
||||
|
||||
private List<GameEntity> subjectList;
|
||||
|
||||
|
||||
private ArrayMap<String, ArrayList<Integer>> locationMap;
|
||||
|
||||
private LibaoDao libaoDao;
|
||||
@ -333,7 +332,7 @@ public class SubjectAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
|
||||
|
||||
DataCollectionUtils.uploadClick(context, "列表", name, gameEntity.getName());
|
||||
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, entrance + "+(" + name + ")");
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, entrance + "+(" + name + "[" + (holder.getPosition() + 1) + "])");
|
||||
}
|
||||
});
|
||||
|
||||
@ -348,7 +347,7 @@ public class SubjectAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
|
||||
|
||||
DownloadItemUtils.setOnClickListener(context,
|
||||
holder.downloadBtn, gameEntity, position,
|
||||
SubjectAdapter.this, entrance + "+(" + name + ")", name + ":" + gameEntity.getName());
|
||||
SubjectAdapter.this, entrance + "+(" + name + "[" + (holder.getPosition() + 1) + "])", name + ":" + gameEntity.getName());
|
||||
|
||||
DownloadItemUtils.updateItem(context, holder.gameDes,
|
||||
holder.game_progressbar, holder.game_ll_info, holder.download_speed,
|
||||
@ -414,12 +413,12 @@ public class SubjectAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
|
||||
|
||||
DataCollectionUtils.uploadClick(context, "列表", name, gameEntity.getName());
|
||||
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, entrance + "+(" + name + ")");
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, entrance + "+(" + name + "[" + (holder.getPosition() + 1) + "])");
|
||||
}
|
||||
});
|
||||
|
||||
DownloadItemUtils.setOnClickListener(context, holder.downloadBtn,
|
||||
gameEntity, position, this, entrance + "+(" + name + ")", name + ":" + gameEntity.getName());
|
||||
gameEntity, position, this, entrance + "+(" + name + "[" + (holder.getPosition() + 1) + "])", name + ":" + gameEntity.getName());
|
||||
|
||||
DownloadItemUtils.updateItem(context, holder.gameDes,
|
||||
holder.game_progressbar, holder.game_ll_info,
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package com.gh.gamecenter.download;
|
||||
package com.gh.gamecenter.adapter.viewholder;
|
||||
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.gh.gamecenter.download;
|
||||
package com.gh.gamecenter.adapter.viewholder;
|
||||
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.gh.gamecenter.download;
|
||||
package com.gh.gamecenter.adapter.viewholder;
|
||||
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.gh.gamecenter.search;
|
||||
package com.gh.gamecenter.adapter.viewholder;
|
||||
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
@ -27,6 +27,8 @@ import com.gh.download.DownloadEntity;
|
||||
import com.gh.download.DownloadManager;
|
||||
import com.gh.download.DownloadStatus;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.adapter.viewholder.DownloadHeadViewHolder;
|
||||
import com.gh.gamecenter.adapter.viewholder.GameDownloadViewHolder;
|
||||
import com.gh.gamecenter.eventbus.EBDownloadChanged;
|
||||
import com.gh.gamecenter.manager.PackageManager;
|
||||
|
||||
@ -41,8 +43,9 @@ import de.greenrobot.event.EventBus;
|
||||
|
||||
/**
|
||||
* Created by LGT on 2016/8/15.
|
||||
*
|
||||
*/
|
||||
public class GameDownloadFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
class GameDownloadFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private Context context;
|
||||
|
||||
@ -60,7 +63,7 @@ public class GameDownloadFragmentAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
|
||||
private int cardMargin;
|
||||
|
||||
public GameDownloadFragmentAdapter(Context context, LinearLayout textView, String url) {
|
||||
GameDownloadFragmentAdapter(Context context, LinearLayout textView, String url) {
|
||||
|
||||
this.context = context;
|
||||
this.url = url;
|
||||
@ -475,7 +478,7 @@ public class GameDownloadFragmentAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
}
|
||||
|
||||
// 显示插件化
|
||||
public void showPluginDialog(final String path) {
|
||||
void showPluginDialog(final String path) {
|
||||
DialogUtils.showPluginDialog(context, new DialogUtils.ConfiremListener() {
|
||||
@Override
|
||||
public void onConfirem() {
|
||||
@ -590,11 +593,11 @@ public class GameDownloadFragmentAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
}
|
||||
}
|
||||
|
||||
public List<DownloadEntity> getDownloadingList() {
|
||||
List<DownloadEntity> getDownloadingList() {
|
||||
return downloadingList;
|
||||
}
|
||||
|
||||
public List<DownloadEntity> getDoneList() {
|
||||
List<DownloadEntity> getDoneList() {
|
||||
return doneList;
|
||||
}
|
||||
|
||||
@ -602,15 +605,15 @@ public class GameDownloadFragmentAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
return locationMap;
|
||||
}
|
||||
|
||||
public Integer getLocation(String url) {
|
||||
Integer getLocation(String url) {
|
||||
return locationMap.get(url);
|
||||
}
|
||||
|
||||
public ArrayMap<String, String> getStatusMap() {
|
||||
ArrayMap<String, String> getStatusMap() {
|
||||
return statusMap;
|
||||
}
|
||||
|
||||
public ArrayMap<String, String> getUrlMap() {
|
||||
ArrayMap<String, String> getUrlMap() {
|
||||
return urlMap;
|
||||
}
|
||||
|
||||
@ -618,11 +621,11 @@ public class GameDownloadFragmentAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
return urlMap.get(packageName);
|
||||
}
|
||||
|
||||
public ArrayList<String> getDeleteList() {
|
||||
ArrayList<String> getDeleteList() {
|
||||
return deleteList;
|
||||
}
|
||||
|
||||
public void initMap() {
|
||||
void initMap() {
|
||||
downloadingList.clear();
|
||||
doneList.clear();
|
||||
statusMap.clear();
|
||||
|
||||
@ -128,8 +128,7 @@ public class GameUpdateFragment extends Fragment {
|
||||
reuse_nodata_skip.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
EventBus.getDefault().post(
|
||||
new EBDownloadChanged("update", View.VISIBLE, -1));
|
||||
EventBus.getDefault().post(new EBDownloadChanged("update", View.VISIBLE, -1));
|
||||
}
|
||||
adapter.initLocationMap();
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.gh.gamecenter.download;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.support.v4.util.ArrayMap;
|
||||
@ -25,6 +26,8 @@ import com.gh.download.DownloadEntity;
|
||||
import com.gh.download.DownloadManager;
|
||||
import com.gh.download.DownloadStatus;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.adapter.viewholder.DownloadHeadViewHolder;
|
||||
import com.gh.gamecenter.adapter.viewholder.GameUpdateViewHolder;
|
||||
import com.gh.gamecenter.db.info.ConcernInfo;
|
||||
import com.gh.gamecenter.entity.GameUpdateEntity;
|
||||
import com.gh.gamecenter.eventbus.EBDownloadChanged;
|
||||
@ -51,7 +54,7 @@ import rx.schedulers.Schedulers;
|
||||
* Created by LGT on 2016/8/16.
|
||||
*
|
||||
*/
|
||||
public class GameUpdateFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
class GameUpdateFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private Context context;
|
||||
|
||||
@ -63,18 +66,24 @@ public class GameUpdateFragmentAdapter extends RecyclerView.Adapter<RecyclerView
|
||||
private List<GameUpdateEntity> updateList;
|
||||
|
||||
private String packageName;
|
||||
private String entrance;
|
||||
|
||||
public GameUpdateFragmentAdapter(Context context,
|
||||
LinearLayout loading,
|
||||
LinearLayout none,
|
||||
String packageName,
|
||||
boolean isUpdate) {
|
||||
this.context = context;
|
||||
GameUpdateFragmentAdapter(Activity activity,
|
||||
LinearLayout loading,
|
||||
LinearLayout none,
|
||||
String packageName,
|
||||
boolean isUpdate) {
|
||||
this.context = activity;
|
||||
|
||||
gameupdate_ll_loading = loading;
|
||||
gameupdate_tv_none = none;
|
||||
this.packageName = packageName;
|
||||
|
||||
entrance = activity.getIntent().getStringExtra("entrance");
|
||||
if (activity.getIntent().getBundleExtra("data") != null) {
|
||||
entrance = activity.getIntent().getBundleExtra("data").getString("entrance");
|
||||
}
|
||||
|
||||
locationMap = new ArrayMap<>();
|
||||
|
||||
updateList = new ArrayList<>();
|
||||
@ -363,8 +372,6 @@ public class GameUpdateFragmentAdapter extends RecyclerView.Adapter<RecyclerView
|
||||
if (updateEntity.getName().contains("光环助手")) {
|
||||
viewHolder.gu_item_iv_icon.setImageResource(R.drawable.logo);
|
||||
} else {
|
||||
// ImageUtils.getInstance(context).display(
|
||||
// updateEntity.getIcon(), viewHolder.gu_item_iv_icon);
|
||||
viewHolder.gu_item_iv_icon.setImageURI(updateEntity.getIcon());
|
||||
}
|
||||
|
||||
@ -441,41 +448,41 @@ public class GameUpdateFragmentAdapter extends RecyclerView.Adapter<RecyclerView
|
||||
|
||||
DownloadEntity downloadEntity = DownloadManager.getInstance(context).get(updateEntity.getUrl());
|
||||
if (downloadEntity == null) {
|
||||
if (updateEntity.isPluggable()) {
|
||||
viewHolder.gu_item_btv_update.setText("插件化");
|
||||
viewHolder.gu_item_btv_update.setTextColor(Color.WHITE);
|
||||
downloadEntity = DownloadManager.getInstance(context).getByPackage(
|
||||
updateEntity.getPackageName());
|
||||
if (downloadEntity == null
|
||||
|| downloadEntity.getUrl().equals(updateEntity.getUrl())) {
|
||||
viewHolder.gu_item_btv_update.setClickable(true);
|
||||
viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_plugin_style);
|
||||
if (PackageManager.isCanUpdate(updateEntity.getId(), updateEntity.getPackageName())) {
|
||||
if (updateEntity.isPluggable()) {
|
||||
viewHolder.gu_item_btv_update.setText("插件化");
|
||||
viewHolder.gu_item_btv_update.setTextColor(Color.WHITE);
|
||||
downloadEntity = DownloadManager.getInstance(context).getByPackage(
|
||||
updateEntity.getPackageName());
|
||||
if (downloadEntity == null
|
||||
|| downloadEntity.getUrl().equals(updateEntity.getUrl())) {
|
||||
viewHolder.gu_item_btv_update.setClickable(true);
|
||||
viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_plugin_style);
|
||||
} else {
|
||||
viewHolder.gu_item_btv_update.setClickable(false);
|
||||
viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_pause_up);
|
||||
}
|
||||
} else {
|
||||
viewHolder.gu_item_btv_update.setClickable(false);
|
||||
viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_pause_up);
|
||||
viewHolder.gu_item_btv_update.setText("更新");
|
||||
viewHolder.gu_item_btv_update.setTextColor(Color.WHITE);
|
||||
viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_download_style);
|
||||
}
|
||||
} else {
|
||||
viewHolder.gu_item_btv_update.setText("更新");
|
||||
viewHolder.gu_item_btv_update.setTextColor(Color.WHITE);
|
||||
viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_download_style);
|
||||
}
|
||||
} else {
|
||||
if (PackageManager.isCanUpdate(updateEntity.getId(), updateEntity.getPackageName())) {
|
||||
viewHolder.gu_item_btv_update.setText("启动");
|
||||
viewHolder.gu_item_btv_update.setTextColor(Color.WHITE);
|
||||
viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_launch_style);
|
||||
}
|
||||
} else {
|
||||
if (updateEntity.isPluggable()) {
|
||||
viewHolder.gu_item_btv_update.setText("插件化中");
|
||||
viewHolder.gu_item_btv_update.setTextColor(
|
||||
context.getResources().getColorStateList(R.color.text_plugining_style));
|
||||
viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_plugining_style);
|
||||
} else {
|
||||
if (updateEntity.isPluggable()) {
|
||||
viewHolder.gu_item_btv_update.setText("插件化中");
|
||||
viewHolder.gu_item_btv_update.setTextColor(
|
||||
context.getResources().getColorStateList(R.color.text_plugining_style));
|
||||
viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_plugining_style);
|
||||
} else {
|
||||
viewHolder.gu_item_btv_update.setText("更新中");
|
||||
viewHolder.gu_item_btv_update.setTextColor(
|
||||
context.getResources().getColorStateList(R.color.text_downloading_style));
|
||||
viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_downloading_style);
|
||||
}
|
||||
viewHolder.gu_item_btv_update.setText("更新中");
|
||||
viewHolder.gu_item_btv_update.setTextColor(
|
||||
context.getResources().getColorStateList(R.color.text_downloading_style));
|
||||
viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_downloading_style);
|
||||
}
|
||||
}
|
||||
|
||||
@ -547,7 +554,8 @@ public class GameUpdateFragmentAdapter extends RecyclerView.Adapter<RecyclerView
|
||||
} else {
|
||||
downloadEntity.setUpdate(true);
|
||||
}
|
||||
downloadEntity.setEntrance("(下载管理:游戏更新)");
|
||||
|
||||
downloadEntity.setEntrance(entrance + "+(下载管理:游戏更新)");
|
||||
downloadEntity.setLocation("游戏更新:列表");
|
||||
if (updateEntity.getName().contains("光环助手")) {
|
||||
DownloadManager.getInstance(context).pauseAll();
|
||||
|
||||
@ -24,6 +24,16 @@ public class ApkEntity {
|
||||
|
||||
private GameCollectionEntity apkCollection;
|
||||
|
||||
private int order;
|
||||
|
||||
public int getOrder() {
|
||||
return order;
|
||||
}
|
||||
|
||||
public void setOrder(int order) {
|
||||
this.order = order;
|
||||
}
|
||||
|
||||
public GameCollectionEntity getApkCollection() {
|
||||
return apkCollection;
|
||||
}
|
||||
|
||||
@ -1,299 +0,0 @@
|
||||
package com.gh.gamecenter.game;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.facebook.drawee.backends.pipeline.Fresco;
|
||||
import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
|
||||
import com.gh.base.BaseFragment;
|
||||
import com.gh.common.util.DownloadItemUtils;
|
||||
import com.gh.download.DataWatcher;
|
||||
import com.gh.download.DownloadEntity;
|
||||
import com.gh.download.DownloadManager;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.entity.ApkEntity;
|
||||
import com.gh.gamecenter.entity.GameEntity;
|
||||
import com.gh.gamecenter.entity.SubjectEntity;
|
||||
import com.gh.gamecenter.eventbus.EBDownloadStatus;
|
||||
import com.gh.gamecenter.eventbus.EBNetworkState;
|
||||
import com.gh.gamecenter.eventbus.EBPackage;
|
||||
import com.gh.gamecenter.eventbus.EBReuse;
|
||||
import com.gh.gamecenter.eventbus.EBUISwitch;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/6/27.
|
||||
* 游戏-插件界面
|
||||
*/
|
||||
public class Game1Fragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener {
|
||||
|
||||
@BindView(R.id.fm_game_swipe_refresh) SwipeRefreshLayout fm_game_swipe_refresh;
|
||||
@BindView(R.id.fm_game_rv_list) RecyclerView fm_game_rv_list;
|
||||
@BindView(R.id.reuse_no_connection) LinearLayout reuse_no_connection;
|
||||
@BindView(R.id.fm_game_pb_loading) ProgressBarCircularIndeterminate fm_game_pb_loading;
|
||||
|
||||
private Game1FragmentAdapter adapter;
|
||||
|
||||
private int currentItem;
|
||||
|
||||
private DataWatcher dataWatcher = new DataWatcher() {
|
||||
@Override
|
||||
public void onDataChanged(DownloadEntity downloadEntity) {
|
||||
if (!fm_game_swipe_refresh.isRefreshing()) {
|
||||
ArrayList<Integer> locationList = adapter.getLocationMap().get(downloadEntity.getPackageName());
|
||||
if (locationList != null && locationList.size() != 0) {
|
||||
GameEntity gameEntity;
|
||||
for (int location : locationList) {
|
||||
gameEntity = adapter.getGameEntityByLocation(location);
|
||||
if (gameEntity != null) {
|
||||
DownloadItemUtils.processDate(getActivity(), gameEntity,
|
||||
downloadEntity, adapter, location);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
init(R.layout.fragment_game);
|
||||
|
||||
currentItem = 0;
|
||||
|
||||
reuse_no_connection.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
fm_game_swipe_refresh.setRefreshing(true);
|
||||
fm_game_rv_list.setVisibility(View.VISIBLE);
|
||||
fm_game_pb_loading.setVisibility(View.VISIBLE);
|
||||
reuse_no_connection.setVisibility(View.GONE);
|
||||
handler.postDelayed(runnable, 1000);
|
||||
}
|
||||
});
|
||||
|
||||
fm_game_swipe_refresh.setColorSchemeResources(R.color.theme);
|
||||
fm_game_swipe_refresh.setOnRefreshListener(this);
|
||||
|
||||
fm_game_rv_list.setHasFixedSize(true);
|
||||
fm_game_rv_list.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
adapter = new Game1FragmentAdapter(Game1Fragment.this, fm_game_swipe_refresh);
|
||||
fm_game_rv_list.setAdapter(adapter);
|
||||
|
||||
fm_game_rv_list.setOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
||||
super.onScrollStateChanged(recyclerView, newState);
|
||||
if (newState == RecyclerView.SCROLL_STATE_IDLE){
|
||||
Fresco.getImagePipeline().resume();
|
||||
}else {
|
||||
Fresco.getImagePipeline().pause();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadDone() {
|
||||
if (fm_game_swipe_refresh != null && fm_game_swipe_refresh.isRefreshing()) {
|
||||
fm_game_swipe_refresh.setRefreshing(false);
|
||||
}
|
||||
if (fm_game_pb_loading != null && fm_game_pb_loading.getVisibility() == View.VISIBLE) {
|
||||
fm_game_pb_loading.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadError() {
|
||||
fm_game_rv_list.setVisibility(View.GONE);
|
||||
fm_game_pb_loading.setVisibility(View.GONE);
|
||||
reuse_no_connection.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
//下载被删除事件
|
||||
public void onEventMainThread(EBDownloadStatus status) {
|
||||
if ("delete".equals(status.getStatus())) {
|
||||
DownloadManager.getInstance(getActivity()).removePlatform(status.getName(), status.getPlatform());
|
||||
|
||||
ArrayList<Integer> locationList = adapter.getLocationMap().get(status.getPackageName());
|
||||
GameEntity gameEntity;
|
||||
if (locationList != null && locationList.size() != 0) {
|
||||
for (int location : locationList) {
|
||||
gameEntity = adapter.getGameEntityByLocation(location);
|
||||
if (gameEntity != null && gameEntity.getEntryMap() != null) {
|
||||
gameEntity.getEntryMap().remove(status.getPlatform());
|
||||
}
|
||||
adapter.notifyItemChanged(location);
|
||||
}
|
||||
}
|
||||
} else if ("plugin".equals(status.getStatus())) {
|
||||
handler.postDelayed(initPluginRunnable, 100);
|
||||
}
|
||||
}
|
||||
|
||||
Runnable initPluginRunnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (adapter.isInitPlugin()) {
|
||||
handler.postDelayed(initPluginRunnable, 100);
|
||||
} else {
|
||||
adapter.initPlugin();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//安装、卸载事件
|
||||
public void onEventMainThread(EBPackage busFour) {
|
||||
ArrayList<Integer> locationList = adapter.getLocationMap().get(busFour.getPackageName());
|
||||
if (locationList != null) {
|
||||
GameEntity gameEntity;
|
||||
for (int location : locationList) {
|
||||
gameEntity = adapter.getGameEntityByLocation(location);
|
||||
if (gameEntity != null) {
|
||||
if (gameEntity.isPluggable()) {
|
||||
// 插件化列表
|
||||
if ("安装".equals(busFour.getType()) || "卸载".equals(busFour.getType())) {
|
||||
List<GameEntity> list = adapter.getPluginList();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
if (list.get(i).getApk().get(0).getPackageName().equals(busFour.getPackageName())) {
|
||||
if ("卸载".equals(busFour.getType())
|
||||
&& DownloadManager.getInstance(getActivity()).get(
|
||||
list.get(i).getApk().get(0).getUrl()) != null) {
|
||||
adapter.notifyItemChanged(2 + i);
|
||||
} else {
|
||||
list.remove(i);
|
||||
if (list.isEmpty()) {
|
||||
adapter.initItemCount();
|
||||
adapter.notifyItemRangeRemoved(1, 2);
|
||||
} else {
|
||||
adapter.initItemCount();
|
||||
adapter.notifyItemRemoved(location);
|
||||
adapter.notifyItemChanged(1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ("安装".equals(busFour.getType())) {
|
||||
for (ApkEntity apkEntity : gameEntity.getApk()) {
|
||||
if (apkEntity.getPackageName().equals(busFour.getPackageName())) {
|
||||
if (gameEntity.getEntryMap() != null) {
|
||||
gameEntity.getEntryMap().remove(apkEntity.getPlatform());
|
||||
}
|
||||
adapter.notifyItemChanged(location);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if ("卸载".equals(busFour.getType())) {
|
||||
adapter.notifyItemChanged(location);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
adapter.initLocationMap();
|
||||
}
|
||||
}
|
||||
|
||||
//连接上网络事件
|
||||
public void onEventMainThread(EBNetworkState busNetworkState) {
|
||||
if (busNetworkState.isNetworkConnected()) {
|
||||
if (reuse_no_connection.getVisibility() == View.VISIBLE) {
|
||||
fm_game_swipe_refresh.setRefreshing(true);
|
||||
fm_game_rv_list.setVisibility(View.VISIBLE);
|
||||
fm_game_pb_loading.setVisibility(View.GONE);
|
||||
reuse_no_connection.setVisibility(View.GONE);
|
||||
handler.postDelayed(runnable, 1000);
|
||||
} else if (adapter.isNetworkError()) {
|
||||
adapter.setNetworkError(false);
|
||||
adapter.notifyItemChanged(adapter.getItemCount() - 1);
|
||||
adapter.initSlide(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 打开下载按钮事件
|
||||
public void onEventMainThread(EBReuse reuse) {
|
||||
if (("Refresh".equals(reuse.getType()) || "PlatformChanged".equals(reuse.getType()))
|
||||
&& adapter != null) {
|
||||
adapter.notifyItemRangeChanged(0, adapter.getItemCount());
|
||||
}
|
||||
}
|
||||
|
||||
//Fragment界面切换事件
|
||||
public void onEventMainThread(EBUISwitch busNine) {
|
||||
if ("MainActivity".equals(busNine.getFrom())) {
|
||||
if (busNine.getPosition() == 0) {
|
||||
adapter.startAutoScroll();
|
||||
} else {
|
||||
adapter.stopAutoScroll();
|
||||
}
|
||||
} else if ("GameFragment".equals(busNine.getFrom())) {
|
||||
currentItem = busNine.getPosition();
|
||||
if (busNine.getPosition() == 0) {
|
||||
adapter.startAutoScroll();
|
||||
if (fm_game_pb_loading.getVisibility() == View.VISIBLE) {
|
||||
adapter.initSlide(true);
|
||||
}
|
||||
} else {
|
||||
adapter.stopAutoScroll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
if (isEverpause) {
|
||||
for (SubjectEntity subjectEntity : adapter.getSubjectList()) {
|
||||
for (GameEntity entity :subjectEntity.getData()) {
|
||||
entity.setEntryMap(DownloadManager.getInstance(getActivity()).getEntryMap(entity.getName()));
|
||||
}
|
||||
}
|
||||
for (GameEntity entity : adapter.getPluginList()) {
|
||||
entity.setEntryMap(DownloadManager.getInstance(getActivity()).getEntryMap(entity.getName()));
|
||||
}
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
super.onResume();
|
||||
DownloadManager.getInstance(getActivity()).addObserver(dataWatcher);
|
||||
if (currentItem == 0) {
|
||||
adapter.startAutoScroll();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher);
|
||||
if (currentItem == 0) {
|
||||
adapter.stopAutoScroll();
|
||||
}
|
||||
}
|
||||
|
||||
Runnable runnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
adapter = new Game1FragmentAdapter(Game1Fragment.this, fm_game_swipe_refresh);
|
||||
fm_game_rv_list.setAdapter(adapter);
|
||||
adapter.initSlide(true);
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
handler.postDelayed(runnable, 1000);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,976 +0,0 @@
|
||||
package com.gh.gamecenter.game;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.support.v4.util.ArrayMap;
|
||||
import android.support.v4.view.ViewPager;
|
||||
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;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.gh.common.constant.ItemViewType;
|
||||
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.view.CardLinearLayout;
|
||||
import com.gh.download.DownloadManager;
|
||||
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.ImagePagerAdapter;
|
||||
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.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;
|
||||
|
||||
/**
|
||||
* Created by LGT on 2016/7/1.
|
||||
* 游戏-插件-数据适配器
|
||||
*/
|
||||
public class Game1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private Game1Fragment fragment;
|
||||
private Context context;
|
||||
private OnCallBackListener listener;
|
||||
|
||||
private SwipeRefreshLayout game_swipe_refresh;
|
||||
|
||||
private List<SlideEntity> slideList;
|
||||
private List<GameEntity> pluginList;
|
||||
private List<SubjectEntity> subjectList;
|
||||
|
||||
// 包名对应游戏位置
|
||||
private ArrayMap<String, ArrayList<Integer>> locationMap;
|
||||
|
||||
private int itemCount;
|
||||
private int pluginSize;
|
||||
|
||||
private int cardMargin;
|
||||
|
||||
private boolean isNetworkError;
|
||||
private boolean isSlideError;
|
||||
private boolean isListError;
|
||||
private boolean isOver;
|
||||
private boolean isInitPlugin;
|
||||
private boolean isAutoScroll;
|
||||
|
||||
public Game1FragmentAdapter(Game1Fragment fragment,
|
||||
SwipeRefreshLayout refreshLayout) {
|
||||
|
||||
this.fragment = fragment;
|
||||
this.context = fragment.getActivity();
|
||||
this.listener = fragment;
|
||||
|
||||
game_swipe_refresh = refreshLayout;
|
||||
|
||||
slideList = new ArrayList<>();
|
||||
pluginList = new ArrayList<>();
|
||||
subjectList = new ArrayList<>();
|
||||
|
||||
locationMap = new ArrayMap<>();
|
||||
|
||||
itemCount = 0;
|
||||
pluginSize = 0;
|
||||
|
||||
isNetworkError = false;
|
||||
isSlideError = false;
|
||||
isListError = false;
|
||||
isOver = false;
|
||||
isInitPlugin = false;
|
||||
isAutoScroll = false;
|
||||
|
||||
cardMargin = (int) context.getResources().getDimension(R.dimen.cardview_margin);
|
||||
}
|
||||
|
||||
public ArrayMap<String, ArrayList<Integer>> getLocationMap() {
|
||||
return locationMap;
|
||||
}
|
||||
|
||||
public GameEntity getGameEntityByLocation(int location) {
|
||||
|
||||
if (!pluginList.isEmpty() && location > 1 && location <= 1 + pluginList.size()) {
|
||||
return pluginList.get(location - 2);
|
||||
}
|
||||
|
||||
int offset = 1;
|
||||
if (!pluginList.isEmpty()) {
|
||||
offset += 1 + pluginList.size();
|
||||
}
|
||||
for (int i = 0, size = subjectList.size(); i < size; i++) {
|
||||
if (location > offset && location <= subjectList.get(i).getData().size() + offset) {
|
||||
return subjectList.get(i).getData().get(location - offset - 1);
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void initSlide(final boolean isFirst) {
|
||||
RetrofitManager.getApi().getSlide()
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Response<List<SlideEntity>>() {
|
||||
@Override
|
||||
public void onResponse(List<SlideEntity> response) {
|
||||
slideList = response;
|
||||
if (slideList.size() != 0) {
|
||||
notifyItemChanged(0);
|
||||
}
|
||||
if (isFirst) {
|
||||
initSubjectList();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(HttpException e) {
|
||||
isSlideError = true;
|
||||
showView();
|
||||
if (isFirst) {
|
||||
initSubjectList();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initSubjectList() {
|
||||
RetrofitManager.getApi().getChajian()
|
||||
.map(new Func1<List<SubjectEntity>, List<SubjectEntity>>() {
|
||||
@Override
|
||||
public List<SubjectEntity> call(List<SubjectEntity> list) {
|
||||
GameManager manager = new GameManager(context);
|
||||
SubjectEntity subjectEntity;
|
||||
GameEntity gameEntity;
|
||||
for (int j = 0; j < list.size(); j++) {
|
||||
subjectEntity = list.get(j);
|
||||
if (subjectEntity.getData().size() == 1
|
||||
&& !TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())){
|
||||
list.remove(j);
|
||||
j--;
|
||||
continue;
|
||||
}
|
||||
for (int i = 0; i < subjectEntity.getData().size(); i++) {
|
||||
gameEntity = subjectEntity.getData().get(i);
|
||||
if (gameEntity.getApk() != null && !gameEntity.getApk().isEmpty()) {
|
||||
gameEntity.setEntryMap(DownloadManager.getInstance(context).getEntryMap(gameEntity.getName()));
|
||||
manager.addOrUpdate(gameEntity.getApk(), gameEntity.getId(), gameEntity.getName());
|
||||
} else if (TextUtils.isEmpty(gameEntity.getId())) {
|
||||
if (TextUtils.isEmpty(gameEntity.getType())
|
||||
|| TextUtils.isEmpty(gameEntity.getLink())
|
||||
|| TextUtils.isEmpty(gameEntity.getName())
|
||||
|| TextUtils.isEmpty(gameEntity.getImage())) {
|
||||
subjectEntity.getData().remove(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
})
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Response<List<SubjectEntity>>() {
|
||||
@Override
|
||||
public void onResponse(List<SubjectEntity> response) {
|
||||
if (response.size() != 0) {
|
||||
if (!fragment.isHidden() && !fragment.isEverpause()) {
|
||||
if (pluginList.isEmpty()) {
|
||||
subjectList = response;
|
||||
initItemCount();
|
||||
notifyItemRangeInserted(1, getItemCount() - 2);
|
||||
} else {
|
||||
int start = 2 + pluginList.size();
|
||||
subjectList = response;
|
||||
initItemCount();
|
||||
notifyItemRangeInserted(start, getItemCount() - start - 1);
|
||||
}
|
||||
} else {
|
||||
subjectList = response;
|
||||
initItemCount();
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
initLocationMap();
|
||||
}
|
||||
|
||||
if (listener != null) {
|
||||
listener.loadDone();
|
||||
}
|
||||
|
||||
isOver = true;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
|
||||
initPlugin();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(HttpException e) {
|
||||
if (listener != null) {
|
||||
listener.loadDone();
|
||||
}
|
||||
isListError = true;
|
||||
isNetworkError = true;
|
||||
showView();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void initPlugin() {
|
||||
if (isInitPlugin) {
|
||||
return;
|
||||
}
|
||||
isInitPlugin = true;
|
||||
ArrayList<GameUpdateEntity> updateList = PackageManager.getUpdateList();
|
||||
if (updateList.isEmpty()) {
|
||||
isInitPlugin = false;
|
||||
return;
|
||||
}
|
||||
List<GameEntity> list = new ArrayList<>();
|
||||
GameUpdateEntity gameUpdateEntity;
|
||||
pluginSize = 0;
|
||||
for (int i = 0, size= updateList.size(); i < size; i++) {
|
||||
gameUpdateEntity = updateList.get(i);
|
||||
if (gameUpdateEntity.isPluggable()) {
|
||||
pluginSize++;
|
||||
if (list.size() < 3) {
|
||||
GameEntity gameEntity = new GameEntity();
|
||||
gameEntity.setId(gameUpdateEntity.getId());
|
||||
gameEntity.setName(gameUpdateEntity.getName());
|
||||
gameEntity.setIcon(gameUpdateEntity.getIcon());
|
||||
gameEntity.setTag(gameUpdateEntity.getTag());
|
||||
gameEntity.setBrief(gameUpdateEntity.getBrief());
|
||||
gameEntity.setPluggable(true);
|
||||
|
||||
ApkEntity apkEntity = new ApkEntity();
|
||||
apkEntity.setUrl(gameUpdateEntity.getUrl());
|
||||
apkEntity.setPackageName(gameUpdateEntity.getPackageName());
|
||||
apkEntity.setSize(gameUpdateEntity.getSize());
|
||||
apkEntity.setVersion(gameUpdateEntity.getVersion());
|
||||
apkEntity.setGhVersion(gameUpdateEntity.getGhVersion());
|
||||
apkEntity.setPlatform(gameUpdateEntity.getPlatform());
|
||||
apkEntity.setEtag(gameUpdateEntity.getEtag());
|
||||
|
||||
ArrayList<ApkEntity> apk = new ArrayList<>();
|
||||
apk.add(apkEntity);
|
||||
gameEntity.setApk(apk);
|
||||
|
||||
list.add(gameEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!list.isEmpty()) {
|
||||
for (GameEntity gEntity : list) {
|
||||
gEntity.setEntryMap(DownloadManager.getInstance(context).
|
||||
getEntryMap(gEntity.getName()));
|
||||
}
|
||||
if (pluginList.isEmpty()) {
|
||||
pluginList = list;
|
||||
initItemCount();
|
||||
notifyItemRangeInserted(1, pluginList.size() + 1);
|
||||
if (getItemCount() > pluginList.size() + 2) {
|
||||
notifyItemChanged(pluginList.size() + 2);
|
||||
}
|
||||
} else {
|
||||
pluginList = list;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
initLocationMap();
|
||||
}
|
||||
isInitPlugin = false;
|
||||
}
|
||||
|
||||
private void showView() {
|
||||
if (isSlideError && isListError) {
|
||||
Toast.makeText(context, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show();
|
||||
listener.loadError();
|
||||
} else if (isSlideError) {
|
||||
Toast.makeText(context, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show();
|
||||
notifyItemChanged(0);
|
||||
} else if (isListError) {
|
||||
Toast.makeText(context, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show();
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
}
|
||||
}
|
||||
|
||||
public void initLocationMap() {
|
||||
locationMap.clear();
|
||||
|
||||
int count = getItemCount();
|
||||
if (!pluginList.isEmpty()) {
|
||||
GameEntity gameEntity;
|
||||
ArrayList<Integer> list;
|
||||
for (int position = 0, size = pluginList.size(); position < size; position++) {
|
||||
gameEntity = pluginList.get(position);
|
||||
if (gameEntity.getApk() != null && gameEntity.getApk().size() != 0) {
|
||||
for (ApkEntity apkEntity : gameEntity.getApk()) {
|
||||
list = locationMap.get(apkEntity.getPackageName());
|
||||
if (list == null) {
|
||||
list = new ArrayList<>();
|
||||
locationMap.put(apkEntity.getPackageName(), list);
|
||||
}
|
||||
list.add(position + 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!subjectList.isEmpty()) {
|
||||
int offset;
|
||||
GameEntity gameEntity;
|
||||
ArrayList<Integer> list;
|
||||
for (int position = 0; position < count; position++) {
|
||||
offset = 1;
|
||||
if (!pluginList.isEmpty()) {
|
||||
offset += 1 + pluginList.size();
|
||||
}
|
||||
for (int i = 0, size = subjectList.size(); i < size; i++) {
|
||||
if (position > offset && position <= subjectList.get(i).getData().size() + offset) {
|
||||
gameEntity = subjectList.get(i).getData().get(position - offset - 1);
|
||||
if (gameEntity.getApk() != null && !gameEntity.getApk().isEmpty()) {
|
||||
for (ApkEntity apkEntity : gameEntity.getApk()) {
|
||||
list = locationMap.get(apkEntity.getPackageName());
|
||||
if (list == null) {
|
||||
list = new ArrayList<>();
|
||||
locationMap.put(apkEntity.getPackageName(), list);
|
||||
}
|
||||
list.add(position);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void initItemCount() {
|
||||
int pluginSize = 0;
|
||||
if (!pluginList.isEmpty()) {
|
||||
pluginSize += 1 + pluginList.size();
|
||||
}
|
||||
int subjectSize = 0;
|
||||
if (!subjectList.isEmpty()) {
|
||||
SubjectEntity subjectEntity;
|
||||
for (int i = 0, size = subjectList.size(); i < size; i++) {
|
||||
subjectEntity = subjectList.get(i);
|
||||
subjectSize += 1 + subjectEntity.getData().size();
|
||||
}
|
||||
}
|
||||
itemCount = pluginSize + subjectSize;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return 1 + itemCount + 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
|
||||
if (position == 0) {
|
||||
return ItemViewType.GAME_SLIDE;
|
||||
}
|
||||
|
||||
if (!pluginList.isEmpty()) {
|
||||
if (position == 1) {
|
||||
return ItemViewType.COLUMN_HEADER;
|
||||
}
|
||||
if (position > 1 && position <= 1 + pluginList.size()) {
|
||||
return ItemViewType.GAME_NORMAL;
|
||||
}
|
||||
}
|
||||
|
||||
int offset = 1;
|
||||
if (!pluginList.isEmpty()) {
|
||||
offset += 1 + pluginList.size();
|
||||
}
|
||||
GameEntity gameEntity;
|
||||
for (int i = 0, size = subjectList.size(); i < size; i++) {
|
||||
if (position >= offset && position <= subjectList.get(i).getData().size() + offset) {
|
||||
int index = position -offset-1;
|
||||
if (index<0){
|
||||
index = 0;
|
||||
}
|
||||
gameEntity = subjectList.get(i).getData().get(index);
|
||||
if (position == offset && !TextUtils.isEmpty(gameEntity.getImage())){
|
||||
return ItemViewType.GAME_IMAGE;
|
||||
}else if (position == offset){
|
||||
return ItemViewType.COLUMN_HEADER;
|
||||
}
|
||||
if (position == offset+1&&!TextUtils.isEmpty(subjectList.get(i).getData().get(0).getImage())){
|
||||
return ItemViewType.COLUMN_HEADER;
|
||||
}
|
||||
if (!TextUtils.isEmpty(gameEntity.getImage())) {
|
||||
return ItemViewType.GAME_IMAGE;
|
||||
}
|
||||
if (gameEntity.getTest() != null) {
|
||||
return ItemViewType.GAME_TEST;
|
||||
}
|
||||
return ItemViewType.GAME_NORMAL;
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
return ItemViewType.LOADING;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
if (viewType == ItemViewType.GAME_SLIDE) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(
|
||||
R.layout.game_viewpager_item, parent, false);
|
||||
DisplayMetrics outMetrics = new DisplayMetrics();
|
||||
fragment.getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
|
||||
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT, (int) (outMetrics.widthPixels / 16f * 7f));
|
||||
view.setLayoutParams(params);
|
||||
return new GameViewPagerViewHolder(view);
|
||||
} else if (viewType == ItemViewType.COLUMN_HEADER) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(
|
||||
R.layout.game_head_item, parent, false);
|
||||
return new GameHeadViewHolder(view);
|
||||
} else if (viewType == ItemViewType.GAME_NORMAL) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(
|
||||
R.layout.game_normal_item, parent, false);
|
||||
return new GameNormalViewHolder(view);
|
||||
} else if (viewType == ItemViewType.GAME_TEST) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(
|
||||
R.layout.game_test_item, parent, false);
|
||||
return new GameTestViewHolder(view);
|
||||
} else if (viewType == ItemViewType.GAME_IMAGE) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(
|
||||
R.layout.game_image_item, parent, false);
|
||||
return new GameImageViewHolder(view);
|
||||
} else if (viewType == ItemViewType.LOADING){
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(
|
||||
R.layout.refresh_footerview, parent, false);
|
||||
return new FooterViewHolder(view);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
|
||||
if (holder instanceof GameViewPagerViewHolder) {
|
||||
initGameViewPagerViewHolder((GameViewPagerViewHolder) holder);
|
||||
} else if (holder instanceof GameHeadViewHolder) {
|
||||
initGameHeadViewHolder((GameHeadViewHolder) holder, position);
|
||||
} else if (holder instanceof GameImageViewHolder) {
|
||||
initGameImageViewHolder((GameImageViewHolder) holder, position);
|
||||
} else if (holder instanceof GameNormalViewHolder){
|
||||
initGameNormalViewHolder((GameNormalViewHolder) holder, position);
|
||||
} else if (holder instanceof GameTestViewHolder) {
|
||||
initGameTestViewHolder((GameTestViewHolder) holder, position);
|
||||
} else if (holder instanceof FooterViewHolder) {
|
||||
initFooterViewHolder((FooterViewHolder) holder);
|
||||
}
|
||||
}
|
||||
|
||||
private void initGameViewPagerViewHolder(final GameViewPagerViewHolder viewHolder) {
|
||||
if (isSlideError) {
|
||||
viewHolder.viewpager_tv_failure.setVisibility(View.VISIBLE);
|
||||
viewHolder.viewPager.setVisibility(View.GONE);
|
||||
viewHolder.viewpager_ll_hint.setVisibility(View.GONE);
|
||||
} else {
|
||||
viewHolder.viewpager_tv_failure.setVisibility(View.GONE);
|
||||
viewHolder.viewPager.setVisibility(View.VISIBLE);
|
||||
viewHolder.viewpager_ll_hint.setVisibility(View.VISIBLE);
|
||||
}
|
||||
if (slideList.size() != 0 && viewHolder.viewPager.getAdapter() == null) {
|
||||
viewHolder.viewpager_ll_hint.removeAllViews();
|
||||
for (int i = 0, size = slideList.size(); i < size; i++) {
|
||||
ImageView imageView = new ImageView(context);
|
||||
LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(
|
||||
DisplayUtils.dip2px(context, 6), DisplayUtils.dip2px(context, 6));
|
||||
lparams.bottomMargin = DisplayUtils.dip2px(context, 6);
|
||||
if (i == 0) {
|
||||
imageView.setImageResource(R.drawable.oval_hint_up);
|
||||
} else {
|
||||
imageView.setImageResource(R.drawable.oval_hint_dn);
|
||||
}
|
||||
if (i != 0) {
|
||||
lparams.leftMargin = DisplayUtils.dip2px(context, 6);
|
||||
}
|
||||
imageView.setLayoutParams(lparams);
|
||||
viewHolder.viewpager_ll_hint.addView(imageView);
|
||||
}
|
||||
viewHolder.viewPager.setAdapter(new ImagePagerAdapter(context, slideList, true));
|
||||
viewHolder.viewPager.setInterval(3000);
|
||||
viewHolder.viewPager.startAutoScroll();
|
||||
viewHolder.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
for (int i = 0, size = viewHolder.viewpager_ll_hint.getChildCount(); i < size; i++) {
|
||||
if (i == position % size) {
|
||||
((ImageView) viewHolder.viewpager_ll_hint.getChildAt(i))
|
||||
.setImageResource(R.drawable.oval_hint_up);
|
||||
} else {
|
||||
((ImageView) viewHolder.viewpager_ll_hint.getChildAt(i))
|
||||
.setImageResource(R.drawable.oval_hint_dn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int state) {
|
||||
// 解决viewpager和SwipeRefreshLayout滑动冲突
|
||||
if (state == ViewPager.SCROLL_STATE_DRAGGING) {
|
||||
game_swipe_refresh.setEnabled(false);
|
||||
} else {
|
||||
game_swipe_refresh.setEnabled(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
viewHolder.viewpager_tv_failure.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
isSlideError = false;
|
||||
notifyItemChanged(0);
|
||||
initSlide(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (isAutoScroll) {
|
||||
viewHolder.viewPager.startAutoScroll();
|
||||
} else {
|
||||
viewHolder.viewPager.stopAutoScroll();
|
||||
}
|
||||
}
|
||||
|
||||
private void initGameTestViewHolder(GameTestViewHolder holder, int position) {
|
||||
int offset = 1;
|
||||
if (!pluginList.isEmpty()) {
|
||||
offset += 1 + pluginList.size();
|
||||
}
|
||||
GameEntity gameEntity;
|
||||
for (int i = 0, size = subjectList.size(); i < size; i++) {
|
||||
if (position > offset && position <= subjectList.get(i).getData().size() + offset) {
|
||||
gameEntity = subjectList.get(i).getData().get(position - offset - 1);
|
||||
if (gameEntity.getTest() != null) {
|
||||
int order = position - offset - 1;
|
||||
if (subjectList.get(i).getData().get(0).getImage() != null) {
|
||||
order--;
|
||||
}
|
||||
initGameTest(holder, gameEntity, order, subjectList.get(i), i + 1 == size);
|
||||
break;
|
||||
}
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
}
|
||||
|
||||
private void initGameTest(GameTestViewHolder holder, final GameEntity gameEntity,
|
||||
final int i, final SubjectEntity subjectEntity, boolean isBottom) {
|
||||
|
||||
// 最后一个
|
||||
((CardLinearLayout) holder.itemView).setBottom(isBottom);
|
||||
if (TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())) {
|
||||
if (i + 1 == subjectEntity.getData().size()) {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(0);
|
||||
}
|
||||
} else {
|
||||
if (i + 2 == subjectEntity.getData().size()) {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(0);
|
||||
}
|
||||
}
|
||||
|
||||
if (subjectEntity.isOrder()) {
|
||||
holder.home2_game_order.setVisibility(View.VISIBLE);
|
||||
holder.home2_game_order.setText(String.valueOf(i + 1));
|
||||
} else {
|
||||
holder.home2_game_order.setVisibility(View.GONE);
|
||||
}
|
||||
holder.gameThumb.setImageURI(gameEntity.getImage());
|
||||
holder.gameNameAndSize.setText(gameEntity.getName());
|
||||
if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) {
|
||||
holder.gameDes.setText(gameEntity.getBrief());
|
||||
} else {
|
||||
holder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief()));
|
||||
}
|
||||
holder.gameTestType.setText(gameEntity.getTest().getType());
|
||||
if (gameEntity.getTest().getStart() == 0) {
|
||||
holder.gameTestTime.setVisibility(View.GONE);
|
||||
} else {
|
||||
holder.gameTestTime.setText(GameViewUtils.getGameTestDate(gameEntity.getTest().getStart()));
|
||||
}
|
||||
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", gameEntity.getName());
|
||||
kv.put("位置", String.valueOf(i + 1));
|
||||
DataUtils.onEvent(context, "点击", "游戏-插件-" + subjectEntity.getName(), kv);
|
||||
|
||||
DataCollectionUtils.uploadClick(context,
|
||||
subjectEntity.getName() + "-列表", "游戏-插件", gameEntity.getName());
|
||||
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-插件:" + subjectEntity.getName() + "-列表)");
|
||||
}
|
||||
});
|
||||
|
||||
if (gameEntity.getTest().getEnd() != 0) {
|
||||
long endTime = Long.valueOf(gameEntity.getTest().getEnd() + "000");
|
||||
long todayTime = new Date().getTime();
|
||||
if (todayTime > endTime) {
|
||||
// 测试时间已过
|
||||
gameEntity.setApk(null);
|
||||
}
|
||||
}
|
||||
|
||||
DownloadItemUtils.setOnClickListener(context,
|
||||
holder.downloadBtn, gameEntity, i,
|
||||
Game1FragmentAdapter.this, "(游戏-插件:" + subjectEntity.getName() + "-列表)",
|
||||
"游戏-插件-" + subjectEntity.getName() + ":" + gameEntity.getName());
|
||||
|
||||
DownloadItemUtils.updateItem(context, holder.gameDes,
|
||||
holder.game_progressbar, holder.game_ll_info, holder.download_speed,
|
||||
holder.download_percentage, holder.downloadBtn, gameEntity);
|
||||
}
|
||||
|
||||
private void initGameNormalViewHolder(GameNormalViewHolder holder, int position) {
|
||||
GameEntity gameEntity;
|
||||
|
||||
if (!pluginList.isEmpty() && position > 1 && position <= 1 + pluginList.size()) {
|
||||
gameEntity = pluginList.get(position - 2);
|
||||
SubjectEntity subjectEntity = new SubjectEntity();
|
||||
subjectEntity.setOrder(false);
|
||||
subjectEntity.setName("插件化");
|
||||
subjectEntity.setData(pluginList);
|
||||
initGameNormal(holder, gameEntity, position - 2, subjectEntity, false);
|
||||
return;
|
||||
}
|
||||
|
||||
int offset = 1;
|
||||
if (!pluginList.isEmpty()) {
|
||||
offset += 1 + pluginList.size();
|
||||
}
|
||||
for (int i = 0, size = subjectList.size(); i < size; i++) {
|
||||
if (position > offset && position <= subjectList.get(i).getData().size() + offset) {
|
||||
int index = position -offset-1;
|
||||
if (index<0){
|
||||
index = 0;
|
||||
}
|
||||
gameEntity = subjectList.get(i).getData().get(index);
|
||||
if (TextUtils.isEmpty(gameEntity.getImage()) && gameEntity.getTest() == null) {
|
||||
int order = position - offset - 1;
|
||||
if (subjectList.get(i).getData().get(0).getImage() != null) {
|
||||
order--;
|
||||
}
|
||||
initGameNormal(holder, gameEntity, order, subjectList.get(i), i + 1 == size);
|
||||
break;
|
||||
}
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
}
|
||||
|
||||
private void initGameNormal(GameNormalViewHolder holder, final GameEntity gameEntity,
|
||||
final int i, final SubjectEntity subjectEntity, boolean isBottom) {
|
||||
|
||||
// 最后一个
|
||||
((CardLinearLayout) holder.itemView).setBottom(isBottom);
|
||||
if (TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())) {
|
||||
if (i + 1 == subjectEntity.getData().size()) {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(0);
|
||||
}
|
||||
} else {
|
||||
if (i + 2 == subjectEntity.getData().size()) {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(0);
|
||||
}
|
||||
}
|
||||
|
||||
if (subjectEntity.isOrder()) {
|
||||
holder.home1_game_order.setVisibility(View.VISIBLE);
|
||||
holder.home1_game_order.setText(String.valueOf(i + 1));
|
||||
} else {
|
||||
holder.home1_game_order.setVisibility(View.GONE);
|
||||
}
|
||||
holder.gameThumb.setImageURI(gameEntity.getIcon());
|
||||
if (gameEntity.isPluggable()) {
|
||||
holder.gameNameAndSize.setText(String.format("%s - %s", gameEntity.getName(),
|
||||
PlatformUtils.getInstance(context).getPlatformName(
|
||||
gameEntity.getApk().get(0).getPlatform())));
|
||||
} else {
|
||||
holder.gameNameAndSize.setText(gameEntity.getName());
|
||||
}
|
||||
if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) {
|
||||
holder.gameDes.setText(gameEntity.getBrief());
|
||||
} else {
|
||||
holder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief()));
|
||||
}
|
||||
GameViewUtils.setLabelList(context, holder.labelList, gameEntity.getTag());
|
||||
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", gameEntity.getName());
|
||||
kv.put("位置", String.valueOf(i + 1));
|
||||
DataUtils.onEvent(context, "点击", "游戏-插件-" + subjectEntity.getName(), kv);
|
||||
|
||||
DataCollectionUtils.uploadClick(context,
|
||||
subjectEntity.getName() + "-列表", "游戏-插件", gameEntity.getName());
|
||||
|
||||
if (gameEntity.isPluggable()) {
|
||||
GameUtils.startGameDetailActivity(context, gameEntity.getId(), "(游戏-插件:" + subjectEntity.getName() + "-列表)");
|
||||
} else {
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-插件:" + subjectEntity.getName() + "-列表)");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, gameEntity, i,
|
||||
Game1FragmentAdapter.this, "(游戏-插件:" + subjectEntity.getName() + "-列表)",
|
||||
"游戏-插件-" + subjectEntity.getName() + ":" + gameEntity.getName());
|
||||
|
||||
DownloadItemUtils.updateItem(context, holder.gameDes,
|
||||
holder.game_progressbar, holder.game_ll_info, holder.download_speed,
|
||||
holder.download_percentage, holder.downloadBtn, gameEntity, !gameEntity.isPluggable());
|
||||
}
|
||||
|
||||
public void initGameImageViewHolder(GameImageViewHolder holder, int position) {
|
||||
int offset = 1;
|
||||
if (!pluginList.isEmpty()) {
|
||||
offset += 1 + pluginList.size();
|
||||
}
|
||||
GameEntity gameEntity;
|
||||
for (int i = 0, size = subjectList.size(); i < size; i++) {
|
||||
if (position >= offset && position <= subjectList.get(i).getData().size() + offset) {
|
||||
int index = position - offset - 1;
|
||||
if (index<0){
|
||||
index = 0;
|
||||
}
|
||||
gameEntity = subjectList.get(i).getData().get(index);
|
||||
if (position == offset && !TextUtils.isEmpty(gameEntity.getImage())) {
|
||||
|
||||
if (i == 0) {
|
||||
((CardLinearLayout) holder.itemView).setmTop(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setmTop(0);
|
||||
}
|
||||
|
||||
final GameEntity entity = gameEntity;
|
||||
final String name = subjectList.get(i).getName();
|
||||
String tag = entity.getImage();
|
||||
holder.image.setTag(tag);
|
||||
ImageUtils.getInstance().display(holder.image, entity.getImage(),
|
||||
context.getResources().getDisplayMetrics().widthPixels - DisplayUtils.dip2px(context, 16));
|
||||
holder.image.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", entity.getName());
|
||||
kv.put("位置", "大图");
|
||||
DataUtils.onEvent(context, "点击", "游戏-插件-" + name, kv);
|
||||
|
||||
DataCollectionUtils.uploadClick(context, name + "-大图", "游戏-插件");
|
||||
|
||||
if ("game".equals(entity.getType())) {
|
||||
GameUtils.startGameDetailActivity(context, entity.getLink(), "(游戏-插件:" + name + "-大图)");
|
||||
} else if ("news".equals(entity.getType())) {
|
||||
// 统计阅读量
|
||||
NewsUtils.statNewsViews(entity.getLink());
|
||||
|
||||
Intent intent = new Intent(context, NewsDetailActivity.class);
|
||||
intent.putExtra("newsId", entity.getLink());
|
||||
intent.putExtra("entrance", "(游戏-插件:" + name + "-大图)");
|
||||
context.startActivity(intent);
|
||||
} else if ("column".equals(entity.getType())) {
|
||||
Intent intent = new Intent(context, SubjectActivity.class);
|
||||
intent.putExtra("id", entity.getLink());
|
||||
intent.putExtra("name", entity.getName());
|
||||
intent.putExtra("entrance", "(游戏-插件:" + name + "-大图)");
|
||||
context.startActivity(intent);
|
||||
}
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
}
|
||||
|
||||
public void initGameHeadViewHolder(GameHeadViewHolder holder, int position) {
|
||||
if (!pluginList.isEmpty() && position == 1) {
|
||||
((CardLinearLayout) holder.itemView).setmTop(cardMargin);
|
||||
holder.title.setTextColor(Color.parseColor("#00b7fa"));
|
||||
holder.thumb.setVisibility(View.VISIBLE);
|
||||
holder.thumb.setImageResource(R.drawable.home_plug_upgrade);
|
||||
holder.title.setText(String.format(Locale.getDefault(), "你有%d个游戏可以升级插件版", pluginSize));
|
||||
if (pluginSize <= 3) {
|
||||
holder.link.setVisibility(View.GONE);
|
||||
} else {
|
||||
holder.link.setVisibility(View.VISIBLE);
|
||||
holder.link.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent(context, PluginActivity.class);
|
||||
intent.putExtra("entrance", "(游戏-插件:插件化-全部)");
|
||||
context.startActivity(intent);
|
||||
}
|
||||
});
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
int offset = 1;
|
||||
GameEntity gameEntity;
|
||||
if (!pluginList.isEmpty()) {
|
||||
offset += 1 + pluginList.size();
|
||||
}
|
||||
for (int i = 0, size = subjectList.size(); i < size; i++) {
|
||||
if (position >= offset && position <= subjectList.get(i).getData().size() + offset){
|
||||
int index = position - offset - 1;
|
||||
if (index < 0){
|
||||
index = 0;
|
||||
}
|
||||
gameEntity = subjectList.get(i).getData().get(index);
|
||||
if (position == offset && TextUtils.isEmpty(gameEntity.getImage()) || position == offset + 1
|
||||
&& !TextUtils.isEmpty(subjectList.get(i).getData().get(0).getImage())) {
|
||||
if (TextUtils.isEmpty(subjectList.get(i).getData().get(0).getImage())
|
||||
&& pluginList.isEmpty() && i == 0) {
|
||||
((CardLinearLayout) holder.itemView).setmTop(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setmTop(0);
|
||||
}
|
||||
holder.thumb.setVisibility(View.GONE);
|
||||
holder.title.setText(subjectList.get(i).getName());
|
||||
holder.title.setTextColor(Color.BLACK);
|
||||
final int ii = i;
|
||||
if (subjectList.get(i).getData().size()>= Integer.parseInt(subjectList.get(i).getMore())){
|
||||
holder.link.setVisibility(View.GONE);
|
||||
}else {
|
||||
holder.link.setVisibility(View.VISIBLE);
|
||||
}
|
||||
holder.link.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
SubjectEntity subjectEntity = subjectList.get(ii);
|
||||
Intent intent = new Intent(context, SubjectActivity.class);
|
||||
intent.putExtra("id", subjectEntity.getId());
|
||||
intent.putExtra("name", subjectEntity.getName());
|
||||
intent.putExtra("order",subjectEntity.isOrder());
|
||||
intent.putExtra("entrance", "(游戏-插件:" + subjectEntity.getName() + "-全部)");
|
||||
context.startActivity(intent);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
}
|
||||
|
||||
private void initFooterViewHolder(FooterViewHolder holder) {
|
||||
if (isNetworkError) {
|
||||
holder.lineLeft.setVisibility(View.GONE);
|
||||
holder.lineRight.setVisibility(View.GONE);
|
||||
holder.loading.setVisibility(View.GONE);
|
||||
holder.hint.setText("加载失败,点击重试");
|
||||
holder.itemView.setClickable(true);
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
isNetworkError = false;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
initSubjectList();
|
||||
}
|
||||
});
|
||||
} else if (isOver) {
|
||||
holder.lineLeft.setVisibility(View.VISIBLE);
|
||||
holder.lineRight.setVisibility(View.VISIBLE);
|
||||
holder.loading.setVisibility(View.GONE);
|
||||
holder.hint.setText("到底了哦~");
|
||||
holder.itemView.setClickable(false);
|
||||
} else {
|
||||
holder.lineLeft.setVisibility(View.GONE);
|
||||
holder.lineRight.setVisibility(View.GONE);
|
||||
holder.loading.setVisibility(View.VISIBLE);
|
||||
holder.hint.setText("加载中...");
|
||||
holder.itemView.setClickable(false);
|
||||
}
|
||||
}
|
||||
|
||||
public void startAutoScroll() {
|
||||
isAutoScroll = true;
|
||||
notifyItemChanged(0);
|
||||
}
|
||||
|
||||
public void stopAutoScroll() {
|
||||
isAutoScroll = false;
|
||||
notifyItemChanged(0);
|
||||
}
|
||||
|
||||
public List<GameEntity> getPluginList() {
|
||||
return pluginList;
|
||||
}
|
||||
|
||||
public List<SubjectEntity> getSubjectList() {
|
||||
return subjectList;
|
||||
}
|
||||
|
||||
public boolean isNetworkError() {
|
||||
return isNetworkError;
|
||||
}
|
||||
|
||||
public void setNetworkError(boolean networkError) {
|
||||
isNetworkError = networkError;
|
||||
}
|
||||
|
||||
public boolean isInitPlugin() {
|
||||
return isInitPlugin;
|
||||
}
|
||||
}
|
||||
@ -1,222 +0,0 @@
|
||||
package com.gh.gamecenter.game;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
|
||||
import com.gh.base.BaseFragment;
|
||||
import com.gh.common.util.DownloadItemUtils;
|
||||
import com.gh.download.DataWatcher;
|
||||
import com.gh.download.DownloadEntity;
|
||||
import com.gh.download.DownloadManager;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.entity.ApkEntity;
|
||||
import com.gh.gamecenter.entity.GameEntity;
|
||||
import com.gh.gamecenter.entity.SubjectEntity;
|
||||
import com.gh.gamecenter.eventbus.EBDownloadStatus;
|
||||
import com.gh.gamecenter.eventbus.EBNetworkState;
|
||||
import com.gh.gamecenter.eventbus.EBPackage;
|
||||
import com.gh.gamecenter.eventbus.EBReuse;
|
||||
import com.gh.gamecenter.eventbus.EBUISwitch;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import butterknife.BindView;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/6/28.
|
||||
*/
|
||||
public class Game2Fragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener {
|
||||
|
||||
@BindView(R.id.fm_game_swipe_refresh) SwipeRefreshLayout fm_game_swipe_refresh;
|
||||
@BindView(R.id.fm_game_rv_list) RecyclerView fm_game_rv_list;
|
||||
private Game2FragmentAdapter adapter;
|
||||
@BindView(R.id.reuse_no_connection) LinearLayout reuse_no_connection;
|
||||
@BindView(R.id.fm_game_pb_loading) ProgressBarCircularIndeterminate fm_game_pb_loading;
|
||||
|
||||
DataWatcher dataWatcher = new DataWatcher() {
|
||||
@Override
|
||||
public void onDataChanged(DownloadEntity downloadEntity) {
|
||||
if (!fm_game_swipe_refresh.isRefreshing()) {
|
||||
ArrayList<Integer> locationList = adapter.getLocationMap().get(downloadEntity.getPackageName());
|
||||
if (locationList != null && locationList.size() != 0) {
|
||||
GameEntity gameEntity;
|
||||
for (int location : locationList) {
|
||||
gameEntity = adapter.getGameEntityByLocation(location);
|
||||
if (gameEntity != null) {
|
||||
DownloadItemUtils.processDate(getActivity(), gameEntity,
|
||||
downloadEntity, adapter, location);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
init(R.layout.fragment_game);
|
||||
|
||||
reuse_no_connection.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
fm_game_swipe_refresh.setRefreshing(true);
|
||||
fm_game_rv_list.setVisibility(View.VISIBLE);
|
||||
fm_game_pb_loading.setVisibility(View.VISIBLE);
|
||||
reuse_no_connection.setVisibility(View.GONE);
|
||||
handler.postDelayed(runnable, 1000);
|
||||
}
|
||||
});
|
||||
|
||||
fm_game_swipe_refresh.setColorSchemeResources(R.color.theme);
|
||||
fm_game_swipe_refresh.setOnRefreshListener(this);
|
||||
|
||||
fm_game_rv_list.setHasFixedSize(true);
|
||||
fm_game_rv_list.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
adapter = new Game2FragmentAdapter(Game2Fragment.this, false);
|
||||
fm_game_rv_list.setAdapter(adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadDone() {
|
||||
if (fm_game_swipe_refresh != null && fm_game_swipe_refresh.isRefreshing()) {
|
||||
fm_game_swipe_refresh.setRefreshing(false);
|
||||
}
|
||||
if (fm_game_pb_loading != null && fm_game_pb_loading.getVisibility() == View.VISIBLE) {
|
||||
fm_game_pb_loading.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadError() {
|
||||
Toast.makeText(getActivity(), "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show();
|
||||
if (fm_game_swipe_refresh != null && fm_game_swipe_refresh.isRefreshing()) {
|
||||
fm_game_swipe_refresh.setRefreshing(false);
|
||||
}
|
||||
if (fm_game_pb_loading != null && fm_game_pb_loading.getVisibility() == View.VISIBLE) {
|
||||
fm_game_pb_loading.setVisibility(View.GONE);
|
||||
}
|
||||
fm_game_rv_list.setVisibility(View.GONE);
|
||||
reuse_no_connection.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
//下载被删除事件
|
||||
public void onEventMainThread(EBDownloadStatus status) {
|
||||
if ("delete".equals(status.getStatus())) {
|
||||
DownloadManager.getInstance(getActivity()).removePlatform(status.getName(), status.getPlatform());
|
||||
|
||||
ArrayList<Integer> locationList = adapter.getLocationMap().get(status.getPackageName());
|
||||
if (locationList != null && locationList.size() != 0) {
|
||||
GameEntity gameEntity;
|
||||
for (int location : locationList) {
|
||||
gameEntity = adapter.getGameEntityByLocation(location);
|
||||
if (gameEntity != null && gameEntity.getEntryMap() != null) {
|
||||
gameEntity.getEntryMap().remove(status.getPlatform());
|
||||
}
|
||||
adapter.notifyItemChanged(location);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 打开下载按钮事件
|
||||
public void onEventMainThread(EBReuse reuse) {
|
||||
if ("Refresh".equals(reuse.getType()) && adapter != null) {
|
||||
adapter.notifyItemRangeChanged(0, adapter.getItemCount());
|
||||
}
|
||||
}
|
||||
|
||||
//安装、卸载事件
|
||||
public void onEventMainThread(EBPackage busFour) {
|
||||
ArrayList<Integer> locationList = adapter.getLocationMap().get(busFour.getPackageName());
|
||||
if (locationList != null) {
|
||||
GameEntity gameEntity;
|
||||
for (int location : locationList) {
|
||||
gameEntity = adapter.getGameEntityByLocation(location);
|
||||
if (gameEntity != null) {
|
||||
if ("安装".equals(busFour.getType())) {
|
||||
for (ApkEntity apkEntity : gameEntity.getApk()) {
|
||||
if (apkEntity.getPackageName().equals(busFour.getPackageName())) {
|
||||
if (gameEntity.getEntryMap() != null) {
|
||||
gameEntity.getEntryMap().remove(apkEntity.getPlatform());
|
||||
}
|
||||
adapter.notifyItemChanged(location);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if ("卸载".equals(busFour.getType())) {
|
||||
adapter.notifyItemChanged(location);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//连接上网络事件
|
||||
public void onEventMainThread(EBNetworkState busNetworkState) {
|
||||
if (busNetworkState.isNetworkConnected()) {
|
||||
if (reuse_no_connection.getVisibility() == View.VISIBLE) {
|
||||
fm_game_swipe_refresh.setRefreshing(true);
|
||||
fm_game_rv_list.setVisibility(View.VISIBLE);
|
||||
fm_game_pb_loading.setVisibility(View.GONE);
|
||||
reuse_no_connection.setVisibility(View.GONE);
|
||||
handler.postDelayed(runnable, 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Fragment界面切换事件
|
||||
public void onEventMainThread(EBUISwitch busNine) {
|
||||
if ("GameFragment".equals(busNine.getFrom())) {
|
||||
if (busNine.getPosition() == 1) {
|
||||
if (fm_game_pb_loading.getVisibility() == View.VISIBLE) {
|
||||
adapter.initSubjectList();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
if (isEverpause) {
|
||||
for (SubjectEntity subjectEntity : adapter.getSubectList()) {
|
||||
for (GameEntity entity :subjectEntity.getData()) {
|
||||
entity.setEntryMap(DownloadManager.getInstance(getActivity()).getEntryMap(entity.getName()));
|
||||
}
|
||||
}
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
super.onResume();
|
||||
DownloadManager.getInstance(getActivity()).addObserver(dataWatcher);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher);
|
||||
}
|
||||
|
||||
Runnable runnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
adapter = new Game2FragmentAdapter(Game2Fragment.this, true);
|
||||
fm_game_rv_list.setAdapter(adapter);
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
handler.postDelayed(runnable, 1000);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,572 +0,0 @@
|
||||
package com.gh.gamecenter.game;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.support.v4.util.ArrayMap;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.gh.common.constant.ItemViewType;
|
||||
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.view.CardLinearLayout;
|
||||
import com.gh.download.DownloadManager;
|
||||
import com.gh.gamecenter.NewsDetailActivity;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.SubjectActivity;
|
||||
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.entity.ApkEntity;
|
||||
import com.gh.gamecenter.entity.GameEntity;
|
||||
import com.gh.gamecenter.entity.SubjectEntity;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/6/28.
|
||||
* 游戏-推荐-数据适配器
|
||||
*/
|
||||
public class Game2FragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private Game2Fragment fragment;
|
||||
private Context context;
|
||||
private OnCallBackListener listener;
|
||||
|
||||
private List<SubjectEntity> subjectList;
|
||||
private ArrayMap<String, ArrayList<Integer>> locationMap;
|
||||
|
||||
private int cardMargin;
|
||||
|
||||
public Game2FragmentAdapter(Game2Fragment fragment, boolean isLoad) {
|
||||
|
||||
this.fragment = fragment;
|
||||
this.context = fragment.getActivity();
|
||||
this.listener = fragment;
|
||||
|
||||
subjectList = new ArrayList<>();
|
||||
|
||||
locationMap = new ArrayMap<>();
|
||||
|
||||
cardMargin = (int) context.getResources().getDimension(R.dimen.cardview_margin);
|
||||
|
||||
if (isLoad) {
|
||||
initSubjectList();
|
||||
}
|
||||
}
|
||||
|
||||
public ArrayMap<String, ArrayList<Integer>> getLocationMap() {
|
||||
return locationMap;
|
||||
}
|
||||
|
||||
public void initSubjectList() {
|
||||
RetrofitManager.getApi().getTuijian()
|
||||
.map(new Func1<List<SubjectEntity>, List<SubjectEntity>>() {
|
||||
@Override
|
||||
public List<SubjectEntity> call(List<SubjectEntity> list) {
|
||||
GameManager manager = new GameManager(context);
|
||||
SubjectEntity subjectEntity;
|
||||
GameEntity gameEntity;
|
||||
for (int j = 0; j < list.size(); j++) {
|
||||
subjectEntity = list.get(j);
|
||||
if (subjectEntity.getData().size() == 1
|
||||
&& !TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())){
|
||||
list.remove(j);
|
||||
j--;
|
||||
continue;
|
||||
}
|
||||
for (int i = 0; i < subjectEntity.getData().size(); i++) {
|
||||
gameEntity = subjectEntity.getData().get(i);
|
||||
if (gameEntity.getApk() != null && !gameEntity.getApk().isEmpty()) {
|
||||
gameEntity.setEntryMap(DownloadManager.getInstance(context).getEntryMap(gameEntity.getName()));
|
||||
manager.addOrUpdate(gameEntity.getApk(), gameEntity.getId(), gameEntity.getName());
|
||||
} else if (TextUtils.isEmpty(gameEntity.getId())) {
|
||||
if (TextUtils.isEmpty(gameEntity.getType())
|
||||
|| TextUtils.isEmpty(gameEntity.getLink())
|
||||
|| TextUtils.isEmpty(gameEntity.getName())
|
||||
|| TextUtils.isEmpty(gameEntity.getImage())) {
|
||||
subjectEntity.getData().remove(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
})
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Response<List<SubjectEntity>>() {
|
||||
@Override
|
||||
public void onResponse(List<SubjectEntity> response) {
|
||||
if (response.size() != 0) {
|
||||
if (!fragment.isHidden() && !fragment.isEverpause()) {
|
||||
subjectList = response;
|
||||
notifyItemRangeInserted(0, getItemCount());
|
||||
} else {
|
||||
subjectList = response;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
initLocationMap();
|
||||
}
|
||||
|
||||
if (listener != null) {
|
||||
listener.loadDone();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(HttpException e) {
|
||||
if (listener != null) {
|
||||
listener.loadError();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initLocationMap() {
|
||||
locationMap.clear();
|
||||
|
||||
if (!subjectList.isEmpty()) {
|
||||
int count = getItemCount() - 1;
|
||||
int offset;
|
||||
ArrayList<Integer> list;
|
||||
GameEntity gameEntity;
|
||||
for (int position = 0; position < count; position++) {
|
||||
offset = 0;
|
||||
for (int i = 0, size = subjectList.size(); i < size; i++) {
|
||||
if (position > offset && position <= subjectList.get(i).getData().size() + offset) {
|
||||
gameEntity = subjectList.get(i).getData().get(position - offset - 1);
|
||||
if (gameEntity.getApk() != null && !gameEntity.getApk().isEmpty()) {
|
||||
for (ApkEntity apkEntity : gameEntity.getApk()) {
|
||||
list = locationMap.get(apkEntity.getPackageName());
|
||||
if (list == null) {
|
||||
list = new ArrayList<>();
|
||||
locationMap.put(apkEntity.getPackageName(), list);
|
||||
}
|
||||
list.add(position);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public GameEntity getGameEntityByLocation(int position) {
|
||||
int offset = 0;
|
||||
for (int i = 0; i < subjectList.size(); i++) {
|
||||
if (position > offset && position <= subjectList.get(i).getData().size() + offset) {
|
||||
return subjectList.get(i).getData().get(position - offset - 1);
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
int subjectSize = 0;
|
||||
if (!subjectList.isEmpty()) {
|
||||
for (int i = 0; i < subjectList.size(); i++) {
|
||||
SubjectEntity subjectEntity = subjectList.get(i);
|
||||
subjectSize += subjectEntity.getData().size() + 1;
|
||||
}
|
||||
subjectSize += 1;
|
||||
}
|
||||
return subjectSize;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (!subjectList.isEmpty()) {
|
||||
int offset = 0;
|
||||
GameEntity gameEntity;
|
||||
for (int i = 0; i < subjectList.size(); i++) {
|
||||
if (position >= offset && position <= subjectList.get(i).getData().size() + offset) {
|
||||
int index = position - offset - 1;
|
||||
if (index < 0) {
|
||||
index = 0;
|
||||
}
|
||||
gameEntity = subjectList.get(i).getData().get(index);
|
||||
if (position == offset && !TextUtils.isEmpty(gameEntity.getImage())) {
|
||||
return ItemViewType.GAME_IMAGE;
|
||||
} else if (position == offset) {
|
||||
return ItemViewType.COLUMN_HEADER;
|
||||
}
|
||||
if (position == offset + 1 && !TextUtils.isEmpty(subjectList.get(i).getData().get(0).getImage())) {
|
||||
return ItemViewType.COLUMN_HEADER;
|
||||
}
|
||||
if (gameEntity.getTest() != null) {
|
||||
return ItemViewType.GAME_TEST;
|
||||
}
|
||||
return ItemViewType.GAME_NORMAL;
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
}
|
||||
return ItemViewType.LOADING;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
if (viewType == ItemViewType.COLUMN_HEADER) {
|
||||
View view = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.game_head_item, parent, false);
|
||||
return new GameHeadViewHolder(view);
|
||||
} else if (viewType == ItemViewType.GAME_IMAGE) {
|
||||
View view = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.game_image_item, parent, false);
|
||||
return new GameImageViewHolder(view);
|
||||
} else if (viewType == ItemViewType.GAME_TEST) {
|
||||
View view = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.game_test_item, parent, false);
|
||||
return new GameTestViewHolder(view);
|
||||
} else if (viewType == ItemViewType.GAME_NORMAL) {
|
||||
View view = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.game_normal_item, parent, false);
|
||||
return new GameNormalViewHolder(view);
|
||||
} else if (viewType == ItemViewType.LOADING) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(
|
||||
R.layout.refresh_footerview, parent, false);
|
||||
return new FooterViewHolder(view);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
|
||||
if (holder instanceof GameHeadViewHolder) {
|
||||
initGameHeadViewHolder((GameHeadViewHolder) holder, position);
|
||||
} else if (holder instanceof GameNormalViewHolder) {
|
||||
initGameNormalViewHolder((GameNormalViewHolder) holder, position);
|
||||
} else if (holder instanceof GameTestViewHolder) {
|
||||
initGameTestViewHolder((GameTestViewHolder) holder, position);
|
||||
} else if (holder instanceof GameImageViewHolder) {
|
||||
initGameImageViewHolder((GameImageViewHolder) holder, position);
|
||||
} else if (holder instanceof FooterViewHolder) {
|
||||
initFooterViewHolder((FooterViewHolder) holder);
|
||||
}
|
||||
}
|
||||
|
||||
private void initFooterViewHolder(FooterViewHolder holder) {
|
||||
holder.lineLeft.setVisibility(View.VISIBLE);
|
||||
holder.lineRight.setVisibility(View.VISIBLE);
|
||||
holder.loading.setVisibility(View.GONE);
|
||||
holder.hint.setText("到底了哦~");
|
||||
holder.itemView.setClickable(false);
|
||||
}
|
||||
|
||||
private void initGameHeadViewHolder(GameHeadViewHolder holder, int position) {
|
||||
int offset = 0;
|
||||
GameEntity gameEntity;
|
||||
for (int i = 0; i < subjectList.size(); i++) {
|
||||
if (position >= offset && position <= subjectList.get(i).getData().size() + offset) {
|
||||
int index = position - offset;
|
||||
if (index < 0){
|
||||
index = 0;
|
||||
}
|
||||
gameEntity = subjectList.get(i).getData().get(index);
|
||||
if (position == offset && TextUtils.isEmpty(gameEntity.getImage())
|
||||
|| position == offset + 1 && !TextUtils.isEmpty(subjectList.get(i).getData().get(0).getImage())) {
|
||||
if (TextUtils.isEmpty(subjectList.get(i).getData().get(0).getImage())
|
||||
&& i == 0) {
|
||||
((CardLinearLayout) holder.itemView).setmTop(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setmTop(0);
|
||||
}
|
||||
holder.thumb.setVisibility(View.GONE);
|
||||
holder.title.setText(subjectList.get(i).getName());
|
||||
|
||||
if (subjectList.get(i).getData().size()>= Integer.parseInt(subjectList.get(i).getMore())){
|
||||
holder.link.setVisibility(View.GONE);
|
||||
}else {
|
||||
holder.link.setVisibility(View.VISIBLE);
|
||||
}
|
||||
final int ii = i;
|
||||
holder.link.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
SubjectEntity subjectEntity = subjectList.get(ii);
|
||||
Intent intent = new Intent(context, SubjectActivity.class);
|
||||
intent.putExtra("id", subjectEntity.getId());
|
||||
intent.putExtra("name", subjectEntity.getName());
|
||||
intent.putExtra("order",subjectEntity.isOrder());
|
||||
intent.putExtra("entrance", "(游戏-推荐:" + subjectEntity.getName() + "-全部)");
|
||||
context.startActivity(intent);
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
}
|
||||
|
||||
private void initGameNormalViewHolder(GameNormalViewHolder holder, int position) {
|
||||
int offset = 0;
|
||||
GameEntity gameEntity;
|
||||
for (int i = 0, size = subjectList.size(); i < size; i++) {
|
||||
if (position > offset && position <= subjectList.get(i).getData().size() + offset) {
|
||||
int index = position - offset - 1;
|
||||
if (index<0){
|
||||
index = 0;
|
||||
}
|
||||
gameEntity = subjectList.get(i).getData().get(index);
|
||||
if (TextUtils.isEmpty(gameEntity.getImage()) && gameEntity.getTest() == null) {
|
||||
int order = position - offset - 1;
|
||||
if (subjectList.get(i).getData().get(0).getImage() != null) {
|
||||
order--;
|
||||
}
|
||||
initGameNormal(holder, gameEntity, order, subjectList.get(i), i + 1 == size);
|
||||
break;
|
||||
}
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
}
|
||||
|
||||
private void initGameNormal(GameNormalViewHolder holder, GameEntity entity,
|
||||
final int i, final SubjectEntity subjectEntity, boolean isBottom) {
|
||||
// 最后一个
|
||||
((CardLinearLayout) holder.itemView).setBottom(isBottom);
|
||||
if (TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())) {
|
||||
if (i + 1 == subjectEntity.getData().size()) {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(0);
|
||||
}
|
||||
} else {
|
||||
if (i + 2 == subjectEntity.getData().size()) {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(0);
|
||||
}
|
||||
}
|
||||
if (subjectEntity.isOrder()) {
|
||||
holder.home1_game_order.setVisibility(View.VISIBLE);
|
||||
holder.home1_game_order.setText(String.valueOf(i + 1));
|
||||
} else {
|
||||
holder.home1_game_order.setVisibility(View.GONE);
|
||||
}
|
||||
holder.gameThumb.setImageURI(entity.getIcon());
|
||||
holder.gameNameAndSize.setText(entity.getName());
|
||||
if (entity.getApk() == null || entity.getApk().isEmpty()) {
|
||||
holder.gameDes.setText(entity.getBrief());
|
||||
} else {
|
||||
holder.gameDes.setText(String.format("%s %s", entity.getApk().get(0).getSize(), entity.getBrief()));
|
||||
}
|
||||
GameViewUtils.setLabelList(context, holder.labelList, entity.getTag());
|
||||
|
||||
final GameEntity gameEntity = entity;
|
||||
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", gameEntity.getName());
|
||||
kv.put("位置", String.valueOf(i + 1));
|
||||
DataUtils.onEvent(context, "点击", "游戏-推荐-" + subjectEntity.getName(), kv);
|
||||
|
||||
DataCollectionUtils.uploadClick(context,
|
||||
subjectEntity.getName() + "-列表", "游戏-推荐", gameEntity.getName());
|
||||
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-推荐:" + subjectEntity.getName() + "-列表)");
|
||||
}
|
||||
});
|
||||
DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, entity, i,
|
||||
Game2FragmentAdapter.this, "(游戏-推荐:" + subjectEntity.getName() + "-列表)",
|
||||
"游戏-推荐-" + subjectEntity.getName() + ":" + entity.getName());
|
||||
|
||||
DownloadItemUtils.updateItem(context, holder.gameDes,
|
||||
holder.game_progressbar, holder.game_ll_info, holder.download_speed,
|
||||
holder.download_percentage, holder.downloadBtn, entity);
|
||||
}
|
||||
|
||||
private void initGameTestViewHolder(GameTestViewHolder holder, int position) {
|
||||
int offset = 0;
|
||||
GameEntity gameEntity;
|
||||
for (int i = 0, size = subjectList.size(); i < size; i++) {
|
||||
if (position >= offset && position <= subjectList.get(i).getData().size() + offset) {
|
||||
int index = position - offset - 1;
|
||||
if (index < 0){
|
||||
index = 0;
|
||||
}
|
||||
gameEntity = subjectList.get(i).getData().get(index);
|
||||
if (gameEntity.getTest() != null) {
|
||||
int order = position - offset - 1;
|
||||
if (subjectList.get(i).getData().get(0).getImage() != null) {
|
||||
order--;
|
||||
}
|
||||
initGameTest(holder, gameEntity, order, subjectList.get(i), i + 1 == size);
|
||||
break;
|
||||
}
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
}
|
||||
|
||||
private void initGameTest(GameTestViewHolder holder, final GameEntity gameEntity,
|
||||
final int i, final SubjectEntity subjectEntity, boolean isBottom) {
|
||||
|
||||
// 最后一个
|
||||
((CardLinearLayout) holder.itemView).setBottom(isBottom);
|
||||
if (TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())) {
|
||||
if (i + 1 == subjectEntity.getData().size()) {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(0);
|
||||
}
|
||||
} else {
|
||||
if (i + 2 == subjectEntity.getData().size()) {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setmBottom(0);
|
||||
}
|
||||
}
|
||||
|
||||
if (subjectEntity.isOrder()) {
|
||||
holder.home2_game_order.setVisibility(View.VISIBLE);
|
||||
holder.home2_game_order.setText(String.valueOf(i + 1));
|
||||
} else {
|
||||
holder.home2_game_order.setVisibility(View.GONE);
|
||||
}
|
||||
holder.gameThumb.setImageURI(gameEntity.getIcon());
|
||||
holder.gameNameAndSize.setText(gameEntity.getName());
|
||||
if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) {
|
||||
holder.gameDes.setText(gameEntity.getBrief());
|
||||
} else {
|
||||
holder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief()));
|
||||
}
|
||||
holder.gameTestType.setText(gameEntity.getTest().getType());
|
||||
if (gameEntity.getTest().getStart() == 0) {
|
||||
holder.gameTestTime.setVisibility(View.GONE);
|
||||
} else {
|
||||
holder.gameTestTime.setText(GameViewUtils.getGameTestDate(gameEntity.getTest().getStart()));
|
||||
}
|
||||
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", gameEntity.getName());
|
||||
kv.put("位置", String.valueOf(i + 1));
|
||||
DataUtils.onEvent(context, "点击", "游戏-推荐-" + subjectEntity.getName(), kv);
|
||||
|
||||
DataCollectionUtils.uploadClick(context,
|
||||
subjectEntity.getName() + "-列表", "游戏-推荐", gameEntity.getName());
|
||||
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-推荐:" + subjectEntity.getName() + "-列表)");
|
||||
}
|
||||
});
|
||||
|
||||
if (gameEntity.getTest().getEnd() != 0) {
|
||||
long endTime = Long.valueOf(gameEntity.getTest().getEnd() + "000");
|
||||
long todayTime = new Date().getTime();
|
||||
if (todayTime > endTime) {
|
||||
// 测试时间已过
|
||||
gameEntity.setApk(null);
|
||||
}
|
||||
}
|
||||
|
||||
DownloadItemUtils.setOnClickListener(context,
|
||||
holder.downloadBtn, gameEntity, i,
|
||||
Game2FragmentAdapter.this, "(游戏-推荐:" + subjectEntity.getName() + "-列表)",
|
||||
"游戏-推荐-" + subjectEntity.getName() + ":" + gameEntity.getName());
|
||||
|
||||
DownloadItemUtils.updateItem(context, holder.gameDes,
|
||||
holder.game_progressbar, holder.game_ll_info, holder.download_speed,
|
||||
holder.download_percentage, holder.downloadBtn, gameEntity);
|
||||
}
|
||||
|
||||
private void initGameImageViewHolder(GameImageViewHolder holder, int position) {
|
||||
int offset = 0;
|
||||
GameEntity gameEntity;
|
||||
for (int i = 0, size = subjectList.size(); i < size; i++) {
|
||||
if (position >= offset && position <= subjectList.get(i).getData().size() + offset) {
|
||||
int index = position - offset - 1;
|
||||
if (index < 0){
|
||||
index = 0;
|
||||
}
|
||||
gameEntity = subjectList.get(i).getData().get(index);
|
||||
if (position == offset && !TextUtils.isEmpty(gameEntity.getImage())) {
|
||||
if (i == 0) {
|
||||
((CardLinearLayout) holder.itemView).setmTop(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setmTop(0);
|
||||
}
|
||||
final GameEntity entity = gameEntity;
|
||||
final String name = subjectList.get(i).getName();
|
||||
ImageUtils.getInstance().display(holder.image, entity.getImage(),
|
||||
context.getResources().getDisplayMetrics().widthPixels - DisplayUtils.dip2px(context, 16));
|
||||
holder.image.setImageURI(entity.getImage());
|
||||
holder.image.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", entity.getName());
|
||||
kv.put("位置", "大图");
|
||||
DataUtils.onEvent(context, "点击", "游戏-推荐-" + name, kv);
|
||||
|
||||
DataCollectionUtils.uploadClick(context, name + "-大图", "游戏-推荐");
|
||||
|
||||
if ("game".equals(entity.getType())) {
|
||||
GameUtils.startGameDetailActivity(context, entity.getLink(), "(游戏-推荐:" + name + "-大图)");
|
||||
} else if ("news".equals(entity.getType())) {
|
||||
// 统计阅读量
|
||||
NewsUtils.statNewsViews(entity.getLink());
|
||||
|
||||
Intent intent = new Intent(context, NewsDetailActivity.class);
|
||||
intent.putExtra("newsId", entity.getLink());
|
||||
intent.putExtra("entrance", "(游戏-推荐:" + name + "-大图)");
|
||||
context.startActivity(intent);
|
||||
} else if ("column".equals(entity.getType())) {
|
||||
Intent intent = new Intent(context, SubjectActivity.class);
|
||||
intent.putExtra("id", entity.getLink());
|
||||
intent.putExtra("name", entity.getName());
|
||||
intent.putExtra("entrance", "(游戏-推荐:" + name + "-大图)");
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
offset = subjectList.get(i).getData().size() + offset + 1;
|
||||
}
|
||||
}
|
||||
|
||||
public List<SubjectEntity> getSubectList() {
|
||||
return subjectList;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,242 +0,0 @@
|
||||
package com.gh.gamecenter.game;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
|
||||
import com.gh.base.BaseFragment;
|
||||
import com.gh.common.util.DownloadItemUtils;
|
||||
import com.gh.download.DataWatcher;
|
||||
import com.gh.download.DownloadEntity;
|
||||
import com.gh.download.DownloadManager;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.entity.ApkEntity;
|
||||
import com.gh.gamecenter.entity.GameEntity;
|
||||
import com.gh.gamecenter.eventbus.EBDownloadStatus;
|
||||
import com.gh.gamecenter.eventbus.EBNetworkState;
|
||||
import com.gh.gamecenter.eventbus.EBPackage;
|
||||
import com.gh.gamecenter.eventbus.EBReuse;
|
||||
import com.gh.gamecenter.eventbus.EBUISwitch;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import butterknife.BindView;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author 温冠超
|
||||
* @email 294299195@qq.com
|
||||
* @date 2015-8-8
|
||||
* @update 2015-8-11
|
||||
* @des 主页插件fragment
|
||||
*/
|
||||
public class Game3Fragment extends BaseFragment implements OnRefreshListener {
|
||||
|
||||
@BindView(R.id.fm_game_swipe_refresh) SwipeRefreshLayout fm_game_swipe_refresh;
|
||||
@BindView(R.id.fm_game_rv_list) RecyclerView fm_game_rv_list;
|
||||
private Game3FragmentAdapter adapter;
|
||||
private LinearLayoutManager layoutManager;
|
||||
@BindView(R.id.reuse_no_connection) LinearLayout reuse_no_connection;
|
||||
@BindView(R.id.fm_game_pb_loading) ProgressBarCircularIndeterminate fm_game_pb_loading;
|
||||
|
||||
// 黄壮华 添加观察者 修改2015/8/15
|
||||
private DataWatcher dataWatcher = new DataWatcher() {
|
||||
@Override
|
||||
public void onDataChanged(DownloadEntity downloadEntity) {
|
||||
if (!fm_game_swipe_refresh.isRefreshing()) {
|
||||
ArrayList<Integer> locationList = adapter.getLocationMap().get(downloadEntity.getPackageName());
|
||||
if (locationList != null) {
|
||||
GameEntity gameEntity;
|
||||
for (int location : locationList) {
|
||||
gameEntity = adapter.getGameList().get(location);
|
||||
if (gameEntity != null) {
|
||||
DownloadItemUtils.processDate(getActivity(), gameEntity,
|
||||
downloadEntity, adapter, location);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
init(R.layout.fragment_game);
|
||||
|
||||
reuse_no_connection.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
fm_game_swipe_refresh.setRefreshing(true);
|
||||
fm_game_rv_list.setVisibility(View.VISIBLE);
|
||||
fm_game_pb_loading.setVisibility(View.VISIBLE);
|
||||
reuse_no_connection.setVisibility(View.GONE);
|
||||
handler.postDelayed(runnable, 1000);
|
||||
}
|
||||
});
|
||||
|
||||
fm_game_swipe_refresh.setColorSchemeResources(R.color.theme);
|
||||
fm_game_swipe_refresh.setOnRefreshListener(this);
|
||||
|
||||
fm_game_rv_list.setHasFixedSize(true);
|
||||
layoutManager = new LinearLayoutManager(getActivity());
|
||||
fm_game_rv_list.setLayoutManager(layoutManager);
|
||||
// 黄壮华 传递引用 修改2015/8/15
|
||||
adapter = new Game3FragmentAdapter(Game3Fragment.this, false);
|
||||
fm_game_rv_list.setAdapter(adapter);
|
||||
fm_game_rv_list.setOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
||||
super.onScrollStateChanged(recyclerView, newState);
|
||||
if (newState == RecyclerView.SCROLL_STATE_IDLE
|
||||
&& layoutManager.findLastVisibleItemPosition() == adapter
|
||||
.getGameList().size()) {
|
||||
if (!adapter.isRemove() && !adapter.isLoading()) {
|
||||
adapter.addList(adapter.getGameList().size());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadDone() {
|
||||
if (fm_game_swipe_refresh != null && fm_game_swipe_refresh.isRefreshing()) {
|
||||
fm_game_swipe_refresh.setRefreshing(false);
|
||||
}
|
||||
if (fm_game_pb_loading != null && fm_game_pb_loading.getVisibility() == View.VISIBLE) {
|
||||
fm_game_pb_loading.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadError() {
|
||||
if (fm_game_swipe_refresh != null && fm_game_swipe_refresh.isRefreshing()) {
|
||||
fm_game_swipe_refresh.setRefreshing(false);
|
||||
}
|
||||
if (fm_game_pb_loading != null && fm_game_pb_loading.getVisibility() == View.VISIBLE) {
|
||||
fm_game_pb_loading.setVisibility(View.GONE);
|
||||
}
|
||||
fm_game_rv_list.setVisibility(View.GONE);
|
||||
reuse_no_connection.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
//下载被删除事件
|
||||
public void onEventMainThread(EBDownloadStatus status) {
|
||||
if ("delete".equals(status.getStatus())) {
|
||||
DownloadManager.getInstance(getActivity()).removePlatform(status.getName(), status.getPlatform());
|
||||
|
||||
ArrayList<Integer> locationList = adapter.getLocationMap().get(status.getPackageName());
|
||||
if (locationList != null) {
|
||||
GameEntity gameEntity;
|
||||
for (int location : locationList) {
|
||||
gameEntity = adapter.getGameList().get(location);
|
||||
if (gameEntity != null && gameEntity.getEntryMap() != null) {
|
||||
gameEntity.getEntryMap().remove(status.getPlatform());
|
||||
}
|
||||
adapter.notifyItemChanged(location);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 打开下载按钮事件
|
||||
public void onEventMainThread(EBReuse reuse) {
|
||||
if ("Refresh".equals(reuse.getType()) && adapter != null) {
|
||||
adapter.notifyItemRangeChanged(0, adapter.getItemCount());
|
||||
}
|
||||
}
|
||||
|
||||
//安装、卸载事件
|
||||
public void onEventMainThread(EBPackage busFour) {
|
||||
ArrayList<Integer> locationList = adapter.getLocationMap().get(busFour.getPackageName());
|
||||
if (locationList != null) {
|
||||
GameEntity gameEntity;
|
||||
for (int location : locationList) {
|
||||
gameEntity = adapter.getGameList().get(location);
|
||||
if (gameEntity != null) {
|
||||
if ("安装".equals(busFour.getType())) {
|
||||
for (ApkEntity apkEntity : gameEntity.getApk()) {
|
||||
if (apkEntity.getPackageName().equals(busFour.getPackageName())) {
|
||||
if (gameEntity.getEntryMap() != null) {
|
||||
gameEntity.getEntryMap().remove(apkEntity.getPlatform());
|
||||
}
|
||||
adapter.notifyItemChanged(location);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if ("卸载".equals(busFour.getType())) {
|
||||
adapter.notifyItemChanged(location);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//连接上网络事件
|
||||
public void onEventMainThread(EBNetworkState busNetworkState) {
|
||||
if (busNetworkState.isNetworkConnected()) {
|
||||
if (reuse_no_connection.getVisibility() == View.VISIBLE) {
|
||||
fm_game_swipe_refresh.setRefreshing(true);
|
||||
fm_game_rv_list.setVisibility(View.VISIBLE);
|
||||
fm_game_pb_loading.setVisibility(View.GONE);
|
||||
reuse_no_connection.setVisibility(View.GONE);
|
||||
handler.postDelayed(runnable, 1000);
|
||||
} else if (adapter.isNetworkError()) {
|
||||
adapter.setNetworkError(false);
|
||||
adapter.notifyItemChanged(adapter.getItemCount() - 1);
|
||||
adapter.addList(adapter.getGameList().size());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onEventMainThread(EBUISwitch busNine) {
|
||||
if ("GameFragment".equals(busNine.getFrom())) {
|
||||
if (busNine.getPosition() == 2) {
|
||||
if (fm_game_pb_loading.getVisibility() == View.VISIBLE) {
|
||||
adapter.addList(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
if (isEverpause) {
|
||||
for (GameEntity entity : adapter.getGameList()) {
|
||||
entity.setEntryMap(DownloadManager.getInstance(getActivity()).getEntryMap(entity.getName()));
|
||||
}
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
super.onResume();
|
||||
DownloadManager.getInstance(getActivity()).addObserver(dataWatcher);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher);
|
||||
}
|
||||
|
||||
Runnable runnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
adapter = new Game3FragmentAdapter(Game3Fragment.this, true);
|
||||
fm_game_rv_list.setAdapter(adapter);
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
handler.postDelayed(runnable, 1000);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,329 +0,0 @@
|
||||
package com.gh.gamecenter.game;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.v4.util.ArrayMap;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.gh.common.constant.ItemViewType;
|
||||
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.view.CardLinearLayout;
|
||||
import com.gh.download.DownloadManager;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.adapter.viewholder.FooterViewHolder;
|
||||
import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder;
|
||||
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.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;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author 温冠超
|
||||
* @email 294299195@qq.com
|
||||
* @date 2015-8-8
|
||||
* @update 2015-8-11
|
||||
* @des 首页插件fragment适配器
|
||||
*/
|
||||
|
||||
public class Game3FragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private Game3Fragment fragment;
|
||||
private Context context;
|
||||
private OnCallBackListener listener;
|
||||
|
||||
private boolean isRemove;
|
||||
private boolean isLoading;
|
||||
private boolean isNetworkError;
|
||||
|
||||
private List<GameEntity> gameList;
|
||||
|
||||
private ArrayMap<String, ArrayList<Integer>> locationMap;
|
||||
|
||||
private int cardMargin;
|
||||
|
||||
// 黄壮华 获取引用 修改2015/8/15
|
||||
public Game3FragmentAdapter(Game3Fragment fment, boolean isLoad) {
|
||||
|
||||
this.fragment = fment;
|
||||
this.context = fment.getActivity();
|
||||
this.listener = fment;
|
||||
|
||||
locationMap = new ArrayMap<>();
|
||||
|
||||
isRemove = false;
|
||||
isLoading = false;
|
||||
isNetworkError = false;
|
||||
|
||||
gameList = new ArrayList<>();
|
||||
|
||||
cardMargin = (int) context.getResources().getDimension(R.dimen.cardview_margin);
|
||||
|
||||
if (isLoad) {
|
||||
addList(0);
|
||||
}
|
||||
}
|
||||
|
||||
public ArrayMap<String, ArrayList<Integer>> getLocationMap() {
|
||||
return locationMap;
|
||||
}
|
||||
|
||||
public void addList(final int offset) {
|
||||
if (isLoading) {
|
||||
return;
|
||||
}
|
||||
isLoading = true;
|
||||
RetrofitManager.getApi().getDanjiyouxi(20, offset)
|
||||
.map(new Func1<List<GameEntity>, List<GameEntity>>() {
|
||||
@Override
|
||||
public List<GameEntity> call(List<GameEntity> list) {
|
||||
return removeDuplicateData(gameList, list);
|
||||
}
|
||||
})
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Response<List<GameEntity>>() {
|
||||
@Override
|
||||
public void onResponse(List<GameEntity> response) {
|
||||
if (response.size() != 0) {
|
||||
GameManager manager = new GameManager(context);
|
||||
for (GameEntity entity : response) {
|
||||
// 黄壮华 初始化游戏状态 修改2015/8/15
|
||||
entity.setEntryMap(DownloadManager.getInstance(context).getEntryMap(entity.getName()));
|
||||
manager.addOrUpdate(entity.getApk(), entity.getId(), entity.getName());
|
||||
}
|
||||
if (!fragment.isHidden() && !fragment.isEverpause()) {
|
||||
gameList.addAll(response);
|
||||
notifyItemRangeInserted(gameList.size() - response.size(), response.size());
|
||||
} else {
|
||||
gameList.addAll(response);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
} else {
|
||||
isRemove = true;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
}
|
||||
|
||||
if (listener != null) {
|
||||
listener.loadDone();
|
||||
}
|
||||
|
||||
// 黄壮华 获取游戏位置信息 修改2015/8/15
|
||||
GameEntity gameEntity;
|
||||
ArrayList<Integer> list;
|
||||
for (int i = 0, size = gameList.size(); i < size; i++) {
|
||||
gameEntity = gameList.get(i);
|
||||
if (gameEntity.getApk() != null && gameEntity.getApk().size() != 0) {
|
||||
for (ApkEntity apkEntity : gameEntity.getApk()) {
|
||||
list = locationMap.get(apkEntity.getPackageName());
|
||||
if (list == null) {
|
||||
list = new ArrayList<>();
|
||||
locationMap.put(apkEntity.getPackageName(), list);
|
||||
}
|
||||
list.add(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(HttpException e) {
|
||||
isLoading = false;
|
||||
|
||||
if (offset == 0) {
|
||||
listener.loadError();
|
||||
} else {
|
||||
Toast.makeText(context, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show();
|
||||
isNetworkError = true;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private List<GameEntity> removeDuplicateData(List<GameEntity> sourceList, List<GameEntity> rawList) {
|
||||
if (sourceList == null || sourceList.isEmpty()
|
||||
|| rawList == null || rawList.isEmpty()) {
|
||||
return rawList;
|
||||
}
|
||||
String id;
|
||||
for (int i = 0; i < rawList.size(); i++) {
|
||||
id = rawList.get(i).getId();
|
||||
for (GameEntity gameEntity : sourceList) {
|
||||
if (id.equals(gameEntity.getId())) {
|
||||
rawList.remove(i);
|
||||
i--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return rawList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
if (gameList.size() == 0) {
|
||||
return 0;
|
||||
}
|
||||
return gameList.size() + 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position == gameList.size()) {
|
||||
return ItemViewType.LOADING;
|
||||
} else {
|
||||
return ItemViewType.GAME_NORMAL;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
|
||||
if (i == ItemViewType.LOADING) {
|
||||
View view = LayoutInflater.from(viewGroup.getContext()).inflate(
|
||||
R.layout.refresh_footerview, viewGroup, false);
|
||||
return new FooterViewHolder(view);
|
||||
} else if (i == ItemViewType.GAME_NORMAL) {
|
||||
View view = LayoutInflater.from(viewGroup.getContext()).inflate(
|
||||
R.layout.game_normal_item, viewGroup, false);
|
||||
return new GameNormalViewHolder(view);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
|
||||
if (viewHolder instanceof GameNormalViewHolder) {
|
||||
initGameNormalViewHolder((GameNormalViewHolder) viewHolder, gameList.get(position), position);
|
||||
} else if (viewHolder instanceof FooterViewHolder) {
|
||||
initFooterViewHolder((FooterViewHolder) viewHolder);
|
||||
}
|
||||
}
|
||||
|
||||
private void initGameNormalViewHolder(final GameNormalViewHolder holder, final GameEntity gameEntity, int position) {
|
||||
|
||||
// 第一个
|
||||
if (position == 0) {
|
||||
((CardLinearLayout) holder.itemView).setmTop(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setmTop(0);
|
||||
}
|
||||
|
||||
// 最后一个
|
||||
if (position == gameList.size() - 1) {
|
||||
((CardLinearLayout) holder.itemView).setBottom(true);
|
||||
} else {
|
||||
((CardLinearLayout) holder.itemView).setBottom(false);
|
||||
}
|
||||
|
||||
// ImageUtils.getInstance(context).display(gameEntity.getIcon(), holder.gameThumb);
|
||||
holder.gameThumb.setImageURI(gameEntity.getIcon());
|
||||
holder.gameNameAndSize.setText(gameEntity.getName());
|
||||
if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) {
|
||||
holder.gameDes.setText(gameEntity.getBrief());
|
||||
} else {
|
||||
holder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief()));
|
||||
}
|
||||
|
||||
GameViewUtils.setLabelList(context, holder.labelList, gameEntity.getTag());
|
||||
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", gameEntity.getName());
|
||||
kv.put("位置", String.valueOf(holder.getPosition() + 1));
|
||||
DataUtils.onEvent(context, "点击", "游戏-单机", kv);
|
||||
|
||||
DataCollectionUtils.uploadClick(context, "列表", "游戏-单机", gameEntity.getName());
|
||||
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-单机)");
|
||||
}
|
||||
});
|
||||
|
||||
DownloadItemUtils.setOnClickListener(context, holder.downloadBtn,
|
||||
gameEntity, position, this, "(游戏-单机)",
|
||||
"游戏-单机:" + gameEntity.getName());
|
||||
|
||||
DownloadItemUtils.updateItem(context, holder.gameDes,
|
||||
holder.game_progressbar, holder.game_ll_info,
|
||||
holder.download_speed, holder.download_percentage,
|
||||
holder.downloadBtn, gameEntity, false);
|
||||
}
|
||||
|
||||
private void initFooterViewHolder(FooterViewHolder holder) {
|
||||
if (isNetworkError) {
|
||||
holder.lineLeft.setVisibility(View.GONE);
|
||||
holder.lineRight.setVisibility(View.GONE);
|
||||
holder.loading.setVisibility(View.GONE);
|
||||
holder.hint.setText("加载失败,点击重试");
|
||||
holder.itemView.setClickable(true);
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
isNetworkError = false;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
addList(gameList.size());
|
||||
}
|
||||
});
|
||||
} else if (isRemove) {
|
||||
holder.lineLeft.setVisibility(View.VISIBLE);
|
||||
holder.lineRight.setVisibility(View.VISIBLE);
|
||||
holder.loading.setVisibility(View.GONE);
|
||||
holder.hint.setText("到底了哦~");
|
||||
holder.itemView.setClickable(false);
|
||||
} else {
|
||||
holder.lineLeft.setVisibility(View.GONE);
|
||||
holder.lineRight.setVisibility(View.GONE);
|
||||
holder.loading.setVisibility(View.VISIBLE);
|
||||
holder.hint.setText("加载中...");
|
||||
holder.itemView.setClickable(false);
|
||||
}
|
||||
}
|
||||
|
||||
public List<GameEntity> getGameList() {
|
||||
return gameList;
|
||||
}
|
||||
|
||||
public boolean isRemove() {
|
||||
return isRemove;
|
||||
}
|
||||
|
||||
public void setRemove(boolean isRemove) {
|
||||
this.isRemove = isRemove;
|
||||
}
|
||||
|
||||
public boolean isLoading() {
|
||||
return isLoading;
|
||||
}
|
||||
|
||||
public boolean isNetworkError() {
|
||||
return isNetworkError;
|
||||
}
|
||||
|
||||
public void setNetworkError(boolean isNetworkError) {
|
||||
this.isNetworkError = isNetworkError;
|
||||
}
|
||||
|
||||
}
|
||||
@ -64,7 +64,6 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR
|
||||
}
|
||||
}
|
||||
};
|
||||
private LinearLayoutManager layoutManager;
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
@ -93,8 +92,7 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR
|
||||
fm_game_swipe_refresh.setOnRefreshListener(this);
|
||||
|
||||
fm_game_rv_list.setHasFixedSize(true);
|
||||
layoutManager = new LinearLayoutManager(getActivity());
|
||||
fm_game_rv_list.setLayoutManager(layoutManager);
|
||||
fm_game_rv_list.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
adapter = new GameFragmentAdapter(GameFragment.this, fm_game_swipe_refresh);
|
||||
fm_game_rv_list.setAdapter(adapter);
|
||||
|
||||
|
||||
@ -52,7 +52,6 @@ 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.db.LibaoDao;
|
||||
import com.gh.gamecenter.db.info.LibaoInfo;
|
||||
import com.gh.gamecenter.entity.ApkEntity;
|
||||
import com.gh.gamecenter.entity.GameEntity;
|
||||
import com.gh.gamecenter.entity.GameUpdateEntity;
|
||||
@ -79,8 +78,9 @@ import rx.schedulers.Schedulers;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/12/6.
|
||||
*
|
||||
*/
|
||||
public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private GameFragment fragment;
|
||||
private Context context;
|
||||
@ -92,7 +92,6 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
private List<GameEntity> pluginList;
|
||||
private List<SubjectEntity> subjectList;
|
||||
private List<SubjectDigestEntity> subjectDigestList;
|
||||
private List<LibaoInfo> libaoInfos;
|
||||
|
||||
// 包名对应游戏位置
|
||||
private ArrayMap<String, ArrayList<Integer>> locationMap;
|
||||
@ -115,15 +114,13 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
private int topHeight;
|
||||
private int topHeightOld;
|
||||
|
||||
public GameFragmentAdapter(GameFragment fragment,
|
||||
SwipeRefreshLayout refreshLayout) {
|
||||
GameFragmentAdapter(GameFragment fragment, SwipeRefreshLayout refreshLayout) {
|
||||
|
||||
this.fragment = fragment;
|
||||
this.context = fragment.getActivity();
|
||||
this.listener = fragment;
|
||||
|
||||
libaoDao = new LibaoDao(context);
|
||||
libaoInfos = libaoDao.getAll();
|
||||
|
||||
game_swipe_refresh = refreshLayout;
|
||||
|
||||
@ -160,7 +157,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
return locationMap;
|
||||
}
|
||||
|
||||
public GameEntity getGameEntityByLocation(int location) {
|
||||
GameEntity getGameEntityByLocation(int location) {
|
||||
|
||||
if (!pluginList.isEmpty() && location > 1 && location <= 1 + pluginList.size()) {
|
||||
return pluginList.get(location - 2);
|
||||
@ -180,7 +177,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
return null;
|
||||
}
|
||||
|
||||
public void initSubjectDigest(final boolean isLoadMore) {
|
||||
void initSubjectDigest(final boolean isLoadMore) {
|
||||
RetrofitManager.getApi()
|
||||
.getSubjectDigest()
|
||||
.subscribeOn(Schedulers.io())
|
||||
@ -211,7 +208,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
});
|
||||
}
|
||||
|
||||
public void initSlide(final boolean isFirst) {
|
||||
private void initSlide(final boolean isFirst) {
|
||||
RetrofitManager.getApi().getSlide()
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
@ -320,7 +317,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
});
|
||||
}
|
||||
|
||||
public void initPlugin() {
|
||||
void initPlugin() {
|
||||
if (isInitPlugin) {
|
||||
return;
|
||||
}
|
||||
@ -449,7 +446,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
}
|
||||
}
|
||||
|
||||
public void initItemCount() {
|
||||
void initItemCount() {
|
||||
int pluginSize = 0;
|
||||
if (!pluginList.isEmpty()) {
|
||||
pluginSize += 1 + pluginList.size();
|
||||
@ -726,14 +723,17 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
intent.putExtra("id", subjectDigestList.get(finalI).getColumnId());
|
||||
intent.putExtra("name", subjectDigestList.get(finalI).getColumnName());
|
||||
intent.putExtra("order", subjectDigestList.get(finalI).getOrder());
|
||||
intent.putExtra("entrance", "(游戏-专题:" + subjectDigestList.get(finalI).getName() + ")");
|
||||
context.startActivity(intent);
|
||||
} else if (finalI == 3) {
|
||||
subjectNewIcon.setVisibility(View.GONE);
|
||||
sp.edit().putBoolean("showGiftNewIcon", false).apply();
|
||||
Intent intent = new Intent(context, LibaoActivity.class);
|
||||
intent.putExtra("entrance", "(游戏-专题:礼包)");
|
||||
context.startActivity(intent);
|
||||
} else if (finalI == 4){
|
||||
Intent intent = new Intent(context, StrategyActivity.class);
|
||||
intent.putExtra("entrance", "(游戏-专题:攻略)");
|
||||
context.startActivity(intent);
|
||||
} else {
|
||||
Utils.toast(context, "数据异常");
|
||||
@ -757,7 +757,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
if (subjectList.get(i).getData().get(0).getImage() != null) {
|
||||
order--;
|
||||
}
|
||||
initGameTest(holder, gameEntity, order, subjectList.get(i), i + 1 == size, position);
|
||||
initGameTest(holder, gameEntity, order, subjectList.get(i), i + 1 == size);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -766,7 +766,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
}
|
||||
|
||||
private void initGameTest(GameTestViewHolder holder, final GameEntity gameEntity,
|
||||
final int i, final SubjectEntity subjectEntity, boolean isBottom, int position) {
|
||||
final int i, final SubjectEntity subjectEntity, boolean isBottom) {
|
||||
|
||||
// 最后一个
|
||||
((CardLinearLayout) holder.itemView).setBottom(isBottom);
|
||||
@ -821,12 +821,11 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", gameEntity.getName());
|
||||
kv.put("位置", String.valueOf(i + 1));
|
||||
DataUtils.onEvent(context, "点击", "游戏-插件-" + subjectEntity.getName(), kv);
|
||||
DataUtils.onEvent(context, "点击", "游戏-专题-" + subjectEntity.getName(), kv);
|
||||
|
||||
DataCollectionUtils.uploadClick(context,
|
||||
subjectEntity.getName() + "-列表", "游戏-插件", gameEntity.getName());
|
||||
DataCollectionUtils.uploadClick(context, subjectEntity.getName() + "-列表", "游戏-专题", gameEntity.getName());
|
||||
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-插件:" + subjectEntity.getName() + "-列表)");
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-专题:" + subjectEntity.getName() + "-列表[" + (i + 1) + "])");
|
||||
}
|
||||
});
|
||||
|
||||
@ -841,8 +840,8 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
|
||||
DownloadItemUtils.setOnClickListener(context,
|
||||
holder.downloadBtn, gameEntity, i,
|
||||
GameFragmentAdapter.this, "(游戏-插件:" + subjectEntity.getName() + "-列表)",
|
||||
"游戏-插件-" + subjectEntity.getName() + ":" + gameEntity.getName());
|
||||
GameFragmentAdapter.this, "(游戏-专题:" + subjectEntity.getName() + "-列表[" + (i + 1) + "])",
|
||||
"游戏-专题-" + subjectEntity.getName() + ":" + gameEntity.getName());
|
||||
|
||||
DownloadItemUtils.updateItem(context, holder.gameDes,
|
||||
holder.game_progressbar, holder.game_ll_info, holder.download_speed,
|
||||
@ -942,29 +941,28 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", gameEntity.getName());
|
||||
kv.put("位置", String.valueOf(i + 1));
|
||||
DataUtils.onEvent(context, "点击", "游戏-插件-" + subjectEntity.getName(), kv);
|
||||
DataUtils.onEvent(context, "点击", "游戏-专题-" + subjectEntity.getName(), kv);
|
||||
|
||||
DataCollectionUtils.uploadClick(context,
|
||||
subjectEntity.getName() + "-列表", "游戏-插件", gameEntity.getName());
|
||||
DataCollectionUtils.uploadClick(context, subjectEntity.getName() + "-列表", "游戏-专题", gameEntity.getName());
|
||||
|
||||
if (gameEntity.isPluggable()) {
|
||||
GameUtils.startGameDetailActivity(context, gameEntity.getId(), "(游戏-插件:" + subjectEntity.getName() + "-列表)");
|
||||
GameUtils.startGameDetailActivity(context, gameEntity.getId(), "(游戏-专题:插件化-列表[" + (i + 1) + "])");
|
||||
} else {
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-插件:" + subjectEntity.getName() + "-列表)");
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, "(游戏-专题:" + subjectEntity.getName() + "-列表[" + (i + 1) + "])");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, gameEntity, i,
|
||||
GameFragmentAdapter.this, "(游戏-插件:" + subjectEntity.getName() + "-列表)",
|
||||
"游戏-插件-" + subjectEntity.getName() + ":" + gameEntity.getName());
|
||||
GameFragmentAdapter.this, "(游戏-专题:" + subjectEntity.getName() + "-列表[" + (i + 1) + "])",
|
||||
"游戏-专题-" + subjectEntity.getName() + ":" + gameEntity.getName());
|
||||
|
||||
DownloadItemUtils.updateItem(context, holder.gameDes,
|
||||
holder.game_progressbar, holder.game_ll_info, holder.download_speed,
|
||||
holder.download_percentage, holder.downloadBtn, gameEntity, !gameEntity.isPluggable());
|
||||
}
|
||||
|
||||
public void initGameImageViewHolder(GameImageViewHolder holder, int position) {
|
||||
private void initGameImageViewHolder(GameImageViewHolder holder, int position) {
|
||||
int offset = 1;
|
||||
if (!pluginList.isEmpty()) {
|
||||
offset += 1 + pluginList.size();
|
||||
@ -996,25 +994,25 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", entity.getName());
|
||||
kv.put("位置", "大图");
|
||||
DataUtils.onEvent(context, "点击", "游戏-插件-" + name, kv);
|
||||
DataUtils.onEvent(context, "点击", "游戏-专题-" + name, kv);
|
||||
|
||||
DataCollectionUtils.uploadClick(context, name + "-大图", "游戏-插件");
|
||||
DataCollectionUtils.uploadClick(context, name + "-大图", "游戏-专题");
|
||||
|
||||
if ("game".equals(entity.getType())) {
|
||||
GameUtils.startGameDetailActivity(context, entity.getLink(), "(游戏-插件:" + name + "-大图)");
|
||||
GameUtils.startGameDetailActivity(context, entity.getLink(), "(游戏-专题:" + name + "-大图)");
|
||||
} else if ("news".equals(entity.getType())) {
|
||||
// 统计阅读量
|
||||
NewsUtils.statNewsViews(entity.getLink());
|
||||
|
||||
Intent intent = new Intent(context, NewsDetailActivity.class);
|
||||
intent.putExtra("newsId", entity.getLink());
|
||||
intent.putExtra("entrance", "(游戏-插件:" + name + "-大图)");
|
||||
intent.putExtra("entrance", "(游戏-专题:" + name + "-大图)");
|
||||
context.startActivity(intent);
|
||||
} else if ("column".equals(entity.getType())) {
|
||||
Intent intent = new Intent(context, SubjectActivity.class);
|
||||
intent.putExtra("id", entity.getLink());
|
||||
intent.putExtra("name", entity.getName());
|
||||
intent.putExtra("entrance", "(游戏-插件:" + name + "-大图)");
|
||||
intent.putExtra("entrance", "(游戏-专题:" + name + "-大图)");
|
||||
context.startActivity(intent);
|
||||
}
|
||||
}
|
||||
@ -1026,7 +1024,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
}
|
||||
}
|
||||
|
||||
public void initGameHeadViewHolder(final GameHeadViewHolder holder, int position) {
|
||||
private void initGameHeadViewHolder(final GameHeadViewHolder holder, int position) {
|
||||
if (!pluginList.isEmpty() && position == 1) {
|
||||
// ((CardLinearLayout) holder.itemView).setmTop(cardMargin);
|
||||
holder.title.setTextColor(context.getResources().getColor(R.color.theme));
|
||||
@ -1042,7 +1040,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent(context, PluginActivity.class);
|
||||
intent.putExtra("entrance", "(游戏-插件:插件化-全部)");
|
||||
intent.putExtra("entrance", "(游戏-专题:插件化-全部)");
|
||||
context.startActivity(intent);
|
||||
}
|
||||
});
|
||||
@ -1099,7 +1097,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
intent.putExtra("id", subjectEntity.getId());
|
||||
intent.putExtra("name", subjectEntity.getName());
|
||||
intent.putExtra("order",subjectEntity.isOrder());
|
||||
intent.putExtra("entrance", "(游戏-插件:" + subjectEntity.getName() + "-全部)");
|
||||
intent.putExtra("entrance", "(游戏-专题:" + subjectEntity.getName() + "-全部)");
|
||||
context.startActivity(intent);
|
||||
} else {
|
||||
holder.progressBar.setVisibility(View.VISIBLE);
|
||||
@ -1209,7 +1207,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
}
|
||||
|
||||
//轮播图和入口刷新
|
||||
public void stretchTop(int offset, boolean isInit) {
|
||||
void stretchTop(int offset, boolean isInit) {
|
||||
if (isInit) {
|
||||
while (true) {
|
||||
if (topHeight > topHeightOld) {
|
||||
@ -1230,27 +1228,27 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
|
||||
}
|
||||
|
||||
public float getDragPercent() {
|
||||
float getDragPercent() {
|
||||
int offset = topHeight - topHeightOld;
|
||||
float distance = (float) (offset * 3) / (float) topHeightOld;
|
||||
return (float) (1.0 - distance);
|
||||
}
|
||||
|
||||
public void startAutoScroll() {
|
||||
void startAutoScroll() {
|
||||
isAutoScroll = true;
|
||||
notifyItemChanged(0);
|
||||
}
|
||||
|
||||
public void stopAutoScroll() {
|
||||
void stopAutoScroll() {
|
||||
isAutoScroll = false;
|
||||
notifyItemChanged(0);
|
||||
}
|
||||
|
||||
public List<GameEntity> getPluginList() {
|
||||
List<GameEntity> getPluginList() {
|
||||
return pluginList;
|
||||
}
|
||||
|
||||
public List<SubjectEntity> getSubjectList() {
|
||||
List<SubjectEntity> getSubjectList() {
|
||||
return subjectList;
|
||||
}
|
||||
|
||||
@ -1262,7 +1260,7 @@ public class GameFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
isNetworkError = networkError;
|
||||
}
|
||||
|
||||
public boolean isInitPlugin() {
|
||||
boolean isInitPlugin() {
|
||||
return isInitPlugin;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,216 +0,0 @@
|
||||
package com.gh.gamecenter.game;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.support.v4.view.ViewPager.OnPageChangeListener;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.gh.base.HomeFragment;
|
||||
import com.gh.common.util.DisplayUtils;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.adapter.FragmentAdapter;
|
||||
import com.gh.gamecenter.eventbus.EBSkip;
|
||||
import com.gh.gamecenter.eventbus.EBUISwitch;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import de.greenrobot.event.EventBus;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author 温冠超
|
||||
* @email 294299195@qq.com
|
||||
* @date 2015-8-8 主页fragment3页面
|
||||
*/
|
||||
public class GameFragmentOld extends HomeFragment implements OnPageChangeListener {
|
||||
|
||||
private LinearLayout slidebar_ll_top;
|
||||
private View slidebar_line;
|
||||
private ViewPager page_vp_content;
|
||||
|
||||
private LinearLayout.LayoutParams lparams;
|
||||
|
||||
private TextView tv_chajian;
|
||||
private TextView tv_tuijian;
|
||||
private TextView tv_danji;
|
||||
|
||||
private int width;
|
||||
private int currentItem;
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
outState.putInt("currentItem", currentItem);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
((LinearLayout) view).addView(View.inflate(getActivity(), R.layout.fragment_slidebar, null));
|
||||
((LinearLayout) view).addView(View.inflate(getActivity(), R.layout.fragment_page, null));
|
||||
|
||||
List<Fragment> list = new ArrayList<>();
|
||||
list.add(new Game1Fragment());
|
||||
list.add(new Game2Fragment());
|
||||
list.add(new Game3Fragment());
|
||||
page_vp_content.setAdapter(new FragmentAdapter(getChildFragmentManager(), list));
|
||||
page_vp_content.addOnPageChangeListener(this);
|
||||
|
||||
currentItem = 0;
|
||||
if (savedInstanceState != null) {
|
||||
currentItem = savedInstanceState.getInt("currentItem");
|
||||
}
|
||||
initTextView();
|
||||
page_vp_content.setCurrentItem(currentItem);
|
||||
|
||||
DisplayMetrics outMetrics = new DisplayMetrics();
|
||||
getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
|
||||
width = outMetrics.widthPixels / 3;
|
||||
lparams = new LinearLayout.LayoutParams(width / 2,
|
||||
DisplayUtils.dip2px(getActivity(), 2));
|
||||
lparams.leftMargin = (int) (width * (currentItem + 0.25f));
|
||||
slidebar_line.setLayoutParams(lparams);
|
||||
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
EventBus.getDefault().post(new EBUISwitch("GameFragment", page_vp_content.getCurrentItem()));
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
|
||||
private void initTextView() {
|
||||
tv_chajian = new TextView(getActivity());
|
||||
tv_chajian.setText("插件");
|
||||
if (currentItem == 0) {
|
||||
tv_chajian.setTextColor(getResources().getColor(R.color.theme));
|
||||
} else {
|
||||
tv_chajian.setTextColor(getResources().getColor(R.color.title));
|
||||
}
|
||||
tv_chajian.setGravity(Gravity.CENTER);
|
||||
tv_chajian.setOnClickListener(this);
|
||||
LinearLayout.LayoutParams lparams1 = new LinearLayout.LayoutParams(
|
||||
0, DisplayUtils.dip2px(getActivity(), 35));
|
||||
lparams1.weight = 1;
|
||||
slidebar_ll_top.addView(tv_chajian, lparams1);
|
||||
|
||||
tv_tuijian = new TextView(getActivity());
|
||||
tv_tuijian.setText("推荐");
|
||||
if (currentItem == 1) {
|
||||
tv_tuijian.setTextColor(getResources().getColor(R.color.theme));
|
||||
} else {
|
||||
tv_tuijian.setTextColor(getResources().getColor(R.color.title));
|
||||
}
|
||||
tv_tuijian.setGravity(Gravity.CENTER);
|
||||
tv_tuijian.setOnClickListener(this);
|
||||
LinearLayout.LayoutParams lparams2 = new LinearLayout.LayoutParams(
|
||||
0, DisplayUtils.dip2px(getActivity(), 35));
|
||||
lparams2.weight = 1;
|
||||
slidebar_ll_top.addView(tv_tuijian, lparams2);
|
||||
|
||||
tv_danji = new TextView(getActivity());
|
||||
tv_danji.setText("单机");
|
||||
if (currentItem == 2) {
|
||||
tv_danji.setTextColor(getResources().getColor(R.color.theme));
|
||||
} else {
|
||||
tv_danji.setTextColor(getResources().getColor(R.color.title));
|
||||
}
|
||||
tv_danji.setGravity(Gravity.CENTER);
|
||||
tv_danji.setOnClickListener(this);
|
||||
LinearLayout.LayoutParams lparams3 = new LinearLayout.LayoutParams(
|
||||
0, DisplayUtils.dip2px(getActivity(), 35));
|
||||
lparams3.weight = 1;
|
||||
slidebar_ll_top.addView(tv_danji, lparams3);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
super.onClick(v);
|
||||
if (v == tv_chajian) {
|
||||
page_vp_content.setCurrentItem(0);
|
||||
} else if (v == tv_tuijian) {
|
||||
page_vp_content.setCurrentItem(1);
|
||||
} else if (v == tv_danji) {
|
||||
page_vp_content.setCurrentItem(2);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
if (position == 0) {
|
||||
tv_chajian.setTextColor(getResources().getColor(R.color.theme));
|
||||
tv_tuijian.setTextColor(getResources().getColor(R.color.title));
|
||||
tv_danji.setTextColor(getResources().getColor(R.color.title));
|
||||
} else if (position == 1) {
|
||||
tv_chajian.setTextColor(getResources().getColor(R.color.title));
|
||||
tv_tuijian.setTextColor(getResources().getColor(R.color.theme));
|
||||
tv_danji.setTextColor(getResources().getColor(R.color.title));
|
||||
} else if (position == 2) {
|
||||
tv_chajian.setTextColor(getResources().getColor(R.color.title));
|
||||
tv_tuijian.setTextColor(getResources().getColor(R.color.title));
|
||||
tv_danji.setTextColor(getResources().getColor(R.color.theme));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset,
|
||||
int positionOffsetPixels) {
|
||||
if (positionOffset != 0) {
|
||||
lparams.leftMargin = (int) (width * (position + positionOffset + 0.25f));
|
||||
slidebar_line.setLayoutParams(lparams);
|
||||
} else {
|
||||
if (currentItem != page_vp_content.getCurrentItem()) {
|
||||
currentItem = page_vp_content.getCurrentItem();
|
||||
EventBus.getDefault().post(new EBUISwitch("GameFragment", currentItem));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int state) {
|
||||
|
||||
}
|
||||
|
||||
public void onEventMainThread(EBUISwitch busNine) {
|
||||
if ("MainActivity".equals(busNine.getFrom())) {
|
||||
if (busNine.getPosition() == 0) {
|
||||
EventBus.getDefault().post(new EBUISwitch("GameFragment", page_vp_content.getCurrentItem()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onEventMainThread(EBSkip skip) {
|
||||
if ("MainActivity".equals(skip.getType())) {
|
||||
page_vp_content.setCurrentItem(skip.getCurrentItem());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onHiddenChanged(boolean hidden) {
|
||||
super.onHiddenChanged(hidden);
|
||||
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
|
||||
List<Fragment> list = getChildFragmentManager().getFragments();
|
||||
if (list != null) {
|
||||
if (hidden) {
|
||||
for (Fragment fragment : getChildFragmentManager().getFragments()) {
|
||||
transaction.hide(fragment);
|
||||
}
|
||||
} else {
|
||||
for (Fragment fragment : getChildFragmentManager().getFragments()) {
|
||||
transaction.show(fragment);
|
||||
}
|
||||
}
|
||||
}
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
}
|
||||
@ -141,7 +141,7 @@ public class GameDetailAdapter extends RecyclerView.Adapter {
|
||||
});
|
||||
}
|
||||
|
||||
public void addLibaoList(){
|
||||
private void addLibaoList(){
|
||||
RetrofitManager.getLibao().getLibaoByGame(gameEntity.getId(),0 , 128)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
@ -388,7 +388,8 @@ public class GameDetailAdapter extends RecyclerView.Adapter {
|
||||
private void initLibaoViewHolder(GameDetaiLibaoViewHolder holder) {
|
||||
holder.libaoRv.setLayoutManager(new LinearLayoutManager(context
|
||||
, LinearLayoutManager.HORIZONTAL, false));
|
||||
holder.libaoRv.setAdapter(new GameLibaoGalleryAdapter(context, libaoList));
|
||||
holder.libaoRv.setAdapter(new GameLibaoGalleryAdapter(context, libaoList,
|
||||
entrance + "+(游戏详情[" + gameEntity.getName() + "]:游戏礼包)"));
|
||||
}
|
||||
|
||||
private void initSkinViewHolder(GameDetailSkinViewHolder holder) {
|
||||
@ -475,7 +476,9 @@ public class GameDetailAdapter extends RecyclerView.Adapter {
|
||||
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()));
|
||||
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()));
|
||||
}
|
||||
@ -508,7 +511,7 @@ public class GameDetailAdapter extends RecyclerView.Adapter {
|
||||
intent.putExtra("articleTypes", gameDetailEntity.getArticleTypes());
|
||||
intent.putExtra("gameName", gameEntity.getName());
|
||||
intent.putExtra("gameId", gameEntity.getId());
|
||||
intent.putExtra("entrance", entrance + "+(游戏详情:资讯攻略)");
|
||||
intent.putExtra("entrance", entrance + "+(游戏详情[" + gameEntity.getName() + "]:资讯攻略-全部)");
|
||||
context.startActivity(intent);
|
||||
}
|
||||
}
|
||||
@ -547,7 +550,7 @@ public class GameDetailAdapter extends RecyclerView.Adapter {
|
||||
|
||||
// 统计阅读量
|
||||
NewsUtils.statNewsViews(newsEntity.getId());
|
||||
NewsUtils.startNewsDetailActivity(context, newsEntity, entrance + "+(游戏详情:资讯攻略)");
|
||||
NewsUtils.startNewsDetailActivity(context, newsEntity, entrance + "+(游戏详情[" + gameEntity.getName() + "]:资讯攻略-列表[" + (ii + 1) + "])");
|
||||
}
|
||||
});
|
||||
viewHolder.gamedetail_item_news_list.addView(view);
|
||||
@ -633,7 +636,7 @@ public class GameDetailAdapter extends RecyclerView.Adapter {
|
||||
private class PluginAdapter extends RecyclerView.Adapter<PluginAdapter.ViewHolder>{
|
||||
private ArrayList<TagEntity> tags;
|
||||
|
||||
public PluginAdapter(ArrayList<TagEntity> tags) {
|
||||
PluginAdapter(ArrayList<TagEntity> tags) {
|
||||
this.tags = tags;
|
||||
}
|
||||
|
||||
@ -685,7 +688,7 @@ public class GameDetailAdapter extends RecyclerView.Adapter {
|
||||
return tags.size();
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder{
|
||||
class ViewHolder extends RecyclerView.ViewHolder{
|
||||
|
||||
LinearLayout linearLayout;
|
||||
SimpleDraweeView pluginIcon;
|
||||
|
||||
@ -20,15 +20,18 @@ import java.util.Map;
|
||||
* Created by LGT on 2016/9/8.
|
||||
*
|
||||
*/
|
||||
public class GameGalleryAdapter extends RecyclerView.Adapter<GameGalleryViewHolder> {
|
||||
class GameGalleryAdapter extends RecyclerView.Adapter<GameGalleryViewHolder> {
|
||||
|
||||
private Context context;
|
||||
|
||||
private ArrayList<String> gallery;
|
||||
|
||||
public GameGalleryAdapter(Context context, ArrayList<String> list) {
|
||||
private String entrance;
|
||||
|
||||
GameGalleryAdapter(Context context, ArrayList<String> list, String entrance) {
|
||||
this.context = context;
|
||||
gallery = list;
|
||||
this.gallery = list;
|
||||
this.entrance = entrance;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -53,6 +56,7 @@ public class GameGalleryAdapter extends RecyclerView.Adapter<GameGalleryViewHold
|
||||
Intent intent = new Intent(context, ViewImageActivity.class);
|
||||
intent.putExtra("urls", gallery);
|
||||
intent.putExtra("current", holder.getPosition());
|
||||
intent.putExtra("entrance", entrance);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
@ -16,14 +16,18 @@ import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/12/14.
|
||||
*
|
||||
*/
|
||||
public class GameLibaoGalleryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
class GameLibaoGalleryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
private List<LibaoEntity> mLibaoList;
|
||||
private String entrance;
|
||||
|
||||
public GameLibaoGalleryAdapter(Context context, List<LibaoEntity> libaoList) {
|
||||
GameLibaoGalleryAdapter(Context context, List<LibaoEntity> libaoList, String entrance) {
|
||||
this.mLibaoList = libaoList;
|
||||
this.mContext = context;
|
||||
this.entrance = entrance;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -33,7 +37,7 @@ public class GameLibaoGalleryAdapter extends RecyclerView.Adapter<RecyclerView.V
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
|
||||
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
|
||||
GameLibaoGalleryViewHolder viewHolder = (GameLibaoGalleryViewHolder) holder;
|
||||
LibaoEntity libaoEntity = mLibaoList.get(position);
|
||||
viewHolder.libaoName.setText(libaoEntity.getName());
|
||||
@ -44,8 +48,9 @@ public class GameLibaoGalleryAdapter extends RecyclerView.Adapter<RecyclerView.V
|
||||
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
AppController.put("libaoEntity", mLibaoList.get(position));
|
||||
AppController.put("libaoEntity", mLibaoList.get(holder.getPosition()));
|
||||
Intent intent = new Intent(mContext, LibaoDetailActivity.class);
|
||||
intent.putExtra("entrance", entrance);
|
||||
mContext.startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
@ -38,8 +38,9 @@ import rx.schedulers.Schedulers;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/12/12.
|
||||
*
|
||||
*/
|
||||
public class Libao1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
class Libao1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
private Libao1Fragment libao1Fragment;
|
||||
@ -53,6 +54,8 @@ public class Libao1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
|
||||
private String mSerchKey;
|
||||
|
||||
private String entrance;
|
||||
|
||||
private int skipPosition;
|
||||
|
||||
private boolean mIsSearch;
|
||||
@ -60,7 +63,7 @@ public class Libao1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
private boolean isOver;
|
||||
private boolean isNetworkError;
|
||||
|
||||
public Libao1FragmentAdapter(Libao1Fragment libao1Fragment, boolean isSearch, String key) {
|
||||
Libao1FragmentAdapter(Libao1Fragment libao1Fragment, boolean isSearch, String key) {
|
||||
this.mContext = libao1Fragment.getContext();
|
||||
this.libao1Fragment = libao1Fragment;
|
||||
this.mCallBackListener = libao1Fragment;
|
||||
@ -68,6 +71,8 @@ public class Libao1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
this.mIsSearch = isSearch;
|
||||
this.mSerchKey = key;
|
||||
|
||||
this.entrance = libao1Fragment.getActivity().getIntent().getStringExtra("entrance");
|
||||
|
||||
mLibaoList = new ArrayList<>();
|
||||
|
||||
mLibaoDao = new LibaoDao(mContext);
|
||||
@ -79,7 +84,7 @@ public class Libao1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
}
|
||||
}
|
||||
|
||||
public void addLibaoList(final boolean isSearch, int offset){
|
||||
void addLibaoList(final boolean isSearch, int offset){
|
||||
if (isLoading) return;
|
||||
|
||||
isLoading = true;
|
||||
@ -300,7 +305,7 @@ public class Libao1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
});
|
||||
}
|
||||
|
||||
private void initLibaoViewHolder(final LibaoNormalViewHolder holder, final int position) {
|
||||
private void initLibaoViewHolder(final LibaoNormalViewHolder holder, int position) {
|
||||
final LibaoEntity libaoEntity = mLibaoList.get(position - 1);
|
||||
holder.libaoName.setText(libaoEntity.getName());
|
||||
if (TextUtils.isEmpty(libaoEntity.getPlatform())) {
|
||||
@ -320,7 +325,7 @@ public class Libao1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
holder.libaoDes.setText(content);
|
||||
|
||||
if (libaoEntity.getStatus() != null) {
|
||||
LibaoUtils.initLibaoBtn(holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null);
|
||||
LibaoUtils.initLibaoBtn(holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, "(礼包中心-最新)");
|
||||
// holder.libaoBtnStatus.setClickable(false);
|
||||
String tv = holder.libaoBtnStatus.getText().toString();
|
||||
if ("已结束".equals(tv) || "已领光".equals(tv)) {
|
||||
@ -329,9 +334,10 @@ public class Libao1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
holder.libaoBtnStatus.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
skipPosition = position;
|
||||
skipPosition = holder.getPosition();
|
||||
AppController.put("libaoEntity", libaoEntity);
|
||||
Intent intent = new Intent(mContext, LibaoDetailActivity.class);
|
||||
intent.putExtra("entrance", entrance + "+(礼包中心-最新)");
|
||||
libao1Fragment.startActivityForResult(intent, 0x123);
|
||||
}
|
||||
});
|
||||
@ -341,9 +347,10 @@ public class Libao1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
skipPosition = position;
|
||||
skipPosition = holder.getPosition();
|
||||
AppController.put("libaoEntity", libaoEntity);
|
||||
Intent intent = new Intent(mContext, LibaoDetailActivity.class);
|
||||
intent.putExtra("entrance", entrance + "+(礼包中心-最新)");
|
||||
libao1Fragment.startActivityForResult(intent, 0x123);
|
||||
}
|
||||
});
|
||||
|
||||
@ -50,8 +50,9 @@ import rx.schedulers.Schedulers;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/12/12.
|
||||
*
|
||||
*/
|
||||
public class Libao2FragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
class Libao2FragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
private Libao2Fragment libao2Fragment;
|
||||
@ -68,16 +69,20 @@ public class Libao2FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
private String key;
|
||||
private String ids;
|
||||
|
||||
private String entrance;
|
||||
|
||||
private int skipPosition;
|
||||
|
||||
private LibaoDao mLibaoDao;
|
||||
|
||||
|
||||
public Libao2FragmentAdapter(Libao2Fragment libao2Fragment) {
|
||||
Libao2FragmentAdapter(Libao2Fragment libao2Fragment) {
|
||||
this.mContext = libao2Fragment.getContext();
|
||||
this.libao2Fragment = libao2Fragment;
|
||||
this.mCallBackListener = libao2Fragment;
|
||||
|
||||
this.entrance = libao2Fragment.getActivity().getIntent().getStringExtra("entrance");
|
||||
|
||||
mLibaoList = new ArrayList<>();
|
||||
gameIdList = new ArrayList<>();
|
||||
|
||||
@ -370,6 +375,7 @@ public class Libao2FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent(mContext, ConcernActivity.class);
|
||||
intent.putExtra("entrance", entrance + "+(礼包中心-关注)");
|
||||
mContext.startActivity(intent);
|
||||
}
|
||||
});
|
||||
@ -396,7 +402,7 @@ public class Libao2FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
holder.libaoDes.setText(content);
|
||||
|
||||
if (libaoEntity.getStatus() != null) {
|
||||
LibaoUtils.initLibaoBtn(holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null);
|
||||
LibaoUtils.initLibaoBtn(holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, "(礼包中心-关注)");
|
||||
holder.libaoBtnStatus.setClickable(false);
|
||||
String tv = holder.libaoBtnStatus.getText().toString();
|
||||
if ("已结束".equals(tv) || "已领光".equals(tv)) {
|
||||
@ -408,6 +414,7 @@ public class Libao2FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
skipPosition = position;
|
||||
AppController.put("libaoEntity", libaoEntity);
|
||||
Intent intent = new Intent(mContext, LibaoDetailActivity.class);
|
||||
intent.putExtra("entrance", entrance + "+(礼包中心-关注)");
|
||||
libao2Fragment.startActivityForResult(intent, 0x123);
|
||||
}
|
||||
});
|
||||
@ -420,6 +427,7 @@ public class Libao2FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
skipPosition = position;
|
||||
AppController.put("libaoEntity", libaoEntity);
|
||||
Intent intent = new Intent(mContext, LibaoDetailActivity.class);
|
||||
intent.putExtra("entrance", entrance + "+(礼包中心-关注)");
|
||||
libao2Fragment.startActivityForResult(intent, 0x123);
|
||||
}
|
||||
});
|
||||
|
||||
@ -32,8 +32,9 @@ import retrofit2.adapter.rxjava.HttpException;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/12/12.
|
||||
*
|
||||
*/
|
||||
public class Libao3FragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
class Libao3FragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
@ -44,16 +45,20 @@ public class Libao3FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
|
||||
private LibaoDao mLibaoDao;
|
||||
|
||||
public Libao3FragmentAdapter(Libao3Fragment libao3Fragment) {
|
||||
private String entrance;
|
||||
|
||||
Libao3FragmentAdapter(Libao3Fragment libao3Fragment) {
|
||||
this.mContext = libao3Fragment.getContext();
|
||||
this.mCallBackListener = libao3Fragment;
|
||||
|
||||
this.entrance = libao3Fragment.getActivity().getIntent().getStringExtra("entrance");
|
||||
|
||||
mLibaoList = new ArrayList<>();
|
||||
|
||||
initData();
|
||||
}
|
||||
|
||||
public void initData() {
|
||||
void initData() {
|
||||
mLibaoList.clear();
|
||||
mLibaoDao = new LibaoDao(mContext);
|
||||
mLibaoInfos = mLibaoDao.getAll();
|
||||
@ -148,6 +153,7 @@ public class Libao3FragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vie
|
||||
public void onClick(View v) {
|
||||
AppController.put("libaoEntity", libaoEntity);
|
||||
Intent intent = new Intent(mContext, LibaoDetailActivity.class);
|
||||
intent.putExtra("entrance", entrance + "+(礼包中心-存号箱)");
|
||||
mContext.startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
@ -593,6 +593,7 @@ public class News1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
}
|
||||
skipPosition = viewHolder.getPosition();
|
||||
Intent intent = new Intent(context, LibaoDetailActivity.class);
|
||||
intent.putExtra("entrance", "(资讯-关注)");
|
||||
fragment.startActivityForResult(intent, 0x122);
|
||||
}
|
||||
});
|
||||
@ -616,8 +617,8 @@ public class News1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
} else {
|
||||
viewHolder.imgLayout.setVisibility(View.VISIBLE);
|
||||
viewHolder.imgLayout.removeAllViews();
|
||||
ConcernContentUtils.addContentPic(context.getResources().getDisplayMetrics().widthPixels
|
||||
- DisplayUtils.dip2px(context, 34), viewHolder.imgLayout, concernEntity.getImg(), context);
|
||||
ConcernContentUtils.addContentPic(context, viewHolder.imgLayout, concernEntity.getImg(), "(资讯-关注)",
|
||||
context.getResources().getDisplayMetrics().widthPixels - DisplayUtils.dip2px(context, 34));
|
||||
}
|
||||
|
||||
int views = concernEntity.getViews();
|
||||
@ -678,6 +679,7 @@ public class News1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
}
|
||||
bundle.putStringArrayList("shareArrImg", (ArrayList<String>) concernEntity.getImg());
|
||||
intent.putExtras(bundle);
|
||||
intent.putExtra("entrance", "(资讯-关注)");
|
||||
context.startActivity(intent);
|
||||
} else {
|
||||
Intent intent = new Intent(context, ShareCardActivity.class);
|
||||
@ -689,6 +691,7 @@ public class News1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
bundle.putString("newsId", concernEntity.getId());
|
||||
}
|
||||
intent.putExtras(bundle);
|
||||
intent.putExtra("entrance", "(资讯-关注)");
|
||||
context.startActivity(intent);
|
||||
}
|
||||
}
|
||||
@ -713,6 +716,7 @@ public class News1FragmentAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
intent.putExtra("url", concernEntity.getLink());
|
||||
intent.putExtra("gameName", concernEntity.getGameName());
|
||||
intent.putExtra("newsId", concernEntity.getId());
|
||||
intent.putExtra("entrance", "(资讯-关注)");
|
||||
fragment.startActivityForResult(intent, 0x125);
|
||||
}else {
|
||||
Intent intent = new Intent(context, NewsDetailActivity.class);
|
||||
|
||||
@ -1,180 +0,0 @@
|
||||
package com.gh.gamecenter.news;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
|
||||
import com.gh.base.BaseFragment;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.eventbus.EBNetworkState;
|
||||
import com.gh.gamecenter.eventbus.EBUISwitch;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.OnClick;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/6/29.
|
||||
* 资讯-攻略界面
|
||||
*/
|
||||
public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener {
|
||||
|
||||
@BindView(R.id.news4_srl_refresh) SwipeRefreshLayout refreshLayout;
|
||||
@BindView(R.id.news4_rv_list) RecyclerView recyclerView;
|
||||
@BindView(R.id.news4_rl_label) RelativeLayout labelLayout;
|
||||
@BindView(R.id.news4_tv_label) TextView label;
|
||||
@BindView(R.id.news4_pb_loading) ProgressBarCircularIndeterminate loadingLayout;
|
||||
@BindView(R.id.reuse_no_connection) LinearLayout noConnectionLayout;
|
||||
|
||||
private LinearLayoutManager layoutManager;
|
||||
private News4FragmentAdapter adapter;
|
||||
private RelativeLayout.LayoutParams rparams;
|
||||
|
||||
Runnable runnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
adapter = new News4FragmentAdapter(News4Fragment.this);
|
||||
recyclerView.setAdapter(adapter);
|
||||
adapter.addList(0);
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
init(R.layout.fragment_news4);
|
||||
|
||||
refreshLayout.setColorSchemeResources(R.color.theme);
|
||||
refreshLayout.setOnRefreshListener(this);
|
||||
|
||||
rparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
|
||||
RelativeLayout.LayoutParams.WRAP_CONTENT);
|
||||
|
||||
recyclerView.setHasFixedSize(true);
|
||||
layoutManager = new LinearLayoutManager(getActivity());
|
||||
recyclerView.setLayoutManager(layoutManager);
|
||||
adapter = new News4FragmentAdapter(News4Fragment.this);
|
||||
recyclerView.setAdapter(adapter);
|
||||
recyclerView.setOnScrollListener(new OnScrollListener());
|
||||
}
|
||||
|
||||
// RecyclerView 滑动监听
|
||||
class OnScrollListener extends RecyclerView.OnScrollListener {
|
||||
@Override
|
||||
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
|
||||
int position = layoutManager.findFirstVisibleItemPosition();
|
||||
if (position == 0 && layoutManager.findViewByPosition(position).getTop() == 0) {
|
||||
labelLayout.setVisibility(View.GONE);
|
||||
} else if (!refreshLayout.isRefreshing()) {
|
||||
labelLayout.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
if (adapter.getTodayPosition() != -1
|
||||
&& position >= adapter.getTodayPosition()
|
||||
&& position <= adapter.getTodaySize() + adapter.getTodayPosition()) {
|
||||
label.setText("今天");
|
||||
label.setTextColor(0xFF00B7FA);
|
||||
} else if (adapter.getBeforePosition() != -1
|
||||
&& position >= adapter.getBeforePosition()) {
|
||||
label.setText("昨天/以前");
|
||||
label.setTextColor(0xFF3A3A3A);
|
||||
}
|
||||
|
||||
if (position == adapter.getTodayPosition() - 1
|
||||
|| position == adapter.getBeforePosition() - 1) {
|
||||
int buttom = layoutManager.findViewByPosition(position).getBottom();
|
||||
if (buttom <= labelLayout.getHeight()) {
|
||||
rparams.topMargin = buttom - labelLayout.getHeight();
|
||||
labelLayout.setLayoutParams(rparams);
|
||||
} else {
|
||||
rparams.topMargin = 0;
|
||||
labelLayout.setLayoutParams(rparams);
|
||||
}
|
||||
} else {
|
||||
rparams.topMargin = 0;
|
||||
labelLayout.setLayoutParams(rparams);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
||||
if (newState == RecyclerView.SCROLL_STATE_IDLE
|
||||
&& layoutManager.findLastVisibleItemPosition() + 1 == adapter.getItemCount()) {
|
||||
if (!adapter.isOver() && !adapter.isLoading() && !adapter.isNetworkError()) {
|
||||
adapter.addList(adapter.getNewsListSize());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@OnClick(R.id.reuse_no_connection)
|
||||
public void reconnection() { // 重新连接
|
||||
refreshLayout.setRefreshing(true);
|
||||
recyclerView.setVisibility(View.VISIBLE);
|
||||
loadingLayout.setVisibility(View.VISIBLE);
|
||||
noConnectionLayout.setVisibility(View.GONE);
|
||||
handler.postDelayed(runnable, 1000);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadDone() { // 数据加载成功回调
|
||||
refreshLayout.setRefreshing(false);
|
||||
loadingLayout.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadDone(Object obj) { // label显示回调
|
||||
if (adapter.getTodayPosition() != -1) {
|
||||
label.setText("今天");
|
||||
label.setTextColor(0xFF00B7FA);
|
||||
} else if (adapter.getBeforePosition() != -1) {
|
||||
label.setText("昨天/以前");
|
||||
label.setTextColor(0xFF3A3A3A);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadError() { // 数据加载失败回调
|
||||
refreshLayout.setRefreshing(false);
|
||||
loadingLayout.setVisibility(View.GONE);
|
||||
recyclerView.setVisibility(View.GONE);
|
||||
noConnectionLayout.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
// 连接上网络事件
|
||||
public void onEventMainThread(EBNetworkState busNetworkState) {
|
||||
if (busNetworkState.isNetworkConnected()) {
|
||||
if (noConnectionLayout.getVisibility() == View.VISIBLE) {
|
||||
reconnection();
|
||||
} else if (adapter.isNetworkError()) {
|
||||
adapter.setNetworkError(false);
|
||||
adapter.notifyItemChanged(adapter.getItemCount() - 1);
|
||||
adapter.addList(adapter.getNewsListSize());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Fragment界面切换事件
|
||||
public void onEventMainThread(EBUISwitch busNine) {
|
||||
if ("NewsFragment".equals(busNine.getFrom())) {
|
||||
if (busNine.getPosition() == 3) {
|
||||
if (loadingLayout.getVisibility() == View.VISIBLE) {
|
||||
adapter.addList(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh() { // 刷新
|
||||
handler.postDelayed(runnable, 1000);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,442 +0,0 @@
|
||||
package com.gh.gamecenter.news;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.gh.common.constant.ItemViewType;
|
||||
import com.gh.common.util.DataCollectionUtils;
|
||||
import com.gh.common.util.DataUtils;
|
||||
import com.gh.common.util.DisplayUtils;
|
||||
import com.gh.common.util.NewsUtils;
|
||||
import com.gh.common.view.CardLinearLayout;
|
||||
import com.gh.common.view.CardRelativeLayout;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.adapter.viewholder.NewsFooterViewHolder;
|
||||
import com.gh.gamecenter.adapter.viewholder.NewsHeadViewHolder;
|
||||
import com.gh.gamecenter.adapter.viewholder.NewsImageViewHolder;
|
||||
import com.gh.gamecenter.adapter.viewholder.NewsTextViewHolder;
|
||||
import com.gh.gamecenter.entity.NewsEntity;
|
||||
import com.gh.gamecenter.listener.OnCallBackListener;
|
||||
import com.gh.gamecenter.retrofit.Response;
|
||||
import com.gh.gamecenter.retrofit.RetrofitManager;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
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;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author 温冠超
|
||||
* 资讯-攻略-数据适配器
|
||||
*/
|
||||
public class News4FragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private News4Fragment fragment;
|
||||
private Context context;
|
||||
private OnCallBackListener listener;
|
||||
|
||||
private List<NewsEntity> todayNewsList;
|
||||
private List<NewsEntity> beforeNewsList;
|
||||
|
||||
private int todayPosition; // 今天head的位置
|
||||
private int beforePosition; // 昨天/以前head的位置
|
||||
private int itemCount;
|
||||
|
||||
private int cardMargin;
|
||||
|
||||
private boolean isLoading;
|
||||
private boolean isOver;
|
||||
private boolean isNetworkError;
|
||||
|
||||
public News4FragmentAdapter(News4Fragment fregment) {
|
||||
this.fragment = fregment;
|
||||
this.context = fregment.getActivity();
|
||||
this.listener = fregment;
|
||||
|
||||
todayNewsList = new ArrayList<>();
|
||||
beforeNewsList = new ArrayList<>();
|
||||
|
||||
itemCount = 0;
|
||||
todayPosition = -1;
|
||||
beforePosition = -1;
|
||||
|
||||
isLoading = false;
|
||||
isOver = false;
|
||||
isNetworkError = false;
|
||||
|
||||
cardMargin = (int) context.getResources().getDimension(R.dimen.cardview_margin);
|
||||
}
|
||||
|
||||
public void addList(final int offset) {
|
||||
if (isLoading) {
|
||||
return;
|
||||
}
|
||||
isLoading = true;
|
||||
RetrofitManager.getApi()
|
||||
.getNews("攻略", 20, offset)
|
||||
.map(new Func1<List<NewsEntity>, Integer>() {
|
||||
@Override
|
||||
public Integer call(List<NewsEntity> list) {
|
||||
// 去除重复数据
|
||||
List<NewsEntity> newList = NewsUtils.removeDuplicateData(beforeNewsList,
|
||||
NewsUtils.removeDuplicateData(todayNewsList, list));
|
||||
|
||||
int count = 0;
|
||||
if (newList.size() != 0) {
|
||||
SimpleDateFormat format = new SimpleDateFormat("Mdd", Locale.getDefault());
|
||||
int today = Integer.valueOf(format.format(new Date()));
|
||||
|
||||
// 数据分类,今天、昨天/以前
|
||||
for (NewsEntity newsEntity : newList) {
|
||||
int day = Integer.valueOf(format.format(
|
||||
new Date(newsEntity.getPublishOn() * 1000)));
|
||||
if (day == today) {
|
||||
// 今天
|
||||
todayNewsList.add(newsEntity);
|
||||
if (todayNewsList.size() == 1) {
|
||||
count += 2;
|
||||
} else {
|
||||
count += 1;
|
||||
}
|
||||
} else {
|
||||
// 昨天/以前
|
||||
beforeNewsList.add(newsEntity);
|
||||
if (beforeNewsList.size() == 1) {
|
||||
count += 2;
|
||||
} else {
|
||||
count += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
updateLabelPosition();
|
||||
}
|
||||
return count;
|
||||
}
|
||||
})
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Response<Integer>(){
|
||||
@Override
|
||||
public void onResponse(Integer response) {
|
||||
isLoading = false;
|
||||
|
||||
if (response != 0) {
|
||||
int start = itemCount;
|
||||
itemCount += response;
|
||||
if (!fragment.isHidden() && !fragment.isEverpause()) {
|
||||
notifyItemRangeInserted(start, response);
|
||||
} else {
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
if (offset == 0) {
|
||||
if (listener != null) {
|
||||
listener.loadDone(null);
|
||||
}
|
||||
} else {
|
||||
notifyItemChanged(getItemCount() - response - 2);
|
||||
}
|
||||
} else {
|
||||
isOver = true;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
}
|
||||
|
||||
if (listener != null) {
|
||||
listener.loadDone();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(HttpException e) {
|
||||
isLoading = false;
|
||||
// 网络错误
|
||||
if (offset == 0) {
|
||||
if (listener != null) {
|
||||
listener.loadError();
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(context, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show();
|
||||
isNetworkError = true;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 更新标签位置
|
||||
private void updateLabelPosition() {
|
||||
todayPosition = -1;
|
||||
beforePosition = -1;
|
||||
|
||||
if (!todayNewsList.isEmpty()) {
|
||||
todayPosition = 0;
|
||||
}
|
||||
|
||||
if (!beforeNewsList.isEmpty()) {
|
||||
if (todayPosition != -1) {
|
||||
beforePosition = todayNewsList.size() + 1;
|
||||
} else if (todayPosition == -1) {
|
||||
beforePosition = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
if (itemCount == 0) {
|
||||
return 0;
|
||||
}
|
||||
return itemCount + 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (todayPosition != -1) {
|
||||
if (position == todayPosition) {
|
||||
return ItemViewType.NEWS_HEADER;
|
||||
}
|
||||
if (position == todayPosition + 1) {
|
||||
if (!TextUtils.isEmpty(todayNewsList.get(0).getThumb())) {
|
||||
return ItemViewType.NEWS_IMAGE;
|
||||
} else {
|
||||
return ItemViewType.NEWS_TEXT;
|
||||
}
|
||||
}
|
||||
if (position > todayPosition + 1
|
||||
&& position <= todayNewsList.size() + todayPosition) {
|
||||
return ItemViewType.NEWS_TEXT;
|
||||
}
|
||||
}
|
||||
|
||||
if (beforePosition != -1) {
|
||||
if (position == beforePosition) {
|
||||
return ItemViewType.NEWS_HEADER;
|
||||
}
|
||||
if (position > beforePosition
|
||||
&& position <= beforeNewsList.size() + beforePosition) {
|
||||
return ItemViewType.NEWS_TEXT;
|
||||
}
|
||||
}
|
||||
|
||||
return ItemViewType.LOADING;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
if (viewType == ItemViewType.NEWS_HEADER) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(
|
||||
R.layout.news_head_item, parent, false);
|
||||
return new NewsHeadViewHolder(view);
|
||||
} else if (viewType == ItemViewType.NEWS_IMAGE) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(
|
||||
R.layout.news_image_item, parent, false);
|
||||
return new NewsImageViewHolder(view);
|
||||
} else if (viewType == ItemViewType.NEWS_TEXT) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(
|
||||
R.layout.news_text_item, parent, false);
|
||||
return new NewsTextViewHolder(view);
|
||||
} else if (viewType == ItemViewType.LOADING) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(
|
||||
R.layout.news_footer_item, parent, false);
|
||||
return new NewsFooterViewHolder(view);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
|
||||
if (holder instanceof NewsHeadViewHolder) {
|
||||
initNewsHeadViewHolder((NewsHeadViewHolder) holder, position);
|
||||
} else if (holder instanceof NewsImageViewHolder) {
|
||||
initNewsImageViewHolder((NewsImageViewHolder) holder);
|
||||
} else if (holder instanceof NewsTextViewHolder) {
|
||||
initNewsTextViewHolder((NewsTextViewHolder) holder, position);
|
||||
} else if (holder instanceof NewsFooterViewHolder) {
|
||||
initNewsFooterViewHolder((NewsFooterViewHolder) holder);
|
||||
}
|
||||
}
|
||||
|
||||
private void initNewsHeadViewHolder(NewsHeadViewHolder viewHolder, int position) {
|
||||
if (position == todayPosition) {
|
||||
((CardRelativeLayout) viewHolder.itemView).setmBottom(DisplayUtils.dip2px(context, 8));
|
||||
viewHolder.label.setText("今天");
|
||||
viewHolder.label.setTextColor(0xFF1BA4FC);
|
||||
}
|
||||
|
||||
if (position == beforePosition) {
|
||||
CardRelativeLayout cardRelativeLayout = (CardRelativeLayout) viewHolder.itemView;
|
||||
cardRelativeLayout.setmTop(0);
|
||||
cardRelativeLayout.setmBottom(DisplayUtils.dip2px(context, 8));
|
||||
viewHolder.label.setText("昨天/以前");
|
||||
viewHolder.label.setTextColor(0xFF3A3A3A);
|
||||
}
|
||||
}
|
||||
|
||||
private void initNewsImageViewHolder(NewsImageViewHolder viewHolder) {
|
||||
final NewsEntity newsEntity = todayNewsList.get(0);
|
||||
viewHolder.itemView.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", newsEntity.getTitle());
|
||||
kv.put("位置", "今天-大图");
|
||||
DataUtils.onEvent(context, "点击", "资讯-攻略", kv);
|
||||
|
||||
DataCollectionUtils.uploadClick(context, "今天-大图", "资讯-攻略", newsEntity.getTitle());
|
||||
|
||||
// 统计阅读量
|
||||
NewsUtils.statNewsViews(newsEntity.getId());
|
||||
NewsUtils.startNewsDetailActivity(context, newsEntity, "(资讯-攻略:今天)");
|
||||
}
|
||||
});
|
||||
viewHolder.thumb.setImageURI(newsEntity.getThumb());
|
||||
String title = newsEntity.getTitle();
|
||||
if (title.contains("》")) {
|
||||
viewHolder.mainTitle.setText(title.substring(0, title.indexOf("》") + 1));
|
||||
viewHolder.subTitle.setVisibility(View.VISIBLE);
|
||||
viewHolder.subTitle.setText(title.substring(title.indexOf("》") + 1));
|
||||
} else if (title.contains(" ")) {
|
||||
viewHolder.mainTitle.setText(title.substring(0, title.indexOf(" ") + 1));
|
||||
viewHolder.subTitle.setVisibility(View.VISIBLE);
|
||||
viewHolder.subTitle.setText(title.substring(title.indexOf(" ") + 1));
|
||||
} else {
|
||||
viewHolder.mainTitle.setText(title);
|
||||
viewHolder.subTitle.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
private void initNewsTextViewHolder(NewsTextViewHolder viewHolder, int position) {
|
||||
if (position > todayPosition
|
||||
&& position <= todayNewsList.size() + todayPosition) {
|
||||
// 第一个
|
||||
if (position - todayPosition - 1 == 0) {
|
||||
((CardLinearLayout) viewHolder.itemView).setmTop(0);
|
||||
viewHolder.line.setVisibility(View.GONE);
|
||||
} else {
|
||||
((CardLinearLayout) viewHolder.itemView).setmTop(0);
|
||||
viewHolder.line.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
// 最后一个
|
||||
if (position - todayPosition == todayNewsList.size()) {
|
||||
((CardLinearLayout) viewHolder.itemView).setBottom(true);
|
||||
((CardLinearLayout) viewHolder.itemView).setmBottom(0);
|
||||
} else {
|
||||
((CardLinearLayout) viewHolder.itemView).setBottom(false);
|
||||
((CardLinearLayout) viewHolder.itemView).setmBottom(0);
|
||||
}
|
||||
initNewsTextViewHolder(viewHolder, todayNewsList.get(position - todayPosition - 1), "今天");
|
||||
} else {
|
||||
// 第一个
|
||||
if (position - beforePosition - 1 == 0) {
|
||||
((CardLinearLayout) viewHolder.itemView).setmTop(0);
|
||||
viewHolder.line.setVisibility(View.GONE);
|
||||
} else {
|
||||
((CardLinearLayout) viewHolder.itemView).setmTop(0);
|
||||
viewHolder.line.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
// 最后一个
|
||||
if (position - beforePosition == beforeNewsList.size()) {
|
||||
((CardLinearLayout) viewHolder.itemView).setBottom(true);
|
||||
((CardLinearLayout) viewHolder.itemView).setmBottom(cardMargin);
|
||||
} else {
|
||||
((CardLinearLayout) viewHolder.itemView).setBottom(false);
|
||||
((CardLinearLayout) viewHolder.itemView).setmBottom(0);
|
||||
}
|
||||
initNewsTextViewHolder(viewHolder, beforeNewsList.get(position - beforePosition - 1), "昨天/以前");
|
||||
}
|
||||
}
|
||||
|
||||
private void initNewsTextViewHolder(NewsTextViewHolder viewHolder,
|
||||
final NewsEntity newsEntity, final String entrance) {
|
||||
viewHolder.itemView.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("名字", newsEntity.getTitle());
|
||||
kv.put("位置", entrance);
|
||||
DataUtils.onEvent(context, "点击", "资讯-攻略", kv);
|
||||
|
||||
DataCollectionUtils.uploadClick(context, entrance, "资讯-攻略", newsEntity.getTitle());
|
||||
|
||||
// 统计阅读量
|
||||
NewsUtils.statNewsViews(newsEntity.getId());
|
||||
NewsUtils.startNewsDetailActivity(context, newsEntity, "(资讯-攻略:" + entrance + ")");
|
||||
}
|
||||
});
|
||||
viewHolder.type.setText(newsEntity.getType());
|
||||
viewHolder.type.setBackgroundResource(NewsUtils.getDrawableIdByType(newsEntity.getType()));
|
||||
viewHolder.title.setText(newsEntity.getTitle());
|
||||
}
|
||||
|
||||
private void initNewsFooterViewHolder(NewsFooterViewHolder viewHolder) {
|
||||
if (isNetworkError) {
|
||||
viewHolder.loading.setVisibility(View.GONE);
|
||||
viewHolder.hint.setText("加载失败,点击重试");
|
||||
viewHolder.itemView.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
isNetworkError = false;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
addList(getNewsListSize());
|
||||
}
|
||||
});
|
||||
} else if (isOver) {
|
||||
viewHolder.itemView.setClickable(false);
|
||||
viewHolder.loading.setVisibility(View.GONE);
|
||||
viewHolder.hint.setText("加载完毕");
|
||||
} else {
|
||||
viewHolder.itemView.setClickable(false);
|
||||
viewHolder.loading.setVisibility(View.VISIBLE);
|
||||
viewHolder.hint.setText("加载中...");
|
||||
}
|
||||
}
|
||||
|
||||
public int getNewsListSize() {
|
||||
return todayNewsList.size() + beforeNewsList.size();
|
||||
}
|
||||
|
||||
public int getTodaySize() {
|
||||
return todayNewsList.size();
|
||||
}
|
||||
|
||||
public int getTodayPosition() {
|
||||
return todayPosition;
|
||||
}
|
||||
|
||||
public int getBeforePosition() {
|
||||
return beforePosition;
|
||||
}
|
||||
|
||||
public boolean isLoading() {
|
||||
return isLoading;
|
||||
}
|
||||
|
||||
public boolean isOver() {
|
||||
return isOver;
|
||||
}
|
||||
|
||||
public boolean isNetworkError() {
|
||||
return isNetworkError;
|
||||
}
|
||||
|
||||
public void setNetworkError(boolean isNetworkError) {
|
||||
this.isNetworkError = isNetworkError;
|
||||
}
|
||||
}
|
||||
@ -53,9 +53,13 @@ import com.gh.gamecenter.retrofit.RetrofitManager;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
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;
|
||||
@ -294,11 +298,39 @@ public class NewsDetailAdapter extends RecyclerView.Adapter {
|
||||
|
||||
likeCount.setText(String.valueOf(commentEntity.getVote()));
|
||||
content.setText(commentEntity.getContent());
|
||||
time.setText(commentEntity.getTime() + "");
|
||||
userName.setText(commentEntity.getUser().getName());
|
||||
userIcon.setImageURI(commentEntity.getUser().getIcon());
|
||||
holder.list.addView(contentView);
|
||||
|
||||
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd", Locale.getDefault());
|
||||
try {
|
||||
long today = format.parse(format.format(new Date())).getTime();
|
||||
long day = commentEntity.getTime() * 1000;
|
||||
if (day >= today && day < today + 86400 * 1000) {
|
||||
long min = new Date().getTime()/1000 - day/1000;
|
||||
int hour = (int) (min/ (60 * 60));
|
||||
if (hour == 0) {
|
||||
if (min < 60) {
|
||||
time.setText("刚刚");
|
||||
} else {
|
||||
time.setText(String.format(Locale.getDefault(), "%d分钟前", (int) (min / 60)));
|
||||
}
|
||||
} else {
|
||||
time.setText(String.format(Locale.getDefault(), "%d小时前", hour));
|
||||
}
|
||||
} else if (day >= today - 86400 * 1000 && day < today) {
|
||||
format.applyPattern("HH:mm");
|
||||
time.setText("昨天 ");
|
||||
} else {
|
||||
format.applyPattern("yyyy-MM-dd");
|
||||
time.setText(format.format(day));
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
format.applyPattern("yyyy-MM-dd");
|
||||
time.setText(format.format(commentEntity.getTime() * 1000));
|
||||
}
|
||||
|
||||
if (commentEntity.getVote() == 0) {
|
||||
likeCount.setVisibility(View.GONE);
|
||||
} else { // 检查是否已点赞
|
||||
@ -395,8 +427,8 @@ public class NewsDetailAdapter extends RecyclerView.Adapter {
|
||||
Intent intent = new Intent(context, MessageDetailActivity.class);
|
||||
intent.putExtra("newsId", id);
|
||||
intent.putExtra("commentNum", -1);
|
||||
intent.putExtra("entrance", entrance + "+(新闻详情[" + title + "])");
|
||||
context.startActivity(intent);
|
||||
// activity.startActivityForResult(intent, 1001);
|
||||
}
|
||||
});
|
||||
|
||||
@ -424,7 +456,7 @@ public class NewsDetailAdapter extends RecyclerView.Adapter {
|
||||
|
||||
// 统计阅读量
|
||||
NewsUtils.statNewsViews(newsEntity.getId());
|
||||
NewsUtils.startNewsDetailActivity(context, newsEntity, entrance + "+(新闻详情:相关推荐)");
|
||||
NewsUtils.startNewsDetailActivity(context, newsEntity, entrance + "+(新闻详情:相关推荐[" + (viewHolder.getPosition() + 1) + "])");
|
||||
}
|
||||
});
|
||||
viewHolder.newsdetail_item_ll_news_more.addView(view);
|
||||
@ -524,7 +556,7 @@ public class NewsDetailAdapter extends RecyclerView.Adapter {
|
||||
|
||||
DataCollectionUtils.uploadClick(context, "游戏信息", "新闻详情", newsDetailEntity.getTitle());
|
||||
|
||||
GameUtils.startGameDetailActivity(context, gameEntity.getId(), entrance + "+(新闻详情)");
|
||||
GameUtils.startGameDetailActivity(context, gameEntity.getId(), entrance + "+(新闻详情[" + newsDetailEntity.getTitle() + "])");
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -596,6 +628,7 @@ public class NewsDetailAdapter extends RecyclerView.Adapter {
|
||||
checkIntent.putExtra("urls", imgs);
|
||||
checkIntent.putExtra("current", current);
|
||||
checkIntent.putExtra("ScaleType", "FIT_CENTER");
|
||||
checkIntent.putExtra("entrance", entrance + "+(新闻详情[" + title + "])");
|
||||
context.startActivity(checkIntent);
|
||||
}
|
||||
|
||||
@ -609,11 +642,11 @@ public class NewsDetailAdapter extends RecyclerView.Adapter {
|
||||
@JavascriptInterface
|
||||
public void skip(String id, String type) {
|
||||
if ("game".equals(type)) {
|
||||
GameUtils.startGameDetailActivity(context, id, entrance);
|
||||
GameUtils.startGameDetailActivity(context, id, entrance + "+(新闻详情[" + newsDetailEntity.getTitle() + "])");
|
||||
} else if ("news".equals(type)) {
|
||||
Intent intent = new Intent(context, NewsDetailActivity.class);
|
||||
intent.putExtra("newsId", id);
|
||||
intent.putExtra("entrance", entrance);
|
||||
intent.putExtra("entrance", entrance + "+(新闻详情[" + newsDetailEntity.getTitle() + "])");
|
||||
context.startActivity(intent);
|
||||
}
|
||||
}
|
||||
@ -628,6 +661,10 @@ public class NewsDetailAdapter extends RecyclerView.Adapter {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
@ -22,7 +22,6 @@ import com.gh.gamecenter.db.LibaoDao;
|
||||
import com.gh.gamecenter.db.info.ConcernInfo;
|
||||
import com.gh.gamecenter.entity.ApkEntity;
|
||||
import com.gh.gamecenter.entity.GameEntity;
|
||||
import com.gh.gamecenter.listener.OnCallBackListener;
|
||||
import com.gh.gamecenter.manager.ConcernManager;
|
||||
import com.gh.gamecenter.manager.GameManager;
|
||||
import com.gh.gamecenter.retrofit.Response;
|
||||
@ -41,10 +40,9 @@ import rx.schedulers.Schedulers;
|
||||
* Created by LGT on 2016/8/15.
|
||||
* 已关注界面-数据适配器
|
||||
*/
|
||||
public class ConcernFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
class ConcernFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private Context context;
|
||||
private OnCallBackListener listener;
|
||||
|
||||
private LibaoDao libaoDao;
|
||||
|
||||
@ -58,9 +56,8 @@ public class ConcernFragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vi
|
||||
|
||||
private boolean isRemove;
|
||||
|
||||
public ConcernFragmentAdapter(ConcernFragment fragment) {
|
||||
ConcernFragmentAdapter(ConcernFragment fragment) {
|
||||
this.context = fragment.getActivity();
|
||||
this.listener = fragment;
|
||||
|
||||
isRemove = false;
|
||||
|
||||
@ -76,7 +73,7 @@ public class ConcernFragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vi
|
||||
concernList = concernManager.getConcernGame();
|
||||
|
||||
if (concernList == null || concernList.isEmpty()) {
|
||||
listener.loadEmpty();
|
||||
fragment.loadEmpty();
|
||||
} else {
|
||||
init();
|
||||
}
|
||||
|
||||
@ -31,11 +31,12 @@ import de.greenrobot.event.EventBus;
|
||||
public class InstallFragment extends BaseFragment {
|
||||
|
||||
@BindView(R.id.fm_install_rv_show) RecyclerView fm_install_rv_show;
|
||||
private InstallFragmentAdapter adapter;
|
||||
@BindView(R.id.reuse_nodata_skip) LinearLayout reuse_nodata_skip;
|
||||
@BindView(R.id.reuse_nodata_skip_tv_hint) TextView reuse_nodata_skip_tv_hint;
|
||||
@BindView(R.id.reuse_nodata_skip_tv_btn) TextView reuse_nodata_skip_tv_btn;
|
||||
|
||||
private InstallFragmentAdapter adapter;
|
||||
|
||||
private DataWatcher dataWatcher = new DataWatcher() {
|
||||
@Override
|
||||
public void onDataChanged(DownloadEntity downloadEntity) {
|
||||
|
||||
@ -46,7 +46,7 @@ import rx.schedulers.Schedulers;
|
||||
* Created by LGT on 2016/8/12.
|
||||
* 已安装界面-数据适配器
|
||||
*/
|
||||
public class InstallFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
class InstallFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private Context context;
|
||||
|
||||
@ -62,7 +62,7 @@ public class InstallFragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vi
|
||||
|
||||
private LibaoDao libaoDao;
|
||||
|
||||
public InstallFragmentAdapter(InstallFragment fragment) {
|
||||
InstallFragmentAdapter(InstallFragment fragment) {
|
||||
this.context = fragment.getActivity();
|
||||
|
||||
gameList = new ArrayList<>();
|
||||
@ -97,7 +97,7 @@ public class InstallFragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vi
|
||||
}
|
||||
}
|
||||
|
||||
public ArrayList<GameEntity> getGameList() {
|
||||
ArrayList<GameEntity> getGameList() {
|
||||
return gameList;
|
||||
}
|
||||
|
||||
@ -242,7 +242,7 @@ public class InstallFragmentAdapter extends RecyclerView.Adapter<RecyclerView.Vi
|
||||
if (entity.getId().equals(id)) {
|
||||
GameEntity newEntity = entity.clone();
|
||||
newEntity.setLibaoExists(entity.isLibaoExists());
|
||||
if (newEntity != null && newEntity.getApk().size() > 1) {
|
||||
if (newEntity.getApk().size() > 1) {
|
||||
for (ApkEntity apkEntity : newEntity.getApk()) {
|
||||
if (sortedList.get(i).getPackageName().equals(apkEntity.getPackageName())) {
|
||||
ArrayList<ApkEntity> list = new ArrayList<>();
|
||||
|
||||
@ -230,11 +230,9 @@ public class PersonalFragment extends Fragment implements View.OnClickListener,
|
||||
DataUtils.onEvent(getActivity(), "我的光环", "设置图标");
|
||||
DataCollectionUtils.uploadClick(getActivity(), "设置图标", "我的光环");
|
||||
|
||||
startActivity(new Intent(getActivity(), SettingActivity.class));
|
||||
} else if (id == R.id.me_tv_top_install) {
|
||||
me_vp_show.setCurrentItem(0);
|
||||
} else if (id == R.id.me_tv_top_concern) {
|
||||
me_vp_show.setCurrentItem(1);
|
||||
Intent intent = new Intent(getActivity(), SettingActivity.class);
|
||||
intent.putExtra("entrance", "(我的光环)");
|
||||
startActivity(intent);
|
||||
} else if (id == R.id.me_tv_top_name) {
|
||||
DataUtils.onEvent(getActivity(), "我的光环", "用户昵称");
|
||||
DataCollectionUtils.uploadClick(getActivity(), "用户昵称", "我的光环");
|
||||
@ -247,25 +245,27 @@ public class PersonalFragment extends Fragment implements View.OnClickListener,
|
||||
DataCollectionUtils.uploadClick(getActivity(), "用户头像", "我的光环");
|
||||
|
||||
if (isLogin) {
|
||||
Intent intent = new Intent(Intent.ACTION_PICK,
|
||||
MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
|
||||
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
|
||||
startActivityForResult(intent, 0x123);
|
||||
}
|
||||
} else if (id == R.id.me_tv_top_install) {
|
||||
me_vp_show.setCurrentItem(0);
|
||||
} else if (id == R.id.me_tv_top_concern) {
|
||||
me_vp_show.setCurrentItem(1);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == 0x123 && data != null) {
|
||||
if (data != null && requestCode == 0x123) {
|
||||
Uri selectedImage = data.getData();
|
||||
if (selectedImage == null) {
|
||||
return;
|
||||
}
|
||||
String[] filePathColumn = { MediaStore.Images.Media.DATA };
|
||||
|
||||
Cursor cursor = getActivity().getContentResolver().query(selectedImage,
|
||||
filePathColumn, null, null, null);
|
||||
Cursor cursor = getActivity().getContentResolver().query(selectedImage, filePathColumn, null, null, null);
|
||||
if (cursor == null) {
|
||||
return;
|
||||
}
|
||||
@ -279,12 +279,12 @@ public class PersonalFragment extends Fragment implements View.OnClickListener,
|
||||
// 上传头像
|
||||
Intent intent = new Intent(getActivity(), CropImageActivity.class);
|
||||
intent.putExtra("path", picturePath);
|
||||
intent.putExtra("entrance", "(我的光环)");
|
||||
startActivityForResult(intent, 0x124);
|
||||
} else if (requestCode == 0x124 && data != null) {
|
||||
} else if (data != null && requestCode == 0x124) {
|
||||
String url = data.getExtras().getString("url");
|
||||
SharedPreferences sp = getActivity().getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE);
|
||||
sp.edit().putString("user_icon", url).apply();
|
||||
// ImageUtils.getInstance(getActivity()).display(url, me_iv_top_icon, R.drawable.user_default_icon);
|
||||
me_iv_top_icon.setImageURI(url);
|
||||
}
|
||||
}
|
||||
|
||||
@ -40,6 +40,7 @@ public class DownloadReceiver extends BroadcastReceiver {
|
||||
} else {
|
||||
Intent intent2 = new Intent(context, DownloadManagerActivity.class);
|
||||
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent2.putExtra("entrance", "(下载跳转)");
|
||||
context.startActivity(intent2);
|
||||
}
|
||||
} else {
|
||||
@ -48,6 +49,7 @@ public class DownloadReceiver extends BroadcastReceiver {
|
||||
intent2.setAction(Intent.ACTION_MAIN);
|
||||
intent2.addCategory(Intent.CATEGORY_LAUNCHER);
|
||||
intent2.putExtra("to", "DownloadManagerActivity");
|
||||
intent2.putExtra("entrance", "(下载跳转)");
|
||||
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(intent2);
|
||||
}
|
||||
|
||||
@ -42,6 +42,7 @@ public class InstallReceiver extends BroadcastReceiver {
|
||||
Intent intent2 = new Intent(context, DownloadManagerActivity.class);
|
||||
intent2.putExtra("currentItem", 0);
|
||||
intent2.putExtra("path", path);
|
||||
intent2.putExtra("entrance", "(安装跳转)");
|
||||
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(intent2);
|
||||
}
|
||||
@ -53,6 +54,7 @@ public class InstallReceiver extends BroadcastReceiver {
|
||||
intent2.putExtra("to", "DownloadManagerActivity");
|
||||
intent2.putExtra("currentItem", 0);
|
||||
intent2.putExtra("path", path);
|
||||
intent2.putExtra("entrance", "(安装跳转)");
|
||||
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(intent2);
|
||||
}
|
||||
|
||||
@ -100,6 +100,7 @@ public class NotificationReceiver extends BroadcastReceiver {
|
||||
Intent intent2 = new Intent(context, DownloadManagerActivity.class);
|
||||
intent2.putExtra("currentItem", 1);
|
||||
intent2.putExtra("isPushIntent", true);
|
||||
intent2.putExtra("entrance", "(小米推送)");
|
||||
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(intent2);
|
||||
}
|
||||
@ -111,6 +112,7 @@ public class NotificationReceiver extends BroadcastReceiver {
|
||||
intent2.putExtra("to", "DownloadManagerActivity");
|
||||
intent2.putExtra("currentItem", 1);
|
||||
intent2.putExtra("isPushIntent", true);
|
||||
intent2.putExtra("entrance", "(小米推送)");
|
||||
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(intent2);
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ import retrofit2.adapter.rxjava.HttpException;
|
||||
import rx.android.schedulers.AndroidSchedulers;
|
||||
import rx.schedulers.Schedulers;
|
||||
|
||||
public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private Context context;
|
||||
private OnCallBackListener listener;
|
||||
@ -45,11 +45,17 @@ public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter<Recycl
|
||||
private LibaoDao libaoDao;
|
||||
|
||||
private String key;
|
||||
private String entrance;
|
||||
|
||||
public SearchGameDetailFragmentAdapter(SearchGameDetailFragment fragment, String key) {
|
||||
SearchGameDetailFragmentAdapter(SearchGameDetailFragment fragment, String key) {
|
||||
this.context = fragment.getActivity();
|
||||
this.listener = fragment;
|
||||
|
||||
entrance = fragment.getActivity().getIntent().getStringExtra("entrance");
|
||||
if (fragment.getActivity().getIntent().getBundleExtra("data") != null) {
|
||||
entrance = fragment.getActivity().getIntent().getBundleExtra("data").getString("entrance");
|
||||
}
|
||||
|
||||
gameList = new ArrayList<>();
|
||||
locationMap = new ArrayMap<>();
|
||||
|
||||
@ -178,14 +184,14 @@ public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter<Recycl
|
||||
|
||||
DataCollectionUtils.uploadClick(context, "列表", "搜索", gameEntity.getName());
|
||||
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, "(搜索)");
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, entrance + "+(搜索-列表[" + (viewHolder.getPosition() + 1) + "])");
|
||||
}
|
||||
});
|
||||
|
||||
DownloadItemUtils.setOnClickListener(context,
|
||||
viewHolder.downloadBtn, gameEntity, position,
|
||||
SearchGameDetailFragmentAdapter.this, "(游戏-推荐:" + gameEntity.getName() + "-列表)",
|
||||
"游戏-推荐-" + gameEntity.getName() + ":" + gameEntity.getName());
|
||||
SearchGameDetailFragmentAdapter.this, entrance + "+(搜索-列表[" + (viewHolder.getPosition() + 1) + "])",
|
||||
"搜索-列表:" + gameEntity.getName());
|
||||
|
||||
DownloadItemUtils.updateItem(context, viewHolder.gameDes,
|
||||
viewHolder.game_progressbar, viewHolder.game_ll_info, viewHolder.download_speed,
|
||||
@ -223,7 +229,7 @@ public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter<Recycl
|
||||
return locationMap;
|
||||
}
|
||||
|
||||
public GameEntity getGameEntity(int location) {
|
||||
GameEntity getGameEntity(int location) {
|
||||
return gameList.get(location);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,9 +4,7 @@ import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
|
||||
@ -18,6 +18,7 @@ import com.gh.common.util.GameViewUtils;
|
||||
import com.gh.common.view.CardLinearLayout;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder;
|
||||
import com.gh.gamecenter.adapter.viewholder.SearchHistoryViewHolder;
|
||||
import com.gh.gamecenter.db.LibaoDao;
|
||||
import com.gh.gamecenter.entity.ApkEntity;
|
||||
import com.gh.gamecenter.entity.GameEntity;
|
||||
@ -34,7 +35,7 @@ import retrofit2.adapter.rxjava.HttpException;
|
||||
import rx.android.schedulers.AndroidSchedulers;
|
||||
import rx.schedulers.Schedulers;
|
||||
|
||||
public class SearchGameListFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
class SearchGameListFragmentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private Context context;
|
||||
private OnCallBackListener listener;
|
||||
@ -45,11 +46,17 @@ public class SearchGameListFragmentAdapter extends RecyclerView.Adapter<Recycler
|
||||
private LibaoDao libaoDao;
|
||||
|
||||
private String key;
|
||||
private String entrance;
|
||||
|
||||
public SearchGameListFragmentAdapter(SearchGameListFragment fragment, String key) {
|
||||
SearchGameListFragmentAdapter(SearchGameListFragment fragment, String key) {
|
||||
this.context = fragment.getActivity();
|
||||
this.listener = fragment;
|
||||
|
||||
entrance = fragment.getActivity().getIntent().getStringExtra("entrance");
|
||||
if (fragment.getActivity().getIntent().getBundleExtra("data") != null) {
|
||||
entrance = fragment.getActivity().getIntent().getBundleExtra("data").getString("entrance");
|
||||
}
|
||||
|
||||
libaoDao = new LibaoDao(context);
|
||||
|
||||
gameList = new ArrayList<>();
|
||||
@ -164,14 +171,14 @@ public class SearchGameListFragmentAdapter extends RecyclerView.Adapter<Recycler
|
||||
|
||||
DataCollectionUtils.uploadClick(context, "列表", "搜索", gameEntity.getName());
|
||||
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, "(搜索)");
|
||||
GameUtils.startGameDetailActivity(context, gameEntity, entrance + "+(搜索-列表[" + (holder.getPosition() + 1) + "])");
|
||||
}
|
||||
});
|
||||
|
||||
DownloadItemUtils.setOnClickListener(context,
|
||||
viewHolder.downloadBtn, gameEntity, position,
|
||||
SearchGameListFragmentAdapter.this, "(游戏-推荐:" + gameEntity.getName() + "-列表)",
|
||||
"游戏-推荐-" + gameEntity.getName() + ":" + gameEntity.getName());
|
||||
SearchGameListFragmentAdapter.this, entrance + "+(搜索-列表[" + (viewHolder.getPosition() + 1) + "])",
|
||||
"搜索-列表:" + gameEntity.getName());
|
||||
|
||||
DownloadItemUtils.updateItem(context, viewHolder.gameDes,
|
||||
viewHolder.game_progressbar, viewHolder.game_ll_info, viewHolder.download_speed,
|
||||
|
||||
@ -14,6 +14,7 @@ import com.gh.common.util.DisplayUtils;
|
||||
import com.gh.common.view.CardLinearLayout;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder;
|
||||
import com.gh.gamecenter.adapter.viewholder.SearchHistoryViewHolder;
|
||||
import com.gh.gamecenter.db.SearchHistoryDao;
|
||||
import com.gh.gamecenter.eventbus.EBSearch;
|
||||
|
||||
@ -22,7 +23,7 @@ import java.util.List;
|
||||
|
||||
import de.greenrobot.event.EventBus;
|
||||
|
||||
public class SearchHistoryFragmentAdapter extends RecyclerView.Adapter<ViewHolder> {
|
||||
class SearchHistoryFragmentAdapter extends RecyclerView.Adapter<ViewHolder> {
|
||||
|
||||
private Context context;
|
||||
|
||||
@ -30,7 +31,7 @@ public class SearchHistoryFragmentAdapter extends RecyclerView.Adapter<ViewHolde
|
||||
|
||||
private List<String> historyList;
|
||||
|
||||
public SearchHistoryFragmentAdapter(Context context) {
|
||||
SearchHistoryFragmentAdapter(Context context) {
|
||||
|
||||
this.context = context;
|
||||
|
||||
@ -41,7 +42,7 @@ public class SearchHistoryFragmentAdapter extends RecyclerView.Adapter<ViewHolde
|
||||
}
|
||||
}
|
||||
|
||||
public void clearSearchResult() {
|
||||
private void clearSearchResult() {
|
||||
if (historyList != null) {
|
||||
historyList.clear();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user