diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java index ea3025f674..786ec70b66 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java @@ -324,7 +324,7 @@ public class DownloadItemUtils { } else { download_speed.setText("下载完成"); } - download_percentage.setText("100%"); + download_percentage.setText(R.string.hundred_percent); if (isNormal) { downloadBtn.setText("安装"); diff --git a/app/src/main/java/com/gh/common/util/ImageUtils.java b/app/src/main/java/com/gh/common/util/ImageUtils.java index 479ff6430b..c89272dfc3 100644 --- a/app/src/main/java/com/gh/common/util/ImageUtils.java +++ b/app/src/main/java/com/gh/common/util/ImageUtils.java @@ -103,10 +103,12 @@ public class ImageUtils { public void display(String url, ImageView imageView, int drawable,Context context) { display(url, imageView, drawable, ScaleType.FIT_XY, null ,context); } + // 主页大图布局用到的 public void display(String url, ImageView imageView, int drawable,Context context,RelativeLayout rlImage,int position) { display(url, imageView, drawable, ScaleType.FIT_XY, null ,context, rlImage,position); } + public void display(String url, ImageView imageView, int drawable) { display(url, imageView, drawable, ScaleType.FIT_XY, null); } diff --git a/app/src/main/java/com/gh/common/view/CardLinearLayout.java b/app/src/main/java/com/gh/common/view/CardLinearLayout.java new file mode 100644 index 0000000000..7037b43778 --- /dev/null +++ b/app/src/main/java/com/gh/common/view/CardLinearLayout.java @@ -0,0 +1,248 @@ +package com.gh.common.view; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.drawable.Drawable; +import android.util.AttributeSet; +import android.widget.LinearLayout; + +import com.gh.gamecenter.R; + +/** + * Created by LGT on 2016/8/31. + */ +public class CardLinearLayout extends LinearLayout { + + private Drawable leftDrawable, topDrawable, rightDrawable, bottomDrawable, centerDrawable; + private Drawable leftTopDrawable, rightTopDrawable, leftBottomDrawable, rightBottomDrawable; + + private int mLeft, mTop, mRight, mBottom; + + private boolean isBottom; + + public CardLinearLayout(Context context) { + this(context, null); + } + + public CardLinearLayout(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public CardLinearLayout(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + init(context, attrs); + } + + private void init(Context context, AttributeSet attrs) { + isBottom = true; + + leftDrawable = getContext().getResources().getDrawable(R.drawable.frame_left); + topDrawable = getContext().getResources().getDrawable(R.drawable.frame_top); + rightDrawable = getContext().getResources().getDrawable(R.drawable.frame_right); + bottomDrawable = getContext().getResources().getDrawable(R.drawable.frame_bottom); + centerDrawable = getContext().getResources().getDrawable(R.drawable.frame_center); + + leftTopDrawable = getContext().getResources().getDrawable(R.drawable.frame_left_top_square); + rightTopDrawable = getContext().getResources().getDrawable(R.drawable.frame_right_top_square); + leftBottomDrawable = getContext().getResources().getDrawable(R.drawable.frame_left_bottom_square); + rightBottomDrawable = getContext().getResources().getDrawable(R.drawable.frame_right_bottom_square); + + if (attrs != null) { + TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.CardLayout); + mLeft = ta.getDimensionPixelSize(R.styleable.CardLayout_left, 0); + mTop = ta.getDimensionPixelSize(R.styleable.CardLayout_top, 0); + mRight = ta.getDimensionPixelSize(R.styleable.CardLayout_right, 0); + mBottom = ta.getDimensionPixelSize(R.styleable.CardLayout_bottom, 0); + ta.recycle(); + } + setPadding(getPaddingLeft() + mLeft, getPaddingTop() + mTop, getPaddingRight() + mRight, getPaddingBottom() + mBottom); + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + + if (mLeft != 0 && mTop != 0 && mRight != 0 && mBottom != 0) { + // 左、上、右、下 + if (leftTopDrawable != null) { + leftTopDrawable.setBounds(0, 0, mLeft, mTop); + leftTopDrawable.draw(canvas); + } + + if (topDrawable != null) { + topDrawable.setBounds(mLeft, 0, getWidth() - mRight, mTop); + topDrawable.draw(canvas); + } + + if (rightTopDrawable != null) { + rightTopDrawable.setBounds(getWidth() - mRight, 0, getWidth(), mTop); + rightTopDrawable.draw(canvas); + } + + if (leftDrawable != null) { + leftDrawable.setBounds(0, mTop, mLeft, getHeight() - mBottom); + leftDrawable.draw(canvas); + } + + if (rightDrawable != null) { + rightDrawable.setBounds(getWidth() - mRight, mTop, getWidth(), getHeight() - mBottom); + rightDrawable.draw(canvas); + } + + if (leftBottomDrawable != null) { + leftBottomDrawable.setBounds(0, getHeight() - mBottom, mLeft, getHeight()); + leftBottomDrawable.draw(canvas); + } + + if (isBottom) { + if (bottomDrawable != null) { + bottomDrawable.setBounds(mLeft, getHeight() - mBottom, getWidth() - mRight, getHeight()); + bottomDrawable.draw(canvas); + } + } else { + if (centerDrawable != null) { + centerDrawable.setBounds(mLeft, getHeight() - mBottom, getWidth() - mRight, getHeight()); + centerDrawable.draw(canvas); + } + } + + if (rightBottomDrawable != null) { + rightBottomDrawable.setBounds(getWidth() - mRight, getHeight() - mBottom, getWidth(), getHeight()); + rightBottomDrawable.draw(canvas); + } + + } else if (mLeft != 0 && mTop != 0 && mRight != 0) { + // 左、上、右 + if (leftTopDrawable != null) { + leftTopDrawable.setBounds(0, 0, mLeft, mTop); + leftTopDrawable.draw(canvas); + } + + if (topDrawable != null) { + topDrawable.setBounds(mLeft, 0, getWidth() - mRight, mTop); + topDrawable.draw(canvas); + } + + if (rightTopDrawable != null) { + rightTopDrawable.setBounds(getWidth() - mRight, 0, getWidth(), mTop); + rightTopDrawable.draw(canvas); + } + + if (leftDrawable != null) { + leftDrawable.setBounds(0, mTop, mLeft, getHeight()); + leftDrawable.draw(canvas); + } + + if (rightDrawable != null) { + rightDrawable.setBounds(getWidth() - mRight, mTop, getWidth(), getHeight()); + rightDrawable.draw(canvas); + } + + } else if (mLeft != 0 && mBottom != 0 && mRight != 0) { + // 左、下、右 + if (leftDrawable != null) { + leftDrawable.setBounds(0, 0, mLeft, getHeight() - mBottom); + leftDrawable.draw(canvas); + } + + if (rightDrawable != null) { + rightDrawable.setBounds(getWidth() - mRight, 0, getWidth(), getHeight() - mBottom); + rightDrawable.draw(canvas); + } + + if (leftBottomDrawable != null) { + leftBottomDrawable.setBounds(0, getHeight() - mBottom, mLeft, getHeight()); + leftBottomDrawable.draw(canvas); + } + + if (isBottom) { + if (bottomDrawable != null) { + bottomDrawable.setBounds(mLeft, getHeight() - mBottom, getWidth() - mRight, getHeight()); + bottomDrawable.draw(canvas); + } + } else { + if (centerDrawable != null) { + centerDrawable.setBounds(mLeft, getHeight() - mBottom, getWidth() - mRight, getHeight()); + centerDrawable.draw(canvas); + } + } + + if (rightBottomDrawable != null) { + rightBottomDrawable.setBounds(getWidth() - mRight, getHeight() - mBottom, getWidth(), getHeight()); + rightBottomDrawable.draw(canvas); + } + + } else if (mLeft != 0 && mRight != 0) { + // 左、右 + if (leftDrawable != null) { + leftDrawable.setBounds(0, 0, mLeft, getHeight()); + leftDrawable.draw(canvas); + } + + if (rightDrawable != null) { + rightDrawable.setBounds(getWidth() - mRight, 0, getWidth(), getHeight()); + rightDrawable.draw(canvas); + } + } + + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int newHeight = MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(heightMeasureSpec) + mTop + mBottom, + MeasureSpec.getMode(heightMeasureSpec)); + super.onMeasure(widthMeasureSpec, newHeight); + } + + public void setBottom(boolean bottom) { + isBottom = bottom; + } + + public void setShadow(int left, int top, int right, int bottom) { + setPadding(getPaddingLeft() - mLeft + left, + getPaddingTop() - mTop + top, + getPaddingRight() - mRight + right, + getPaddingBottom() - mBottom + bottom); + this.mLeft = left; + this.mTop = top; + this.mRight = right; + this.mBottom = bottom; + } + + public void setmLeft(int left) { + setPadding(getPaddingLeft() - mLeft + left, getPaddingTop(), getPaddingRight(), getPaddingBottom()); + this.mLeft = left; + } + + public void setmTop(int top) { + setPadding(getPaddingLeft(), getPaddingTop() - mTop + top, getPaddingRight(), getPaddingBottom()); + this.mTop = top; + } + + public void setmRight(int right) { + setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight() - mRight + right, getPaddingBottom()); + this.mRight = right; + } + + public void setmBottom(int bottom) { + setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight(), getPaddingBottom() - mBottom + bottom); + this.mBottom = bottom; + } + + public int getmLeft() { + return mLeft; + } + + public int getmTop() { + return mTop; + } + + public int getmRight() { + return mRight; + } + + public int getmBottom() { + return mBottom; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/download/DownloadTask.java b/app/src/main/java/com/gh/download/DownloadTask.java index 451bf3aa8a..27085f6f8a 100644 --- a/app/src/main/java/com/gh/download/DownloadTask.java +++ b/app/src/main/java/com/gh/download/DownloadTask.java @@ -82,7 +82,11 @@ public class DownloadTask implements DownloadListener { percent = Double.parseDouble(df.format(percent)); } entry.setProgress(currSize); - entry.setPercent(percent); + if (percent == 100.0d) { + entry.setPercent(100); + } else { + entry.setPercent(percent); + } if (percent > currPercent) { currPercent = percent; diff --git a/app/src/main/java/com/gh/gamecenter/GameDeatilsNewsActivity.java b/app/src/main/java/com/gh/gamecenter/GameDeatilsNewsActivity.java index c313ad508b..f23c1a1cc9 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDeatilsNewsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDeatilsNewsActivity.java @@ -104,7 +104,7 @@ public class GameDeatilsNewsActivity extends BaseActivity{ new Thread(new Runnable() { @Override public void run() { - LoadNewsData(page); + loadNewsData(page); } }).start(); @@ -130,7 +130,7 @@ public class GameDeatilsNewsActivity extends BaseActivity{ if (newState == RecyclerView.SCROLL_STATE_IDLE &&layoutManager.findLastVisibleItemPosition() + 1 == newsAdapter.getItemCount()&&isLoadOver&&!isRemove){ isLoadOver = false; page++; - LoadNewsData(page); + loadNewsData(page); } } }); @@ -144,7 +144,7 @@ public class GameDeatilsNewsActivity extends BaseActivity{ handler.postDelayed(new Runnable() { @Override public void run() { - LoadNewsData(1); + loadNewsData(1); } },1000); } @@ -222,7 +222,7 @@ public class GameDeatilsNewsActivity extends BaseActivity{ public void run() { page = 1; isRemove = false; - LoadNewsData(page); + loadNewsData(page); } }).start(); } @@ -236,7 +236,7 @@ public class GameDeatilsNewsActivity extends BaseActivity{ } - private void LoadNewsData(final int page) { + private void loadNewsData(final int page) { String url = null; if (newsType == null || "全部".equals(newsType)){ @@ -324,7 +324,7 @@ public class GameDeatilsNewsActivity extends BaseActivity{ View view = LayoutInflater.from(parent.getContext()).inflate( R.layout.refresh_footerview, parent, false); return new FooterViewHolder(view); - }else { + } else { TextView textView = new TextView(getApplicationContext()); textView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); textView.setPadding(DisplayUtils.dip2px(GameDeatilsNewsActivity.this,10),DisplayUtils.dip2px(GameDeatilsNewsActivity.this,10),0,DisplayUtils.dip2px(GameDeatilsNewsActivity.this,10)); @@ -348,7 +348,7 @@ public class GameDeatilsNewsActivity extends BaseActivity{ startActivity(intent); } }); - }else if (holder instanceof FooterViewHolder){ + } else if (holder instanceof FooterViewHolder){ FooterViewHolder viewHolder = (FooterViewHolder) holder; if (isNetworkError) { viewHolder.footerview_progressbar.setVisibility(View.GONE); @@ -359,7 +359,7 @@ public class GameDeatilsNewsActivity extends BaseActivity{ public void onClick(View v) { isNetworkError = false; notifyItemChanged(getItemCount() - 1); - LoadNewsData(page); + loadNewsData(page); } }); } else if (isRemove) { diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java index bae98fe5ec..1fd993a91d 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java @@ -34,6 +34,7 @@ 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.DisplayUtils; import com.gh.common.util.FileUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.MD5Utils; @@ -124,16 +125,19 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + View contentView = View.inflate(this, R.layout.activity_new_gamedetails, null); + RelativeLayout reuse_actionbar = (RelativeLayout) contentView.findViewById(R.id.reuse_actionbar); iv_share = new ImageView(this); iv_share.setImageResource(R.drawable.share_icon); - float dp = getResources().getDisplayMetrics().density; - RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((int)(dp*20),(int)(dp*20)); + RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( + DisplayUtils.dip2px(this, 20), DisplayUtils.dip2px(this, 20)); params.addRule( RelativeLayout.CENTER_VERTICAL); params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT ); - params.setMargins(0,0,(int)(dp*10),0); + params.setMargins(0, 0, DisplayUtils.dip2px(this, 10), 0); reuse_actionbar.addView(iv_share,params); + gameId = getIntent().getStringExtra("gameId"); entrance = getIntent().getStringExtra("entrance"); if (gameId != null) { @@ -143,7 +147,12 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis gameId = gameEntity.getId(); } - init(contentView,gameEntity.getName()); + if (gameEntity != null && gameEntity.getName() != null) { + init(contentView, gameEntity.getName()); + } else { + init(contentView, ""); + } + dismissEntity = new DismissEntity(false); statusMap = new ArrayMap<>(); @@ -308,8 +317,7 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis private void initDowload() { if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) { tvDowload.setText("暂无下载"); - tvDowload - .setBackgroundResource(R.drawable.textview_gray_style); + tvDowload.setBackgroundResource(R.drawable.textview_gray_style); tvDowload.setTextColor(0xFF999999); tvDowload.setClickable(false); } else { @@ -634,23 +642,21 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis getGameDetail(); getGameNews(); } + @Override public int getItemViewType(int position){ if (position == 0){ - return 0; - } - else if (entity.getTag()!=null && entity.getTag().size()>0&&position == 1){ + } else if (entity.getTag() != null && entity.getTag().size() > 0 && position == 1) { return 1; - }else if (entity.getNews()!=null && entity.getNews().size()>0&&(position == 1||entity.getTag()!=null&&entity.getTag().size()>0&&position == 2)){ + } else if (entity.getNews() != null && entity.getNews().size() > 0 + && (position == 1 || entity.getTag() != null && entity.getTag().size() > 0 && position == 2)) { return 2; - }else if (entity.getGallery()!=null && entity.getGallery().size()>0){ + } else if (entity.getGallery() != null && entity.getGallery().size() > 0) { return 3; - } - else { + } else { return super.getItemViewType(position); } - } @Override @@ -697,7 +703,6 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis gameViewHolder.gamepic_rv.addItemDecoration(new HorizontalItemDecoration( context, 1, entity.getGallery().size())); gameViewHolder.game_content.setText(entity.getDes()); - } private void initZiXunViewHolder(ZiXunViewHolder ziXunViewHolder) { @@ -744,7 +749,6 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis } private void initPluginViewHolder(PluginViewHolder pluginViewHolder) { - LinearLayout llContainer = pluginViewHolder.llContainer; int childCount = llContainer.getChildCount(); if (childCount == 0){ @@ -772,8 +776,7 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis topViewHolder.tv_name.setText(gameEntity.getName()); ImageUtils.getInstance(context).display(gameEntity.getIcon(),topViewHolder.iv_game); ApkEntity apkEntity = gameEntity.getApk().get(0); - topViewHolder.tv_info.setText("V" + apkEntity.getVersion() + " | " - + apkEntity.getSize()); + topViewHolder.tv_info.setText("V" + apkEntity.getVersion() + " | " + apkEntity.getSize()); topViewHolder.tv_concern.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java index 972337a7ac..d979bca62a 100644 --- a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java @@ -1,6 +1,7 @@ package com.gh.gamecenter; import android.os.Bundle; +import android.support.v4.util.ArrayMap; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; @@ -14,6 +15,7 @@ import com.gh.base.BaseActivity; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.adapter.GameNewsAdapter; import com.gh.gamecenter.adapter.GameNewsTypeListAdapter; +import com.gh.gamecenter.eventbus.EBTypeChange; import java.util.ArrayList; @@ -22,17 +24,23 @@ import java.util.ArrayList; */ public class GameNewsActivity extends BaseActivity implements View.OnClickListener{ - private static GameNewsAdapter adapter; - private static GameNewsTypeListAdapter typeListAdapter; + private GameNewsAdapter adapter; + private GameNewsTypeListAdapter typeListAdapter; private RecyclerView game_news_list; private RecyclerView game_news_top_type_list; private LinearLayoutManager layoutManager; private ImageView ivSearch; - private boolean isDestroy; + private ArrayMap adapterMap; - public static int selectedPosition = 0; //新闻类型选中位置 + private ArrayList typeList; + + private String gameId; + + private float startY = 0; + + private boolean isDestroy; @Override protected void onCreate(Bundle savedInstanceState) { @@ -52,26 +60,31 @@ public class GameNewsActivity extends BaseActivity implements View.OnClickListen ivSearchParams.setMargins(0, 0, DisplayUtils.dip2px(this, 10), 0); RelativeLayout reuse_actionbar = (RelativeLayout) contentView.findViewById(R.id.reuse_actionbar); - reuse_actionbar.addView(ivSearch,ivSearchParams); + reuse_actionbar.addView(ivSearch, ivSearchParams); ivSearch.setOnClickListener(this); + ivSearch.setVisibility(View.GONE); String gameName = getIntent().getStringExtra("gameName"); init(contentView, gameName); - final ArrayList typeList = getIntent().getStringArrayListExtra("articleTypes"); + adapterMap = new ArrayMap<>(); + + typeList = getIntent().getStringArrayListExtra("articleTypes"); typeList.add(0, "全部"); - String gameId = getIntent().getStringExtra("gameId"); + gameId = getIntent().getStringExtra("gameId"); game_news_list.setHasFixedSize(true); layoutManager = new LinearLayoutManager(this); game_news_list.setLayoutManager(layoutManager); - adapter = new GameNewsAdapter(this, typeList, gameId, game_news_top_type_list,game_news_list); + adapter = new GameNewsAdapter(this, typeList, game_news_list, gameId, "全部"); + adapterMap.put("全部", adapter); game_news_list.setAdapter(adapter); game_news_list.setOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); + if (layoutManager.findFirstVisibleItemPosition() >= 1) { game_news_top_type_list.setVisibility(View.VISIBLE); ivSearch.setVisibility(View.VISIBLE); @@ -86,7 +99,7 @@ public class GameNewsActivity extends BaseActivity implements View.OnClickListen public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); if (!isDestroy && newState == RecyclerView.SCROLL_STATE_IDLE - && layoutManager.findLastVisibleItemPosition() == 3) { + && layoutManager.findLastVisibleItemPosition() == adapter.getItemCount() - 1) { if (!adapter.isRemove() && !adapter.isLoading() && !adapter.isNetworkError()) { adapter.addList(adapter.getNewsList().size()); } @@ -96,37 +109,39 @@ public class GameNewsActivity extends BaseActivity implements View.OnClickListen game_news_top_type_list.setHasFixedSize(true); game_news_top_type_list.setLayoutManager(new GridLayoutManager(this, 5)); - typeListAdapter = new GameNewsTypeListAdapter(this, typeList); + typeListAdapter = new GameNewsTypeListAdapter(typeList, "全部"); game_news_top_type_list.setAdapter(typeListAdapter); ViewGroup.LayoutParams params = game_news_top_type_list.getLayoutParams(); params.height = (int) Math.ceil(typeList.size() / 5f) * DisplayUtils.dip2px(this, 37); game_news_top_type_list.setLayoutParams(params); + //禁止由于滑动出现的阴影 game_news_top_type_list.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - float Y1 = 0; - float Y2; - switch (event.getAction()){ - case MotionEvent.ACTION_DOWN: - Y1 = event.getY(); - break; - case MotionEvent.ACTION_MOVE: - Y2 = event.getY(); - if (Math.abs(Y1 - Y2)>0){ - return true; - } - break; + if (event.getAction() == MotionEvent.ACTION_DOWN) { + startY = event.getY(); + } else if (event.getAction() == MotionEvent.ACTION_DOWN) { + if (Math.abs(startY - event.getY()) > 0) { + return true; + } } return false; } }); } - public static void notifyTypeItem(String type){ - adapter.notifyDataTypeAdapter(type); - typeListAdapter.notifyDataSetChanged(); + public void onEventMainThread(EBTypeChange change) { + adapter = adapterMap.get(change.getType()); + if (adapter == null) { + adapter = new GameNewsAdapter(this, typeList, game_news_list, gameId, change.getType()); + adapterMap.put(change.getType(), adapter); + } + game_news_list.setAdapter(adapter); + + game_news_top_type_list.setVisibility(View.GONE); + typeListAdapter.setNewsType(change.getType(), change.getPosition()); } @Override @@ -135,7 +150,6 @@ public class GameNewsActivity extends BaseActivity implements View.OnClickListen isDestroy = true; adapter = null; typeListAdapter = null; - selectedPosition = 0; } @Override diff --git a/app/src/main/java/com/gh/gamecenter/NewsActivity.java b/app/src/main/java/com/gh/gamecenter/NewsActivity.java index 98453503ab..cfa349e792 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsActivity.java @@ -153,11 +153,9 @@ public class NewsActivity extends BaseActivity implements OnClickListener { HashMap downloadingEntries) { if (gameEntity != null && gameEntity.getApk().size() == 1) { String url = gameEntity.getApk().get(0).getUrl(); - for (Map.Entry entry : downloadingEntries - .entrySet()) { + for (Map.Entry entry : downloadingEntries.entrySet()) { if (url.equals(entry.getValue().getUrl())) { - if (!"pause".equals(statusMap.get(entry.getValue() - .getUrl()))) { + if (!"pause".equals(statusMap.get(entry.getValue().getUrl()))) { downloadEntry = entry.getValue(); invalidate(); } @@ -999,18 +997,11 @@ public class NewsActivity extends BaseActivity implements OnClickListener { public NewsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view; if (viewType == 0) { - view = LayoutInflater.from(parent.getContext()).inflate(R.layout.essaydetails_item_top, parent, false); - } else if (viewType == 1) { - view = LayoutInflater.from(parent.getContext()).inflate(R.layout.essaydetails_more_news_item, parent, false); + view = LayoutInflater.from(parent.getContext()).inflate( + R.layout.essaydetails_item_top, parent, false); } else { - RelativeLayout relativeLayout = new RelativeLayout(NewsActivity.this); - ViewGroup.LayoutParams params = new ViewGroup.LayoutParams( - LayoutParams.MATCH_PARENT, DisplayUtils.dip2px(getApplicationContext(), 48)); - if (!Config.isShow) { - params.height = 0; - } - relativeLayout.setLayoutParams(params); - view = relativeLayout; + view = LayoutInflater.from(parent.getContext()).inflate( + R.layout.essaydetails_more_news_item, parent, false); } return new NewsViewHolder(view, viewType); } @@ -1018,7 +1009,7 @@ public class NewsActivity extends BaseActivity implements OnClickListener { @Override public void onBindViewHolder(NewsViewHolder holder, int position) { if (position == 0) { - if (gameEntity != null && !gameEntity.getName().contains("光环助手")) { + if (gameEntity != null && gameEntity.getName() != null && !gameEntity.getName().contains("光环助手")) { holder.essaydetails_ll_top.setVisibility(View.VISIBLE); holder.cardView.setVisibility(View.VISIBLE); ImageUtils.getInstance(getApplicationContext()).displayFile(gameEntity.getIcon(), holder.essaydetails_icon); @@ -1116,10 +1107,8 @@ public class NewsActivity extends BaseActivity implements OnClickListener { } } else if (entity.getMore() != null && position == 1) { - - LinearLayout news_item_ll = holder.news_item_ll; - for (int i = 0;i=1){ - return 3; + if (entity.getMore() != null && entity.getMore().size() >= 1){ + return 2; } - return 2; + return 1; } @Override public int getItemViewType(int position) { - if (position == 0) { - return 0; - } else if(entity.getMore() != null && entity.getMore().size()>=1 && position == 1){ - return 1; - } - else { - return 5; - } + return position; } } @@ -1201,14 +1173,12 @@ public class NewsActivity extends BaseActivity implements OnClickListener { essaydetails_tv_download.setVisibility(View.VISIBLE); essaydetails_progressbar.setVisibility(View.GONE); essaydetails_tv_per.setVisibility(View.GONE); - essaydetails_tv_download.setText("启动《" - + gameEntity.getName() + "》"); + essaydetails_tv_download.setText("启动《" + gameEntity.getName() + "》"); } else if ("卸载".equals(busFour.getType())) { essaydetails_tv_download.setVisibility(View.VISIBLE); essaydetails_progressbar.setVisibility(View.GONE); essaydetails_tv_per.setVisibility(View.GONE); - essaydetails_tv_download.setText("下载《" - + gameEntity.getName() + "》"); + essaydetails_tv_download.setText("下载《" + gameEntity.getName() + "》"); } } } diff --git a/app/src/main/java/com/gh/gamecenter/PluginActivity.java b/app/src/main/java/com/gh/gamecenter/PluginActivity.java index c4202899cb..358c8bee23 100644 --- a/app/src/main/java/com/gh/gamecenter/PluginActivity.java +++ b/app/src/main/java/com/gh/gamecenter/PluginActivity.java @@ -111,7 +111,6 @@ public class PluginActivity extends BaseActivity { plugin_list.setLayoutManager(new LinearLayoutManager(this)); adapter = new PluginAdapter(this, plugin_list, plugin_pb_loading, reuse_no_connection); plugin_list.setAdapter(adapter); - plugin_list.addItemDecoration(new VerticalItemDecoration(this, 1)); } diff --git a/app/src/main/java/com/gh/gamecenter/SettingActivity.java b/app/src/main/java/com/gh/gamecenter/SettingActivity.java index 55115b424d..155969f284 100644 --- a/app/src/main/java/com/gh/gamecenter/SettingActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SettingActivity.java @@ -84,14 +84,11 @@ public class SettingActivity extends BaseActivity implements OnClickListener { for (Entry entry : downloads.entrySet()) { DownloadEntry downloadEntry = entry.getValue(); if (downloadEntry.getName().contains("光环助手") && isShowDownload) { - app_tv_speed.setText(SpeedUtils.getSpeed(downloadEntry - .getSpeed()) - + "(剩" - + SpeedUtils.getRemainTime(downloadEntry.getSize(), - downloadEntry.getProgress(), - downloadEntry.getSpeed() * 1024) + ")"); - app_pb_progress.setProgress((int) (downloadEntry - .getPercent() * 10)); + app_tv_speed.setText(String.format("%s(剩%s)", + SpeedUtils.getSpeed(downloadEntry.getSpeed()), + SpeedUtils.getRemainTime(downloadEntry.getSize(), downloadEntry.getProgress(), + downloadEntry.getSpeed() * 1024))); + app_pb_progress.setProgress((int) (downloadEntry.getPercent() * 10)); app_tv_percent.setText(downloadEntry.getPercent() + "%"); if (DownloadStatus.done.equals(downloadEntry.getStatus())) { DownloadManager.getInstance(getApplicationContext()) diff --git a/app/src/main/java/com/gh/gamecenter/SubjectActivity.java b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java index 73c0eed460..9cf77e46d8 100644 --- a/app/src/main/java/com/gh/gamecenter/SubjectActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java @@ -124,7 +124,6 @@ public class SubjectActivity extends BaseActivity { subject_list.setLayoutManager(layoutManager); adapter = new SubjectAdapter(this, subject_list, subject_pb_loading, reuse_no_connection, id,order); subject_list.setAdapter(adapter); - subject_list.addItemDecoration(new VerticalItemDecoration(this, 1)); subject_list.setOnScrollListener(new RecyclerView.OnScrollListener() { @Override diff --git a/app/src/main/java/com/gh/gamecenter/adapter/GameNewsAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/GameNewsAdapter.java index d0fe4fc75b..c94acce9bd 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/GameNewsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/GameNewsAdapter.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; @@ -15,17 +14,19 @@ 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.util.DataUtils; import com.gh.common.util.DisplayUtils; -import com.gh.common.view.VerticalItemDecoration; +import com.gh.common.util.NewsUtils; +import com.gh.common.view.CardLinearLayout; import com.gh.gamecenter.GameNewsActivity; import com.gh.gamecenter.NewsSearchActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.CardListViewHolder; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameNewsSearchViewHolder; import com.gh.gamecenter.adapter.viewholder.GameNewsTypeListViewHolder; +import com.gh.gamecenter.adapter.viewholder.NewsTextViewHolder; import com.gh.gamecenter.entity.NewsEntity; -import com.gh.gamecenter.news.NewsListAdapter; +import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -34,7 +35,9 @@ 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 LGT on 2016/8/29. @@ -42,38 +45,32 @@ import java.util.List; public class GameNewsAdapter extends RecyclerView.Adapter { private Context context; - private RecyclerView game_news_top_type_list; private RecyclerView game_news_list; - private GameNewsTypeListAdapter typeListAdapter; - private NewsListAdapter newsListAdapter; - private ArrayList newsList; private ArrayList typeList; private String gameId; private String newsType; - private int listsize; - private boolean isLoading; private boolean isRemove; private boolean isNetworkError; - - public GameNewsAdapter(Context context, ArrayList tList, String id, RecyclerView game_news_top_type_list, RecyclerView game_news_list) { + public GameNewsAdapter(Context context, + ArrayList tList, + RecyclerView game_news_list, + String id, + String type) { this.context = context; - this.game_news_top_type_list = game_news_top_type_list; this.game_news_list = game_news_list; newsList = new ArrayList<>(); typeList = tList; gameId = id; - newsType = "全部"; - - listsize = 0; + newsType = type; isLoading = false; isRemove = false; @@ -109,17 +106,14 @@ public class GameNewsAdapter extends RecyclerView.Adapter { if (list != null && list.size() != 0) { newsList.addAll(list); if (offset == 0) { - if (newsListAdapter != null){ - newsListAdapter.notifyDataSetChanged(); - } game_news_list.scrollToPosition(1); - notifyDataSetChanged(); - } else { - notifyItemChanged(2); } - if (list.size()<20){ + notifyItemChanged(getItemCount() - list.size() - 2); + notifyItemRangeInserted(newsList.size() - list.size() + 2, list.size()); + + if (list.size() < 20) { isRemove = true; - notifyItemChanged(3); + notifyItemChanged(getItemCount() - 1); } } @@ -146,10 +140,10 @@ public class GameNewsAdapter extends RecyclerView.Adapter { View view = LayoutInflater.from(parent.getContext()).inflate( R.layout.game_news_type_item, parent, false); return new GameNewsTypeListViewHolder(view); - } else if (viewType == 2) { + } else if (newsList.size() > 0 && viewType > 1 && viewType <= 1 + newsList.size()) { View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.reuse_card_list, parent, false); - return new CardListViewHolder(view); + R.layout.home_list_item_newsnormal_type, parent, false); + return new NewsTextViewHolder(view); } else { View view = LayoutInflater.from(parent.getContext()).inflate( R.layout.refresh_footerview, parent, false); @@ -168,33 +162,54 @@ public class GameNewsAdapter extends RecyclerView.Adapter { if (viewHolder.game_news_type_list.getAdapter() == null) { viewHolder.game_news_type_list.setHasFixedSize(true); viewHolder.game_news_type_list.setLayoutManager(new GridLayoutManager(context, 5)); - typeListAdapter = new GameNewsTypeListAdapter(context, typeList); - viewHolder.game_news_type_list.setAdapter(typeListAdapter); + viewHolder.game_news_type_list.setAdapter(new GameNewsTypeListAdapter(typeList, newsType)); } - } else if (holder instanceof CardListViewHolder) { - CardListViewHolder viewHolder = (CardListViewHolder) holder; - int height = DisplayUtils.dip2px(context, 37) * newsList.size() - + DisplayUtils.dip2px(context, 1) * (newsList.size() - 1); - ViewGroup.LayoutParams params = viewHolder.card_list_show.getLayoutParams(); - params.height = height; - viewHolder.card_list_show.setLayoutParams(params); - //解决悬挂的typeList,由于新闻条目过少造成的BUG - if (newsList.size()<14){ - game_news_top_type_list.setVisibility(View.GONE); - } - if (viewHolder.card_list_show.getAdapter() == null) { - viewHolder.card_list_show.setHasFixedSize(true); - viewHolder.card_list_show.setLayoutManager(new LinearLayoutManager(context)); - newsListAdapter = new NewsListAdapter(context, newsList, "游戏新闻"); - viewHolder.card_list_show.setAdapter(newsListAdapter); - viewHolder.card_list_show.addItemDecoration(new VerticalItemDecoration(context, 1)); - listsize = newsList.size(); + } else if (holder instanceof NewsTextViewHolder) { + NewsTextViewHolder viewHolder = (NewsTextViewHolder) holder; + + // 第一个 + if (position - 2 == 0) { + viewHolder.news_line.setVisibility(View.GONE); + ((CardLinearLayout) holder.itemView).setmTop(DisplayUtils.dip2px(context, 8)); } else { - viewHolder.card_list_show.getAdapter().notifyItemRangeInserted( - listsize + 1, newsList.size() - listsize); - listsize = newsList.size(); + viewHolder.news_line.setVisibility(View.VISIBLE); + ((CardLinearLayout) holder.itemView).setmTop(0); } - }else if (holder instanceof FooterViewHolder){ + + // 最后一个 + if (position - 1 == newsList.size()) { + ((CardLinearLayout) viewHolder.itemView).setBottom(true); + ((CardLinearLayout) viewHolder.itemView).setmBottom(DisplayUtils.dip2px(context, 8)); + } else { + ((CardLinearLayout) viewHolder.itemView).setBottom(false); + ((CardLinearLayout) viewHolder.itemView).setmBottom(0); + } + + final NewsEntity newsEntity = newsList.get(position - 2); + 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("入口", "游戏详情"); + 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 FooterViewHolder){ FooterViewHolder footerViewHolder = ((FooterViewHolder) holder); if (isRemove){ footerViewHolder.footerview_tv_loading.setText("加载完毕"); @@ -203,13 +218,13 @@ public class GameNewsAdapter extends RecyclerView.Adapter { footerViewHolder.footerview_tv_loading.setText("加载中..."); footerViewHolder.footerview_progressbar.setVisibility(View.VISIBLE); } - }else if (holder instanceof GameNewsSearchViewHolder){ + } else if (holder instanceof GameNewsSearchViewHolder){ GameNewsSearchViewHolder searchViewHolder = ((GameNewsSearchViewHolder) holder); searchViewHolder.game_news_tv_search.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String searchKey = ((GameNewsSearchViewHolder) holder).game_news_et_search.getText().toString().trim(); - if (searchKey.length()>=1){ + if (searchKey.length() >= 1) { Intent intent = new Intent(context,NewsSearchActivity.class); intent.putExtra("gameName","搜索结果"); intent.putExtra("searchKey",searchKey); @@ -225,10 +240,7 @@ public class GameNewsAdapter extends RecyclerView.Adapter { @Override public int getItemCount() { - if (newsList.isEmpty()) { - return 0; - } - return 4; + return 3 + newsList.size(); } @Override @@ -252,11 +264,4 @@ public class GameNewsAdapter extends RecyclerView.Adapter { return isNetworkError; } - public void notifyDataTypeAdapter(String type){ - typeListAdapter.notifyDataSetChanged(); - newsType = type; - isRemove = false; - addList(0); - } - } 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 40fd33fd50..c43679bbfc 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/GameNewsTypeListAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/GameNewsTypeListAdapter.java @@ -1,6 +1,5 @@ package com.gh.gamecenter.adapter; -import android.content.Context; import android.graphics.Color; import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.StateListDrawable; @@ -9,25 +8,31 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import com.gh.gamecenter.GameNewsActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.GameNewsTypeViewHolder; +import com.gh.gamecenter.eventbus.EBTypeChange; import java.util.ArrayList; +import de.greenrobot.event.EventBus; + /** * Created by LGT on 2016/8/29. */ public class GameNewsTypeListAdapter extends RecyclerView.Adapter { - private Context context; - private ArrayList typeList; - public GameNewsTypeListAdapter(Context context, ArrayList tList) { - this.context = context; + private String newsType; + + private int currentPosition; + + public GameNewsTypeListAdapter(ArrayList tList, String type) { typeList = tList; + + newsType = type; + currentPosition = 0; } // 绘图圆角带填充色 @@ -46,9 +51,9 @@ public class GameNewsTypeListAdapter extends RecyclerView.Adapter @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.home_game_normal_item, parent, false); + R.layout.game_normal_item, parent, false); return new GameNormalViewHolder(view); } @@ -212,6 +214,20 @@ public class PluginAdapter extends RecyclerView.Adapter if (holder instanceof GameNormalViewHolder) { GameNormalViewHolder viewHolder = (GameNormalViewHolder) holder; + // 第一个 + if (position == 0) { + ((CardLinearLayout) viewHolder.itemView).setmTop(DisplayUtils.dip2px(context, 8)); + } else { + ((CardLinearLayout) viewHolder.itemView).setmTop(0); + } + + // 最后一个 + if (position == pluginList.size() - 1) { + ((CardLinearLayout) viewHolder.itemView).setBottom(true); + } else { + ((CardLinearLayout) viewHolder.itemView).setBottom(false); + } + final GameEntity entity = pluginList.get(position); viewHolder.home1_game_order.setVisibility(View.GONE); @@ -225,7 +241,7 @@ public class PluginAdapter extends RecyclerView.Adapter if (entity.getApk() == null || entity.getApk().isEmpty()) { viewHolder.gameDes.setText(entity.getBrief()); } else { - viewHolder.gameDes.setText(entity.getApk().get(0).getSize() + " | " + entity.getBrief()); + viewHolder.gameDes.setText(entity.getApk().get(0).getSize() + " " + entity.getBrief()); } GameViewUtils.setLabelList(context, viewHolder.labelList, entity.getTag()); 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 c34a068cd0..a6802de5a9 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java @@ -19,10 +19,12 @@ 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.CardLinearLayout; import com.gh.download.DownloadEntry; import com.gh.gamecenter.GameDetailsActivity; import com.gh.gamecenter.R; @@ -212,11 +214,11 @@ public class SubjectAdapter extends RecyclerView.Adapter 0 && position <= doneList.size()) { entry = doneList.get(position - 1); + + // 第一个 + if (position == 1) { + ((CardLinearLayout) holder.itemView).setmTop(DisplayUtils.dip2px(context, 8)); + } else { + ((CardLinearLayout) holder.itemView).setmTop(0); + } + + // 最后一个 + if (position == doneList.size()) { + ((CardLinearLayout) holder.itemView).setBottom(true); + } else { + ((CardLinearLayout) holder.itemView).setBottom(false); + } } else if (doneList.isEmpty()) { entry = downloadingList.get(position - 1); + // 第一个 + if (position == 1) { + ((CardLinearLayout) holder.itemView).setmTop(DisplayUtils.dip2px(context, 8)); + } else { + ((CardLinearLayout) holder.itemView).setmTop(0); + } + + // 最后一个 + if (position == downloadingList.size()) { + ((CardLinearLayout) holder.itemView).setBottom(true); + } else { + ((CardLinearLayout) holder.itemView).setBottom(false); + } } else { entry = downloadingList.get(position - doneList.size() - 2); + + // 第一个 + if (position == 1) { + ((CardLinearLayout) holder.itemView).setmTop(DisplayUtils.dip2px(context, 8)); + } else { + ((CardLinearLayout) holder.itemView).setmTop(0); + } + + // 最后一个 + if (position - doneList.size() - 1 == downloadingList.size()) { + ((CardLinearLayout) holder.itemView).setBottom(true); + } else { + ((CardLinearLayout) holder.itemView).setBottom(false); + } } String icon = entry.getMeta().get("icon"); @@ -142,7 +185,7 @@ public class DownloadAdapter extends RecyclerView.Adapter final GameUpdateEntity updateEntity = updateList.get(position - 1); + // 第一个 + if (position == 1) { + ((CardLinearLayout) holder.itemView).setmTop(DisplayUtils.dip2px(context, 8)); + } else { + ((CardLinearLayout) holder.itemView).setmTop(0); + } + + // 最后一个 + if (position == updateList.size()) { + ((CardLinearLayout) holder.itemView).setBottom(true); + } else { + ((CardLinearLayout) holder.itemView).setBottom(false); + } + if (updateEntity.getName().contains("光环助手")) { viewHolder.gu_item_iv_icon.setImageResource(R.drawable.logo); } else { diff --git a/app/src/main/java/com/gh/gamecenter/eventbus/EBTypeChange.java b/app/src/main/java/com/gh/gamecenter/eventbus/EBTypeChange.java new file mode 100644 index 0000000000..2d6914037e --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/eventbus/EBTypeChange.java @@ -0,0 +1,23 @@ +package com.gh.gamecenter.eventbus; + +/** + * Created by LGT on 2016/9/2. + */ +public class EBTypeChange { + + private String type; + + private int position; + + public EBTypeChange(String type, int position) { + this.type = type; + } + + public String getType() { + return type; + } + + public int getPosition() { + return position; + } +} 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 22a3ff06fe..9f0937104b 100644 --- a/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java @@ -32,7 +32,9 @@ import com.gh.common.util.GameViewUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.PlatformUtils; import com.gh.common.util.TimestampUtils; +import com.gh.common.util.Utils; import com.gh.common.view.AutoScrollViewPager; +import com.gh.common.view.CardLinearLayout; import com.gh.download.DownloadEntry; import com.gh.gamecenter.GameDetailsActivity; import com.gh.gamecenter.NewsActivity; @@ -527,11 +529,11 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter kv = new HashMap(); + Map kv = new HashMap<>(); kv.put("名字", gameEntity.getName()); kv.put("位置", i + 1); DataUtils.onEvent(context, "点击", "游戏-插件-" + name, kv); @@ -705,7 +707,11 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter 1 && position <= 1 + pluginList.size()) { gameEntity = pluginList.get(position - 2); - initGameNormal(holder, gameEntity, position - 2, false, "插件化"); + SubjectEntity subjectEntity = new SubjectEntity(); + subjectEntity.setOrder(false); + subjectEntity.setName("插件化"); + subjectEntity.setData(pluginList); + initGameNormal(holder, gameEntity, position - 2, subjectEntity); return; } @@ -725,7 +731,7 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter kv = new HashMap(); + Map kv = new HashMap<>(); kv.put("名字", entity.getName()); kv.put("位置", i + 1); - DataUtils.onEvent(context, "点击", "游戏-插件-" + name, kv); + DataUtils.onEvent(context, "点击", "游戏-插件-" + subjectEntity.getName(), kv); if (entity.getPluginPlatform() != null) { Intent intent = new Intent(context, GameDetailsActivity.class); intent.putExtra("gameId", entity.getId()); - intent.putExtra("entrance", "游戏-插件-" + name); + intent.putExtra("entrance", "游戏-插件-" + subjectEntity.getName()); context.startActivity(intent); } else { AppController.put("GameEntity", entity); Intent intent = new Intent(context, GameDetailsActivity.class); - intent.putExtra("entrance", "游戏-插件-" + name); + intent.putExtra("entrance", "游戏-插件-" + subjectEntity.getName()); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } @@ -781,8 +804,8 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter kv = new HashMap(); + Map kv = new HashMap<>(); kv.put("名字", entity.getName()); kv.put("位置", ii + 1); DataUtils.onEvent(context, "点击", "游戏-插件-" + name, kv); @@ -847,7 +870,7 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter= Integer.parseInt(subjectList.get(i).getMore())){ holder.link.setVisibility(View.GONE); @@ -907,23 +931,6 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter= Integer.parseInt(subjectList.get(i).getMore())){ holder.link.setVisibility(View.GONE); @@ -388,7 +391,7 @@ public class Game2FragmentAdapter extends RecyclerView.Adapter kv = new HashMap(); kv.put("名字", gameInfoEntity.getName()); kv.put("位置", i + 1); - DataUtils.onEvent(context, "点击", "游戏-推荐-" + name, kv); + DataUtils.onEvent(context, "点击", "游戏-推荐-" + subjectEntity.getName(), kv); AppController.put("GameEntity", gameInfoEntity); Intent intent = new Intent(context, GameDetailsActivity.class); - intent.putExtra("entrance", "游戏-推荐-" + name); + intent.putExtra("entrance", "游戏-推荐-" + subjectEntity.getName()); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } @@ -434,8 +452,8 @@ public class Game2FragmentAdapter extends RecyclerView.Adapter kv = new HashMap(); + Map kv = new HashMap<>(); kv.put("名字", gameEntity.getName()); kv.put("位置", i + 1); - DataUtils.onEvent(context, "点击", "游戏-推荐-" + name, kv); + DataUtils.onEvent(context, "点击", "游戏-推荐-" + subjectEntity.getName(), kv); AppController.put("GameEntity", gameEntity); Intent intent = new Intent(context, GameDetailsActivity.class); - intent.putExtra("entrance", "游戏-推荐-" + name); + intent.putExtra("entrance", "游戏-推荐-" + subjectEntity.getName()); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } @@ -514,11 +549,10 @@ public class Game2FragmentAdapter extends RecyclerView.Adapter endTime) { // 测试时间已过 @@ -530,8 +564,8 @@ public class Game2FragmentAdapter extends RecyclerView.Adapter(); - gameMap = new ArrayMap>(); - platformMap = new ArrayMap>(); - nameMap = new ArrayMap(); - statusMap = new ArrayMap(); + locationMap = new ArrayMap<>(); + gameMap = new ArrayMap<>(); + platformMap = new ArrayMap<>(); + nameMap = new ArrayMap<>(); + statusMap = new ArrayMap<>(); dismissEntity = new DismissEntity(false); diff --git a/app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java index 6045d577b5..749b88d9d8 100644 --- a/app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/Game3FragmentAdapter.java @@ -20,10 +20,12 @@ 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.CardLinearLayout; import com.gh.download.DownloadEntry; import com.gh.gamecenter.GameDetailsActivity; import com.gh.gamecenter.R; @@ -262,7 +264,7 @@ public class Game3FragmentAdapter extends return new FooterViewHolder(view); } else { View view = LayoutInflater.from(viewGroup.getContext()).inflate( - R.layout.home_consolegame_item, viewGroup, false); + R.layout.game_normal_item, viewGroup, false); return new GameNormalViewHolder(view); } } @@ -278,13 +280,27 @@ public class Game3FragmentAdapter extends private void initGameNormalViewHolder(GameNormalViewHolder holder, final GameEntity entity, int position) { + // 第一个 + if (position == 0) { + ((CardLinearLayout) holder.itemView).setmTop(DisplayUtils.dip2px(context, 8)); + } else { + ((CardLinearLayout) holder.itemView).setmTop(0); + } + + // 最后一个 + if (position == list.size() - 1) { + ((CardLinearLayout) holder.itemView).setBottom(true); + } else { + ((CardLinearLayout) holder.itemView).setBottom(false); + } + 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 { entity.getApk().get(0).setPlatform("local_plugin"); - holder.gameDes.setText(entity.getApk().get(0).getSize() + " | " + entity.getBrief()); + holder.gameDes.setText(String.format("%s %s", entity.getApk().get(0).getSize(), entity.getBrief())); } GameViewUtils.setLabelList(context, holder.labelList, entity.getTag()); 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 d4d8427b6c..a88172b660 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java @@ -30,6 +30,7 @@ import com.gh.common.util.ImageUtils; import com.gh.common.util.NewsUtils; import com.gh.common.util.TimestampUtils; import com.gh.common.util.Utils; +import com.gh.common.view.CardLinearLayout; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsImage1ViewHolder; @@ -253,6 +254,21 @@ public class News1FragmentAdapter extends RecyclerView.Adapter= adapter.getPosition_today() + && position <= adapter.getTodaySize() + + adapter.getPosition_today()) { news_tv_label.setText("今天"); - news_tv_label.setTextColor(getActivity().getResources().getColor(R.color.theme)); - } else if (adapter.getPosition_before() != -1 && position <= 3) { + news_tv_label.setTextColor(0xFF00B7FA); + } else if (adapter.getPosition_before() != -1 + && position >= adapter.getPosition_before()) { news_tv_label.setText("昨天/以前"); news_tv_label.setTextColor(0xFF3A3A3A); } @@ -150,7 +169,7 @@ public class News3Fragment extends Fragment { news_pb_loading.setVisibility(View.VISIBLE); reuse_no_connection.setVisibility(View.GONE); adapter = new News3FragmentAdapter(getActivity(), news_list, - news_pb_loading, reuse_no_connection, news_rl_label, news_tv_label, true); + news_pb_loading, reuse_no_connection, news_swipe_refresh, news_tv_label, true); news_list.setAdapter(adapter); } else if (adapter.isNetworkError()) { adapter.setNetworkError(false); @@ -175,4 +194,22 @@ public class News3Fragment extends Fragment { news_rl_label = null; rparams = null; } + + private Handler handler = new Handler(); + + Runnable runnable = new Runnable() { + @Override + public void run() { + if (!isDestroy) { + adapter = new News3FragmentAdapter(getActivity(), news_list, + news_pb_loading, reuse_no_connection, news_swipe_refresh, news_tv_label, true); + news_list.setAdapter(adapter); + } + } + }; + + @Override + public void onRefresh() { + handler.postDelayed(runnable, 1000); + } } diff --git a/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java index 17c6bef088..3be7a2ea1f 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java @@ -2,7 +2,7 @@ package com.gh.gamecenter.news; import android.content.Context; import android.net.Uri; -import android.support.v7.widget.LinearLayoutManager; +import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; @@ -10,7 +10,6 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.LinearLayout; -import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; @@ -22,14 +21,19 @@ 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.ImageUtils; +import com.gh.common.util.NewsUtils; import com.gh.common.util.TimestampUtils; -import com.gh.common.view.VerticalItemDecoration; +import com.gh.common.view.CardLinearLayout; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.CardListViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsFooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsHeadViewHolder; +import com.gh.gamecenter.adapter.viewholder.NewsImageViewHolder; +import com.gh.gamecenter.adapter.viewholder.NewsTextViewHolder; import com.gh.gamecenter.entity.NewsEntity; +import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.volley.extended.JsonArrayExtendedRequest; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -40,21 +44,25 @@ import java.lang.reflect.Type; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Locale; +import java.util.Map; /** - * + * * @author 温冠超 * @email 294299195@qq.com * @date 2015-8-5 modified 2015-8-21 资讯首页模块 */ -public class News3FragmentAdapter extends RecyclerView.Adapter { +public class News3FragmentAdapter extends + RecyclerView.Adapter { public static class ITEM_TYPE { public static final int head = 1;// head - public static final int card_list = 2;// 新闻列表类型 - public static final int refresh_footer = 3;// 刷新布局类型 + public static final int news_text = 2;// 新闻列表1类型 + public static final int news_image = 3;// 新闻列表2类型 + public static final int refresh_footer = 4;// 刷新布局类型 } private int position_today = -1;// 今天head的位置 @@ -65,30 +73,27 @@ public class News3FragmentAdapter extends RecyclerView.Adapter todayNewsList; private List beforeNewsList; - private int todayListSize; - private int beforeListSize; - private boolean isRemove; private boolean isLoading; private boolean isNetworkError; - public News3FragmentAdapter(Context con, - RecyclerView recyclerView, - ProgressBarCircularIndeterminate loading, - LinearLayout noconnection, - RelativeLayout rlabel, - TextView tlabel, - boolean isLoad) { + public News3FragmentAdapter(Context context, + RecyclerView recyclerView, + ProgressBarCircularIndeterminate loading, + LinearLayout noconnection, + SwipeRefreshLayout swipeRefreshLayout, + TextView tlabel, + boolean isLoad) { - context = con; + this.context = context; news_list = recyclerView; - news_rl_label = rlabel; + news_swipe_refresh = swipeRefreshLayout; news_tv_label = tlabel; news_pb_loading = loading; ll_noconnection = noconnection; @@ -101,10 +106,14 @@ public class News3FragmentAdapter extends RecyclerView.Adapter() { + @Override public void onResponse(JSONArray response) { @@ -140,6 +151,10 @@ public class News3FragmentAdapter extends RecyclerView.Adapter removeDuplicate(List list) { - for (int i = 0; i < list.size(); i++) { + for (int i = 0, size = list.size(); i < size; i++) { String id = list.get(i).getId(); final int index = i; @@ -238,9 +253,6 @@ public class News3FragmentAdapter extends RecyclerView.Adapter position_today + 1 + && position <= todayNewsList.size() + position_today) { + return ITEM_TYPE.news_text; } } @@ -306,8 +322,9 @@ public class News3FragmentAdapter extends RecyclerView.Adapter position_before + && position <= beforeNewsList.size() + position_before) { + return ITEM_TYPE.news_text; } } @@ -320,10 +337,14 @@ public class News3FragmentAdapter extends RecyclerView.Adapter position_today && position < position_before) { - // 今天 - if (!TextUtils.isEmpty(todayNewsList.get(0).getThumb())) { - height = DisplayUtils.dip2px(context, 82) - + DisplayUtils.dip2px(context, 38) * (todayNewsList.size() - 1); - } else { - height = DisplayUtils.dip2px(context, 37) * todayNewsList.size() - + DisplayUtils.dip2px(context, 1) * (todayNewsList.size() - 1); - } - - RecyclerView.LayoutParams rparams = (RecyclerView.LayoutParams) viewHolder.itemView.getLayoutParams(); - rparams.setMargins(DisplayUtils.dip2px(context, 6), 0, DisplayUtils.dip2px(context, 6), 0); - viewHolder.itemView.setLayoutParams(rparams); + final NewsEntity newsEntity = todayNewsList.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 { - // 昨天/以前 - height = DisplayUtils.dip2px(context, 37) * beforeNewsList.size() - + DisplayUtils.dip2px(context, 1) * (beforeNewsList.size() - 1); - - RecyclerView.LayoutParams rparams = (RecyclerView.LayoutParams) viewHolder.itemView.getLayoutParams(); - rparams.setMargins(DisplayUtils.dip2px(context, 6), 0, DisplayUtils.dip2px(context, 6), DisplayUtils.dip2px(context, 6)); - viewHolder.itemView.setLayoutParams(rparams); + viewHolder.newsMainTitle.setText(title); + viewHolder.newsSubTitle.setVisibility(View.GONE); } - params.height = height; - viewHolder.card_list_show.setLayoutParams(params); + viewHolder.itemView.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); - if (viewHolder.card_list_show.getAdapter() == null) { - viewHolder.card_list_show.setHasFixedSize(true); - viewHolder.card_list_show.setLayoutManager(new LinearLayoutManager(context)); - if (position > position_today && position < position_before) { - viewHolder.card_list_show.setAdapter(new NewsListAdapter(context, todayNewsList, "今天")); - todayListSize = todayNewsList.size(); - } else { - viewHolder.card_list_show.setAdapter(new NewsListAdapter(context, beforeNewsList, "昨天/以前")); - beforeListSize = beforeNewsList.size(); + 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, "资讯-攻略-今天"); } - viewHolder.card_list_show.addItemDecoration(new VerticalItemDecoration(context, 1)); - } else { - if (position > position_today && position < position_before) { - viewHolder.card_list_show.getAdapter().notifyItemRangeInserted( - todayListSize + 1, todayNewsList.size() - todayListSize); - todayListSize = todayNewsList.size(); + }); + } else if (holder instanceof NewsTextViewHolder) { + NewsTextViewHolder viewHolder = (NewsTextViewHolder) holder; + + NewsEntity newsEntity = null; + String from = null; + if (position > position_today + && position <= todayNewsList.size() + position_today) { + newsEntity = todayNewsList.get(position - position_today - 1); + from = "今天"; + // 第一个 + if (position - position_today - 1 == 0) { + ((CardLinearLayout) viewHolder.itemView).setmTop(DisplayUtils.dip2px(context, 8)); + viewHolder.news_line.setVisibility(View.GONE); } else { - viewHolder.card_list_show.getAdapter().notifyItemRangeInserted( - position_before + beforeListSize + 1, beforeNewsList.size() - beforeListSize); - beforeListSize = beforeNewsList.size(); + ((CardLinearLayout) viewHolder.itemView).setmTop(0); + viewHolder.news_line.setVisibility(View.VISIBLE); + } + + // 最后一个 + if (position - position_today == todayNewsList.size()) { + ((CardLinearLayout) viewHolder.itemView).setBottom(true); + ((CardLinearLayout) viewHolder.itemView).setmBottom(DisplayUtils.dip2px(context, 8)); + } else { + ((CardLinearLayout) viewHolder.itemView).setBottom(false); + ((CardLinearLayout) viewHolder.itemView).setmBottom(0); + } + } else if (position > position_before + && position <= beforeNewsList.size() + position_before) { + newsEntity = beforeNewsList.get(position - position_before - 1); + from = "昨天/以前"; + // 第一个 + if (position - position_before - 1 == 0) { + ((CardLinearLayout) viewHolder.itemView).setmTop(DisplayUtils.dip2px(context, 8)); + viewHolder.news_line.setVisibility(View.GONE); + } else { + ((CardLinearLayout) viewHolder.itemView).setmTop(0); + viewHolder.news_line.setVisibility(View.VISIBLE); + } + + // 最后一个 + if (position - position_before == beforeNewsList.size()) { + ((CardLinearLayout) viewHolder.itemView).setBottom(true); + ((CardLinearLayout) viewHolder.itemView).setmBottom(DisplayUtils.dip2px(context, 8)); + } else { + ((CardLinearLayout) viewHolder.itemView).setBottom(false); + ((CardLinearLayout) viewHolder.itemView).setmBottom(0); } } + if (newsEntity != null) { + final NewsEntity entity = newsEntity; + final String entrance = from; + viewHolder.newsType.setBackgroundResource(NewsUtils + .getDrawableIdByType(entity.getType())); + viewHolder.newsType.setText(entity.getType()); + viewHolder.newsTitle.setText(entity.getTitle()); + viewHolder.itemView.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + Map kv = new HashMap<>(); + kv.put("文章类型", entity.getType()); + kv.put("入口", "攻略-" + entrance); + DataUtils.onEvent(context, "资讯-攻略", entity.getTitle(), kv); + Map map = new HashMap<>(); + map.put("location", entrance); + map.put("createOn", System.currentTimeMillis() / 1000); + map.put("news", entity.getTitle()); + map.put("page", "攻略"); + DataCollectionManager.onEvent(context, "click-item", map); + + //统计阅读量 + NewsUtils.statNewsViews(entity.getId()); + NewsUtils.startNewsActivity(context, entity, "资讯-攻略-" + entrance); + } + }); + } } else if (holder instanceof NewsFooterViewHolder) { NewsFooterViewHolder viewHolder = (NewsFooterViewHolder) holder; @@ -413,6 +495,10 @@ public class News3FragmentAdapter extends RecyclerView.Adapter(); + gameList = new ArrayList<>(); ConcernManager concernManager = new ConcernManager(context); concernList = concernManager.getConcernGame(); @@ -77,7 +78,7 @@ public class ConcernFragmentAdapter extends RecyclerView.Adapter result = new ArrayList(); + final List result = new ArrayList<>(); final int size = concernList.size(); count = 0; for (int i = 0; i < concernList.size(); i++) { @@ -93,27 +94,27 @@ public class ConcernFragmentAdapter extends RecyclerView.Adapter data) { - List list = new ArrayList(); + List list = new ArrayList<>(); Gson gson = new Gson(); for (int i = 0; i < data.size(); i++) { list.add(gson.fromJson(data.get(i).toString(), GameEntity.class)); @@ -151,7 +152,7 @@ public class ConcernFragmentAdapter extends RecyclerView.Adapter 0 && viewType > 1 && viewType <= 1 + gameList.size()) { View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.home_consolegame_item, parent, false); + R.layout.game_normal_item, parent, false); return new GameNormalViewHolder(view); } else if (isRemove) { RelativeLayout relativeLayout = new RelativeLayout(context); @@ -177,7 +178,7 @@ public class ConcernFragmentAdapter extends RecyclerView.Adapter 0 && viewType > 1 && viewType <= 1 + gameList.size()) { View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.home_consolegame_item, parent, false); + R.layout.game_normal_item, parent, false); return new GameNormalViewHolder(view); } else if (isRemove) { RelativeLayout relativeLayout = new RelativeLayout(context); @@ -316,7 +317,7 @@ public class InstallFragmentAdapter extends RecyclerView.Adapter { +public class SearchGameListFragmentAdapter extends RecyclerView.Adapter { private Context context; @@ -111,38 +122,148 @@ public class SearchGameListFragmentAdapter extends RecyclerView.Adapter 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 (!dismissEntity.isShow()) { + dismissEntity.setShow(true); + if (NetworkUtils.isWifiConnected(context)) { + DownloadDialog.getInstance(context) + .showPopupWindow(v, gameEntity, "搜索", "搜索:" + gameEntity.getName()); + } else { + DialogUtils.showWarningDialog(context, new DialogUtils.ConfiremListener() { + @Override + public void onConfirem() { + DownloadDialog.getInstance(context) + .showPopupWindow(v, gameEntity, "搜索", "搜索:" + gameEntity.getName()); + } + }); + } + } + } + }); + } + + if (Config.isShow) { + viewHolder.downloadBtn.setVisibility(View.VISIBLE); + } else { + viewHolder.downloadBtn.setVisibility(View.GONE); + } + } else if (holder instanceof SearchHistoryViewHolder) { + SearchHistoryViewHolder viewHolder = (SearchHistoryViewHolder) holder; + + if (position + 1 == gameList.size()) { + ((CardLinearLayout) viewHolder.itemView).setmBottom(DisplayUtils.dip2px(context, 8)); + ((CardLinearLayout) viewHolder.itemView).setBottom(true); + } else { + ((CardLinearLayout) viewHolder.itemView).setmBottom(0); + ((CardLinearLayout) viewHolder.itemView).setBottom(false); + } + + 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 CardListViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { - View itemView = LayoutInflater.from(context).inflate( - R.layout.reuse_card_list, viewGroup, false); - int height; - if (gameList.size() == 1) { - height = DisplayUtils.dip2px(context, 95); + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { + if (viewType == 0) { + View itemView = LayoutInflater.from(viewGroup.getContext()) + .inflate(R.layout.game_normal_item, viewGroup, false); + return new GameNormalViewHolder(itemView); } else { - height = DisplayUtils.dip2px(context, 95) - + DisplayUtils.dip2px(context, 46) * (gameList.size() - 1); + View itemView = LayoutInflater.from(viewGroup.getContext()) + .inflate(R.layout.fm_search_history_item, viewGroup, false); + return new SearchHistoryViewHolder(itemView); } - ViewGroup.LayoutParams params = itemView.findViewById( - R.id.card_list_show).getLayoutParams(); - params.height = height; - itemView.findViewById(R.id.card_list_show).setLayoutParams(params); - return new CardListViewHolder(itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java index e208145012..f7260bacb8 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java @@ -2,7 +2,6 @@ package com.gh.gamecenter.search; import android.app.Dialog; import android.content.Context; -import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.view.LayoutInflater; @@ -11,15 +10,21 @@ import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.Window; +import com.gh.common.util.DataUtils; import com.gh.common.util.DisplayUtils; -import com.gh.common.view.VerticalItemDecoration; +import com.gh.common.view.CardLinearLayout; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.CardListViewHolder; import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; import com.gh.gamecenter.db.SearchHistoryDao; +import com.gh.gamecenter.eventbus.EBSearch; +import com.gh.gamecenter.manager.DataCollectionManager; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; + +import de.greenrobot.event.EventBus; public class SearchHistoryFragmentAdapter extends RecyclerView.Adapter { @@ -52,7 +57,7 @@ public class SearchHistoryFragmentAdapter extends RecyclerView.Adapter 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()); + } + }); } else if (holder instanceof ReuseViewHolder) { holder.itemView.setOnClickListener(new OnClickListener() { @Override diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryViewHolder.java b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryViewHolder.java index fea0511d44..1b21bc7ed3 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryViewHolder.java @@ -11,11 +11,13 @@ import com.gh.gamecenter.R; */ public class SearchHistoryViewHolder extends RecyclerView.ViewHolder { + public View search_history_line; public TextView search_history_name; public SearchHistoryViewHolder(View itemView) { super(itemView); + search_history_line = itemView.findViewById(R.id.search_history_line); search_history_name = (TextView) itemView.findViewById(R.id.search_history_name); } diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchResultListAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchResultListAdapter.java index 9b0e851cb9..8017e8b2c5 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchResultListAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchResultListAdapter.java @@ -75,7 +75,7 @@ public class SearchResultListAdapter extends RecyclerView.Adapter + android:color="@color/cutting_line"/> - - + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_essaydetails.xml b/app/src/main/res/layout/activity_essaydetails.xml index 8a1ae9bcab..b32fdf277e 100644 --- a/app/src/main/res/layout/activity_essaydetails.xml +++ b/app/src/main/res/layout/activity_essaydetails.xml @@ -20,7 +20,7 @@ android:id="@+id/essaydetails_rv_show" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/background" + android:paddingBottom="44dp" android:visibility="invisible"> @@ -51,15 +51,18 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" - android:background="@drawable/shadow_bg" - android:gravity="center_vertical" - android:orientation="horizontal" + android:orientation="vertical" android:visibility="gone" > + + + + + \ 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 fc65b95bde..ace250cf88 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,93 +1,109 @@ - + android:layout_height="match_parent" > + android:layout_height="match_parent" + android:paddingBottom="55dp"> + android:layout_alignParentBottom="true" + android:orientation="vertical"> + + + android:layout_width="match_parent" + android:layout_height="55dp" + android:background="@android:color/white" + android:orientation="horizontal" + android:gravity="center_vertical" + android:paddingBottom="5dp" + android:baselineAligned="false" > - - - + android:layout_weight="1" + android:gravity="center" + android:orientation="vertical" > + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_new_gamedetails.xml b/app/src/main/res/layout/activity_new_gamedetails.xml index 2dbb4be59f..e234e7f6d9 100644 --- a/app/src/main/res/layout/activity_new_gamedetails.xml +++ b/app/src/main/res/layout/activity_new_gamedetails.xml @@ -14,22 +14,25 @@ android:id="@+id/gamedetails_rv" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/background" - android:layout_above="@id/gamedetails_ll_bottom"/> + android:paddingBottom="44dp"> + + android:orientation="vertical"> + + + android:layout_height="match_parent" > + android:layout_marginBottom="5dp" + app:cardBackgroundColor="#FFFFFF"> + + android:layout_height="match_parent" > @@ -32,7 +32,7 @@ android:id="@+id/essaydetails_time" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textColor="#b3b3b3" + android:textColor="@color/hint" android:textSize="12sp" /> @@ -118,5 +118,4 @@ - \ No newline at end of file diff --git a/app/src/main/res/layout/fm_downloadmanager_item.xml b/app/src/main/res/layout/fm_downloadmanager_item.xml index 30daf32dd3..18a41fa50c 100644 --- a/app/src/main/res/layout/fm_downloadmanager_item.xml +++ b/app/src/main/res/layout/fm_downloadmanager_item.xml @@ -1,106 +1,94 @@ - + android:gravity="center_vertical" + android:padding="12dp" + android:orientation="horizontal" + android:background="@drawable/reuse_listview_item_style" + app:left="8dp" + app:bottom="8dp" + app:right="8dp"> + + - - - - - - - - - - - - - - - - - - + android:layout_weight="1" + android:orientation="vertical" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp"> + android:id="@+id/dm_item_tv_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:ellipsize="end" + android:singleLine="true" + android:textColor="#3a3a3a" + android:textSize="16sp" + android:lineSpacingMultiplier="0.9" + android:includeFontPadding="false"/> + + + + + + + + + + - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fm_read2_special1.xml b/app/src/main/res/layout/fm_read2_special1.xml index 786844c910..83a3323a96 100644 --- a/app/src/main/res/layout/fm_read2_special1.xml +++ b/app/src/main/res/layout/fm_read2_special1.xml @@ -1,79 +1,57 @@ - + android:background="@drawable/reuse_listview_item_style" + android:orientation="vertical" + android:paddingLeft="12dp" + android:paddingRight="12dp" + android:paddingTop="15dp" + android:paddingBottom="15dp" + app:left="8dp" + app:right="8dp" + app:bottom="8dp"> + + + + + android:layout_height="wrap_content" + android:layout_marginTop="8dp"> - - - - - - - - - - + android:textColor="@color/content" + android:textSize="12sp" /> - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/fm_read2_special2.xml b/app/src/main/res/layout/fm_read2_special2.xml index dd72a701b5..cf41e919e0 100644 --- a/app/src/main/res/layout/fm_read2_special2.xml +++ b/app/src/main/res/layout/fm_read2_special2.xml @@ -1,99 +1,77 @@ - + + + + + + + + + + + + + + android:layout_height="wrap_content" + android:layout_marginTop="8dp"> - - - - - - - - - - - - - - - - - - + android:textColor="@color/content" + android:textSize="12sp" /> - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/fm_read_item.xml b/app/src/main/res/layout/fm_read_item.xml index b72d63e815..7385597926 100644 --- a/app/src/main/res/layout/fm_read_item.xml +++ b/app/src/main/res/layout/fm_read_item.xml @@ -1,67 +1,45 @@ - + android:orientation="horizontal" + android:background="@drawable/reuse_listview_item_style" + android:paddingLeft="12dp" + android:paddingRight="12dp" + android:paddingTop="15dp" + android:paddingBottom="15dp" + app:left="8dp" + app:right="8dp" + app:bottom="8dp"> + + - - + android:layout_height="62dp" + android:layout_marginLeft="10dp"> - - - - - - - + android:textColor="@color/content" + android:textSize="12sp" /> - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/fm_search_history_delete_item.xml b/app/src/main/res/layout/fm_search_history_delete_item.xml index 849b72991d..675b7d6bf4 100644 --- a/app/src/main/res/layout/fm_search_history_delete_item.xml +++ b/app/src/main/res/layout/fm_search_history_delete_item.xml @@ -1,40 +1,28 @@ - + android:orientation="horizontal" + android:paddingTop="10dp" + android:paddingBottom="10dp" + android:gravity="center" + android:background="@drawable/reuse_listview_item_style" + app:left="8dp" + app:right="8dp" + app:bottom="8dp"> - + + - - - - - - - - + android:text="@string/action_search_delete" + android:textSize="14sp" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/fm_search_history_item.xml b/app/src/main/res/layout/fm_search_history_item.xml index f1a3afd9f5..5996bc6081 100644 --- a/app/src/main/res/layout/fm_search_history_item.xml +++ b/app/src/main/res/layout/fm_search_history_item.xml @@ -1,15 +1,26 @@ - - + app:left="8dp" + app:right="8dp"> + + + - + diff --git a/app/src/main/res/layout/fm_update_item.xml b/app/src/main/res/layout/fm_update_item.xml index 468e503fb8..2f2c52e0fd 100644 --- a/app/src/main/res/layout/fm_update_item.xml +++ b/app/src/main/res/layout/fm_update_item.xml @@ -1,73 +1,63 @@ - + app:left="8dp" + app:bottom="8dp" + app:right="8dp"> + + - - - - - - - - - - - + android:layout_weight="1" + android:orientation="vertical" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp"> + android:id="@+id/gu_item_tv_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textColor="#3a3a3a" + android:textSize="16sp" + android:layout_marginBottom="5dp" + android:lineSpacingMultiplier="0.9" + android:includeFontPadding="false"/> + + + + - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_news3.xml b/app/src/main/res/layout/fragment_news3.xml index 002daf9152..80ba665446 100644 --- a/app/src/main/res/layout/fragment_news3.xml +++ b/app/src/main/res/layout/fragment_news3.xml @@ -1,9 +1,10 @@ - + + android:layout_height="match_parent" > - @@ -13,36 +14,35 @@ android:layout_height="match_parent" android:background="@color/background"> + - + - - - - - - - + android:gravity="center" + android:text="我的游戏" + android:textColor="@android:color/white" + android:paddingLeft="16dp" + android:textSize="12sp" /> - \ No newline at end of file + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_original.xml b/app/src/main/res/layout/fragment_original.xml index ede35af083..6cfa13c5cf 100644 --- a/app/src/main/res/layout/fragment_original.xml +++ b/app/src/main/res/layout/fragment_original.xml @@ -1,35 +1,28 @@ - + android:layout_height="match_parent" > - - + android:layout_height="wrap_content" + android:background="@color/background"> + + - - - + - + - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/game_news_search_item.xml b/app/src/main/res/layout/game_news_search_item.xml index 07b4162f50..520b9d16fa 100644 --- a/app/src/main/res/layout/game_news_search_item.xml +++ b/app/src/main/res/layout/game_news_search_item.xml @@ -2,7 +2,6 @@ + android:textColor="@android:color/white"/> \ No newline at end of file diff --git a/app/src/main/res/layout/game_normal_item.xml b/app/src/main/res/layout/game_normal_item.xml index 85ea402a62..f38e107cf5 100644 --- a/app/src/main/res/layout/game_normal_item.xml +++ b/app/src/main/res/layout/game_normal_item.xml @@ -1,10 +1,15 @@ - + android:layout_height="wrap_content" + android:padding="10dp" + android:gravity="center_vertical" + android:orientation="horizontal" + android:background="@drawable/reuse_listview_item_style" + app:left="8dp" + app:right="8dp" + app:bottom="8dp"> @@ -22,17 +25,13 @@ + android:layout_height="62dp"/> @@ -132,8 +131,6 @@ android:gravity="center" android:text="下载" android:textColor="@android:color/white" - android:layout_alignParentRight="true" - android:layout_centerVertical="true" android:textSize="14sp" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/game_test_item.xml b/app/src/main/res/layout/game_test_item.xml index 96f8dc6c92..23b796cb5b 100644 --- a/app/src/main/res/layout/game_test_item.xml +++ b/app/src/main/res/layout/game_test_item.xml @@ -1,10 +1,15 @@ - + android:layout_height="wrap_content" + android:padding="10dp" + android:gravity="center_vertical" + android:orientation="horizontal" + android:background="@drawable/reuse_listview_item_style" + app:left="8dp" + app:right="8dp" + app:bottom="8dp"> @@ -22,19 +25,15 @@ + android:layout_height="62dp"/> + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp"> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/home_game_head_item.xml b/app/src/main/res/layout/home_game_head_item.xml index 690f18ba67..c4617022dc 100644 --- a/app/src/main/res/layout/home_game_head_item.xml +++ b/app/src/main/res/layout/home_game_head_item.xml @@ -1,50 +1,63 @@ - - - - - + android:orientation="vertical" + android:paddingLeft="10dp" + android:paddingRight="10dp" + app:left="8dp" + app:right="8dp"> - - + android:gravity="center_vertical"> + android:id="@+id/head_thumb" + android:layout_width="20dp" + android:layout_height="20dp" + android:layout_marginRight="5dp" /> + + + + + + + + + + - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/home_game_image_item.xml b/app/src/main/res/layout/home_game_image_item.xml index 82e1960cea..4f9f36fcd4 100644 --- a/app/src/main/res/layout/home_game_image_item.xml +++ b/app/src/main/res/layout/home_game_image_item.xml @@ -1,8 +1,11 @@ - + android:layout_height="match_parent" + app:left="8dp" + app:right="8dp"> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/home_list_item_newsimage_type.xml b/app/src/main/res/layout/home_list_item_newsimage_type.xml index 49d04b1d1b..f0ce1b442d 100644 --- a/app/src/main/res/layout/home_list_item_newsimage_type.xml +++ b/app/src/main/res/layout/home_list_item_newsimage_type.xml @@ -1,10 +1,14 @@ - + android:padding="8dp" + app:left="8dp" + app:right="8dp" + app:top="8dp"> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/home_list_item_newsnormal_type.xml b/app/src/main/res/layout/home_list_item_newsnormal_type.xml index 119a8c3e70..8bc1fd20d3 100644 --- a/app/src/main/res/layout/home_list_item_newsnormal_type.xml +++ b/app/src/main/res/layout/home_list_item_newsnormal_type.xml @@ -1,31 +1,51 @@ - + android:paddingLeft="8dp" + android:paddingRight="8dp" + app:left="8dp" + app:right="8dp"> - + + + android:gravity="center_vertical" + android:paddingTop="8dp" + android:paddingBottom="8dp" + android:orientation="horizontal"> - + - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/image_card_game_head_item.xml b/app/src/main/res/layout/image_card_game_head_item.xml index afbf410b3a..28b3eacb70 100644 --- a/app/src/main/res/layout/image_card_game_head_item.xml +++ b/app/src/main/res/layout/image_card_game_head_item.xml @@ -14,7 +14,7 @@ android:layout_width="7.5dp" android:layout_height="8dp" android:layout_alignParentLeft="true" - android:src="@drawable/frame_left_square" + android:src="@drawable/frame_left_bottom_square" android:scaleType="centerCrop" /> @@ -31,7 +31,7 @@ android:layout_width="7.5dp" android:layout_height="8dp" android:layout_alignParentRight="true" - android:src="@drawable/frame_right_square" + android:src="@drawable/frame_right_bottom_square" android:scaleType="centerCrop" /> diff --git a/app/src/main/res/layout/image_card_home_game_image_item.xml b/app/src/main/res/layout/image_card_home_game_image_item.xml index 68b26f28cf..583ce96cbc 100644 --- a/app/src/main/res/layout/image_card_home_game_image_item.xml +++ b/app/src/main/res/layout/image_card_home_game_image_item.xml @@ -12,7 +12,7 @@ android:layout_width="7.5dp" android:layout_height="8dp" android:layout_alignParentLeft="true" - android:src="@drawable/frame_left_square" + android:src="@drawable/frame_left_bottom_square" android:scaleType="centerCrop" /> @@ -29,7 +29,7 @@ android:layout_width="7.5dp" android:layout_height="8dp" android:layout_alignParentRight="true" - android:src="@drawable/frame_right_square" + android:src="@drawable/frame_right_bottom_square" android:scaleType="centerCrop" /> diff --git a/app/src/main/res/layout/plugin1_fragment.xml b/app/src/main/res/layout/plugin1_fragment.xml index 63892c93bb..18c43643c6 100644 --- a/app/src/main/res/layout/plugin1_fragment.xml +++ b/app/src/main/res/layout/plugin1_fragment.xml @@ -11,8 +11,7 @@ + android:layout_height="wrap_content"> diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index a3293c3850..700dea81bf 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -58,4 +58,12 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index ab21eb9fe4..48aeae7ca5 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -11,10 +11,12 @@ #B3B3B3 #EDF2F4 + #EDEDED - #E7E7E7 + + #EBEBEB #00B7FA diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dff563936c..d9f860c5ac 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,4 +23,6 @@ Set accept time %1$s - %2$s success. Set accept time fail for %1$s. + 100% + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 7dbbb9973f..ecb2eb6c42 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -33,6 +33,8 @@ true @null true + + @color/background