diff --git a/app/src/main/java/com/gh/common/util/ShareUtils.java b/app/src/main/java/com/gh/common/util/ShareUtils.java index ce5a74b463..7aab6d8c32 100644 --- a/app/src/main/java/com/gh/common/util/ShareUtils.java +++ b/app/src/main/java/com/gh/common/util/ShareUtils.java @@ -311,7 +311,6 @@ public class ShareUtils { result = Bitmap.createBitmap(result, 0, 0, result.getWidth(), result.getHeight(), matrix, true); bos.reset(); result.compress(Bitmap.CompressFormat.JPEG, 85, bos); - } return result; diff --git a/app/src/main/java/com/gh/gamecenter/AskQuestionsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/AskQuestionsDetailActivity.java index 7f3edf4ccd..2d05ece162 100644 --- a/app/src/main/java/com/gh/gamecenter/AskQuestionsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/AskQuestionsDetailActivity.java @@ -1,5 +1,6 @@ package com.gh.gamecenter; +import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; @@ -28,10 +29,12 @@ public class AskQuestionsDetailActivity extends BaseActivity implements Fragment public static final String QUESTIONS_DETAIL_FOLD = "fold"; public static final String QUESTIONS_DETAIL = "questions_detail"; - private QuestionsDetailFragment mQuestionsDetailFragment; + private static final int QUESTIONS_DETAIL_ANSWER_REQUEST = 110; private View mShareIv; + private QuestionsDetailFragment mQuestionsDetailFragment; + private String mQuestionsId; public static Intent getIntent(Context context, String questionsId, String entrance) { @@ -41,6 +44,18 @@ public class AskQuestionsDetailActivity extends BaseActivity implements Fragment return intent; } + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == QUESTIONS_DETAIL_ANSWER_REQUEST) { + if (resultCode == Activity.RESULT_CANCELED) { + mQuestionsDetailFragment.postDraftsSuccess(); + } else if (resultCode == Activity.RESULT_OK) { + mQuestionsDetailFragment.postAnswerSuccess(); + } + } + } + @Override protected int getLayoutId() { return R.layout.activity_ask_questionsdetail; @@ -145,7 +160,7 @@ public class AskQuestionsDetailActivity extends BaseActivity implements Fragment Bundle bundle = new Bundle(); bundle.putString(EntranceUtils.KEY_QUESTIONS_ID, mQuestionsId); bundle.putString(EntranceUtils.KEY_QUESTIONS_TITLE, mQuestionsDetailFragment.getQuestionsTitle()); - NormalActivity.startFragment(this, AnswerEditFragment.class, bundle); + NormalActivity.startFragmentForResult(this, AnswerEditFragment.class, bundle, QUESTIONS_DETAIL_ANSWER_REQUEST); } private void showMenu(String type) { 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 841f5b318a..1de25b3536 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/AskSelectGameAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/AskSelectGameAdapter.java @@ -85,7 +85,7 @@ public class AskSelectGameAdapter extends ListAdapter { } @Override - protected void loadChange(LoadStatus status) { + public void loadChange(LoadStatus status) { // todo 分页 } diff --git a/app/src/main/java/com/gh/gamecenter/ask/AskAnswerDetailFragment.java b/app/src/main/java/com/gh/gamecenter/ask/AskAnswerDetailFragment.java index 0317aa6ee6..be1d5cdecd 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/AskAnswerDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/AskAnswerDetailFragment.java @@ -214,7 +214,7 @@ public class AskAnswerDetailFragment extends NormalFragment { me.setAnswerFavorite(false); mDetailEntity.setMe(me); if (CommonDebug.IS_DEBUG) - toast("取消收藏成功"); + toast(R.string.collection_cancel); } @Override diff --git a/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsHotAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsHotAdapter.java index 93afc66e20..cd24facfaf 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsHotAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsHotAdapter.java @@ -12,7 +12,6 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.ask.entity.AnswerEntity; import com.gh.gamecenter.baselist.ListAdapter; -import com.gh.gamecenter.baselist.LoadStatus; import java.util.List; @@ -38,22 +37,6 @@ public class AskQuestionsHotAdapter extends ListAdapter { notifyDataSetChanged(); } - @Override - protected void loadChange(LoadStatus status) { - switch (status) { - case OVER: - mIsOver = true; - break; - case ERROR: - mIsNetworkError = true; - break; - case RETRY: - mIsNetworkError = false; - break; - } - notifyItemChanged(getItemCount() - 1); - } - @Override public int getItemViewType(int position) { if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER; 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 e294418c3c..053e0e1481 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsNewBodyAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsNewBodyAdapter.java @@ -11,7 +11,6 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.ask.entity.Questions; import com.gh.gamecenter.baselist.ListAdapter; -import com.gh.gamecenter.baselist.LoadStatus; import java.util.List; @@ -37,22 +36,6 @@ public class AskQuestionsNewBodyAdapter extends ListAdapter { notifyDataSetChanged(); } - @Override - protected void loadChange(LoadStatus status) { - switch (status) { - case OVER: - mIsOver = true; - break; - case ERROR: - mIsNetworkError = true; - break; - case RETRY: - mIsNetworkError = false; - break; - } - notifyItemChanged(getItemCount() - 1); - } - @Override public int getItemViewType(int position) { if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER; diff --git a/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditFragment.java b/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditFragment.java index dd6b8f4872..38e772f84d 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditFragment.java @@ -286,9 +286,13 @@ public class QuestionsEditFragment extends NormalFragment { public void onListClick(View view, int position, Object data) { super.onListClick(view, position, data); List picList = (List) data; - if (position == mAdapter.getItemCount() - 1 && picList.size() < 5) { - Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); - startActivityForResult(intent, MEDIA_STORE_REQUEST); + if (position == mAdapter.getItemCount() - 1) { + if (picList.size() < 3) { + Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + startActivityForResult(intent, MEDIA_STORE_REQUEST); + } else { + toast(getString(R.string.questions_edit_maxpic_hint)); + } } } diff --git a/app/src/main/java/com/gh/gamecenter/ask/SelectGameFragment.java b/app/src/main/java/com/gh/gamecenter/ask/SelectGameFragment.java index 8c925ab2be..8990ea9510 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/SelectGameFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/SelectGameFragment.java @@ -120,7 +120,10 @@ public class SelectGameFragment extends ListFragment { if ("opened".equals(entity.getStatus())) { UserManager.getInstance().setCommunityId(getContext(), entity.getId(), entity.getName()); mAdapter.resetCommunityId(entity.getId()); - if (getActivity() != null) getActivity().setResult(Activity.RESULT_OK); + if (getActivity() != null){ + getActivity().setResult(Activity.RESULT_OK); + getActivity().finish(); + } } break; case R.id.ask_selectgame_footer: diff --git a/app/src/main/java/com/gh/gamecenter/ask/myask/ConcernQuestionsAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/myask/ConcernQuestionsAdapter.java index 514c862fed..8c2a963911 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/myask/ConcernQuestionsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/myask/ConcernQuestionsAdapter.java @@ -12,7 +12,6 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.ask.AskQuestionsNewViewHolder; import com.gh.gamecenter.ask.entity.Questions; import com.gh.gamecenter.baselist.ListAdapter; -import com.gh.gamecenter.baselist.LoadStatus; import java.util.List; @@ -38,22 +37,6 @@ class ConcernQuestionsAdapter extends ListAdapter { notifyDataSetChanged(); } - @Override - protected void loadChange(LoadStatus status) { - switch (status) { - case OVER: - mIsOver = true; - break; - case ERROR: - mIsNetworkError = true; - break; - case RETRY: - mIsNetworkError = false; - break; - } - notifyItemChanged(getItemCount() - 1); - } - @Override public int getItemViewType(int position) { if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER; diff --git a/app/src/main/java/com/gh/gamecenter/ask/myask/MyAnswerAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/myask/MyAnswerAdapter.java index 1a4c848081..7b87992674 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/myask/MyAnswerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/myask/MyAnswerAdapter.java @@ -12,7 +12,6 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.ask.entity.AnswerEntity; import com.gh.gamecenter.ask.questionsdetail.AnswerViewHolder; import com.gh.gamecenter.baselist.ListAdapter; -import com.gh.gamecenter.baselist.LoadStatus; import java.util.List; @@ -37,22 +36,6 @@ class MyAnswerAdapter extends ListAdapter { notifyDataSetChanged(); } - @Override - protected void loadChange(LoadStatus status) { - switch (status) { - case OVER: - mIsOver = true; - break; - case ERROR: - mIsNetworkError = true; - break; - case RETRY: - mIsNetworkError = false; - break; - } - notifyItemChanged(getItemCount() - 1); - } - @Override public int getItemViewType(int position) { if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER; diff --git a/app/src/main/java/com/gh/gamecenter/ask/myask/MyDraftAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/myask/MyDraftAdapter.java index b42c70f29d..fe8296c4ae 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/myask/MyDraftAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/myask/MyDraftAdapter.java @@ -12,7 +12,6 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.ask.entity.AnswerEntity; import com.gh.gamecenter.ask.questionsdetail.AnswerViewHolder; import com.gh.gamecenter.baselist.ListAdapter; -import com.gh.gamecenter.baselist.LoadStatus; import java.util.List; @@ -37,22 +36,6 @@ class MyDraftAdapter extends ListAdapter { notifyDataSetChanged(); } - @Override - protected void loadChange(LoadStatus status) { - switch (status) { - case OVER: - mIsOver = true; - break; - case ERROR: - mIsNetworkError = true; - break; - case RETRY: - mIsNetworkError = false; - break; - } - notifyItemChanged(getItemCount() - 1); - } - @Override public int getItemViewType(int position) { if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER; diff --git a/app/src/main/java/com/gh/gamecenter/ask/myask/MyQuestionsAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/myask/MyQuestionsAdapter.java index 35b865d146..1139c7e087 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/myask/MyQuestionsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/myask/MyQuestionsAdapter.java @@ -12,7 +12,6 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.ask.AskQuestionsNewViewHolder; import com.gh.gamecenter.ask.entity.Questions; import com.gh.gamecenter.baselist.ListAdapter; -import com.gh.gamecenter.baselist.LoadStatus; import java.util.List; @@ -38,22 +37,6 @@ public class MyQuestionsAdapter extends ListAdapter { notifyDataSetChanged(); } - @Override - protected void loadChange(LoadStatus status) { - switch (status) { - case OVER: - mIsOver = true; - break; - case ERROR: - mIsNetworkError = true; - break; - case RETRY: - mIsNetworkError = false; - break; - } - notifyItemChanged(getItemCount() - 1); - } - @Override public int getItemViewType(int position) { if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER; diff --git a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/AnswerFoldAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/AnswerFoldAdapter.java index 6a171e47e3..4697f9f1b9 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/AnswerFoldAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/AnswerFoldAdapter.java @@ -11,7 +11,6 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.ask.entity.AnswerEntity; import com.gh.gamecenter.baselist.ListAdapter; -import com.gh.gamecenter.baselist.LoadStatus; import java.util.List; @@ -36,21 +35,6 @@ public class AnswerFoldAdapter extends ListAdapter { notifyDataSetChanged(); } - @Override - protected void loadChange(LoadStatus status) { - switch (status) { - case OVER: - mIsOver = true; - break; - case ERROR: - mIsNetworkError = true; - break; - case RETRY: - mIsNetworkError = false; - break; - } - notifyItemChanged(getItemCount() - 1); - } @Override public int getItemViewType(int position) { diff --git a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailAdapter.java index c6edb8f037..16cc0deef5 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailAdapter.java @@ -59,7 +59,7 @@ public class QuestionsDetailAdapter extends ListAdapter { } @Override - protected void loadChange(LoadStatus status) { + public void loadChange(LoadStatus status) { // 特殊 switch (status) { case OVER: mIsOver = true; diff --git a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailFragment.java b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailFragment.java index 7356891d2e..9f430c141b 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailFragment.java @@ -1,9 +1,11 @@ package com.gh.gamecenter.ask.questionsdetail; import android.arch.lifecycle.Lifecycle; +import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v7.widget.DefaultItemAnimator; import android.text.TextUtils; import android.view.View; import android.widget.RelativeLayout; @@ -15,6 +17,7 @@ import com.gh.common.util.EntranceUtils; import com.gh.gamecenter.AskQuestionsDetailActivity; import com.gh.gamecenter.NormalActivity; import com.gh.gamecenter.R; +import com.gh.gamecenter.ViewImageActivity; import com.gh.gamecenter.ask.AskAnswerDetailFragment; import com.gh.gamecenter.ask.entity.AnswerEntity; import com.gh.gamecenter.ask.entity.QuestionsDetailEntity; @@ -27,6 +30,7 @@ import com.gh.gamecenter.retrofit.RetrofitManager; import org.json.JSONObject; +import java.util.ArrayList; import java.util.List; import butterknife.BindView; @@ -90,6 +94,7 @@ public class QuestionsDetailFragment extends ListFragment { @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); + ((DefaultItemAnimator) mListRv.getItemAnimator()).setSupportsChangeAnimations(false); mReuseNoConn.setOnClickListener(view1 -> { // 重新设置重连点击 mReuseNoConn.setVisibility(View.GONE); mReuseNoData.setVisibility(View.GONE); @@ -139,6 +144,7 @@ public class QuestionsDetailFragment extends ListFragment { @Override public void onListClick(View view, int position, Object data) { super.onListClick(view, position, data); + int imgPosition = -1; switch (view.getId()) { case R.id.footerview_item: if (mAdapter.isNetworkError()) { @@ -151,6 +157,9 @@ public class QuestionsDetailFragment extends ListFragment { ((AskQuestionsDetailActivity) getActivity()).show(AskQuestionsDetailActivity.QUESTIONS_DETAIL_FOLD); break; case R.id.ask_answer_item_constraintlayout: + case R.id.ask_answer_item_img: + case R.id.ask_answer_item_content: + case R.id.ask_answer_item_title: List entityList = (List) data; AnswerEntity entity = entityList.get(position - ListAdapter.TOP_ITEM_COUNT); Bundle bundle = new Bundle(); @@ -189,6 +198,17 @@ public class QuestionsDetailFragment extends ListFragment { } }); break; + case R.id.questionsdetail_item_pic1: + imgPosition = 0; + case R.id.questionsdetail_item_pic2: + if (imgPosition == -1) imgPosition = 1; + case R.id.questionsdetail_item_pic3: + if (imgPosition == -1) imgPosition = 2; + Intent intent = ViewImageActivity.getViewImageIntent(getContext(), new ArrayList<>(mQuestionsDetailEntity.getImages()) + , imgPosition, mEntrance + "+(问题详情)"); + startActivity(intent); + break; + } } @@ -196,6 +216,15 @@ public class QuestionsDetailFragment extends ListFragment { return mAdapter.getQuestionsTitle(); } + public void postAnswerSuccess() { + mAnswerTv.setText(R.string.questions_detail_check_answer); + } + + public void postDraftsSuccess() { + mAnswerTv.setText(R.string.question_detail_resume_answer); + } + + public QuestionsDetailEntity getQuestionsDetailData() { return mQuestionsDetailEntity; } @@ -242,7 +271,7 @@ public class QuestionsDetailFragment extends ListFragment { JSONObject object = new JSONObject(response.string()); String drafts = object.getString("content"); if (!TextUtils.isEmpty(drafts)) { - mAnswerTv.setText(R.string.answer_detail_edit_answer); + mAnswerTv.setText(R.string.question_detail_resume_answer); } } catch (Exception e) { e.printStackTrace(); diff --git a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailItemViewHolder.java b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailItemViewHolder.java index b715ab851a..f6ac4b8a3e 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailItemViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailItemViewHolder.java @@ -41,5 +41,8 @@ public class QuestionsDetailItemViewHolder extends BaseRecyclerViewHolder { super(itemView, data, listClickListener); itemView.setOnClickListener(this); mConcern.setOnClickListener(this); + mPic1.setOnClickListener(this); + mPic2.setOnClickListener(this); + mPic3.setOnClickListener(this); } } diff --git a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsInviteAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsInviteAdapter.java index bcb9792427..a518aec8b4 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsInviteAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsInviteAdapter.java @@ -12,7 +12,6 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.ask.entity.InviteEntity; import com.gh.gamecenter.ask.entity.MeEntity; import com.gh.gamecenter.baselist.ListAdapter; -import com.gh.gamecenter.baselist.LoadStatus; import java.util.List; @@ -37,23 +36,6 @@ public class QuestionsInviteAdapter extends ListAdapter { notifyDataSetChanged(); } - // todo 这里逻辑其实都一个的 整理到 ListAdapter - @Override - protected void loadChange(LoadStatus status) { - switch (status) { - case OVER: - mIsOver = true; - break; - case ERROR: - mIsNetworkError = true; - break; - case RETRY: - mIsNetworkError = false; - break; - } - notifyItemChanged(getItemCount() - 1); - } - @Override public int getItemViewType(int position) { if (position == 0) { diff --git a/app/src/main/java/com/gh/gamecenter/ask/search/AskSearchAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/search/AskSearchAdapter.java index 39172e26bd..169d775b01 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/search/AskSearchAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/search/AskSearchAdapter.java @@ -14,7 +14,6 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.ask.entity.AskSearchEntity; import com.gh.gamecenter.ask.entity.Questions; import com.gh.gamecenter.baselist.ListAdapter; -import com.gh.gamecenter.baselist.LoadStatus; import java.util.List; @@ -37,14 +36,18 @@ public class AskSearchAdapter extends ListAdapter { @Override protected void provideListData(List listData) { - mEntityList = replayKeyword((List) listData); + if (listData == null) { + mEntityList = null; + } else { + mEntityList = replayKeyword((List) listData); + } notifyDataSetChanged(); } private List replayKeyword(List listData) { for (int i = 0; i < listData.size(); i++) { if (!TextUtils.isEmpty(mSearchKey)) { - AskSearchEntity entity = mEntityList.get(i); + AskSearchEntity entity = listData.get(i); String brief = entity.getBrief(); if (!TextUtils.isEmpty(brief)) { brief = brief.replace("", "").replace("", "") @@ -68,23 +71,6 @@ public class AskSearchAdapter extends ListAdapter { return "" + mSearchKey + ""; } - - @Override - protected void loadChange(LoadStatus status) { - switch (status) { - case OVER: - mIsOver = true; - break; - case ERROR: - mIsNetworkError = true; - break; - case RETRY: - mIsNetworkError = false; - break; - } - notifyItemChanged(getItemCount() - 1); - } - @Override public int getItemViewType(int position) { if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER; diff --git a/app/src/main/java/com/gh/gamecenter/ask/search/AskSearchFragment.java b/app/src/main/java/com/gh/gamecenter/ask/search/AskSearchFragment.java index 78e72f0be1..6ecb3c65b0 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/search/AskSearchFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/search/AskSearchFragment.java @@ -62,6 +62,15 @@ public class AskSearchFragment extends ListFragment { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mListRefresh.setEnabled(false); + + mReuseNoConn.setOnClickListener(view1 -> { + mReuseNoConn.setVisibility(View.GONE); + mReuseNoData.setVisibility(View.GONE); + mListLoading.setVisibility(View.VISIBLE); + mListRefresh.setRefreshing(false); + + mListViewModel.load(LoadType.REFRESH); + }); } @Override @@ -75,6 +84,42 @@ public class AskSearchFragment extends ListFragment { return mAdapter == null ? mAdapter = new AskSearchAdapter(getContext(), this) : mAdapter; } + @Override + public void onRefresh() { + mReuseNoConn.setVisibility(View.GONE); + mReuseNoData.setVisibility(View.GONE); + mListLoading.setVisibility(View.VISIBLE); + mListRefresh.setRefreshing(false); + + mListViewModel.load(LoadType.REFRESH); + } + + + @Override + public void onLoadDone() { + mReuseNoConn.setVisibility(View.GONE); + mReuseNoData.setVisibility(View.GONE); + mListLoading.setVisibility(View.GONE); + mListRefresh.setRefreshing(false); + } + + @Override + public void onLoadError() { + mReuseNoConn.setVisibility(View.VISIBLE); + mReuseNoData.setVisibility(View.GONE); + mListLoading.setVisibility(View.GONE); + mListRefresh.setRefreshing(false); + mAdapter.provideListData(null); // 刷新页面 + } + + @Override + public void onLoadEmpty() { + mReuseNoConn.setVisibility(View.GONE); + mReuseNoData.setVisibility(View.VISIBLE); + mListLoading.setVisibility(View.GONE); + mListRefresh.setRefreshing(false); + } + @Override public void onListClick(View view, int position, Object data) { AskSearchEntity entity; diff --git a/app/src/main/java/com/gh/gamecenter/baselist/ListAdapter.java b/app/src/main/java/com/gh/gamecenter/baselist/ListAdapter.java index 0a8d712fa1..93ad584fba 100644 --- a/app/src/main/java/com/gh/gamecenter/baselist/ListAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/baselist/ListAdapter.java @@ -25,9 +25,23 @@ public abstract class ListAdapter extends BaseRecyclerAdapter { protected abstract void provideListData(List listData); - protected abstract void loadChange(LoadStatus status); - public boolean isNetworkError() { return mIsNetworkError; } + + public void loadChange(LoadStatus status) { + switch (status) { + case OVER: + mIsOver = true; + break; + case ERROR: + mIsNetworkError = true; + break; + case RETRY: + mIsNetworkError = false; + break; + } + notifyItemChanged(getItemCount() - 1); + } + } 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 2c83f1ef19..ca7422382d 100644 --- a/app/src/main/java/com/gh/gamecenter/baselist/ListFragment.java +++ b/app/src/main/java/com/gh/gamecenter/baselist/ListFragment.java @@ -111,7 +111,7 @@ public abstract class ListFragment extends NormalFragment implements mReuseNoConn.setVisibility(View.GONE); mReuseNoData.setVisibility(View.GONE); mListLoading.setVisibility(View.VISIBLE); - mListRv.setVisibility(View.INVISIBLE); + mListRv.setVisibility(View.GONE); mListRefresh.setRefreshing(false); mListViewModel.load(LoadType.REFRESH); @@ -127,7 +127,7 @@ public abstract class ListFragment extends NormalFragment implements public void onLoadDone() { mReuseNoConn.setVisibility(View.GONE); mReuseNoData.setVisibility(View.GONE); - mListLoading.setVisibility(View.INVISIBLE); + mListLoading.setVisibility(View.GONE); mListRv.setVisibility(View.VISIBLE); mListRefresh.setRefreshing(false); } @@ -137,7 +137,7 @@ public abstract class ListFragment extends NormalFragment implements mReuseNoConn.setVisibility(View.VISIBLE); mReuseNoData.setVisibility(View.GONE); mListLoading.setVisibility(View.GONE); - mListRv.setVisibility(View.INVISIBLE); + mListRv.setVisibility(View.GONE); mListRefresh.setRefreshing(false); } @@ -146,7 +146,7 @@ public abstract class ListFragment extends NormalFragment implements mReuseNoConn.setVisibility(View.GONE); mReuseNoData.setVisibility(View.VISIBLE); mListLoading.setVisibility(View.GONE); - mListRv.setVisibility(View.INVISIBLE); + mListRv.setVisibility(View.GONE); mListRefresh.setRefreshing(false); } diff --git a/app/src/main/java/com/gh/gamecenter/collection/AnswerAdapter.java b/app/src/main/java/com/gh/gamecenter/collection/AnswerAdapter.java index 1f30c4648c..ae918459b4 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/AnswerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/collection/AnswerAdapter.java @@ -12,7 +12,6 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.ask.entity.AnswerEntity; import com.gh.gamecenter.ask.questionsdetail.AnswerViewHolder; import com.gh.gamecenter.baselist.ListAdapter; -import com.gh.gamecenter.baselist.LoadStatus; import java.util.List; @@ -37,22 +36,6 @@ public class AnswerAdapter extends ListAdapter { notifyDataSetChanged(); } - @Override - protected void loadChange(LoadStatus status) { - switch (status) { - case OVER: - mIsOver = true; - break; - case ERROR: - mIsNetworkError = true; - break; - case RETRY: - mIsNetworkError = false; - break; - } - notifyItemChanged(getItemCount() - 1); - } - @Override public int getItemViewType(int position) { if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER; diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/MessageFragmentAdapter.java index ae2155cc1c..057083bd85 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageFragmentAdapter.java @@ -10,7 +10,6 @@ import com.gh.common.constant.ItemViewType; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.baselist.ListAdapter; -import com.gh.gamecenter.baselist.LoadStatus; import com.gh.gamecenter.entity.MessageEntity; import com.gh.gamecenter.eventbus.EBUISwitch; @@ -46,23 +45,6 @@ public class MessageFragmentAdapter extends ListAdapter { notifyDataSetChanged(); } - @Override - protected void loadChange(LoadStatus status) { - switch (status) { - case OVER: - mIsOver = true; - break; - case ERROR: - mIsNetworkError = true; - break; - case RETRY: - mIsNetworkError = false; - break; - } - notifyItemChanged(getItemCount() - 1); - } - - @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view; diff --git a/app/src/main/res/layout/ask_search_actionbar.xml b/app/src/main/res/layout/ask_search_actionbar.xml index 47e1aa1535..3a4c91d143 100644 --- a/app/src/main/res/layout/ask_search_actionbar.xml +++ b/app/src/main/res/layout/ask_search_actionbar.xml @@ -51,7 +51,7 @@ android:layout_marginRight = "8sp" android:alpha = "8" android:src = "@drawable/ask_search_input_delete" - android:visibility = "visible" /> + android:visibility = "gone" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_answer_detail.xml b/app/src/main/res/layout/fragment_answer_detail.xml index 7760ccabbf..6d67dc9bce 100644 --- a/app/src/main/res/layout/fragment_answer_detail.xml +++ b/app/src/main/res/layout/fragment_answer_detail.xml @@ -11,13 +11,12 @@ android:layout_height = "match_parent" android:layout_marginTop = "8dp" android:background = "@android:color/white" - android:visibility = "gone" > + android:visibility = "visible" > + android:layout_height = "wrap_content" > diff --git a/app/src/main/res/layout/fragment_ask_questions.xml b/app/src/main/res/layout/fragment_ask_questions.xml index c62e825852..f1a3821792 100644 --- a/app/src/main/res/layout/fragment_ask_questions.xml +++ b/app/src/main/res/layout/fragment_ask_questions.xml @@ -1,49 +1,41 @@ - - + android:background = "@android:color/white"> - + android:layout_height = "2dp" + android:layout_alignParentBottom = "true" /> - - - - - + + + android:layout_below="@id/ask_appbar"/> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_ask_search.xml b/app/src/main/res/layout/fragment_ask_search.xml index d547528400..3094217708 100644 --- a/app/src/main/res/layout/fragment_ask_search.xml +++ b/app/src/main/res/layout/fragment_ask_search.xml @@ -12,7 +12,7 @@ + android:layout_height = "match_parent" /> - + - + @@ -152,7 +151,11 @@ - + 继续撰写 回答 发布 - 撰写答案 + 请撰写回答... %1$s:%2$s]]> 我的答案:%1$s