diff --git a/app/src/main/java/com/gh/common/util/EntranceUtils.java b/app/src/main/java/com/gh/common/util/EntranceUtils.java index ae5bc4a13b..2609014c1f 100644 --- a/app/src/main/java/com/gh/common/util/EntranceUtils.java +++ b/app/src/main/java/com/gh/common/util/EntranceUtils.java @@ -71,6 +71,7 @@ public class EntranceUtils { public static final String KEY_QUESTIONS_SEARCH_KEY = "questionsSearchKey"; public static final String KEY_SHOW_ANSWER_COMMENT = "showAnswerComment"; public static final String KEY_VERSION_UPDATE = "versionUpdate"; + public static final String KEY_CHECK_QUESTION_CONCERN = "check_question_concern"; public static void jumpActivity(Context context, Bundle bundle) { diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java index bf6a1cf2fb..4a4b22b15b 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java @@ -252,6 +252,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener, RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mNewsShare.getLayoutParams(); params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); params.addRule(RelativeLayout.CENTER_VERTICAL); + params.setMargins(0,0,DisplayUtils.dip2px(this, 4),0); reuse_actionbar.addView(mNewsShare, params); mNewsCollection = (ImageView) LayoutInflater.from(this).inflate(R.layout.menu_action_collection, reuse_actionbar, false); @@ -259,7 +260,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener, RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) mNewsCollection.getLayoutParams(); params2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); params2.addRule(RelativeLayout.CENTER_VERTICAL); - params2.setMargins(0, 0, params.width - DisplayUtils.dip2px(this, 5), 0); + params2.setMargins(0, 0, params.width - DisplayUtils.dip2px(this, 7), 0); reuse_actionbar.addView(mNewsCollection, params2); mDetailRv.setHasFixedSize(true); diff --git a/app/src/main/java/com/gh/gamecenter/QuestionsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/QuestionsDetailActivity.java index 8062c2ec9e..78dfb0456d 100644 --- a/app/src/main/java/com/gh/gamecenter/QuestionsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/QuestionsDetailActivity.java @@ -21,4 +21,12 @@ public class QuestionsDetailActivity extends NormalActivity { bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); return getTargetIntent(context, QuestionsDetailActivity.class, QuestionsDetailFragment.class, bundle); } + + public static Intent getIntent(Context context, String questionId, String entrance, boolean isCheckConcern) { + Bundle bundle = new Bundle(); + bundle.putString(EntranceUtils.KEY_QUESTIONS_ID, questionId); + bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); + bundle.putBoolean(EntranceUtils.KEY_CHECK_QUESTION_CONCERN, isCheckConcern); + return getTargetIntent(context, QuestionsDetailActivity.class, QuestionsDetailFragment.class, bundle); + } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java index 9245f55c84..f9a469d4f3 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java @@ -18,6 +18,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.WebActivity; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; +import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; import com.gh.gamecenter.adapter.viewholder.SearchViewHolder; import com.gh.gamecenter.adapter.viewholder.ToolBoxViewHolder; import com.gh.gamecenter.entity.ToolBoxEntity; @@ -143,10 +144,12 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { public int getItemViewType(int position) { if (position == 0) { return 0; - } else if (position == 1 || position == getItemCount() - 1) { + } else if (position == 1) { return 1; - } else { + } else if (position == getItemCount() - 1) { return 2; + } else { + return 3; } } @@ -155,9 +158,12 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { if (viewType == 0) { View view = mLayoutInflater.inflate(R.layout.layout_search_bar, parent, false); return new SearchViewHolder(view); - } else if (viewType == 1) { + } else if (viewType == 2) { View view = mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false); return new FooterViewHolder(view); + } else if (viewType == 1) { + View view = mLayoutInflater.inflate(R.layout.toolbox_hint_item, parent, false); + return new ReuseViewHolder(view); } else { View view = mLayoutInflater.inflate(R.layout.toolbox_item, parent, false); return new ToolBoxViewHolder(view); @@ -173,10 +179,12 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { initToolBoxViewHolder(viewHolder, toolBoxEntity); } else if (holder instanceof FooterViewHolder) { FooterViewHolder viewHolder = (FooterViewHolder) holder; - initFooterViewHolder(viewHolder, position); + initFooterViewHolder(viewHolder); } else if (holder instanceof SearchViewHolder) { SearchViewHolder viewHolder = (SearchViewHolder) holder; initSearchViewHolder(viewHolder); + } else if (holder instanceof ReuseViewHolder) { + holder.itemView.setOnClickListener(v -> SuggestionActivity.startSuggestionActivity(mContext, 2, null, null)); } } @@ -244,47 +252,32 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { } - private void initFooterViewHolder(FooterViewHolder viewHolder, int position) { + private void initFooterViewHolder(FooterViewHolder viewHolder) { viewHolder.initItemPadding(); - - if (position == 1) { - viewHolder.lineLeft.setVisibility(View.VISIBLE); - viewHolder.lineRight.setVisibility(View.VISIBLE); + if (mIsNetworkError) { + viewHolder.lineLeft.setVisibility(View.GONE); + viewHolder.lineRight.setVisibility(View.GONE); viewHolder.loading.setVisibility(View.GONE); - viewHolder.hint.setText(R.string.tools_suggestion_hint); + viewHolder.hint.setText(R.string.loading_failed_retry); viewHolder.itemView.setClickable(true); viewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - SuggestionActivity.startSuggestionActivity(mContext, 2, null, null); + loadData(); } }); + } else if (mIsOver) { + viewHolder.lineLeft.setVisibility(View.VISIBLE); + viewHolder.lineRight.setVisibility(View.VISIBLE); + viewHolder.loading.setVisibility(View.GONE); + viewHolder.hint.setText(R.string.loading_complete); + viewHolder.itemView.setClickable(false); } else { - if (mIsNetworkError) { - viewHolder.lineLeft.setVisibility(View.GONE); - viewHolder.lineRight.setVisibility(View.GONE); - viewHolder.loading.setVisibility(View.GONE); - viewHolder.hint.setText(R.string.loading_failed_retry); - viewHolder.itemView.setClickable(true); - viewHolder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - loadData(); - } - }); - } else if (mIsOver) { - viewHolder.lineLeft.setVisibility(View.VISIBLE); - viewHolder.lineRight.setVisibility(View.VISIBLE); - viewHolder.loading.setVisibility(View.GONE); - viewHolder.hint.setText(R.string.loading_complete); - viewHolder.itemView.setClickable(false); - } else { - viewHolder.lineLeft.setVisibility(View.GONE); - viewHolder.lineRight.setVisibility(View.GONE); - viewHolder.loading.setVisibility(View.VISIBLE); - viewHolder.hint.setText(loading); - viewHolder.itemView.setClickable(false); - } + viewHolder.lineLeft.setVisibility(View.GONE); + viewHolder.lineRight.setVisibility(View.GONE); + viewHolder.loading.setVisibility(View.VISIBLE); + viewHolder.hint.setText(loading); + viewHolder.itemView.setClickable(false); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java index b7af523ac0..66c503920c 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java @@ -1,7 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; import android.view.View; -import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; @@ -15,9 +14,6 @@ import butterknife.BindView; */ public class GameHeadViewHolder extends BaseRecyclerViewHolder { - @BindView(R.id.head_thumb) - public ImageView thumb; - @BindView(R.id.head_title) public TextView title; diff --git a/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsRecommendsFragment.java b/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsRecommendsFragment.java index 3775fbb007..b1eb1599ea 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsRecommendsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsRecommendsFragment.java @@ -73,9 +73,16 @@ public class AskQuestionsRecommendsFragment extends ListFragment { mAdapter.setSubjectEntity(entityList); }); + mBaseHandler.sendEmptyMessageDelayed(2, 1500); } @Override @@ -217,6 +225,7 @@ public class AskQuestionsRecommendsFragment extends ListFragment { + DataUtils.onMtaEvent(mContext, "问答专题", UserManager.getInstance().getCommunityName(mContext), entity.getTitle()); if ("answer_list".equals(entity.getType())) { mContext.startActivity(CommunitySubjectActivity.getIntent(mContext, entity)); } else { diff --git a/app/src/main/java/com/gh/gamecenter/ask/myask/ConcernQuestionsFragment.java b/app/src/main/java/com/gh/gamecenter/ask/myask/ConcernQuestionsFragment.java index 962bebc763..ce4b293665 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/myask/ConcernQuestionsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/myask/ConcernQuestionsFragment.java @@ -1,5 +1,7 @@ package com.gh.gamecenter.ask.myask; +import android.app.Activity; +import android.content.Intent; import android.os.Bundle; import android.view.View; @@ -24,9 +26,18 @@ import rx.Observable; */ public class ConcernQuestionsFragment extends ListFragment { + public static final int KEY_CHECK_QUESTION_CONCERN = 105; private ConcernQuestionsAdapter mAdapter; + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == KEY_CHECK_QUESTION_CONCERN && resultCode == Activity.RESULT_OK) { + onLoadRefresh(); + } + } + public static ConcernQuestionsFragment getInstance(String entrance) { ConcernQuestionsFragment fragment = new ConcernQuestionsFragment(); Bundle args = new Bundle(); @@ -57,8 +68,8 @@ public class ConcernQuestionsFragment extends ListFragment 0) { - mQuestionsDetailEntity.setFollowCount(mQuestionsDetailEntity.getFollowCount() - 1); - } - mQuestionsDetailEntity.getMe().setQuestionFollowed(false); - mAdapter.notifyItemChanged(0); - toast("取消关注"); - } - - @Override - public void onError() { - - } - }); + cancelConcern(); } }); break; @@ -381,6 +372,7 @@ public class QuestionsDetailFragment extends ListFragment 0) { + mQuestionsDetailEntity.setFollowCount(mQuestionsDetailEntity.getFollowCount() - 1); + } + mQuestionsDetailEntity.getMe().setQuestionFollowed(false); + mAdapter.notifyItemChanged(0); + toast("取消关注"); + } + } + + @Override + public void onError() { + + } + }); + } + + private void showCancelConcernDialog() { + DialogUtils.showAlertDialog(getContext() + , "取消关注问题", "问题已被删除,一键取消关注问题" + , " 取消关注", "暂不 " + , () -> { + cancelConcern(); + } + , () -> { + if (getActivity() != null) getActivity().finish(); + }); + } } diff --git a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java index 4a39968497..1add2df2b5 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java @@ -1,13 +1,20 @@ package com.gh.gamecenter.fragment; +import android.app.Dialog; +import android.content.SharedPreferences; import android.os.Bundle; +import android.preference.PreferenceManager; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; +import android.view.Gravity; +import android.view.LayoutInflater; import android.view.View; +import android.view.Window; import com.gh.base.fragment.BaseFragment_ViewPager_Checkable; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.DataUtils; +import com.gh.gamecenter.CommunitiesSelectActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.ask.AskFragment; import com.gh.gamecenter.db.GameTrendsDao; @@ -35,6 +42,7 @@ import rx.schedulers.Schedulers; import static com.gh.gamecenter.MainActivity.EB_MAINACTIVITY_TAG; import static com.gh.gamecenter.MainActivity.EB_SKIP_GAMEFRAGMENT; +import static com.gh.gamecenter.ask.AskFragment.COMMUNITIES_SELECT_REQUEST; /** * @author CsHeng @@ -59,6 +67,10 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable { private GameTrendsDao mGameTrendsDao; + private SharedPreferences sp; + + private boolean mIsShowSelectCommunitiesDialog; + private long mLastRequestDiscoveryTime; @Override @@ -88,6 +100,14 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mGameTrendsDao = new GameTrendsDao(getContext()); + sp = PreferenceManager.getDefaultSharedPreferences(getContext()); + mIsShowSelectCommunitiesDialog = sp.getBoolean("isShowSelectCommunitiesDialog", true); + if (mIsShowSelectCommunitiesDialog) { + final Bundle args = getArguments(); + if (args != null && args.getInt(ARGS_INDEX) == INDEX_ASK) { + mIsShowSelectCommunitiesDialog = false; + } + } } @Override @@ -114,6 +134,12 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable { @Override protected void onPageChanged(int index) { super.onPageChanged(index); + if (index == INDEX_ASK && mIsShowSelectCommunitiesDialog) { + sp.edit().putBoolean("isShowSelectCommunitiesDialog", false).apply(); + mIsShowSelectCommunitiesDialog = false; + showDialog(); + } + switch (index) { case INDEX_GAME: @@ -206,4 +232,22 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable { getDiscoveryData(true); } } + + public void showDialog() { + Dialog dialog = new Dialog(getContext(), R.style.DialogWindowTransparent); + dialog.setCancelable(false); + Window window = dialog.getWindow(); + if (window != null) { + window.setGravity(Gravity.LEFT | Gravity.TOP); + } + dialog.show(); + LayoutInflater inflater = LayoutInflater.from(getContext()); + View viewDialog = inflater.inflate(R.layout.dialog_communities_select_hint, null); + View view = viewDialog.findViewById(R.id.communities_select_hint); + view.setOnClickListener(v -> { + dialog.dismiss(); + startActivityForResult(CommunitiesSelectActivity.getIntent(getContext()), COMMUNITIES_SELECT_REQUEST); + }); + dialog.setContentView(viewDialog); + } } diff --git a/app/src/main/java/com/halo/assistant/fragment/game/GameFragmentAdapter.java b/app/src/main/java/com/halo/assistant/fragment/game/GameFragmentAdapter.java index fbbdf5359e..7fde9a3aaf 100644 --- a/app/src/main/java/com/halo/assistant/fragment/game/GameFragmentAdapter.java +++ b/app/src/main/java/com/halo/assistant/fragment/game/GameFragmentAdapter.java @@ -923,7 +923,6 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { String image = mSubjectList.get(i).getData().get(0).getImage(); if (position == offset && TextUtils.isEmpty(gameEntity.getImage()) || position == offset + 1 && !TextUtils.isEmpty(image)) { - holder.thumb.setVisibility(View.GONE); holder.line.setVisibility(View.VISIBLE); holder.title.setText(mSubjectList.get(i).getName()); holder.title.setTextColor(Color.BLACK); diff --git a/app/src/main/res/drawable-xhdpi/communities_select_hint.png b/app/src/main/res/drawable-xhdpi/communities_select_hint.png new file mode 100644 index 0000000000..71fa9ab0fb Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/communities_select_hint.png differ diff --git a/app/src/main/res/layout/dialog_communities_select_hint.xml b/app/src/main/res/layout/dialog_communities_select_hint.xml new file mode 100644 index 0000000000..ae3aca0506 --- /dev/null +++ b/app/src/main/res/layout/dialog_communities_select_hint.xml @@ -0,0 +1,18 @@ + + + + + + + \ 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 b4ddc4a9c0..62e1ab880a 100644 --- a/app/src/main/res/layout/fragment_answer_detail.xml +++ b/app/src/main/res/layout/fragment_answer_detail.xml @@ -161,7 +161,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="20dp" - android:layout_marginTop="10dp" + android:layout_marginTop="33dp" android:textColor="@color/title" android:textSize="12sp" android:gravity="right" diff --git a/app/src/main/res/layout/fragment_ask.xml b/app/src/main/res/layout/fragment_ask.xml index ccdbb2a6ad..d9b72ed252 100644 --- a/app/src/main/res/layout/fragment_ask.xml +++ b/app/src/main/res/layout/fragment_ask.xml @@ -15,13 +15,16 @@ android:id = "@+id/ask_selectgame" android:layout_width = "@dimen/appbar_height" android:layout_height = "@dimen/appbar_height" + android:layout_marginLeft = "3dp" android:scaleType = "center" - android:src = "@drawable/ic_ask_selectgame" /> + android:src = "@drawable/ic_ask_selectgame" + app:layout_constraintLeft_toLeftOf = "parent" /> diff --git a/app/src/main/res/layout/fragment_personal.xml b/app/src/main/res/layout/fragment_personal.xml index 1b0c381df5..70ef49944b 100644 --- a/app/src/main/res/layout/fragment_personal.xml +++ b/app/src/main/res/layout/fragment_personal.xml @@ -26,7 +26,7 @@ android:layout_width = "70dp" android:layout_height = "70dp" android:layout_centerHorizontal = "true" - android:layout_marginTop = "42dp" + android:layout_marginTop = "40dp" fresco:placeholderImage = "@drawable/user_default_icon_comment" fresco:roundAsCircle = "true" /> @@ -56,7 +56,7 @@ android:layout_width = "match_parent" android:layout_height = "wrap_content" android:background = "@android:color/white" - android:paddingTop = "35dp" > + android:paddingTop = "25dp" > - - @@ -65,8 +60,8 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/layout_menu_inset.xml b/app/src/main/res/layout/layout_menu_inset.xml index fd3a596e4e..449f0d262f 100644 --- a/app/src/main/res/layout/layout_menu_inset.xml +++ b/app/src/main/res/layout/layout_menu_inset.xml @@ -1,4 +1,4 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/questionsdetail_item.xml b/app/src/main/res/layout/questionsdetail_item.xml index accf5c0854..05c60bee58 100644 --- a/app/src/main/res/layout/questionsdetail_item.xml +++ b/app/src/main/res/layout/questionsdetail_item.xml @@ -29,7 +29,7 @@ android:layout_height = "wrap_content" android:layout_marginLeft = "20dp" android:layout_marginRight = "20dp" - android:layout_marginTop = "7dp" + android:layout_marginTop = "6dp" android:textColor = "@color/black" android:textSize = "16sp" android:textStyle = "bold" @@ -41,7 +41,7 @@ android:layout_height = "wrap_content" android:layout_marginLeft = "20dp" android:layout_marginRight = "20dp" - android:layout_marginTop = "9dp" + android:layout_marginTop = "8dp" app:layout_constraintTop_toBottomOf = "@id/questionsdetail_item_title" > diff --git a/app/src/main/res/layout/toolbox_hint_item.xml b/app/src/main/res/layout/toolbox_hint_item.xml new file mode 100644 index 0000000000..30b1fea69c --- /dev/null +++ b/app/src/main/res/layout/toolbox_hint_item.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/menu_answer.xml b/app/src/main/res/menu/menu_answer.xml index 5d5d6ba956..07742adf28 100644 --- a/app/src/main/res/menu/menu_answer.xml +++ b/app/src/main/res/menu/menu_answer.xml @@ -14,4 +14,10 @@ android:title = "更多" app:showAsAction = "always" /> + + + \ No newline at end of file