diff --git a/app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java b/app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java index bda771d37d..8a34ee1164 100644 --- a/app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java +++ b/app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java @@ -37,7 +37,11 @@ public abstract class BaseRecyclerViewHolder extends RecyclerView.ViewHolder @Override public void onClick(View view) { - mListClickListener.onListClick(view, getAdapterPosition(), mData); + try { + mListClickListener.onListClick(view, getAdapterPosition(), mData); + } catch (Exception e) { + e.printStackTrace(); + } } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/AskSelectGameAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/AskSelectGameAdapter.java index bea4e2e5be..4e62122b43 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/AskSelectGameAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/AskSelectGameAdapter.java @@ -22,6 +22,7 @@ import com.gh.gamecenter.baselist.ListAdapter; import com.gh.gamecenter.manager.UserManager; import java.util.ArrayList; +import java.util.Collection; import java.util.List; /** @@ -32,7 +33,7 @@ public class AskSelectGameAdapter extends ListAdapter { private OnListClickListener mListClickListener; - private List mEntityList; + private final List mEntityList = new ArrayList<>(); private int mTitlePosition; @@ -47,7 +48,8 @@ public class AskSelectGameAdapter extends ListAdapter { @Override protected void provideListData(List listData) { - mEntityList = new ArrayList(listData); + mEntityList.clear(); + mEntityList.addAll((Collection) listData); for (int i = 0; i < mEntityList.size(); i++) { AskGameSelectEntity entity = mEntityList.get(i); if (i == 0) { diff --git a/app/src/main/java/com/gh/gamecenter/ask/AnswerDetailFragment.java b/app/src/main/java/com/gh/gamecenter/ask/AnswerDetailFragment.java index b2b51942dc..0eeac9d2a3 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/AnswerDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/AnswerDetailFragment.java @@ -227,15 +227,17 @@ public class AnswerDetailFragment extends NormalFragment { public void onClick(View view) { switch (view.getId()) { case R.id.answer_detail_edit: - Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_ANSWER_ID, mAnswerId); - bundle.putString(EntranceUtils.KEY_QUESTIONS_TITLE, mDetailEntity.getQuestion().getTitle()); - bundle.putString(EntranceUtils.KEY_ANSWER_CONTENT, mDetailEntity.getContent()); - NormalActivity.startFragmentForResult(getContext(), AnswerEditFragment.class, bundle, ANSWER_PATCH_REQUEST); + if (mDetailEntity != null) { + Bundle bundle = new Bundle(); + bundle.putString(EntranceUtils.KEY_ANSWER_ID, mAnswerId); + bundle.putString(EntranceUtils.KEY_QUESTIONS_TITLE, mDetailEntity.getQuestion().getTitle()); + bundle.putString(EntranceUtils.KEY_ANSWER_CONTENT, mDetailEntity.getContent()); + NormalActivity.startFragmentForResult(getContext(), AnswerEditFragment.class, bundle, ANSWER_PATCH_REQUEST); + } break; case R.id.answer_detail_vote: CheckLoginUtils.checkLogin(getContext(), () -> { - if (!mDetailEntity.getMe().isAnswerVoted()) { + if (mDetailEntity != null && !mDetailEntity.getMe().isAnswerVoted()) { postVote(); } else { toast(R.string.ask_vote_hint); @@ -248,8 +250,10 @@ public class AnswerDetailFragment extends NormalFragment { initData(); break; case R.id.answer_detail_title: - Intent intent = QuestionsDetailActivity.getIntent(getContext(), mDetailEntity.getQuestion().getId(), mEntrance); - startActivity(intent); + if (mDetailEntity != null) { + Intent intent = QuestionsDetailActivity.getIntent(getContext(), mDetailEntity.getQuestion().getId(), mEntrance); + startActivity(intent); + } break; } } diff --git a/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsNewBodyAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsNewBodyAdapter.java index 7c7dcb3e06..053e0e1481 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsNewBodyAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsNewBodyAdapter.java @@ -14,8 +14,6 @@ import com.gh.gamecenter.baselist.ListAdapter; import java.util.List; -import butterknife.BindView; - /** * Created by khy on 5/12/17. */ diff --git a/app/src/main/java/com/gh/gamecenter/baselist/ListFragment.java b/app/src/main/java/com/gh/gamecenter/baselist/ListFragment.java index 27da084953..31cc6a6ce2 100644 --- a/app/src/main/java/com/gh/gamecenter/baselist/ListFragment.java +++ b/app/src/main/java/com/gh/gamecenter/baselist/ListFragment.java @@ -119,6 +119,7 @@ public abstract class ListFragment extends NormalFragment implements @Override public void onChanged(@Nullable List ts) { + assert ts != null; provideListAdapter().provideListData(ts); } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java index 312f835de7..ba11cdaa1d 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java @@ -62,7 +62,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter { private String suggestTime; private String gameName; - private List curDayData; + private List mCurDayData; private List mServerList; private GameDetailKaiFuViewHolder viewHolder; @@ -84,7 +84,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter { isNextMonth = false; isExistCurServer = false; - curDayData = new ArrayList<>(); + mCurDayData = new ArrayList<>(); checkExistCurSerer(); @@ -211,6 +211,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter { @Override public void call(Subscriber subscriber) { + List curDayData = new ArrayList<>(); // 获取当前 年-月 long curDate = System.currentTimeMillis(); SimpleDateFormat formatYear = new SimpleDateFormat("yyyy", Locale.CHINA); @@ -224,7 +225,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter { isNextMonth = true; if (curMonth == 12) { curMonth = 1; - curYear ++; + curYear++; } else { curMonth = curMonth + 1; } @@ -242,7 +243,6 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter { if (curWeek == 1) { curWeek = 8; } - curDayData.clear(); int day = 0; for (int i = 1; i <= 49; i++) { CalendarEntity entity = new CalendarEntity(); @@ -281,6 +281,8 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter { } } + mCurDayData.clear(); + mCurDayData.addAll(curDayData); subscriber.onNext(0); subscriber.onCompleted(); } @@ -295,7 +297,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter { notifyDataSetChanged(); } else if (response == 1) { ViewGroup.LayoutParams params = viewHolder.kaifuRl.getLayoutParams(); - params.height = ((curDayData.size() / 7) - 1) * DisplayUtils.dip2px(mContext, 46) + params.height = ((mCurDayData.size() / 7) - 1) * DisplayUtils.dip2px(mContext, 46) + DisplayUtils.dip2px(mContext, 26); viewHolder.kaifuRl.setLayoutParams(params); } @@ -350,7 +352,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter { ((WeekViewHolder) holder).week.setText(week[position]); } else if (holder instanceof GameDetailCalenderViewHolder) { GameDetailCalenderViewHolder viewHolder = (GameDetailCalenderViewHolder) holder; - final CalendarEntity entity = curDayData.get(position - 6); + final CalendarEntity entity = mCurDayData.get(position - 6); if (entity.getDay() != -1) { int day = entity.getDay(); if (day == curDay && !isNextMonth) { @@ -377,6 +379,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter { for (int i = 0; i < server.size(); i++) { KaiFuServerEntity serverEntity = server.get(i); String type = serverEntity.getType(); + if (type == null) break; switch (type) { case "删档内测": serverEntity.setOrder(2); @@ -470,7 +473,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter { @Override public int getItemCount() { - return curDayData.size(); + return mCurDayData.size(); } private void initKaifuDetail(CalendarEntity entity) { diff --git a/libraries/LGLibrary b/libraries/LGLibrary index fb24a7a08e..db3b51d805 160000 --- a/libraries/LGLibrary +++ b/libraries/LGLibrary @@ -1 +1 @@ -Subproject commit fb24a7a08ec9281bebdeb6dd0692a21ca36d0cd1 +Subproject commit db3b51d805a8cb2a77eef5e687053107ee9d6619