diff --git a/app/build.gradle b/app/build.gradle index c375588179..2316576b3e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -108,7 +108,7 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' - compile ('com.facebook.fresco:fresco:0.9.0') { - exclude module: 'support-v4' - } +// compile ('com.facebook.fresco:fresco:0.9.0') { +// exclude module: 'support-v4' +// } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/base/AppController.java b/app/src/main/java/com/gh/base/AppController.java index 5195c38f1d..f81a1ea5ba 100644 --- a/app/src/main/java/com/gh/base/AppController.java +++ b/app/src/main/java/com/gh/base/AppController.java @@ -14,7 +14,7 @@ import android.util.Log; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.toolbox.Volley; -import com.facebook.drawee.backends.pipeline.Fresco; +//import com.facebook.drawee.backends.pipeline.Fresco; import com.gh.base.GHPushMessageReceiver.PushHandler; import com.gh.common.constant.Config; import com.gh.common.util.DataUtils; @@ -103,7 +103,7 @@ public class AppController extends Application { public void onCreate() { super.onCreate(); - Fresco.initialize(getApplicationContext()); +// Fresco.initialize(getApplicationContext()); File dexPath = new File(getDir("dex", Context.MODE_PRIVATE), "hackdex_dex.jar"); DexUtils.prepareAssetsDex(this, dexPath, "hackdex_dex.jar"); HotFix.patch(this, dexPath.getAbsolutePath(), "dodola.hackdex.AntilazyLoad"); diff --git a/app/src/main/java/com/gh/gamecenter/HotCardActivity.java b/app/src/main/java/com/gh/gamecenter/HotCardActivity.java index 888b2ec150..ccd29e1071 100644 --- a/app/src/main/java/com/gh/gamecenter/HotCardActivity.java +++ b/app/src/main/java/com/gh/gamecenter/HotCardActivity.java @@ -6,6 +6,7 @@ import android.os.Message; import android.support.v4.util.ArrayMap; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; import android.view.View; import android.widget.LinearLayout; @@ -30,7 +31,6 @@ import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBPWDismiss; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.manager.GameManager; -import com.gh.gamecenter.plugin.Plugin2Fragment; import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -116,9 +116,15 @@ public class HotCardActivity extends BaseActivity { super.onCreate(savedInstanceState); + String id = getIntent().getStringExtra("id"); + String name = getIntent().getStringExtra("name"); + if (TextUtils.isEmpty(name)) { + name = ""; + } + View contentView = View.inflate(this, R.layout.activity_hotcard, null); - init(contentView, "热门卡牌"); + init(contentView, name); dismissEntity = new DismissEntity(false); @@ -139,14 +145,14 @@ public class HotCardActivity extends BaseActivity { hotcard_list.setAdapter(adapter); hotcard_list.addItemDecoration(new VerticalItemDecoration(this, 1)); - addList(); + addList(id); } - private void addList() { + private void addList(String id) { JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( TimestampUtils.addTimestamp(Config.HOST - + "v1d45/game/remenkapai", Constants.GAME_CD), + + "v1d50/game/column/" + id, Constants.GAME_CD), new Response.Listener() { @Override @@ -165,15 +171,14 @@ public class HotCardActivity extends BaseActivity { } }); - AppController.addToRequestQueue(request, Plugin2Fragment.class); + AppController.addToRequestQueue(request, HotCardActivity.class); } private void processingData(JSONArray response) { Type listType = new TypeToken>() {}.getType(); Gson gson = new Gson(); GameManager manager = new GameManager(getApplicationContext()); - List gameList = gson - .fromJson(response.toString(), listType); + List gameList = gson.fromJson(response.toString(), listType); if (gameList != null && !gameList.isEmpty()) { for (GameEntity entity : gameList) { // 黄壮华 初始化游戏状态 修改2015/8/15 @@ -240,8 +245,7 @@ public class HotCardActivity extends BaseActivity { adapter.setList(entities); } isEverpause = false; - DownloadManager.getInstance(getApplicationContext()).addObserver( - dataWatcher); + DownloadManager.getInstance(getApplicationContext()).addObserver(dataWatcher); } @Override @@ -249,15 +253,14 @@ public class HotCardActivity extends BaseActivity { super.onPause(); isEverpause = true; statusMap.clear(); - DownloadManager.getInstance(getApplicationContext()).removeObserver( - dataWatcher); + DownloadManager.getInstance(getApplicationContext()).removeObserver(dataWatcher); } @Override public void onDestroy() { super.onDestroy(); isDestroy = true; - AppController.canclePendingRequests(Plugin2Fragment.class); + AppController.canclePendingRequests(HotCardActivity.class); hotcard_list = null; adapter = null; hotcard_ll_loading = null; diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index a8025eb8bb..874560ced1 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -59,7 +59,7 @@ import com.gh.gamecenter.eventbus.EBShowDialog; import com.gh.gamecenter.eventbus.EBSkipNewPlugin; import com.gh.gamecenter.eventbus.EBTopState; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.home.HomeFragment; +import com.gh.gamecenter.game.GameFragment; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.manager.FilterManager; @@ -68,7 +68,6 @@ import com.gh.gamecenter.manager.PackageManager; import com.gh.gamecenter.manager.SuspectedGameManager; import com.gh.gamecenter.news.NewsFragment; import com.gh.gamecenter.personal.PersonalFragment; -import com.gh.gamecenter.plugin.PluginFragment; import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; import com.gh.gamecenter.volley.extended.JsonObjectExtendedRequest; import com.google.gson.Gson; @@ -110,8 +109,7 @@ public class MainActivity extends BaseFragmentActivity implements private NewsFragment newsFragment; -// private HomeFragment home1Fragment; - private PluginFragment pluginFragmentActivity; + private GameFragment pluginFragmentActivity; private PersonalFragment home3Fragment; private View home1Layout, home2Layout, home3Layout; private ImageView home1Image, home2Image, home3Image; @@ -974,55 +972,6 @@ public class MainActivity extends BaseFragmentActivity implements FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); hideFragments(transaction); switch (index) { - case 1: - home2Layout.setClickable(false); - home2Image.setImageResource(R.drawable.home2_selected); - home2Title.setTextColor(getResources().getColor( - R.color.theme_colors)); -// if (home1Fragment == null) { -// List list = getSupportFragmentManager().getFragments(); -// if (list != null) { -// for (Fragment fragment : list) { -// if (fragment.getClass().equals(HomeFragment.class)) { -// home1Fragment = (HomeFragment) fragment; -// transaction.show(home1Fragment); -// break; -// } -// } -// } -// if (home1Fragment == null) { -// home1Fragment = new HomeFragment(); -// transaction.add(R.id.main_content, home1Fragment); -// } -// } else { -// transaction.show(home1Fragment); -// } -// if (newsFragment == null) { -// List list = getSupportFragmentManager().getFragments(); -// if (list != null) { -// for (Fragment fragment : list) { -// if (fragment.getClass().equals(HomeFragment.class)) { -// newsFragment = (NewsFragment) fragment; -// transaction.show(newsFragment); -// break; -// } -// } -// } -// if (newsFragment == null) { -// newsFragment = new NewsFragment(); -// transaction.add(R.id.main_content, newsFragment); -// } -// } else { -// transaction.show(newsFragment); -// } - if (newsFragment == null){ - newsFragment = new NewsFragment(); - transaction.add(R.id.main_content, newsFragment); - }else { - transaction.show(newsFragment); - } - currentTab = 1; - break; case 0: home1Layout.setClickable(false); home1Image.setImageResource(R.drawable.home1_selected); @@ -1032,15 +981,15 @@ public class MainActivity extends BaseFragmentActivity implements List list = getSupportFragmentManager().getFragments(); if (list != null) { for (Fragment fragment : list) { - if (fragment.getClass().equals(PluginFragment.class)) { - pluginFragmentActivity = (PluginFragment) fragment; + if (fragment.getClass().equals(GameFragment.class)) { + pluginFragmentActivity = (GameFragment) fragment; transaction.show(pluginFragmentActivity); break; } } } if (pluginFragmentActivity == null) { - pluginFragmentActivity = new PluginFragment(); + pluginFragmentActivity = new GameFragment(); transaction.add(R.id.main_content, pluginFragmentActivity); } } else { @@ -1048,6 +997,31 @@ public class MainActivity extends BaseFragmentActivity implements } currentTab = 0; break; + case 1: + home2Layout.setClickable(false); + home2Image.setImageResource(R.drawable.home2_selected); + home2Title.setTextColor(getResources().getColor( + R.color.theme_colors)); + if (newsFragment == null) { + List list = getSupportFragmentManager().getFragments(); + if (list != null) { + for (Fragment fragment : list) { + if (fragment.getClass().equals(NewsFragment.class)) { + newsFragment = (NewsFragment) fragment; + transaction.show(newsFragment); + break; + } + } + } + if (newsFragment == null) { + newsFragment = new NewsFragment(); + transaction.add(R.id.main_content, newsFragment); + } + } else { + transaction.show(newsFragment); + } + currentTab = 1; + break; case 2: home3Layout.setClickable(false); home3Image.setImageResource(R.drawable.home3_selected); @@ -1104,10 +1078,6 @@ public class MainActivity extends BaseFragmentActivity implements if (pluginFragmentActivity != null) { transaction.hide(pluginFragmentActivity); } -// if (home1Fragment != null) { -// transaction.hide(home1Fragment); -// } -// if (newsFragment != null) { transaction.hide(newsFragment); } @@ -1148,7 +1118,7 @@ public class MainActivity extends BaseFragmentActivity implements public void onEventMainThread(EBSkipNewPlugin busFive) { if (busFive.getType() == 0) { if (isFirst) { - PluginFragment.isFirst = true; + GameFragment.isFirst = true; } onClick(home2Layout); EventBus.getDefault().post(new EBSkipNewPlugin(1)); @@ -1270,10 +1240,9 @@ public class MainActivity extends BaseFragmentActivity implements protected void onDestroy() { super.onDestroy(); isDestroy = true; - AppController.canclePendingRequests(HomeFragment.class); - AppController.canclePendingRequests(PluginFragment.class); + AppController.canclePendingRequests(GameFragment.class); + AppController.canclePendingRequests(NewsFragment.class); DownloadManager.getInstance(this).removeObserver(dataWatcher); -// home1Fragment = null; pluginFragmentActivity = null; home3Fragment = null; home1Layout = null; diff --git a/app/src/main/java/com/gh/gamecenter/NewsOrRaidersActivity.java b/app/src/main/java/com/gh/gamecenter/NewsOrRaidersActivity.java deleted file mode 100644 index c19e1a568e..0000000000 --- a/app/src/main/java/com/gh/gamecenter/NewsOrRaidersActivity.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.gh.gamecenter; - -import android.os.Bundle; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.view.MotionEvent; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup.LayoutParams; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; -import android.widget.TextView; - -import com.gh.base.AppController; -import com.gh.base.BaseActivity; -import com.gh.common.view.VerticalItemDecoration; -import com.gh.gamecenter.adapter.NewsOrRaidersListAdapter; -import com.gh.gamecenter.eventbus.EBConcernChanged; -import com.gh.gamecenter.eventbus.EBNetworkState; - -/** - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-10 首页资讯或攻略板块 - */ -public class NewsOrRaidersActivity extends BaseActivity { - - private RecyclerView news_list; - private LinearLayoutManager layoutManager; - private NewsOrRaidersListAdapter adapter; - private LinearLayout news_ll_loading, reuse_no_connection; - private TextView news_tv_label; - private RelativeLayout news_rl_label; - private RelativeLayout.LayoutParams rparams; - - private String type; - - private boolean isDestroy; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - type = getIntent().getStringExtra("type"); - - isDestroy = false; - - View contentView = View.inflate(this, - R.layout.activity_news_or_raiders, null); - - init(contentView, type); - - reuse_no_connection.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - news_list.setVisibility(View.GONE); - news_ll_loading.setVisibility(View.VISIBLE); - reuse_no_connection.setVisibility(View.GONE); - adapter = new NewsOrRaidersListAdapter( - NewsOrRaidersActivity.this, news_list, news_ll_loading, - reuse_no_connection, type, news_rl_label, news_tv_label); - news_list.setAdapter(adapter); - } - }); - - rparams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, - LayoutParams.WRAP_CONTENT); - - news_list.setHasFixedSize(true); - layoutManager = new LinearLayoutManager(this); - news_list.setLayoutManager(layoutManager); - - adapter = new NewsOrRaidersListAdapter(this, news_list, - news_ll_loading, reuse_no_connection, type, news_rl_label, - news_tv_label); - - news_list.setAdapter(adapter); - news_list.setOnTouchListener(new View.OnTouchListener() { - @Override - public boolean onTouch(View v, MotionEvent event) { - - if (event.getAction() == MotionEvent.ACTION_UP) { - v.performClick(); - } - if (news_ll_loading.getVisibility() == View.VISIBLE) { - return true; - } else { - return false; - } - } - }); - news_list.setOnScrollListener(new RecyclerView.OnScrollListener() { - - @Override - public void onScrolled(RecyclerView recyclerView, int dx, int dy) { - - super.onScrolled(recyclerView, dx, dy); - - int position = layoutManager.findFirstVisibleItemPosition(); - - if (adapter.getPosition_today() != -1 - && position >= adapter.getPosition_today() - && position <= adapter.getTodaySize() - + adapter.getPosition_today()) { - news_tv_label.setText("今天"); - news_tv_label.setBackgroundResource(R.drawable.title_red); - } else if (adapter.getPosition_before() != -1 - && position >= adapter.getPosition_before()) { - news_tv_label.setText("昨天/以前"); - news_tv_label.setBackgroundResource(R.drawable.title_gray); - } else if (adapter.getPosition_mygame() != -1) { - news_tv_label.setText("我的游戏"); - news_tv_label.setBackgroundResource(R.drawable.title_blue); - } - - if (position == adapter.getPosition_today() - 1 - || position == adapter.getPosition_before() - 1) { - int buttom = layoutManager.findViewByPosition(position) - .getBottom(); - if (buttom <= news_rl_label.getHeight()) { - rparams.topMargin = buttom - news_rl_label.getHeight(); - news_rl_label.setLayoutParams(rparams); - } else { - rparams.topMargin = 0; - news_rl_label.setLayoutParams(rparams); - } - } else { - rparams.topMargin = 0; - news_rl_label.setLayoutParams(rparams); - } - } - - @Override - public void onScrollStateChanged(RecyclerView recyclerView, - int newState) { - super.onScrollStateChanged(recyclerView, newState); - if (!isDestroy && newState == RecyclerView.SCROLL_STATE_IDLE - && layoutManager.findLastVisibleItemPosition() + 1 == adapter.getItemCount()) { - if (!adapter.isRemove() && !adapter.isLoading() && !adapter.isNetworkError()) { - adapter.addList(); - } - } - } - }); - news_list.addItemDecoration(new VerticalItemDecoration(this, 1)); - } - - public void onEventMainThread(EBConcernChanged busSeven) { - adapter.updateMyGameNews(); - } - - public void onEventMainThread(EBNetworkState busNetworkState) { - if (busNetworkState.isNetworkConnected()) { - if (reuse_no_connection.getVisibility() == View.VISIBLE) { - news_list.setVisibility(View.GONE); - news_ll_loading.setVisibility(View.VISIBLE); - reuse_no_connection.setVisibility(View.GONE); - adapter = new NewsOrRaidersListAdapter(this, news_list, - news_ll_loading, reuse_no_connection, type, - news_rl_label, news_tv_label); - news_list.setAdapter(adapter); - } else if (adapter.isNetworkError()) { - adapter.setNetworkError(false); - adapter.notifyItemChanged(adapter.getItemCount()); - adapter.addList(); - } - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - isDestroy = true; - AppController.canclePendingRequests(NewsOrRaidersActivity.class); - news_list = null; - layoutManager = null; - adapter = null; - news_ll_loading = null; - reuse_no_connection = null; - news_tv_label = null; - news_rl_label = null; - rparams = null; - type = null; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java index 3d515af53a..b10ae05452 100644 --- a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java @@ -16,11 +16,12 @@ import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.widget.RelativeLayout; -import com.facebook.drawee.backends.pipeline.Fresco; -import com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilder; -import com.facebook.drawee.view.SimpleDraweeView; -import com.facebook.imagepipeline.request.ImageRequest; -import com.facebook.imagepipeline.request.ImageRequestBuilder; +//import com.facebook.drawee.backends.pipeline.Fresco; +//import com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilder; +//import com.facebook.drawee.view.SimpleDraweeView; +//import com.facebook.imagepipeline.request.ImageRequest; +//import com.facebook.imagepipeline.request.ImageRequestBuilder; +import com.android.volley.toolbox.ImageRequest; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; import com.gh.base.BaseActivity; import com.gh.common.util.DisplayUtils; @@ -138,25 +139,25 @@ public class ViewImageActivity extends BaseActivity implements Gh_ImageLayout view = (Gh_ImageLayout) View.inflate(container.getContext(), R.layout.viewimage_item, null); view.setOnSingleTapListener(this); - if (url.contains(".gif")) { - SimpleDraweeView simpleDraweeView = (SimpleDraweeView) view.findViewById(R.id.test_gif); - ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(Uri.parse(url)) - .build(); - PipelineDraweeControllerBuilder controllerBuilder = Fresco.newDraweeControllerBuilder() - .setAutoPlayAnimations(true) - .setTapToRetryEnabled(true) - .setImageRequest(imageRequest); - simpleDraweeView.setController(controllerBuilder.build()); - ViewParent parent = simpleDraweeView.getParent(); - - if (parent != null) { - ViewGroup parent1 = (ViewGroup) parent; - parent1.removeView(simpleDraweeView); - } - container.addView(simpleDraweeView); - return simpleDraweeView; - - } else { +// if (url.contains(".gif")) { +// SimpleDraweeView simpleDraweeView = (SimpleDraweeView) view.findViewById(R.id.test_gif); +// ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(Uri.parse(url)) +// .build(); +// PipelineDraweeControllerBuilder controllerBuilder = Fresco.newDraweeControllerBuilder() +// .setAutoPlayAnimations(true) +// .setTapToRetryEnabled(true) +// .setImageRequest(imageRequest); +// simpleDraweeView.setController(controllerBuilder.build()); +// ViewParent parent = simpleDraweeView.getParent(); +// +// if (parent != null) { +// ViewGroup parent1 = (ViewGroup) parent; +// parent1.removeView(simpleDraweeView); +// } +// container.addView(simpleDraweeView); +// return simpleDraweeView; +// +// } else { ImageView imageView = (ImageView) view.findViewById(R.id.viewimage_iv_show); if (scaleType != null) { ImageUtils.getInstance(getApplicationContext()).display( @@ -177,7 +178,7 @@ public class ViewImageActivity extends BaseActivity implements view.setTag(position); container.addView(imageView); return imageView; - } +// } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/HotCardAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/HotCardAdapter.java index 04a8e3f78f..6e05abbdd1 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/HotCardAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/HotCardAdapter.java @@ -14,12 +14,17 @@ import com.gh.common.util.DownloadItemUtils; import com.gh.common.util.GameViewUtils; import com.gh.common.util.ImageUtils; import com.gh.gamecenter.GameDetailsActivity; +import com.gh.gamecenter.HotCardActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.GameViewHolder; +import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; import com.gh.gamecenter.entity.DismissEntity; import com.gh.gamecenter.entity.GameEntity; +import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; +import com.gh.gamecenter.game.Game1FragmentAdapter; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -81,48 +86,116 @@ public class HotCardAdapter extends int position) { if (position != list.size()) { - GameViewHolder holder = (GameViewHolder) viewHolder; + if (viewHolder instanceof GameNormalViewHolder) { + GameNormalViewHolder holder = (GameNormalViewHolder) viewHolder; - final GameEntity entity = list.get(position); + final GameEntity entity = list.get(position); - ImageUtils.getInstance(context).display(entity.getIcon(), - holder.gameThumb); - if (entity.getApk() == null || entity.getApk().isEmpty()) { + ImageUtils.getInstance(context).display(entity.getIcon(), + holder.gameThumb); holder.gameNameAndSize.setText(entity.getName()); - } else { - holder.gameNameAndSize.setText(entity.getName() + " | " - + entity.getApk().get(0).getSize()); - } - holder.gameDes.setText(entity.getBrief()); - - GameViewUtils.setLabelList(context, holder.labelList, - entity.getTag()); - - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - Map kv = new HashMap(); - kv.put("入口", "热门卡牌"); - DataUtils.onEvent(context, "游戏详情", entity.getName(), kv); - - AppController.put("GameEntity", entity); - Intent intent = new Intent(context, GameDetailsActivity.class); - intent.putExtra("entrance", "热门卡牌"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); + if (entity.getApk() == null || entity.getApk().isEmpty()) { + holder.gameDes.setText(entity.getBrief()); + } else { + holder.gameDes.setText(entity.getApk().get(0).getSize() + " | " + entity.getBrief()); } - }); - DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, - holder.downloadSpeed, holder.downloadPercentage, - entity, position, this, - statusMap, platformMap, "热门卡牌", dismissEntity, "hotcard:" + entity.getName()); + GameViewUtils.setLabelList(context, holder.labelList, entity.getTag()); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + Map kv = new HashMap(); + kv.put("入口", "热门卡牌"); + DataUtils.onEvent(context, "游戏详情", entity.getName(), kv); + + AppController.put("GameEntity", entity); + Intent intent = new Intent(context, GameDetailsActivity.class); + intent.putExtra("entrance", "热门卡牌"); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(intent); + } + }); + + DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, + holder.download_speed, holder.download_percentage, + entity, position, this, + statusMap, platformMap, "热门卡牌", dismissEntity, "hotcard:" + entity.getName()); + + DownloadItemUtils.updateItem(context, holder.labelList, + holder.game_progressbar, holder.game_ll_info, + holder.download_speed, holder.download_percentage, + holder.downloadBtn, entity, platformMap, statusMap); + } else if (viewHolder instanceof GameTestViewHolder) { + GameTestViewHolder holder = (GameTestViewHolder) viewHolder; + + final GameEntity entity = list.get(position); + + ImageUtils.getInstance(context).display(entity.getIcon(), + holder.gameThumb); + holder.gameNameAndSize.setText(entity.getName()); + if (entity.getApk() == null || entity.getApk().isEmpty()) { + holder.gameDes.setText(entity.getBrief()); + } else { + holder.gameDes.setText(entity.getApk().get(0).getSize() + " | " + entity.getBrief()); + } + holder.gameTestType.setText(entity.getTest().getType()); + if (entity.getTest().getStart() == 0) { + holder.gameTestTime.setVisibility(View.GONE); + } else { + holder.gameTestTime.setText(GameViewUtils.getGameTestDate(entity.getTest().getStart())); + } + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + AppController.put("GameEntity", entity); + Intent intent = new Intent(context, + GameDetailsActivity.class); + intent.putExtra("entrance", "主页-新测卡牌"); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(intent); + } + }); + + if (entity.getApk() == null || entity.getApk().isEmpty()) { + holder.downloadBtn.setVisibility(View.GONE); + } else { + if (entity.getTest().getEnd() == 0) { + holder.downloadBtn.setVisibility(View.VISIBLE); + DownloadItemUtils.setOnClickListener(context, + holder.downloadBtn, holder.download_speed, + holder.download_percentage, entity, position, + HotCardAdapter.this, + statusMap, platformMap, "主页-新测卡牌", + dismissEntity, "主页:" + entity.getName()); + } else { + long endTime = Long.valueOf(entity.getTest().getEnd() + + "000"); + long todayTime = new Date().getTime(); + if (todayTime > endTime) { + // 测试时间已过 + holder.downloadBtn.setVisibility(View.GONE); + } else { + // 测试时间未过 + holder.downloadBtn.setVisibility(View.VISIBLE); + DownloadItemUtils.setOnClickListener(context, + holder.downloadBtn, holder.download_speed, + holder.download_percentage, entity, position, + HotCardAdapter.this, statusMap, platformMap, + "主页-新测卡牌", dismissEntity, + "主页:" + entity.getName()); + } + } + } + + DownloadItemUtils.updateItem(context, holder.labelList, + holder.game_progressbar, holder.game_ll_info, holder.download_speed, + holder.download_percentage, holder.downloadBtn, entity, platformMap, + statusMap); + } - DownloadItemUtils.updateItem(context, holder.labelList, - holder.gameProgressbar, holder.gameInfo, - holder.downloadSpeed, holder.downloadPercentage, - holder.downloadBtn, entity, platformMap, statusMap); } } @@ -133,15 +206,21 @@ public class HotCardAdapter extends @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { - View view; if (i != list.size()) { - view = LayoutInflater.from(viewGroup.getContext()).inflate( - R.layout.home_list_item_gamenormal_type, viewGroup, false); + if (list.get(i).getTest() != null) { + View view = LayoutInflater.from(viewGroup.getContext()).inflate( + R.layout.home_game_test_item, viewGroup, false); + return new GameTestViewHolder(view); + } else { + View view = LayoutInflater.from(viewGroup.getContext()).inflate( + R.layout.home_game_normal_item, viewGroup, false); + return new GameNormalViewHolder(view); + } } else { - view = LayoutInflater.from(viewGroup.getContext()).inflate( + View view = LayoutInflater.from(viewGroup.getContext()).inflate( R.layout.refresh_footerview, viewGroup, false); + return new FooterViewHolder(view); } - return new GameViewHolder(view); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java index ebc18b2432..44a12af9f4 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java @@ -11,122 +11,120 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; -import com.gh.base.AppController; -import com.gh.common.util.DataUtils; import com.gh.common.util.ImageUtils; import com.gh.gamecenter.GameDetailsActivity; +import com.gh.gamecenter.HotCardActivity; +import com.gh.gamecenter.NewsActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.manager.DataCollectionManager; +import com.gh.gamecenter.entity.SlideEntity; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * ImagePagerAdapter - * + * * @author Trinea 2014-2-23 */ public class ImagePagerAdapter extends RecyclingPagerAdapter { - private Context context; - // private List imageIdList; - private List slideList = null; + private Context context; + // private List imageIdList; + private List slideList = null; - private int size; - private boolean isInfiniteLoop; + private int size; + private boolean isInfiniteLoop; - // private ImageIndicator indicator; + // private ImageIndicator indicator; - public ImagePagerAdapter(Context context, List slideList, - boolean isInfiniteLoop) { - this.context = context; - this.slideList = slideList; - this.size = getSize(slideList); - this.isInfiniteLoop = isInfiniteLoop; - } + public ImagePagerAdapter(Context context, List slideList, + boolean isInfiniteLoop) { + this.context = context; + this.slideList = slideList; + this.size = getSize(slideList); + this.isInfiniteLoop = isInfiniteLoop; + } - @Override - public int getCount() { - // Infinite loop - return isInfiniteLoop ? Integer.MAX_VALUE : getSize(slideList); - } + @Override + public int getCount() { + // Infinite loop + return isInfiniteLoop ? Integer.MAX_VALUE : getSize(slideList); + } - public int getSize(List sourceList) { - return sourceList == null ? 0 : sourceList.size(); - } + public int getSize(List sourceList) { + return sourceList == null ? 0 : sourceList.size(); + } - /** - * get really position - * - * @param position - * @return - */ - private int getPosition(int position) { - return isInfiniteLoop ? position % size : position; - } + /** + * get really position + * + * @param position + * @return + */ + private int getPosition(int position) { + return isInfiniteLoop ? position % size : position; + } - @Override - public View getView(int position, View view, ViewGroup container) { - ViewHolder holder; - if (view == null) { - holder = new ViewHolder(); - view = holder.imageView = new ImageView(context); - view.setTag(holder); - } else { - holder = (ViewHolder) view.getTag(); - } + @Override + public View getView(int position, View view, ViewGroup container) { + ViewHolder holder; + if (view == null) { + holder = new ViewHolder(); + view = holder.imageView = new ImageView(context); + view.setTag(holder); + } else { + holder = (ViewHolder) view.getTag(); + } - final GameEntity gameEntity = slideList.get(getPosition(position)); + final SlideEntity slideEntity = slideList.get(getPosition(position)); - ImageUtils.getInstance(context).display(gameEntity.getSlide(), - holder.imageView, R.drawable.preload); - // indicator.setPosition(slideList.size(), getPosition(position)); + ImageUtils.getInstance(context).display(slideEntity.getImage(), + holder.imageView, R.drawable.preload); + // indicator.setPosition(slideList.size(), getPosition(position)); - holder.imageView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { + holder.imageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { - Map kv = new HashMap(); - kv.put("入口", "插件-精品-滚动图"); - DataUtils.onEvent(context, "游戏详情", gameEntity.getName(), kv); + if ("game".equals(slideEntity.getType())) { + Intent intent = new Intent(context, GameDetailsActivity.class); + intent.putExtra("gameId", slideEntity.getLink()); + intent.putExtra("entrance", "插件-滚动图"); + context.startActivity(intent); + } else if ("news".equals(slideEntity.getType())) { + Intent intent = new Intent(context, NewsActivity.class); + intent.putExtra("newsId", slideEntity.getLink()); + intent.putExtra("entrance", "插件-滚动图"); + context.startActivity(intent); + } else if ("column".equals(slideEntity.getType())) { + Intent intent = new Intent(context, HotCardActivity.class); + intent.putExtra("id", slideEntity.getLink()); +// intent.putExtra("name", slideEntity.getType()); + context.startActivity(intent); + } - Map map = new HashMap(); - map.put("location", "精品-滚动图"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("game", gameEntity.getName()); - map.put("page", "插件"); - DataCollectionManager.onEvent(context, "click-item", map); - - AppController.put("GameEntity", gameEntity); - Intent intent = new Intent(context, GameDetailsActivity.class); - intent.putExtra("entrance", "插件-精品滚动图"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); + } + }); - return view; - } + return view; + } - private static class ViewHolder { - ImageView imageView; - } + private static class ViewHolder { + ImageView imageView; + } - /** - * @return the isInfiniteLoop - */ - public boolean isInfiniteLoop() { - return isInfiniteLoop; - } + /** + * @return the isInfiniteLoop + */ + public boolean isInfiniteLoop() { + return isInfiniteLoop; + } - /** - * @param isInfiniteLoop - * the isInfiniteLoop to set - */ - public ImagePagerAdapter setInfiniteLoop(boolean isInfiniteLoop) { - this.isInfiniteLoop = isInfiniteLoop; - return this; - } + /** + * @param isInfiniteLoop + * the isInfiniteLoop to set + */ + public ImagePagerAdapter setInfiniteLoop(boolean isInfiniteLoop) { + this.isInfiniteLoop = isInfiniteLoop; + return this; + } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/OriginalAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/OriginalAdapter.java index 3ffa4fcc1d..b1ec1bc25c 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/OriginalAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/OriginalAdapter.java @@ -372,8 +372,8 @@ public class OriginalAdapter extends RecyclerView.Adapter locationMap; - private ArrayMap> gameMap; - private ArrayMap> platformMap; - private ArrayMap nameMap; + private ArrayMap locationMap; + private ArrayMap statusMap; + private ArrayMap> platformMap; - private boolean isEverpause = false; - private boolean isDestroy = false; + private DismissEntity dismissEntity; - private ArrayMap statusMap; + private boolean isDestroy; - private DismissEntity dismissEntity; + private Handler handler = new Handler() { + @Override + public void handleMessage(Message msg) { + if (!isDestroy) { + if (msg.what == Constants.DOWNLOAD_ROLL) { + String name = (String) msg.obj; + if (platformMap != null) { + LinkedBlockingQueue queue = platformMap + .get(name); + if (queue.size() > 1) { + queue.offer(queue.poll()); + Message msg2 = Message.obtain(); + msg2.obj = name; + msg2.what = Constants.DOWNLOAD_ROLL; + sendMessageDelayed(msg2, 3000); + } + } + } + } + } + }; - private Handler handler = new Handler() { - @Override - public void handleMessage(Message msg) { - if (!isDestroy) { - if (msg.what == Constants.DOWNLOAD_ROLL) { - String name = (String) msg.obj; - if (platformMap != null) { - LinkedBlockingQueue queue = platformMap - .get(name); - if (queue.size() > 1) { - queue.offer(queue.poll()); - Message msg2 = Message.obtain(); - msg2.obj = name; - msg2.what = Constants.DOWNLOAD_ROLL; - sendMessageDelayed(msg2, 3000); - } - } - } - } - } - }; + private DataWatcher dataWatcher = new DataWatcher() { - // 黄壮华 添加观察者 修改2015/8/15 - private DataWatcher dataWatcher = new DataWatcher() { + @Override + public void onDataChanged( + HashMap downloadingEntries) { + for (Map.Entry entry : downloadingEntries + .entrySet()) { + DownloadEntry downloadEntry = entry.getValue(); - @Override - public void onDataChanged( - HashMap downloadingEntries) { - if (!game_swipe_refresh.isRefreshing()) { - for (java.util.Map.Entry entry : downloadingEntries - .entrySet()) { - DownloadEntry downloadEntry = entry.getValue(); - String name = downloadEntry.getName(); - Integer location = locationMap.get(name); - if (location != null) { - int index = location.intValue(); + Integer location = locationMap.get(downloadEntry.getName()); + if (location != null) { + int index = location.intValue(); - GameEntity detailedEntity = adapter.getList() - .get(index); + GameEntity detailedEntity = getEntityByLocation(index); - if (detailedEntity != null) { - DownloadItemUtils.processDate(detailedEntity, - downloadEntry, platformMap, handler, - adapter, index, statusMap); - } + if (detailedEntity != null) { + DownloadItemUtils.processDate(detailedEntity, + downloadEntry, platformMap, handler, adapter, index, statusMap); + } + } + } + } + }; - } - } - } - } - }; + private GameEntity getEntityByLocation(int position) { + List list = adapter.getSubjectList(); - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { + int offset = 1; + GameEntity gameEntity; + for (int i = 0, size = list.size(); i < size; i++) { + if (position > offset && position <= list.get(i).getData().size() + offset) { + return list.get(i).getData().get(position - offset - 1); + } + offset = list.get(i).getData().size() + offset + 1; + } - super.onCreate(savedInstanceState); + return null; + } - view = View.inflate(getActivity(), R.layout.plugin1_fragment, null); + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); - dismissEntity = new DismissEntity(false); + view = View.inflate(getActivity(), R.layout.plugin1_fragment, null); - statusMap = new ArrayMap(); - locationMap = new ArrayMap(); - gameMap = new ArrayMap>(); - platformMap = new ArrayMap>(); - nameMap = new ArrayMap(); + isDestroy = false; - game_swipe_refresh = (SwipeRefreshLayout) view - .findViewById(R.id.game_swipe_refresh); - game_swipe_refresh.setColorSchemeResources(R.color.theme_colors); - game_swipe_refresh.setOnRefreshListener(this); + locationMap = new ArrayMap(); + statusMap = new ArrayMap(); + platformMap = new ArrayMap>(); - recyclerview = (RecyclerView) view.findViewById(R.id.game_list); - recyclerview.setHasFixedSize(true); - layoutManager = new LinearLayoutManager(getActivity()); - recyclerview.setLayoutManager(layoutManager); + dismissEntity = new DismissEntity(false); - // 黄壮华 添加 初始化游戏状态 修改2015/8/21 - DownloadItemUtils.initializeGameMap(getActivity(), gameMap); + mRecyclerView = (RecyclerView) view.findViewById(R.id.game_list); - game_pb_loading = (ProgressBarCircularIndeterminate) view.findViewById(R.id.game_pb_loading); - game_pb_loading.setVisibility(View.GONE); + mSwipeRefreshLayout = (SwipeRefreshLayout) view + .findViewById(R.id.game_swipe_refresh); + mSwipeRefreshLayout.setColorSchemeResources(R.color.theme_colors); + mSwipeRefreshLayout.setOnRefreshListener(this); - reuse_no_connection = (LinearLayout) view - .findViewById(R.id.reuse_no_connection); - reuse_no_connection.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - game_swipe_refresh.setRefreshing(true); - recyclerview.setVisibility(View.VISIBLE); - reuse_no_connection.setVisibility(View.GONE); - handler.postDelayed(runnable, 1000); - } - }); + mProgressBarCircularIndeterminate = (ProgressBarCircularIndeterminate) view.findViewById(R.id.game_pb_loading); + mProgressBarCircularIndeterminate.setVisibility(View.GONE); - // 黄壮华 传递引用 修改2015/8/15 - adapter = new Game1FragmentAdapter(Game1Fragment.this, locationMap, - gameMap, platformMap, nameMap, recyclerview, - game_swipe_refresh, reuse_no_connection, - statusMap, dismissEntity); - recyclerview.setAdapter(adapter); - recyclerview.setOnScrollListener(new RecyclerView.OnScrollListener() { + mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); + adapter = new Game1FragmentAdapter(getActivity(), locationMap, statusMap, + platformMap, dismissEntity, mSwipeRefreshLayout); + mRecyclerView.setAdapter(adapter); + mRecyclerView.addItemDecoration(new VerticalItemDecoration(getActivity(), 1)); - @Override - public void onScrollStateChanged(RecyclerView recyclerView, - int newState) { - super.onScrollStateChanged(recyclerView, newState); - if (!isDestroy - && newState == RecyclerView.SCROLL_STATE_IDLE - && layoutManager.findLastVisibleItemPosition() == adapter - .getList().size()) { - if (!adapter.isRemove() && !adapter.isLoading()) { - adapter.addList(adapter.getList().size()); - } - } - } - }); - recyclerview.addItemDecoration(new VerticalItemDecoration( - getActivity(), 1)); + EventBus.getDefault().register(this); + } - EventBus.getDefault().register(this); + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + if(container != null){ + container.removeView(view); + } + return view; + } - } + Runnable runnable = new Runnable() { + @Override + public void run() { + mSwipeRefreshLayout.setRefreshing(false); + } + }; - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); - } - return view; - } + @Override + public void onRefresh() { + handler.postDelayed(runnable, 1000); + } - public void onEventMainThread(EBPWDismiss dismiss) { - if (dismissEntity != null) { - dismissEntity.setShow(false); - } - } + public void onEventMainThread(EBPWDismiss dismiss) { + if (dismissEntity != null) { + dismissEntity.setShow(false); + } + } - public void onEventMainThread(EBPackage busFour) { - String name = nameMap.get(busFour.getPackageName()); - if (name != null) { - int location = locationMap.get(name); - if ("安装".equals(busFour.getType())) { - GameEntity detailedEntity = adapter.getList().get(location); - for (ApkEntity apkEntity : detailedEntity.getApk()) { - if (apkEntity.getPackageName().equals( - busFour.getPackageName())) { - detailedEntity.getEntryMap().remove( - apkEntity.getPlatform()); - adapter.notifyItemChanged(location); - break; - } - } - } else if ("卸载".equals(busFour.getType())) { - adapter.notifyItemChanged(location); - } - } - } + public void onEventMainThread(EBDownloadDelete busThree) { + LinkedBlockingQueue queue = platformMap.get(busThree.getName()); + if (queue != null) { + queue.remove(busThree.getPlatform()); + platformMap.put(busThree.getName(), queue); + } + Integer location = locationMap.get(busThree.getName()); + if (location != null) { + int index = location.intValue(); + GameEntity detailedEntity = getEntityByLocation(index); + if (TextUtils.isEmpty(busThree.getPlatform())) { + detailedEntity.getEntryMap().remove("官方版"); + } else { + detailedEntity.getEntryMap().remove(busThree.getPlatform()); + } + adapter.notifyItemChanged(index); + } + } - public void onEventMainThread(EBNetworkState busNetworkState) { - if (busNetworkState.isNetworkConnected()) { - if (reuse_no_connection.getVisibility() == View.VISIBLE) { - game_swipe_refresh.setRefreshing(true); - recyclerview.setVisibility(View.VISIBLE); - 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.getList().size()); - } - } - } + @Override + public void onResume() { + super.onResume(); + DownloadManager.getInstance(getActivity()).addObserver(dataWatcher); + } - @Override - public void onResume() { - super.onResume(); - if (isEverpause) { - // 黄壮华 添加 初始化游戏状态 修改2015/8/20 - DownloadItemUtils.initializeGameMap(getActivity(), gameMap); - List entities = new ArrayList(); - for (GameEntity entity : adapter.getList()) { - entity.setEntryMap(gameMap.get(entity.getName())); - entities.add(entity); - } - adapter.setList(entities); - } - isEverpause = false; - DownloadManager.getInstance(getActivity()).addObserver(dataWatcher); - } + @Override + public void onPause() { + super.onPause(); + DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher); + } - @Override - public void onPause() { - super.onPause(); - isEverpause = true; - statusMap.clear(); - DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher); - } - - public boolean isEverpause() { - return isEverpause; - } - - Runnable runnable = new Runnable() { - @Override - public void run() { - if (!isDestroy) { - adapter = new Game1FragmentAdapter(Game1Fragment.this, - locationMap, gameMap, platformMap, nameMap, - recyclerview, game_swipe_refresh, reuse_no_connection, - statusMap, dismissEntity); - recyclerview.setAdapter(adapter); - } - } - }; - - @Override - public void onRefresh() { - handler.postDelayed(runnable, 1000); - } - - @Override - public void onDestroy() { - super.onDestroy(); - isDestroy = true; - adapter.setDestroy(true); - AppController.canclePendingRequests(Game1Fragment.class); - EventBus.getDefault().unregister(this); - view = null; - recyclerview = null; - game_swipe_refresh = null; - adapter = null; - layoutManager = null; - reuse_no_connection = null; - locationMap = null; - gameMap = null; - platformMap = null; - nameMap = null; - statusMap = null; - dismissEntity = null; - handler = null; - dataWatcher = null; - } + @Override + public void onDestroy() { + super.onDestroy(); + isDestroy = true; + } } diff --git a/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java index e15c2aef23..d0390aab1d 100644 --- a/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java @@ -1,15 +1,20 @@ package com.gh.gamecenter.game; +import android.app.Activity; import android.content.Context; import android.content.Intent; 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.TextView; import android.widget.Toast; import com.android.volley.NoConnectionError; @@ -19,22 +24,23 @@ import com.android.volley.VolleyError; import com.gh.base.AppController; import com.gh.common.constant.Config; import com.gh.common.constant.Constants; -import com.gh.common.util.DataUtils; +import com.gh.common.util.DisplayUtils; import com.gh.common.util.DownloadItemUtils; import com.gh.common.util.GameViewUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.TimestampUtils; -import com.gh.download.DownloadEntry; +import com.gh.common.view.AutoScrollViewPager; import com.gh.gamecenter.GameDetailsActivity; +import com.gh.gamecenter.HotCardActivity; +import com.gh.gamecenter.NewsActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameViewHolder; -import com.gh.gamecenter.db.info.GameInfo; -import com.gh.gamecenter.entity.ApkEntity; +import com.gh.gamecenter.adapter.ImagePagerAdapter; +import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; import com.gh.gamecenter.entity.DismissEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.manager.DataCollectionManager; -import com.gh.gamecenter.manager.GameManager; +import com.gh.gamecenter.entity.SlideEntity; +import com.gh.gamecenter.entity.SubjectEntity; import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -43,312 +49,576 @@ import org.json.JSONArray; import java.lang.reflect.Type; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Date; import java.util.List; -import java.util.Map; import java.util.concurrent.LinkedBlockingQueue; /** - * - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-10 modified 2015-8-10 新游界面上新游推荐fragment适配器 + * Created by LGT on 2016/7/1. */ -public class Game1FragmentAdapter extends - RecyclerView.Adapter { +public class Game1FragmentAdapter extends RecyclerView.Adapter { - private Game1Fragment fragment; + private class ITEM_TYPE { + public static final int slide = 0;// 滚动图 + public static final int head = 1;// 专题头部 + public static final int game_normal_type = 2;// 游戏布局1 + public static final int game_test_type = 3;// 游戏布局2 + public static final int image = 4;// 大图布局 + } - private Context context; + private Activity mActivity; + private Context mContext; - private RecyclerView recyclerView; - private SwipeRefreshLayout game_swipe_refresh; - private LinearLayout reuse_no_connection; + private SwipeRefreshLayout mSwipeRefreshLayout; - private boolean isRemove; - private boolean isLoading; - private boolean isNetworkError; - private boolean isDestroy; + private List slideList; + private List subjectList; - private List list; + private boolean isSlideError; - // 黄壮华 获取引用 修改2015/8/15 - private ArrayMap locationMap; - private ArrayMap> gameMap; - private ArrayMap> platformMap; - private ArrayMap nameMap; + private ArrayMap locationMap; + private ArrayMap statusMap; + private ArrayMap> platformMap; - private ArrayMap statusMap; + private DismissEntity dismissEntity; - private DismissEntity dismissEntity; + public Game1FragmentAdapter(Activity activity, + ArrayMap lMap, + ArrayMap sMap, + ArrayMap> pMap, + DismissEntity dEntity, + SwipeRefreshLayout swipeRefreshLayout) { - // 黄壮华 获取引用 修改2015/8/15 - public Game1FragmentAdapter(Game1Fragment fment, - ArrayMap lMap, - ArrayMap> gMap, - ArrayMap> pMap, - ArrayMap nMap, RecyclerView rView, - SwipeRefreshLayout swipeRefreshLayout, LinearLayout linearLayout, - ArrayMap sMap, DismissEntity dEntity) { + mActivity = activity; + mContext = activity; + locationMap = lMap; + statusMap = sMap; + platformMap = pMap; + dismissEntity = dEntity; + mSwipeRefreshLayout = swipeRefreshLayout; - // 黄壮华 获取引用 修改2015/8/15 - locationMap = lMap; - gameMap = gMap; - platformMap = pMap; - nameMap = nMap; - recyclerView = rView; - game_swipe_refresh = swipeRefreshLayout; - reuse_no_connection = linearLayout; + slideList = new ArrayList(); + subjectList = new ArrayList(); - statusMap = sMap; + isSlideError = false; - dismissEntity = dEntity; + load(); + } - list = new ArrayList(); + public void load() { + new Thread(runnable){}.start(); + } - isRemove = false; - isLoading = false; - isNetworkError = false; - isDestroy = false; + Runnable runnable = new Runnable() { + @Override + public void run() { + initSlide(true); + } + }; - fragment = fment; - context = fment.getActivity(); - - addList(0); - } + private void initSlide(final boolean isFirst) { + JsonArrayExtendedRequest slideRequest = new JsonArrayExtendedRequest( + TimestampUtils.addTimestamp(Config.HOST + "v1d50/index/slides", + Constants.GAME_CD), new Response.Listener() { + @Override + public void onResponse(JSONArray response) { + Type listType = new TypeToken>() {}.getType(); + Gson gson = new Gson(); + slideList = gson.fromJson(response.toString(), listType); + if (slideList != null && !slideList.isEmpty()) { + notifyItemChanged(0); + } + if (isFirst) { + initAlbum(); + } + } - public void addList(final int offset) { - isLoading = true; - JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d45/game/youxituijian", Constants.GAME_CD), - new Response.Listener() { + }, new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + // 无网络连接 + if (error.getClass().equals(NoConnectionError.class) + || error.getClass().equals(TimeoutError.class)) { + isSlideError = true; + Toast.makeText(mContext, "网络错误", Toast.LENGTH_SHORT).show(); + notifyItemChanged(0); + } + if (isFirst) { + initAlbum(); + } + } + }); + AppController.addToRequestQueue(slideRequest, Game1Fragment.class); + } - @Override - public void onResponse(JSONArray response) { - if (!isDestroy) { - processingData(response, offset); - } - isLoading = false; - } + private void initAlbum() { + JsonArrayExtendedRequest request = new JsonArrayExtendedRequest(Config.HOST + "v1d50/game/tuijian", + new Response.Listener() { + @Override + public void onResponse(JSONArray response) { - }, new Response.ErrorListener() { + Type listType = new TypeToken>() {}.getType(); + Gson gson = new Gson(); + List list = gson.fromJson(response.toString(), listType); + if (list != null && !list.isEmpty()) { + subjectList = list; + notifyItemRangeInserted(1, getItemCount() - 1); + initLocationMap(); + } + } + }, + new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { - @Override - public void onErrorResponse(VolleyError error) { - isLoading = false; - // 无网络连接 - if (error.getClass().equals(NoConnectionError.class) - || error.getClass().equals(TimeoutError.class)) { - if (offset == 0) { - if (game_swipe_refresh.isRefreshing()) { - game_swipe_refresh.setRefreshing(false); - } - recyclerView.setVisibility(View.GONE); - reuse_no_connection.setVisibility(View.VISIBLE); - } else { - Toast.makeText(context, "网络错误", - Toast.LENGTH_SHORT).show(); - isNetworkError = true; - notifyItemChanged(getItemCount() - 1); - } - } - } + } + }); + AppController.addToRequestQueue(request, Game1Fragment.class); + } - }); - AppController.addToRequestQueue(request, Game1Fragment.class); - } + private void initLocationMap() { + locationMap.clear(); - public void processingData(JSONArray response, int offset) { - Type listType = new TypeToken>() {}.getType(); - Gson gson = new Gson(); - List gameList = gson.fromJson(response.toString(), listType); - GameManager manager = new GameManager(context); - if (gameList != null && !gameList.isEmpty()) { - for (GameEntity entity : gameList) { - // 黄壮华 初始化游戏状态 修改2015/8/15 - if (!TextUtils.isEmpty(entity.getName())) { - entity.setEntryMap(gameMap.get(entity.getName())); - for (ApkEntity apkEntity : entity.getApk()) { - manager.addOrUpdate(new GameInfo( - apkEntity.getPackageName(), entity.getId(), entity - .getName())); - } - } - } - list.addAll(gameList); - if (!fragment.isEverpause()) { - notifyItemRangeInserted(list.size() - gameList.size(), gameList.size()); - } - } + int count = 0; + if (!subjectList.isEmpty()) { + SubjectEntity subjectEntity; + for (int i = 0, size = subjectList.size(); i < size; i++) { + subjectEntity = subjectList.get(i); + count += 1 + subjectEntity.getData().size(); + } + for (int position = 0; position < count; position++) { + int offset = 1; + 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); + locationMap.put(gameEntity.getName(), position); + break; + } + offset = subjectList.get(i).getData().size() + offset + 1; + } + } + } - if (fragment.isEverpause()) { - notifyDataSetChanged(); - } + } - if (offset == 0 && game_swipe_refresh.isRefreshing()) { - game_swipe_refresh.setRefreshing(false); - } + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view; + if (viewType == ITEM_TYPE.slide) { + view = LayoutInflater.from(parent.getContext()).inflate( + R.layout.plugin1_autoscrollviewpager_viewholder, parent, + false); + DisplayMetrics outMetrics = new DisplayMetrics(); + mActivity.getWindowManager().getDefaultDisplay() + .getMetrics(outMetrics); + ViewGroup.LayoutParams params = new ViewGroup.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + (int) (outMetrics.widthPixels / 16f * 7f)); + view.setLayoutParams(params); + return new AutoScrollViewpagerViewHolder(view); + } else if (viewType == ITEM_TYPE.head) { + view = LayoutInflater.from(parent.getContext()).inflate( + R.layout.home_list_item_head, parent, false); + return new HeadViewHolder(view); + } else if (viewType == ITEM_TYPE.game_normal_type) { + view = LayoutInflater.from(parent.getContext()).inflate( + R.layout.home_game_normal_item, parent, false); + return new GameNormalViewHolder(view); + } else if (viewType == ITEM_TYPE.game_test_type) { + view = LayoutInflater.from(parent.getContext()).inflate( + R.layout.home_game_test_item, parent, false); + return new GameTestViewHolder(view); + } else { + ImageView imageView = new ImageView(parent.getContext()); + ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT); + imageView.setLayoutParams(params); + imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); + return new ImageViewHolder(imageView); + } + } - if (gameList.isEmpty() || (offset == 0 && gameList.size() < 20)) { - isRemove = true; - notifyItemRemoved(list.size()); - } + private void initGameTestViewHolder(GameTestViewHolder holder, int position) { + int offset = 1; + 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) { + initGameTest(holder, gameEntity, position - offset - 1, subjectList.get(i).getOrder()); + break; + } + } + offset = subjectList.get(i).getData().size() + offset + 1; + } + } - // 黄壮华 获取游戏位置信息 修改2015/8/15 - for (int i = 0, size = list.size(); i < size; i++) { - GameEntity entity = list.get(i); - locationMap.put(entity.getName(), i); - for (ApkEntity apkEntity : entity.getApk()) { - nameMap.put(apkEntity.getPackageName(), entity.getName()); - } - } - } + private void initGameTest(GameTestViewHolder holder, GameEntity gameEntity, int i, boolean order) { + if (order) { + holder.home2_game_order.setVisibility(View.VISIBLE); + holder.home2_game_order.setText(i + ""); + } else { + holder.home2_game_order.setVisibility(View.GONE); + } + ImageUtils.getInstance(mContext).display(gameEntity.getIcon(), + holder.gameThumb); + holder.gameNameAndSize.setText(gameEntity.getName()); + if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) { + holder.gameDes.setText(gameEntity.getBrief()); + } else { + holder.gameDes.setText(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())); + } - @Override - public int getItemCount() { - if (list.size() == 0) { - return 0; - } - if (isRemove) { - return list.size(); - } - return list.size() + 1; - } + final GameEntity entity = gameEntity; - @Override - public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, - final int position) { - if (viewHolder instanceof GameViewHolder) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + AppController.put("GameEntity", entity); + Intent intent = new Intent(mContext, + GameDetailsActivity.class); + intent.putExtra("entrance", "主页-新测卡牌"); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.startActivity(intent); + } + }); - final GameEntity detailedEntity = list.get(position); + if (entity.getApk() == null || entity.getApk().isEmpty()) { + holder.downloadBtn.setVisibility(View.GONE); + } else { + if (entity.getTest().getEnd() == 0) { + holder.downloadBtn.setVisibility(View.VISIBLE); + DownloadItemUtils.setOnClickListener(mContext, + holder.downloadBtn, holder.download_speed, + holder.download_percentage, entity, i, + Game1FragmentAdapter.this, + statusMap, platformMap, "主页-新测卡牌", + dismissEntity, "主页:" + entity.getName()); + } else { + long endTime = Long.valueOf(entity.getTest().getEnd() + + "000"); + long todayTime = new Date().getTime(); + if (todayTime > endTime) { + // 测试时间已过 + holder.downloadBtn.setVisibility(View.GONE); + } else { + // 测试时间未过 + holder.downloadBtn.setVisibility(View.VISIBLE); + DownloadItemUtils.setOnClickListener(mContext, + holder.downloadBtn, holder.download_speed, + holder.download_percentage, entity, i, + Game1FragmentAdapter.this, statusMap, platformMap, + "主页-新测卡牌", dismissEntity, + "主页:" + entity.getName()); + } + } + } - GameViewHolder holder = (GameViewHolder) viewHolder; + DownloadItemUtils.updateItem(mContext, holder.labelList, + holder.game_progressbar, holder.game_ll_info, holder.download_speed, + holder.download_percentage, holder.downloadBtn, entity, platformMap, + statusMap); + } - ImageUtils.getInstance(context).display(detailedEntity.getIcon(), - holder.gameThumb); - if (detailedEntity.getApk() == null - || detailedEntity.getApk().isEmpty()) { - holder.gameNameAndSize.setText(detailedEntity.getName()); - } else { - holder.gameNameAndSize.setText(detailedEntity.getName() - + " | " + detailedEntity.getApk().get(0).getSize()); - } - holder.gameDes.setText(detailedEntity.getBrief()); + private void initGameNormalViewHolder(GameNormalViewHolder holder, int position) { + int offset = 1; + 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 (TextUtils.isEmpty(gameEntity.getImage()) && gameEntity.getTest() == null) { + initGameNormal(holder, gameEntity, position - offset - 1, subjectList.get(i).getOrder()); + break; + } + } + offset = subjectList.get(i).getData().size() + offset + 1; + } + } - GameViewUtils.setLabelList(context, holder.labelList, - detailedEntity.getTag()); + private void initGameNormal(GameNormalViewHolder holder, GameEntity entity, int i, boolean order) { + if (order) { + holder.home1_game_order.setVisibility(View.VISIBLE); + holder.home1_game_order.setText(i + ""); + } else { + holder.home1_game_order.setVisibility(View.GONE); + } + ImageUtils.getInstance(mContext).display(entity.getIcon(), + holder.gameThumb); + holder.gameNameAndSize.setText(entity.getName()); + if (entity.getApk() == null || entity.getApk().isEmpty()) { + holder.gameDes.setText(entity.getBrief()); + } else { + holder.gameDes.setText(entity.getApk().get(0).getSize() + " | " + entity.getBrief()); + } + GameViewUtils.setLabelList(mContext, holder.labelList, entity.getTag()); - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { + final GameEntity gameInfoEntity = entity; - Map kv = new HashMap(); - kv.put("入口", "新游-新游推荐"); - DataUtils.onEvent(context, "游戏详情", detailedEntity.getName(), - kv); + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + AppController.put("GameEntity", gameInfoEntity); + Intent intent = new Intent(mContext, GameDetailsActivity.class); + intent.putExtra("entrance", "游戏-插件"); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.startActivity(intent); + } + }); - Map map = new HashMap(); - map.put("location", "游戏推荐"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("game", detailedEntity.getName()); - map.put("page", "游戏"); - DataCollectionManager.onEvent(context, "click-item", map); - - AppController.put("GameEntity", detailedEntity); - Intent intent = new Intent(context, - GameDetailsActivity.class); - intent.putExtra("entrance", "游戏-新游推荐"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); + DownloadItemUtils.setOnClickListener(mContext, holder.downloadBtn, + holder.download_speed, holder.download_percentage, entity, i, + Game1FragmentAdapter.this, + statusMap, platformMap, "游戏-插件", + dismissEntity, "主页:" + entity.getName()); - DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, - holder.downloadSpeed, holder.downloadPercentage, - detailedEntity, position, this, - statusMap, platformMap, "游戏-游戏推荐", dismissEntity, "游戏:" - + detailedEntity.getName()); + DownloadItemUtils.updateItem(mContext, holder.labelList, + holder.game_progressbar, holder.game_ll_info, holder.download_speed, + holder.download_percentage, holder.downloadBtn, entity, platformMap, + statusMap); + } - DownloadItemUtils.updateItem(context, holder.labelList, - holder.gameProgressbar, holder.gameInfo, - holder.downloadSpeed, holder.downloadPercentage, - holder.downloadBtn, detailedEntity, platformMap, statusMap); - } else if (viewHolder instanceof FooterViewHolder) { - FooterViewHolder holder = (FooterViewHolder) viewHolder; - if (isNetworkError) { - holder.footerview_progressbar.setVisibility(View.GONE); - holder.footerview_tv_loading.setText("加载失败,点击重试"); - holder.rootView.setClickable(true); - holder.rootView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - isNetworkError = false; - notifyItemChanged(getItemCount() - 1); - addList(list.size()); - } - }); - } else { - holder.footerview_progressbar.setVisibility(View.VISIBLE); - holder.footerview_tv_loading.setText("加载中..."); - holder.rootView.setClickable(false); - } - } - } + public class ImageViewHolder extends RecyclerView.ViewHolder { - @Override - public int getItemViewType(int position) { - return position; - } + private ImageView imageView; - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { - if (i == list.size()) { - return new FooterViewHolder(LayoutInflater.from( - viewGroup.getContext()).inflate( - R.layout.refresh_footerview, viewGroup, false)); - } else { - return new GameViewHolder(LayoutInflater.from( - viewGroup.getContext()).inflate( - R.layout.home_list_item_gamenormal_type, viewGroup, false)); - } - } + public ImageViewHolder(View itemView) { + super(itemView); - public List getList() { - return list; - } + imageView = (ImageView) itemView; + } - public void setList(List list) { - this.list = list; - notifyDataSetChanged(); - } + public void initViewHolder(int position) { + int offset = 1; + 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 (!TextUtils.isEmpty(gameEntity.getImage())) { + final GameEntity entity = gameEntity; + ImageUtils.getInstance(mContext).display(entity.getImage(), imageView, -1); + imageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { - public boolean isRemove() { - return isRemove; - } + if ("game".equals(entity.getType())) { + Intent intent = new Intent(mContext, GameDetailsActivity.class); + intent.putExtra("gameId", entity.getId()); + intent.putExtra("entrance", "插件-大图"); + mContext.startActivity(intent); + } else if ("news".equals(entity.getType())) { + Intent intent = new Intent(mContext, NewsActivity.class); + intent.putExtra("newsId", entity.getId()); + intent.putExtra("entrance", "插件-大图"); + mContext.startActivity(intent); + } - public void setRemove(boolean isRemove) { - this.isRemove = isRemove; - } + } + }); + break; + } + } + offset = subjectList.get(i).getData().size() + offset + 1; + } + } + } - public boolean isLoading() { - return isLoading; - } + public class HeadViewHolder extends RecyclerView.ViewHolder { + public ImageView thumb; + public TextView title; + public LinearLayout link; - public void setLoading(boolean isLoading) { - this.isLoading = isLoading; - } + public HeadViewHolder(View view) { + super(view); + this.thumb = (ImageView) view.findViewById(R.id.head_thumb); + this.title = (TextView) view.findViewById(R.id.head_title); + this.link = (LinearLayout) view.findViewById(R.id.head_link); + } - public void setDestroy(boolean isDestroy) { - this.isDestroy = isDestroy; - } + public void initViewHolder(int position) { + int offset = 1; + for (int i = 0, size = subjectList.size(); i < size; i++) { + if (position == offset) { + thumb.setVisibility(View.GONE); + title.setText(subjectList.get(i).getName()); + final int ii = i; + link.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { - public boolean isNetworkError() { - return isNetworkError; - } + Intent intent = new Intent(mContext, HotCardActivity.class); + intent.putExtra("id", subjectList.get(ii).getId()); + intent.putExtra("name", subjectList.get(ii).getName()); + mContext.startActivity(intent); - public void setNetworkError(boolean isNetworkError) { - this.isNetworkError = isNetworkError; - } + } + }); + break; + } + offset = subjectList.get(i).getData().size() + offset + 1; + } + } + } + public class AutoScrollViewpagerViewHolder extends RecyclerView.ViewHolder { + private AutoScrollViewPager viewPager; + private LinearLayout viewpager_ll_hint; + private TextView viewpager_tv_failure; + + public AutoScrollViewpagerViewHolder(View v) { + super(v); + viewpager_tv_failure = (TextView) v.findViewById(R.id.viewpager_tv_failure); + viewpager_tv_failure.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + isSlideError = false; + notifyItemChanged(0); + initSlide(false); + } + }); + viewpager_ll_hint = (LinearLayout) v + .findViewById(R.id.viewpager_ll_hint); + viewPager = (AutoScrollViewPager) v.findViewById(R.id.view_pager); + viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + + @Override + public void onPageSelected(int position) { + for (int i = 0, size = viewpager_ll_hint + .getChildCount(); i < size; i++) { + if (i == position % size) { + ((ImageView) viewpager_ll_hint.getChildAt(i)) + .setImageResource(R.drawable.oval_hint_dn); + } else { + ((ImageView) viewpager_ll_hint.getChildAt(i)) + .setImageResource(R.drawable.oval_hint_up); + } + } + } + + @Override + public void onPageScrolled(int position, + float positionOffset, int positionOffsetPixels) { + + } + + @Override + public void onPageScrollStateChanged(int state) { + // 解决viewpager和SwipeRefreshLayout滑动冲突 + if (state == ViewPager.SCROLL_STATE_DRAGGING) { + mSwipeRefreshLayout.setEnabled(false); + } else { + mSwipeRefreshLayout.setEnabled(true); + } + } + }); + autoScrollViewPager = viewPager; + } + + } + + private AutoScrollViewPager autoScrollViewPager; + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + if (holder instanceof AutoScrollViewpagerViewHolder) { + AutoScrollViewpagerViewHolder viewHolder = (AutoScrollViewpagerViewHolder) holder; + 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) { + int currentItem = 0; + if (viewHolder.viewPager.getAdapter() != null) { + currentItem = viewHolder.viewPager.getCurrentItem(); + } + viewHolder.viewpager_ll_hint.removeAllViews(); + for (int i = 0, size = slideList.size(); i < size; i++) { + ImageView imageView = new ImageView(mContext); + LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams( + DisplayUtils.dip2px(mContext, 8), + DisplayUtils.dip2px(mContext, 8)); + lparams.bottomMargin = DisplayUtils.dip2px(mContext, 8); + if (i == currentItem) { + imageView.setImageResource(R.drawable.oval_hint_dn); + } else { + imageView.setImageResource(R.drawable.oval_hint_up); + } + if (i != 0) { + lparams.leftMargin = DisplayUtils.dip2px(mContext, 8); + } + imageView.setLayoutParams(lparams); + viewHolder.viewpager_ll_hint.addView(imageView); + } + viewHolder.viewPager.setAdapter(new ImagePagerAdapter(mContext, slideList, true)); + viewHolder.viewPager.setCurrentItem(currentItem); + viewHolder.viewPager.setInterval(3000); + viewHolder.viewPager.startAutoScroll(); + } + } else if (holder instanceof HeadViewHolder) { + ((HeadViewHolder) holder).initViewHolder(position); + } else if (holder instanceof ImageViewHolder) { + ((ImageViewHolder) holder).initViewHolder(position); + } else if (holder instanceof GameNormalViewHolder) { + initGameNormalViewHolder((GameNormalViewHolder) holder, position); + } else if (holder instanceof GameTestViewHolder) { + initGameTestViewHolder((GameTestViewHolder) holder, position); + } + } + + @Override + public int getItemCount() { + 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(); + } + } + return 1 + subjectSize; + } + + @Override + public int getItemViewType(int position) { + + if (position == 0) { + return ITEM_TYPE.slide; + } + + int offset = 1; + GameEntity gameEntity; + for (int i = 0, size = subjectList.size(); i < size; i++) { + if (position == offset) { + return ITEM_TYPE.head; + } + if (position > offset && position <= subjectList.get(i).getData().size() + offset) { + gameEntity = subjectList.get(i).getData().get(position - offset - 1); + if (!TextUtils.isEmpty(gameEntity.getImage())) { + return ITEM_TYPE.image; + } + if (gameEntity.getTest() != null) { + return ITEM_TYPE.game_test_type; + } + return ITEM_TYPE.game_normal_type; + } + offset = subjectList.get(i).getData().size() + offset + 1; + } + + return -1; + } + + public List getSubjectList() { + return subjectList; + } } diff --git a/app/src/main/java/com/gh/gamecenter/game/Game2Fragment.java b/app/src/main/java/com/gh/gamecenter/game/Game2Fragment.java index 5f6bd1872b..a82bb7395d 100644 --- a/app/src/main/java/com/gh/gamecenter/game/Game2Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/game/Game2Fragment.java @@ -4,487 +4,67 @@ import android.os.Bundle; import android.os.Handler; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; -import android.support.v4.util.ArrayMap; 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.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.ViewGroup.LayoutParams; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; -import android.widget.TextView; -import com.gh.base.AppController; -import com.gh.common.util.DownloadItemUtils; +import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; import com.gh.common.view.VerticalItemDecoration; -import com.gh.download.DataWatcher; -import com.gh.download.DownloadEntry; -import com.gh.download.DownloadManager; -import com.gh.gamecenter.GameActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.DismissEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.eventbus.EBNetworkState; -import com.gh.gamecenter.eventbus.EBPWDismiss; -import com.gh.gamecenter.eventbus.EBPackage; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.concurrent.LinkedBlockingQueue; +/** + * Created by khy on 2016/6/28. + */ +public class Game2Fragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener { + private View view; + private RecyclerView mRecyclerView; + private Game2FragmentAdapter game2FragmentAdapter; + private SwipeRefreshLayout mSwipeRefreshLayout; + private ProgressBarCircularIndeterminate mProgressBarCircularIndeterminate; -import de.greenrobot.event.EventBus; + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); -public class Game2Fragment extends Fragment implements OnRefreshListener { + view = View.inflate(getActivity(), R.layout.plugin1_fragment, null); + mRecyclerView = (RecyclerView) view.findViewById(R.id.game_list); - private View view; - private RecyclerView recyclerview; - private SwipeRefreshLayout game_swipe_refresh; - private Game2FragmentAdapter adapter; - private LinearLayoutManager layoutManager; - private TextView game_tv_label; - private RelativeLayout game_rl_label; - private RelativeLayout.LayoutParams rparams; - private LinearLayout reuse_no_connection; + mSwipeRefreshLayout = (SwipeRefreshLayout) view + .findViewById(R.id.game_swipe_refresh); + mSwipeRefreshLayout.setColorSchemeResources(R.color.theme_colors); + mSwipeRefreshLayout.setOnRefreshListener(this); - // 黄壮华 添加 记录信息的map 修改2015/8/18 - private ArrayMap locationMap; - private ArrayMap> gameMap; - private ArrayMap nameMap; - private ArrayMap> platformMap; + mProgressBarCircularIndeterminate = (ProgressBarCircularIndeterminate) view.findViewById(R.id.game_pb_loading); + mProgressBarCircularIndeterminate.setVisibility(View.GONE); + mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); + game2FragmentAdapter = new Game2FragmentAdapter(getActivity(),this); + mRecyclerView.setAdapter(game2FragmentAdapter); + mRecyclerView.addItemDecoration(new VerticalItemDecoration(getActivity(), 1)); + } - private boolean isEverpause = false; + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + if(container != null){ + container.removeView(view); + } + return view; + } - private boolean isDestroy = false; + private Handler handler = new Handler(); - private ArrayMap statusMap; + Runnable runnable = new Runnable() { + @Override + public void run() { + mSwipeRefreshLayout.setRefreshing(false); + } + }; - private DismissEntity dismissEntity; - - private Handler handler = new Handler(); - - // 黄壮华 添加观察者 修改2015/8/15 - private DataWatcher dataWatcher = new DataWatcher() { - @Override - public void onDataChanged( - HashMap downloadingEntries) { - if (!game_swipe_refresh.isRefreshing()) { - for (java.util.Map.Entry entry : downloadingEntries - .entrySet()) { - DownloadEntry downloadEntry = entry.getValue(); - Integer location = locationMap.get(downloadEntry.getName()); - if (location != null) { - int index = location.intValue(); - String platform = downloadEntry.getMeta().get( - "platform"); - - LinkedBlockingQueue queue = platformMap - .get(downloadEntry.getName()); - if (queue == null) { - queue = new LinkedBlockingQueue(); - queue.offer(platform); - platformMap.put(downloadEntry.getName(), queue); - } - - GameEntity detailedEntity = getEntityByLocation(index); - - if (detailedEntity != null) { - if (!"pause".equals(statusMap.get(entry.getValue() - .getUrl()))) { - ArrayMap entryMap = detailedEntity - .getEntryMap(); - if (entryMap == null) { - entryMap = new ArrayMap(); - detailedEntity.setEntryMap(entryMap); - } - entryMap.put(platform, downloadEntry); - adapter.notifyItemChanged(index); - } - } - } - } - } - } - }; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - - super.onCreate(savedInstanceState); - - view = View.inflate(getActivity(), R.layout.game_new_testgame_fragment, - null); - - dismissEntity = new DismissEntity(false); - - statusMap = new ArrayMap(); - locationMap = new ArrayMap(); - gameMap = new ArrayMap>(); - nameMap = new ArrayMap(); - platformMap = new ArrayMap>(); - - // 黄壮华 添加 初始化游戏状态 修改2015/8/21 - DownloadItemUtils.initializeGameMap(getActivity(), gameMap); - - game_rl_label = (RelativeLayout) view.findViewById(R.id.game_rl_label); - game_tv_label = (TextView) view.findViewById(R.id.game_tv_label); - - rparams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, - LayoutParams.WRAP_CONTENT); - - game_swipe_refresh = (SwipeRefreshLayout) view - .findViewById(R.id.game_swipe_refresh); - game_swipe_refresh.setColorSchemeResources(R.color.theme_colors); - game_swipe_refresh.setOnRefreshListener(this); - - reuse_no_connection = (LinearLayout) view - .findViewById(R.id.reuse_no_connection); - reuse_no_connection.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - game_swipe_refresh.setRefreshing(true); - recyclerview.setVisibility(View.VISIBLE); - reuse_no_connection.setVisibility(View.GONE); - handler.postDelayed(runnable, 1000); - } - }); - - recyclerview = (RecyclerView) view.findViewById(R.id.game_list); - recyclerview.setHasFixedSize(true); - layoutManager = new LinearLayoutManager(getActivity()); - recyclerview.setLayoutManager(layoutManager); - adapter = new Game2FragmentAdapter(getActivity(), locationMap, gameMap, - nameMap, platformMap, game_tv_label, recyclerview, - game_swipe_refresh, reuse_no_connection, - statusMap, dismissEntity); - recyclerview.setAdapter(adapter); - recyclerview.setOnScrollListener(new RecyclerView.OnScrollListener() { - - @Override - public void onScrolled(RecyclerView recyclerView, int dx, int dy) { - - super.onScrolled(recyclerView, dx, dy); - - int position = layoutManager.findFirstVisibleItemPosition(); - - if (position == 0 - && layoutManager.findViewByPosition(position).getTop() == 0) { - game_rl_label.setVisibility(View.GONE); - } else { - if (!game_swipe_refresh.isRefreshing()) { - game_rl_label.setVisibility(View.VISIBLE); - } - } - - if (adapter.getPosition_tomorrow() != -1 - && position >= adapter.getPosition_tomorrow() - && position <= adapter.getTomorrowList().size() - + adapter.getPosition_tomorrow()) { - game_tv_label.setText("明天"); - game_tv_label.setBackgroundResource(R.drawable.title_red); - } else if (adapter.getPosition_aftertomorrow() != -1 - && position >= adapter.getPosition_aftertomorrow() - && position <= adapter.getTheDayAfterTomorrowList() - .size() + adapter.getPosition_aftertomorrow()) { - game_tv_label.setText("后天"); - game_tv_label - .setBackgroundResource(R.drawable.title_orange); - } else if (adapter.getPosition_before() != -1 - && position >= adapter.getPosition_before() - && position <= adapter.getBeforeList().size() - + adapter.getPosition_before()) { - game_tv_label.setText("昨天/以前"); - game_tv_label.setBackgroundResource(R.drawable.title_gray); - } else if (adapter.getPosition_today() != -1) { - game_tv_label.setText("今天"); - game_tv_label.setBackgroundResource(R.drawable.title_blue); - } - - if (position == adapter.getPosition_tomorrow() - 1 - || position == adapter.getPosition_aftertomorrow() - 1 - || position == adapter.getPosition_before() - 1) { - int buttom = layoutManager.findViewByPosition(position) - .getBottom(); - if (buttom <= game_rl_label.getHeight()) { - rparams.topMargin = buttom - game_rl_label.getHeight(); - game_rl_label.setLayoutParams(rparams); - } else { - rparams.topMargin = 0; - game_rl_label.setLayoutParams(rparams); - } - } else { - rparams.topMargin = 0; - game_rl_label.setLayoutParams(rparams); - } - } - - @Override - public void onScrollStateChanged(RecyclerView recyclerView, - int newState) { - super.onScrollStateChanged(recyclerView, newState); - if (!isDestroy - && newState == RecyclerView.SCROLL_STATE_IDLE - && layoutManager.findLastVisibleItemPosition() == adapter - .getItemCount() - 1) { - if (!adapter.isRemove() && !adapter.isLoading()) { - adapter.addList(adapter.getTotalSize()); - } - } - } - - }); - recyclerview.addItemDecoration(new VerticalItemDecoration( - getActivity(), 1)); - - EventBus.getDefault().register(this); - - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); - } - return view; - } - - public void onEventMainThread(EBPackage busFour) { - String name = nameMap.get(busFour.getPackageName()); - if (name != null) { - int location = locationMap.get(name); - if ("安装".equals(busFour.getType())) { - GameEntity detailedEntity = getEntityByLocation(location); - if (detailedEntity != null) { - for (ApkEntity apkEntity : detailedEntity.getApk()) { - if (apkEntity.getPackageName().equals( - busFour.getPackageName())) { - detailedEntity.getEntryMap().remove( - apkEntity.getPlatform()); - adapter.notifyItemChanged(location); - break; - } - } - } - } else if ("卸载".equals(busFour.getType())) { - adapter.notifyItemChanged(location); - } - } - } - - private GameEntity getEntityByLocation(int location) { - GameEntity entity = null; - int tdSize = adapter.getTodayList().size(); - int tmSize = adapter.getTomorrowList().size(); - int tdfSize = adapter.getTheDayAfterTomorrowList().size(); - int bfSize = adapter.getBeforeList().size(); - if (tdSize != 0 && tmSize == 0 && tdfSize == 0 && bfSize == 0) { - entity = adapter.getTodayList().get(location - 1); - } else if (tdSize == 0 && tmSize != 0 && tdfSize == 0 && bfSize == 0) { - entity = adapter.getTomorrowList().get(location - 1); - } else if (tdSize == 0 && tmSize == 0 && tdfSize != 0 && bfSize == 0) { - entity = adapter.getTheDayAfterTomorrowList().get(location - 1); - } else if (tdSize == 0 && tmSize == 0 && tdfSize == 0 && bfSize != 0) { - entity = adapter.getBeforeList().get(location - 1); - } else if (tdSize != 0 && tmSize != 0 && tdfSize == 0 && bfSize == 0) { - if (location <= tdSize) { - entity = adapter.getTodayList().get(location - 1); - } else { - entity = adapter.getTomorrowList().get(location - tdSize - 2); - } - } else if (tdSize != 0 && tmSize == 0 && tdfSize != 0 && bfSize == 0) { - if (location <= tdSize) { - entity = adapter.getTodayList().get(location - 1); - } else { - entity = adapter.getTheDayAfterTomorrowList().get( - location - tdSize - 2); - } - } else if (tdSize != 0 && tmSize == 0 && tdfSize == 0 && bfSize != 0) { - if (location <= tdSize) { - entity = adapter.getTodayList().get(location - 1); - } else { - entity = adapter.getBeforeList().get(location - tdSize - 2); - } - } else if (tdSize == 0 && tmSize != 0 && tdfSize != 0 && bfSize == 0) { - if (location <= tmSize) { - entity = adapter.getTomorrowList().get(location - 1); - } else { - entity = adapter.getTheDayAfterTomorrowList().get( - location - tmSize - 2); - } - } else if (tdSize == 0 && tmSize != 0 && tdfSize == 0 && bfSize != 0) { - if (location <= tmSize) { - entity = adapter.getTomorrowList().get(location - 1); - } else { - entity = adapter.getBeforeList().get(location - tmSize - 2); - } - } else if (tdSize == 0 && tmSize == 0 && tdfSize != 0 && bfSize != 0) { - if (location <= tdfSize) { - entity = adapter.getTheDayAfterTomorrowList().get(location - 1); - } else { - entity = adapter.getBeforeList().get(location - tdfSize - 2); - } - } else if (tdSize != 0 && tmSize != 0 && tdfSize != 0 && bfSize == 0) { - if (location <= tdSize) { - entity = adapter.getTodayList().get(location - 1); - } else if (location > tdSize + 1 && location <= tdSize + tmSize + 1) { - entity = adapter.getTomorrowList().get(location - tdSize - 2); - } else { - entity = adapter.getTheDayAfterTomorrowList().get( - location - tdSize - tmSize - 3); - } - } else if (tdSize != 0 && tmSize != 0 && tdfSize == 0 && bfSize != 0) { - if (location <= tdSize) { - entity = adapter.getTodayList().get(location - 1); - } else if (location > tdSize + 1 && location <= tdSize + tmSize + 1) { - entity = adapter.getTomorrowList().get(location - tdSize - 2); - } else { - entity = adapter.getBeforeList().get( - location - tdSize - tmSize - 3); - } - } else if (tdSize != 0 && tmSize == 0 && tdfSize != 0 && bfSize != 0) { - if (location <= tdSize) { - entity = adapter.getTodayList().get(location - 1); - } else if (location > tdSize + 1 - && location <= tdSize + tdfSize + 1) { - entity = adapter.getTomorrowList().get(location - tdSize - 2); - } else { - entity = adapter.getBeforeList().get( - location - tdSize - tdfSize - 3); - } - } else if (tdSize == 0 && tmSize != 0 && tdfSize != 0 && bfSize != 0) { - if (location <= tmSize) { - entity = adapter.getTomorrowList().get(location - 1); - } else if (location > tmSize + 1 - && location <= tmSize + tdfSize + 1) { - entity = adapter.getTheDayAfterTomorrowList().get( - location - tmSize - 2); - } else { - entity = adapter.getBeforeList().get( - location - tmSize - tdfSize - 3); - } - } else if (tdSize != 0 && tmSize != 0 && tdfSize != 0 && bfSize != 0) { - if (location <= tdSize) { - entity = adapter.getTodayList().get(location - 1); - } else if (location > tdSize + 1 && location <= tdSize + tmSize + 1) { - entity = adapter.getTomorrowList().get(location - tdSize - 2); - } else if (location > tdSize + tmSize + 2 - && location <= tdSize + tmSize + tdfSize + 2) { - entity = adapter.getTheDayAfterTomorrowList().get( - location - tdSize - tmSize - 3); - } else { - entity = adapter.getBeforeList().get( - location - tdSize - tmSize - tdfSize - 4); - } - } - return entity; - } - - public void onEventMainThread(EBPWDismiss dismiss) { - if (dismissEntity != null) { - dismissEntity.setShow(false); - } - } - - public void onEventMainThread(EBNetworkState busNetworkState) { - if (busNetworkState.isNetworkConnected()) { - if (reuse_no_connection.getVisibility() == View.VISIBLE) { - game_swipe_refresh.setRefreshing(true); - recyclerview.setVisibility(View.VISIBLE); - 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.getTotalSize()); - } - } - } - - Runnable runnable = new Runnable() { - @Override - public void run() { - if (!isDestroy) { - adapter = new Game2FragmentAdapter(getActivity(), locationMap, - gameMap, nameMap, platformMap, game_tv_label, - recyclerview, game_swipe_refresh, reuse_no_connection, - statusMap, dismissEntity); - recyclerview.setAdapter(adapter); - } - } - }; - - @Override - public void onRefresh() { - handler.postDelayed(runnable, 1000); - } - - @Override - public void onResume() { - super.onResume(); - if (isEverpause) { - // 黄壮华 添加 初始化游戏状态 修改2015/8/21 - DownloadItemUtils.initializeGameMap(getActivity(), gameMap); - ArrayList tdList = new ArrayList(); - for (GameEntity entity : adapter.getTodayList()) { - entity.setEntryMap(gameMap.get(entity.getName())); - tdList.add(entity); - } - ArrayList tmList = new ArrayList(); - for (GameEntity entity : adapter.getTomorrowList()) { - entity.setEntryMap(gameMap.get(entity.getName())); - tmList.add(entity); - } - ArrayList dftList = new ArrayList(); - for (GameEntity entity : adapter.getTheDayAfterTomorrowList()) { - entity.setEntryMap(gameMap.get(entity.getName())); - dftList.add(entity); - } - ArrayList bftList = new ArrayList(); - for (GameEntity entity : adapter.getBeforeList()) { - entity.setEntryMap(gameMap.get(entity.getName())); - bftList.add(entity); - } - adapter.setGameList(tdList, tmList, dftList, bftList); - } - isEverpause = false; - DownloadManager.getInstance(getActivity()).addObserver(dataWatcher); - } - - @Override - public void onPause() { - super.onPause(); - isEverpause = true; - statusMap.clear(); - DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher); - } - - @Override - public void onDestroy() { - super.onDestroy(); - isDestroy = true; - adapter.setDestory(true); - AppController.canclePendingRequests(GameActivity.class); - EventBus.getDefault().unregister(this); - view = null; - recyclerview = null; - game_swipe_refresh = null; - adapter = null; - layoutManager = null; - game_tv_label = null; - game_rl_label = null; - rparams = null; - reuse_no_connection = null; - locationMap = null; - gameMap = null; - nameMap = null; - platformMap = null; - statusMap = null; - dismissEntity = null; - handler = null; - dataWatcher = null; - } + @Override + public void onRefresh() { + handler.postDelayed(runnable, 1000); + } } diff --git a/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java index 18d472cdd7..e0982cd43f 100644 --- a/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/Game2FragmentAdapter.java @@ -2,10 +2,9 @@ package com.gh.gamecenter.game; import android.content.Context; import android.content.Intent; -import android.support.v4.util.ArrayMap; -import android.support.v4.widget.SwipeRefreshLayout; +import android.support.v4.app.FragmentActivity; import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.RecyclerView.ViewHolder; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -13,30 +12,24 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; -import android.widget.Toast; -import com.android.volley.NoConnectionError; import com.android.volley.Response; -import com.android.volley.TimeoutError; import com.android.volley.VolleyError; import com.gh.base.AppController; import com.gh.common.constant.Config; import com.gh.common.constant.Constants; import com.gh.common.util.DataUtils; -import com.gh.common.util.DownloadItemUtils; import com.gh.common.util.GameViewUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.TimestampUtils; -import com.gh.download.DownloadEntry; import com.gh.gamecenter.GameDetailsActivity; +import com.gh.gamecenter.NewsActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -import com.gh.gamecenter.db.info.GameInfo; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.DismissEntity; +import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; import com.gh.gamecenter.entity.GameEntity; +import com.gh.gamecenter.entity.SubjectEntity; import com.gh.gamecenter.manager.DataCollectionManager; -import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -45,725 +38,326 @@ import org.json.JSONArray; import java.lang.reflect.Type; import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.LinkedBlockingQueue; - -public class Game2FragmentAdapter extends - RecyclerView.Adapter { - - public class ITEM_TYPE { - public static final int head = 0; - public static final int game_layout = 1; - public static final int refresh_footer = 2; - } - - private int position_today = -1;// 今天的position - private int position_tomorrow = -1;// 明天的position - private int position_aftertomorrow = -1;// 后天的position - private int position_before = -1;// 昨天和以前的position - - private List todayGameList; - private List tomorrowGameList; - private List dayAfterTomorrowGameList; - private List beforeGameList; - - private Context context; - private LayoutInflater layoutInflater; - - private RecyclerView recyclerView; - private SwipeRefreshLayout game_swipe_refresh; - private LinearLayout reuse_no_connection; - private TextView game_tv_label; - - private boolean isRemove; - private boolean isLoading; -// private boolean isLoaded; - private boolean isNetworkError; - private boolean isDestory; - - // 黄壮华 添加 记录信息的map 修改2015/8/18 - private ArrayMap locationMap; - private ArrayMap> gameMap; - private ArrayMap nameMap; - private ArrayMap> platformMap; - - private ArrayMap statusMap; - - private DismissEntity dismissEntity; - - public Game2FragmentAdapter(Context con, ArrayMap lMap, - ArrayMap> gMap, - ArrayMap nMap, - ArrayMap> pMap, - TextView textView, RecyclerView rView, - SwipeRefreshLayout swipeRefreshLayout, LinearLayout linearLayout, - ArrayMap sMap, DismissEntity dEntity) { - - locationMap = lMap; - gameMap = gMap; - nameMap = nMap; - platformMap = pMap; - game_tv_label = textView; - recyclerView = rView; - game_swipe_refresh = swipeRefreshLayout; - reuse_no_connection = linearLayout; - - statusMap = sMap; - - dismissEntity = dEntity; - - context = con; - layoutInflater = LayoutInflater.from(context); - - todayGameList = new ArrayList(); - tomorrowGameList = new ArrayList(); - dayAfterTomorrowGameList = new ArrayList(); - beforeGameList = new ArrayList(); - - isRemove = false; - isLoading = false; -// isLoaded = false; - isNetworkError = false; - isDestory = false; - - addList(0); - } - - public void addList(final int offset) { - if (isLoading) { - return; - } - isLoading = true; - JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d45/game/xincekapai?limit=10&offset=" + offset, - Constants.GAME_CD), new Response.Listener() { - - @Override - public void onResponse(JSONArray response) { - if (!isDestory) { - processingData(response, offset); - } - isLoading = false; -// isLoaded = true; -// notifyItemChanged(getItemCount() - 1); - } - - }, new Response.ErrorListener() { - - @Override - public void onErrorResponse(VolleyError error) { - isLoading = false; - // 无网络连接和访问超时 - if (error.getClass().equals(NoConnectionError.class) - || error.getClass().equals(TimeoutError.class)) { - if (offset == 0) { - if (game_swipe_refresh.isRefreshing()) { - game_swipe_refresh.setRefreshing(false); - } - recyclerView.setVisibility(View.GONE); - reuse_no_connection.setVisibility(View.VISIBLE); - } else { - Toast.makeText(context, "网络错误", - Toast.LENGTH_SHORT).show(); - isNetworkError = true; - notifyItemChanged(getItemCount() - 1); - } - } - } - - }); - AppController.addToRequestQueue(request, Game2Fragment.class); - } - - private void processingData(JSONArray response, int offset) { - Type listType = new TypeToken>() {}.getType(); - Gson gson = new Gson(); - GameManager manager = new GameManager(context); - // 黄壮华 初始化游戏状态 修改2015/8/15 - List list = gson.fromJson(response.toString(), listType); - if (list != null && !list.isEmpty()) { - for (GameEntity entity : list) { - entity.setEntryMap(gameMap.get(entity.getName())); - if (entity.getApk() != null) { - for (ApkEntity apkEntity : entity.getApk()) { - manager.addOrUpdate(new GameInfo( - apkEntity.getPackageName(), entity.getId(), entity - .getName())); - } - } - } - initDatas(list, offset); - } - - if (offset == 0 && game_swipe_refresh.isRefreshing()) { - game_swipe_refresh.setRefreshing(false); - } - - if (list.isEmpty() || (offset == 0 && list.size() < 10)) { - isRemove = true; - notifyItemChanged(getItemCount() - 1); - } - - // 黄壮华 获取游戏位置信息 修改2015/8/19 - for (int i = 0, size = list.size(); i < size; i++) { - GameEntity entity = list.get(i); - if (entity.getApk() != null) { - for (ApkEntity apkEntity : entity.getApk()) { - nameMap.put(apkEntity.getPackageName(), entity.getName()); - } - } - } - - } - - public void initDatas(List datas, int offset) { - // 去重 - for (int i = 0; i < datas.size(); i++) { - String id = datas.get(i).getId(); - int index = i; - - if (!todayGameList.isEmpty()) { - for (int j = 0; j < todayGameList.size(); j++) { - if (todayGameList.get(j).getId().equals(id)) { - datas.remove(i); - i--; - break; - } - } - if (i != index) { - continue; - } - } - - if (!tomorrowGameList.isEmpty()) { - for (int j = 0; j < tomorrowGameList.size(); j++) { - if (tomorrowGameList.get(j).getId().equals(id)) { - datas.remove(i); - i--; - break; - } - } - if (i != index) { - continue; - } - } - - if (!dayAfterTomorrowGameList.isEmpty()) { - for (int j = 0; j < dayAfterTomorrowGameList.size(); j++) { - if (dayAfterTomorrowGameList.get(j).getId().equals(id)) { - datas.remove(i); - i--; - break; - } - } - if (i != index) { - continue; - } - } - - if (!beforeGameList.isEmpty()) { - for (int j = 0; j < beforeGameList.size(); j++) { - if (beforeGameList.get(j).getId().equals(id)) { - datas.remove(i); - i--; - break; - } - } - if (i != index) { - continue; - } - } - } - - Calendar date = Calendar.getInstance(); - int today = date.get(Calendar.DAY_OF_MONTH); - for (int i = 0; i < datas.size(); i++) { - date.setTimeInMillis(Long.parseLong(datas.get(i).getTest() - .getStart() - + "000")); - - int currDay = date.get(Calendar.DAY_OF_MONTH); - - if (currDay == today) { - todayGameList.add(datas.get(i)); - } else if (currDay == today + 1) { - tomorrowGameList.add(datas.get(i)); - } else if (currDay == today + 2) { - dayAfterTomorrowGameList.add(datas.get(i)); - } else { - beforeGameList.add(datas.get(i)); - } - } - - // 黄壮华 2015/8/18 初始游戏位置状态 - int interval = 1; - for (int i = 0, size = todayGameList.size(); i < size; i++) { - locationMap.put(todayGameList.get(i).getName(), i + interval); - } - if (todayGameList.size() != 0) { - interval += (todayGameList.size() + 1); - } - for (int i = 0, size = tomorrowGameList.size(); i < size; i++) { - locationMap.put(tomorrowGameList.get(i).getName(), i + interval); - } - if (tomorrowGameList.size() != 0) { - interval += (tomorrowGameList.size() + 1); - } - for (int i = 0, size = dayAfterTomorrowGameList.size(); i < size; i++) { - locationMap.put(dayAfterTomorrowGameList.get(i).getName(), i - + interval); - } - if (dayAfterTomorrowGameList.size() != 0) { - interval += (dayAfterTomorrowGameList.size() + 1); - } - for (int i = 0, size = beforeGameList.size(); i < size; i++) { - locationMap.put(beforeGameList.get(i).getName(), i + interval); - } - - if (!todayGameList.isEmpty()) { - position_today = 0; - } - if (!tomorrowGameList.isEmpty()) { - if (position_today != -1) { - position_tomorrow = todayGameList.size() + 1; - } else { - position_tomorrow = 0; - } - } - if (!dayAfterTomorrowGameList.isEmpty()) { - if (position_today != -1 && position_tomorrow != -1) { - position_aftertomorrow = position_tomorrow - + tomorrowGameList.size() + 1; - } else if (position_today == -1 && position_tomorrow != -1) { - position_aftertomorrow = tomorrowGameList.size() + 1; - } else if (position_today != -1 && position_tomorrow == -1) { - position_aftertomorrow = todayGameList.size() + 1; - } else if (position_today == -1 && position_tomorrow == -1) { - position_aftertomorrow = 0; - } - } - if (!beforeGameList.isEmpty()) { - if (position_today != -1 && position_tomorrow != -1 - && position_aftertomorrow != -1) { - position_before = position_aftertomorrow - + dayAfterTomorrowGameList.size() + 1; - } else if (position_today != -1 && position_tomorrow != -1 - && position_aftertomorrow == -1) { - position_before = position_tomorrow + tomorrowGameList.size() - + 1; - } else if (position_today != -1 && position_tomorrow == -1 - && position_aftertomorrow != -1) { - position_before = position_aftertomorrow - + dayAfterTomorrowGameList.size() + 1; - } else if (position_today == -1 && position_tomorrow != -1 - && position_aftertomorrow != -1) { - position_before = position_aftertomorrow - + dayAfterTomorrowGameList.size() + 1; - } else if (position_today != -1 && position_tomorrow == -1 - && position_aftertomorrow == -1) { - position_before = todayGameList.size() + 1; - } else if (position_today == -1 && position_tomorrow == -1 - && position_aftertomorrow != -1) { - position_before = dayAfterTomorrowGameList.size() + 1; - } else if (position_today == -1 && position_tomorrow != -1 - && position_aftertomorrow == -1) { - position_before = tomorrowGameList.size() + 1; - } else if (position_today == -1 && position_tomorrow == -1 - && position_aftertomorrow == -1) { - position_before = 0; - } - } - if (offset == 0) { - if (position_today != -1) { - game_tv_label.setText("今天"); - game_tv_label.setBackgroundResource(R.drawable.title_blue); - } else if (position_tomorrow != -1) { - game_tv_label.setText("明天"); - game_tv_label.setBackgroundResource(R.drawable.title_red); - } else if (position_aftertomorrow != -1) { - game_tv_label.setText("后天"); - game_tv_label.setBackgroundResource(R.drawable.title_orange); - } else if (position_before != -1) { - game_tv_label.setText("昨天/以前"); - game_tv_label.setBackgroundResource(R.drawable.title_gray); - } - } - notifyDataSetChanged(); - } - - @Override - public int getItemViewType(int position) { - if (position_today != -1) { - if (position == position_today) { - return ITEM_TYPE.head; - } - if (position > position_today && position <= todayGameList.size()) { - return ITEM_TYPE.game_layout; - } - } - - if (position_tomorrow != -1) { - if (position == position_tomorrow) { - return ITEM_TYPE.head; - } - if (position > position_tomorrow - && position <= tomorrowGameList.size() + position_tomorrow) { - return ITEM_TYPE.game_layout; - } - } - - if (position_aftertomorrow != -1) { - if (position == position_aftertomorrow) { - return ITEM_TYPE.head; - } - if (position > position_aftertomorrow - && position <= dayAfterTomorrowGameList.size() - + position_aftertomorrow) { - return ITEM_TYPE.game_layout; - } - } - - if (position_before != -1) { - if (position == position_before) { - return ITEM_TYPE.head; - } - if (position > position_before - && position <= beforeGameList.size() + position_before) { - return ITEM_TYPE.game_layout; - } - } - - return ITEM_TYPE.refresh_footer; - } - - @Override - public int getItemCount() { - if (getTotalSize() == 0) { - return 0; - } - - int head = 0; - if (position_today != -1) { - head++; - } - if (position_tomorrow != -1) { - head++; - } - if (position_aftertomorrow != -1) { - head++; - } - if (position_before != -1) { - head++; - } - return head + todayGameList.size() + tomorrowGameList.size() - + dayAfterTomorrowGameList.size() + beforeGameList.size() + 1; - } - - @Override - public void onBindViewHolder(ViewHolder viewHolder, int position) { - if (viewHolder instanceof HeadViewHolder) { - ((HeadViewHolder) viewHolder).initViewHolder(position); - } else if (viewHolder instanceof GameTestViewHolder) { - ((GameTestViewHolder) viewHolder).initViewHolder(position); - } else if (viewHolder instanceof FooterViewHolder) { - FooterViewHolder holder = (FooterViewHolder) viewHolder; - if (isNetworkError) { - holder.footerview_progressbar.setVisibility(View.GONE); - holder.footerview_tv_loading.setText("加载失败,点击重试"); - holder.rootView.setClickable(true); - holder.rootView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - isNetworkError = false; - notifyItemChanged(getItemCount() - 1); - addList(getTotalSize()); - } - }); - } else if (isRemove) { - holder.footerview_progressbar.setVisibility(View.GONE); - holder.footerview_tv_loading.setText("加载完毕"); - holder.rootView.setClickable(false); - } -// else if (isLoaded) { -// holder.footerview_progressbar.setVisibility(View.GONE); -// holder.footerview_tv_loading.setText("点击加载更多"); -// holder.rootView.setClickable(true); -// holder.rootView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// isLoaded = false; -// notifyItemChanged(getItemCount() - 1); -// addList(getTotalSize()); -// } -// }); -// } - else { - holder.footerview_progressbar.setVisibility(View.VISIBLE); - holder.footerview_tv_loading.setText("加载中..."); - holder.rootView.setClickable(false); - } - } - } - - @Override - public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - if (viewType == ITEM_TYPE.head) { - return new HeadViewHolder(layoutInflater.inflate( - R.layout.news_list_item_category, parent, false)); - } else if (viewType == ITEM_TYPE.game_layout) { - return new GameTestViewHolder(layoutInflater.inflate( - R.layout.home_list_item_gametest_type, parent, false)); - } - return new FooterViewHolder(layoutInflater.inflate( - R.layout.refresh_footerview, parent, false)); - } - - public class HeadViewHolder extends ViewHolder { - public TextView headType; - - public HeadViewHolder(View v) { - super(v); - headType = (TextView) v.findViewById(R.id.tv_label); - } - - public void initViewHolder(int position) { - if (position == position_today) { - headType.setText("今天"); - headType.setBackgroundResource(R.drawable.title_blue); - } - - if (position == position_tomorrow) { - headType.setText("明天"); - headType.setBackgroundResource(R.drawable.title_red); - } - - if (position == position_aftertomorrow) { - headType.setText("后天"); - headType.setBackgroundResource(R.drawable.title_orange); - } - - if (position == position_before) { - headType.setText("昨天/以前"); - headType.setBackgroundResource(R.drawable.title_gray); - } - } - } - - public class GameTestViewHolder extends ViewHolder { - public ImageView gameThumb; - public TextView gameNameAndSize; - public TextView downloadBtn; - public TextView gameDes; - public TextView gameTestType; - public TextView gameTestTime; - public LinearLayout labelList; - public ProgressBar game_progressbar; - public LinearLayout game_ll_info; - public TextView download_speed, download_percentage; - - private View rootItem; - - public GameTestViewHolder(View v) { - super(v); - this.rootItem = v; - gameThumb = (ImageView) v.findViewById(R.id.home2_game_thumb); - gameNameAndSize = (TextView) v - .findViewById(R.id.home2_game_nameAndsize); - downloadBtn = (TextView) v.findViewById(R.id.home2_download_btn); - gameDes = (TextView) v.findViewById(R.id.home2_game_des); - gameTestType = (TextView) v.findViewById(R.id.home2_test_type); - gameTestTime = (TextView) v.findViewById(R.id.home2_test_time); - labelList = (LinearLayout) v.findViewById(R.id.home2_label_list); - game_progressbar = (ProgressBar) v - .findViewById(R.id.home2_game_progressbar); - game_ll_info = (LinearLayout) v - .findViewById(R.id.home2_game_ll_info); - download_speed = (TextView) v - .findViewById(R.id.home2_download_speed); - download_percentage = (TextView) v - .findViewById(R.id.home2_download_percentage); - } - - public void initViewHolder(int position) { - - GameEntity entity = null; - - if (position > position_today - && position <= todayGameList.size() + position_today) { - entity = todayGameList.get(position - position_today - 1); - } else if (position > position_tomorrow - && position <= tomorrowGameList.size() + position_tomorrow) { - entity = tomorrowGameList.get(position - position_tomorrow - 1); - } else if (position > position_aftertomorrow - && position <= dayAfterTomorrowGameList.size() - + position_aftertomorrow) { - entity = dayAfterTomorrowGameList.get(position - - position_aftertomorrow - 1); - } else if (position > position_before - && position <= beforeGameList.size() + position_before) { - entity = beforeGameList.get(position - position_before - 1); - } - - if (entity != null) { - if (entity.getApk() == null || entity.getApk().isEmpty()) { - gameNameAndSize.setText(entity.getName()); - } else { - gameNameAndSize.setText(entity.getName() + " | " - + entity.getApk().get(0).getSize()); - } - ImageUtils.getInstance(context).display(entity.getIcon(), - gameThumb); - gameDes.setText(entity.getBrief()); - gameTestType.setText(entity.getTest().getType()); - if (entity.getTest().getStart() == 0) { - gameTestTime.setVisibility(View.GONE); - } else { - gameTestTime.setText(GameViewUtils.getGameTestDate(entity - .getTest().getStart())); - } - - final GameEntity gameEntity = entity; - - rootItem.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - Map kv = new HashMap(); - kv.put("入口", "新游-新测卡牌"); - DataUtils.onEvent(context, "游戏详情", gameEntity.getName(), - kv); - - Map map = new HashMap(); - map.put("location", "新测卡牌"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("game", gameEntity.getName()); - map.put("page", "游戏"); - DataCollectionManager.onEvent(context, "click-item", map); - - AppController.put("GameEntity", gameEntity); - Intent intent = new Intent(context, - GameDetailsActivity.class); - intent.putExtra("entrance", "游戏-新测卡牌"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - - boolean isGone = false; - - if (entity.getApk() == null || entity.getApk().isEmpty()) { - downloadBtn.setVisibility(View.GONE); - isGone = true; - } else { - if (entity.getTest().getEnd() == 0) { - downloadBtn.setVisibility(View.VISIBLE); - DownloadItemUtils.setOnClickListener(context, - downloadBtn, download_speed, - download_percentage, entity, position, - Game2FragmentAdapter.this, statusMap, platformMap, "游戏-新测卡牌", - dismissEntity, "新游:" + entity.getName()); - } else { - long endTime = Long.valueOf(entity.getTest().getEnd() - + "000"); - long todayTime = new Date().getTime(); - if (todayTime > endTime) { - // 测试时间已过 - downloadBtn.setVisibility(View.GONE); - isGone = true; - } else { - // 测试时间未过 - downloadBtn.setVisibility(View.VISIBLE); - DownloadItemUtils.setOnClickListener(context, - downloadBtn, download_speed, - download_percentage, entity, position, - Game2FragmentAdapter.this, statusMap, platformMap, - "游戏-新测卡牌", dismissEntity, - "新游:" + entity.getName()); - } - } - } - - DownloadItemUtils.updateItem(context, labelList, - game_progressbar, game_ll_info, download_speed, - download_percentage, downloadBtn, entity, platformMap, - statusMap); - - if (Config.isShow && isGone) { - downloadBtn.setVisibility(View.GONE); - } - } - } - } - - public int getTotalSize() { - return todayGameList.size() + tomorrowGameList.size() - + dayAfterTomorrowGameList.size() + beforeGameList.size(); - } - - public boolean isRemove() { - return isRemove; - } - - public boolean isLoading() { - return isLoading; - } - - public List getTodayList() { - return todayGameList; - } - - public List getTomorrowList() { - return tomorrowGameList; - } - - public List getTheDayAfterTomorrowList() { - return dayAfterTomorrowGameList; - } - - public List getBeforeList() { - return beforeGameList; - } - - public int getPosition_today() { - return position_today; - } - - public int getPosition_tomorrow() { - return position_tomorrow; - } - - public int getPosition_aftertomorrow() { - return position_aftertomorrow; - } - - public int getPosition_before() { - return position_before; - } - - public void setGameList(List tdList, List tmList, - List dftList, List bftList) { - todayGameList = tdList; - tomorrowGameList = tmList; - dayAfterTomorrowGameList = dftList; - beforeGameList = bftList; - notifyDataSetChanged(); - } - - public void setDestory(boolean isDestory) { - this.isDestory = isDestory; - } - - public boolean isNetworkError() { - return isNetworkError; - } - - public void setNetworkError(boolean isNetworkError) { - this.isNetworkError = isNetworkError; - } +/** + * Created by khy on 2016/6/28. + */ +public class Game2FragmentAdapter extends RecyclerView.Adapter { + private final static int ITEM_XINCE = 100;//游戏布局2 + private final static int ITEM = 101;//游戏布局1 + private final static int ITEM_HEAD = 102;//专题头部 + private final static int ITEM_PIC = 103;//大图布局 + private List entity2List; + private Context mContext; + private int position_one = -1; + private int position_two = -1; + private int position_three = -1; + private int imgPosition = -1; + + public Game2FragmentAdapter(FragmentActivity activity, Game2Fragment game2Fragment) { + this.mContext = activity; + LoadData2(); + } + + private void LoadData2() { + JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( + TimestampUtils.addTimestamp(Config.HOST + "v1d50/game/tuijian", + Constants.GAME_CD), new Response.Listener() { + + @Override + public void onResponse(JSONArray response) { + Type listType = new TypeToken>() { + }.getType(); + Gson gson = new Gson(); + entity2List = gson.fromJson(response.toString(), listType); + getDataPosition(); + notifyDataSetChanged(); + + } + + }, new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + + } + + }); + AppController.addToRequestQueue(request, GameFragment.class); + } + + //确定内容位置 + private void getDataPosition() { + if (entity2List.size() > 0) { + if (entity2List.size() == 1) { + position_one = entity2List.get(0).getData().size() + 1; + } + if (entity2List.size() == 2) { + position_one = entity2List.get(0).getData().size() + 1; + position_two = entity2List.get(1).getData().size() + position_one + 1; + } + if (entity2List.size() == 3) { + position_one = entity2List.get(0).getData().size() + 1; + position_two = entity2List.get(1).getData().size() + position_one + 1; + position_three = entity2List.get(2).getData().size() + position_two + 1; + } + } + + } + + @Override + public int getItemViewType(int position) { + if (position_one != -1) { + if (position == 0) { + return ITEM_HEAD; + } + if (position == 1 && entity2List.get(0).getData().get(0).getImage() != null) { + imgPosition = 0; + return ITEM_PIC; + } + if (position > 0 && position < position_one) { + if ("新测卡牌".equals(entity2List.get(0).getName())) { + return ITEM_XINCE; + } + return ITEM; + } + } + if (position_two != -1) { + if (position == position_two - entity2List.get(1).getData().size() - 1) { + return ITEM_HEAD; + } + if (position == position_two - entity2List.get(1).getData().size() && entity2List.get(1).getData().get(0).getImage() != null) { + imgPosition = 1; + return ITEM_PIC; + } + if (position > position_two - entity2List.get(1).getData().size() - 1 && position < position_two) { + if ("新测卡牌".equals(entity2List.get(1).getName())) { + return ITEM_XINCE; + } + return ITEM; + } + } + if (position_three != -1) { + if (position == position_three - entity2List.get(2).getData().size() - 1) { + return ITEM_HEAD; + } + if (position == position_three - entity2List.get(2).getData().size() && entity2List.get(2).getData().get(0).getImage() != null) { + imgPosition = 2; + return ITEM_PIC; + } + if (position > position_three - entity2List.get(2).getData().size() - 1 && position < position_three) { + if ("新测卡牌".equals(entity2List.get(2).getName())) { + return ITEM_XINCE; + } + return ITEM; + } + } + + Log.e("Game2FragmentAdapter", "存在未知类型");//位置判定失败,默认返回大图布局 + return ITEM_PIC; + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view; + switch (viewType) { + case ITEM_HEAD: + view = LayoutInflater.from(mContext).inflate(R.layout.home_list_item_head, parent, false); + return new HeadViewHolder(view); + case ITEM: + view = LayoutInflater.from(mContext).inflate(R.layout.home_game_normal_item, parent, false); + return new GameNormalViewHolder(view); + case ITEM_PIC: + view = LayoutInflater.from(mContext).inflate(R.layout.game_tuijian_img, parent, false); + return new ReMenPicViewHolder(view); + case ITEM_XINCE: + view = LayoutInflater.from(mContext).inflate(R.layout.home_game_test_item, parent, false); + return new GameTestViewHolder(view); + default: + return null; + } + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + GameEntity gameEntity = null; + int index = 0; + int arrId = -1;//记录专题位置 + if (position_one != -1 && position > 0 && position < position_one) { + index = position - 1; + arrId = 0; + gameEntity = entity2List.get(0).getData().get(index); + } else if (position_two != -1 && position > position_two - entity2List.get(1).getData().size() - 1 && position < position_two) { + index = position - position_one - 1; + arrId = 1; + gameEntity = entity2List.get(1).getData().get(index); + } else if (position_three != -1 && position > position_three - entity2List.get(2).getData().size() - 1 && position < position_three) { + index = position - position_two - 1; + arrId = 2; + gameEntity = entity2List.get(2).getData().get(index); + } + + + if (holder instanceof HeadViewHolder) { + if (position == 0) { + ((HeadViewHolder) holder).title.setText(entity2List.get(0).getName()); + } else if (position == position_two - entity2List.get(1).getData().size() - 1) { + ((HeadViewHolder) holder).title.setText(entity2List.get(1).getName()); + } else if (position == position_three - entity2List.get(2).getData().size() - 1) { + ((HeadViewHolder) holder).title.setText(entity2List.get(2).getName()); + } + } else if (holder instanceof GameNormalViewHolder) { + if (gameEntity != null) { + ((GameNormalViewHolder) holder).home1_game_order.setVisibility(View.GONE); + ImageUtils.getInstance(mContext).display(gameEntity.getIcon(), ((GameNormalViewHolder) holder).gameThumb); + GameViewUtils.setLabelList(mContext, ((GameNormalViewHolder) holder).labelList, gameEntity.getTag()); + ((GameNormalViewHolder) holder).gameNameAndSize.setText(gameEntity.getName()); + ((GameNormalViewHolder) holder).gameDes.setText(gameEntity.getApk().get(0).getSize() + " | " + gameEntity.getBrief()); + if (arrId != -1 && entity2List.get(arrId).getOrder()) { + ((GameNormalViewHolder) holder).home1_game_order.setVisibility(View.VISIBLE); + if (gameEntity.getName() == null) { + index = index + 1; + } + ((GameNormalViewHolder) holder).home1_game_order.setText(index + ""); + } + } + final GameEntity finalGameEntity = gameEntity; + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + Map kv = new HashMap(); + kv.put("入口", "游戏-推荐-列表"); + DataUtils.onEvent(mContext, "游戏详情", finalGameEntity.getName(), + kv); + + Map map = new HashMap(); + map.put("location", "推荐-列表"); + map.put("createOn", System.currentTimeMillis() / 1000); + map.put("game", finalGameEntity.getName()); + map.put("page", "游戏"); + DataCollectionManager.onEvent(mContext, "click-item", map); + + AppController.put("GameEntity", finalGameEntity); + Intent intent = new Intent(mContext, + GameDetailsActivity.class); + intent.putExtra("entrance", "游戏-推荐列表"); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.startActivity(intent); + } + }); + } else if (holder instanceof GameTestViewHolder) { + ((GameTestViewHolder) holder).home2_game_order.setVisibility(View.GONE); + ((GameTestViewHolder) holder).gameDes.setText(gameEntity.getApk().get(0).getSize() + " | " + gameEntity.getBrief()); + ((GameTestViewHolder) holder).gameNameAndSize.setText(gameEntity.getName()); + ((GameTestViewHolder) holder).gameTestType.setText(gameEntity.getTest().getType()); + ((GameTestViewHolder) holder).gameTestTime.setText(GameViewUtils.getGameTestDate(gameEntity.getTest().getStart())); + ImageUtils.getInstance(mContext).display(gameEntity.getIcon(), ((GameTestViewHolder) holder).gameThumb); + if (arrId != -1 && entity2List.get(arrId).getOrder()) { + ((GameTestViewHolder) holder).home2_game_order.setVisibility(View.VISIBLE); + if (gameEntity.getName() == null) { + index = index + 1; + } + ((GameTestViewHolder) holder).home2_game_order.setText(index + ""); + } + final GameEntity finalGameEntity1 = gameEntity; + final int i = index; + ((GameTestViewHolder) holder).itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + Map kv = new HashMap(); + kv.put("入口", "主页-新测卡牌"); + DataUtils.onEvent(mContext, "游戏详情", finalGameEntity1.getName(), kv); + + Map kv2 = new HashMap(); + kv2.put(finalGameEntity1.getName(), "点击量"); + DataUtils.onEvent(mContext, "主页数据", "新测卡牌", kv2); + + Map kv3 = new HashMap(); + kv3.put("新测卡牌", i + ""); + DataUtils.onEvent(mContext, "主页数据", "位置数据", kv3); + + Map map = new HashMap(); + map.put("location", "新测卡牌"); + map.put("createOn", System.currentTimeMillis() / 1000); + map.put("game", finalGameEntity1.getName()); + map.put("page", "主页"); + DataCollectionManager.onEvent(mContext, "click-item", + map); + + AppController.put("GameEntity", finalGameEntity1); + Intent intent = new Intent(mContext, + GameDetailsActivity.class); + intent.putExtra("entrance", "主页-新测卡牌"); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.startActivity(intent); + } + }); + } else if (holder instanceof ReMenPicViewHolder) { + final String id = gameEntity.getId(); + final String type = gameEntity.getType(); + ((ReMenPicViewHolder) holder).imageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if ("game".equals(type)) { + Intent intent = new Intent(mContext, GameDetailsActivity.class); + intent.putExtra("gameId", id); + intent.putExtra("entrance", "插件-大图"); + mContext.startActivity(intent); + } else if ("news".equals(type)) { + Intent intent = new Intent(mContext, NewsActivity.class); + intent.putExtra("newsId", id); + intent.putExtra("entrance", "插件-大图"); + mContext.startActivity(intent); + } + } + }); + } + + } + + @Override + public int getItemCount() { + if (position_three != -1) { + return position_three; + } else if (position_two != -1) { + return position_two; + } else if (position_one != -1) { + return position_one; + } + return 0; + } + + public class HeadViewHolder extends RecyclerView.ViewHolder { + public ImageView thumb; + public TextView title; + public LinearLayout link; + + public HeadViewHolder(View view) { + super(view); + this.thumb = (ImageView) view.findViewById(R.id.head_thumb); + this.title = (TextView) view.findViewById(R.id.head_title); + this.link = (LinearLayout) view.findViewById(R.id.head_link); + } + } + + public class ReMenPicViewHolder extends RecyclerView.ViewHolder { + View view; + ImageView imageView; + + public ReMenPicViewHolder(View itemView) { + super(itemView); + view = itemView; + imageView = (ImageView) view.findViewById(R.id.tuijian_img); + ImageUtils.getInstance(mContext).display(entity2List.get(imgPosition).getData().get(0).getImage(), imageView); + + } + } + + public interface OnGamePluginCallBackListener { + void onRefreshEnabled(boolean isEnabled); + } } diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Game3Fragment.java b/app/src/main/java/com/gh/gamecenter/game/Game3Fragment.java similarity index 98% rename from app/src/main/java/com/gh/gamecenter/plugin/Game3Fragment.java rename to app/src/main/java/com/gh/gamecenter/game/Game3Fragment.java index 36792e4e3f..701c481bae 100644 --- a/app/src/main/java/com/gh/gamecenter/plugin/Game3Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/game/Game3Fragment.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.plugin; +package com.gh.gamecenter.game; import android.os.Bundle; import android.os.Handler; @@ -275,7 +275,7 @@ public class Game3Fragment extends Fragment implements OnRefreshListener { if (busNine.getPosition() != 1) { statusMap.clear(); } - } else if ("PluginFragment".equals(busNine.getFrom()) && busNine.getPosition() == 2 + } else if ("GameFragment".equals(busNine.getFrom()) && busNine.getPosition() == 2 && game_pb_loading.getVisibility() == View.VISIBLE) { adapter.load(); } diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Game3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java similarity index 91% rename from app/src/main/java/com/gh/gamecenter/plugin/Game3FragmentAdapter.java rename to app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java index a43664a794..5a69fa0061 100644 --- a/app/src/main/java/com/gh/gamecenter/plugin/Game3FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.plugin; +package com.gh.gamecenter.game; import android.content.Context; import android.content.Intent; @@ -28,7 +28,7 @@ import com.gh.download.DownloadEntry; import com.gh.gamecenter.GameDetailsActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.db.info.GameInfo; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.DismissEntity; @@ -187,7 +187,7 @@ public class Game3FragmentAdapter extends } }); - AppController.addToRequestQueue(request, Plugin3Fragment.class); + AppController.addToRequestQueue(request, GameFragment.class); } private void processingData(JSONArray response, int offset) { @@ -267,9 +267,9 @@ public class Game3FragmentAdapter extends @Override public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) { - if (viewHolder instanceof GameViewHolder) { + if (viewHolder instanceof GameNormalViewHolder) { - GameViewHolder holder = (GameViewHolder) viewHolder; + GameNormalViewHolder holder = (GameNormalViewHolder) viewHolder; final GameEntity detailedEntity = list.get(position); @@ -277,13 +277,12 @@ public class Game3FragmentAdapter extends ImageUtils.getInstance(context).display(detailedEntity.getIcon(), holder.gameThumb); - if (detailedEntity.getApk() == null - || detailedEntity.getApk().isEmpty()) { - holder.gameNameAndSize.setText(detailedEntity.getName()); + holder.gameNameAndSize.setText(detailedEntity.getName()); + if (detailedEntity.getApk() == null || detailedEntity.getApk().isEmpty()) { + holder.gameDes.setText(detailedEntity.getBrief()); } else { - holder.gameNameAndSize.setText(detailedEntity.getName()); + holder.gameDes.setText(detailedEntity.getApk().get(0).getSize() + " | " + detailedEntity.getBrief()); } - holder.gameDes.setText(detailedEntity.getApk().get(0).getSize()+ " | " +detailedEntity.getBrief()); GameViewUtils.setLabelList(context, holder.labelList, detailedEntity.getTag()); @@ -314,14 +313,14 @@ public class Game3FragmentAdapter extends }); DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, - holder.downloadSpeed, holder.downloadPercentage, + holder.download_speed, holder.download_percentage, detailedEntity, position, this, statusMap, platformMap, "游戏-单机", false, dismissEntity, "单机:" + detailedEntity.getName()); DownloadItemUtils.updateItem(context, holder.labelList, - holder.gameProgressbar, holder.gameInfo, - holder.downloadSpeed, holder.downloadPercentage, + holder.game_progressbar, holder.game_ll_info, + holder.download_speed, holder.download_percentage, holder.downloadBtn, detailedEntity, platformMap, statusMap, false); } else if (viewHolder instanceof FooterViewHolder) { @@ -329,8 +328,8 @@ public class Game3FragmentAdapter extends if (isNetworkError) { holder.footerview_progressbar.setVisibility(View.GONE); holder.footerview_tv_loading.setText("加载失败,点击重试"); - holder.rootView.setClickable(true); - holder.rootView.setOnClickListener(new View.OnClickListener() { + holder.itemView.setClickable(true); + holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { isNetworkError = false; @@ -341,7 +340,7 @@ public class Game3FragmentAdapter extends } else { holder.footerview_progressbar.setVisibility(View.VISIBLE); holder.footerview_tv_loading.setText("加载中..."); - holder.rootView.setClickable(false); + holder.itemView.setClickable(false); } } } @@ -358,9 +357,9 @@ public class Game3FragmentAdapter extends viewGroup.getContext()).inflate( R.layout.refresh_footerview, viewGroup, false)); } else { - return new GameViewHolder(LayoutInflater.from( + return new GameNormalViewHolder(LayoutInflater.from( viewGroup.getContext()).inflate( - R.layout.game_plugin_item_gamenormal, viewGroup, false)); + R.layout.home_game_normal_item, viewGroup, false)); } } diff --git a/app/src/main/java/com/gh/gamecenter/plugin/PluginFragment.java b/app/src/main/java/com/gh/gamecenter/game/GameFragment.java similarity index 96% rename from app/src/main/java/com/gh/gamecenter/plugin/PluginFragment.java rename to app/src/main/java/com/gh/gamecenter/game/GameFragment.java index 6245845d06..c7276c6e87 100644 --- a/app/src/main/java/com/gh/gamecenter/plugin/PluginFragment.java +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragment.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.plugin; +package com.gh.gamecenter.game; import android.content.Context; import android.content.Intent; @@ -57,7 +57,7 @@ import de.greenrobot.event.EventBus; * @email 294299195@qq.com * @date 2015-8-8 主页fragment3页面 */ -public class PluginFragment extends Fragment implements OnClickListener, +public class GameFragment extends Fragment implements OnClickListener, OnPageChangeListener { private View view, slideLine; @@ -77,8 +77,7 @@ public class PluginFragment extends Fragment implements OnClickListener, super.onCreate(savedInstanceState); - view = View.inflate(getActivity(), R.layout.plugin_container_fragments, - null); + view = View.inflate(getActivity(), R.layout.plugin_container_fragments, null); SharedPreferences sp = getActivity().getSharedPreferences( Config.PREFERENCE, Context.MODE_PRIVATE); @@ -145,7 +144,7 @@ public class PluginFragment extends Fragment implements OnClickListener, handler.postDelayed(new Runnable() { @Override public void run() { - EventBus.getDefault().post(new EBUISwitch("PluginFragment", viewPager.getCurrentItem())); + EventBus.getDefault().post(new EBUISwitch("GameFragment", viewPager.getCurrentItem())); } }, 100); } @@ -389,7 +388,6 @@ public class PluginFragment extends Fragment implements OnClickListener, jingpinText.setTextColor(getResources().getColor(R.color.theme_colors)); zuixinText.setTextColor(0xFF333333); danjiText.setTextColor(0xFF333333); -// EventBus.getDefault().post(new EBUISwitch("PluginFragment", 0)); } else if (position == 1) { jingpinText.setClickable(true); zuixinText.setClickable(false); @@ -397,7 +395,6 @@ public class PluginFragment extends Fragment implements OnClickListener, jingpinText.setTextColor(0xFF333333); zuixinText.setTextColor(getResources().getColor(R.color.theme_colors)); danjiText.setTextColor(0xFF333333); -// EventBus.getDefault().post(new EBUISwitch("PluginFragment", 1)); } else if (position == 2) { jingpinText.setClickable(true); zuixinText.setClickable(true); @@ -405,7 +402,6 @@ public class PluginFragment extends Fragment implements OnClickListener, jingpinText.setTextColor(0xFF333333); zuixinText.setTextColor(0xFF333333); danjiText.setTextColor(getResources().getColor(R.color.theme_colors)); -// EventBus.getDefault().post(new EBUISwitch("PluginFragment", 2)); } } @@ -419,7 +415,7 @@ public class PluginFragment extends Fragment implements OnClickListener, if (currentItem != viewPager.getCurrentItem()) { currentItem = viewPager.getCurrentItem(); Utils.log("currentItem = " + currentItem); - EventBus.getDefault().post(new EBUISwitch("PluginFragment", currentItem)); + EventBus.getDefault().post(new EBUISwitch("GameFragment", currentItem)); } } } @@ -433,8 +429,7 @@ public class PluginFragment extends Fragment implements OnClickListener, if ("MainActivity".equals(busNine.getFrom())) { if (busNine.getPosition() == 1) { EventBus.getDefault().post( - new EBUISwitch("PluginFragment", viewPager - .getCurrentItem())); + new EBUISwitch("GameFragment", viewPager.getCurrentItem())); } } } @@ -462,7 +457,6 @@ public class PluginFragment extends Fragment implements OnClickListener, @Override public void onHiddenChanged(boolean hidden) { - super.onHiddenChanged(hidden); FragmentTransaction transaction = getChildFragmentManager() .beginTransaction(); @@ -485,7 +479,6 @@ public class PluginFragment extends Fragment implements OnClickListener, @Override public void onDestroy() { - super.onDestroy(); EventBus.getDefault().unregister(this); view = null; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetails/GameInformationFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetails/GameInformationFragment.java index e4fa22644c..9b1d0f7279 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetails/GameInformationFragment.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetails/GameInformationFragment.java @@ -665,8 +665,7 @@ public class GameInformationFragment extends Fragment { } @Override - public void onBindViewHolder(GameInformationViewHolder viewHolder, - int position) { + public void onBindViewHolder(GameInformationViewHolder viewHolder, int position) { if (!isNull && position == 2) { if (currentPosition == -1) { viewHolder.item_et_search.setText(keyword); diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeFragment.java b/app/src/main/java/com/gh/gamecenter/home/HomeFragment.java deleted file mode 100644 index 645faadb70..0000000000 --- a/app/src/main/java/com/gh/gamecenter/home/HomeFragment.java +++ /dev/null @@ -1,624 +0,0 @@ -package com.gh.gamecenter.home; - -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.graphics.Rect; -import android.os.Build; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.util.ArrayMap; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.text.TextUtils; -import android.util.Log; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.LinearLayout; -import android.widget.LinearLayout.LayoutParams; -import android.widget.PopupWindow; -import android.widget.RelativeLayout; -import android.widget.TextView; - -import com.gh.base.AppController; -import com.gh.common.constant.Config; -import com.gh.common.constant.Constants; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.DownloadItemUtils; -import com.gh.common.view.VerticalItemDecoration; -import com.gh.download.DataWatcher; -import com.gh.download.DownloadEntry; -import com.gh.download.DownloadManager; -import com.gh.gamecenter.ConcernActivity; -import com.gh.gamecenter.DownloadManagerActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.SearchActivity; -import com.gh.gamecenter.SettingActivity; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.DismissEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.eventbus.EBDownloadDelete; -import com.gh.gamecenter.eventbus.EBNetworkState; -import com.gh.gamecenter.eventbus.EBPWDismiss; -import com.gh.gamecenter.eventbus.EBPackage; -import com.gh.gamecenter.eventbus.EBRedDot; -import com.gh.gamecenter.eventbus.EBTopState; -import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.manager.DataCollectionManager; -import com.gh.gamecenter.manager.PackageManager; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.LinkedBlockingQueue; - -import de.greenrobot.event.EventBus; - -/** - * - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-8 - * @update 2015-8-11 - * @des 主页fragment页面 - */ -public class HomeFragment extends Fragment implements OnClickListener { - - private View view; - private RecyclerView recyclerview; - private HomeFragmentAdapter adapter; - private TextView downloadHint, searchHint; - private LinearLayout reuse_no_connection; - - // 黄壮华 添加 记录信息的map 修改2015/8/19 - private ArrayMap locationMap; - private ArrayMap> gameMap; - private ArrayMap> platformMap; - private ArrayMap nameMap; - - private boolean isEverpause; - private boolean isDestroy = false; - - private int currentItem = 0; - - private String hint; - - private ArrayMap statusMap; - - private DismissEntity dismissEntity; - - private PopupWindow popWindow; - - private Handler handler = new Handler() { - @Override - public void handleMessage(Message msg) { - if (!isDestroy) { - if (msg.what == Constants.DOWNLOAD_ROLL) { - String name = (String) msg.obj; - if (platformMap != null) { - LinkedBlockingQueue queue = platformMap - .get(name); - if (queue.size() > 1) { - queue.offer(queue.poll()); - Message msg2 = Message.obtain(); - msg2.obj = name; - msg2.what = Constants.DOWNLOAD_ROLL; - sendMessageDelayed(msg2, 3000); - } - } - } - } - } - }; - - // 黄壮华 添加观察者 修改2015/8/19 - private DataWatcher dataWatcher = new DataWatcher() { - - @Override - public void onDataChanged( - HashMap downloadingEntries) { - for (Map.Entry entry : downloadingEntries - .entrySet()) { - DownloadEntry downloadEntry = entry.getValue(); - - Integer location = locationMap.get(downloadEntry.getName()); - if (location != null) { - int index = location.intValue(); - Log.e("index",index+""); - GameEntity detailedEntity = getEntityByLocation(index); - - if (detailedEntity != null) { - DownloadItemUtils.processDate(detailedEntity, - downloadEntry, platformMap, handler, adapter, - index, statusMap); - } - } - } - } - }; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - - super.onCreate(savedInstanceState); - - view = View.inflate(getActivity(), R.layout.home1_fragment, null); - - SharedPreferences sp = getActivity().getSharedPreferences( - Config.PREFERENCE, Context.MODE_PRIVATE); - - LinearLayout home_actionbar = (LinearLayout) view - .findViewById(R.id.home_actionbar); - LayoutParams lparams = new LayoutParams( - LayoutParams.MATCH_PARENT, sp.getInt("actionbar_height", - DisplayUtils.dip2px(getActivity(), 48))); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - int top = DisplayUtils.getInternalDimensionSize(getResources(), - "status_bar_height"); - home_actionbar.setPadding(0, top, 0, 0); - lparams.height += top; - } - - home_actionbar.setLayoutParams(lparams); - - initActionBar(); - - statusMap = new ArrayMap(); - locationMap = new ArrayMap(); - gameMap = new ArrayMap>(); - platformMap = new ArrayMap>(); - nameMap = new ArrayMap(); - - dismissEntity = new DismissEntity(false); - - isEverpause = false; - - recyclerview = (RecyclerView) view.findViewById(R.id.home_list); - recyclerview.setHasFixedSize(true); - LinearLayoutManager llm = new LinearLayoutManager(getActivity()); - llm.setOrientation(LinearLayoutManager.VERTICAL); - recyclerview.setLayoutManager(llm); - - // 黄壮华 添加 初始化游戏状态 修改2015/8/21 - DownloadItemUtils.initializeGameMap(getActivity(), gameMap); - - reuse_no_connection = (LinearLayout) view - .findViewById(R.id.reuse_no_connection); - reuse_no_connection.setOnClickListener(this); - - adapter = new HomeFragmentAdapter(getActivity(), gameMap, locationMap, - nameMap, platformMap, reuse_no_connection, recyclerview, - statusMap, dismissEntity); - recyclerview.setAdapter(adapter); - - recyclerview.addItemDecoration(new VerticalItemDecoration( - getActivity(), 1)); - - EventBus.getDefault().register(this); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); - } - return view; - } - - private void initActionBar() { - view.findViewById(R.id.actionbar_rl_download).setOnClickListener(this); - - view.findViewById(R.id.actionbar_iv_search).setOnClickListener(this); - - if (Config.isShow) { - view.findViewById(R.id.actionbar_rl_download).setVisibility( - View.VISIBLE); - } else { - view.findViewById(R.id.actionbar_rl_download).setVisibility( - View.GONE); - } - - downloadHint = (TextView) view.findViewById(R.id.action_tip); - int updateSize = PackageManager.getUpdateListSize(); - int downloadSize = DownloadManager.getInstance(getActivity()).getAll() - .size(); - if (downloadSize != 0) { - downloadHint.setVisibility(View.VISIBLE); - downloadHint.setText(downloadSize + ""); - int width = DisplayUtils.dip2px(getActivity(), 12); - RelativeLayout.LayoutParams rparams = new RelativeLayout.LayoutParams( - width, width); - rparams.topMargin = DisplayUtils.dip2px(getActivity(), 8); - rparams.rightMargin = DisplayUtils.dip2px(getActivity(), 2); - rparams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); - downloadHint.setLayoutParams(rparams); - } else if (updateSize != 0) { - downloadHint.setText(""); - int width = DisplayUtils.dip2px(getActivity(), 10); - RelativeLayout.LayoutParams rparams = new RelativeLayout.LayoutParams( - width, width); - rparams.topMargin = DisplayUtils.dip2px(getActivity(), 8); - rparams.rightMargin = DisplayUtils.dip2px(getActivity(), 3); - rparams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); - downloadHint.setLayoutParams(rparams); - } else { - downloadHint.setVisibility(View.GONE); - } - - searchHint = (TextView) view.findViewById(R.id.actionbar_search_input); - searchHint.setOnClickListener(this); - - view.findViewById(R.id.actionbar_notification).setOnClickListener(this); - - view.findViewById(R.id.actionbar_overflow).setOnClickListener(this); - } - - @Override - public void onClick(View v) { - final int id = v.getId(); - if (id == R.id.actionbar_notification) { - DataUtils.onEvent(getActivity(), "主页", "关注图标"); - - Map map = new HashMap(); - map.put("location", "关注图标"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(getActivity(), "click-item", map); - - startActivity(new Intent(getActivity(), ConcernActivity.class)); - } else if (id == R.id.actionbar_rl_download) { - DataUtils.onEvent(getActivity(), "主页", "下载图标"); - - Map map = new HashMap(); - map.put("location", "下载图标"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(getActivity(), "click-item", map); - - if (downloadHint != null - && downloadHint.getVisibility() == View.VISIBLE) { - downloadHint.setVisibility(View.GONE); - EventBus.getDefault().post(new EBTopState("隐藏", null)); - } - startActivity(new Intent(getActivity(), - DownloadManagerActivity.class)); - } else if (id == R.id.actionbar_search_input) { - DataUtils.onEvent(getActivity(), "主页", "搜索框"); - - Map map = new HashMap(); - map.put("location", "搜索框"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(getActivity(), "click-item", map); - - 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(), "主页", "搜索图标"); - - Map map = new HashMap(); - map.put("location", "搜索图标"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(getActivity(), "click-item", map); - - Intent searchIntent = new Intent(getActivity(), - SearchActivity.class); - searchIntent.putExtra("clicked", true); - searchIntent.putExtra("hint", hint); - startActivity(searchIntent); - } else if (id == R.id.actionbar_overflow) { - DataUtils.onEvent(getActivity(), "主页", "更多图标"); - - Map map = new HashMap(); - map.put("location", "更多图标"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(getActivity(), "click-item", map); - - popUpOverflow(v); - } else if (id == R.id.menu_rl_set) { - popWindow.dismiss(); - startActivity(new Intent(getActivity(), SettingActivity.class)); - } else if (id == R.id.reuse_no_connection) { - reuse_no_connection.setVisibility(View.GONE); - recyclerview.setVisibility(View.VISIBLE); - adapter = new HomeFragmentAdapter(getActivity(), gameMap, - locationMap, nameMap, platformMap, reuse_no_connection, - recyclerview, statusMap, - dismissEntity); - recyclerview.setAdapter(adapter); - } - } - - public void updateRedDot(int type) { - int downloadSize = DownloadManager.getInstance(getActivity()).getAll() - .size(); - if (type == 1 && downloadSize == 0) { - downloadHint.setVisibility(View.VISIBLE); - downloadHint.setText((downloadSize + type) + ""); - int width = DisplayUtils.dip2px(getActivity(), 12); - RelativeLayout.LayoutParams rparams = new RelativeLayout.LayoutParams( - width, width); - rparams.topMargin = DisplayUtils.dip2px(getActivity(), 8); - rparams.rightMargin = DisplayUtils.dip2px(getActivity(), 2); - rparams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); - downloadHint.setLayoutParams(rparams); - } else if (type == -1 && (downloadSize == 0 || downloadSize == 1)) { - int updateSize = PackageManager.getUpdateList().size(); - if (updateSize != 0) { - downloadHint.setVisibility(View.VISIBLE); - downloadHint.setText(""); - int width = DisplayUtils.dip2px(getActivity(), 10); - RelativeLayout.LayoutParams rparams = new RelativeLayout.LayoutParams( - width, width); - rparams.topMargin = DisplayUtils.dip2px(getActivity(), 8); - rparams.rightMargin = DisplayUtils.dip2px(getActivity(), 3); - rparams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); - downloadHint.setLayoutParams(rparams); - } else { - downloadHint.setVisibility(View.GONE); - } - } else if (downloadSize != 0) { - downloadHint.setVisibility(View.VISIBLE); - downloadHint.setText((downloadSize + type) + ""); - } - } - - private void popUpOverflow(View view) { - - Rect frame = new Rect(); - getActivity().getWindow().getDecorView() - .getWindowVisibleDisplayFrame(frame); - - int xOffset = DisplayUtils.dip2px(getActivity(), 5); - int yOffset = frame.top + DisplayUtils.dip2px(getActivity(), 48) - + xOffset; - - View popView = View.inflate(getActivity(), R.layout.menu_popwindow, - null); - popView.findViewById(R.id.menu_rl_set).setOnClickListener(this); - popWindow = new PopupWindow(popView, LayoutParams.WRAP_CONTENT, - LayoutParams.WRAP_CONTENT, true); - - popWindow.setOutsideTouchable(true); - popWindow.setAnimationStyle(android.R.style.Animation_Dialog); - popWindow.setBackgroundDrawable(getResources().getDrawable( - R.drawable.shape)); - - popWindow.showAtLocation(view, Gravity.TOP | Gravity.RIGHT, xOffset, - yOffset); - - } - - public void onEventMainThread(EBPWDismiss dismiss) { - if (dismissEntity != null) { - dismissEntity.setShow(false); - } - } - - public void onEventMainThread(EBDownloadDelete busThree) { - LinkedBlockingQueue queue = platformMap.get(busThree.getName()); - if (queue != null) { - queue.remove(busThree.getPlatform()); - platformMap.put(busThree.getName(), queue); - } - boolean isRemove = false; - for (GameEntity detailedEntity : adapter.getZuixinchajianList()) { - if (detailedEntity.getName().equals(busThree.getName())) { - if (TextUtils.isEmpty(busThree.getPlatform())) { - detailedEntity.getEntryMap().remove("官方版"); - } else { - detailedEntity.getEntryMap().remove(busThree.getPlatform()); - } - isRemove = true; - break; - } - } - if (!isRemove) { - for (GameEntity detailedEntity : adapter.getRemenkapaiList()) { - if (detailedEntity.getName().equals(busThree.getName())) { - if (TextUtils.isEmpty(busThree.getPlatform())) { - detailedEntity.getEntryMap().remove("官方版"); - } else { - detailedEntity.getEntryMap().remove( - busThree.getPlatform()); - } - isRemove = true; - break; - } - } - } - if (!isRemove) { - for (GameEntity detailedEntity : adapter.getXincekapaiList()) { - if (detailedEntity.getName().equals(busThree.getName())) { - if (TextUtils.isEmpty(busThree.getPlatform())) { - detailedEntity.getEntryMap().remove("官方版"); - } else { - detailedEntity.getEntryMap().remove( - busThree.getPlatform()); - } - isRemove = true; - break; - } - } - } - Integer location = locationMap.get(busThree.getName()); - if (location != null) { - adapter.notifyItemChanged(location.intValue()); - } - } - - public void onEventMainThread(EBTopState busTen) { - if ("搜索".equals(busTen.getType())) { - hint = busTen.getSearchHint(); - searchHint.setHint(busTen.getSearchHint()); - } else if ("显示".equals(busTen.getType())) { - if (downloadHint != null) { - downloadHint.setVisibility(View.VISIBLE); - } - } else { - if (downloadHint != null) { - downloadHint.setVisibility(View.GONE); - } - } - } - - public void onEventMainThread(EBRedDot busEight) { - updateRedDot(busEight.getType()); - } - - public void onEventMainThread(EBNetworkState busNetworkState) { - if (busNetworkState.isNetworkConnected() - && reuse_no_connection.getVisibility() == View.VISIBLE) { - reuse_no_connection.setVisibility(View.GONE); - recyclerview.setVisibility(View.VISIBLE); - adapter = new HomeFragmentAdapter(getActivity(), gameMap, - locationMap, nameMap, platformMap, reuse_no_connection, - recyclerview, statusMap, - dismissEntity); - recyclerview.setAdapter(adapter); - } - } - - public void onEventMainThread(EBUISwitch busNine) { - if ("MainActivity".equals(busNine.getFrom())) { - currentItem = busNine.getPosition(); - if (busNine.getPosition() == 0) { - adapter.startAutoScroll(); - } else { - adapter.stopAutoScroll(); - statusMap.clear(); - } - } - } - - public void onEventMainThread(EBPackage busFour) { - String name = nameMap.get(busFour.getPackageName()); - if (name != null) { - int location = locationMap.get(name).intValue(); - if ("安装".equals(busFour.getType())) { - GameEntity detailedEntity = getEntityByLocation(location); - for (ApkEntity apkEntity : detailedEntity.getApk()) { - if (apkEntity.getPackageName().equals( - busFour.getPackageName())) { - if (detailedEntity.getEntryMap() != null) { - detailedEntity.getEntryMap().remove( - apkEntity.getPlatform()); - adapter.notifyItemChanged(location); - return; - } - } - } - } else if ("卸载".equals(busFour.getType())) { - adapter.notifyItemChanged(location); - } - } - } - - private GameEntity getEntityByLocation(int location) { - GameEntity entity = null; - if (location > adapter.getPosition_zuixinchajian() - && location <= adapter.getZuixinchajianListSize() - + adapter.getPosition_zuixinchajian()) { - entity = adapter.getZuixinchajianList().get( - location - adapter.getPosition_zuixinchajian() - 1); - } else if (location > adapter.getPosition_remenkapai() - && location <= adapter.getRemenkapaiListSize() - + adapter.getPosition_remenkapai()) { - entity = adapter.getRemenkapaiList().get( - location - adapter.getPosition_remenkapai() - 1); - } else if (location > adapter.getPosition_xincekapai() - && location <= adapter.getXincekapaiListSize() - + adapter.getPosition_xincekapai()) { - entity = adapter.getXincekapaiList().get( - location - adapter.getPosition_xincekapai() - 1); - } - return entity; - } - - @Override - public void onResume() { - - super.onResume(); - if (isEverpause) { - // 黄壮华 添加 初始化游戏状态 修改2015/8/20 - DownloadItemUtils.initializeGameMap(getActivity(), gameMap); - List zList = new ArrayList(); - if (adapter.getZuixinchajianList() != null) { - for (GameEntity entity : adapter.getZuixinchajianList()) { - entity.setEntryMap(gameMap.get(entity.getName())); - zList.add(entity); - } - } - List rList = new ArrayList(); - if (adapter.getRemenkapaiList() != null) { - for (GameEntity entity : adapter.getRemenkapaiList()) { - entity.setEntryMap(gameMap.get(entity.getName())); - rList.add(entity); - } - } - List xList = new ArrayList(); - if (adapter.getXincekapaiList() != null) { - for (GameEntity entity : adapter.getXincekapaiList()) { - entity.setEntryMap(gameMap.get(entity.getName())); - xList.add(entity); - } - } - adapter.setList(zList, rList, xList); - } - isEverpause = false; - DownloadManager.getInstance(getActivity()).addObserver(dataWatcher); - if (currentItem == 0) { - adapter.startAutoScroll(); - } - } - - @Override - public void onPause() { - super.onPause(); - isEverpause = true; - statusMap.clear(); - DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher); - if (currentItem == 0) { - adapter.stopAutoScroll(); - } - } - - @Override - public void onDestroy() { - - super.onDestroy(); - isDestroy = true; - AppController.canclePendingRequests(HomeFragment.class); - EventBus.getDefault().unregister(this); - view = null; - recyclerview = null; - adapter = null; - downloadHint = null; - searchHint = null; - reuse_no_connection = null; - locationMap = null; - gameMap = null; - platformMap = null; - nameMap = null; - hint = null; - statusMap = null; - dismissEntity = null; - popWindow = null; - handler = null; - dataWatcher = null; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.java deleted file mode 100644 index f8cdbea458..0000000000 --- a/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.java +++ /dev/null @@ -1,2393 +0,0 @@ -package com.gh.gamecenter.home; - -import android.content.Context; -import android.content.Intent; -import android.net.Uri; -import android.support.v4.app.FragmentActivity; -import android.support.v4.util.ArrayMap; -import android.support.v4.view.ViewPager; -import android.support.v7.widget.RecyclerView; -import android.text.TextUtils; -import android.util.DisplayMetrics; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.ImageView.ScaleType; -import android.widget.LinearLayout; -import android.widget.LinearLayout.LayoutParams; -import android.widget.ProgressBar; -import android.widget.TextView; -import android.widget.Toast; - -import com.android.volley.NoConnectionError; -import com.android.volley.Response; -import com.android.volley.TimeoutError; -import com.android.volley.VolleyError; -import com.gh.base.AppController; -import com.gh.common.constant.Config; -import com.gh.common.constant.Constants; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.DownloadItemUtils; -import com.gh.common.util.GameViewUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.NewsUtils; -import com.gh.common.util.RandomUtils; -import com.gh.common.util.TimestampUtils; -import com.gh.common.view.AutoScrollViewPager; -import com.gh.download.DownloadEntry; -import com.gh.gamecenter.GameActivity; -import com.gh.gamecenter.GameDetailsActivity; -import com.gh.gamecenter.HotCardActivity; -import com.gh.gamecenter.NewsOrRaidersActivity; -import com.gh.gamecenter.OriginalActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.RecyclingPagerAdapter; -import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -import com.gh.gamecenter.db.info.ConcernInfo; -import com.gh.gamecenter.db.info.GameInfo; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.DismissEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.entity.NewsEntity; -import com.gh.gamecenter.eventbus.EBSkipNewPlugin; -import com.gh.gamecenter.manager.ConcernManager; -import com.gh.gamecenter.manager.DataCollectionManager; -import com.gh.gamecenter.manager.GameManager; -import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; - -import org.json.JSONArray; - -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.concurrent.LinkedBlockingQueue; - -import de.greenrobot.event.EventBus; - -/** - * - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-8 - * @update 2015-8-20 - * @des 首页fragment适配器 - */ - -/** - * - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-8 - * @update 2015-8-20 - * @des 首页fragment适配器 - */ -public class HomeFragmentAdapter extends - RecyclerView.Adapter { - - private FragmentActivity activity; - private Context context; - private LayoutInflater layoutInflater; - - private class ITEM_TYPE { - public static final int navigation = 0;// 导航栏布局 - public static final int head = 1;// 首部简介布局 - public static final int news_image_type1 = 2;// 图片新闻类型 - public static final int news_image_type2 = 3;// 图片新闻类型 - public static final int news_text_type = 4;// 标题新闻类型 - public static final int game_type1 = 5; - public static final int game_type2 = 6; - public static final int loading = 7; - } - - private int position_kapaitoutiao = -1;// 卡牌头条版块的position - private int position_zuixinchajian = -1;// 最新插件版块的position - private int position_yuedujingxuan = -1;// 阅读精选版块的position - private int position_remenkapai = -1;// 热门卡牌版块的position - private int position_kapaigonglue = -1;// 卡牌攻略版块的position - private int position_xincekapai = -1;// 新测头条版块的position - - private int kapaitoutiaoSize = 0; - private List shoulanKapaitoutiaoList; - private List cilanKapaitoutiaoList; - private List zuixinchajianList; - private List yuedujingxuanList; - private List remenkapaiList; - private List kapaigonglueList; - private List xincekapaiList; - - private List allKapaigonglueList; - private List allNewsList; - private List concernList; - private ArrayMap> allKapaigonglueMap; - - // 黄壮华 获取引用 修改2015/8/19 - private ArrayMap> gameMap; - private ArrayMap locationMap; - private ArrayMap nameMap; - private ArrayMap> platformMap; - - private RecyclerView recyclerview; - private LinearLayout reuse_no_connection; - - private int flag; - private int width; - - private boolean isRemove; - - private ArrayMap statusMap; - - private DismissEntity dismissEntity; - - public HomeFragmentAdapter(FragmentActivity act, - ArrayMap> gMap, - ArrayMap lMap, ArrayMap nMap, - ArrayMap> pMap, - LinearLayout linearLayout, RecyclerView recyclerview, - ArrayMap sMap, DismissEntity dEntity) { - - flag = 6; - isRemove = false; - - shoulanKapaitoutiaoList = new ArrayList(); - cilanKapaitoutiaoList = new ArrayList(); - zuixinchajianList = new ArrayList(); - yuedujingxuanList = new ArrayList(); - remenkapaiList = new ArrayList(); - kapaigonglueList = new ArrayList(); - xincekapaiList = new ArrayList(); - - // 黄壮华 获取引用 修改2015/8/19 - statusMap = sMap; - gameMap = gMap; - locationMap = lMap; - nameMap = nMap; - platformMap = pMap; - - dismissEntity = dEntity; - - reuse_no_connection = linearLayout; - this.recyclerview = recyclerview; - - activity = act; - context = act; - layoutInflater = LayoutInflater.from(act); - - DisplayMetrics outMetrics = new DisplayMetrics(); - activity.getWindowManager().getDefaultDisplay().getMetrics(outMetrics); - width = outMetrics.widthPixels; - - initKapaitoutiao(); - - initZuixinchajian(); - - initYuedujingxuan(); - - initRemenkapai(); - - initKapaigonglue(); - - initXincekapai(); - } - - public void initKapaitoutiao() { - JsonArrayExtendedRequest kapaitoutiaoRequest = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d45/index/kapaitoutiao", Constants.NEWS_CD), - new Response.Listener() { - @Override - public void onResponse(JSONArray response) { - Type listType = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - List list = gson.fromJson( - response.toString(), listType); - for (int i = 0; i < list.size(); i++) { - if (list.get(i).getThumb() != null) { - shoulanKapaitoutiaoList.add(list.get(i)); - } else { - cilanKapaitoutiaoList.add(list.get(i)); - } - } - kapaitoutiaoSize = cilanKapaitoutiaoList.size() - + (shoulanKapaitoutiaoList.isEmpty() ? 0 : 1); - refreshCounts(); - - if (flag != 1) { - flag--; - } else { - isRemove = true; - notifyItemRemoved(getItemCount()); - initLocationMap(); - } - } - - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - // 无网络连接和访问超时 - if (error.getClass().equals(NoConnectionError.class) - || error.getClass().equals(TimeoutError.class)) { - Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT) - .show(); - reuse_no_connection.setVisibility(View.VISIBLE); - recyclerview.setVisibility(View.GONE); - } - } - }); - AppController - .addToRequestQueue(kapaitoutiaoRequest, HomeFragment.class); - } - - private void initZuixinchajian() { - JsonArrayExtendedRequest zuixinchajianRequest = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d45/index/zuixinchajian", Constants.GAME_CD), - new Response.Listener() { - @Override - public void onResponse(JSONArray response) { - - GameManager manager = new GameManager(context); - initZuixinchajianList(response, manager); - } - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - - // 无网络连接和访问超时 - if (error.getClass().equals(NoConnectionError.class) - || error.getClass().equals(TimeoutError.class)) { - Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT) - .show(); - reuse_no_connection.setVisibility(View.VISIBLE); - recyclerview.setVisibility(View.GONE); - } - } - }); - AppController.addToRequestQueue(zuixinchajianRequest, - HomeFragment.class); - } - - private void initYuedujingxuan() { - JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d45/index/yuedujingxuan", Constants.NEWS_CD), - new Response.Listener() { - - @Override - public void onResponse(JSONArray response) { - Type listType = new TypeToken>() {}.getType(); - Gson gson = new Gson(); - yuedujingxuanList = gson.fromJson(response.toString(), listType); - - refreshCounts(); - - if (flag != 1) { - flag--; - } else { - isRemove = true; - notifyItemRemoved(getItemCount()); - initLocationMap(); - } - } - }, new Response.ErrorListener() { - - @Override - public void onErrorResponse(VolleyError error) { - // 无网络连接和访问超时 - if (error.getClass().equals(NoConnectionError.class) - || error.getClass().equals(TimeoutError.class)) { - Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT) - .show(); - reuse_no_connection.setVisibility(View.VISIBLE); - recyclerview.setVisibility(View.GONE); - } - } - }); - AppController.addToRequestQueue(request, HomeFragment.class); - } - - private void initRemenkapai() { - JsonArrayExtendedRequest remenkapaiRequest = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d45/index/remenkapai", Constants.GAME_CD), - new Response.Listener() { - @Override - public void onResponse(JSONArray response) { - - GameManager manager = new GameManager(context); - initRemenkapaiList(response, manager); - } - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - - // 无网络连接和访问超时 - if (error.getClass().equals(NoConnectionError.class) - || error.getClass().equals(TimeoutError.class)) { - Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT) - .show(); - reuse_no_connection.setVisibility(View.VISIBLE); - recyclerview.setVisibility(View.GONE); - } - } - }); - AppController.addToRequestQueue(remenkapaiRequest, HomeFragment.class); - } - - private void initXincekapai() { - JsonArrayExtendedRequest xincekapaiRequest = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d45/index/xincekapai", Constants.GAME_CD), - new Response.Listener() { - @Override - public void onResponse(JSONArray response) { - - GameManager manager = new GameManager(context); - initXincekapaiList(response, manager); - } - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - - // 无网络连接和访问超时 - if (error.getClass().equals(NoConnectionError.class) - || error.getClass().equals(TimeoutError.class)) { - Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT) - .show(); - reuse_no_connection.setVisibility(View.VISIBLE); - recyclerview.setVisibility(View.GONE); - } - } - }); - AppController.addToRequestQueue(xincekapaiRequest, HomeFragment.class); - } - - private void initKapaigonglue() { - ConcernManager concernManager = new ConcernManager(context); - List list = concernManager.getAllConcernBySort(); - if (list.size() > 5) { - concernList = new ArrayList(); - for (int i = 0; i < 3; i++) { - concernList.add(list.remove(0)); - } - int[] index = RandomUtils.getRandomArray(2, list.size()); - concernList.add(list.get(index[0])); - concernList.add(list.get(index[1])); - } else { - concernList = list; - } - - if (concernList.isEmpty()) { - getKaipaigonglueByUrl(); - } else { - getKaipaigonglueByList(); - } - - } - - private int count; - - private void getKaipaigonglueByList() { - allKapaigonglueList = new ArrayList(); - allKapaigonglueMap = new ArrayMap>(); - count = concernList.size(); - for (int i = 0, size = concernList.size(); i < size; i++) { - final int index = i; - JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp( - Config.HOST + "v1d45/game/" - + concernList.get(i).getId() - + "/news?limit=5&offset=0&type_group=" - + Uri.encode("攻略"), Constants.NEWS_CD), - new Response.Listener() { - @Override - public void onResponse(JSONArray response) { - - Gson gson = new Gson(); - Type listType = new TypeToken>() { - }.getType(); - List newsList = gson.fromJson( - response.toString(), listType); - if (!newsList.isEmpty()) { - allKapaigonglueMap.put(concernList.get(index) - .getGameName(), newsList); - allKapaigonglueList.addAll(newsList); - } - refresh(); - } - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - - // 无网络连接和访问超时 - if (error.getClass() - .equals(NoConnectionError.class) - || error.getClass().equals( - TimeoutError.class)) { - Toast.makeText(context, "网络错误", - Toast.LENGTH_SHORT).show(); - reuse_no_connection.setVisibility(View.VISIBLE); - recyclerview.setVisibility(View.GONE); - } - } - }); - AppController.addToRequestQueue(request, HomeFragment.class); - } - } - - private void refresh() { - if (count != 1) { - count--; - } else { - if (allKapaigonglueList.isEmpty() || allKapaigonglueList.size() < 5) { - getKaipaigonglueByUrl(); - } else { - if (allKapaigonglueList.size() > 5) { - ArrayMap> kapaigonglueMap = new ArrayMap>(); - Random random = new Random(System.currentTimeMillis()); - ArrayMap> map = new ArrayMap>(); - for (String key : allKapaigonglueMap.keySet()) { - List list = new ArrayList(); - for (NewsEntity entity : allKapaigonglueMap.get(key)) { - list.add(entity); - } - map.put(key, list); - } - int number = 0; - while (number < 5) { - for (int i = 0; i < concernList.size(); i++) { - List list = map.get(concernList.get(i) - .getGameName()); - if (list != null && !list.isEmpty() && number < 5) { - List entities = kapaigonglueMap - .get(concernList.get(i).getGameName()); - if (entities == null) { - entities = new ArrayList(); - kapaigonglueMap.put(concernList.get(i) - .getGameName(), entities); - } - entities.add(list.remove(random.nextInt(list.size()))); - number++; - if (number == 5) { - break; - } - } - } - } - for (int i = 0; i < concernList.size(); i++) { - List list = kapaigonglueMap.get(concernList - .get(i).getGameName()); - if (list != null && !list.isEmpty()) { - kapaigonglueList.addAll(list); - } - } - } else { - kapaigonglueList.addAll(allKapaigonglueList); - } - refreshCounts(); - if (flag != 1) { - flag--; - } else { - isRemove = true; - notifyItemRemoved(getItemCount()); - initLocationMap(); - } - } - } - } - - private void refreshCounts() { - - // 卡牌头条 - if (kapaitoutiaoSize != 0) { - position_kapaitoutiao = 1; - } - - // 最新插件 - if (zuixinchajianList != null && !zuixinchajianList.isEmpty()) { - if (position_kapaitoutiao != -1) { - position_zuixinchajian = position_kapaitoutiao - + kapaitoutiaoSize + 1; - } else { - position_zuixinchajian = 1; - } - } - - // 阅读精选 - if (yuedujingxuanList != null && !yuedujingxuanList.isEmpty()) { - if (position_kapaitoutiao != -1 && position_zuixinchajian != -1) { - position_yuedujingxuan = position_zuixinchajian - + zuixinchajianList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1) { - position_yuedujingxuan = position_kapaitoutiao - + kapaitoutiaoSize + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1) { - position_yuedujingxuan = position_zuixinchajian - + zuixinchajianList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1) { - position_yuedujingxuan = 1; - } - } - - // 热门卡牌 - if (remenkapaiList != null && !remenkapaiList.isEmpty()) { - if (position_kapaitoutiao != -1 && position_zuixinchajian != -1 - && position_yuedujingxuan != -1) { - position_remenkapai = position_yuedujingxuan + 1 + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1) { - position_remenkapai = position_kapaitoutiao + kapaitoutiaoSize - + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1) { - position_remenkapai = position_zuixinchajian - + zuixinchajianList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1) { - position_remenkapai = position_yuedujingxuan + 1 + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan != -1) { - position_remenkapai = position_yuedujingxuan + 1 + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1) { - position_remenkapai = position_yuedujingxuan + 1 + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1) { - position_remenkapai = position_zuixinchajian - + zuixinchajianList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1) { - position_remenkapai = 1; - } - } - - // 卡牌攻略 - if (kapaigonglueList != null && !kapaigonglueList.isEmpty()) { - if (position_kapaitoutiao != -1 && position_zuixinchajian != -1 - && position_yuedujingxuan != -1 - && position_remenkapai != -1) { - position_kapaigonglue = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1 - && position_remenkapai == -1) { - position_kapaigonglue = position_kapaitoutiao - + kapaitoutiaoSize + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1 - && position_remenkapai == -1) { - position_kapaigonglue = position_zuixinchajian - + zuixinchajianList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1 - && position_remenkapai == -1) { - position_kapaigonglue = position_yuedujingxuan + 1 + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1 - && position_remenkapai != -1) { - position_kapaigonglue = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1 - && position_remenkapai == -1) { - position_kapaigonglue = position_zuixinchajian - + zuixinchajianList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1 - && position_remenkapai == -1) { - position_kapaigonglue = position_yuedujingxuan + 1 + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1 - && position_remenkapai != -1) { - position_kapaigonglue = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan != -1 - && position_remenkapai == -1) { - position_kapaigonglue = position_yuedujingxuan + 1 + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1 - && position_remenkapai != -1) { - position_kapaigonglue = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1 - && position_remenkapai != -1) { - position_kapaigonglue = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan != -1 - && position_remenkapai == -1) { - position_kapaigonglue = position_yuedujingxuan + 1 + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1 - && position_remenkapai != -1) { - position_kapaigonglue = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1 - && position_remenkapai != -1) { - position_kapaigonglue = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan != -1 - && position_remenkapai != -1) { - position_kapaigonglue = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1 - && position_remenkapai == -1) { - position_kapaigonglue = 1; - } - } - - // 新测卡牌 - if (xincekapaiList != null && !xincekapaiList.isEmpty()) { - if (position_kapaitoutiao != -1 && position_zuixinchajian != -1 - && position_yuedujingxuan != -1 - && position_remenkapai != -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1 - && position_remenkapai == -1 && position_kapaigonglue == -1) { - position_xincekapai = position_kapaitoutiao + kapaitoutiaoSize - + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1 - && position_remenkapai == -1 && position_kapaigonglue == -1) { - position_xincekapai = position_zuixinchajian - + zuixinchajianList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1 - && position_remenkapai == -1 && position_kapaigonglue == -1) { - position_xincekapai = position_yuedujingxuan + 1 + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1 - && position_remenkapai != -1 && position_kapaigonglue == -1) { - position_xincekapai = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1 - && position_remenkapai == -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1 - && position_remenkapai == -1 && position_kapaigonglue == -1) { - position_xincekapai = position_zuixinchajian - + zuixinchajianList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1 - && position_remenkapai == -1 && position_kapaigonglue == -1) { - position_xincekapai = position_yuedujingxuan + 1 + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1 - && position_remenkapai != -1 && position_kapaigonglue == -1) { - position_xincekapai = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1 - && position_remenkapai == -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan != -1 - && position_remenkapai == -1 && position_kapaigonglue == -1) { - position_xincekapai = position_yuedujingxuan + 1 + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1 - && position_remenkapai != -1 && position_kapaigonglue == -1) { - position_xincekapai = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1 - && position_remenkapai == -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1 - && position_remenkapai != -1 && position_kapaigonglue == -1) { - position_xincekapai = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1 - && position_remenkapai == -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1 - && position_remenkapai != -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan != -1 - && position_remenkapai == -1 && position_kapaigonglue == -1) { - position_xincekapai = position_yuedujingxuan + 1 + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1 - && position_remenkapai != -1 && position_kapaigonglue == -1) { - position_xincekapai = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1 - && position_remenkapai != -1 && position_kapaigonglue == -1) { - position_xincekapai = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan != -1 - && position_remenkapai != -1 && position_kapaigonglue == -1) { - position_xincekapai = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1 - && position_remenkapai == -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1 - && position_remenkapai == -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan != -1 - && position_remenkapai == -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1 - && position_remenkapai != -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1 - && position_remenkapai != -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1 - && position_remenkapai != -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan != -1 - && position_remenkapai != -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan != -1 - && position_remenkapai != -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan == -1 - && position_remenkapai != -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan != -1 - && position_remenkapai == -1 && position_kapaigonglue != -1) { - position_xincekapai = position_kapaigonglue - + kapaigonglueList.size() + 1; - } else if (position_kapaitoutiao != -1 - && position_zuixinchajian != -1 - && position_yuedujingxuan != -1 - && position_remenkapai != -1 && position_kapaigonglue == -1) { - position_xincekapai = position_remenkapai - + remenkapaiList.size() + 1; - } else if (position_kapaitoutiao == -1 - && position_zuixinchajian == -1 - && position_yuedujingxuan == -1 - && position_remenkapai == -1 && position_kapaigonglue == -1) { - position_xincekapai = 1; - } - } - - notifyDataSetChanged(); - } - - protected void initXincekapaiList(JSONArray response, GameManager manager) { - Type listType = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - - // 黄壮华 初始化游戏状态 修改2015/8/19 - xincekapaiList = new ArrayList(); - List list = gson.fromJson(response.toString(), listType); - for (GameEntity entity : list) { - entity.setEntryMap(gameMap.get(entity.getName())); - xincekapaiList.add(entity); - if (entity.getApk() != null) { - for (ApkEntity apkEntity : entity.getApk()) { - manager.addOrUpdate(new GameInfo( - apkEntity.getPackageName(), entity.getId(), entity - .getName())); - } - } - } - - // 去除重复游戏 - for (int i = 0; i < xincekapaiList.size(); i++) { - String name = xincekapaiList.get(i).getName(); - for (int j = 0; j < remenkapaiList.size(); j++) { - if (name.equals(remenkapaiList.get(j).getName())) { - remenkapaiList.remove(j); - break; - } - } - } - - refreshCounts(); - if (flag != 1) { - flag--; - } else { - isRemove = true; - notifyItemRemoved(getItemCount()); - initLocationMap(); - } - } - - private void getKaipaigonglueByUrl() { - JsonArrayExtendedRequest kapaigonglueRequest = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp( - Config.HOST - + "v1d45/news?limit=20&offset=0&type_group=" - + Uri.encode("攻略"), Constants.NEWS_CD), - new Response.Listener() { - - @Override - public void onResponse(JSONArray response) { - - Type listType = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - allNewsList = gson.fromJson(response.toString(), - listType); - if (allKapaigonglueList == null - || allKapaigonglueList.isEmpty()) { - if (allNewsList.size() > 5) { - Random random = new Random(System - .currentTimeMillis()); - int[] index = new int[5]; - for (int i = 0; i < index.length; i++) { - if (i == 0) { - index[i] = random.nextInt(allNewsList - .size()); - } else { - index[i] = random(random, index, i, - allNewsList.size()); - } - } - for (int i = 0; i < index.length; i++) { - kapaigonglueList.add(allNewsList - .get(index[i])); - } - } else { - kapaigonglueList.addAll(allNewsList); - } - } else { - kapaigonglueList.addAll(allKapaigonglueList); - for (int i = 0; i < allKapaigonglueList.size(); i++) { - for (int j = 0; j < allNewsList.size(); j++) { - if (allKapaigonglueList.get(i).getId() - .equals(allNewsList.get(j).getId())) { - allNewsList.remove(j); - j--; - break; - } - } - } - if (allNewsList.size() > 5 - allKapaigonglueList - .size()) { - Random random = new Random(System - .currentTimeMillis()); - int[] index = new int[5 - allKapaigonglueList - .size()]; - for (int i = 0; i < index.length; i++) { - if (i == 0) { - index[i] = random.nextInt(allNewsList - .size()); - } else { - index[i] = random(random, index, i, - allNewsList.size()); - } - } - for (int i = 0; i < index.length; i++) { - kapaigonglueList.add(allNewsList - .get(index[i])); - } - } else { - kapaigonglueList.addAll(allNewsList); - } - } - refreshCounts(); - if (flag != 1) { - flag--; - } else { - isRemove = true; - notifyItemRemoved(getItemCount()); - initLocationMap(); - } - } - - }, new Response.ErrorListener() { - - @Override - public void onErrorResponse(VolleyError error) { - - } - }); - AppController - .addToRequestQueue(kapaigonglueRequest, HomeFragment.class); - } - - public List getKapaigonglueList() { - return kapaigonglueList; - } - - public void refreshKapaigonglueList() { - kapaigonglueList.clear(); - if (allKapaigonglueList == null || allKapaigonglueList.isEmpty()) { - if (allNewsList.size() > 5) { - int[] index = RandomUtils.getRandomArray(5, allNewsList.size()); - for (int i = 0; i < index.length; i++) { - kapaigonglueList.add(allNewsList.get(index[i])); - } - refreshCounts(); - } - } else if (allKapaigonglueList.size() < 5) { - if (allNewsList.size() > 5 - allKapaigonglueList.size()) { - kapaigonglueList.addAll(allKapaigonglueList); - int[] index = RandomUtils.getRandomArray(5 - allKapaigonglueList.size(), allNewsList.size()); - for (int i = 0; i < index.length; i++) { - kapaigonglueList.add(allNewsList.get(index[i])); - } - refreshCounts(); - } - } else { - ArrayMap> kapaigonglueMap = new ArrayMap>(); - Random random = new Random(System.currentTimeMillis()); - ArrayMap> map = new ArrayMap>(); - for (String key : allKapaigonglueMap.keySet()) { - List list = new ArrayList(); - for (NewsEntity entity : allKapaigonglueMap.get(key)) { - list.add(entity); - } - map.put(key, list); - } - int number = 0; - while (number < 5) { - for (int i = 0; i < concernList.size(); i++) { - List list = map.get(concernList.get(i) - .getGameName()); - if (list != null && !list.isEmpty() && number < 5) { - List entities = kapaigonglueMap - .get(concernList.get(i).getGameName()); - if (entities == null) { - entities = new ArrayList(); - kapaigonglueMap.put(concernList.get(i) - .getGameName(), entities); - } - entities.add(list.remove(random.nextInt(list.size()))); - number++; - if (number == 5) { - break; - } - } - } - } - for (int i = 0; i < concernList.size(); i++) { - List list = kapaigonglueMap.get(concernList.get(i) - .getGameName()); - if (list != null && !list.isEmpty()) { - kapaigonglueList.addAll(list); - } - } - refreshCounts(); - } - } - - private int random(Random random, int[] index, int i, int size) { - int seed = random.nextInt(size); - for (int j = 0; j < i; j++) { - if (index[j] == seed) { - return random(random, index, i, size); - } - } - return seed; - } - - protected void initRemenkapaiList(JSONArray response, GameManager manager) { - Type listType = new TypeToken>() {}.getType(); - Gson gson = new Gson(); - - // 黄壮华 初始化游戏状态 修改2015/8/19 - remenkapaiList = new ArrayList(); - List list = gson.fromJson(response.toString(), listType); - for (GameEntity entity : list) { - entity.setEntryMap(gameMap.get(entity.getName())); - remenkapaiList.add(entity); - for (ApkEntity apkEntity : entity.getApk()) { - manager.addOrUpdate(new GameInfo(apkEntity.getPackageName(), - entity.getId(), entity.getName())); - } - } - - // 去除重复游戏 - for (int i = 0; i < zuixinchajianList.size(); i++) { - String name = zuixinchajianList.get(i).getName(); - for (int j = 0; j < remenkapaiList.size(); j++) { - if (name.equals(remenkapaiList.get(j).getName())) { - remenkapaiList.remove(j); - break; - } - } - } - for (int i = 0; i < xincekapaiList.size(); i++) { - String name = xincekapaiList.get(i).getName(); - for (int j = 0; j < remenkapaiList.size(); j++) { - if (name.equals(remenkapaiList.get(j).getName())) { - remenkapaiList.remove(j); - break; - } - } - } - - refreshCounts(); - if (flag != 1) { - flag--; - } else { - isRemove = true; - notifyItemRemoved(getItemCount()); - initLocationMap(); - } - } - - protected void initZuixinchajianList(JSONArray response, GameManager manager) { - Type listType = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - - // 黄壮华 初始化游戏状态 修改2015/8/19 - zuixinchajianList = new ArrayList(); - List list = gson.fromJson(response.toString(), listType); - for (GameEntity entity : list) { - entity.setEntryMap(gameMap.get(entity.getName())); - zuixinchajianList.add(entity); - for (ApkEntity apkEntity : entity.getApk()) { - manager.addOrUpdate(new GameInfo(apkEntity.getPackageName(), - entity.getId(), entity.getName())); - } - } - - // 去除重复游戏 - for (int i = 0; i < zuixinchajianList.size(); i++) { - String name = zuixinchajianList.get(i).getName(); - for (int j = 0; j < remenkapaiList.size(); j++) { - if (name.equals(remenkapaiList.get(j).getName())) { - remenkapaiList.remove(j); - break; - } - } - } - - refreshCounts(); - if (flag != 1) { - flag--; - } else { - isRemove = true; - notifyItemRemoved(getItemCount()); - initLocationMap(); - } - } - - private void initLocationMap() { - locationMap.clear(); - GameEntity detailedEntity; - for (int i = 0, size = zuixinchajianList.size(); i < size; i++) { - detailedEntity = zuixinchajianList.get(i); - locationMap.put(detailedEntity.getName(), i - + position_zuixinchajian + 1); - for (ApkEntity apkEntity : detailedEntity.getApk()) { - nameMap.put(apkEntity.getPackageName(), - detailedEntity.getName()); - } - } - for (int i = 0, size = remenkapaiList.size(); i < size; i++) { - detailedEntity = remenkapaiList.get(i); - locationMap.put(detailedEntity.getName(), i + position_remenkapai - + 1); - for (ApkEntity apkEntity : detailedEntity.getApk()) { - nameMap.put(apkEntity.getPackageName(), - detailedEntity.getName()); - } - } - for (int i = 0, size = xincekapaiList.size(); i < size; i++) { - detailedEntity = xincekapaiList.get(i); - locationMap.put(detailedEntity.getName(), i + position_xincekapai - + 1); - for (ApkEntity apkEntity : detailedEntity.getApk()) { - nameMap.put(apkEntity.getPackageName(), - detailedEntity.getName()); - } - } - } - - @Override - public int getItemCount() { - int head = 0; - if (position_kapaitoutiao != -1) { - head++; - } - if (position_zuixinchajian != -1) { - head++; - } - if (position_yuedujingxuan != -1) { - head += 2; - } - if (position_remenkapai != -1) { - head++; - } - if (position_kapaigonglue != -1) { - head++; - } - if (position_xincekapai != -1) { - head++; - } - - if (isRemove) { - return 1 + head + kapaitoutiaoSize + zuixinchajianList.size() - + remenkapaiList.size() + kapaigonglueList.size() - + xincekapaiList.size(); - } else { - return 1 + head + kapaitoutiaoSize + zuixinchajianList.size() - + remenkapaiList.size() + kapaigonglueList.size() - + xincekapaiList.size() + 1; - } - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, - int viewType) { - if (viewType == ITEM_TYPE.navigation) { - return new NavigationViewHolder(layoutInflater.inflate( - R.layout.home_list_item_navigation, parent, false)); - } else if (viewType == ITEM_TYPE.head) { - return new HeadViewHolder(layoutInflater.inflate( - R.layout.home_list_item_head, parent, false)); - } else if (viewType == ITEM_TYPE.news_image_type1) { - return new ImageNewsTypeViewHolder(layoutInflater.inflate( - R.layout.home_autoscrollviewpager, parent, false)); - } else if (viewType == ITEM_TYPE.news_image_type2) { - View view = layoutInflater.inflate( - R.layout.home_autoscrollviewpager, parent, false); - ViewGroup.LayoutParams params = new ViewGroup.LayoutParams( - LayoutParams.MATCH_PARENT, DisplayUtils.dip2px(context, 92)); - view.setLayoutParams(params); - return new GenuineNewsTypeViewHolder(view); - } else if (viewType == ITEM_TYPE.news_text_type) { - return new TextNewsTypeViewHolder(layoutInflater.inflate( - R.layout.home_list_item_newsnormal_type, parent, false)); - } else if (viewType == ITEM_TYPE.game_type1) { - return new GameNormalViewHolder(layoutInflater.inflate( - R.layout.home_list_item_gamenormal_type, parent, false)); - } else if (viewType == ITEM_TYPE.game_type2) { - return new GameTestViewHolder(layoutInflater.inflate( - R.layout.home_list_item_gametest_type, parent, false)); - } else { - return new FooterViewHolder(layoutInflater.inflate( - R.layout.refresh_footerview, parent, false)); - } - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, - int position) { - if (viewHolder instanceof HeadViewHolder) { - ((HeadViewHolder) viewHolder).initViewHolder(position); - } else if (viewHolder instanceof ImageNewsTypeViewHolder) { - ((ImageNewsTypeViewHolder) viewHolder).initViewHolder(position); - } else if (viewHolder instanceof GenuineNewsTypeViewHolder) { - ((GenuineNewsTypeViewHolder) viewHolder).initViewHolder(position); - } else if (viewHolder instanceof TextNewsTypeViewHolder) { - ((TextNewsTypeViewHolder) viewHolder).initViewHolder(position); - } else if (viewHolder instanceof GameNormalViewHolder) { - ((GameNormalViewHolder) viewHolder).initViewHolder(position); - } else if (viewHolder instanceof GameTestViewHolder) { - ((GameTestViewHolder) viewHolder).initViewHolder(position); - } - } - - @Override - public int getItemViewType(int position) { - if (position == 0) - return ITEM_TYPE.navigation; - - if (position_kapaitoutiao != -1) { - // 卡牌头条有数据 - if (position == position_kapaitoutiao) { - return ITEM_TYPE.head; - } - if (shoulanKapaitoutiaoList.isEmpty()) { - if (position > position_kapaitoutiao - && position <= position_kapaitoutiao + kapaitoutiaoSize) { - return ITEM_TYPE.news_text_type; - } - } else { - if (position == position_kapaitoutiao + 1) { - return ITEM_TYPE.news_image_type1; - } - if (position > position_kapaitoutiao + 1 - && position <= position_kapaitoutiao + kapaitoutiaoSize) { - return ITEM_TYPE.news_text_type; - } - } - } - - if (position_zuixinchajian != -1) { - // 最新插件有数量 - if (position == position_zuixinchajian) { - return ITEM_TYPE.head; - } - if (position > position_zuixinchajian - && position <= position_zuixinchajian - + zuixinchajianList.size()) { - return ITEM_TYPE.game_type1; - } - } - - if (position_yuedujingxuan != -1) { - // 阅读精选有数据 - if (position == position_yuedujingxuan) { - return ITEM_TYPE.head; - } - if (position == position_yuedujingxuan + 1) { - return ITEM_TYPE.news_image_type2; - } - } - - if (position_remenkapai != -1) { - // 热门卡牌有数据 - if (position == position_remenkapai) { - return ITEM_TYPE.head; - } - if (position > position_remenkapai - && position <= position_remenkapai + remenkapaiList.size()) { - return ITEM_TYPE.game_type1; - } - } - - if (position_kapaigonglue != -1) { - // 卡牌攻略有数据 - if (position == position_kapaigonglue) { - return ITEM_TYPE.head; - } - if (position > position_kapaigonglue - && position <= position_kapaigonglue - + kapaigonglueList.size()) { - return ITEM_TYPE.news_text_type; - } - } - - if (position_xincekapai != -1) { - // 新测卡牌有数据 - if (position == position_xincekapai) { - return ITEM_TYPE.head; - } - if (position > position_xincekapai - && position <= position_xincekapai + xincekapaiList.size()) { - return ITEM_TYPE.game_type2; - } - } - return ITEM_TYPE.loading; - } - - public class NavigationViewHolder extends RecyclerView.ViewHolder { - public ImageView gameImg; - public ImageView newsImg; - public ImageView gonglueImg; - public ImageView databaseImg; - - public NavigationViewHolder(View v) { - super(v); - gameImg = (ImageView) v.findViewById(R.id.game_img); - newsImg = (ImageView) v.findViewById(R.id.news_img); - gonglueImg = (ImageView) v.findViewById(R.id.gonglue_img); - databaseImg = (ImageView) v.findViewById(R.id.database_img); - - gameImg.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - DataUtils.onEvent(context, "主页", "游戏栏目"); - - Map map = new HashMap(); - map.put("location", "游戏"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", map); - - Intent intent = new Intent(context, GameActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - newsImg.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - DataUtils.onEvent(context, "主页", "资讯栏目"); - - Map map = new HashMap(); - map.put("location", "资讯"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", map); - - Intent intent = new Intent(context, - NewsOrRaidersActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.putExtra("type", "资讯"); - context.startActivity(intent); - - } - }); - gonglueImg.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - DataUtils.onEvent(context, "主页", "攻略栏目"); - - Map map = new HashMap(); - map.put("location", "攻略"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", map); - - Intent intent = new Intent(context, - NewsOrRaidersActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.putExtra("type", "攻略"); - context.startActivity(intent); - } - }); - databaseImg.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - DataUtils.onEvent(context, "主页", "原创栏目"); - - Map map = new HashMap(); - map.put("location", "原创"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", map); - - Intent intent = new Intent(context, OriginalActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - } - } - - public class HeadViewHolder extends RecyclerView.ViewHolder { - public ImageView thumb; - public TextView title; - public LinearLayout link; - - public HeadViewHolder(View view) { - super(view); - this.thumb = (ImageView) view.findViewById(R.id.head_thumb); - this.title = (TextView) view.findViewById(R.id.head_title); - this.link = (LinearLayout) view.findViewById(R.id.head_link); - } - - public void initViewHolder(int position) { - if (position == position_kapaitoutiao) { - title.setText("卡牌头条"); - thumb.setBackgroundResource(R.drawable.home_kapaitoutiao); - link.setVisibility(View.VISIBLE); - link.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - DataUtils.onEvent(context, "更多>", "卡牌头条"); - - Map map = new HashMap(); - map.put("location", "卡牌头条-更多"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", - map); - - Intent intent = new Intent(context, - NewsOrRaidersActivity.class); - intent.putExtra("type", "资讯"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - } else if (position == position_zuixinchajian) { - title.setText("最新插件"); - thumb.setBackgroundResource(R.drawable.home_zuixinchajian); - link.setVisibility(View.VISIBLE); - link.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - DataUtils.onEvent(context, "更多>", "最新插件"); - - Map map = new HashMap(); - map.put("location", "最新插件-更多"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", - map); - - EventBus.getDefault().post(new EBSkipNewPlugin(0)); - } - }); - } else if (position == position_yuedujingxuan) { - title.setText("阅读精选"); - thumb.setBackgroundResource(R.drawable.home_yuedujingxuan); - link.setVisibility(View.VISIBLE); - link.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - DataUtils.onEvent(context, "更多>", "阅读精选"); - - Map map = new HashMap(); - map.put("location", "阅读精选-更多"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", map); - - Intent intent = new Intent(context, OriginalActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - } else if (position == position_remenkapai) { - title.setText("热门卡牌"); - thumb.setBackgroundResource(R.drawable.home_remenkapai); - link.setVisibility(View.VISIBLE); - link.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - DataUtils.onEvent(context, "更多>", "热门卡牌"); - - Map map = new HashMap(); - map.put("location", "热门卡牌-更多"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", - map); - - Intent intent = new Intent(context, - HotCardActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - } else if (position == position_kapaigonglue) { - title.setText("卡牌攻略"); - thumb.setBackgroundResource(R.drawable.home_kapaigonglue); - link.setVisibility(View.VISIBLE); - link.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - DataUtils.onEvent(context, "更多>", "卡牌攻略"); - - Map map = new HashMap(); - map.put("location", "卡牌攻略-更多"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", - map); - - Intent intent = new Intent(context, - NewsOrRaidersActivity.class); - intent.putExtra("type", "攻略"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - } else if (position == position_xincekapai) { - thumb.setBackgroundResource(R.drawable.home_xincekapai); - title.setText("新测卡牌"); - link.setVisibility(View.VISIBLE); - link.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - DataUtils.onEvent(context, "更多>", "新测卡牌"); - - Map map = new HashMap(); - map.put("location", "新测卡牌-更多"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", - map); - - Intent intent = new Intent(context, GameActivity.class); - intent.putExtra("tab", 1); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - } - } - } - - public class ImageNewsTypeViewHolder extends RecyclerView.ViewHolder { - private AutoScrollViewPager home_viewpager; - private LinearLayout home_viewpager_ll_hint; - - public ImageNewsTypeViewHolder(View v) { - super(v); - home_viewpager = (AutoScrollViewPager) v - .findViewById(R.id.home_viewpager); - home_viewpager_ll_hint = (LinearLayout) v - .findViewById(R.id.home_viewpager_ll_hint); - - autoScrollViewPager = home_viewpager; - } - - public void initViewHolder(int position) { - if (!shoulanKapaitoutiaoList.isEmpty()) { - int currentItem = 0; - if (home_viewpager.getAdapter() != null) { - currentItem = home_viewpager.getCurrentItem(); - } - home_viewpager_ll_hint.removeAllViews(); - for (int i = 0; i < shoulanKapaitoutiaoList.size(); i++) { - TextView tv = new TextView(context); - LayoutParams lparams = new LayoutParams( - DisplayUtils.dip2px(context, 8), - DisplayUtils.dip2px(context, 8)); - if (i != currentItem) { - tv.setBackgroundResource(R.drawable.oval_hint_up); - } else { - tv.setBackgroundResource(R.drawable.oval_hint_dn); - } - if (i != 0) { - lparams.leftMargin = DisplayUtils.dip2px(context, 5); - } - tv.setLayoutParams(lparams); - home_viewpager_ll_hint.addView(tv); - } - - home_viewpager.setAdapter(new AutoScrollViewPagerAdapter()); - home_viewpager - .addOnPageChangeListener(new ViewPager.OnPageChangeListener() { - - @Override - public void onPageSelected(int position) { - - for (int i = 0; i < home_viewpager_ll_hint - .getChildCount(); i++) { - TextView tv = (TextView) home_viewpager_ll_hint - .getChildAt(i); - if (i == position - % shoulanKapaitoutiaoList.size()) { - tv.setTextColor(0xffffffff); - tv.setBackgroundResource(R.drawable.oval_hint_dn); - } else { - tv.setTextColor(0xff333333); - tv.setBackgroundResource(R.drawable.oval_hint_up); - } - } - - } - - @Override - public void onPageScrolled(int position, - float positionOffset, - int positionOffsetPixels) { - - } - - @Override - public void onPageScrollStateChanged(int state) { - - } - }); - - home_viewpager.setCurrentItem(currentItem); - home_viewpager.setInterval(3000); - home_viewpager.startAutoScroll(); - } - } - - } - - public class AutoScrollViewPagerHolder { - - private ImageView news_thumb; - private TextView news_main_title, news_sub_title; - - public AutoScrollViewPagerHolder(View v) { - news_thumb = (ImageView) v.findViewById(R.id.news_thumb); - news_main_title = (TextView) v.findViewById(R.id.news_main_title); - news_sub_title = (TextView) v.findViewById(R.id.news_sub_title); - } - } - - public class AutoScrollViewPagerAdapter extends RecyclingPagerAdapter { - - @Override - public View getView(int position, View convertView, ViewGroup container) { - View view; - AutoScrollViewPagerHolder holder; - final int i = position % shoulanKapaitoutiaoList.size(); - final NewsEntity newsEntity = shoulanKapaitoutiaoList.get(i); - - if (convertView != null) { - view = convertView; - holder = (AutoScrollViewPagerHolder) convertView.getTag(); - } else { - view = View.inflate(context, - R.layout.home_list_item_newsimage_type, null); - holder = new AutoScrollViewPagerHolder(view); - view.setTag(holder); - } - if (TextUtils.isEmpty(newsEntity.getThumb())) { - holder.news_thumb.setImageResource(R.drawable.preload); - holder.news_thumb.setScaleType(ScaleType.CENTER_INSIDE); - } else { - ImageUtils.getInstance(context).display(newsEntity.getThumb(), - holder.news_thumb); - } - String title = newsEntity.getTitle(); - String key = null; - if (title.contains("》")) { - key = "》"; - } else if (title.contains(" ")) { - key = " "; - } - if (key != null) { - int index = title.indexOf(key); - String mainTitle = title.substring(0, index + 1); - String subTitle = title.substring(index + 1); - - int left = (mainTitle.length() - 2) - * DisplayUtils.sp2px(context, 16) - + DisplayUtils.dip2px(context, 4); - int right = DisplayUtils.sp2px(context, - shoulanKapaitoutiaoList.size() * 13); - int length = subTitle.length() - * DisplayUtils.sp2px(context, 16); - int max = width - right - DisplayUtils.sp2px(context, 96); - if (left + length > max) { - holder.news_sub_title.setGravity(Gravity.RIGHT); - LayoutParams lparams = new LayoutParams( - LayoutParams.MATCH_PARENT, - LayoutParams.WRAP_CONTENT); - lparams.rightMargin = right; - holder.news_sub_title.setLayoutParams(lparams); - } else { - holder.news_sub_title.setGravity(Gravity.LEFT); - LayoutParams lparams = new LayoutParams( - LayoutParams.MATCH_PARENT, - LayoutParams.WRAP_CONTENT); - lparams.leftMargin = left; - holder.news_sub_title.setLayoutParams(lparams); - } - - holder.news_main_title.setText(mainTitle); - holder.news_sub_title.setVisibility(View.VISIBLE); - holder.news_sub_title.setText(subTitle); - } else { - holder.news_main_title.setText(title); - holder.news_sub_title.setVisibility(View.GONE); - } - view.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - Map kv = new HashMap(); - kv.put("文章类型", newsEntity.getType()); - kv.put("入口", "主页-卡牌头条"); - DataUtils.onEvent(context, "文章阅读-资讯", newsEntity.getTitle(), kv); - - Map kv2 = new HashMap(); - kv2.put(newsEntity.getTitle(), "点击量"); - DataUtils.onEvent(context, "主页数据", "卡牌头条", kv2); - - Map kv3 = new HashMap(); - kv3.put("卡牌头条-首栏", i + ""); - DataUtils.onEvent(context, "主页数据", "位置数据", kv3); - - Map map = new HashMap(); - map.put("location", "卡牌头条-首栏"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("news", newsEntity.getTitle()); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", map); - - NewsUtils.startNewsActivity(context, newsEntity, "主页-卡牌头条"); - } - }); - return view; - } - - @Override - public int getCount() { - return Integer.MAX_VALUE; - } - - } - - public class GenuineNewsTypeViewHolder extends RecyclerView.ViewHolder { - private AutoScrollViewPager home_viewpager; - private LinearLayout home_viewpager_ll_hint; - - public GenuineNewsTypeViewHolder(View v) { - super(v); - home_viewpager = (AutoScrollViewPager) v - .findViewById(R.id.home_viewpager); - home_viewpager_ll_hint = (LinearLayout) v - .findViewById(R.id.home_viewpager_ll_hint); - - genuineNewsViewPager = home_viewpager; - } - - public void initViewHolder(int position) { - if (!yuedujingxuanList.isEmpty()) { - int currentItem = 0; - if (home_viewpager.getAdapter() != null) { - currentItem = home_viewpager.getCurrentItem(); - } - home_viewpager_ll_hint.removeAllViews(); - for (int i = 0; i < yuedujingxuanList.size(); i++) { - TextView tv = new TextView(context); - LayoutParams lparams = new LayoutParams( - DisplayUtils.dip2px(context, 8), - DisplayUtils.dip2px(context, 8)); - if (i != currentItem) { - tv.setBackgroundResource(R.drawable.oval_hint_up); - } else { - tv.setBackgroundResource(R.drawable.oval_hint_dn); - } - if (i != 0) { - lparams.leftMargin = DisplayUtils.dip2px(context, 5); - } - tv.setLayoutParams(lparams); - home_viewpager_ll_hint.addView(tv); - } - - home_viewpager.setAdapter(new GenuineNewsAdapter()); - home_viewpager - .addOnPageChangeListener(new ViewPager.OnPageChangeListener() { - - @Override - public void onPageSelected(int position) { - - for (int i = 0; i < home_viewpager_ll_hint - .getChildCount(); i++) { - TextView tv = (TextView) home_viewpager_ll_hint - .getChildAt(i); - if (i == position - % yuedujingxuanList.size()) { - tv.setTextColor(0xffffffff); - tv.setBackgroundResource(R.drawable.oval_hint_dn); - } else { - tv.setTextColor(0xff333333); - tv.setBackgroundResource(R.drawable.oval_hint_up); - } - } - - } - - @Override - public void onPageScrolled(int position, - float positionOffset, - int positionOffsetPixels) { - - } - - @Override - public void onPageScrollStateChanged(int state) { - - } - }); - - home_viewpager.setCurrentItem(currentItem); - home_viewpager.setInterval(6000); - home_viewpager.startAutoScroll(); - } - } - - } - - public class GenuineNewsHolder { - private ImageView genuinenews_thumb; - private TextView genuinenews_title, genuinenews_intro; - - public GenuineNewsHolder(View v) { - genuinenews_thumb = (ImageView) v - .findViewById(R.id.genuinenews_thumb); - genuinenews_title = (TextView) v - .findViewById(R.id.genuinenews_title); - genuinenews_intro = (TextView) v - .findViewById(R.id.genuinenews_intro); - } - } - - public class GenuineNewsAdapter extends RecyclingPagerAdapter { - - @Override - public View getView(int position, View convertView, ViewGroup container) { - View view; - GenuineNewsHolder holder; - final int i = position % yuedujingxuanList.size(); - final NewsEntity newsEntity = yuedujingxuanList.get(i); - - if (convertView != null) { - view = convertView; - holder = (GenuineNewsHolder) convertView.getTag(); - } else { - view = View.inflate(context, - R.layout.home_list_item_genuinenews_type, null); - holder = new GenuineNewsHolder(view); - view.setTag(holder); - } - - if (TextUtils.isEmpty(newsEntity.getThumb())) { - holder.genuinenews_thumb.setImageResource(R.drawable.preload); - holder.genuinenews_thumb.setScaleType(ScaleType.CENTER_INSIDE); - } else { - ImageUtils.getInstance(context).display(newsEntity.getThumb(), - holder.genuinenews_thumb); - } - - holder.genuinenews_title.setText(newsEntity.getTitle()); - - LayoutParams lparams = new LayoutParams( - LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); - lparams.leftMargin = DisplayUtils.sp2px(context, 8); - lparams.rightMargin = DisplayUtils.sp2px(context, - yuedujingxuanList.size() * 13 - 3); - holder.genuinenews_intro.setLayoutParams(lparams); - holder.genuinenews_intro.setText("\u3000\u3000" - + newsEntity.getIntro()); - - view.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - - Map kv2 = new HashMap(); - kv2.put(newsEntity.getTitle(), "点击量"); - DataUtils.onEvent(context, "主页数据", "阅读精品", kv2); - - Map kv3 = new HashMap(); - kv3.put("阅读精品", i + ""); - DataUtils.onEvent(context, "主页数据", "位置数据", kv3); - - Map map = new HashMap(); - map.put("location", "阅读精品"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("news", newsEntity.getTitle()); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", map); - - NewsUtils.startNewsActivity(context, newsEntity, "主页-阅读精品"); - } - }); - - return view; - } - - @Override - public int getCount() { - return Integer.MAX_VALUE; - } - - } - - public class TextNewsTypeViewHolder extends RecyclerView.ViewHolder { - public TextView newsType; - public TextView newsTitle; - public View rootItem; - - public TextNewsTypeViewHolder(View v) { - super(v); - rootItem = v; - newsType = (TextView) v.findViewById(R.id.news_type); - newsTitle = (TextView) v.findViewById(R.id.news_title); - } - - public void initViewHolder(final int position) { - if (position_kapaitoutiao != -1 - && position > position_kapaitoutiao - + (shoulanKapaitoutiaoList.isEmpty() ? 0 : 1) - && position <= position_kapaitoutiao + 1 + kapaitoutiaoSize) { - final int i = position - (shoulanKapaitoutiaoList.isEmpty() ? 2 : 3); - final NewsEntity newsEntity = cilanKapaitoutiaoList.get(i); - newsType.setBackgroundResource(NewsUtils - .getDrawableIdByType(newsEntity.getType())); - newsType.setText(newsEntity.getType()); - newsTitle.setText(newsEntity.getTitle()); - rootItem.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - Map kv = new HashMap(); - kv.put("文章类型", newsEntity.getType()); - kv.put("入口", "主页-卡牌头条"); - DataUtils.onEvent(context, "文章阅读-资讯", newsEntity.getTitle(), kv); - - Map kv2 = new HashMap(); - kv2.put(newsEntity.getTitle(), "点击量"); - DataUtils.onEvent(context, "主页数据", "卡牌头条", kv2); - - Map kv3 = new HashMap(); - kv3.put("卡牌头条-次栏", i + ""); - DataUtils.onEvent(context, "主页数据", "位置数据", kv3); - - Map map = new HashMap(); - map.put("location", "卡牌头条-次栏"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("news", newsEntity.getTitle()); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", - map); - - NewsUtils.startNewsActivity(context, newsEntity, - "主页-卡牌头条"); - } - }); - } else if (position_kapaigonglue != -1 - && position > position_kapaigonglue - && position <= position_kapaigonglue - + kapaigonglueList.size()) { - final int i = position - position_kapaigonglue - 1; - final NewsEntity newsEntity = kapaigonglueList.get(i); - newsType.setBackgroundResource(NewsUtils - .getDrawableIdByType(newsEntity.getType())); - newsType.setText(newsEntity.getType()); - newsTitle.setText(newsEntity.getTitle()); - rootItem.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - Map kv = new HashMap(); - kv.put("文章类型", newsEntity.getType()); - kv.put("入口", "主页-卡牌攻略"); - DataUtils.onEvent(context, "文章阅读-攻略", newsEntity.getTitle(), kv); - - Map kv2 = new HashMap(); - kv2.put(newsEntity.getTitle(), "点击量"); - DataUtils.onEvent(context, "主页数据", "卡牌攻略", kv2); - - Map kv3 = new HashMap(); - kv3.put("卡牌攻略", i + ""); - DataUtils.onEvent(context, "主页数据", "位置数据", kv3); - - Map map = new HashMap(); - map.put("location", "卡牌攻略"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("news", newsEntity.getTitle()); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", map); - - NewsUtils.startNewsActivity(context, newsEntity, "主页-卡牌攻略"); - } - }); - } - } - - } - - public class GameNormalViewHolder extends RecyclerView.ViewHolder { - public ImageView gameThumb; - public TextView gameNameAndSize; - public TextView downloadBtn; - public TextView gameDes; - public LinearLayout labelList; - public ProgressBar game_progressbar; - public LinearLayout game_ll_info; - public TextView download_speed; - public TextView download_percentage; - - public View rootItem; - - /** - * - * @param v - * @param column - * column == zuixinchajian,表示是最新插件板块, column == - * remenkapai,表示热门版块 - */ - public GameNormalViewHolder(View v) { - super(v); - rootItem = v; - gameThumb = (ImageView) v.findViewById(R.id.home1_game_thumb); - gameNameAndSize = (TextView) v - .findViewById(R.id.home1_game_nameAndsize); - downloadBtn = (TextView) v.findViewById(R.id.home1_download_btn); - gameDes = (TextView) v.findViewById(R.id.home1_game_des); - labelList = (LinearLayout) v.findViewById(R.id.home1_label_list); - game_ll_info = (LinearLayout) v - .findViewById(R.id.home1_game_ll_info); - game_progressbar = (ProgressBar) v - .findViewById(R.id.home1_game_progressbar); - download_speed = (TextView) v - .findViewById(R.id.home1_download_speed); - download_percentage = (TextView) v - .findViewById(R.id.home1_download_percentage); - } - - public void initViewHolder(int position) { - - GameEntity entity = null; - String from = null; - int i = 0; - if (position > position_zuixinchajian - && position <= position_zuixinchajian - + zuixinchajianList.size()) { - i = position - position_zuixinchajian - 1; - entity = zuixinchajianList.get(i); - from = "最新插件"; - } else if (position > position_remenkapai - && position <= position_remenkapai + remenkapaiList.size()) { - i = position - position_remenkapai - 1; - entity = remenkapaiList.get(i); - from = "热门卡牌"; - } - if (entity != null) { - - ImageUtils.getInstance(context).display(entity.getIcon(), - gameThumb); - if (entity.getApk() == null || entity.getApk().isEmpty()) { - gameNameAndSize.setText(entity.getName()); - } else { - gameNameAndSize.setText(entity.getName() + " | " + entity.getApk().get(0).getSize()); - } - gameDes.setText(entity.getBrief()); - GameViewUtils.setLabelList(context, labelList, entity.getTag()); - - final GameEntity gameInfoEntity = entity; - final String entrance = from; - final int ii = i; - - rootItem.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - - Map kv = new HashMap(); - kv.put("入口", "主页-" + entrance); - DataUtils.onEvent(context, "游戏详情", gameInfoEntity.getName(), kv); - - Map kv2 = new HashMap(); - kv2.put(gameInfoEntity.getName(), "点击量"); - DataUtils.onEvent(context, "主页数据", entrance, kv2); - - Map kv3 = new HashMap(); - kv3.put(entrance, ii + ""); - DataUtils.onEvent(context, "主页数据", "位置数据", kv3); - - Map map = new HashMap(); - map.put("location", entrance); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("game", gameInfoEntity.getName()); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", - map); - - AppController.put("GameEntity", gameInfoEntity); - Intent intent = new Intent(context, - GameDetailsActivity.class); - intent.putExtra("entrance", "主页-" + entrance); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - - DownloadItemUtils.setOnClickListener(context, downloadBtn, - download_speed, download_percentage, entity, position, - HomeFragmentAdapter.this, - statusMap, platformMap, "主页-" + entrance, - dismissEntity, "主页:" + entity.getName()); - - DownloadItemUtils.updateItem(context, labelList, - game_progressbar, game_ll_info, download_speed, - download_percentage, downloadBtn, entity, platformMap, - statusMap); - - } - } - } - - public class GameTestViewHolder extends RecyclerView.ViewHolder { - public ImageView gameThumb; - public TextView gameNameAndSize; - public TextView gameSize; - public TextView downloadBtn; - public TextView gameDes; - public TextView gameTestType; - public TextView gameTestTime; - public LinearLayout labelList; - public ProgressBar game_progressbar; - public LinearLayout game_ll_info; - public TextView download_speed; - public TextView download_percentage; - - private View rootItem; - - public GameTestViewHolder(View v) { - super(v); - this.rootItem = v; - gameThumb = (ImageView) v.findViewById(R.id.home2_game_thumb); - gameNameAndSize = (TextView) v - .findViewById(R.id.home2_game_nameAndsize); - downloadBtn = (TextView) v.findViewById(R.id.home2_download_btn); - gameDes = (TextView) v.findViewById(R.id.home2_game_des); - gameTestType = (TextView) v.findViewById(R.id.home2_test_type); - gameTestTime = (TextView) v.findViewById(R.id.home2_test_time); - labelList = (LinearLayout) v.findViewById(R.id.home2_label_list); - game_ll_info = (LinearLayout) v - .findViewById(R.id.home2_game_ll_info); - game_progressbar = (ProgressBar) v - .findViewById(R.id.home2_game_progressbar); - download_speed = (TextView) v - .findViewById(R.id.home2_download_speed); - download_percentage = (TextView) v - .findViewById(R.id.home2_download_percentage); - } - - public void initViewHolder(int position) { - if (position_xincekapai != -1) { - - final int i = position - position_xincekapai - 1; - final GameEntity entity = xincekapaiList.get(i); - - ImageUtils.getInstance(context).display(entity.getIcon(), - gameThumb); - if (entity.getApk() == null || entity.getApk().isEmpty()) { - gameNameAndSize.setText(entity.getName()); - } else { - gameNameAndSize.setText(entity.getName() + " | " - + entity.getApk().get(0).getSize()); - } - gameDes.setText(entity.getBrief()); - gameTestType.setText(xincekapaiList - .get(position - position_xincekapai - 1).getTest() - .getType()); - if (entity.getTest().getStart() == 0) { - gameTestTime.setVisibility(View.GONE); - } else { - gameTestTime.setText(GameViewUtils.getGameTestDate(entity - .getTest().getStart())); - } - - rootItem.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - - Map kv = new HashMap(); - kv.put("入口", "主页-新测卡牌"); - DataUtils.onEvent(context, "游戏详情", entity.getName(), kv); - - Map kv2 = new HashMap(); - kv2.put(entity.getName(), "点击量"); - DataUtils.onEvent(context, "主页数据", "新测卡牌", kv2); - - Map kv3 = new HashMap(); - kv3.put("新测卡牌", i + ""); - DataUtils.onEvent(context, "主页数据", "位置数据", kv3); - - Map map = new HashMap(); - map.put("location", "新测卡牌"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("game", entity.getName()); - map.put("page", "主页"); - DataCollectionManager.onEvent(context, "click-item", - map); - - AppController.put("GameEntity", entity); - Intent intent = new Intent(context, - GameDetailsActivity.class); - intent.putExtra("entrance", "主页-新测卡牌"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - - if (entity.getApk() == null || entity.getApk().isEmpty()) { - downloadBtn.setVisibility(View.GONE); - } else { - if (entity.getTest().getEnd() == 0) { - downloadBtn.setVisibility(View.VISIBLE); - DownloadItemUtils.setOnClickListener(context, - downloadBtn, download_speed, - download_percentage, entity, position, - HomeFragmentAdapter.this, - statusMap, platformMap, "主页-新测卡牌", - dismissEntity, "主页:" + entity.getName()); - } else { - long endTime = Long.valueOf(entity.getTest().getEnd() - + "000"); - long todayTime = new Date().getTime(); - if (todayTime > endTime) { - // 测试时间已过 - downloadBtn.setVisibility(View.GONE); - } else { - // 测试时间未过 - downloadBtn.setVisibility(View.VISIBLE); - DownloadItemUtils.setOnClickListener(context, - downloadBtn, download_speed, - download_percentage, entity, position, - HomeFragmentAdapter.this, statusMap, platformMap, - "主页-新测卡牌", dismissEntity, - "主页:" + entity.getName()); - } - } - } - - DownloadItemUtils.updateItem(context, labelList, - game_progressbar, game_ll_info, download_speed, - download_percentage, downloadBtn, entity, platformMap, - statusMap); - } - } - - } - - private AutoScrollViewPager autoScrollViewPager; - private AutoScrollViewPager genuineNewsViewPager; - - public void startAutoScroll() { - if (autoScrollViewPager != null) { - autoScrollViewPager.startAutoScroll(); - } - if (genuineNewsViewPager != null) { - genuineNewsViewPager.startAutoScroll(); - } - } - - public void stopAutoScroll() { - if (autoScrollViewPager != null) { - autoScrollViewPager.stopAutoScroll(); - } - if (genuineNewsViewPager != null) { - genuineNewsViewPager.stopAutoScroll(); - } - } - - public void setList(List zList, List rList, - List xList) { - zuixinchajianList = zList; - remenkapaiList = rList; - xincekapaiList = xList; - notifyDataSetChanged(); - } - - public int getKapaitoutiaoListSize() { - return kapaitoutiaoSize; - } - - public int getKapaigonglueListSize() { - return kapaigonglueList.size(); - } - - public int getZuixinchajianListSize() { - return zuixinchajianList.size(); - } - - public int getRemenkapaiListSize() { - return remenkapaiList.size(); - } - - public int getXincekapaiListSize() { - return xincekapaiList.size(); - } - - public List getZuixinchajianList() { - return zuixinchajianList; - } - - public List getRemenkapaiList() { - return remenkapaiList; - } - - public List getXincekapaiList() { - return xincekapaiList; - } - - public int getPosition_kapaitoutiao() { - return position_kapaitoutiao; - } - - public int getPosition_zuixinchajian() { - return position_zuixinchajian; - } - - public int getPosition_remenkapai() { - return position_remenkapai; - } - - public int getPosition_kapaigonglue() { - return position_kapaigonglue; - } - - public int getPosition_xincekapai() { - return position_xincekapai; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java index 320310b91c..1cf1ac7a33 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java @@ -20,6 +20,9 @@ import com.gh.gamecenter.R; * Created by khy on 2016/6/29. */ public class News1Fragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener { + + private View view; + private SwipeRefreshLayout original_swipe_refresh; private RecyclerView original_list; private LinearLayoutManager layoutManager; @@ -28,53 +31,65 @@ public class News1Fragment extends Fragment implements SwipeRefreshLayout.OnRefr private LinearLayout reuse_no_connection; private boolean isDestroy; - View view; - @Nullable + @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - if (view == null){ - view = inflater.inflate(R.layout.fragment_original, container, false); - isDestroy = false; - original_swipe_refresh = (SwipeRefreshLayout) view.findViewById(R.id.original_swipe_refresh); - original_list = (RecyclerView) view.findViewById(R.id.original_list); - original_swipe_refresh.setColorSchemeResources(R.color.theme_colors); - reuse_no_connection = (LinearLayout) view.findViewById(R.id.reuse_no_connection); - original_pb_loading = (ProgressBarCircularIndeterminate) view.findViewById(R.id.original_pb_loading); - original_swipe_refresh.setOnRefreshListener(this); + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); - reuse_no_connection.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - original_swipe_refresh.setRefreshing(true); - original_list.setVisibility(View.VISIBLE); - original_pb_loading.setVisibility(View.VISIBLE); - reuse_no_connection.setVisibility(View.GONE); - } - }); + view = View.inflate(getActivity(), R.layout.fragment_original, null); - original_list.setHasFixedSize(true); - layoutManager = new LinearLayoutManager(getActivity()); - original_list.setLayoutManager(layoutManager); - adapter = new News1FragmentAdapter(getActivity(), original_list, original_swipe_refresh, - original_pb_loading, reuse_no_connection, true); - original_list.setAdapter(adapter); - original_list.addItemDecoration(new VerticalItemDecoration(getActivity(), 1)); - original_list.setOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrollStateChanged(RecyclerView recyclerView, int newState) { - super.onScrollStateChanged(recyclerView, newState); + isDestroy = false; - if (!isDestroy && newState == RecyclerView.SCROLL_STATE_IDLE - && layoutManager.findLastVisibleItemPosition() + 1 == adapter.getItemCount()) { - if (!adapter.isRemove() && !adapter.isLoading() && !adapter.isNetworkError()) { - adapter.addList(adapter.getNewsList().size()); - } + original_swipe_refresh = (SwipeRefreshLayout) view.findViewById(R.id.original_swipe_refresh); + original_list = (RecyclerView) view.findViewById(R.id.original_list); + original_swipe_refresh.setColorSchemeResources(R.color.theme_colors); + reuse_no_connection = (LinearLayout) view.findViewById(R.id.reuse_no_connection); + original_pb_loading = (ProgressBarCircularIndeterminate) view.findViewById(R.id.original_pb_loading); + original_swipe_refresh.setOnRefreshListener(this); + + reuse_no_connection.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + original_swipe_refresh.setRefreshing(true); + original_list.setVisibility(View.VISIBLE); + original_pb_loading.setVisibility(View.VISIBLE); + reuse_no_connection.setVisibility(View.GONE); + } + }); + + original_list.setHasFixedSize(true); + layoutManager = new LinearLayoutManager(getActivity()); + original_list.setLayoutManager(layoutManager); + adapter = new News1FragmentAdapter(getActivity(), original_list, original_swipe_refresh, + original_pb_loading, reuse_no_connection, true); + original_list.setAdapter(adapter); + original_list.addItemDecoration(new VerticalItemDecoration(getActivity(), 1)); + original_list.setOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrollStateChanged(RecyclerView recyclerView, int newState) { + super.onScrollStateChanged(recyclerView, newState); + + if (!isDestroy && newState == RecyclerView.SCROLL_STATE_IDLE + && layoutManager.findLastVisibleItemPosition() + 1 == adapter.getItemCount()) { + if (!adapter.isRemove() && !adapter.isLoading() && !adapter.isNetworkError()) { + adapter.addList(adapter.getNewsList().size()); } } - }); + } + }); + + } + + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + if (container != null){ + container.removeView(view); } return view; } + private Handler handler = new Handler(); Runnable runnable = new Runnable() { diff --git a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java index 991e3054ce..f7ea8de7d3 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java @@ -373,8 +373,8 @@ public class News1FragmentAdapter extends RecyclerView.Adapter { public static class ITEM_TYPE { @@ -109,9 +108,9 @@ public class NewsOrRaidersListAdapter extends private String type; - public NewsOrRaidersListAdapter(Context con, RecyclerView recyclerView, - LinearLayout linearLayout1, LinearLayout linearLayout2, String str, - RelativeLayout relativeLayout, TextView textView) { + public News3FragmentAdapter(Context con, RecyclerView recyclerView, + LinearLayout linearLayout1, LinearLayout linearLayout2, String str, + RelativeLayout relativeLayout, TextView textView) { context = con; type = str; @@ -234,8 +233,7 @@ public class NewsOrRaidersListAdapter extends } } }); - AppController.addToRequestQueue(request, - NewsOrRaidersActivity.class); + AppController.addToRequestQueue(request, NewsFragment.class); } } @@ -318,7 +316,7 @@ public class NewsOrRaidersListAdapter extends } }); - AppController.addToRequestQueue(request, NewsOrRaidersActivity.class); + AppController.addToRequestQueue(request, NewsFragment.class); } public void addList() { @@ -361,7 +359,7 @@ public class NewsOrRaidersListAdapter extends } }); - AppController.addToRequestQueue(request, NewsOrRaidersActivity.class); + AppController.addToRequestQueue(request, NewsFragment.class); } private void addDatas(List datas) { @@ -486,8 +484,7 @@ public class NewsOrRaidersListAdapter extends } } }); - AppController.addToRequestQueue(request, - NewsOrRaidersActivity.class); + AppController.addToRequestQueue(request, NewsFragment.class); } } @@ -547,8 +544,7 @@ public class NewsOrRaidersListAdapter extends } }); - AppController.addToRequestQueue(gameObjectRequest, - NewsOrRaidersActivity.class); + AppController.addToRequestQueue(gameObjectRequest, NewsFragment.class); } } @@ -752,8 +748,8 @@ public class NewsOrRaidersListAdapter extends if (isNetworkError) { holder.footerview_progressbar.setVisibility(View.GONE); holder.footerview_tv_loading.setText("加载失败,点击重试"); - holder.rootView.setClickable(true); - holder.rootView.setOnClickListener(new OnClickListener() { + holder.itemView.setClickable(true); + holder.itemView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { isNetworkError = false; @@ -764,7 +760,7 @@ public class NewsOrRaidersListAdapter extends } else if (isRemove) { holder.footerview_progressbar.setVisibility(View.GONE); holder.footerview_tv_loading.setText("加载完毕"); - holder.rootView.setClickable(false); + holder.itemView.setClickable(false); } // else if (isLoaded) { // holder.footerview_progressbar.setVisibility(View.GONE); @@ -782,7 +778,7 @@ public class NewsOrRaidersListAdapter extends else { holder.footerview_progressbar.setVisibility(View.VISIBLE); holder.footerview_tv_loading.setText("加载中..."); - holder.rootView.setClickable(false); + holder.itemView.setClickable(false); } } } diff --git a/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java index ecddccd742..16a6f84d2d 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News4Fragment.java @@ -13,7 +13,6 @@ import android.widget.LinearLayout; import com.gh.base.AppController; import com.gh.common.view.VerticalItemDecoration; -import com.gh.gamecenter.NewsOrRaidersActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBConcernChanged; import com.gh.gamecenter.eventbus.EBNetworkState; @@ -128,7 +127,7 @@ public class News4Fragment extends Fragment { public void onDestroy() { super.onDestroy(); isDestroy = true; - AppController.canclePendingRequests(NewsOrRaidersActivity.class); + AppController.canclePendingRequests(NewsFragment.class); news_list = null; layoutManager = null; adapter = null; diff --git a/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java index 85db5dab6b..c210d5c89b 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java @@ -26,7 +26,6 @@ import com.gh.common.util.ImageUtils; import com.gh.common.util.NewsUtils; import com.gh.common.util.TimestampUtils; import com.gh.gamecenter.GameDetailsActivity; -import com.gh.gamecenter.NewsOrRaidersActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; @@ -219,8 +218,7 @@ public class News4FragmentAdapter extends } } }); - AppController.addToRequestQueue(request, - NewsOrRaidersActivity.class); + AppController.addToRequestQueue(request, NewsFragment.class); } } @@ -307,7 +305,7 @@ public class News4FragmentAdapter extends } }); - AppController.addToRequestQueue(request, NewsOrRaidersActivity.class); + AppController.addToRequestQueue(request, NewsFragment.class); } public void addList() { @@ -349,7 +347,7 @@ public class News4FragmentAdapter extends } }); - AppController.addToRequestQueue(request, NewsOrRaidersActivity.class); + AppController.addToRequestQueue(request, NewsFragment.class); } private void addDatas(List datas) { @@ -473,8 +471,7 @@ public class News4FragmentAdapter extends } } }); - AppController.addToRequestQueue(request, - NewsOrRaidersActivity.class); + AppController.addToRequestQueue(request, NewsFragment.class); } } @@ -534,8 +531,7 @@ public class News4FragmentAdapter extends } }); - AppController.addToRequestQueue(gameObjectRequest, - NewsOrRaidersActivity.class); + AppController.addToRequestQueue(gameObjectRequest, NewsFragment.class); } } @@ -689,8 +685,8 @@ public class News4FragmentAdapter extends if (isNetworkError) { holder.footerview_progressbar.setVisibility(View.GONE); holder.footerview_tv_loading.setText("加载失败,点击重试"); - holder.rootView.setClickable(true); - holder.rootView.setOnClickListener(new OnClickListener() { + holder.itemView.setClickable(true); + holder.itemView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { isNetworkError = false; @@ -701,7 +697,7 @@ public class News4FragmentAdapter extends } else if (isRemove) { holder.footerview_progressbar.setVisibility(View.GONE); holder.footerview_tv_loading.setText("加载完毕"); - holder.rootView.setClickable(false); + holder.itemView.setClickable(false); } // else if (isLoaded) { // holder.footerview_progressbar.setVisibility(View.GONE); @@ -719,7 +715,7 @@ public class News4FragmentAdapter extends else { holder.footerview_progressbar.setVisibility(View.VISIBLE); holder.footerview_tv_loading.setText("加载中..."); - holder.rootView.setClickable(false); + holder.itemView.setClickable(false); } } } diff --git a/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java b/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java index 0c3b3d07b4..89d7857806 100644 --- a/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java @@ -304,7 +304,7 @@ public class NewsFragment extends Fragment implements View.OnClickListener, View if (currentItem != mViewPager.getCurrentItem()) { currentItem = mViewPager.getCurrentItem(); Utils.log("currentItem = " + currentItem); - EventBus.getDefault().post(new EBUISwitch("PluginFragment", currentItem)); + EventBus.getDefault().post(new EBUISwitch("GameFragment", currentItem)); } } } diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Game1Fragment.java b/app/src/main/java/com/gh/gamecenter/plugin/Game1Fragment.java deleted file mode 100644 index 85dcdd1afc..0000000000 --- a/app/src/main/java/com/gh/gamecenter/plugin/Game1Fragment.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gh.gamecenter.plugin; - -import android.os.Bundle; -import android.os.Handler; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.widget.SwipeRefreshLayout; -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 com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.common.view.VerticalItemDecoration; -import com.gh.gamecenter.R; - -/** - * Created by khy on 2016/6/27. - */ -public class Game1Fragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener { - - private View view; - private RecyclerView mRecyclerView; - private Game1FragmentAdapter pluginFragmentAdapter; - private SwipeRefreshLayout mSwipeRefreshLayout; - private ProgressBarCircularIndeterminate mProgressBarCircularIndeterminate; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - view = View.inflate(getActivity(), R.layout.plugin1_fragment, null); - - mRecyclerView = (RecyclerView) view.findViewById(R.id.game_list); - - mSwipeRefreshLayout = (SwipeRefreshLayout) view - .findViewById(R.id.game_swipe_refresh); - mSwipeRefreshLayout.setColorSchemeResources(R.color.theme_colors); - mSwipeRefreshLayout.setOnRefreshListener(this); - - mProgressBarCircularIndeterminate = (ProgressBarCircularIndeterminate) view.findViewById(R.id.game_pb_loading); - mProgressBarCircularIndeterminate.setVisibility(View.GONE); - - mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); - pluginFragmentAdapter = new Game1FragmentAdapter(getActivity(), mSwipeRefreshLayout); - mRecyclerView.setAdapter(pluginFragmentAdapter); - mRecyclerView.addItemDecoration(new VerticalItemDecoration(getActivity(), 1)); - } - - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - if(container != null){ - container.removeView(view); - } - return view; - } - - private Handler handler = new Handler(); - - Runnable runnable = new Runnable() { - @Override - public void run() { - mSwipeRefreshLayout.setRefreshing(false); - } - }; - - @Override - public void onRefresh() { - handler.postDelayed(runnable, 1000); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Game1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/plugin/Game1FragmentAdapter.java deleted file mode 100644 index 4bee2bb94c..0000000000 --- a/app/src/main/java/com/gh/gamecenter/plugin/Game1FragmentAdapter.java +++ /dev/null @@ -1,635 +0,0 @@ -package com.gh.gamecenter.plugin; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -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.ProgressBar; -import android.widget.TextView; -import android.widget.Toast; - -import com.android.volley.NoConnectionError; -import com.android.volley.Response; -import com.android.volley.TimeoutError; -import com.android.volley.VolleyError; -import com.gh.base.AppController; -import com.gh.common.constant.Config; -import com.gh.common.constant.Constants; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.GameViewUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.TimestampUtils; -import com.gh.common.view.AutoScrollViewPager; -import com.gh.gamecenter.GameDetailsActivity; -import com.gh.gamecenter.NewsActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.entity.SlideEntity; -import com.gh.gamecenter.entity.SubjectEntity; -import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; - -import org.json.JSONArray; - -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * Created by LGT on 2016/7/1. - */ -public class Game1FragmentAdapter extends RecyclerView.Adapter { - - private class ITEM_TYPE { - public static final int slide = 0;// 滚动图 - public static final int head = 1;// 专题头部 - public static final int game_normal_type = 2;// 游戏布局1 - public static final int game_test_type = 3;// 游戏布局2 - public static final int image = 4;// 大图布局 - } - - private Activity mActivity; - private Context mContext; - - private SwipeRefreshLayout mSwipeRefreshLayout; - - private List slideList; - private List subjectList; - - private boolean isSlideError; - - public Game1FragmentAdapter(Activity activity, SwipeRefreshLayout swipeRefreshLayout) { - - mActivity = activity; - mContext = activity; - mSwipeRefreshLayout = swipeRefreshLayout; - - slideList = new ArrayList(); - subjectList = new ArrayList(); - - isSlideError = false; - - load(); - } - - public void load() { - new Thread(runnable){}.start(); - } - - Runnable runnable = new Runnable() { - @Override - public void run() { - initSlide(true); - } - }; - - private void initSlide(final boolean isFirst) { - JsonArrayExtendedRequest slideRequest = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST + "v1d50/index/slides", - Constants.GAME_CD), new Response.Listener() { - @Override - public void onResponse(JSONArray response) { - Type listType = new TypeToken>() {}.getType(); - Gson gson = new Gson(); - slideList = gson.fromJson(response.toString(), listType); - if (slideList != null && !slideList.isEmpty()) { - notifyItemChanged(0); - } - if (isFirst) { - initAlbum(); - } - } - - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - // 无网络连接 - if (error.getClass().equals(NoConnectionError.class) - || error.getClass().equals(TimeoutError.class)) { - isSlideError = true; - Toast.makeText(mContext, "网络错误", Toast.LENGTH_SHORT).show(); - notifyItemChanged(0); - } - if (isFirst) { - initAlbum(); - } - } - }); - AppController.addToRequestQueue(slideRequest, Game1Fragment.class); - } - - private void initAlbum() { - JsonArrayExtendedRequest request = new JsonArrayExtendedRequest(Config.HOST + "v1d50/game/tuijian", - new Response.Listener() { - @Override - public void onResponse(JSONArray response) { - - Type listType = new TypeToken>() {}.getType(); - Gson gson = new Gson(); - List list = gson.fromJson(response.toString(), listType); - if (list != null && !list.isEmpty()) { - subjectList = list; - notifyItemRangeInserted(1, getItemCount() - 1); - } - } - }, - new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - - } - }); - AppController.addToRequestQueue(request, Game1Fragment.class); - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View view; - if (viewType == ITEM_TYPE.slide) { - view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.plugin1_autoscrollviewpager_viewholder, parent, - false); - DisplayMetrics outMetrics = new DisplayMetrics(); - mActivity.getWindowManager().getDefaultDisplay() - .getMetrics(outMetrics); - ViewGroup.LayoutParams params = new ViewGroup.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, - (int) (outMetrics.widthPixels / 16f * 7f)); - view.setLayoutParams(params); - return new AutoScrollViewpagerViewHolder(view); - } else if (viewType == ITEM_TYPE.head) { - view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.home_list_item_head, parent, false); - return new HeadViewHolder(view); - } else if (viewType == ITEM_TYPE.game_normal_type) { - view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.home_game_normal_item, parent, false); - return new GameNormalViewHolder(view); - } else if (viewType == ITEM_TYPE.game_test_type) { - view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.home_game_test_item, parent, false); - return new GameTestViewHolder(view); - } else { - ImageView imageView = new ImageView(parent.getContext()); - ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.WRAP_CONTENT); - imageView.setLayoutParams(params); - imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); - return new ImageViewHolder(imageView); - } - } - - public class GameTestViewHolder extends RecyclerView.ViewHolder { - public TextView home2_game_order; - public ImageView gameThumb; - public TextView gameNameAndSize; - public TextView downloadBtn; - public TextView gameDes; - public TextView gameTestType; - public TextView gameTestTime; - public LinearLayout labelList; - public ProgressBar game_progressbar; - public LinearLayout game_ll_info; - public TextView download_speed; - public TextView download_percentage; - - private View rootItem; - - public GameTestViewHolder(View v) { - super(v); - this.rootItem = v; - home2_game_order = (TextView) v.findViewById(R.id.home2_game_order); - gameThumb = (ImageView) v.findViewById(R.id.home2_game_thumb); - gameNameAndSize = (TextView) v - .findViewById(R.id.home2_game_nameAndsize); - downloadBtn = (TextView) v.findViewById(R.id.home2_download_btn); - gameDes = (TextView) v.findViewById(R.id.home2_game_des); - gameTestType = (TextView) v.findViewById(R.id.home2_test_type); - gameTestTime = (TextView) v.findViewById(R.id.home2_test_time); - labelList = (LinearLayout) v.findViewById(R.id.home2_label_list); - game_ll_info = (LinearLayout) v - .findViewById(R.id.home2_game_ll_info); - game_progressbar = (ProgressBar) v - .findViewById(R.id.home2_game_progressbar); - download_speed = (TextView) v - .findViewById(R.id.home2_download_speed); - download_percentage = (TextView) v - .findViewById(R.id.home2_download_percentage); - } - - public void initViewHolder(int position) { - int offset = 1; - 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) { - init(gameEntity, position - offset - 1, subjectList.get(i).getOrder()); - break; - } - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - - public void init(GameEntity gameEntity, int i, boolean order) { - if (order) { - home2_game_order.setVisibility(View.VISIBLE); - home2_game_order.setText(i + ""); - } else { - home2_game_order.setVisibility(View.GONE); - } - ImageUtils.getInstance(mContext).display(gameEntity.getIcon(), - gameThumb); - gameNameAndSize.setText(gameEntity.getName()); - if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) { - gameDes.setText(gameEntity.getBrief()); - } else { - gameDes.setText(gameEntity.getApk().get(0).getSize() + " | " + gameEntity.getBrief()); - } - gameTestType.setText(gameEntity.getTest().getType()); - if (gameEntity.getTest().getStart() == 0) { - gameTestTime.setVisibility(View.GONE); - } else { - gameTestTime.setText(GameViewUtils.getGameTestDate(gameEntity.getTest().getStart())); - } - - final GameEntity entity = gameEntity; - - rootItem.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - AppController.put("GameEntity", entity); - Intent intent = new Intent(mContext, - GameDetailsActivity.class); - intent.putExtra("entrance", "主页-新测卡牌"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - mContext.startActivity(intent); - } - }); - - if (entity.getApk() == null || entity.getApk().isEmpty()) { - downloadBtn.setVisibility(View.GONE); - } else { - if (entity.getTest().getEnd() == 0) { - downloadBtn.setVisibility(View.VISIBLE); -// DownloadItemUtils.setOnClickListener(mContext, -// downloadBtn, download_speed, -// download_percentage, entity, position, -// Game1FragmentAdapter.this, -// statusMap, platformMap, "主页-新测卡牌", -// dismissEntity, "主页:" + entity.getName()); - } else { - long endTime = Long.valueOf(entity.getTest().getEnd() - + "000"); - long todayTime = new Date().getTime(); - if (todayTime > endTime) { - // 测试时间已过 - downloadBtn.setVisibility(View.GONE); - } else { - // 测试时间未过 - downloadBtn.setVisibility(View.VISIBLE); -// DownloadItemUtils.setOnClickListener(context, -// downloadBtn, download_speed, -// download_percentage, entity, position, -// Game1FragmentAdapter.this, statusMap, platformMap, -// "主页-新测卡牌", dismissEntity, -// "主页:" + entity.getName()); - } - } - } - -// DownloadItemUtils.updateItem(context, labelList, -// game_progressbar, game_ll_info, download_speed, -// download_percentage, downloadBtn, entity, platformMap, -// statusMap); - } - - } - - public class GameNormalViewHolder extends RecyclerView.ViewHolder { - public TextView home1_game_order; - public ImageView gameThumb; - public TextView gameNameAndSize; - public TextView downloadBtn; - public TextView gameDes; - public LinearLayout labelList; - public ProgressBar game_progressbar; - public LinearLayout game_ll_info; - public TextView download_speed; - public TextView download_percentage; - - public View rootItem; - - public GameNormalViewHolder(View v) { - super(v); - rootItem = v; - home1_game_order = (TextView) v.findViewById(R.id.home1_game_order); - gameThumb = (ImageView) v.findViewById(R.id.home1_game_thumb); - gameNameAndSize = (TextView) v - .findViewById(R.id.home1_game_nameAndsize); - downloadBtn = (TextView) v.findViewById(R.id.home1_download_btn); - gameDes = (TextView) v.findViewById(R.id.home1_game_des); - labelList = (LinearLayout) v.findViewById(R.id.home1_label_list); - game_ll_info = (LinearLayout) v - .findViewById(R.id.home1_game_ll_info); - game_progressbar = (ProgressBar) v - .findViewById(R.id.home1_game_progressbar); - download_speed = (TextView) v - .findViewById(R.id.home1_download_speed); - download_percentage = (TextView) v - .findViewById(R.id.home1_download_percentage); - } - - public void init(GameEntity entity, int i, boolean order) { - if (order) { - home1_game_order.setVisibility(View.VISIBLE); - home1_game_order.setText(i + ""); - } else { - home1_game_order.setVisibility(View.GONE); - } - ImageUtils.getInstance(mContext).display(entity.getIcon(), - gameThumb); - gameNameAndSize.setText(entity.getName()); - if (entity.getApk() == null || entity.getApk().isEmpty()) { - gameDes.setText(entity.getBrief()); - } else { - gameDes.setText(entity.getApk().get(0).getSize() + " | " + entity.getBrief()); - } - GameViewUtils.setLabelList(mContext, labelList, entity.getTag()); - - final GameEntity gameInfoEntity = entity; - final int ii = i; - - rootItem.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - AppController.put("GameEntity", gameInfoEntity); - Intent intent = new Intent(mContext, GameDetailsActivity.class); - intent.putExtra("entrance", "游戏-插件"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - mContext.startActivity(intent); - } - }); - } - - public void initViewHolder(int position) { - - int offset = 1; - 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 (TextUtils.isEmpty(gameEntity.getImage()) && gameEntity.getTest() == null) { - init(gameEntity, position - offset - 1, subjectList.get(i).getOrder()); - break; - } - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - } - - public class ImageViewHolder extends RecyclerView.ViewHolder { - - private ImageView imageView; - - public ImageViewHolder(View itemView) { - super(itemView); - - imageView = (ImageView) itemView; - } - - public void initViewHolder(int position) { - int offset = 1; - 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 (!TextUtils.isEmpty(gameEntity.getImage())) { - final GameEntity entity = gameEntity; - ImageUtils.getInstance(mContext).display(entity.getImage(), imageView, -1); - imageView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - if ("game".equals(entity.getType())) { - Intent intent = new Intent(mContext, GameDetailsActivity.class); - intent.putExtra("gameId", entity.getId()); - intent.putExtra("entrance", "插件-大图"); - mContext.startActivity(intent); - } else if ("news".equals(entity.getType())) { - Intent intent = new Intent(mContext, NewsActivity.class); - intent.putExtra("newsId", entity.getId()); - intent.putExtra("entrance", "插件-大图"); - mContext.startActivity(intent); - } - - } - }); - break; - } - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - } - - public class HeadViewHolder extends RecyclerView.ViewHolder { - public ImageView thumb; - public TextView title; - public LinearLayout link; - - public HeadViewHolder(View view) { - super(view); - this.thumb = (ImageView) view.findViewById(R.id.head_thumb); - this.title = (TextView) view.findViewById(R.id.head_title); - this.link = (LinearLayout) view.findViewById(R.id.head_link); - } - - public void initViewHolder(int position) { - int offset = 1; - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (position == offset) { - thumb.setVisibility(View.GONE); - title.setText(subjectList.get(i).getName()); - link.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - } - }); - break; - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - } - } - - public class AutoScrollViewpagerViewHolder extends RecyclerView.ViewHolder { - private AutoScrollViewPager viewPager; - private LinearLayout viewpager_ll_hint; - private TextView viewpager_tv_failure; - - public AutoScrollViewpagerViewHolder(View v) { - super(v); - viewpager_tv_failure = (TextView) v.findViewById(R.id.viewpager_tv_failure); - viewpager_tv_failure.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - isSlideError = false; - notifyItemChanged(0); - initSlide(false); - } - }); - viewpager_ll_hint = (LinearLayout) v - .findViewById(R.id.viewpager_ll_hint); - viewPager = (AutoScrollViewPager) v.findViewById(R.id.view_pager); - viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { - - @Override - public void onPageSelected(int position) { - for (int i = 0, size = viewpager_ll_hint - .getChildCount(); i < size; i++) { - if (i == position % size) { - ((ImageView) viewpager_ll_hint.getChildAt(i)) - .setImageResource(R.drawable.oval_hint_dn); - } else { - ((ImageView) viewpager_ll_hint.getChildAt(i)) - .setImageResource(R.drawable.oval_hint_up); - } - } - } - - @Override - public void onPageScrolled(int position, - float positionOffset, int positionOffsetPixels) { - - } - - @Override - public void onPageScrollStateChanged(int state) { - // 解决viewpager和SwipeRefreshLayout滑动冲突 - if (state == ViewPager.SCROLL_STATE_DRAGGING) { - mSwipeRefreshLayout.setEnabled(false); - } else { - mSwipeRefreshLayout.setEnabled(true); - } - } - }); - autoScrollViewPager = viewPager; - } - - } - - private AutoScrollViewPager autoScrollViewPager; - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { - if (holder instanceof AutoScrollViewpagerViewHolder) { - AutoScrollViewpagerViewHolder viewHolder = (AutoScrollViewpagerViewHolder) holder; - 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) { - int currentItem = 0; - if (viewHolder.viewPager.getAdapter() != null) { - currentItem = viewHolder.viewPager.getCurrentItem(); - } - viewHolder.viewpager_ll_hint.removeAllViews(); - for (int i = 0, size = slideList.size(); i < size; i++) { - ImageView imageView = new ImageView(mContext); - LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams( - DisplayUtils.dip2px(mContext, 8), - DisplayUtils.dip2px(mContext, 8)); - lparams.bottomMargin = DisplayUtils.dip2px(mContext, 8); - if (i == currentItem) { - imageView.setImageResource(R.drawable.oval_hint_dn); - } else { - imageView.setImageResource(R.drawable.oval_hint_up); - } - if (i != 0) { - lparams.leftMargin = DisplayUtils.dip2px(mContext, 8); - } - imageView.setLayoutParams(lparams); - viewHolder.viewpager_ll_hint.addView(imageView); - } - viewHolder.viewPager.setAdapter(new Game1ImagePagerAdapter(mContext, slideList, true)); - viewHolder.viewPager.setCurrentItem(currentItem); - viewHolder.viewPager.setInterval(3000); - viewHolder.viewPager.startAutoScroll(); - } - } else if (holder instanceof HeadViewHolder) { - ((HeadViewHolder) holder).initViewHolder(position); - } else if (holder instanceof ImageViewHolder) { - ((ImageViewHolder) holder).initViewHolder(position); - } else if (holder instanceof GameNormalViewHolder) { - ((GameNormalViewHolder) holder).initViewHolder(position); - } else if (holder instanceof GameTestViewHolder) { - ((GameTestViewHolder) holder).initViewHolder(position); - } - } - - @Override - public int getItemCount() { - int slideSize = 0; - if (!slideList.isEmpty()) { - slideSize = 1; - } - 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(); - } - } - return slideSize + subjectSize; - } - - @Override - public int getItemViewType(int position) { - - if (position == 0) { - return ITEM_TYPE.slide; - } - - int offset = 1; - GameEntity gameEntity; - for (int i = 0, size = subjectList.size(); i < size; i++) { - if (position == offset) { - return ITEM_TYPE.head; - } - if (position > offset && position <= subjectList.get(i).getData().size() + offset) { - gameEntity = subjectList.get(i).getData().get(position - offset - 1); - if (!TextUtils.isEmpty(gameEntity.getImage())) { - return ITEM_TYPE.image; - } - if (gameEntity.getTest() != null) { - return ITEM_TYPE.game_test_type; - } - return ITEM_TYPE.game_normal_type; - } - offset = subjectList.get(i).getData().size() + offset + 1; - } - - return -1; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Game1ImagePagerAdapter.java b/app/src/main/java/com/gh/gamecenter/plugin/Game1ImagePagerAdapter.java deleted file mode 100644 index bab82511e7..0000000000 --- a/app/src/main/java/com/gh/gamecenter/plugin/Game1ImagePagerAdapter.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright 2014 trinea.cn All right reserved. This software is the confidential and proprietary information of - * trinea.cn ("Confidential Information"). You shall not disclose such Confidential Information and shall use it only in - * accordance with the terms of the license agreement you entered into with trinea.cn. - */ -package com.gh.gamecenter.plugin; - -import android.content.Context; -import android.content.Intent; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; - -import com.gh.common.util.ImageUtils; -import com.gh.gamecenter.GameDetailsActivity; -import com.gh.gamecenter.NewsActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.RecyclingPagerAdapter; -import com.gh.gamecenter.entity.SlideEntity; - -import java.util.List; - -/** - * ImagePagerAdapter - * - * @author Trinea 2014-2-23 - */ -public class Game1ImagePagerAdapter extends RecyclingPagerAdapter { - - private Context context; - // private List imageIdList; - private List slideList = null; - - private int size; - private boolean isInfiniteLoop; - - // private ImageIndicator indicator; - - public Game1ImagePagerAdapter(Context context, List slideList, - boolean isInfiniteLoop) { - this.context = context; - this.slideList = slideList; - this.size = getSize(slideList); - this.isInfiniteLoop = isInfiniteLoop; - } - - @Override - public int getCount() { - // Infinite loop - return isInfiniteLoop ? Integer.MAX_VALUE : getSize(slideList); - } - - public int getSize(List sourceList) { - return sourceList == null ? 0 : sourceList.size(); - } - - /** - * get really position - * - * @param position - * @return - */ - private int getPosition(int position) { - return isInfiniteLoop ? position % size : position; - } - - @Override - public View getView(int position, View view, ViewGroup container) { - ViewHolder holder; - if (view == null) { - holder = new ViewHolder(); - view = holder.imageView = new ImageView(context); - view.setTag(holder); - } else { - holder = (ViewHolder) view.getTag(); - } - - final SlideEntity slideEntity = slideList.get(getPosition(position)); - - ImageUtils.getInstance(context).display(slideEntity.getImage(), - holder.imageView, R.drawable.preload); - // indicator.setPosition(slideList.size(), getPosition(position)); - - holder.imageView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - if ("game".equals(slideEntity.getType())) { - Intent intent = new Intent(context, GameDetailsActivity.class); - intent.putExtra("gameId", slideEntity.getLink()); - intent.putExtra("entrance", "插件-滚动图"); - context.startActivity(intent); - } else if ("news".equals(slideEntity.getType())) { - Intent intent = new Intent(context, NewsActivity.class); - intent.putExtra("newsId", slideEntity.getLink()); - intent.putExtra("entrance", "插件-滚动图"); - context.startActivity(intent); - } - - } - }); - - return view; - } - - private static class ViewHolder { - ImageView imageView; - } - - /** - * @return the isInfiniteLoop - */ - public boolean isInfiniteLoop() { - return isInfiniteLoop; - } - - /** - * @param isInfiniteLoop - * the isInfiniteLoop to set - */ - public Game1ImagePagerAdapter setInfiniteLoop(boolean isInfiniteLoop) { - this.isInfiniteLoop = isInfiniteLoop; - return this; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Game2Fragment.java b/app/src/main/java/com/gh/gamecenter/plugin/Game2Fragment.java deleted file mode 100644 index dffd33147c..0000000000 --- a/app/src/main/java/com/gh/gamecenter/plugin/Game2Fragment.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.gh.gamecenter.plugin; - -import android.os.Bundle; -import android.os.Handler; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.widget.SwipeRefreshLayout; -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 com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.common.view.VerticalItemDecoration; -import com.gh.gamecenter.R; - -/** - * Created by khy on 2016/6/28. - */ -public class Game2Fragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener { - private View view; - private RecyclerView mRecyclerView; - private Game2FragmentAdapter game2FragmentAdapter; - private SwipeRefreshLayout mSwipeRefreshLayout; - private ProgressBarCircularIndeterminate mProgressBarCircularIndeterminate; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - view = View.inflate(getActivity(), R.layout.plugin1_fragment, null); - mRecyclerView = (RecyclerView) view.findViewById(R.id.game_list); - - mSwipeRefreshLayout = (SwipeRefreshLayout) view - .findViewById(R.id.game_swipe_refresh); - mSwipeRefreshLayout.setColorSchemeResources(R.color.theme_colors); - mSwipeRefreshLayout.setOnRefreshListener(this); - - mProgressBarCircularIndeterminate = (ProgressBarCircularIndeterminate) view.findViewById(R.id.game_pb_loading); - mProgressBarCircularIndeterminate.setVisibility(View.GONE); - mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); - game2FragmentAdapter = new Game2FragmentAdapter(getActivity(),this); - mRecyclerView.setAdapter(game2FragmentAdapter); - mRecyclerView.addItemDecoration(new VerticalItemDecoration(getActivity(), 1)); - } - - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - if(container != null){ - container.removeView(view); - } - return view; - } - - private Handler handler = new Handler(); - - Runnable runnable = new Runnable() { - @Override - public void run() { - mSwipeRefreshLayout.setRefreshing(false); - } - }; - - @Override - public void onRefresh() { - handler.postDelayed(runnable, 1000); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Game2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/plugin/Game2FragmentAdapter.java deleted file mode 100644 index 985c76bf51..0000000000 --- a/app/src/main/java/com/gh/gamecenter/plugin/Game2FragmentAdapter.java +++ /dev/null @@ -1,436 +0,0 @@ -package com.gh.gamecenter.plugin; - -import android.content.Context; -import android.content.Intent; -import android.support.v4.app.FragmentActivity; -import android.support.v7.widget.RecyclerView; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.ProgressBar; -import android.widget.TextView; - -import com.android.volley.Response; -import com.android.volley.VolleyError; -import com.gh.base.AppController; -import com.gh.common.constant.Config; -import com.gh.common.constant.Constants; -import com.gh.common.util.DataUtils; -import com.gh.common.util.GameViewUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.TimestampUtils; -import com.gh.gamecenter.GameDetailsActivity; -import com.gh.gamecenter.NewsActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.entity.SubjectEntity; -import com.gh.gamecenter.manager.DataCollectionManager; -import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; - -import org.json.JSONArray; - -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Created by khy on 2016/6/28. - */ -public class Game2FragmentAdapter extends RecyclerView.Adapter { - private final static int ITEM_XINCE = 100;//游戏布局2 - private final static int ITEM = 101;//游戏布局1 - private final static int ITEM_HEAD = 102;//专题头部 - private final static int ITEM_PIC = 103;//大图布局 - private List entity2List; - private Context mContext; - private int position_one = -1; - private int position_two = -1; - private int position_three = -1; - private int imgPosition = -1; - - public Game2FragmentAdapter(FragmentActivity activity, Game2Fragment game2Fragment) { - this.mContext = activity; - LoadData2(); - } - - private void LoadData2() { - JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST + "v1d50/game/tuijian", - Constants.GAME_CD), new Response.Listener() { - - @Override - public void onResponse(JSONArray response) { - Type listType = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - entity2List = gson.fromJson(response.toString(), listType); - getDataPosition(); - notifyDataSetChanged(); - - } - - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - - } - - }); - AppController.addToRequestQueue(request, Plugin1Fragment.class); - } - - //确定内容位置 - private void getDataPosition() { - if (entity2List.size() > 0) { - if (entity2List.size() == 1) { - position_one = entity2List.get(0).getData().size() + 1; - } - if (entity2List.size() == 2) { - position_one = entity2List.get(0).getData().size() + 1; - position_two = entity2List.get(1).getData().size() + position_one + 1; - } - if (entity2List.size() == 3) { - position_one = entity2List.get(0).getData().size() + 1; - position_two = entity2List.get(1).getData().size() + position_one + 1; - position_three = entity2List.get(2).getData().size() + position_two + 1; - } - } - - } - - @Override - public int getItemViewType(int position) { - if (position_one != -1) { - if (position == 0) { - return ITEM_HEAD; - } - if (position == 1 && entity2List.get(0).getData().get(0).getImage() != null) { - imgPosition = 0; - return ITEM_PIC; - } - if (position > 0 && position < position_one) { - if ("新测卡牌".equals(entity2List.get(0).getName())) { - return ITEM_XINCE; - } - return ITEM; - } - } - if (position_two != -1) { - if (position == position_two - entity2List.get(1).getData().size() - 1) { - return ITEM_HEAD; - } - if (position == position_two - entity2List.get(1).getData().size() && entity2List.get(1).getData().get(0).getImage() != null) { - imgPosition = 1; - return ITEM_PIC; - } - if (position > position_two - entity2List.get(1).getData().size() - 1 && position < position_two) { - if ("新测卡牌".equals(entity2List.get(1).getName())) { - return ITEM_XINCE; - } - return ITEM; - } - } - if (position_three != -1) { - if (position == position_three - entity2List.get(2).getData().size() - 1) { - return ITEM_HEAD; - } - if (position == position_three - entity2List.get(2).getData().size() && entity2List.get(2).getData().get(0).getImage() != null) { - imgPosition = 2; - return ITEM_PIC; - } - if (position > position_three - entity2List.get(2).getData().size() - 1 && position < position_three) { - if ("新测卡牌".equals(entity2List.get(2).getName())) { - return ITEM_XINCE; - } - return ITEM; - } - } - - Log.e("Game2FragmentAdapter", "存在未知类型");//位置判定失败,默认返回大图布局 - return ITEM_PIC; - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View view; - switch (viewType) { - case ITEM_HEAD: - view = LayoutInflater.from(mContext).inflate(R.layout.home_list_item_head, parent, false); - return new HeadViewHolder(view); - case ITEM: - view = LayoutInflater.from(mContext).inflate(R.layout.game_plugin_item_gamenormal, parent, false); - return new GameNormalViewHolder(view); - case ITEM_PIC: - view = LayoutInflater.from(mContext).inflate(R.layout.game_tuijian_img, parent, false); - return new ReMenPicViewHolder(view); - case ITEM_XINCE: - view = LayoutInflater.from(mContext).inflate(R.layout.game_plugin_item_xincegame, parent, false); - return new GameXinceViewHolder(view); - default: - return null; - } - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { - GameEntity gameEntity = null; - int index = 0; - int arrId = -1;//记录专题位置 - if (position_one != -1 && position > 0 && position < position_one) { - index = position - 1; - arrId = 0; - gameEntity = entity2List.get(0).getData().get(index); - } else if (position_two != -1 && position > position_two - entity2List.get(1).getData().size() - 1 && position < position_two) { - index = position - position_one - 1; - arrId = 1; - gameEntity = entity2List.get(1).getData().get(index); - } else if (position_three != -1 && position > position_three - entity2List.get(2).getData().size() - 1 && position < position_three) { - index = position - position_two - 1; - arrId = 2; - gameEntity = entity2List.get(2).getData().get(index); - } - - - if (holder instanceof HeadViewHolder) { - if (position == 0) { - ((HeadViewHolder) holder).title.setText(entity2List.get(0).getName()); - } else if (position == position_two - entity2List.get(1).getData().size() - 1) { - ((HeadViewHolder) holder).title.setText(entity2List.get(1).getName()); - } else if (position == position_three - entity2List.get(2).getData().size() - 1) { - ((HeadViewHolder) holder).title.setText(entity2List.get(2).getName()); - } - } else if (holder instanceof GameNormalViewHolder) { - if (gameEntity != null) { - ((GameNormalViewHolder) holder).ranking.setVisibility(View.GONE); - ImageUtils.getInstance(mContext).display(gameEntity.getIcon(), ((GameNormalViewHolder) holder).gameThumb); - GameViewUtils.setLabelList(mContext, ((GameNormalViewHolder) holder).labelList, gameEntity.getTag()); - ((GameNormalViewHolder) holder).gameNameAndSize.setText(gameEntity.getName()); - ((GameNormalViewHolder) holder).gameDes.setText(gameEntity.getApk().get(0).getSize() + " | " + gameEntity.getBrief()); - if (arrId != -1 && entity2List.get(arrId).getOrder()) { - ((GameNormalViewHolder) holder).ranking.setVisibility(View.VISIBLE); - if (gameEntity.getName() == null) { - index = index + 1; - } - ((GameNormalViewHolder) holder).ranking.setText(index + ""); - } - } - final GameEntity finalGameEntity = gameEntity; - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - Map kv = new HashMap(); - kv.put("入口", "游戏-推荐-列表"); - DataUtils.onEvent(mContext, "游戏详情", finalGameEntity.getName(), - kv); - - Map map = new HashMap(); - map.put("location", "推荐-列表"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("game", finalGameEntity.getName()); - map.put("page", "游戏"); - DataCollectionManager.onEvent(mContext, "click-item", map); - - AppController.put("GameEntity", finalGameEntity); - Intent intent = new Intent(mContext, - GameDetailsActivity.class); - intent.putExtra("entrance", "游戏-推荐列表"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - mContext.startActivity(intent); - } - }); - } else if (holder instanceof GameXinceViewHolder) { - ((GameXinceViewHolder) holder).ranking.setVisibility(View.GONE); - ((GameXinceViewHolder) holder).gameDes.setText(gameEntity.getApk().get(0).getSize() + " | " + gameEntity.getBrief()); - ((GameXinceViewHolder) holder).gameNameAndSize.setText(gameEntity.getName()); - ((GameXinceViewHolder) holder).gameTestType.setText(gameEntity.getTest().getType()); - ((GameXinceViewHolder) holder).gameTestTime.setText(GameViewUtils.getGameTestDate(gameEntity.getTest().getStart())); - ImageUtils.getInstance(mContext).display(gameEntity.getIcon(), ((GameXinceViewHolder) holder).gameThumb); - if (arrId != -1 && entity2List.get(arrId).getOrder()) { - ((GameXinceViewHolder) holder).ranking.setVisibility(View.VISIBLE); - if (gameEntity.getName() == null) { - index = index + 1; - } - ((GameXinceViewHolder) holder).ranking.setText(index + ""); - } - final GameEntity finalGameEntity1 = gameEntity; - final int i = index; - ((GameXinceViewHolder) holder).rootItem.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - Map kv = new HashMap(); - kv.put("入口", "主页-新测卡牌"); - DataUtils.onEvent(mContext, "游戏详情", finalGameEntity1.getName(), kv); - - Map kv2 = new HashMap(); - kv2.put(finalGameEntity1.getName(), "点击量"); - DataUtils.onEvent(mContext, "主页数据", "新测卡牌", kv2); - - Map kv3 = new HashMap(); - kv3.put("新测卡牌", i + ""); - DataUtils.onEvent(mContext, "主页数据", "位置数据", kv3); - - Map map = new HashMap(); - map.put("location", "新测卡牌"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("game", finalGameEntity1.getName()); - map.put("page", "主页"); - DataCollectionManager.onEvent(mContext, "click-item", - map); - - AppController.put("GameEntity", finalGameEntity1); - Intent intent = new Intent(mContext, - GameDetailsActivity.class); - intent.putExtra("entrance", "主页-新测卡牌"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - mContext.startActivity(intent); - } - }); - } else if (holder instanceof ReMenPicViewHolder) { - final String id = gameEntity.getId(); - final String type = gameEntity.getType(); - ((ReMenPicViewHolder) holder).imageView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if ("game".equals(type)) { - Intent intent = new Intent(mContext, GameDetailsActivity.class); - intent.putExtra("gameId", id); - intent.putExtra("entrance", "插件-大图"); - mContext.startActivity(intent); - } else if ("news".equals(type)) { - Intent intent = new Intent(mContext, NewsActivity.class); - intent.putExtra("newsId", id); - intent.putExtra("entrance", "插件-大图"); - mContext.startActivity(intent); - } - } - }); - } - - } - - @Override - public int getItemCount() { - if (position_three != -1) { - return position_three; - } else if (position_two != -1) { - return position_two; - } else if (position_one != -1) { - return position_one; - } - return 0; - } - - public class HeadViewHolder extends RecyclerView.ViewHolder { - public ImageView thumb; - public TextView title; - public LinearLayout link; - - public HeadViewHolder(View view) { - super(view); - this.thumb = (ImageView) view.findViewById(R.id.head_thumb); - this.title = (TextView) view.findViewById(R.id.head_title); - this.link = (LinearLayout) view.findViewById(R.id.head_link); - } - } - - public class GameNormalViewHolder extends RecyclerView.ViewHolder { - public ImageView gameThumb; - public TextView gameNameAndSize; - public TextView downloadBtn; - public TextView gameDes; - public LinearLayout labelList; - public ProgressBar game_progressbar; - public LinearLayout game_ll_info; - public TextView download_speed; - public TextView download_percentage, ranking; - - public View rootItem; - - public GameNormalViewHolder(View v) { - super(v); - rootItem = v; - gameThumb = (ImageView) v.findViewById(R.id.home1_game_thumb); - gameNameAndSize = (TextView) v - .findViewById(R.id.home1_game_nameAndsize); - downloadBtn = (TextView) v.findViewById(R.id.home1_download_btn); - gameDes = (TextView) v.findViewById(R.id.home1_game_des); - labelList = (LinearLayout) v.findViewById(R.id.home1_label_list); - game_ll_info = (LinearLayout) v - .findViewById(R.id.home1_game_ll_info); - game_progressbar = (ProgressBar) v - .findViewById(R.id.home1_game_progressbar); - download_speed = (TextView) v - .findViewById(R.id.home1_download_speed); - download_percentage = (TextView) v - .findViewById(R.id.home1_download_percentage); - ranking = (TextView) v.findViewById(R.id.home1_game_ranking); - - } - - } - - public class GameXinceViewHolder extends RecyclerView.ViewHolder { - public ImageView gameThumb; - public TextView gameNameAndSize; - public TextView gameSize; - public TextView downloadBtn; - public TextView gameDes; - public TextView gameTestType; - public TextView gameTestTime; - public LinearLayout labelList; - public ProgressBar game_progressbar; - public LinearLayout game_ll_info; - public TextView download_speed; - public TextView download_percentage, ranking; - private View rootItem; - - public GameXinceViewHolder(View v) { - super(v); - this.rootItem = v; - gameThumb = (ImageView) v.findViewById(R.id.home2_game_thumb); - gameNameAndSize = (TextView) v - .findViewById(R.id.home2_game_nameAndsize); - downloadBtn = (TextView) v.findViewById(R.id.home2_download_btn); - gameDes = (TextView) v.findViewById(R.id.home2_game_des); - gameTestType = (TextView) v.findViewById(R.id.home2_test_type); - gameTestTime = (TextView) v.findViewById(R.id.home2_test_time); - labelList = (LinearLayout) v.findViewById(R.id.home2_label_list); - ranking = (TextView) v.findViewById(R.id.home2_game_ranking); - game_ll_info = (LinearLayout) v - .findViewById(R.id.home2_game_ll_info); - game_progressbar = (ProgressBar) v - .findViewById(R.id.home2_game_progressbar); - download_speed = (TextView) v - .findViewById(R.id.home2_download_speed); - download_percentage = (TextView) v - .findViewById(R.id.home2_download_percentage); - } - - } - - public class ReMenPicViewHolder extends RecyclerView.ViewHolder { - View view; - ImageView imageView; - - public ReMenPicViewHolder(View itemView) { - super(itemView); - view = itemView; - imageView = (ImageView) view.findViewById(R.id.tuijian_img); - ImageUtils.getInstance(mContext).display(entity2List.get(imgPosition).getData().get(0).getImage(), imageView); - - } - } - - public interface OnGamePluginCallBackListener { - void onRefreshEnabled(boolean isEnabled); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Plugin1Fragment.java b/app/src/main/java/com/gh/gamecenter/plugin/Plugin1Fragment.java deleted file mode 100644 index 472c2c8610..0000000000 --- a/app/src/main/java/com/gh/gamecenter/plugin/Plugin1Fragment.java +++ /dev/null @@ -1,356 +0,0 @@ -package com.gh.gamecenter.plugin; - -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.util.ArrayMap; -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.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.LinearLayout; - -import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.AppController; -import com.gh.common.constant.Constants; -import com.gh.common.util.DownloadItemUtils; -import com.gh.common.view.VerticalItemDecoration; -import com.gh.download.DataWatcher; -import com.gh.download.DownloadEntry; -import com.gh.download.DownloadManager; -import com.gh.gamecenter.R; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.DismissEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.eventbus.EBDownloadDelete; -import com.gh.gamecenter.eventbus.EBNetworkState; -import com.gh.gamecenter.eventbus.EBPWDismiss; -import com.gh.gamecenter.eventbus.EBPackage; -import com.gh.gamecenter.eventbus.EBUISwitch; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.concurrent.LinkedBlockingQueue; - -import de.greenrobot.event.EventBus; - -/** - * - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-10 modified 2015-8-13 插件界面下的精品fragment - */ -public class Plugin1Fragment extends Fragment implements OnRefreshListener { - - private View view; - private RecyclerView recyclerview; - private LinearLayoutManager layoutManager; - private SwipeRefreshLayout game_swipe_refresh; - private Plugin1FragmentAdapter adapter; - private LinearLayout reuse_no_connection; - private ProgressBarCircularIndeterminate game_pb_loading; - - // 黄壮华 添加 记录信息的map 修改2015/8/15 - private ArrayMap locationMap; - private ArrayMap> gameMap; - private ArrayMap> platformMap; - private ArrayMap nameMap; - - private boolean isEverpause = false; - private boolean isDestroy = false; - - private int currentItem = 0; - - private ArrayMap statusMap; - - private DismissEntity dismissEntity; - - private Handler handler = new Handler() { - @Override - public void handleMessage(Message msg) { - if (!isDestroy) { - if (msg.what == Constants.DOWNLOAD_ROLL) { - String name = (String) msg.obj; - if (platformMap != null) { - LinkedBlockingQueue queue = platformMap - .get(name); - if (queue.size() > 1) { - queue.offer(queue.poll()); - Message msg2 = Message.obtain(); - msg2.obj = name; - msg2.what = Constants.DOWNLOAD_ROLL; - sendMessageDelayed(msg2, 3000); - } - } - } - } - } - }; - - // 黄壮华 添加观察者 修改2015/8/15 - private DataWatcher dataWatcher = new DataWatcher() { - @Override - public void onDataChanged( - HashMap downloadingEntries) { - if (!game_swipe_refresh.isRefreshing()) { - for (java.util.Map.Entry entry : downloadingEntries - .entrySet()) { - DownloadEntry downloadEntry = entry.getValue(); - - Integer location = locationMap.get(downloadEntry.getName()); - if (location != null) { - int index = location.intValue(); - - GameEntity detailedEntity = adapter.getList() - .get(index); - - if (detailedEntity != null) { - DownloadItemUtils.processDate(detailedEntity, - downloadEntry, platformMap, handler, - adapter, index + 1, statusMap); - } - - } - } - } - } - }; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - - super.onCreate(savedInstanceState); - - view = View.inflate(getActivity(), R.layout.plugin1_fragment, null); - - statusMap = new ArrayMap(); - locationMap = new ArrayMap(); - gameMap = new ArrayMap>(); - platformMap = new ArrayMap>(); - nameMap = new ArrayMap(); - - dismissEntity = new DismissEntity(false); - - game_swipe_refresh = (SwipeRefreshLayout) view - .findViewById(R.id.game_swipe_refresh); - game_swipe_refresh.setColorSchemeResources(R.color.theme_colors); - game_swipe_refresh.setOnRefreshListener(this); - - recyclerview = (RecyclerView) view.findViewById(R.id.game_list); - recyclerview.setHasFixedSize(true); - layoutManager = new LinearLayoutManager(getActivity()); - recyclerview.setLayoutManager(layoutManager); - - // 黄壮华 添加 初始化游戏状态 修改2015/8/21 - DownloadItemUtils.initializeGameMap(getActivity(), gameMap); - - game_pb_loading = (ProgressBarCircularIndeterminate) view.findViewById(R.id.game_pb_loading); - - reuse_no_connection = (LinearLayout) view - .findViewById(R.id.reuse_no_connection); - reuse_no_connection.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - game_swipe_refresh.setRefreshing(true); - recyclerview.setVisibility(View.VISIBLE); - game_pb_loading.setVisibility(View.VISIBLE); - reuse_no_connection.setVisibility(View.GONE); - handler.postDelayed(runnable, 1000); - } - }); - - // 黄壮华 传递引用 修改2015/8/15 - adapter = new Plugin1FragmentAdapter(Plugin1Fragment.this, locationMap, - gameMap, platformMap, nameMap, game_swipe_refresh, - reuse_no_connection, recyclerview, statusMap, - dismissEntity, game_pb_loading, false); - recyclerview.setAdapter(adapter); - recyclerview.addItemDecoration(new VerticalItemDecoration(getActivity(), 1)); - recyclerview.setOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrollStateChanged(RecyclerView recyclerView, int newState) { - super.onScrollStateChanged(recyclerView, newState); - if (newState == RecyclerView.SCROLL_STATE_IDLE - && layoutManager.findLastVisibleItemPosition() == 1 + adapter - .getList().size()) { - if (!adapter.isRemove() && !adapter.isLoading()) { - adapter.addList(adapter.getList().size()); - } - } - } - - }); - - EventBus.getDefault().register(this); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); - } - return view; - } - - public void onEventMainThread(EBDownloadDelete busThree) { - LinkedBlockingQueue queue = platformMap.get(busThree.getName()); - if (queue != null) { - queue.remove(busThree.getPlatform()); - platformMap.put(busThree.getName(), queue); - } - Integer location = locationMap.get(busThree.getName()); - if (location != null) { - int index = location.intValue(); - GameEntity detailedEntity = adapter.getList().get(index); - if (TextUtils.isEmpty(busThree.getPlatform())) { - detailedEntity.getEntryMap().remove("官方版"); - } else { - detailedEntity.getEntryMap().remove(busThree.getPlatform()); - } - adapter.notifyItemChanged(index + 1); - } - } - - public void onEventMainThread(EBNetworkState busNetworkState) { - if (busNetworkState.isNetworkConnected()) { - if (reuse_no_connection.getVisibility() == View.VISIBLE) { - game_swipe_refresh.setRefreshing(true); - recyclerview.setVisibility(View.VISIBLE); - game_pb_loading.setVisibility(View.VISIBLE); - 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.getList().size()); - } - } - } - - public void onEventMainThread(EBPWDismiss dismiss) { - if (dismissEntity != null) { - dismissEntity.setShow(false); - } - } - - public void onEventMainThread(EBUISwitch busNine) { - if ("PluginFragment".equals(busNine.getFrom())) { - currentItem = busNine.getPosition(); - if (busNine.getPosition() == 0) { - adapter.startAutoScroll(); - if (game_pb_loading.getVisibility() == View.VISIBLE) { - adapter.load(); - } - } else { - adapter.stopAutoScroll(); - } - } else if ("MainActivity".equals(busNine.getFrom())) { - if (busNine.getPosition() != 1) { - adapter.stopAutoScroll(); - statusMap.clear(); - } - } - } - - public void onEventMainThread(EBPackage busFour) { - String name = nameMap.get(busFour.getPackageName()); - if (name != null) { - int location = locationMap.get(name); - if ("安装".equals(busFour.getType())) { - GameEntity detailedEntity = adapter.getList().get(location); - for (ApkEntity apkEntity : detailedEntity.getApk()) { - if (apkEntity.getPackageName().equals( - busFour.getPackageName())) { - detailedEntity.getEntryMap().remove( - apkEntity.getPlatform()); - adapter.notifyItemChanged(location + 1); - break; - } - } - } else if ("卸载".equals(busFour.getType())) { - adapter.notifyItemChanged(location + 1); - } - } - } - - @Override - public void onResume() { - super.onResume(); - if (isEverpause) { - // 黄壮华 添加 初始化游戏状态 修改2015/8/21 - DownloadItemUtils.initializeGameMap(getActivity(), gameMap); - List entities = new ArrayList(); - for (GameEntity entity : adapter.getList()) { - entity.setEntryMap(gameMap.get(entity.getName())); - entities.add(entity); - } - adapter.setList(entities); - } - isEverpause = false; - DownloadManager.getInstance(getActivity()).addObserver(dataWatcher); - if (currentItem == 0) { - adapter.startAutoScroll(); - } - } - - public boolean isEverpause() { - return isEverpause; - } - - @Override - public void onPause() { - super.onPause(); - isEverpause = true; - statusMap.clear(); - DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher); - if (currentItem == 0) { - adapter.stopAutoScroll(); - } - } - - Runnable runnable = new Runnable() { - @Override - public void run() { - adapter = new Plugin1FragmentAdapter(Plugin1Fragment.this, - locationMap, gameMap, platformMap, nameMap, - game_swipe_refresh, reuse_no_connection, recyclerview, - statusMap, dismissEntity, game_pb_loading, true); - recyclerview.setAdapter(adapter); - } - }; - - @Override - public void onRefresh() { - handler.postDelayed(runnable, 1000); - } - - @Override - public void onDestroy() { - super.onDestroy(); - isDestroy = true; - AppController.canclePendingRequests(Plugin1Fragment.class); - EventBus.getDefault().unregister(this); - view = null; - recyclerview = null; - game_swipe_refresh = null; - adapter = null; - reuse_no_connection = null; - locationMap = null; - gameMap = null; - platformMap = null; - nameMap = null; - statusMap = null; - dismissEntity = null; - handler = null; - dataWatcher = null; - game_pb_loading = null; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Plugin1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/plugin/Plugin1FragmentAdapter.java deleted file mode 100644 index 6b2a277127..0000000000 --- a/app/src/main/java/com/gh/gamecenter/plugin/Plugin1FragmentAdapter.java +++ /dev/null @@ -1,610 +0,0 @@ -package com.gh.gamecenter.plugin; - -import android.content.Context; -import android.content.Intent; -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.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.LinearLayout.LayoutParams; -import android.widget.TextView; -import android.widget.Toast; - -import com.android.volley.NoConnectionError; -import com.android.volley.Response; -import com.android.volley.TimeoutError; -import com.android.volley.VolleyError; -import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.AppController; -import com.gh.common.constant.Config; -import com.gh.common.constant.Constants; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.DownloadItemUtils; -import com.gh.common.util.GameViewUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.TimestampUtils; -import com.gh.common.view.AutoScrollViewPager; -import com.gh.download.DownloadEntry; -import com.gh.gamecenter.GameDetailsActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.ImagePagerAdapter; -import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameViewHolder; -import com.gh.gamecenter.db.info.GameInfo; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.DismissEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.manager.DataCollectionManager; -import com.gh.gamecenter.manager.GameManager; -import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; - -import org.json.JSONArray; - -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.LinkedBlockingQueue; - -/** - * - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-13 - * @update 2015-8-13 - * @des 插件板块下的精品栏目 - */ -public class Plugin1FragmentAdapter extends - RecyclerView.Adapter { - - private Context context; - - private Plugin1Fragment fragment; - - private RecyclerView recyclerview; - private SwipeRefreshLayout game_swipe_refresh; - private LinearLayout reuse_no_connection; - - private ProgressBarCircularIndeterminate game_pb_loading; - - private List slideList; - private List list; - - private boolean isRemove; - private boolean isLoading; -// private boolean isLoaded; - private boolean isNetworkError; - private boolean isSlideError; - private boolean isListError; - - // 黄壮华 获取引用 修改2015/8/15 - private ArrayMap locationMap; - private ArrayMap> gameMap; - private ArrayMap> platformMap; - private ArrayMap nameMap; - - private ArrayMap statusMap; - - private DismissEntity dismissEntity; - - // 黄壮华 获取引用 修改2015/8/15 - public Plugin1FragmentAdapter(Plugin1Fragment fment, - ArrayMap lMap, - ArrayMap> gMap, - ArrayMap> pMap, - ArrayMap nMap, - SwipeRefreshLayout swipeRefreshLayout, - LinearLayout linearLayout, - RecyclerView rView, - ArrayMap sMap, - DismissEntity dEntity, - ProgressBarCircularIndeterminate pbLoading, - boolean isLoad) { - - fragment = fment; - context = fment.getActivity(); - locationMap = lMap; - gameMap = gMap; - platformMap = pMap; - nameMap = nMap; - game_swipe_refresh = swipeRefreshLayout; - reuse_no_connection = linearLayout; - recyclerview = rView; - game_pb_loading = pbLoading; - - statusMap = sMap; - - dismissEntity = dEntity; - - list = new ArrayList(); - slideList = new ArrayList(); - - isRemove = false; - isLoading = false; -// isLoaded = false; - isNetworkError = false; - isSlideError = false; - isListError = false; - - if (isLoad) { - load(); - } - } - - public void load() { - new Thread(runnable){}.start(); - } - - Runnable runnable = new Runnable() { - @Override - public void run() { - initSlide(true); - } - }; - - private void initSlide(final boolean isFirst) { - if (isLoading) { - return; - } - JsonArrayExtendedRequest slideRequest = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST + "v1d45/plugin/slide", - Constants.GAME_CD), new Response.Listener() { - @Override - public void onResponse(JSONArray response) { - Type listType = new TypeToken>() {}.getType(); - Gson gson = new Gson(); - slideList = gson.fromJson(response.toString(), listType); - if (slideList != null && !slideList.isEmpty()) { - GameManager manager = new GameManager(context); - for (GameEntity entity : slideList) { - for (ApkEntity apkEntity : entity.getApk()) { - manager.addOrUpdate(new GameInfo( - apkEntity.getPackageName(), entity - .getId(), entity.getName())); - } - } - notifyItemChanged(0); - } - if (isFirst) { - addList(0); - } - } - - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - // 无网络连接 - if (error.getClass().equals(NoConnectionError.class) - || error.getClass().equals(TimeoutError.class)) { - isSlideError = true; - if (!isFirst) { - Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT).show(); - notifyItemChanged(0); - } else { - showView(); - } - } - - if (isFirst) { - addList(0); - } - } - }); - AppController.addToRequestQueue(slideRequest, Plugin1Fragment.class); - } - - public void addList(final int offset) { - if (isLoading) { - return; - } - isLoading = true; - JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d45/plugin/jingpin?limit=20&offset=" + offset, - Constants.GAME_CD), new Response.Listener() { - - @Override - public void onResponse(JSONArray response) { - processingData(response, offset); - isLoading = false; -// isLoaded = true; -// notifyItemChanged(getItemCount() - 1); - } - - }, new Response.ErrorListener() { - - @Override - public void onErrorResponse(VolleyError error) { - isLoading = false; - // 无网络连接和访问超时 - if (error.getClass().equals(NoConnectionError.class) - || error.getClass().equals(TimeoutError.class)) { - if (offset == 0) { - if (game_swipe_refresh.isRefreshing()) { - game_swipe_refresh.setRefreshing(false); - } - isListError = true; - showView(); - } else { - Toast.makeText(context, "网络错误", - Toast.LENGTH_SHORT).show(); - isNetworkError = true; - notifyItemChanged(getItemCount() - 1); - } - } - } - - }); - AppController.addToRequestQueue(request, Plugin1Fragment.class); - } - - private void showView() { - if (isSlideError && isListError) { - Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT).show(); - recyclerview.setVisibility(View.GONE); - game_pb_loading.setVisibility(View.GONE); - reuse_no_connection.setVisibility(View.VISIBLE); - } else if (isSlideError && !isListError) { - Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT).show(); - notifyItemChanged(0); - } else if (!isSlideError && isListError) { - Toast.makeText(context, "网络错误", Toast.LENGTH_SHORT).show(); - notifyItemChanged(getItemCount() - 1); - } - } - - private void processingData(JSONArray response, int offset) { - Type listType = new TypeToken>() {}.getType(); - Gson gson = new Gson(); - GameManager manager = new GameManager(context); - List gameList = gson - .fromJson(response.toString(), listType); - if (gameList != null && !gameList.isEmpty()) { - if (!list.isEmpty()) { - for (int i = 0; i < gameList.size(); i++) { - GameEntity entity = gameList.get(i); - // 去重 - for (int j = 0; j < list.size(); j++) { - if (list.get(j).getId().equals(entity.getId())) { - gameList.remove(i); - i--; - break; - } - } - } - } - for (GameEntity entity : gameList) { - // 黄壮华 初始化游戏状态 修改2015/8/15 - entity.setEntryMap(gameMap.get(entity.getName())); - for (ApkEntity apkEntity : entity.getApk()) { - manager.addOrUpdate(new GameInfo(apkEntity.getPackageName(), - entity.getId(), entity.getName())); - } - } - list.addAll(gameList); - if (!fragment.isHidden() && !fragment.isEverpause()) { - notifyItemRangeInserted(list.size() - gameList.size() + 1, gameList.size()); - } - } - - if (fragment.isHidden() || fragment.isEverpause()) { - notifyDataSetChanged(); - } - - if (offset == 0 && game_swipe_refresh.isRefreshing()) { - game_swipe_refresh.setRefreshing(false); - } - - if (game_pb_loading != null && game_pb_loading.getVisibility() == View.VISIBLE) { - game_pb_loading.setVisibility(View.GONE); - } - - if (gameList.isEmpty() || (offset == 0 && gameList.size() < 20)) { - isRemove = true; - notifyItemChanged(getItemCount() - 1); - } - - // 黄壮华 获取游戏位置信息 修改2015/8/15 - for (int i = 0, size = list.size(); i < size; i++) { - GameEntity entity = list.get(i); - locationMap.put(entity.getName(), i); - for (ApkEntity apkEntity : entity.getApk()) { - nameMap.put(apkEntity.getPackageName(), entity.getName()); - } - } - - - } - - @Override - public int getItemCount() { - if (list.isEmpty()) { - if (isListError) { - return 1 + list.size() + 1; - } else { - return 1 + list.size(); - } - } else { - return 1 + list.size() + 1; - } - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, - int position) { - if (viewHolder instanceof AutoScrollViewpagerViewHolder) { - AutoScrollViewpagerViewHolder holder = (AutoScrollViewpagerViewHolder) viewHolder; - if (isSlideError) { - holder.viewpager_tv_failure.setVisibility(View.VISIBLE); - holder.viewPager.setVisibility(View.GONE); - holder.viewpager_ll_hint.setVisibility(View.GONE); - } else { - holder.viewpager_tv_failure.setVisibility(View.GONE); - holder.viewPager.setVisibility(View.VISIBLE); - holder.viewpager_ll_hint.setVisibility(View.VISIBLE); - } - if (slideList.size() > 0) { - int currentItem = 0; - if (holder.viewPager.getAdapter() != null) { - currentItem = holder.viewPager.getCurrentItem(); - } - holder.viewpager_ll_hint.removeAllViews(); - for (int i = 0, size = slideList.size(); i < size; i++) { - ImageView imageView = new ImageView(context); - LayoutParams lparams = new LayoutParams( - DisplayUtils.dip2px(context, 8), - DisplayUtils.dip2px(context, 8)); - lparams.bottomMargin = DisplayUtils.dip2px(context, 8); - if (i == currentItem) { - imageView.setImageResource(R.drawable.oval_hint_dn); - } else { - imageView.setImageResource(R.drawable.oval_hint_up); - } - if (i != 0) { - lparams.leftMargin = DisplayUtils.dip2px(context, 8); - } - imageView.setLayoutParams(lparams); - holder.viewpager_ll_hint.addView(imageView); - } - holder.viewPager.setAdapter(new ImagePagerAdapter(context, - slideList, true)); - holder.viewPager.setCurrentItem(currentItem); - holder.viewPager.setInterval(3000); - holder.viewPager.startAutoScroll(); - } - } else if (viewHolder instanceof GameViewHolder) { - - GameViewHolder holder = (GameViewHolder) viewHolder; - - final GameEntity detailedEntity = list.get(position - 1); - - ImageUtils.getInstance(context).display(detailedEntity.getIcon(), - holder.gameThumb); - if (detailedEntity.getApk() == null - || detailedEntity.getApk().isEmpty()) { - holder.gameNameAndSize.setText(detailedEntity.getName()); - } else { - holder.gameNameAndSize.setText(detailedEntity.getName() - + " | " + detailedEntity.getApk().get(0).getSize()); - } - holder.gameDes.setText(detailedEntity.getBrief()); - - // 添加tag标签 - GameViewUtils.setLabelList(context, holder.labelList, - detailedEntity.getTag()); - - // 添加点击事件 - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - Map kv = new HashMap(); - kv.put("入口", "插件-精品-列表"); - DataUtils.onEvent(context, "游戏详情", detailedEntity.getName(), - kv); - - Map map = new HashMap(); - map.put("location", "精品-列表"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("game", detailedEntity.getName()); - map.put("page", "插件"); - DataCollectionManager.onEvent(context, "click-item", map); - - AppController.put("GameEntity", detailedEntity); - Intent intent = new Intent(context, - GameDetailsActivity.class); - intent.putExtra("entrance", "插件-精品列表"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - - DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, - holder.downloadSpeed, holder.downloadPercentage, - detailedEntity, position, this, - statusMap, platformMap, "插件-精品", dismissEntity, "精品:" - + detailedEntity.getName()); - - DownloadItemUtils.updateItem(context, holder.labelList, - holder.gameProgressbar, holder.gameInfo, - holder.downloadSpeed, holder.downloadPercentage, - holder.downloadBtn, detailedEntity, platformMap, statusMap); - } else if (viewHolder instanceof FooterViewHolder) { - FooterViewHolder holder = (FooterViewHolder) viewHolder; - if (isNetworkError || isListError) { - holder.footerview_progressbar.setVisibility(View.GONE); - holder.footerview_tv_loading.setText("加载失败,点击重试"); - holder.rootView.setClickable(true); - holder.rootView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - isNetworkError = false; - notifyItemChanged(getItemCount() - 1); - addList(list.size()); - } - }); - } else if (isRemove) { - holder.footerview_progressbar.setVisibility(View.GONE); - holder.footerview_tv_loading.setText("加载完毕"); - holder.rootView.setClickable(false); - } -// else if (isLoaded) { -// holder.footerview_progressbar.setVisibility(View.GONE); -// holder.footerview_tv_loading.setText("点击加载更多"); -// holder.rootView.setClickable(true); -// holder.rootView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// isLoaded = false; -// notifyItemChanged(getItemCount() - 1); -// addList(list.size()); -// } -// }); -// } - else { - holder.footerview_progressbar.setVisibility(View.VISIBLE); - holder.footerview_tv_loading.setText("加载中..."); - holder.rootView.setClickable(false); - } - } - } - - @Override - public int getItemViewType(int position) { - return position; - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { - if (i == 0) { - View view = LayoutInflater.from(viewGroup.getContext()).inflate( - R.layout.plugin1_autoscrollviewpager_viewholder, viewGroup, - false); - DisplayMetrics outMetrics = new DisplayMetrics(); - fragment.getActivity().getWindowManager().getDefaultDisplay() - .getMetrics(outMetrics); - ViewGroup.LayoutParams params = new ViewGroup.LayoutParams( - LayoutParams.MATCH_PARENT, - (int) (outMetrics.widthPixels / 16f * 7f)); - view.setLayoutParams(params); - return new AutoScrollViewpagerViewHolder(view); - } else if (i > 0 && i <= list.size()) { - return new GameViewHolder(LayoutInflater.from( - viewGroup.getContext()).inflate( - R.layout.home_list_item_gamenormal_type, viewGroup, false)); - } else { - return new FooterViewHolder(LayoutInflater.from( - viewGroup.getContext()).inflate( - R.layout.refresh_footerview, viewGroup, false)); - } - } - - public class AutoScrollViewpagerViewHolder extends RecyclerView.ViewHolder { - private AutoScrollViewPager viewPager; - private LinearLayout viewpager_ll_hint; - private TextView viewpager_tv_failure; - - public AutoScrollViewpagerViewHolder(View v) { - super(v); - viewpager_tv_failure = (TextView) v - .findViewById(R.id.viewpager_tv_failure); - viewpager_tv_failure.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - isSlideError = false; - notifyItemChanged(0); - initSlide(false); - } - }); - viewpager_ll_hint = (LinearLayout) v - .findViewById(R.id.viewpager_ll_hint); - viewPager = (AutoScrollViewPager) v.findViewById(R.id.view_pager); - viewPager - .addOnPageChangeListener(new ViewPager.OnPageChangeListener() { - - @Override - public void onPageSelected(int position) { - for (int i = 0, size = viewpager_ll_hint - .getChildCount(); i < size; i++) { - if (i == position % size) { - ((ImageView) viewpager_ll_hint - .getChildAt(i)) - .setImageResource(R.drawable.oval_hint_dn); - } else { - ((ImageView) viewpager_ll_hint - .getChildAt(i)) - .setImageResource(R.drawable.oval_hint_up); - } - } - } - - @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); - } - } - }); - autoScrollViewPager = viewPager; - } - - } - - private AutoScrollViewPager autoScrollViewPager; - - public void startAutoScroll() { - if (autoScrollViewPager != null) { - autoScrollViewPager.startAutoScroll(); - } - } - - public void stopAutoScroll() { - if (autoScrollViewPager != null) { - autoScrollViewPager.stopAutoScroll(); - } - } - - public boolean isRemove() { - return isRemove; - } - - public boolean isLoading() { - return isLoading; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - notifyItemRangeChanged(1, list.size()); - } - - public boolean isNetworkError() { - return isNetworkError; - } - - public void setNetworkError(boolean isNetworkError) { - this.isNetworkError = isNetworkError; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Plugin2Fragment.java b/app/src/main/java/com/gh/gamecenter/plugin/Plugin2Fragment.java deleted file mode 100644 index a41bcd671a..0000000000 --- a/app/src/main/java/com/gh/gamecenter/plugin/Plugin2Fragment.java +++ /dev/null @@ -1,345 +0,0 @@ -package com.gh.gamecenter.plugin; - -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.util.ArrayMap; -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.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.LinearLayout; - -import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.AppController; -import com.gh.common.constant.Constants; -import com.gh.common.util.DownloadItemUtils; -import com.gh.common.view.VerticalItemDecoration; -import com.gh.download.DataWatcher; -import com.gh.download.DownloadEntry; -import com.gh.download.DownloadManager; -import com.gh.gamecenter.R; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.DismissEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.eventbus.EBDownloadDelete; -import com.gh.gamecenter.eventbus.EBNetworkState; -import com.gh.gamecenter.eventbus.EBPWDismiss; -import com.gh.gamecenter.eventbus.EBPackage; -import com.gh.gamecenter.eventbus.EBUISwitch; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.concurrent.LinkedBlockingQueue; - -import de.greenrobot.event.EventBus; - -/** - * - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-8 - * @update 2015-8-11 - * @des 主页插件fragment - */ -public class Plugin2Fragment extends Fragment implements OnRefreshListener { - - private View view; - private RecyclerView recyclerview; - private SwipeRefreshLayout game_swipe_refresh; - private Plugin2FragmentAdapter adapter; - private LinearLayoutManager layoutManager; - private LinearLayout reuse_no_connection; - private ProgressBarCircularIndeterminate game_pb_loading; - - // 黄壮华 添加 记录信息的map 修改2015/8/15 - private ArrayMap locationMap; - private ArrayMap> gameMap; - private ArrayMap> platformMap; - private ArrayMap nameMap; - - private boolean isEverpause = false; - private boolean isDestroy = false; - - private ArrayMap statusMap; - - private DismissEntity dismissEntity; - - private Handler handler = new Handler() { - @Override - public void handleMessage(Message msg) { - if (!isDestroy) { - if (msg.what == Constants.DOWNLOAD_ROLL) { - String name = (String) msg.obj; - if (platformMap != null) { - LinkedBlockingQueue queue = platformMap - .get(name); - if (queue.size() > 1) { - queue.offer(queue.poll()); - Message msg2 = Message.obtain(); - msg2.obj = name; - msg2.what = Constants.DOWNLOAD_ROLL; - sendMessageDelayed(msg2, 3000); - } - } - } - } - } - }; - - // 黄壮华 添加观察者 修改2015/8/15 - private DataWatcher dataWatcher = new DataWatcher() { - @Override - public void onDataChanged( - HashMap downloadingEntries) { - if (!game_swipe_refresh.isRefreshing()) { - for (java.util.Map.Entry entry : downloadingEntries - .entrySet()) { - DownloadEntry downloadEntry = entry.getValue(); - - Integer location = locationMap.get(downloadEntry.getName()); - if (location != null) { - int index = location.intValue(); - - GameEntity detailedEntity = adapter.getList() - .get(index); - - if (detailedEntity != null) { - DownloadItemUtils.processDate(detailedEntity, - downloadEntry, platformMap, handler, - adapter, index, statusMap); - } - - } - } - } - } - }; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - - super.onCreate(savedInstanceState); - - view = View.inflate(getActivity(), R.layout.plugin1_fragment, null); - - statusMap = new ArrayMap(); - locationMap = new ArrayMap(); - gameMap = new ArrayMap>(); - platformMap = new ArrayMap>(); - nameMap = new ArrayMap(); - - dismissEntity = new DismissEntity(false); - - game_swipe_refresh = (SwipeRefreshLayout) view - .findViewById(R.id.game_swipe_refresh); - game_swipe_refresh.setColorSchemeResources(R.color.theme_colors); - game_swipe_refresh.setOnRefreshListener(this); - - recyclerview = (RecyclerView) view.findViewById(R.id.game_list); - recyclerview.setHasFixedSize(true); - layoutManager = new LinearLayoutManager(getActivity()); - recyclerview.setLayoutManager(layoutManager); - - // 黄壮华 添加 初始化游戏状态 修改2015/8/21 - DownloadItemUtils.initializeGameMap(getActivity(), gameMap); - - game_pb_loading = (ProgressBarCircularIndeterminate) view.findViewById(R.id.game_pb_loading); - - reuse_no_connection = (LinearLayout) view - .findViewById(R.id.reuse_no_connection); - reuse_no_connection.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - game_swipe_refresh.setRefreshing(true); - recyclerview.setVisibility(View.VISIBLE); - game_pb_loading.setVisibility(View.VISIBLE); - reuse_no_connection.setVisibility(View.GONE); - handler.postDelayed(runnable, 1000); - } - }); - - // 黄壮华 传递引用 修改2015/8/15 - adapter = new Plugin2FragmentAdapter(Plugin2Fragment.this, - locationMap, gameMap, platformMap, nameMap, recyclerview, - game_swipe_refresh, reuse_no_connection, - statusMap, dismissEntity, game_pb_loading, false); - recyclerview.setAdapter(adapter); - recyclerview.setOnScrollListener(new RecyclerView.OnScrollListener() { - - @Override - public void onScrollStateChanged(RecyclerView recyclerView, - int newState) { - super.onScrollStateChanged(recyclerView, newState); - if (newState == RecyclerView.SCROLL_STATE_IDLE - && layoutManager.findLastVisibleItemPosition() == adapter - .getList().size()) { - if (!adapter.isRemove() && !adapter.isLoading()) { - adapter.addList(adapter.getList().size()); - } - } - } - - }); - recyclerview.addItemDecoration(new VerticalItemDecoration(getActivity(), 1)); - - EventBus.getDefault().register(this); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); - } - return view; - } - - public void onEventMainThread(EBDownloadDelete busThree) { - LinkedBlockingQueue queue = platformMap.get(busThree.getName()); - if (queue != null) { - queue.remove(busThree.getPlatform()); - platformMap.put(busThree.getName(), queue); - } - Integer location = locationMap.get(busThree.getName()); - if (location != null) { - int index = location.intValue(); - GameEntity detailedEntity = adapter.getList().get(index); - if (TextUtils.isEmpty(busThree.getPlatform())) { - detailedEntity.getEntryMap().remove("官方版"); - } else { - detailedEntity.getEntryMap().remove(busThree.getPlatform()); - } - adapter.notifyItemChanged(index); - } - } - - public void onEventMainThread(EBPWDismiss dismiss) { - if (dismissEntity != null) { - dismissEntity.setShow(false); - } - } - - public void onEventMainThread(EBPackage busFour) { - String name = nameMap.get(busFour.getPackageName()); - if (name != null) { - int location = locationMap.get(name); - if ("安装".equals(busFour.getType())) { - GameEntity detailedEntity = adapter.getList().get(location); - for (ApkEntity apkEntity : detailedEntity.getApk()) { - if (apkEntity.getPackageName().equals( - busFour.getPackageName())) { - detailedEntity.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) { - game_swipe_refresh.setRefreshing(true); - recyclerview.setVisibility(View.VISIBLE); - game_pb_loading.setVisibility(View.VISIBLE); - 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.getList().size()); - } - } - } - - public void onEventMainThread(EBUISwitch busNine) { - if ("MainActivity".equals(busNine.getFrom())) { - if (busNine.getPosition() != 1) { - statusMap.clear(); - } - } else if ("PluginFragment".equals(busNine.getFrom()) && busNine.getPosition() == 1 - && game_pb_loading.getVisibility() == View.VISIBLE) { - adapter.load(); - } - } - - @Override - public void onResume() { - super.onResume(); - if (isEverpause) { - // 黄壮华 添加 初始化游戏状态 修改2015/8/21 - DownloadItemUtils.initializeGameMap(getActivity(), gameMap); - List entities = new ArrayList(); - for (GameEntity entity : adapter.getList()) { - entity.setEntryMap(gameMap.get(entity.getName())); - entities.add(entity); - } - adapter.setList(entities); - } - isEverpause = false; - DownloadManager.getInstance(getActivity()).addObserver(dataWatcher); - } - - public boolean isEverpause() { - return isEverpause; - } - - @Override - public void onPause() { - super.onPause(); - isEverpause = true; - statusMap.clear(); - DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher); - } - - Runnable runnable = new Runnable() { - @Override - public void run() { - adapter = new Plugin2FragmentAdapter(Plugin2Fragment.this, - locationMap, gameMap, platformMap, nameMap, recyclerview, - game_swipe_refresh, reuse_no_connection, statusMap, dismissEntity, - game_pb_loading, true); - recyclerview.setAdapter(adapter); - } - }; - - @Override - public void onRefresh() { - handler.postDelayed(runnable, 1000); - } - - @Override - public void onDestroy() { - super.onDestroy(); - isDestroy = true; - AppController.canclePendingRequests(Plugin2Fragment.class); - EventBus.getDefault().unregister(this); - view = null; - recyclerview = null; - game_swipe_refresh = null; - adapter = null; - layoutManager = null; - reuse_no_connection = null; - locationMap = null; - gameMap = null; - platformMap = null; - nameMap = null; - statusMap = null; - dismissEntity = null; - handler = null; - dataWatcher = null; - game_pb_loading = null; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Plugin2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/plugin/Plugin2FragmentAdapter.java deleted file mode 100644 index 810bd02737..0000000000 --- a/app/src/main/java/com/gh/gamecenter/plugin/Plugin2FragmentAdapter.java +++ /dev/null @@ -1,387 +0,0 @@ -package com.gh.gamecenter.plugin; - -import android.content.Context; -import android.content.Intent; -import android.support.v4.util.ArrayMap; -import android.support.v4.widget.SwipeRefreshLayout; -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.Toast; - -import com.android.volley.NoConnectionError; -import com.android.volley.Response; -import com.android.volley.TimeoutError; -import com.android.volley.VolleyError; -import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.AppController; -import com.gh.common.constant.Config; -import com.gh.common.constant.Constants; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DownloadItemUtils; -import com.gh.common.util.GameViewUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.TimestampUtils; -import com.gh.download.DownloadEntry; -import com.gh.gamecenter.GameDetailsActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameViewHolder; -import com.gh.gamecenter.db.info.GameInfo; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.DismissEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.manager.DataCollectionManager; -import com.gh.gamecenter.manager.GameManager; -import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; - -import org.json.JSONArray; - -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.LinkedBlockingQueue; - -/** - * - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-8 - * @update 2015-8-11 - * @des 首页插件fragment适配器 - */ -public class Plugin2FragmentAdapter extends - RecyclerView.Adapter { - - private Context context; - - private Plugin2Fragment fragment; - - private RecyclerView recyclerView; - private SwipeRefreshLayout game_swipe_refresh; - private LinearLayout reuse_no_connection; - - private ProgressBarCircularIndeterminate game_pb_loading; - - private boolean isRemove; - private boolean isLoading; - private boolean isNetworkError; - - private List list; - - // 黄壮华 获取引用 修改2015/8/15 - private ArrayMap locationMap; - private ArrayMap> gameMap; - private ArrayMap> platformMap; - private ArrayMap nameMap; - - private ArrayMap statusMap; - - private DismissEntity dismissEntity; - - // 黄壮华 获取引用 修改2015/8/15 - public Plugin2FragmentAdapter(Plugin2Fragment fment, - ArrayMap lMap, - ArrayMap> gMap, - ArrayMap> pMap, - ArrayMap nMap, - RecyclerView rView, - SwipeRefreshLayout refreshLayout, - LinearLayout linearLayout, - ArrayMap sMap, - DismissEntity dEntity, - ProgressBarCircularIndeterminate pbLoading, - boolean isLoad) { - - // 黄壮华 获取引用 修改2015/8/15 - locationMap = lMap; - gameMap = gMap; - platformMap = pMap; - nameMap = nMap; - recyclerView = rView; - game_swipe_refresh = refreshLayout; - reuse_no_connection = linearLayout; - game_pb_loading = pbLoading; - - statusMap = sMap; - - dismissEntity = dEntity; - - fragment = fment; - context = fment.getActivity(); - - isRemove = false; - isLoading = false; - isNetworkError = false; - - list = new ArrayList(); - - if (isLoad) { - load(); - } - } - - public void load() { - new Thread(runnable){}.start(); - } - - Runnable runnable = new Runnable() { - @Override - public void run() { - addList(0); - } - }; - - public void addList(final int offset) { - if (isLoading) { - return; - } - isLoading = true; - JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d45/plugin/zuixin?limit=20&offset=" + offset, - Constants.GAME_CD), new Response.Listener() { - - @Override - public void onResponse(JSONArray response) { - processingData(response, offset); - isLoading = false; - } - - }, new Response.ErrorListener() { - - @Override - public void onErrorResponse(VolleyError error) { - isLoading = false; - // 无网络连接和访问超时 - if (error.getClass().equals(NoConnectionError.class) - || error.getClass().equals(TimeoutError.class)) { - if (offset == 0) { - if (game_swipe_refresh.isRefreshing()) { - game_swipe_refresh.setRefreshing(false); - } - recyclerView.setVisibility(View.GONE); - game_pb_loading.setVisibility(View.GONE); - reuse_no_connection.setVisibility(View.VISIBLE); - } else { - Toast.makeText(context, "网络错误", - Toast.LENGTH_SHORT).show(); - isNetworkError = true; - notifyItemChanged(getItemCount() - 1); - } - } - } - - }); - AppController.addToRequestQueue(request, Plugin2Fragment.class); - } - - private void processingData(JSONArray response, int offset) { - Type listType = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - GameManager manager = new GameManager(context); - List gameList = gson - .fromJson(response.toString(), listType); - if (gameList != null && !gameList.isEmpty()) { - if (!list.isEmpty()) { - for (int i = 0; i < gameList.size(); i++) { - GameEntity entity = gameList.get(i); - // 去重 - for (int j = 0; j < list.size(); j++) { - if (list.get(j).getId().equals(entity.getId())) { - gameList.remove(i); - i--; - break; - } - } - } - } - for (GameEntity entity : gameList) { - // 黄壮华 初始化游戏状态 修改2015/8/15 - entity.setEntryMap(gameMap.get(entity.getName())); - for (ApkEntity apkEntity : entity.getApk()) { - manager.addOrUpdate(new GameInfo(apkEntity.getPackageName(), - entity.getId(), entity.getName())); - } - } - list.addAll(gameList); - if (!fragment.isHidden() && !fragment.isEverpause()) { - notifyItemRangeInserted(list.size() - gameList.size(), gameList.size()); - } - } - - if (fragment.isHidden() || fragment.isEverpause()) { - notifyDataSetChanged(); - } - - if (offset == 0 && game_swipe_refresh.isRefreshing()) { - game_swipe_refresh.setRefreshing(false); - } - - if (game_pb_loading != null && game_pb_loading.getVisibility() == View.VISIBLE) { - game_pb_loading.setVisibility(View.GONE); - } - - if (gameList.isEmpty() || (offset == 0 && gameList.size() < 20)) { - isRemove = true; - notifyItemRemoved(getItemCount()); - } - - // 黄壮华 获取游戏位置信息 修改2015/8/15 - for (int i = 0, size = list.size(); i < size; i++) { - GameEntity entity = list.get(i); - locationMap.put(entity.getName(), i); - for (ApkEntity apkEntity : entity.getApk()) { - nameMap.put(apkEntity.getPackageName(), entity.getName()); - } - } - } - - @Override - public int getItemCount() { - if (list.isEmpty()) { - return 0; - } - if (isRemove) { - return list.size(); - } else { - return list.size() + 1; - } - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, - int position) { - if (viewHolder instanceof GameViewHolder) { - GameViewHolder holder = (GameViewHolder) viewHolder; - final GameEntity detailedEntity = list.get(position); - ImageUtils.getInstance(context).display(detailedEntity.getIcon(), - holder.gameThumb); - if (detailedEntity.getApk() == null - || detailedEntity.getApk().isEmpty()) { - holder.gameNameAndSize.setText(detailedEntity.getName()); - } else { - holder.gameNameAndSize.setText(detailedEntity.getName() - + " | " + detailedEntity.getApk().get(0).getSize()); - } - holder.gameDes.setText(detailedEntity.getBrief()); - - GameViewUtils.setLabelList(context, holder.labelList, - detailedEntity.getTag()); - - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - Map kv = new HashMap(); - kv.put("入口", "插件-最新"); - DataUtils.onEvent(context, "游戏详情", detailedEntity.getName(), - kv); - - Map map = new HashMap(); - map.put("location", "最新"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("game", detailedEntity.getName()); - map.put("page", "插件"); - DataCollectionManager.onEvent(context, "click-item", map); - - AppController.put("GameEntity", detailedEntity); - Intent intent = new Intent(context, - GameDetailsActivity.class); - intent.putExtra("entrance", "插件-最新"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - - DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, - holder.downloadSpeed, holder.downloadPercentage, - detailedEntity, position, this, - statusMap, platformMap, "插件-最新", dismissEntity, "最新:" - + detailedEntity.getName()); - - DownloadItemUtils.updateItem(context, holder.labelList, - holder.gameProgressbar, holder.gameInfo, - holder.downloadSpeed, holder.downloadPercentage, - holder.downloadBtn, detailedEntity, platformMap, statusMap); - } else if (viewHolder instanceof FooterViewHolder) { - FooterViewHolder holder = (FooterViewHolder) viewHolder; - if (isNetworkError) { - holder.footerview_progressbar.setVisibility(View.GONE); - holder.footerview_tv_loading.setText("加载失败,点击重试"); - holder.rootView.setClickable(true); - holder.rootView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - isNetworkError = false; - notifyItemChanged(getItemCount() - 1); - addList(list.size()); - } - }); - } else { - holder.footerview_progressbar.setVisibility(View.VISIBLE); - holder.footerview_tv_loading.setText("加载中..."); - holder.rootView.setClickable(false); - } - } - } - - @Override - public int getItemViewType(int position) { - return position; - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { - if (i != list.size()) { - return new GameViewHolder(LayoutInflater.from( - viewGroup.getContext()).inflate( - R.layout.home_list_item_gamenormal_type, viewGroup, false)); - } else { - return new FooterViewHolder(LayoutInflater.from( - viewGroup.getContext()).inflate( - R.layout.refresh_footerview, viewGroup, false)); - } - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - notifyDataSetChanged(); - } - - public boolean isRemove() { - return isRemove; - } - - public void setRemove(boolean isRemove) { - this.isRemove = isRemove; - } - - public boolean isLoading() { - return isLoading; - } - - public void setLoading(boolean isLoading) { - this.isLoading = isLoading; - } - - public boolean isNetworkError() { - return isNetworkError; - } - - public void setNetworkError(boolean isNetworkError) { - this.isNetworkError = isNetworkError; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Plugin3Fragment.java b/app/src/main/java/com/gh/gamecenter/plugin/Plugin3Fragment.java deleted file mode 100644 index c2b65e0866..0000000000 --- a/app/src/main/java/com/gh/gamecenter/plugin/Plugin3Fragment.java +++ /dev/null @@ -1,345 +0,0 @@ -package com.gh.gamecenter.plugin; - -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.util.ArrayMap; -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.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.LinearLayout; - -import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.AppController; -import com.gh.common.constant.Constants; -import com.gh.common.util.DownloadItemUtils; -import com.gh.common.view.VerticalItemDecoration; -import com.gh.download.DataWatcher; -import com.gh.download.DownloadEntry; -import com.gh.download.DownloadManager; -import com.gh.gamecenter.R; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.DismissEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.eventbus.EBDownloadDelete; -import com.gh.gamecenter.eventbus.EBNetworkState; -import com.gh.gamecenter.eventbus.EBPWDismiss; -import com.gh.gamecenter.eventbus.EBPackage; -import com.gh.gamecenter.eventbus.EBUISwitch; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.concurrent.LinkedBlockingQueue; - -import de.greenrobot.event.EventBus; - -/** - * - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-8 - * @update 2015-8-11 - * @des 主页插件fragment - */ -public class Plugin3Fragment extends Fragment implements OnRefreshListener { - - private View view; - private RecyclerView recyclerview; - private SwipeRefreshLayout game_swipe_refresh; - private Plugin3FragmentAdapter adapter; - private LinearLayoutManager layoutManager; - private LinearLayout reuse_no_connection; - private ProgressBarCircularIndeterminate game_pb_loading; - - // 黄壮华 添加 记录信息的map 修改2015/8/15 - private ArrayMap locationMap; - private ArrayMap> gameMap; - private ArrayMap> platformMap; - private ArrayMap nameMap; - - private boolean isEverpause = false; - private boolean isDestroy = false; - - private ArrayMap statusMap; - - private DismissEntity dismissEntity; - - private Handler handler = new Handler() { - @Override - public void handleMessage(Message msg) { - if (!isDestroy) { - if (msg.what == Constants.DOWNLOAD_ROLL) { - String name = (String) msg.obj; - if (platformMap != null) { - LinkedBlockingQueue queue = platformMap - .get(name); - if (queue.size() > 1) { - queue.offer(queue.poll()); - Message msg2 = Message.obtain(); - msg2.obj = name; - msg2.what = Constants.DOWNLOAD_ROLL; - sendMessageDelayed(msg2, 3000); - } - } - } - } - } - }; - - // 黄壮华 添加观察者 修改2015/8/15 - private DataWatcher dataWatcher = new DataWatcher() { - @Override - public void onDataChanged( - HashMap downloadingEntries) { - if (!game_swipe_refresh.isRefreshing()) { - for (java.util.Map.Entry entry : downloadingEntries - .entrySet()) { - DownloadEntry downloadEntry = entry.getValue(); - - Integer location = locationMap.get(downloadEntry.getName()); - if (location != null) { - int index = location.intValue(); - - GameEntity detailedEntity = adapter.getList() - .get(index); - - if (detailedEntity != null) { - DownloadItemUtils.processDate(detailedEntity, - downloadEntry, platformMap, handler, - adapter, index, statusMap); - } - - } - } - } - } - }; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - - super.onCreate(savedInstanceState); - - view = View.inflate(getActivity(), R.layout.plugin1_fragment, null); - - statusMap = new ArrayMap(); - locationMap = new ArrayMap(); - gameMap = new ArrayMap>(); - platformMap = new ArrayMap>(); - nameMap = new ArrayMap(); - - dismissEntity = new DismissEntity(false); - - game_swipe_refresh = (SwipeRefreshLayout) view - .findViewById(R.id.game_swipe_refresh); - game_swipe_refresh.setColorSchemeResources(R.color.theme_colors); - game_swipe_refresh.setOnRefreshListener(this); - - recyclerview = (RecyclerView) view.findViewById(R.id.game_list); - recyclerview.setHasFixedSize(true); - layoutManager = new LinearLayoutManager(getActivity()); - recyclerview.setLayoutManager(layoutManager); - - // 黄壮华 添加 初始化游戏状态 修改2015/8/21 - DownloadItemUtils.initializeGameMap(getActivity(), gameMap); - - game_pb_loading = (ProgressBarCircularIndeterminate) view.findViewById(R.id.game_pb_loading); - - reuse_no_connection = (LinearLayout) view - .findViewById(R.id.reuse_no_connection); - reuse_no_connection.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - game_swipe_refresh.setRefreshing(true); - recyclerview.setVisibility(View.VISIBLE); - game_pb_loading.setVisibility(View.VISIBLE); - reuse_no_connection.setVisibility(View.GONE); - handler.postDelayed(runnable, 1000); - } - }); - - // 黄壮华 传递引用 修改2015/8/15 - adapter = new Plugin3FragmentAdapter(Plugin3Fragment.this, locationMap, - gameMap, platformMap, nameMap, recyclerview, - game_swipe_refresh, reuse_no_connection, statusMap, - dismissEntity,game_pb_loading, false); - recyclerview.setAdapter(adapter); - recyclerview.setOnScrollListener(new RecyclerView.OnScrollListener() { - - @Override - public void onScrollStateChanged(RecyclerView recyclerView, - int newState) { - super.onScrollStateChanged(recyclerView, newState); - if (newState == RecyclerView.SCROLL_STATE_IDLE - && layoutManager.findLastVisibleItemPosition() == adapter - .getList().size()) { - if (!adapter.isRemove() && !adapter.isLoading()) { - adapter.addList(adapter.getList().size()); - } - } - } - - }); - recyclerview.addItemDecoration(new VerticalItemDecoration(getActivity(), 1)); - - EventBus.getDefault().register(this); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); - } - return view; - } - - public void onEventMainThread(EBDownloadDelete busThree) { - LinkedBlockingQueue queue = platformMap.get(busThree.getName()); - if (queue != null) { - queue.remove(busThree.getPlatform()); - platformMap.put(busThree.getName(), queue); - } - Integer location = locationMap.get(busThree.getName()); - if (location != null) { - int index = location.intValue(); - GameEntity detailedEntity = adapter.getList().get(index); - if (TextUtils.isEmpty(busThree.getPlatform())) { - detailedEntity.getEntryMap().remove("官方版"); - } else { - detailedEntity.getEntryMap().remove(busThree.getPlatform()); - } - adapter.notifyItemChanged(index); - } - } - - public void onEventMainThread(EBPWDismiss dismiss) { - if (dismissEntity != null) { - dismissEntity.setShow(false); - } - } - - public void onEventMainThread(EBPackage busFour) { - String name = nameMap.get(busFour.getPackageName()); - if (name != null) { - int location = locationMap.get(name); - if ("安装".equals(busFour.getType())) { - GameEntity detailedEntity = adapter.getList().get(location); - for (ApkEntity apkEntity : detailedEntity.getApk()) { - if (apkEntity.getPackageName().equals( - busFour.getPackageName())) { - detailedEntity.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) { - game_swipe_refresh.setRefreshing(true); - recyclerview.setVisibility(View.VISIBLE); - game_pb_loading.setVisibility(View.VISIBLE); - 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.getList().size()); - } - } - } - - public void onEventMainThread(EBUISwitch busNine) { - if ("MainActivity".equals(busNine.getFrom())) { - if (busNine.getPosition() != 1) { - statusMap.clear(); - } - } else if ("PluginFragment".equals(busNine.getFrom()) && busNine.getPosition() == 2 - && game_pb_loading.getVisibility() == View.VISIBLE) { - adapter.load(); - } - } - - public boolean isEverpause() { - return isEverpause; - } - - @Override - public void onResume() { - super.onResume(); - if (isEverpause) { - // 黄壮华 添加 初始化游戏状态 修改2015/8/20 - DownloadItemUtils.initializeGameMap(getActivity(), gameMap); - List entities = new ArrayList(); - for (GameEntity entity : adapter.getList()) { - entity.setEntryMap(gameMap.get(entity.getName())); - entities.add(entity); - } - adapter.setList(entities); - } - isEverpause = false; - DownloadManager.getInstance(getActivity()).addObserver(dataWatcher); - } - - @Override - public void onPause() { - super.onPause(); - isEverpause = true; - statusMap.clear(); - DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher); - } - - Runnable runnable = new Runnable() { - @Override - public void run() { - adapter = new Plugin3FragmentAdapter(Plugin3Fragment.this, - locationMap, gameMap, platformMap, nameMap, recyclerview, - game_swipe_refresh, reuse_no_connection, statusMap, dismissEntity, - game_pb_loading, true); - recyclerview.setAdapter(adapter); - } - }; - - @Override - public void onRefresh() { - handler.postDelayed(runnable, 1000); - } - - @Override - public void onDestroy() { - super.onDestroy(); - AppController.canclePendingRequests(Plugin3Fragment.class); - EventBus.getDefault().unregister(this); - view = null; - recyclerview = null; - game_swipe_refresh = null; - adapter = null; - layoutManager = null; - reuse_no_connection = null; - locationMap = null; - gameMap = null; - platformMap = null; - nameMap = null; - statusMap = null; - dismissEntity = null; - handler = null; - dataWatcher = null; - game_pb_loading = null; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/plugin/Plugin3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/plugin/Plugin3FragmentAdapter.java deleted file mode 100644 index 7f375efedd..0000000000 --- a/app/src/main/java/com/gh/gamecenter/plugin/Plugin3FragmentAdapter.java +++ /dev/null @@ -1,401 +0,0 @@ -package com.gh.gamecenter.plugin; - -import android.content.Context; -import android.content.Intent; -import android.support.v4.util.ArrayMap; -import android.support.v4.widget.SwipeRefreshLayout; -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.Toast; - -import com.android.volley.NoConnectionError; -import com.android.volley.Response; -import com.android.volley.TimeoutError; -import com.android.volley.VolleyError; -import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.AppController; -import com.gh.common.constant.Config; -import com.gh.common.constant.Constants; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DownloadItemUtils; -import com.gh.common.util.GameViewUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.TimestampUtils; -import com.gh.download.DownloadEntry; -import com.gh.gamecenter.GameDetailsActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -import com.gh.gamecenter.adapter.viewholder.GameViewHolder; -import com.gh.gamecenter.db.info.GameInfo; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.DismissEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.manager.DataCollectionManager; -import com.gh.gamecenter.manager.GameManager; -import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; - -import org.json.JSONArray; - -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.LinkedBlockingQueue; - -/** - * - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-8 - * @update 2015-8-11 - * @des 首页插件fragment适配器 - */ - -/** - * - * @author 温冠超 - * @email 294299195@qq.com - * @date 2015-8-8 - * @update 2015-8-11 - * @des 首页插件fragment适配器 - */ -public class Plugin3FragmentAdapter extends - RecyclerView.Adapter { - - private Context context; - - private Plugin3Fragment fragment; - - private RecyclerView recyclerView; - private SwipeRefreshLayout game_swipe_refresh; - private LinearLayout reuse_no_connection; - private ProgressBarCircularIndeterminate game_pb_loading; - - private boolean isRemove; - private boolean isLoading; - private boolean isNetworkError; - - private List list; - - // 黄壮华 获取引用 修改2015/8/15 - private ArrayMap locationMap; - private ArrayMap> gameMap; - private ArrayMap> platformMap; - private ArrayMap nameMap; - - private ArrayMap statusMap; - - private DismissEntity dismissEntity; - - // 黄壮华 获取引用 修改2015/8/15 - public Plugin3FragmentAdapter(Plugin3Fragment fment, - ArrayMap lMap, - ArrayMap> gMap, - ArrayMap> pMap, - ArrayMap nMap, RecyclerView rView, - SwipeRefreshLayout swipeRefreshLayout, - LinearLayout linearLayout, - ArrayMap sMap, - DismissEntity dEntity, - ProgressBarCircularIndeterminate pbLoading, - boolean isLoad) { - - // 黄壮华 获取引用 修改2015/8/15 - locationMap = lMap; - gameMap = gMap; - platformMap = pMap; - nameMap = nMap; - - statusMap = sMap; - - recyclerView = rView; - game_swipe_refresh = swipeRefreshLayout; - reuse_no_connection = linearLayout; - game_pb_loading = pbLoading; - - dismissEntity = dEntity; - - fragment = fment; - context = fment.getActivity(); - - isRemove = false; - isLoading = false; - isNetworkError = false; - - list = new ArrayList(); - - if (isLoad) { - load(); - } - } - - public void load() { - new Thread(runnable){}.start(); - } - - Runnable runnable = new Runnable() { - @Override - public void run() { - addList(0); - } - }; - - public void addList(final int offset) { - if (isLoading) { - return; - } - isLoading = true; - JsonArrayExtendedRequest request = new JsonArrayExtendedRequest( - TimestampUtils.addTimestamp(Config.HOST - + "v1d45/plugin/danji?limit=20&offset=" + offset, - Constants.GAME_CD), new Response.Listener() { - - @Override - public void onResponse(JSONArray response) { - processingData(response, offset); - isLoading = false; - } - - }, new Response.ErrorListener() { - - @Override - public void onErrorResponse(VolleyError error) { - isLoading = false; - // 无网络连接 - if (error.getClass().equals(NoConnectionError.class) - || error.getClass().equals(TimeoutError.class)) { - if (offset == 0) { - if (game_swipe_refresh.isRefreshing()) { - game_swipe_refresh.setRefreshing(false); - } - recyclerView.setVisibility(View.GONE); - game_pb_loading.setVisibility(View.GONE); - reuse_no_connection.setVisibility(View.VISIBLE); - } else { - Toast.makeText(context, "网络错误", - Toast.LENGTH_SHORT).show(); - isNetworkError = true; - notifyItemChanged(getItemCount() - 1); - } - } - } - - }); - AppController.addToRequestQueue(request, Plugin3Fragment.class); - } - - private void processingData(JSONArray response, int offset) { - Type listType = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - GameManager manager = new GameManager(context); - List gameList = gson - .fromJson(response.toString(), listType); - if (gameList != null && !gameList.isEmpty()) { - if (!list.isEmpty()) { - for (int i = 0; i < gameList.size(); i++) { - GameEntity entity = gameList.get(i); - // 去重 - for (int j = 0; j < list.size(); j++) { - if (list.get(j).getId().equals(entity.getId())) { - gameList.remove(i); - i--; - break; - } - } - } - } - for (GameEntity entity : gameList) { - // 黄壮华 初始化游戏状态 修改2015/8/15 - entity.setEntryMap(gameMap.get(entity.getName())); - for (ApkEntity apkEntity : entity.getApk()) { - manager.addOrUpdate(new GameInfo(apkEntity.getPackageName(), - entity.getId(), entity.getName())); - } - } - list.addAll(gameList); - if (!fragment.isHidden() && !fragment.isEverpause()) { - notifyItemRangeInserted(list.size() - gameList.size(), gameList.size()); - } - } - - if (fragment.isHidden() || fragment.isEverpause()) { - notifyDataSetChanged(); - } - - if (offset == 0 && game_swipe_refresh.isRefreshing()) { - game_swipe_refresh.setRefreshing(false); - } - - if (game_pb_loading != null && game_pb_loading.getVisibility() == View.VISIBLE) { - game_pb_loading.setVisibility(View.GONE); - } - - if (gameList.isEmpty() || (offset == 0 && gameList.size() < 20)) { - isRemove = true; - notifyItemRemoved(getItemCount()); - } - - // 黄壮华 获取游戏位置信息 修改2015/8/15 - for (int i = 0, size = list.size(); i < size; i++) { - GameEntity entity = list.get(i); - locationMap.put(entity.getName(), i); - for (ApkEntity apkEntity : entity.getApk()) { - nameMap.put(apkEntity.getPackageName(), entity.getName()); - } - } - } - - @Override - public int getItemCount() { - if (list.size() == 0) { - return 0; - } - if (isRemove) { - return list.size(); - } else { - return list.size() + 1; - } - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, - final int position) { - if (viewHolder instanceof GameViewHolder) { - - GameViewHolder holder = (GameViewHolder) viewHolder; - - final GameEntity detailedEntity = list.get(position); - - detailedEntity.getApk().get(0).setPlatform("local_plugin"); - - ImageUtils.getInstance(context).display(detailedEntity.getIcon(), - holder.gameThumb); - if (detailedEntity.getApk() == null - || detailedEntity.getApk().isEmpty()) { - holder.gameNameAndSize.setText(detailedEntity.getName()); - } else { - holder.gameNameAndSize.setText(detailedEntity.getName() - + " | " + detailedEntity.getApk().get(0).getSize()); - } - holder.gameDes.setText(detailedEntity.getBrief()); - - GameViewUtils.setLabelList(context, holder.labelList, - detailedEntity.getTag()); - - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - Map kv = new HashMap(); - kv.put("入口", "插件-单机"); - DataUtils.onEvent(context, "游戏详情", detailedEntity.getName(), - kv); - - Map map = new HashMap(); - map.put("location", "单机"); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("game", detailedEntity.getName()); - map.put("page", "插件"); - DataCollectionManager.onEvent(context, "click-item", map); - - AppController.put("GameEntity", detailedEntity); - Intent intent = new Intent(context, - GameDetailsActivity.class); - intent.putExtra("entrance", "插件-单机"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - - DownloadItemUtils.setOnClickListener(context, holder.downloadBtn, - holder.downloadSpeed, holder.downloadPercentage, - detailedEntity, position, this, - statusMap, platformMap, "插件-单机", false, dismissEntity, - "单机:" + detailedEntity.getName()); - - DownloadItemUtils.updateItem(context, holder.labelList, - holder.gameProgressbar, holder.gameInfo, - holder.downloadSpeed, holder.downloadPercentage, - holder.downloadBtn, detailedEntity, platformMap, statusMap, - false); - } else if (viewHolder instanceof FooterViewHolder) { - FooterViewHolder holder = (FooterViewHolder) viewHolder; - if (isNetworkError) { - holder.footerview_progressbar.setVisibility(View.GONE); - holder.footerview_tv_loading.setText("加载失败,点击重试"); - holder.rootView.setClickable(true); - holder.rootView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - isNetworkError = false; - notifyItemChanged(getItemCount() - 1); - addList(list.size()); - } - }); - } else { - holder.footerview_progressbar.setVisibility(View.VISIBLE); - holder.footerview_tv_loading.setText("加载中..."); - holder.rootView.setClickable(false); - } - } - } - - @Override - public int getItemViewType(int position) { - return position; - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { - if (i == list.size()) { - return new FooterViewHolder(LayoutInflater.from( - viewGroup.getContext()).inflate( - R.layout.refresh_footerview, viewGroup, false)); - } else { - return new GameViewHolder(LayoutInflater.from( - viewGroup.getContext()).inflate( - R.layout.home_list_item_gamenormal_type, viewGroup, false)); - } - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - notifyDataSetChanged(); - } - - public boolean isRemove() { - return isRemove; - } - - public void setRemove(boolean isRemove) { - this.isRemove = isRemove; - } - - public boolean isLoading() { - return isLoading; - } - - public void setLoading(boolean isLoading) { - this.isLoading = isLoading; - } - - public boolean isNetworkError() { - return isNetworkError; - } - - public void setNetworkError(boolean isNetworkError) { - this.isNetworkError = isNetworkError; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/search/Search1DetailFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/Search1DetailFragmentAdapter.java index 7682374d7c..c96ffda981 100644 --- a/app/src/main/java/com/gh/gamecenter/search/Search1DetailFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/Search1DetailFragmentAdapter.java @@ -25,7 +25,7 @@ import com.gh.common.util.TimestampUtils; import com.gh.common.view.DownloadDialog; import com.gh.gamecenter.GameDetailsActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.GameViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.entity.DismissEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.manager.DataCollectionManager; @@ -41,7 +41,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -public class Search1DetailFragmentAdapter extends RecyclerView.Adapter { +public class Search1DetailFragmentAdapter extends RecyclerView.Adapter { private Context context; @@ -123,24 +123,24 @@ public class Search1DetailFragmentAdapter extends RecyclerView.Adapter - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/account_warn.png b/app/src/main/res/drawable-hdpi/account_warn.png deleted file mode 100644 index d006150ca1..0000000000 Binary files a/app/src/main/res/drawable-hdpi/account_warn.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/default_user_icon.png b/app/src/main/res/drawable-hdpi/default_user_icon.png deleted file mode 100644 index 6bdb193c73..0000000000 Binary files a/app/src/main/res/drawable-hdpi/default_user_icon.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/essay_comment.png b/app/src/main/res/drawable-hdpi/essay_comment.png deleted file mode 100644 index d716cd5000..0000000000 Binary files a/app/src/main/res/drawable-hdpi/essay_comment.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/essay_like_dn.png b/app/src/main/res/drawable-hdpi/essay_like_dn.png deleted file mode 100644 index 9b7af06755..0000000000 Binary files a/app/src/main/res/drawable-hdpi/essay_like_dn.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/essay_like_up.png b/app/src/main/res/drawable-hdpi/essay_like_up.png deleted file mode 100644 index 725ffa30ea..0000000000 Binary files a/app/src/main/res/drawable-hdpi/essay_like_up.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/essay_share.png b/app/src/main/res/drawable-hdpi/essay_share.png deleted file mode 100644 index 0207c990bc..0000000000 Binary files a/app/src/main/res/drawable-hdpi/essay_share.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/essay_unlike_dn.png b/app/src/main/res/drawable-hdpi/essay_unlike_dn.png deleted file mode 100644 index d27edcab52..0000000000 Binary files a/app/src/main/res/drawable-hdpi/essay_unlike_dn.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/essay_unlike_up.png b/app/src/main/res/drawable-hdpi/essay_unlike_up.png deleted file mode 100644 index 8ee67b040d..0000000000 Binary files a/app/src/main/res/drawable-hdpi/essay_unlike_up.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/essaydetails_comment_dn.9.png b/app/src/main/res/drawable-hdpi/essaydetails_comment_dn.9.png deleted file mode 100644 index 0b6f497015..0000000000 Binary files a/app/src/main/res/drawable-hdpi/essaydetails_comment_dn.9.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/essaydetails_comment_up.9.png b/app/src/main/res/drawable-hdpi/essaydetails_comment_up.9.png deleted file mode 100644 index 3524deafde..0000000000 Binary files a/app/src/main/res/drawable-hdpi/essaydetails_comment_up.9.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/home_kapaigonglue.png b/app/src/main/res/drawable-hdpi/home_kapaigonglue.png deleted file mode 100644 index 43f7d07291..0000000000 Binary files a/app/src/main/res/drawable-hdpi/home_kapaigonglue.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/home_kapaitoutiao.png b/app/src/main/res/drawable-hdpi/home_kapaitoutiao.png deleted file mode 100644 index a1ee445852..0000000000 Binary files a/app/src/main/res/drawable-hdpi/home_kapaitoutiao.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/home_plug_upgrade.png b/app/src/main/res/drawable-hdpi/home_plug_upgrade.png new file mode 100644 index 0000000000..cc66cac61b Binary files /dev/null and b/app/src/main/res/drawable-hdpi/home_plug_upgrade.png differ diff --git a/app/src/main/res/drawable-hdpi/home_remenkapai.png b/app/src/main/res/drawable-hdpi/home_remenkapai.png deleted file mode 100644 index b9c24b2654..0000000000 Binary files a/app/src/main/res/drawable-hdpi/home_remenkapai.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/home_xincekapai.png b/app/src/main/res/drawable-hdpi/home_xincekapai.png deleted file mode 100644 index a5e7a6fabc..0000000000 Binary files a/app/src/main/res/drawable-hdpi/home_xincekapai.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/home_yuedujingxuan.png b/app/src/main/res/drawable-hdpi/home_yuedujingxuan.png deleted file mode 100644 index f4d6d1be7d..0000000000 Binary files a/app/src/main/res/drawable-hdpi/home_yuedujingxuan.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/login_close.png b/app/src/main/res/drawable-hdpi/login_close.png deleted file mode 100644 index ed01e6b481..0000000000 Binary files a/app/src/main/res/drawable-hdpi/login_close.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/login_mobile.png b/app/src/main/res/drawable-hdpi/login_mobile.png deleted file mode 100644 index 3b57eefb29..0000000000 Binary files a/app/src/main/res/drawable-hdpi/login_mobile.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/login_password_dn.png b/app/src/main/res/drawable-hdpi/login_password_dn.png deleted file mode 100644 index 45e3aa3240..0000000000 Binary files a/app/src/main/res/drawable-hdpi/login_password_dn.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/login_password_up.png b/app/src/main/res/drawable-hdpi/login_password_up.png deleted file mode 100644 index 53d94b759a..0000000000 Binary files a/app/src/main/res/drawable-hdpi/login_password_up.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/login_user.png b/app/src/main/res/drawable-hdpi/login_user.png deleted file mode 100644 index 39854aece9..0000000000 Binary files a/app/src/main/res/drawable-hdpi/login_user.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/login_username_dn.png b/app/src/main/res/drawable-hdpi/login_username_dn.png deleted file mode 100644 index 2832faa0a3..0000000000 Binary files a/app/src/main/res/drawable-hdpi/login_username_dn.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/login_username_up.png b/app/src/main/res/drawable-hdpi/login_username_up.png deleted file mode 100644 index a555c45281..0000000000 Binary files a/app/src/main/res/drawable-hdpi/login_username_up.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/read_time_ago.png b/app/src/main/res/drawable-hdpi/read_time_ago.png deleted file mode 100644 index ef45c7164f..0000000000 Binary files a/app/src/main/res/drawable-hdpi/read_time_ago.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/register_mobile_dn.png b/app/src/main/res/drawable-hdpi/register_mobile_dn.png deleted file mode 100644 index 66b6d7a1aa..0000000000 Binary files a/app/src/main/res/drawable-hdpi/register_mobile_dn.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/register_mobile_up.png b/app/src/main/res/drawable-hdpi/register_mobile_up.png deleted file mode 100644 index 9f5703ebd6..0000000000 Binary files a/app/src/main/res/drawable-hdpi/register_mobile_up.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/hero.png b/app/src/main/res/drawable-xhdpi/hero.png deleted file mode 100644 index 8b0b3ce871..0000000000 Binary files a/app/src/main/res/drawable-xhdpi/hero.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/home_database_navigation.png b/app/src/main/res/drawable-xhdpi/home_database_navigation.png deleted file mode 100644 index 972700ae7e..0000000000 Binary files a/app/src/main/res/drawable-xhdpi/home_database_navigation.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/home_newgame_navigation.png b/app/src/main/res/drawable-xhdpi/home_newgame_navigation.png deleted file mode 100644 index f53c970fae..0000000000 Binary files a/app/src/main/res/drawable-xhdpi/home_newgame_navigation.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/home_news_navigation.png b/app/src/main/res/drawable-xhdpi/home_news_navigation.png deleted file mode 100644 index 638158c9c6..0000000000 Binary files a/app/src/main/res/drawable-xhdpi/home_news_navigation.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/home_raiders_navigation.png b/app/src/main/res/drawable-xhdpi/home_raiders_navigation.png deleted file mode 100644 index 996f98f486..0000000000 Binary files a/app/src/main/res/drawable-xhdpi/home_raiders_navigation.png and /dev/null differ diff --git a/app/src/main/res/drawable/border_enter_bg.xml b/app/src/main/res/drawable/border_enter_bg.xml deleted file mode 100644 index e9eaa56330..0000000000 --- a/app/src/main/res/drawable/border_enter_bg.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/border_input_dn.xml b/app/src/main/res/drawable/border_input_dn.xml deleted file mode 100644 index 603dca4975..0000000000 --- a/app/src/main/res/drawable/border_input_dn.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/border_input_up.xml b/app/src/main/res/drawable/border_input_up.xml deleted file mode 100644 index 156cd96d6e..0000000000 --- a/app/src/main/res/drawable/border_input_up.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/border_login_bg.xml b/app/src/main/res/drawable/border_login_bg.xml deleted file mode 100644 index 87eaf1267f..0000000000 --- a/app/src/main/res/drawable/border_login_bg.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/border_scarlet_bg.xml b/app/src/main/res/drawable/border_scarlet_bg.xml deleted file mode 100644 index 2d117f0c49..0000000000 --- a/app/src/main/res/drawable/border_scarlet_bg.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_comment_liked_dn.xml b/app/src/main/res/drawable/essay_comment_liked_dn.xml deleted file mode 100644 index 941b24f0d0..0000000000 --- a/app/src/main/res/drawable/essay_comment_liked_dn.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_comment_liked_style.xml b/app/src/main/res/drawable/essay_comment_liked_style.xml deleted file mode 100644 index 7788171023..0000000000 --- a/app/src/main/res/drawable/essay_comment_liked_style.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_comment_liked_up.xml b/app/src/main/res/drawable/essay_comment_liked_up.xml deleted file mode 100644 index 638a2a9ebe..0000000000 --- a/app/src/main/res/drawable/essay_comment_liked_up.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_comment_unliked_dn.xml b/app/src/main/res/drawable/essay_comment_unliked_dn.xml deleted file mode 100644 index c834427e2a..0000000000 --- a/app/src/main/res/drawable/essay_comment_unliked_dn.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_comment_unliked_style.xml b/app/src/main/res/drawable/essay_comment_unliked_style.xml deleted file mode 100644 index 1cf824b619..0000000000 --- a/app/src/main/res/drawable/essay_comment_unliked_style.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_comment_unliked_up.xml b/app/src/main/res/drawable/essay_comment_unliked_up.xml deleted file mode 100644 index 5dc0e62a85..0000000000 --- a/app/src/main/res/drawable/essay_comment_unliked_up.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_like_style.xml b/app/src/main/res/drawable/essay_like_style.xml deleted file mode 100644 index 3cdc684d7f..0000000000 --- a/app/src/main/res/drawable/essay_like_style.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_liked_dn.xml b/app/src/main/res/drawable/essay_liked_dn.xml deleted file mode 100644 index 101ecbfd26..0000000000 --- a/app/src/main/res/drawable/essay_liked_dn.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_liked_style.xml b/app/src/main/res/drawable/essay_liked_style.xml deleted file mode 100644 index fbee634616..0000000000 --- a/app/src/main/res/drawable/essay_liked_style.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_liked_up.xml b/app/src/main/res/drawable/essay_liked_up.xml deleted file mode 100644 index 9b421949cd..0000000000 --- a/app/src/main/res/drawable/essay_liked_up.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_unlike_style.xml b/app/src/main/res/drawable/essay_unlike_style.xml deleted file mode 100644 index fdda7ba0d0..0000000000 --- a/app/src/main/res/drawable/essay_unlike_style.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_unliked_dn.xml b/app/src/main/res/drawable/essay_unliked_dn.xml deleted file mode 100644 index fc7d73f27f..0000000000 --- a/app/src/main/res/drawable/essay_unliked_dn.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_unliked_style.xml b/app/src/main/res/drawable/essay_unliked_style.xml deleted file mode 100644 index c61641e29e..0000000000 --- a/app/src/main/res/drawable/essay_unliked_style.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/essay_unliked_up.xml b/app/src/main/res/drawable/essay_unliked_up.xml deleted file mode 100644 index 5a1676017e..0000000000 --- a/app/src/main/res/drawable/essay_unliked_up.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/login_auto_style.xml b/app/src/main/res/drawable/login_auto_style.xml deleted file mode 100644 index c1e1578992..0000000000 --- a/app/src/main/res/drawable/login_auto_style.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/oval_type_red_bg.xml b/app/src/main/res/drawable/oval_type_red_bg.xml deleted file mode 100644 index bfd2bc3daa..0000000000 --- a/app/src/main/res/drawable/oval_type_red_bg.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/oval_white_hint_dn.xml b/app/src/main/res/drawable/oval_white_hint_dn.xml deleted file mode 100644 index 46ddfbe9ef..0000000000 --- a/app/src/main/res/drawable/oval_white_hint_dn.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/oval_white_hint_up.xml b/app/src/main/res/drawable/oval_white_hint_up.xml deleted file mode 100644 index a2387b4266..0000000000 --- a/app/src/main/res/drawable/oval_white_hint_up.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/reuse_textview_style.xml b/app/src/main/res/drawable/reuse_textview_style.xml deleted file mode 100644 index b15ad8b9a2..0000000000 --- a/app/src/main/res/drawable/reuse_textview_style.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_again_dn.xml b/app/src/main/res/drawable/textview_again_dn.xml deleted file mode 100644 index e02b8abb40..0000000000 --- a/app/src/main/res/drawable/textview_again_dn.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_again_style.xml b/app/src/main/res/drawable/textview_again_style.xml deleted file mode 100644 index 6d6f8a7c01..0000000000 --- a/app/src/main/res/drawable/textview_again_style.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_again_up.xml b/app/src/main/res/drawable/textview_again_up.xml deleted file mode 100644 index 627f92f4f3..0000000000 --- a/app/src/main/res/drawable/textview_again_up.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_color_style.xml b/app/src/main/res/drawable/textview_color_style.xml deleted file mode 100644 index f742eb9207..0000000000 --- a/app/src/main/res/drawable/textview_color_style.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_login_dn.xml b/app/src/main/res/drawable/textview_login_dn.xml deleted file mode 100644 index 1c03446c46..0000000000 --- a/app/src/main/res/drawable/textview_login_dn.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_login_style.xml b/app/src/main/res/drawable/textview_login_style.xml deleted file mode 100644 index bc8e432339..0000000000 --- a/app/src/main/res/drawable/textview_login_style.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_login_up.xml b/app/src/main/res/drawable/textview_login_up.xml deleted file mode 100644 index 7fbe84f9bc..0000000000 --- a/app/src/main/res/drawable/textview_login_up.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_logout_dn.xml b/app/src/main/res/drawable/textview_logout_dn.xml deleted file mode 100644 index fbf4aedbbc..0000000000 --- a/app/src/main/res/drawable/textview_logout_dn.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_logout_style.xml b/app/src/main/res/drawable/textview_logout_style.xml deleted file mode 100644 index 8760069a0a..0000000000 --- a/app/src/main/res/drawable/textview_logout_style.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_logout_up.xml b/app/src/main/res/drawable/textview_logout_up.xml deleted file mode 100644 index b967889047..0000000000 --- a/app/src/main/res/drawable/textview_logout_up.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_onekey_register_dn.xml b/app/src/main/res/drawable/textview_onekey_register_dn.xml deleted file mode 100644 index b967889047..0000000000 --- a/app/src/main/res/drawable/textview_onekey_register_dn.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_onekey_register_style.xml b/app/src/main/res/drawable/textview_onekey_register_style.xml deleted file mode 100644 index 446db3919c..0000000000 --- a/app/src/main/res/drawable/textview_onekey_register_style.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_onekey_register_up.xml b/app/src/main/res/drawable/textview_onekey_register_up.xml deleted file mode 100644 index 9b7bb0fcda..0000000000 --- a/app/src/main/res/drawable/textview_onekey_register_up.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/textview_register_bg.xml b/app/src/main/res/drawable/textview_register_bg.xml deleted file mode 100644 index b967889047..0000000000 --- a/app/src/main/res/drawable/textview_register_bg.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_account.xml b/app/src/main/res/layout/activity_account.xml deleted file mode 100644 index b963e52ce3..0000000000 --- a/app/src/main/res/layout/activity_account.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_cropimage.xml b/app/src/main/res/layout/activity_cropimage.xml deleted file mode 100644 index b4f53084bf..0000000000 --- a/app/src/main/res/layout/activity_cropimage.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_database.xml b/app/src/main/res/layout/activity_database.xml deleted file mode 100644 index 6448e926fd..0000000000 --- a/app/src/main/res/layout/activity_database.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_mobile.xml b/app/src/main/res/layout/activity_mobile.xml deleted file mode 100644 index a94583ef26..0000000000 --- a/app/src/main/res/layout/activity_mobile.xml +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_modifymobile.xml b/app/src/main/res/layout/activity_modifymobile.xml deleted file mode 100644 index e6a1d76eeb..0000000000 --- a/app/src/main/res/layout/activity_modifymobile.xml +++ /dev/null @@ -1,242 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_news_or_raiders.xml b/app/src/main/res/layout/activity_news_or_raiders.xml deleted file mode 100644 index faa265ec38..0000000000 --- a/app/src/main/res/layout/activity_news_or_raiders.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_password.xml b/app/src/main/res/layout/activity_password.xml deleted file mode 100644 index 7697144f9e..0000000000 --- a/app/src/main/res/layout/activity_password.xml +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_plugin.xml b/app/src/main/res/layout/activity_plugin.xml deleted file mode 100644 index 9487030cd0..0000000000 --- a/app/src/main/res/layout/activity_plugin.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_retrieve.xml b/app/src/main/res/layout/activity_retrieve.xml deleted file mode 100644 index d12135a73c..0000000000 --- a/app/src/main/res/layout/activity_retrieve.xml +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml index 6d0c5f4bcd..f42aed98c1 100644 --- a/app/src/main/res/layout/activity_setting.xml +++ b/app/src/main/res/layout/activity_setting.xml @@ -6,6 +6,7 @@ android:orientation="vertical"> + @@ -138,6 +139,33 @@ android:padding="10dp" /> + + + + + + + - - - - - diff --git a/app/src/main/res/layout/activity_userinfo.xml b/app/src/main/res/layout/activity_userinfo.xml deleted file mode 100644 index 30eb90f9d7..0000000000 --- a/app/src/main/res/layout/activity_userinfo.xml +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/datebase_item.xml b/app/src/main/res/layout/datebase_item.xml deleted file mode 100644 index 88cca0ac2b..0000000000 --- a/app/src/main/res/layout/datebase_item.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_account_login.xml b/app/src/main/res/layout/dialog_account_login.xml deleted file mode 100644 index cb94292c1e..0000000000 --- a/app/src/main/res/layout/dialog_account_login.xml +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_account_register.xml b/app/src/main/res/layout/dialog_account_register.xml deleted file mode 100644 index 241380cfaf..0000000000 --- a/app/src/main/res/layout/dialog_account_register.xml +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_code.xml b/app/src/main/res/layout/dialog_code.xml deleted file mode 100644 index 03d5c09a9a..0000000000 --- a/app/src/main/res/layout/dialog_code.xml +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_essay_comment.xml b/app/src/main/res/layout/dialog_essay_comment.xml deleted file mode 100644 index bc8814dc29..0000000000 --- a/app/src/main/res/layout/dialog_essay_comment.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_mobile_login.xml b/app/src/main/res/layout/dialog_mobile_login.xml deleted file mode 100644 index db538cb43d..0000000000 --- a/app/src/main/res/layout/dialog_mobile_login.xml +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_modify_nickname.xml b/app/src/main/res/layout/dialog_modify_nickname.xml deleted file mode 100644 index 3df0caa050..0000000000 --- a/app/src/main/res/layout/dialog_modify_nickname.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_modify_select.xml b/app/src/main/res/layout/dialog_modify_select.xml deleted file mode 100644 index dd5b514618..0000000000 --- a/app/src/main/res/layout/dialog_modify_select.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_modify_sign.xml b/app/src/main/res/layout/dialog_modify_sign.xml deleted file mode 100644 index a30f4f89ae..0000000000 --- a/app/src/main/res/layout/dialog_modify_sign.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_nickname.xml b/app/src/main/res/layout/dialog_nickname.xml deleted file mode 100644 index 4ef5a4125d..0000000000 --- a/app/src/main/res/layout/dialog_nickname.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_onekey_register.xml b/app/src/main/res/layout/dialog_onekey_register.xml deleted file mode 100644 index fd5e5aeea1..0000000000 --- a/app/src/main/res/layout/dialog_onekey_register.xml +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_update_download.xml b/app/src/main/res/layout/dialog_update_download.xml deleted file mode 100644 index fb10e1e122..0000000000 --- a/app/src/main/res/layout/dialog_update_download.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_update_info.xml b/app/src/main/res/layout/dialog_update_info.xml deleted file mode 100644 index 57c027b735..0000000000 --- a/app/src/main/res/layout/dialog_update_info.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/essaydetails_comment_evaluate.xml b/app/src/main/res/layout/essaydetails_comment_evaluate.xml deleted file mode 100644 index a8e6f812ae..0000000000 --- a/app/src/main/res/layout/essaydetails_comment_evaluate.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/essaydetails_comment_item.xml b/app/src/main/res/layout/essaydetails_comment_item.xml deleted file mode 100644 index f38ab423e7..0000000000 --- a/app/src/main/res/layout/essaydetails_comment_item.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/game_new_testgame_fragment.xml b/app/src/main/res/layout/game_new_testgame_fragment.xml deleted file mode 100644 index 980cb494de..0000000000 --- a/app/src/main/res/layout/game_new_testgame_fragment.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/game_plugin_item_gamenormal.xml b/app/src/main/res/layout/game_plugin_item_gamenormal.xml deleted file mode 100644 index 7ab2ed1b32..0000000000 --- a/app/src/main/res/layout/game_plugin_item_gamenormal.xml +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/game_plugin_item_xincegame.xml b/app/src/main/res/layout/game_plugin_item_xincegame.xml deleted file mode 100644 index aa44e9d4fb..0000000000 --- a/app/src/main/res/layout/game_plugin_item_xincegame.xml +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/game_test_list_view.xml b/app/src/main/res/layout/game_test_list_view.xml deleted file mode 100644 index 78da78d2e6..0000000000 --- a/app/src/main/res/layout/game_test_list_view.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/home1_fragment.xml b/app/src/main/res/layout/home1_fragment.xml deleted file mode 100644 index 309d7f5448..0000000000 --- a/app/src/main/res/layout/home1_fragment.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/home2_fragment.xml b/app/src/main/res/layout/home2_fragment.xml deleted file mode 100644 index ee13738bea..0000000000 --- a/app/src/main/res/layout/home2_fragment.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/home_autoscrollviewpager.xml b/app/src/main/res/layout/home_autoscrollviewpager.xml deleted file mode 100644 index ca94d9a592..0000000000 --- a/app/src/main/res/layout/home_autoscrollviewpager.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/home_game_normal_item.xml b/app/src/main/res/layout/home_game_normal_item.xml index 12f01a351e..671f4a6412 100644 --- a/app/src/main/res/layout/home_game_normal_item.xml +++ b/app/src/main/res/layout/home_game_normal_item.xml @@ -14,6 +14,7 @@ android:layout_centerVertical="true" android:textColor="#333333" android:layout_marginRight="8dp" + android:visibility="gone" android:textSize="14sp"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/home_list_item_genuinenews_type.xml b/app/src/main/res/layout/home_list_item_genuinenews_type.xml deleted file mode 100644 index e5c11b14d4..0000000000 --- a/app/src/main/res/layout/home_list_item_genuinenews_type.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/home_list_item_navigation.xml b/app/src/main/res/layout/home_list_item_navigation.xml deleted file mode 100644 index 94493130f2..0000000000 --- a/app/src/main/res/layout/home_list_item_navigation.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/mygame_block.xml b/app/src/main/res/layout/mygame_block.xml deleted file mode 100644 index 8381004e62..0000000000 --- a/app/src/main/res/layout/mygame_block.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - diff --git a/app/src/main/res/layout/read_fragment.xml b/app/src/main/res/layout/read_fragment.xml deleted file mode 100644 index 3b43449f21..0000000000 --- a/app/src/main/res/layout/read_fragment.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/reuse_ico.xml b/app/src/main/res/layout/reuse_ico.xml deleted file mode 100644 index d4640f0fae..0000000000 --- a/app/src/main/res/layout/reuse_ico.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/splash_item.xml b/app/src/main/res/layout/splash_item.xml deleted file mode 100644 index 18f49111d4..0000000000 --- a/app/src/main/res/layout/splash_item.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/viewimage_item.xml b/app/src/main/res/layout/viewimage_item.xml index ae205c8ace..0bef9f1649 100644 --- a/app/src/main/res/layout/viewimage_item.xml +++ b/app/src/main/res/layout/viewimage_item.xml @@ -1,19 +1,21 @@ + android:layout_height="match_parent"> + - + + + + + + +