From bd892a4cf1c48c29a7254151c9770206bfe6db7e Mon Sep 17 00:00:00 2001 From: huangzhuanghua <401742778@qq.com> Date: Wed, 7 Sep 2016 18:52:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3final=20int=20position?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/ShareUtils.java | 4 +- .../com/gh/common/view/DownloadDialog.java | 12 +- .../java/com/gh/download/DataChanger.java | 2 +- .../java/com/gh/download/DataWatcher.java | 3 + .../com/gh/gamecenter/ConcernActivity.java | 99 +++++----- .../gh/gamecenter/GameDetailsActivity.java | 79 ++++---- .../java/com/gh/gamecenter/NewsActivity.java | 4 +- .../com/gh/gamecenter/NewsSearchActivity.java | 6 +- .../com/gh/gamecenter/SearchActivity.java | 13 +- .../com/gh/gamecenter/SettingActivity.java | 2 +- .../gh/gamecenter/SplashScreenActivity.java | 86 +++++---- .../adapter/GameNewsTypeListAdapter.java | 11 +- .../gh/gamecenter/adapter/PluginAdapter.java | 5 +- .../gh/gamecenter/adapter/SubjectAdapter.java | 5 +- .../java/com/gh/gamecenter/db/GameDao.java | 40 +++- .../download/GameDownloadAdapter.java | 23 ++- .../download/GameUpdateAdapter.java | 4 +- .../gamecenter/game/Game1FragmentAdapter.java | 24 +-- .../gamecenter/game/Game2FragmentAdapter.java | 5 +- .../gamecenter/game/Game3FragmentAdapter.java | 5 +- .../manager/DataCollectionManager.java | 33 ++-- .../gh/gamecenter/manager/GameManager.java | 21 ++ .../gamecenter/news/News1FragmentAdapter.java | 18 +- .../gamecenter/news/News2FragmentAdapter.java | 18 +- .../gamecenter/news/News4FragmentAdapter.java | 4 +- .../gh/gamecenter/news/NewsListAdapter.java | 139 -------------- .../personal/ConcernFragmentAdapter.java | 5 +- .../personal/InstallFragmentAdapter.java | 9 +- .../search/SearchDetailFragmentAdapter.java | 6 +- .../search/SearchGameListFragmentAdapter.java | 8 +- .../search/SearchHistoryListAdapter.java | 74 ------- .../search/SearchResultListAdapter.java | 180 ------------------ .../main/res/drawable-hdpi/home1_selected.png | Bin 6680 -> 6471 bytes .../res/drawable-hdpi/home1_unselected.png | Bin 6728 -> 6515 bytes .../main/res/drawable-hdpi/home2_selected.png | Bin 3775 -> 3575 bytes .../res/drawable-hdpi/home2_unselected.png | Bin 3793 -> 3584 bytes .../main/res/drawable-hdpi/home3_selected.png | Bin 5559 -> 5329 bytes .../res/drawable-hdpi/home3_unselected.png | Bin 5582 -> 5364 bytes app/src/main/res/drawable/oval_hint_dn.xml | 2 +- app/src/main/res/drawable/oval_hint_up.xml | 7 +- app/src/main/res/layout/activity_main.xml | 14 +- app/src/main/res/layout/fragment_news.xml | 5 - .../res/layout/gamedetails_zixun_item.xml | 2 +- app/src/main/res/layout/home_actionbar.xml | 3 + .../res/layout/plugin_container_fragments.xml | 5 - 45 files changed, 317 insertions(+), 668 deletions(-) delete mode 100644 app/src/main/java/com/gh/gamecenter/news/NewsListAdapter.java delete mode 100644 app/src/main/java/com/gh/gamecenter/search/SearchHistoryListAdapter.java delete mode 100644 app/src/main/java/com/gh/gamecenter/search/SearchResultListAdapter.java diff --git a/app/src/main/java/com/gh/common/util/ShareUtils.java b/app/src/main/java/com/gh/common/util/ShareUtils.java index 1f533d6878..1f1852cdb5 100644 --- a/app/src/main/java/com/gh/common/util/ShareUtils.java +++ b/app/src/main/java/com/gh/common/util/ShareUtils.java @@ -148,13 +148,13 @@ public class ShareUtils { } @Override - public void onBindViewHolder(ViewHolder holder, final int position) { + public void onBindViewHolder(final ViewHolder holder, int position) { holder.shareLogo.setImageResource(arrLogo[position]); holder.shareLabel.setText(arrLabel[position]); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - switch (position){ + switch (holder.getPosition()){ case 0: wechatSahre(); break; diff --git a/app/src/main/java/com/gh/common/view/DownloadDialog.java b/app/src/main/java/com/gh/common/view/DownloadDialog.java index 2664e5572c..3797ded829 100644 --- a/app/src/main/java/com/gh/common/view/DownloadDialog.java +++ b/app/src/main/java/com/gh/common/view/DownloadDialog.java @@ -673,25 +673,25 @@ public class DownloadDialog { @SuppressWarnings("deprecation") @Override - public void onBindViewHolder(final RecyclerViewHolder viewHolder, final int location) { + public void onBindViewHolder(final RecyclerViewHolder viewHolder, int position) { - final ApkEntity apkEntity = platforms.get((row * column) * position + location); + final ApkEntity apkEntity = platforms.get((row * column) * this.position + position); viewHolder.itemView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (apkEntity.getApkCollection() != null){ if (llCollection.getVisibility() == View.GONE - || clickCollectionPosition != location && clickCollectionPosition != -1){ + || clickCollectionPosition != viewHolder.getPosition() && clickCollectionPosition != -1){ llCollection.setVisibility(View.VISIBLE); showCollectionLayout(apkEntity.getApkCollection()); viewHolder.download_item_open_collection.setImageResource(R.drawable.collection_colse); - colseCollectionPosition = location; + colseCollectionPosition = viewHolder.getPosition(); notifyDataSetChanged(); } else { llCollection.setVisibility(View.GONE); viewHolder.download_item_open_collection.setImageResource(R.drawable.collection_open); } - clickCollectionPosition = location; + clickCollectionPosition = viewHolder.getPosition(); } else if (viewHolder.download_item_tv_status.getVisibility() == View.GONE) { //下载游戏 addDownloadEntry(apkEntity, viewHolder.download_item_tv_status); @@ -916,7 +916,7 @@ public class DownloadDialog { if (apkEntity.getApkCollection() != null){ ImageUtils.getInstance(context).display(apkEntity.getApkCollection().getIcon(),viewHolder.download_item_iv_pic); viewHolder.download_item_open_collection.setVisibility(View.VISIBLE); - if (colseCollectionPosition == location){ + if (colseCollectionPosition == position){ viewHolder.download_item_open_collection.setImageResource(R.drawable.collection_colse); }else { viewHolder.download_item_open_collection.setImageResource(R.drawable.collection_open); diff --git a/app/src/main/java/com/gh/download/DataChanger.java b/app/src/main/java/com/gh/download/DataChanger.java index 2ef6214b8c..1abafa0c44 100644 --- a/app/src/main/java/com/gh/download/DataChanger.java +++ b/app/src/main/java/com/gh/download/DataChanger.java @@ -44,7 +44,7 @@ public class DataChanger extends Observable { if (mDownloadEntries.get(entry.getUrl()) != null) { mDownloadEntries.put(entry.getUrl(), entry); setChanged(); - notifyObservers(); + notifyObservers(entry); } } } diff --git a/app/src/main/java/com/gh/download/DataWatcher.java b/app/src/main/java/com/gh/download/DataWatcher.java index a8350df4ff..2a16171866 100644 --- a/app/src/main/java/com/gh/download/DataWatcher.java +++ b/app/src/main/java/com/gh/download/DataWatcher.java @@ -10,6 +10,9 @@ public abstract class DataWatcher implements Observer{ @Override public void update(Observable observable, Object data) { onDataChanged(DataChanger.getInstance().getDownloadEntries()); +// if (data != null && data instanceof DownloadEntry) { +// onDataChanged((DownloadEntry) data); +// } } public abstract void onDataChanged(HashMap downloadingEntries); diff --git a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java index 62f27b27cf..bdc3f23f46 100644 --- a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java @@ -22,6 +22,7 @@ import com.gh.common.constant.Config; import com.gh.common.constant.Constants; import com.gh.common.util.ConcernUtils; import com.gh.common.util.DataUtils; +import com.gh.common.util.DialogUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.TimestampUtils; import com.gh.common.util.Utils; @@ -58,12 +59,9 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - view = (Concern_LinearLayout) View.inflate(this, - R.layout.activity_concern, null); - + view = (Concern_LinearLayout) View.inflate(this, R.layout.activity_concern, null); init(view, "我的关注"); manager = new ConcernManager(getApplicationContext()); @@ -71,12 +69,11 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { list = manager.getConcernGame(); if (list == null) { - list = new ArrayList(); + list = new ArrayList<>(); } - recommendList = new ArrayList(); - - concernList = new ArrayList(); + recommendList = new ArrayList<>(); + concernList = new ArrayList<>(); if (!list.isEmpty()) { initConcernGame(); @@ -114,19 +111,15 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { TimestampUtils.addTimestamp(Config.HOST + "v1d45/game/remenkapai", Constants.GAME_CD), new Response.Listener() { - @Override public void onResponse(JSONArray response) { processingData(response); } - }, new Response.ErrorListener() { - + }, + new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { - // 无网络连接 - if (error.getClass().equals(NoConnectionError.class)) { - } } }); AppController.addToRequestQueue(recommendRequest, ConcernActivity.class); @@ -225,42 +218,47 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { @Override public void onClick(View v) { - int position = getPosition(); + final int position = getPosition(); if (v == concern_item_btn) { // 删除关注表中的数据,并更新界面 - if (manager.findConcernById(list.get(position).getId()) != null) { - ConcernInfo concernInfo = list.remove(position); - - Map kv = new HashMap(); - kv.put("状态", "取消关注"); - DataUtils.onEvent(ConcernActivity.this, "游戏关注", concernInfo.getGameName(), kv); + DialogUtils.showCancelDialog(ConcernActivity.this, new DialogUtils.ConfiremListener() { + @Override + public void onConfirem() { + if (manager.findConcernById(list.get(position).getId()) != null) { + ConcernInfo concernInfo = list.remove(position); - Map map = new HashMap(); - map.put("game", concernInfo.getGameName()); - map.put("type", "取消关注"); - map.put("createdOn", System.currentTimeMillis() / 1000); - DataCollectionManager.onEvent(ConcernActivity.this, "concern", map); - - manager.deleteConcern(concernInfo.getId()); - concernList.remove(position); - concern_rv_show.getAdapter().notifyItemRemoved(position); - if (list.isEmpty()) { - reuse_none_data.setVisibility(View.VISIBLE); - concern_rv_show.setVisibility(View.GONE); + Map kv = new HashMap<>(); + kv.put("状态", "取消关注"); + DataUtils.onEvent(ConcernActivity.this, "游戏关注", concernInfo.getGameName(), kv); + + Map map = new HashMap<>(); + map.put("game", concernInfo.getGameName()); + map.put("type", "取消关注"); + map.put("createdOn", System.currentTimeMillis() / 1000); + DataCollectionManager.onEvent(ConcernActivity.this, "concern", map); + + manager.deleteConcern(concernInfo.getId()); + concernList.remove(position); + concern_rv_show.getAdapter().notifyItemRemoved(position); + if (list.isEmpty()) { + reuse_none_data.setVisibility(View.VISIBLE); + concern_rv_show.setVisibility(View.GONE); + } + concern_item_btn.setClickable(false); + view.setClickable(false); + + recommendList = new ArrayList<>(); + initRecommendGame(); + } else { + toast("取消失败,请稍后再试"); + } } - concern_item_btn.setClickable(false); - view.setClickable(false); - - recommendList = new ArrayList(); - initRecommendGame(); - } else { - toast("取消失败,请稍后再试"); - } + }); } else { if (concernList != null && !concernList.isEmpty()) { GameEntity gameEntity = concernList.get(position); - Map map = new HashMap(); + Map map = new HashMap<>(); map.put("location", "关注列表"); map.put("createOn", System.currentTimeMillis() / 1000); map.put("game", gameEntity.getName()); @@ -333,11 +331,11 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { // 添加关注到表,并更新当前界面,插入一个关注 GameEntity gameEntity = recommendList.get(position); - Map kv = new HashMap(); + Map kv = new HashMap<>(); kv.put("状态", "关注"); DataUtils.onEvent(ConcernActivity.this, "游戏关注", gameEntity.getName(), kv); - Map map = new HashMap(); + Map map = new HashMap<>(); map.put("game", gameEntity.getName()); map.put("type", "关注"); map.put("createdOn", System.currentTimeMillis() / 1000); @@ -369,10 +367,12 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { } concern_item_btn.setClickable(false); view.setClickable(false); + + toast("关注成功"); } else { GameEntity gameEntity = recommendList.get(position); - Map map = new HashMap(); + Map map = new HashMap<>(); map.put("location", "热门游戏推荐"); map.put("createOn", System.currentTimeMillis() / 1000); map.put("game", gameEntity.getName()); @@ -448,9 +448,9 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { if (isChanged) { list = concernList; if (list == null) { - list = new ArrayList(); + list = new ArrayList<>(); } - concernList = new ArrayList(); + concernList = new ArrayList<>(); if (!list.isEmpty()) { reuse_none_data.setVisibility(View.GONE); concern_rv_show.setVisibility(View.VISIBLE); @@ -459,14 +459,11 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { reuse_none_data.setVisibility(View.VISIBLE); concern_rv_show.setVisibility(View.GONE); } - recommendList = new ArrayList(); + recommendList = new ArrayList<>(); initRecommendGame(); } isPause = false; } - - - } @Override diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java index 71a80db874..1db9370aa1 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java @@ -412,16 +412,18 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis @Override public void onResponse(JSONArray response) { Utils.log(response.toString()); - Gson gson = new Gson(); - ArrayList news = gson.fromJson( - response.toString(), - new TypeToken>() { - }.getType()); - if (entity!= null && news != null) { - entity.setNews(news); + if (!isDestroy) { + Gson gson = new Gson(); + ArrayList news = gson.fromJson( + response.toString(), + new TypeToken>() { + }.getType()); + if (entity!= null && news != null) { + entity.setNews(news); + } + llLoading.setVisibility(View.GONE); + detailsAdapter.notifyDataSetChanged(); } - llLoading.setVisibility(View.GONE); - detailsAdapter.notifyDataSetChanged(); } }, new Response.ErrorListener() { @@ -430,7 +432,9 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis // 无网络连接和访问超时 if (error.getClass().equals(NoConnectionError.class) || error.getClass().equals(TimeoutError.class)) { - llLoading.setVisibility(View.GONE); + if (!isDestroy) { + llLoading.setVisibility(View.GONE); + } } } }); @@ -505,13 +509,14 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis getGameNews(); } - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - noConnection.setVisibility(View.VISIBLE); - // 无网络连接和访问超时 - } - }); + }, + new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + noConnection.setVisibility(View.VISIBLE); + // 无网络连接和访问超时 + } + }); AppController.addToRequestQueue(request, GameDetailsActivity.class); } @@ -666,7 +671,7 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis } private void initGameViewHolder(GameViewHolder gameViewHolder) { - gameViewHolder.gamepic_rv.setLayoutManager(new LinearLayoutManager(context,LinearLayoutManager.HORIZONTAL,false)); + gameViewHolder.gamepic_rv.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)); gameViewHolder.gamepic_rv.setAdapter(new GamePicAdapter()); gameViewHolder.gamepic_rv.addItemDecoration(new HorizontalItemDecoration( context, 1, entity.getGallery().size())); @@ -676,14 +681,14 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis private void initZiXunViewHolder(ZiXunViewHolder ziXunViewHolder) { LinearLayout llContainer = ziXunViewHolder.llContainer; int childCount = llContainer.getChildCount(); - if (entity.getNews().size()<3){ + if (entity.getNews().size() < 3) { ziXunViewHolder.llMore.setVisibility(View.GONE); - }else if (entity.getNews().size()==0){ + }else if (entity.getNews().size() == 0) { ziXunViewHolder.view.setVisibility(View.GONE); } - if ( childCount == 0){ - for (int i =0;i map = new HashMap(); + Map map = new HashMap<>(); map.put("game", gameEntity.getName()); map.put("type", "关注"); map.put("createdOn", System.currentTimeMillis() / 1000); @@ -791,7 +796,7 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis topViewHolder.tv_concern.setTextColor(0xffbc2132); Toast.makeText(context,"关注成功",Toast.LENGTH_SHORT).show(); } else { - Map kv2 = new HashMap(); + Map kv2 = new HashMap<>(); kv2.put("点击", "取消关注"); DataUtils.onEvent(GameDetailsActivity.this, "插件数据", gameEntity.getName(), kv2); @@ -805,12 +810,12 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis DialogUtils.showCancelDialog(context, new DialogUtils.ConfiremListener() { @Override public void onConfirem() { - Map kv = new HashMap(); + Map kv = new HashMap<>(); kv.put("状态", "取消关注"); DataUtils.onEvent(GameDetailsActivity.this, "游戏关注", gameEntity.getName(), kv); - Map map = new HashMap(); + Map map = new HashMap<>(); map.put("game", gameEntity.getName()); map.put("type", "关注"); map.put("createdOn", System.currentTimeMillis() / 1000); @@ -915,16 +920,14 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis } @Override - public void onBindViewHolder(ViewHolder holder, final int position) { - holder.gamepic_iv.setImageResource(R.drawable.me_icon); - holder.gamepic_iv.setScaleType(ImageView.ScaleType.CENTER_INSIDE); - ImageUtils.getInstance(GameDetailsActivity.this).display(entity.getGallery().get(position),holder.gamepic_iv); + public void onBindViewHolder(final ViewHolder holder, int position) { + ImageUtils.getInstance(GameDetailsActivity.this).display(entity.getGallery().get(position), holder.gamepic_iv); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(GameDetailsActivity.this,ViewImageActivity.class); intent.putExtra("urls", entity.getGallery()); - intent.putExtra("current", position); + intent.putExtra("current", holder.getPosition()); startActivity(intent); } }); @@ -933,7 +936,7 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis @Override public int getItemCount() { - return 5; + return entity.getGallery().size(); } public class ViewHolder extends RecyclerView.ViewHolder { diff --git a/app/src/main/java/com/gh/gamecenter/NewsActivity.java b/app/src/main/java/com/gh/gamecenter/NewsActivity.java index 93def6146c..d8192e2f5d 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsActivity.java @@ -971,11 +971,11 @@ public class NewsActivity extends BaseActivity implements OnClickListener { for (int i = 0, size = gameEntity.getApk().size(); i < size; i++) { ApkEntity apkEntity = gameEntity.getApk().get(i); if ("9u".equals(apkEntity.getPlatform())) { - holder.essaydetails_info.setText("V" + apkEntity.getVersion() + " | " + apkEntity.getSize()); + holder.essaydetails_info.setText(String.format("V%s | %s", apkEntity.getVersion(), apkEntity.getSize())); break; } if (i == size - 1) { - holder.essaydetails_info.setText("V" + apkEntity.getVersion() + " | " + apkEntity.getSize()); + holder.essaydetails_info.setText(String.format("V%s | %s", apkEntity.getVersion(), apkEntity.getSize())); } } } diff --git a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java index 10d2ea3bd2..4637ecc716 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java @@ -256,15 +256,15 @@ public class NewsSearchActivity extends BaseActivity { } @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { + public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { if (holder instanceof ViewHolder){ ((ViewHolder) holder).textView.setText(newsEntities.get(position).getTitle()); ((ViewHolder) holder).textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplicationContext(),NewsActivity.class); - intent.putExtra("newsId",newsEntities.get(position).getId()); - intent.putExtra("entrance","游戏详情-全部资讯"); + intent.putExtra("newsId", newsEntities.get(holder.getPosition()).getId()); + intent.putExtra("entrance", "游戏详情-全部资讯"); startActivity(intent); } }); diff --git a/app/src/main/java/com/gh/gamecenter/SearchActivity.java b/app/src/main/java/com/gh/gamecenter/SearchActivity.java index ab1aa2fc63..035455a9ca 100644 --- a/app/src/main/java/com/gh/gamecenter/SearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SearchActivity.java @@ -53,12 +53,13 @@ public class SearchActivity extends BaseFragmentActivity { private TextView searchButton; private SearchHistoryDao dao; - private TextWatcher mTextWatcher; private String searchKey; + private int currentTab; private boolean isHistorySearch; + private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { @@ -118,8 +119,6 @@ public class SearchActivity extends BaseFragmentActivity { } setResultPresentModel(currentTab); - - searchInput.addTextChangedListener(mTextWatcher); } public void setActionBarLayout(final String hint, final boolean isFromHome) { @@ -209,7 +208,7 @@ public class SearchActivity extends BaseFragmentActivity { }); - mTextWatcher = new TextWatcher() { + searchInput.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { @@ -233,11 +232,11 @@ public class SearchActivity extends BaseFragmentActivity { if (searchKey.length() < 1) { setResultPresentModel(0); } else if (!isHistorySearch){ - handler.sendEmptyMessageDelayed(1,300); + handler.sendEmptyMessageDelayed(1, 300); } } } - }; + }); searchBack.setOnClickListener(new OnClickListener() { @Override @@ -292,7 +291,7 @@ public class SearchActivity extends BaseFragmentActivity { case 2: DataUtils.onEvent(SearchActivity.this, "搜索页面", searchKey); - Map map = new HashMap(); + Map map = new HashMap<>(); map.put("key", searchKey); map.put("from", "搜索页面"); map.put("createdOn", System.currentTimeMillis() / 1000); diff --git a/app/src/main/java/com/gh/gamecenter/SettingActivity.java b/app/src/main/java/com/gh/gamecenter/SettingActivity.java index 6cc6e03f26..25fe536974 100644 --- a/app/src/main/java/com/gh/gamecenter/SettingActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SettingActivity.java @@ -142,7 +142,7 @@ public class SettingActivity extends BaseActivity implements OnClickListener { sp = getSharedPreferences(Config.PREFERENCE, Activity.MODE_PRIVATE); // 未打开下载按钮,显示修复下载按钮 - if (!sp.getBoolean("isShow", false)) { + if (!sp.getBoolean("isShow", false) || !Config.getInstance().isShow()) { findViewById(R.id.setting_cv_fix_download).setVisibility(View.VISIBLE); findViewById(R.id.setting_cv_fix_download).setOnClickListener(this); } diff --git a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java index 69f1031f87..c417f2ca7e 100644 --- a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java @@ -184,46 +184,50 @@ public class SplashScreenActivity extends BaseActivity { public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus && isFirst) { - - // 第一次启动,把package.txt文件内容加载进数据库 - if (!sp.getBoolean("isLoadFilter", false)) { - try { - List list = new ArrayList<>(); - BufferedReader reader = new BufferedReader( - new InputStreamReader(getAssets().open( - "package.txt"))); - String line; - while ((line = reader.readLine()) != null) { - list.add(new FilterInfo(line)); - } - reader.close(); - FilterManager filterManager = new FilterManager( - getApplicationContext()); - filterManager.addAllFilter(list); - sp.edit().putBoolean("isLoadFilter", true).apply(); - } catch (IOException e1) { - e1.printStackTrace(); - } - } - isFirst = false; - checkUpdateFile(); + try { + // 第一次启动,把package.txt文件内容加载进数据库 + if (!sp.getBoolean("isLoadFilter", false)) { + try { + List list = new ArrayList<>(); + BufferedReader reader = new BufferedReader( + new InputStreamReader(getAssets().open( + "package.txt"))); + String line; + while ((line = reader.readLine()) != null) { + list.add(new FilterInfo(line)); + } + reader.close(); + FilterManager filterManager = new FilterManager( + getApplicationContext()); + filterManager.addAllFilter(list); + sp.edit().putBoolean("isLoadFilter", true).apply(); + } catch (IOException e1) { + e1.printStackTrace(); + } + } - concernManager = new ConcernManager(getApplicationContext()); + checkUpdateFile(); - /* - * 更新过滤表,获取自动刷新的cd,获取版本对应表 - */ - String time = sp.getString("filter_time", null); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd", - Locale.getDefault()); - String today = format.format(new Date()); - if (!today.equals(time)) { - FilterManager manager = new FilterManager( - getApplicationContext()); - manager.getFilterFromServer(today); - getPlatform(); + concernManager = new ConcernManager(getApplicationContext()); + + /* + * 更新过滤表,获取自动刷新的cd,获取版本对应表 + */ + String time = sp.getString("filter_time", null); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd", + Locale.getDefault()); + String today = format.format(new Date()); + if (!today.equals(time)) { + FilterManager manager = new FilterManager( + getApplicationContext()); + manager.getFilterFromServer(today); + getPlatform(); + } + } catch (Exception e) { + e.printStackTrace(); + toast("抛出异常"); } // 获取下载按钮状态、开启or关闭 @@ -598,10 +602,12 @@ public class SplashScreenActivity extends BaseActivity { } entity.setTime(System.currentTimeMillis()); entity.setPackageNames(packageNames); - //默认安装即为关注 -// if (!concernManager.isConcern(entity.getId())) { -// concernManager.addByEntity(gameEntity); -// } + if (sp.getBoolean("isNewsFirstLaunch", true)) { + //默认安装即为关注 + if (!concernManager.isConcern(entity.getId())) { + concernManager.addByEntity(gameEntity); + } + } concernManager.updateByConcern(entity); } if (cCount == count) { diff --git a/app/src/main/java/com/gh/gamecenter/adapter/GameNewsTypeListAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/GameNewsTypeListAdapter.java index c43679bbfc..20ba4b2acb 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/GameNewsTypeListAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/GameNewsTypeListAdapter.java @@ -69,10 +69,13 @@ public class GameNewsTypeListAdapter extends RecyclerView.Adapter GameManager manager = new GameManager(context); for (GameEntity gEntity : pluginList) { gEntity.setEntryMap(DownloadManager.getInstance(context).getEntryMap(gEntity.getName())); - for (ApkEntity aEntity : gEntity.getApk()) { - manager.addOrUpdate(new GameInfo(aEntity.getPackageName(), - gEntity.getId(), gEntity.getName())); - } + manager.addOrUpdate(gEntity.getApk(), gEntity.getId(), gEntity.getName()); } notifyItemRangeInserted(0, pluginList.size()); initLocationMap(); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java index c816c8f705..23991de210 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java @@ -146,10 +146,7 @@ public class SubjectAdapter extends RecyclerView.Adapter list) { + try { + dao.create(list); + } catch (SQLException e) { e.printStackTrace(); } } @@ -42,7 +53,6 @@ public class GameDao { try { dao.deleteById(packageName); } catch (SQLException e) { - e.printStackTrace(); } } @@ -54,7 +64,27 @@ public class GameDao { try { return dao.queryForId(packageName); } catch (SQLException e) { - + e.printStackTrace(); + } + return null; + } + + /** + * 根据包名获取多个游戏 + */ + public List findAll(List packageNames) { + try { + QueryBuilder builder = dao.queryBuilder(); + Where where = builder.where(); + for (int i = 0, size = packageNames.size(); i < size; i++) { + if (i == 0) { + where.eq("packageName", packageNames.get(i)); + } else { + where.or().eq("packageName", packageNames.get(i)); + } + } + return builder.query(); + } catch (SQLException e) { e.printStackTrace(); } return null; @@ -67,7 +97,6 @@ public class GameDao { try { return dao.queryForAll(); } catch (SQLException e) { - e.printStackTrace(); } return null; @@ -80,7 +109,6 @@ public class GameDao { try { dao.update(entity); } catch (SQLException e) { - e.printStackTrace(); } } diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownloadAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameDownloadAdapter.java index 4c86270673..a728509f49 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownloadAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownloadAdapter.java @@ -22,6 +22,7 @@ import com.gh.common.util.ImageUtils; import com.gh.common.util.PackageUtils; import com.gh.common.util.PlatformUtils; import com.gh.common.util.SpeedUtils; +import com.gh.common.util.Utils; import com.gh.common.view.CardLinearLayout; import com.gh.download.DownloadEntry; import com.gh.download.DownloadManager; @@ -90,7 +91,7 @@ public class GameDownloadAdapter extends RecyclerView.Adapter 0 && position <= doneList.size()) { doneList.remove(position - 1); + if (doneList.isEmpty()) { + isDoneEmpty = true; + } } else if (doneList.isEmpty()) { downloadingList.remove(position - 1); + if (downloadingList.isEmpty()) { + isDownloadingEmpty = true; + } } else { downloadingList.remove(position - doneList.size() - 2); + if (downloadingList.isEmpty()) { + isDownloadingEmpty = true; + } } if (doneList.isEmpty() && downloadingList.isEmpty()) { @@ -478,11 +491,11 @@ public class GameDownloadAdapter extends RecyclerView.Adapter() { @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; GameManager manager = new GameManager(context); SubjectEntity subjectEntity; GameEntity gameEntity; - for (int j = 0; j < subjectList.size(); j++) { - subjectEntity = subjectList.get(j); + for (int j = 0; j < list.size(); j++) { + subjectEntity = list.get(j); if (subjectEntity.getData().size() == 1 && !TextUtils.isEmpty(subjectEntity.getData().get(0).getImage())){ - subjectList.remove(j); + list.remove(j); continue; } for (int i = 0; i < subjectEntity.getData().size(); i++) { gameEntity = subjectEntity.getData().get(i); if (gameEntity.getApk() != null && !gameEntity.getApk().isEmpty()) { gameEntity.setEntryMap(DownloadManager.getInstance(context).getEntryMap(gameEntity.getName())); - for (ApkEntity apkEntity : gameEntity.getApk()) { - manager.addOrUpdate(new GameInfo(apkEntity.getPackageName(), - gameEntity.getId(), gameEntity.getName())); - } + manager.addOrUpdate(gameEntity.getApk(), gameEntity.getId(), gameEntity.getName()); } else if (TextUtils.isEmpty(gameEntity.getId())) { if (TextUtils.isEmpty(gameEntity.getType()) || TextUtils.isEmpty(gameEntity.getLink()) @@ -241,7 +238,10 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter map, boolean isUpload) { + public static void onEvent(Context context, String type, Map map, boolean isUpload) { onEvent(context, type, new JSONObject(map).toString(), isUpload); } - public static void upsert(Context context, String type, - Map map) { + public static void upsert(Context context, String type, Map map) { String id = UUID.randomUUID().toString().replaceAll("-", ""); DataCollectionInfo entity = new DataCollectionInfo(); entity.setId(id); @@ -88,14 +84,14 @@ public class DataCollectionManager { } public void upsert(DataCollectionInfo entity, String type) { - List list = dao.findByType("user"); + List list = dao.findByType(type); if (list == null || list.isEmpty()) { dao.add(entity); } else { entity.setId(list.get(0).getId()); dao.update(entity); if (list.size() > 1) { - List ids = new ArrayList(); + List ids = new ArrayList<>(); for (int i = 1, size = list.size(); i < size; i++) { ids.add(list.get(i).getId()); } @@ -133,7 +129,7 @@ public class DataCollectionManager { map.put("version", version); map.put("user", user); map.put("channel", channel); - Map params = new HashMap(); + Map params = new HashMap<>(); params.put("type", type); params.put("data", new JSONObject(map).toString()); String url = "http://data.ghzhushou.com/collection/upload2"; @@ -156,6 +152,7 @@ public class DataCollectionManager { } } }); + request.setShouldCache(false); AppController.addToRequestQueue(request, DataCollectionManager.class); } @@ -165,9 +162,9 @@ public class DataCollectionManager { public void statClickData() { List list = dao.getClickData(); if (!list.isEmpty()) { - List ids = new ArrayList(); + List ids = new ArrayList<>(); DataCollectionInfo dataCollectionEntity; - List data = new ArrayList(); + List data = new ArrayList<>(); try { for (int i = 0, size = list.size(); i < size; i++) { dataCollectionEntity = list.get(i); @@ -177,7 +174,7 @@ public class DataCollectionManager { } catch (JSONException e) { e.printStackTrace(); } - Map map = new HashMap(); + Map map = new HashMap<>(); map.put("data", data); map.put("createdOn", System.currentTimeMillis() / 1000); onEvent(mContext, "click", map); @@ -208,14 +205,14 @@ public class DataCollectionManager { isUploading = true; String url = "http://data.ghzhushou.com/collection/upload"; - final List ids = new ArrayList(); + final List ids = new ArrayList<>(); String version = PackageUtils.getVersion(mContext); String user = DeviceUtils.getDeviceID(mContext); String channel = (String) PackageUtils.getMetaData(mContext, mContext.getPackageName(), "TD_CHANNEL_ID"); - HashMap map = new HashMap(); + HashMap map = new HashMap<>(); DataCollectionInfo dataCollectionEntity; String type; JSONArray jsonArray; @@ -244,9 +241,9 @@ public class DataCollectionManager { return; } - ArrayList params = new ArrayList(); + ArrayList params = new ArrayList<>(); for (String key : map.keySet()) { - HashMap hashMap = new HashMap(); + HashMap hashMap = new HashMap<>(); hashMap.put("type", key); hashMap.put("data", map.get(key)); JSONObject jsonObject = new JSONObject(hashMap); diff --git a/app/src/main/java/com/gh/gamecenter/manager/GameManager.java b/app/src/main/java/com/gh/gamecenter/manager/GameManager.java index 7caaf33213..4820ffa993 100644 --- a/app/src/main/java/com/gh/gamecenter/manager/GameManager.java +++ b/app/src/main/java/com/gh/gamecenter/manager/GameManager.java @@ -2,9 +2,12 @@ package com.gh.gamecenter.manager; import android.content.Context; +import com.gh.common.util.Utils; import com.gh.gamecenter.db.GameDao; import com.gh.gamecenter.db.info.GameInfo; +import com.gh.gamecenter.entity.ApkEntity; +import java.util.ArrayList; import java.util.List; public class GameManager { @@ -21,6 +24,24 @@ public class GameManager { } } + public void addOrUpdate(ArrayList apk, String gameId, String gameName) { + ArrayList list = new ArrayList<>(); + ArrayList packageNames = new ArrayList<>(); + for (ApkEntity apkEntity : apk) { + packageNames.add(apkEntity.getPackageName()); + } + List result = dao.findAll(packageNames); + for (GameInfo gameInfo : result) { + packageNames.remove(gameInfo.getPackageName()); + } + for (String packageName : packageNames) { + list.add(new GameInfo(packageName, gameId, gameName)); + } + if (list.size() != 0) { + dao.addAll(list); + } + } + public void addGame(GameInfo entity) { dao.add(entity); } 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 b6320c4f8a..cd44a030ab 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java @@ -253,7 +253,7 @@ public class News1FragmentAdapter extends RecyclerView.Adapter kv = new HashMap<>(); kv.put("名字", newsEntity.getTitle()); - kv.put("位置", position + 1); + kv.put("位置", viewHolder.getPosition() + 1); DataUtils.onEvent(context, "点击", "资讯-资讯", kv); //统计阅读量 - statNewsViews(newsEntity.getId(), position); + statNewsViews(newsEntity.getId(), viewHolder.getPosition()); NewsUtils.startNewsActivity(context, newsEntity, "资讯-资讯"); } }); @@ -295,7 +295,7 @@ public class News1FragmentAdapter extends RecyclerView.Adapter kv = new HashMap<>(); kv.put("名字", newsEntity.getTitle()); - kv.put("位置", position + 1); + kv.put("位置", viewHolder.getPosition() + 1); DataUtils.onEvent(context, "点击", "资讯-资讯", kv); //统计阅读量 - statNewsViews(newsEntity.getId(), position); + statNewsViews(newsEntity.getId(), viewHolder.getPosition()); NewsUtils.startNewsActivity(context, newsEntity, "资讯-资讯"); } }); @@ -360,7 +360,7 @@ public class News1FragmentAdapter extends RecyclerView.Adapter kv = new HashMap<>(); kv.put("名字", newsEntity.getTitle()); - kv.put("位置", position + 1); + kv.put("位置", viewHolder.getPosition() + 1); DataUtils.onEvent(context, "点击", "资讯-资讯", kv); //统计阅读量 - statNewsViews(newsEntity.getId(), position); + statNewsViews(newsEntity.getId(), viewHolder.getPosition()); NewsUtils.startNewsActivity(context, newsEntity, "资讯-资讯"); } }); diff --git a/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java index b0a703254d..1635f4411a 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java @@ -253,7 +253,7 @@ public class News2FragmentAdapter extends RecyclerView.Adapter kv = new HashMap(); kv.put("名字", newsEntity.getTitle()); - kv.put("位置", position + 1); + kv.put("位置", viewHolder.getPosition() + 1); DataUtils.onEvent(context, "点击", "资讯-原创", kv); //统计阅读量 - statNewsViews(newsEntity.getId(), position); + statNewsViews(newsEntity.getId(), viewHolder.getPosition()); NewsUtils.startNewsActivity(context, newsEntity, "资讯-原创"); } }); @@ -295,7 +295,7 @@ public class News2FragmentAdapter extends RecyclerView.Adapter kv = new HashMap(); kv.put("名字", newsEntity.getTitle()); - kv.put("位置", position + 1); + kv.put("位置", viewHolder.getPosition() + 1); DataUtils.onEvent(context, "点击", "资讯-原创", kv); //统计阅读量 - statNewsViews(newsEntity.getId(), position); + statNewsViews(newsEntity.getId(), viewHolder.getPosition()); NewsUtils.startNewsActivity(context, newsEntity, "资讯-原创"); } }); @@ -354,7 +354,7 @@ public class News2FragmentAdapter extends RecyclerView.Adapter kv = new HashMap(); kv.put("名字", newsEntity.getTitle()); - kv.put("位置", position + 1); + kv.put("位置", viewHolder.getPosition() + 1); DataUtils.onEvent(context, "点击", "资讯-原创", kv); //统计阅读量 - statNewsViews(newsEntity.getId(), position); + statNewsViews(newsEntity.getId(), viewHolder.getPosition()); NewsUtils.startNewsActivity(context, newsEntity, "资讯-原创"); } }); 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 d0e1021fb6..4dc30b1b08 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java @@ -286,7 +286,7 @@ public class News4FragmentAdapter extends RecyclerView.Adapter { - - private Context context; - - private List newsList; - - private String from; - - public NewsListAdapter(Context context, List list, String str) { - this.context = context; - - newsList = list; - from = str; - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - if (viewType == 0) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.home_list_item_newsimage_type, parent, false); - return new NewsImageViewHolder(view); - } else { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.home_list_item_newsnormal_type, parent, false); - return new NewsTextViewHolder(view); - } - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { - if (holder instanceof NewsImageViewHolder) { - NewsImageViewHolder viewHolder = (NewsImageViewHolder) holder; - - final NewsEntity newsEntity = newsList.get(0); - ImageUtils.getInstance(context).display(newsEntity.getThumb(), viewHolder.newsThumb); - String title = newsEntity.getTitle(); - if (title.contains("》")) { - viewHolder.newsMainTitle.setText(title.substring(0, title.indexOf("》") + 1)); - viewHolder.newsSubTitle.setVisibility(View.VISIBLE); - viewHolder.newsSubTitle.setText(title.substring(title.indexOf("》") + 1)); - } else if (title.contains(" ")) { - viewHolder.newsMainTitle.setText(title.substring(0, title.indexOf(" ") + 1)); - viewHolder.newsSubTitle.setVisibility(View.VISIBLE); - viewHolder.newsSubTitle.setText(title.substring(title.indexOf(" ") + 1)); - } else { - viewHolder.newsMainTitle.setText(title); - viewHolder.newsSubTitle.setVisibility(View.GONE); - } - viewHolder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Map kv = new HashMap(); - kv.put("文章类型", newsEntity.getType()); - kv.put("入口", "攻略-今天"); - DataUtils.onEvent(context, "资讯-攻略", newsEntity.getTitle(), kv); - - 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.statNewsViews(newsEntity.getId()); - NewsUtils.startNewsActivity(context, newsEntity, "资讯-攻略-今天"); - } - }); - } else if (holder instanceof NewsTextViewHolder) { - NewsTextViewHolder viewHolder = (NewsTextViewHolder) holder; - - final NewsEntity newsEntity = newsList.get(position); - viewHolder.newsType.setBackgroundResource(NewsUtils - .getDrawableIdByType(newsEntity.getType())); - viewHolder.newsType.setText(newsEntity.getType()); - viewHolder.newsTitle.setText(newsEntity.getTitle()); - viewHolder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Map kv = new HashMap(); - kv.put("文章类型", newsEntity.getType()); - kv.put("入口", "攻略-" + from); - DataUtils.onEvent(context, "资讯-攻略", newsEntity.getTitle(), kv); - - Map map = new HashMap(); - map.put("location", from); - map.put("createOn", System.currentTimeMillis() / 1000); - map.put("news", newsEntity.getTitle()); - map.put("page", "攻略"); - DataCollectionManager.onEvent(context, "click-item", map); - - //统计阅读量 - NewsUtils.statNewsViews(newsEntity.getId()); - NewsUtils.startNewsActivity(context, newsEntity, "资讯-攻略-" + from); - } - }); - } - } - - @Override - public int getItemCount() { - return newsList.size(); - } - - @Override - public int getItemViewType(int position) { - if ("今天".equals(from) && !TextUtils.isEmpty(newsList.get(0).getThumb())) { - return 0; - } else { - return 1; - } - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java index 38843067ca..114dac0b9d 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java @@ -150,10 +150,7 @@ public class ConcernFragmentAdapter extends RecyclerView.Adapter kv = new HashMap(); + Map kv = new HashMap<>(); kv.put("入口", "搜索"); DataUtils.onEvent(context, "游戏详情", gameEntity.getName(), kv); - Map map = new HashMap(); + Map map = new HashMap<>(); map.put("location", "搜索"); map.put("createOn", System.currentTimeMillis() / 1000); map.put("game", gameEntity.getName()); diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java index d6283acc7e..168df298ee 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java @@ -139,7 +139,7 @@ public class SearchGameListFragmentAdapter extends RecyclerView.Adapter map = new HashMap(); + Map map = new HashMap<>(); map.put("key", key); map.put("from", "搜索页面"); map.put("createdOn", System.currentTimeMillis() / 1000); DataCollectionManager.onEvent(context, "search", map); - Map kv = new HashMap(); + Map kv = new HashMap<>(); kv.put("入口", "搜索"); DataUtils.onEvent(context, "游戏详情", gameEntity.getName(), kv); - Map map2 = new HashMap(); + Map map2 = new HashMap<>(); map2.put("location", "搜索"); map2.put("createOn", System.currentTimeMillis() / 1000); map2.put("game", gameEntity.getName()); diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryListAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryListAdapter.java deleted file mode 100644 index 2a69a2f164..0000000000 --- a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryListAdapter.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gh.gamecenter.search; - -import android.content.Context; -import android.support.v7.widget.RecyclerView; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import com.gh.common.util.DataUtils; -import com.gh.gamecenter.R; -import com.gh.gamecenter.db.SearchHistoryDao; -import com.gh.gamecenter.eventbus.EBSearch; -import com.gh.gamecenter.manager.DataCollectionManager; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import de.greenrobot.event.EventBus; - -/** - * Created by LGT on 2016/8/17. - */ -public class SearchHistoryListAdapter extends RecyclerView.Adapter { - - private Context context; - - private SearchHistoryDao dao; - - private List historyList; - - public SearchHistoryListAdapter(Context context, List list) { - this.context = context; - - historyList = list; - - dao = new SearchHistoryDao(context); - } - - @Override - public SearchHistoryViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View view = LayoutInflater.from(context).inflate( - R.layout.fm_search_history_item, parent, false); - return new SearchHistoryViewHolder(view); - } - - @Override - public void onBindViewHolder(final SearchHistoryViewHolder viewHolder, int position) { - viewHolder.search_history_name.setText(historyList.get(position)); - viewHolder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - String str = viewHolder.search_history_name.getText().toString(); - - DataUtils.onEvent(context, "搜索页面", str); - - Map map = new HashMap<>(); - map.put("key", str); - map.put("from", "搜索页面"); - map.put("createdOn", System.currentTimeMillis() / 1000); - DataCollectionManager.onEvent(context, "search", map); - - EventBus.getDefault().post(new EBSearch(str, true)); - dao.add(viewHolder.search_history_name.getText().toString()); - } - }); - } - - @Override - public int getItemCount() { - return historyList.size(); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchResultListAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchResultListAdapter.java deleted file mode 100644 index 100e9cfab2..0000000000 --- a/app/src/main/java/com/gh/gamecenter/search/SearchResultListAdapter.java +++ /dev/null @@ -1,180 +0,0 @@ -package com.gh.gamecenter.search; - -import android.content.Context; -import android.content.Intent; -import android.support.v7.widget.RecyclerView; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.inputmethod.InputMethodManager; - -import com.gh.base.AppController; -import com.gh.common.constant.Config; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DialogUtils; -import com.gh.common.util.GameViewUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.NetworkUtils; -import com.gh.common.view.DownloadDialog; -import com.gh.gamecenter.GameDetailsActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.manager.DataCollectionManager; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Created by LGT on 2016/8/17. - */ -public class SearchResultListAdapter extends RecyclerView.Adapter { - - private Context context; - - private List gameList; - - private String key; - - public SearchResultListAdapter(Context context, - List list, - String str) { - this.context = context; - - gameList = list; - key = str; - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - if (viewType == 0) { - View itemView = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.game_normal_item, parent, false); - return new GameNormalViewHolder(itemView); - } else { - View itemView = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.fm_search_history_item, parent, false); - return new SearchHistoryViewHolder(itemView); - } - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { - final GameEntity gameEntity = gameList.get(position); - if (holder instanceof GameNormalViewHolder && position == 0) { - GameNormalViewHolder viewHolder = (GameNormalViewHolder) holder; - - ImageUtils.getInstance(context).display(gameEntity.getIcon(), viewHolder.gameThumb); - viewHolder.gameNameAndSize.setText(gameEntity.getName()); - if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) { - viewHolder.gameDes.setText(gameEntity.getBrief()); - } else { - viewHolder.gameDes.setText(gameEntity.getApk().get(0).getSize() + " " + gameEntity.getBrief()); - } - - GameViewUtils.setLabelList(context, viewHolder.labelList, gameEntity.getTag()); - - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - DataUtils.onEvent(context, "搜索页面", key); - - Map map = new HashMap(); - map.put("key", key); - map.put("from", "搜索页面"); - map.put("createdOn", System.currentTimeMillis() / 1000); - DataCollectionManager.onEvent(context, "search", map); - - Map kv = new HashMap(); - kv.put("入口", "搜索"); - DataUtils.onEvent(context, "游戏详情", gameEntity.getName(), kv); - - Map map2 = new HashMap(); - map2.put("location", "搜索"); - map2.put("createOn", System.currentTimeMillis() / 1000); - map2.put("game", gameEntity.getName()); - map2.put("page", "搜索"); - DataCollectionManager.onEvent(context, "click-item", map2); - - AppController.put("GameEntity", gameEntity); - Intent intent = new Intent(context, GameDetailsActivity.class); - intent.putExtra("entrance", "搜索"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - - if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) { - viewHolder.downloadBtn.setVisibility(View.GONE); - } else { - viewHolder.downloadBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(final View v) { - InputMethodManager imm = (InputMethodManager) context - .getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(v.getWindowToken(), 0); - if (NetworkUtils.isWifiConnected(context)) { - DownloadDialog.getInstance(context) - .showPopupWindow(v, gameEntity, "搜索", "搜索:" + gameEntity.getName()); - } else { - DialogUtils.showDownloadDialog(context, new DialogUtils.ConfiremListener() { - @Override - public void onConfirem() { - DownloadDialog.getInstance(context) - .showPopupWindow(v, gameEntity, "搜索", "搜索:" + gameEntity.getName()); - } - }); - } - } - }); - } - - if (Config.getInstance().isShow()) { - viewHolder.downloadBtn.setVisibility(View.VISIBLE); - } else { - viewHolder.downloadBtn.setVisibility(View.GONE); - } - } else if (holder instanceof SearchHistoryViewHolder) { - SearchHistoryViewHolder viewHolder = (SearchHistoryViewHolder) holder; - - viewHolder.search_history_name.setText(gameEntity.getName()); - viewHolder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DataUtils.onEvent(context, "搜索页面", key); - - Map map = new HashMap<>(); - map.put("key", key); - map.put("from", "搜索页面"); - map.put("createdOn", System.currentTimeMillis() / 1000); - DataCollectionManager.onEvent(context, "search", map); - - Map map2 = new HashMap<>(); - map2.put("location", "搜索"); - map2.put("createOn", System.currentTimeMillis() / 1000); - map2.put("game", gameEntity.getName()); - map2.put("page", "搜索"); - DataCollectionManager.onEvent(context, "click-item", map2); - - AppController.put("GameEntity", gameEntity); - Intent intent = new Intent(context, GameDetailsActivity.class); - intent.putExtra("entrance", "搜索"); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - }); - } - } - - @Override - public int getItemCount() { - return gameList.size(); - } - - @Override - public int getItemViewType(int position) { - return position; - } -} diff --git a/app/src/main/res/drawable-hdpi/home1_selected.png b/app/src/main/res/drawable-hdpi/home1_selected.png index 0fae2ae3b745f536a603c698660ad677879bf604..9f0a5a70aa055fe01248cfdaa3f7878f05f3c5f7 100644 GIT binary patch delta 3773 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 delta 3983 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 delta 4032 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 vj|pQy{l978H@y}7e7 zD}nC|oHe;Fj@k!LX`O9o?U=r?Tw&TH-j3;tNs7xnQ&VTNHurArT{2UP z@w}Mv<_r&?w36u=^Om2PU{JH?kNSVh_IeW@=g`G(5BqJ5yt{tes_3g%vy|)DH@`~W z8vQn8ecQ{F|2q3EtehRpR~@gvdid3($aoI+tKF|o8qD1jZ@!@SRp!@lQ?tw5FTKC+ zsWS0V-yF)cD{k+abu$&Ow!b=PF!zn@-v>LUKK1(=W>fPt>TB7S+KT5}8rFrcUwu05 znBer)*MU~QR%hL^aYs&P`+L_fMO$ij6vjCC$8NKD{PfLB^ZzdW+xYWC>Tl<6JXHVg z%`=d-Y@Z`+)+Fr7SQePiXSUjZr{{?*zE#?fpY^LBIlM|Q^!xF%^K%bcZ98^WzUPot zUhi!C(Du?8+2>Pvu5C|zeUAVAb4Ldb4n{=<0Rbi_Ad97?0mxzk3Y_b;KX`1zk3HvkO)tH*HNe*Wjoy8G*o)PJ_SIRENCQ6x8` znDnUrQH{bH9KHjpd~m-Z?bv}?X^&qmw%o9+|8drJnTX5pcHA;#zqZBr)!Bn-Usvu* zkz4a%!7d}YWt0EDYOUO`Nc?cgru}!0*{|GJKZ7&_<>M2nuipX9vHo??lRxt2f4eH|uHCLrI=yX)br#3U{kHE2v|T6n zEbXytq5XwF_a01sn)g~IoiihI^RD>Z(Cw>MUu}#0FP3&ze${)k`Ym6x3Y&k1{O4h~ XD7i?2wO)N90}yz+`njxgN@xNAB7A`r delta 1076 zcmew^ycG*G%s0FdZ)E0tQ4U|les%Awu+p`+ieBio?0uE|bzN2LUYW4d=V$LZ*u8Q3?jQXL zd11G&E`GJ?=B(DguPVQ$MCjhTMslNR{q!i(&bgkV*egieNEd~T;Oi-zie?;XsoGn&C{%}SwInIgZlckN<}fh zj%P=co+o%4xXXWtZ7ZC0dh_zl|1RvmVYwsn@5J4SbIv7xeLZ9Qoa1s=ayJ$ntGqk! zsU*n2rN4~hy^73!U)4{x6*PGE{~iC4L;njZZLK%g?^fCU{D$$?o07&eqWi3aXU{ck z-uY|?SU{rxh4Idth2G-uFa!mbf`kAMC|IFEdtge;tdIL^Kibxv+z>S{U)e8CK0TPX zSVk%xsty?Z4A3Y5X@zKaGk^X)ao_3RGWEiB^H~u};WjBqz-(G};+Mhmlv;^&xClrQ zn!+Co*YFqnU289FLzjU#7ObIB{uI!tEel^C{u5JccJCa>EA_~J0eKJR#TbWc?Uw4V z4_h3@bUoN|nDG5un}5%|^`=MijQjDqE6<*rad1!Z9f&|SOkmA7+3Ir{^|scZxzZwZ z?ZeN@)}MRvv#KnuyuNK^Rgml~M!%N@w#H|TW+ZN{iMKUopL1#R*E45~XKX!wm3{L8 zPP;YfOLwww4!2!nHrRe2;Fk?#ALIVk(;((jh&ueQz}_j z4orV}r`U3D9iG1X>f2Y}@7T`XeE2KRoqJP^Pm6aaN*ue}@c93)zx8Lcc2|YOnmKRY zaQ|X?vH!7s(q=~!_U#C=UGXk-`>O1#({An(_-0i#;Zv-8|L#39pS@3dvM>ifVl{#V qESA_s2_HnH1BDy8U#(|k$QN7{_iJJVE3h2kWbkzLb6Mw<&;$U0g2inB diff --git a/app/src/main/res/drawable-hdpi/home2_unselected.png b/app/src/main/res/drawable-hdpi/home2_unselected.png index 33d39a5b291dffeba7235bfaa7bfbac1279a2326..8e3ff01544ee8262c6dfca0c100e794fdba951b0 100644 GIT binary patch delta 883 zcmca8+aROZ8Q|y6%O%Cdz`(%k>ERLtq$hwd2OE%l?)GTMM#Z^Y^}3!ejv*Dd-rODGz;A4K@qbUm?UApNi@=C?RGIfgck%xWzS}*NmIH^&|tn@|JMAGHbgBMR!ES3rs z7QR!8%sZ7}b!X`nG$jATl|9AfX!$?aTn>AU**~^1t*2;xsUw!+k zYO9p^!6m-}-iEDT_4Z@Nj{PU<*~7&+UW9Fpvt6}r#@D3<0k-Ss^|&A2o5~!u)@+sh z>c*LIUh`L_Uw!;B!@}|%yC2u%w6EKKdD=|Bm2mCA?Xzp=&hBO_* z_Of^L#4enDm0EiC%#7l-RhIjOc%S`yUa2VO*ZJb;vuo#G6*A`T$l3VdY0l%#u{WO8 zUpu$BoX&cW+i*J+*%J{@AtuPWU>Vd$!_B!na|FssKC;3*62hU;MEC-$k>3o?lP;L|j-N zX?*#&127KOSEcFcytuh$=J`AoyLIZv0Fy`unlP4`=_(pHnj9*ScN7wp*=tf7!iu`PI2U zr#?SnzjtnO(BGK9L2JYNJyvO_RcXqY>^1-KBx8H&B-gn2o5KGF#KIG7)-~}%OI|Mg lm3MjZ+P61(p9TN5WUzZa&2X`>(M1Lz@O1TaS?83{1ON#-kmLXW delta 1094 zcmZpWxhSjH8Q|y6%O%Cdz`(%k>ERLtq|bmb2OE&ISMvF^QE@I;{Xb6^$B>F!Z|>S> zi&V-Sc<9f!(W@}2cx$i5oT&+^shZs#NAcnW?G~l?!e} z#4DRcFFg@AaqGwPJ9l<$o?SW5>XgOjzfa7KtzYNpigh@-;qKnQ`F~IBd=*x@cvn#DifyvHf)nHRu8s>mze;`c%O{7e@;_X= zuzvTC{sg^n>#K8Lt+^@H+Wac8wBBs)9xNzCv;Cf}OWgM^ z=f93l~4j?Jd6g`R?l9*I7RQJoRadRleJgBR^lg z+_lE!wZNIOuMs*m%Cn9G7y9`1Uo_AB;v?ZTk zcJ|zagE577Zf?0LX*7eo&w93*wKLme!CJGtvOAYp55fWy8lcQgj0YKj7$m&G^IXr5 z`}@Ay{+o2Oq-c@-{zJbDuU$>*aZYZ9C;;g}*H@pAP>}r3?o9blyW?#2^I5e)(S&R& zvZmQ5ekb|?@frh|GeC-=8bCrI{K2`>{tRcOeUB&`IL<+aH6$>=UCsd(uG4tmZn@C3 zw%-2C`K#=YbKy>erxl<+utORW9*BIZn<4zEPC^^Q`Ou^V_0{K{JMTh5a8EHb1jC^r z`1wp>`sK9r6AAM|*!ygcmu#3bw~*C%wqLznNWV;d-^+_dWp3LKh1^}wca}lhD(0Ne zVxBZ$;#ns*i#hB|fu-?dp0t;7U$5zW;LV@D`O=N%nc>@4e@|;#UlD(Ip09fGL7B?n zyCS^toll?TSXFN3liuuie$w6*>#S`bPrkh2H871H-Ia4;mu=0@WxJyO&fJ}zT()CQ zNnMF>HA;(f6uSQzgFK``7R{=>;(;(k}o&!{9X9IEjP$Oe($=v)#pODuadqx z^_A1s+--iXmG1mO`(C{$oUZO%r?InZ?a`!%8xFR`9fm{-mH-3^;SiPvM%dgx)(r0? X=S|8}%Q*)u8W=oX{an^LB{Ts5C0N;x diff --git a/app/src/main/res/drawable-hdpi/home3_selected.png b/app/src/main/res/drawable-hdpi/home3_selected.png index 730709ab7af719b5893469950d5d6919b834b495..da2e45b37cec7d1c6215d2c364d6ffcf8ef371a6 100644 GIT binary patch delta 2643 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
;g6cuVY5~Pv`STY&nX4B=8w|#GHaz z33H>CaY;CiIbHlM5$G?#iDLX=TV(2s(IV9(%waGMm=!Xk)qjVqI120s4q%S`+Ai18 zQoUh+G9}6!jHAG-J^p>DNYwz;NyD%fxEZ)bUZZ{>;wj)g;IOlqjnmI18MVThIyl`josnxwzwh0|0f}LJlY;D0Tn<002ovPDHLkV1nK) B^DY1Y delta 2875 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 delta 2897 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 - + \ No newline at end of file diff --git a/app/src/main/res/drawable/oval_hint_up.xml b/app/src/main/res/drawable/oval_hint_up.xml index 1d3925ba22..2f690c4ba0 100644 --- a/app/src/main/res/drawable/oval_hint_up.xml +++ b/app/src/main/res/drawable/oval_hint_up.xml @@ -1,10 +1,7 @@ + android:shape="oval" > - + - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 32387dab72..5d4b1e1a2b 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -27,6 +27,7 @@ android:background="@android:color/white" android:orientation="horizontal" android:gravity="center_vertical" + android:paddingTop="5dp" android:paddingBottom="5dp" android:baselineAligned="false" > @@ -41,7 +42,7 @@ @@ -50,6 +51,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="游戏" + android:layout_marginTop="3dp" android:textColor="@color/theme" android:textSize="12sp" /> @@ -64,8 +66,8 @@ @@ -74,6 +76,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="资讯" + android:layout_marginTop="3dp" android:textColor="@color/title" android:textSize="12sp" /> @@ -88,8 +91,8 @@ @@ -98,6 +101,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我的光环" + android:layout_marginTop="3dp" android:textColor="@color/title" android:textSize="12sp" /> diff --git a/app/src/main/res/layout/fragment_news.xml b/app/src/main/res/layout/fragment_news.xml index d0b81ea636..b4c8915dd6 100644 --- a/app/src/main/res/layout/fragment_news.xml +++ b/app/src/main/res/layout/fragment_news.xml @@ -61,11 +61,6 @@ android:background="@color/theme" /> - - + android:background="#ededed"/> @@ -71,6 +73,7 @@ android:id="@+id/actionbar_notification" android:layout_width="0dp" android:layout_height="match_parent" + android:layout_marginRight="5dp" android:layout_weight="1" > - -