Sorting post comments is now available.

This commit is contained in:
Alex Ning
2019-10-19 19:26:46 +08:00
parent 6b49a8f8e1
commit c9cbc6b5ff
9 changed files with 409 additions and 67 deletions

View File

@@ -61,6 +61,7 @@ import ml.docilealligator.infinityforreddit.FetchComment;
import ml.docilealligator.infinityforreddit.FetchPost; import ml.docilealligator.infinityforreddit.FetchPost;
import ml.docilealligator.infinityforreddit.Flair; import ml.docilealligator.infinityforreddit.Flair;
import ml.docilealligator.infinityforreddit.Fragment.FlairBottomSheetFragment; import ml.docilealligator.infinityforreddit.Fragment.FlairBottomSheetFragment;
import ml.docilealligator.infinityforreddit.Fragment.PostCommentSortTypeBottomSheetFragment;
import ml.docilealligator.infinityforreddit.HidePost; import ml.docilealligator.infinityforreddit.HidePost;
import ml.docilealligator.infinityforreddit.Infinity; import ml.docilealligator.infinityforreddit.Infinity;
import ml.docilealligator.infinityforreddit.ParseComment; import ml.docilealligator.infinityforreddit.ParseComment;
@@ -73,6 +74,8 @@ import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
import ml.docilealligator.infinityforreddit.RedditUtils; import ml.docilealligator.infinityforreddit.RedditUtils;
import ml.docilealligator.infinityforreddit.SaveThing; import ml.docilealligator.infinityforreddit.SaveThing;
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils; import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
import ml.docilealligator.infinityforreddit.SortType;
import ml.docilealligator.infinityforreddit.SortTypeSelectionCallback;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.Callback; import retrofit2.Callback;
import retrofit2.Response; import retrofit2.Response;
@@ -81,7 +84,8 @@ import retrofit2.Retrofit;
import static ml.docilealligator.infinityforreddit.Activity.CommentActivity.EXTRA_COMMENT_DATA_KEY; import static ml.docilealligator.infinityforreddit.Activity.CommentActivity.EXTRA_COMMENT_DATA_KEY;
import static ml.docilealligator.infinityforreddit.Activity.CommentActivity.WRITE_COMMENT_REQUEST_CODE; import static ml.docilealligator.infinityforreddit.Activity.CommentActivity.WRITE_COMMENT_REQUEST_CODE;
public class ViewPostDetailActivity extends BaseActivity implements FlairBottomSheetFragment.FlairSelectionCallback { public class ViewPostDetailActivity extends BaseActivity implements FlairBottomSheetFragment.FlairSelectionCallback,
SortTypeSelectionCallback {
public static final String EXTRA_POST_DATA = "EPD"; public static final String EXTRA_POST_DATA = "EPD";
public static final String EXTRA_POST_LIST_POSITION = "EPLI"; public static final String EXTRA_POST_LIST_POSITION = "EPLI";
@@ -154,8 +158,10 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
private boolean mNeedBlurNsfw; private boolean mNeedBlurNsfw;
private boolean mNeedBlurSpoiler; private boolean mNeedBlurSpoiler;
private boolean showToast = false; private boolean showToast = false;
private boolean isSortingComments = false;
private LinearLayoutManager mLinearLayoutManager; private LinearLayoutManager mLinearLayoutManager;
private CommentAndPostRecyclerViewAdapter mAdapter; private CommentAndPostRecyclerViewAdapter mAdapter;
private PostCommentSortTypeBottomSheetFragment postCommentSortTypeBottomSheetFragment;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@@ -251,6 +257,8 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
if (getIntent().hasExtra(EXTRA_POST_LIST_POSITION)) { if (getIntent().hasExtra(EXTRA_POST_LIST_POSITION)) {
postListPosition = getIntent().getIntExtra(EXTRA_POST_LIST_POSITION, -1); postListPosition = getIntent().getIntExtra(EXTRA_POST_LIST_POSITION, -1);
} }
postCommentSortTypeBottomSheetFragment = new PostCommentSortTypeBottomSheetFragment();
} }
@Override @Override
@@ -321,6 +329,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
MenuItem hideItem = mMenu.findItem(R.id.action_hide_view_post_detail_activity); MenuItem hideItem = mMenu.findItem(R.id.action_hide_view_post_detail_activity);
mMenu.findItem(R.id.action_comment_view_post_detail_activity).setVisible(true); mMenu.findItem(R.id.action_comment_view_post_detail_activity).setVisible(true);
mMenu.findItem(R.id.action_sort_view_post_detail_activity).setVisible(true);
if (mAccessToken != null) { if (mAccessToken != null) {
if (mPost.isSaved()) { if (mPost.isSaved()) {
@@ -418,20 +427,25 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
mProgressBar.setVisibility(View.VISIBLE); mProgressBar.setVisibility(View.VISIBLE);
mGlide.clear(mFetchPostInfoImageView); mGlide.clear(mFetchPostInfoImageView);
String sortType = mSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_POST_COMMENT, SortType.Type.BEST.value).toLowerCase();
Call<String> postAndComments; Call<String> postAndComments;
if (mAccessToken == null) { if (mAccessToken == null) {
if (isSingleCommentThreadMode && mSingleCommentId != null) { if (isSingleCommentThreadMode && mSingleCommentId != null) {
postAndComments = mRetrofit.create(RedditAPI.class).getPostAndCommentsSingleThreadById(subredditId, mSingleCommentId); postAndComments = mRetrofit.create(RedditAPI.class).getPostAndCommentsSingleThreadById(
subredditId, mSingleCommentId, sortType);
} else { } else {
postAndComments = mRetrofit.create(RedditAPI.class).getPostAndCommentsById(subredditId); postAndComments = mRetrofit.create(RedditAPI.class).getPostAndCommentsById(subredditId,
sortType);
} }
} else { } else {
if (isSingleCommentThreadMode && mSingleCommentId != null) { if (isSingleCommentThreadMode && mSingleCommentId != null) {
postAndComments = mOauthRetrofit.create(RedditAPI.class).getPostAndCommentsSingleThreadByIdOauth(subredditId, postAndComments = mOauthRetrofit.create(RedditAPI.class).getPostAndCommentsSingleThreadByIdOauth(subredditId,
mSingleCommentId, RedditUtils.getOAuthHeader(mAccessToken)); mSingleCommentId, sortType, RedditUtils.getOAuthHeader(mAccessToken));
} else { } else {
postAndComments = mOauthRetrofit.create(RedditAPI.class).getPostAndCommentsByIdOauth(subredditId, postAndComments = mOauthRetrofit.create(RedditAPI.class).getPostAndCommentsByIdOauth(subredditId,
RedditUtils.getOAuthHeader(mAccessToken)); sortType, RedditUtils.getOAuthHeader(mAccessToken));
} }
} }
postAndComments.enqueue(new Callback<String>() { postAndComments.enqueue(new Callback<String>() {
@@ -450,6 +464,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
MenuItem hideItem = mMenu.findItem(R.id.action_hide_view_post_detail_activity); MenuItem hideItem = mMenu.findItem(R.id.action_hide_view_post_detail_activity);
mMenu.findItem(R.id.action_comment_view_post_detail_activity).setVisible(true); mMenu.findItem(R.id.action_comment_view_post_detail_activity).setVisible(true);
mMenu.findItem(R.id.action_sort_view_post_detail_activity).setVisible(true);
if (mAccessToken != null) { if (mAccessToken != null) {
if (post.isSaved()) { if (post.isSaved()) {
@@ -560,7 +575,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
}); });
} }
private void fetchComments(boolean changeRefreshState) { private void fetchComments(boolean changeRefreshState, boolean checkSortState, String sortType) {
mAdapter.setSingleComment(mSingleCommentId, isSingleCommentThreadMode); mAdapter.setSingleComment(mSingleCommentId, isSingleCommentThreadMode);
mAdapter.initiallyLoading(); mAdapter.initiallyLoading();
String commentId = null; String commentId = null;
@@ -569,10 +584,19 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
} }
Retrofit retrofit = mAccessToken == null ? mRetrofit : mOauthRetrofit; Retrofit retrofit = mAccessToken == null ? mRetrofit : mOauthRetrofit;
FetchComment.fetchComments(retrofit, mAccessToken, mPost.getId(), commentId, mLocale, new FetchComment.FetchCommentListener() { FetchComment.fetchComments(retrofit, mAccessToken, mPost.getId(), commentId, sortType, mLocale,
new FetchComment.FetchCommentListener() {
@Override @Override
public void onFetchCommentSuccess(ArrayList<CommentData> expandedComments, public void onFetchCommentSuccess(ArrayList<CommentData> expandedComments,
String parentId, ArrayList<String> children) { String parentId, ArrayList<String> children) {
if (checkSortState && isSortingComments) {
if (changeRefreshState) {
isRefreshing = false;
}
return;
}
ViewPostDetailActivity.this.children = children; ViewPostDetailActivity.this.children = children;
comments = expandedComments; comments = expandedComments;
@@ -604,6 +628,14 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
@Override @Override
public void onFetchCommentFailed() { public void onFetchCommentFailed() {
if (checkSortState && isSortingComments) {
if (changeRefreshState) {
isRefreshing = false;
}
return;
}
mAdapter.initiallyLoadCommentsFailed(); mAdapter.initiallyLoadCommentsFailed();
if (changeRefreshState) { if (changeRefreshState) {
isRefreshing = false; isRefreshing = false;
@@ -612,6 +644,12 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
}); });
} }
private void fetchComments(boolean changeRefreshState) {
String sortType = mSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_POST_COMMENT,
SortType.Type.BEST.value).toLowerCase();
fetchComments(changeRefreshState, true, sortType);
}
void fetchMoreComments() { void fetchMoreComments() {
if (isLoadingMoreChildren || !loadMoreChildrenSuccess) { if (isLoadingMoreChildren || !loadMoreChildrenSuccess) {
return; return;
@@ -676,6 +714,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
MenuItem hideItem = mMenu.findItem(R.id.action_hide_view_post_detail_activity); MenuItem hideItem = mMenu.findItem(R.id.action_hide_view_post_detail_activity);
mMenu.findItem(R.id.action_comment_view_post_detail_activity).setVisible(true); mMenu.findItem(R.id.action_comment_view_post_detail_activity).setVisible(true);
mMenu.findItem(R.id.action_sort_view_post_detail_activity).setVisible(true);
if (mAccessToken != null) { if (mAccessToken != null) {
if (post.isSaved()) { if (post.isSaved()) {
@@ -970,6 +1009,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
MenuItem hideItem = mMenu.findItem(R.id.action_hide_view_post_detail_activity); MenuItem hideItem = mMenu.findItem(R.id.action_hide_view_post_detail_activity);
mMenu.findItem(R.id.action_comment_view_post_detail_activity).setVisible(true); mMenu.findItem(R.id.action_comment_view_post_detail_activity).setVisible(true);
mMenu.findItem(R.id.action_sort_view_post_detail_activity).setVisible(true);
if (mAccessToken != null) { if (mAccessToken != null) {
if (mPost.isSaved()) { if (mPost.isSaved()) {
@@ -1098,6 +1138,11 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
} }
} }
return true; return true;
case R.id.action_sort_view_post_detail_activity:
if (mPost != null) {
postCommentSortTypeBottomSheetFragment.show(getSupportFragmentManager(), postCommentSortTypeBottomSheetFragment.getTag());
}
return true;
case R.id.action_view_crosspost_parent_view_post_detail_activity: case R.id.action_view_crosspost_parent_view_post_detail_activity:
Intent crosspostIntent = new Intent(this, ViewPostDetailActivity.class); Intent crosspostIntent = new Intent(this, ViewPostDetailActivity.class);
crosspostIntent.putExtra(ViewPostDetailActivity.EXTRA_POST_ID, mPost.getCrosspostParentId()); crosspostIntent.putExtra(ViewPostDetailActivity.EXTRA_POST_ID, mPost.getCrosspostParentId());
@@ -1286,4 +1331,14 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
} }
}); });
} }
@Override
public void sortTypeSelected(SortType sortType) {
mFetchPostInfoLinearLayout.setVisibility(View.GONE);
mGlide.clear(mFetchPostInfoImageView);
mChildrenStartingIndex = 0;
children.clear();
fetchComments(false, false, sortType.getType().value);
mSharedPreferences.edit().putString(SharedPreferencesUtils.SORT_TYPE_POST_COMMENT, sortType.getType().name()).apply();
}
} }

View File

@@ -12,21 +12,23 @@ import retrofit2.Response;
import retrofit2.Retrofit; import retrofit2.Retrofit;
public class FetchComment { public class FetchComment {
public static void fetchComments(Retrofit retrofit, @Nullable String accessToken, String article, String commentId, public static void fetchComments(Retrofit retrofit, @Nullable String accessToken, String article,
Locale locale, FetchCommentListener fetchCommentListener) { String commentId, String sortType, Locale locale,
FetchCommentListener fetchCommentListener) {
RedditAPI api = retrofit.create(RedditAPI.class); RedditAPI api = retrofit.create(RedditAPI.class);
Call<String> comments; Call<String> comments;
if (accessToken == null) { if (accessToken == null) {
if (commentId == null) { if (commentId == null) {
comments = api.getPostAndCommentsById(article); comments = api.getPostAndCommentsById(article, sortType);
} else { } else {
comments = api.getPostAndCommentsSingleThreadById(article, commentId); comments = api.getPostAndCommentsSingleThreadById(article, commentId, sortType);
} }
} else { } else {
if (commentId == null) { if (commentId == null) {
comments = api.getPostAndCommentsByIdOauth(article, RedditUtils.getOAuthHeader(accessToken)); comments = api.getPostAndCommentsByIdOauth(article, sortType, RedditUtils.getOAuthHeader(accessToken));
} else { } else {
comments = api.getPostAndCommentsSingleThreadByIdOauth(article, commentId, RedditUtils.getOAuthHeader(accessToken)); comments = api.getPostAndCommentsSingleThreadByIdOauth(article, commentId, sortType,
RedditUtils.getOAuthHeader(accessToken));
} }
} }

View File

@@ -0,0 +1,119 @@
package ml.docilealligator.infinityforreddit.Fragment;
import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import com.deishelon.roundedbottomsheet.RoundedBottomSheetDialogFragment;
import butterknife.BindView;
import butterknife.ButterKnife;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.SortType;
import ml.docilealligator.infinityforreddit.SortTypeSelectionCallback;
/**
* A simple {@link Fragment} subclass.
*/
public class PostCommentSortTypeBottomSheetFragment extends RoundedBottomSheetDialogFragment {
@BindView(R.id.best_type_text_view_post_comment_sort_type_bottom_sheet_fragment)
TextView bestTypeTextView;
@BindView(R.id.confidence_type_text_view_post_comment_sort_type_bottom_sheet_fragment)
TextView confidenceTypeTextView;
@BindView(R.id.top_type_text_view_post_comment_sort_type_bottom_sheet_fragment)
TextView topTypeTextView;
@BindView(R.id.new_type_text_view_post_comment_sort_type_bottom_sheet_fragment)
TextView newTypeTextView;
@BindView(R.id.controversial_type_text_view_post_comment_sort_type_bottom_sheet_fragment)
TextView controversialTypeTextView;
@BindView(R.id.old_type_text_view_post_comment_sort_type_bottom_sheet_fragment)
TextView oldTypeTextView;
@BindView(R.id.random_type_text_view_post_comment_sort_type_bottom_sheet_fragment)
TextView randomTypeTextView;
@BindView(R.id.qa_type_text_view_post_comment_sort_type_bottom_sheet_fragment)
TextView qaTypeTextView;
@BindView(R.id.live_type_text_view_post_comment_sort_type_bottom_sheet_fragment)
TextView liveTypeTextView;
private Activity activity;
public PostCommentSortTypeBottomSheetFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_post_comment_sort_type_bottom_sheet, container, false);
ButterKnife.bind(this, rootView);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
&& (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) != Configuration.UI_MODE_NIGHT_YES) {
rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
}
bestTypeTextView.setOnClickListener(view -> {
((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.BEST));
dismiss();
});
confidenceTypeTextView.setOnClickListener(view -> {
((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.CONFIDENCE));
dismiss();
});
topTypeTextView.setOnClickListener(view -> {
((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.TOP));
dismiss();
});
newTypeTextView.setOnClickListener(view -> {
((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.NEW));
dismiss();
});
controversialTypeTextView.setOnClickListener(view -> {
((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.CONTROVERSIAL));
dismiss();
});
oldTypeTextView.setOnClickListener(view -> {
((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.OLD));
dismiss();
});
randomTypeTextView.setOnClickListener(view -> {
((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.RANDOM));
dismiss();
});
qaTypeTextView.setOnClickListener(view -> {
((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.QA));
dismiss();
});
liveTypeTextView.setOnClickListener(view -> {
((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.LIVE));
dismiss();
});
return rootView;
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
this.activity = (Activity) context;
}
}

View File

@@ -193,16 +193,19 @@ public interface RedditAPI {
@GET("/comments/{id}/placeholder/{singleCommentId}.json?context=8&raw_json=1") @GET("/comments/{id}/placeholder/{singleCommentId}.json?context=8&raw_json=1")
Call<String> getPostAndCommentsSingleThreadByIdOauth(@Path("id") String id, @Path("singleCommentId") String singleCommentId, Call<String> getPostAndCommentsSingleThreadByIdOauth(@Path("id") String id, @Path("singleCommentId") String singleCommentId,
@Query("sort") String sortType,
@HeaderMap Map<String, String> headers); @HeaderMap Map<String, String> headers);
@GET("/comments/{id}.json?raw_json=1") @GET("/comments/{id}.json?raw_json=1")
Call<String> getPostAndCommentsByIdOauth(@Path("id") String id, @HeaderMap Map<String, String> headers); Call<String> getPostAndCommentsByIdOauth(@Path("id") String id, @Query("sort") String sortType,
@HeaderMap Map<String, String> headers);
@GET("/comments/{id}/placeholder/{singleCommentId}.json?context=8&raw_json=1") @GET("/comments/{id}/placeholder/{singleCommentId}.json?context=8&raw_json=1")
Call<String> getPostAndCommentsSingleThreadById(@Path("id") String id, @Path("singleCommentId") String singleCommentId); Call<String> getPostAndCommentsSingleThreadById(@Path("id") String id, @Path("singleCommentId") String singleCommentId,
@Query("sort") String sortType);
@GET("/comments/{id}.json?raw_json=1") @GET("/comments/{id}.json?raw_json=1")
Call<String> getPostAndCommentsById(@Path("id") String id); Call<String> getPostAndCommentsById(@Path("id") String id, @Query("sort") String sortType);
@Multipart @Multipart
@POST(".") @POST(".")

View File

@@ -45,4 +45,5 @@ public class SharedPreferencesUtils {
public static final String SORT_TIME_USER_COMMENT = "sort_time_user_comment"; public static final String SORT_TIME_USER_COMMENT = "sort_time_user_comment";
public static final String SORT_TYPE_SEARCH_SUBREDDIT = "sort_type_search_subreddit"; public static final String SORT_TYPE_SEARCH_SUBREDDIT = "sort_type_search_subreddit";
public static final String SORT_TYPE_SEARCH_USER = "sort_type_search_user"; public static final String SORT_TYPE_SEARCH_USER = "sort_type_search_user";
public static final String SORT_TYPE_POST_COMMENT = "sort_type_post_comment";
} }

View File

@@ -32,7 +32,11 @@ public class SortType {
CONTROVERSIAL("controversial"), CONTROVERSIAL("controversial"),
RELEVANCE("relevance"), RELEVANCE("relevance"),
COMMENTS("comments"), COMMENTS("comments"),
ACTIVITY("activity"); ACTIVITY("activity"),
CONFIDENCE("confidence"),
OLD("old"),
QA("qa"),
LIVE("live");
public final String value; public final String value;

View File

@@ -0,0 +1,144 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Fragment.PostCommentSortTypeBottomSheetFragment">
<TextView
android:id="@+id/best_type_text_view_post_comment_sort_type_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/sort_best"
android:textColor="@color/primaryTextColor"
android:textSize="?attr/font_default"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingStart="32dp"
android:paddingEnd="32dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground" />
<TextView
android:id="@+id/confidence_type_text_view_post_comment_sort_type_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/sort_confidence"
android:textColor="@color/primaryTextColor"
android:textSize="?attr/font_default"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingStart="32dp"
android:paddingEnd="32dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground" />
<TextView
android:id="@+id/top_type_text_view_post_comment_sort_type_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/sort_top"
android:textColor="@color/primaryTextColor"
android:textSize="?attr/font_default"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingStart="32dp"
android:paddingEnd="32dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground" />
<TextView
android:id="@+id/new_type_text_view_post_comment_sort_type_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/sort_new"
android:textColor="@color/primaryTextColor"
android:textSize="?attr/font_default"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingStart="32dp"
android:paddingEnd="32dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground" />
<TextView
android:id="@+id/controversial_type_text_view_post_comment_sort_type_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/sort_controversial"
android:textColor="@color/primaryTextColor"
android:textSize="?attr/font_default"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingStart="32dp"
android:paddingEnd="32dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground" />
<TextView
android:id="@+id/old_type_text_view_post_comment_sort_type_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/sort_old"
android:textColor="@color/primaryTextColor"
android:textSize="?attr/font_default"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingStart="32dp"
android:paddingEnd="32dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground" />
<TextView
android:id="@+id/random_type_text_view_post_comment_sort_type_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/sort_random"
android:textColor="@color/primaryTextColor"
android:textSize="?attr/font_default"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingStart="32dp"
android:paddingEnd="32dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground" />
<TextView
android:id="@+id/qa_type_text_view_post_comment_sort_type_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/sort_qa"
android:textColor="@color/primaryTextColor"
android:textSize="?attr/font_default"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingStart="32dp"
android:paddingEnd="32dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground" />
<TextView
android:id="@+id/live_type_text_view_post_comment_sort_type_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/sort_live"
android:textColor="@color/primaryTextColor"
android:textSize="?attr/font_default"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingStart="32dp"
android:paddingEnd="32dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground" />
</LinearLayout>

View File

@@ -17,53 +17,60 @@
android:visible="false" /> android:visible="false" />
<item <item
android:id="@+id/action_refresh_view_post_detail_activity" android:id="@+id/action_sort_view_post_detail_activity"
android:orderInCategory="3" android:orderInCategory="3"
android:title="@string/action_sort"
app:showAsAction="never"
android:visible="false" />
<item
android:id="@+id/action_refresh_view_post_detail_activity"
android:orderInCategory="4"
android:title="@string/action_refresh" android:title="@string/action_refresh"
app:showAsAction="never" /> app:showAsAction="never" />
<item <item
android:id="@+id/action_view_crosspost_parent_view_post_detail_activity" android:id="@+id/action_view_crosspost_parent_view_post_detail_activity"
android:orderInCategory="4" android:orderInCategory="5"
android:title="@string/action_view_crosspost_parent" android:title="@string/action_view_crosspost_parent"
app:showAsAction="never" app:showAsAction="never"
android:visible="false" /> android:visible="false" />
<item <item
android:id="@+id/action_hide_view_post_detail_activity" android:id="@+id/action_hide_view_post_detail_activity"
android:orderInCategory="5" android:orderInCategory="6"
app:showAsAction="never" app:showAsAction="never"
android:visible="false" /> android:visible="false" />
<item <item
android:id="@+id/action_edit_view_post_detail_activity" android:id="@+id/action_edit_view_post_detail_activity"
android:orderInCategory="6" android:orderInCategory="7"
android:title="@string/action_edit_post" android:title="@string/action_edit_post"
app:showAsAction="never" app:showAsAction="never"
android:visible="false" /> android:visible="false" />
<item <item
android:id="@+id/action_delete_view_post_detail_activity" android:id="@+id/action_delete_view_post_detail_activity"
android:orderInCategory="7" android:orderInCategory="8"
android:title="@string/action_delete_post" android:title="@string/action_delete_post"
app:showAsAction="never" app:showAsAction="never"
android:visible="false" /> android:visible="false" />
<item <item
android:id="@+id/action_nsfw_view_post_detail_activity" android:id="@+id/action_nsfw_view_post_detail_activity"
android:orderInCategory="8"
app:showAsAction="never"
android:visible="false" />
<item
android:id="@+id/action_spoiler_view_post_detail_activity"
android:orderInCategory="9" android:orderInCategory="9"
app:showAsAction="never" app:showAsAction="never"
android:visible="false" /> android:visible="false" />
<item <item
android:id="@+id/action_edit_flair_view_post_detail_activity" android:id="@+id/action_spoiler_view_post_detail_activity"
android:orderInCategory="10" android:orderInCategory="10"
app:showAsAction="never"
android:visible="false" />
<item
android:id="@+id/action_edit_flair_view_post_detail_activity"
android:orderInCategory="11"
android:title="@string/action_edit_flair" android:title="@string/action_edit_flair"
app:showAsAction="never" app:showAsAction="never"
android:visible="false" /> android:visible="false" />

View File

@@ -188,6 +188,10 @@
<string name="sort_relevance">Relevance</string> <string name="sort_relevance">Relevance</string>
<string name="sort_comments">Comments</string> <string name="sort_comments">Comments</string>
<string name="sort_activity">Activity</string> <string name="sort_activity">Activity</string>
<string name="sort_confidence">Confidence</string>
<string name="sort_old">Old</string>
<string name="sort_qa">QA</string>
<string name="sort_live">Live</string>
<string name="sort_time_hour">Hour</string> <string name="sort_time_hour">Hour</string>
<string name="sort_time_day">Day</string> <string name="sort_time_day">Day</string>
<string name="sort_time_week">Week</string> <string name="sort_time_week">Week</string>
@@ -343,4 +347,7 @@
<string name="favorites">Favorites</string> <string name="favorites">Favorites</string>
<string name="all">All</string> <string name="all">All</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
</resources> </resources>