mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-10-05 05:19:49 +02:00
Sorting post comments is now available.
This commit is contained in:
@@ -61,6 +61,7 @@ import ml.docilealligator.infinityforreddit.FetchComment;
|
||||
import ml.docilealligator.infinityforreddit.FetchPost;
|
||||
import ml.docilealligator.infinityforreddit.Flair;
|
||||
import ml.docilealligator.infinityforreddit.Fragment.FlairBottomSheetFragment;
|
||||
import ml.docilealligator.infinityforreddit.Fragment.PostCommentSortTypeBottomSheetFragment;
|
||||
import ml.docilealligator.infinityforreddit.HidePost;
|
||||
import ml.docilealligator.infinityforreddit.Infinity;
|
||||
import ml.docilealligator.infinityforreddit.ParseComment;
|
||||
@@ -73,6 +74,8 @@ import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||
import ml.docilealligator.infinityforreddit.RedditUtils;
|
||||
import ml.docilealligator.infinityforreddit.SaveThing;
|
||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||
import ml.docilealligator.infinityforreddit.SortType;
|
||||
import ml.docilealligator.infinityforreddit.SortTypeSelectionCallback;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
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.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_LIST_POSITION = "EPLI";
|
||||
@@ -154,8 +158,10 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
|
||||
private boolean mNeedBlurNsfw;
|
||||
private boolean mNeedBlurSpoiler;
|
||||
private boolean showToast = false;
|
||||
private boolean isSortingComments = false;
|
||||
private LinearLayoutManager mLinearLayoutManager;
|
||||
private CommentAndPostRecyclerViewAdapter mAdapter;
|
||||
private PostCommentSortTypeBottomSheetFragment postCommentSortTypeBottomSheetFragment;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -251,6 +257,8 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
|
||||
if (getIntent().hasExtra(EXTRA_POST_LIST_POSITION)) {
|
||||
postListPosition = getIntent().getIntExtra(EXTRA_POST_LIST_POSITION, -1);
|
||||
}
|
||||
|
||||
postCommentSortTypeBottomSheetFragment = new PostCommentSortTypeBottomSheetFragment();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -321,6 +329,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
|
||||
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_sort_view_post_detail_activity).setVisible(true);
|
||||
|
||||
if (mAccessToken != null) {
|
||||
if (mPost.isSaved()) {
|
||||
@@ -418,20 +427,25 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
|
||||
mProgressBar.setVisibility(View.VISIBLE);
|
||||
mGlide.clear(mFetchPostInfoImageView);
|
||||
|
||||
String sortType = mSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_POST_COMMENT, SortType.Type.BEST.value).toLowerCase();
|
||||
|
||||
|
||||
Call<String> postAndComments;
|
||||
if (mAccessToken == null) {
|
||||
if (isSingleCommentThreadMode && mSingleCommentId != null) {
|
||||
postAndComments = mRetrofit.create(RedditAPI.class).getPostAndCommentsSingleThreadById(subredditId, mSingleCommentId);
|
||||
postAndComments = mRetrofit.create(RedditAPI.class).getPostAndCommentsSingleThreadById(
|
||||
subredditId, mSingleCommentId, sortType);
|
||||
} else {
|
||||
postAndComments = mRetrofit.create(RedditAPI.class).getPostAndCommentsById(subredditId);
|
||||
postAndComments = mRetrofit.create(RedditAPI.class).getPostAndCommentsById(subredditId,
|
||||
sortType);
|
||||
}
|
||||
} else {
|
||||
if (isSingleCommentThreadMode && mSingleCommentId != null) {
|
||||
postAndComments = mOauthRetrofit.create(RedditAPI.class).getPostAndCommentsSingleThreadByIdOauth(subredditId,
|
||||
mSingleCommentId, RedditUtils.getOAuthHeader(mAccessToken));
|
||||
mSingleCommentId, sortType, RedditUtils.getOAuthHeader(mAccessToken));
|
||||
} else {
|
||||
postAndComments = mOauthRetrofit.create(RedditAPI.class).getPostAndCommentsByIdOauth(subredditId,
|
||||
RedditUtils.getOAuthHeader(mAccessToken));
|
||||
sortType, RedditUtils.getOAuthHeader(mAccessToken));
|
||||
}
|
||||
}
|
||||
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);
|
||||
|
||||
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 (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.initiallyLoading();
|
||||
String commentId = null;
|
||||
@@ -569,47 +584,70 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
|
||||
}
|
||||
|
||||
Retrofit retrofit = mAccessToken == null ? mRetrofit : mOauthRetrofit;
|
||||
FetchComment.fetchComments(retrofit, mAccessToken, mPost.getId(), commentId, mLocale, new FetchComment.FetchCommentListener() {
|
||||
@Override
|
||||
public void onFetchCommentSuccess(ArrayList<CommentData> expandedComments,
|
||||
String parentId, ArrayList<String> children) {
|
||||
ViewPostDetailActivity.this.children = children;
|
||||
|
||||
comments = expandedComments;
|
||||
hasMoreChildren = children.size() != 0;
|
||||
mAdapter.addComments(expandedComments, hasMoreChildren);
|
||||
|
||||
if (children.size() > 0) {
|
||||
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
||||
super.onScrolled(recyclerView, dx, dy);
|
||||
|
||||
if (!isLoadingMoreChildren && loadMoreChildrenSuccess) {
|
||||
int visibleItemCount = mLinearLayoutManager.getChildCount();
|
||||
int totalItemCount = mLinearLayoutManager.getItemCount();
|
||||
int firstVisibleItemPosition = mLinearLayoutManager.findFirstVisibleItemPosition();
|
||||
|
||||
if ((visibleItemCount + firstVisibleItemPosition >= totalItemCount) && firstVisibleItemPosition >= 0) {
|
||||
fetchMoreComments();
|
||||
}
|
||||
FetchComment.fetchComments(retrofit, mAccessToken, mPost.getId(), commentId, sortType, mLocale,
|
||||
new FetchComment.FetchCommentListener() {
|
||||
@Override
|
||||
public void onFetchCommentSuccess(ArrayList<CommentData> expandedComments,
|
||||
String parentId, ArrayList<String> children) {
|
||||
if (checkSortState && isSortingComments) {
|
||||
if (changeRefreshState) {
|
||||
isRefreshing = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
if (changeRefreshState) {
|
||||
isRefreshing = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFetchCommentFailed() {
|
||||
mAdapter.initiallyLoadCommentsFailed();
|
||||
if (changeRefreshState) {
|
||||
isRefreshing = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
ViewPostDetailActivity.this.children = children;
|
||||
|
||||
comments = expandedComments;
|
||||
hasMoreChildren = children.size() != 0;
|
||||
mAdapter.addComments(expandedComments, hasMoreChildren);
|
||||
|
||||
if (children.size() > 0) {
|
||||
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
||||
super.onScrolled(recyclerView, dx, dy);
|
||||
|
||||
if (!isLoadingMoreChildren && loadMoreChildrenSuccess) {
|
||||
int visibleItemCount = mLinearLayoutManager.getChildCount();
|
||||
int totalItemCount = mLinearLayoutManager.getItemCount();
|
||||
int firstVisibleItemPosition = mLinearLayoutManager.findFirstVisibleItemPosition();
|
||||
|
||||
if ((visibleItemCount + firstVisibleItemPosition >= totalItemCount) && firstVisibleItemPosition >= 0) {
|
||||
fetchMoreComments();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
if (changeRefreshState) {
|
||||
isRefreshing = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFetchCommentFailed() {
|
||||
if (checkSortState && isSortingComments) {
|
||||
if (changeRefreshState) {
|
||||
isRefreshing = false;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
mAdapter.initiallyLoadCommentsFailed();
|
||||
if (changeRefreshState) {
|
||||
isRefreshing = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
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() {
|
||||
@@ -676,6 +714,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
|
||||
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_sort_view_post_detail_activity).setVisible(true);
|
||||
|
||||
if (mAccessToken != null) {
|
||||
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);
|
||||
|
||||
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 (mPost.isSaved()) {
|
||||
@@ -1098,6 +1138,11 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
|
||||
}
|
||||
}
|
||||
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:
|
||||
Intent crosspostIntent = new Intent(this, ViewPostDetailActivity.class);
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
@@ -12,21 +12,23 @@ import retrofit2.Response;
|
||||
import retrofit2.Retrofit;
|
||||
|
||||
public class FetchComment {
|
||||
public static void fetchComments(Retrofit retrofit, @Nullable String accessToken, String article, String commentId,
|
||||
Locale locale, FetchCommentListener fetchCommentListener) {
|
||||
public static void fetchComments(Retrofit retrofit, @Nullable String accessToken, String article,
|
||||
String commentId, String sortType, Locale locale,
|
||||
FetchCommentListener fetchCommentListener) {
|
||||
RedditAPI api = retrofit.create(RedditAPI.class);
|
||||
Call<String> comments;
|
||||
if (accessToken == null) {
|
||||
if (commentId == null) {
|
||||
comments = api.getPostAndCommentsById(article);
|
||||
comments = api.getPostAndCommentsById(article, sortType);
|
||||
} else {
|
||||
comments = api.getPostAndCommentsSingleThreadById(article, commentId);
|
||||
comments = api.getPostAndCommentsSingleThreadById(article, commentId, sortType);
|
||||
}
|
||||
} else {
|
||||
if (commentId == null) {
|
||||
comments = api.getPostAndCommentsByIdOauth(article, RedditUtils.getOAuthHeader(accessToken));
|
||||
comments = api.getPostAndCommentsByIdOauth(article, sortType, RedditUtils.getOAuthHeader(accessToken));
|
||||
} else {
|
||||
comments = api.getPostAndCommentsSingleThreadByIdOauth(article, commentId, RedditUtils.getOAuthHeader(accessToken));
|
||||
comments = api.getPostAndCommentsSingleThreadByIdOauth(article, commentId, sortType,
|
||||
RedditUtils.getOAuthHeader(accessToken));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
@@ -193,16 +193,19 @@ public interface RedditAPI {
|
||||
|
||||
@GET("/comments/{id}/placeholder/{singleCommentId}.json?context=8&raw_json=1")
|
||||
Call<String> getPostAndCommentsSingleThreadByIdOauth(@Path("id") String id, @Path("singleCommentId") String singleCommentId,
|
||||
@Query("sort") String sortType,
|
||||
@HeaderMap Map<String, String> headers);
|
||||
|
||||
@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")
|
||||
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")
|
||||
Call<String> getPostAndCommentsById(@Path("id") String id);
|
||||
Call<String> getPostAndCommentsById(@Path("id") String id, @Query("sort") String sortType);
|
||||
|
||||
@Multipart
|
||||
@POST(".")
|
||||
|
@@ -45,4 +45,5 @@ public class SharedPreferencesUtils {
|
||||
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_USER = "sort_type_search_user";
|
||||
public static final String SORT_TYPE_POST_COMMENT = "sort_type_post_comment";
|
||||
}
|
||||
|
@@ -32,7 +32,11 @@ public class SortType {
|
||||
CONTROVERSIAL("controversial"),
|
||||
RELEVANCE("relevance"),
|
||||
COMMENTS("comments"),
|
||||
ACTIVITY("activity");
|
||||
ACTIVITY("activity"),
|
||||
CONFIDENCE("confidence"),
|
||||
OLD("old"),
|
||||
QA("qa"),
|
||||
LIVE("live");
|
||||
|
||||
public final String value;
|
||||
|
||||
|
@@ -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>
|
@@ -17,53 +17,60 @@
|
||||
android:visible="false" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_refresh_view_post_detail_activity"
|
||||
android:id="@+id/action_sort_view_post_detail_activity"
|
||||
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"
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_view_crosspost_parent_view_post_detail_activity"
|
||||
android:orderInCategory="4"
|
||||
android:orderInCategory="5"
|
||||
android:title="@string/action_view_crosspost_parent"
|
||||
app:showAsAction="never"
|
||||
android:visible="false" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_hide_view_post_detail_activity"
|
||||
android:orderInCategory="5"
|
||||
android:orderInCategory="6"
|
||||
app:showAsAction="never"
|
||||
android:visible="false" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_edit_view_post_detail_activity"
|
||||
android:orderInCategory="6"
|
||||
android:orderInCategory="7"
|
||||
android:title="@string/action_edit_post"
|
||||
app:showAsAction="never"
|
||||
android:visible="false" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_delete_view_post_detail_activity"
|
||||
android:orderInCategory="7"
|
||||
android:orderInCategory="8"
|
||||
android:title="@string/action_delete_post"
|
||||
app:showAsAction="never"
|
||||
android:visible="false" />
|
||||
|
||||
<item
|
||||
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"
|
||||
app:showAsAction="never"
|
||||
android:visible="false" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_edit_flair_view_post_detail_activity"
|
||||
android:id="@+id/action_spoiler_view_post_detail_activity"
|
||||
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"
|
||||
app:showAsAction="never"
|
||||
android:visible="false" />
|
||||
|
@@ -188,6 +188,10 @@
|
||||
<string name="sort_relevance">Relevance</string>
|
||||
<string name="sort_comments">Comments</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_day">Day</string>
|
||||
<string name="sort_time_week">Week</string>
|
||||
@@ -343,4 +347,7 @@
|
||||
|
||||
<string name="favorites">Favorites</string>
|
||||
<string name="all">All</string>
|
||||
|
||||
<!-- TODO: Remove or change this placeholder text -->
|
||||
<string name="hello_blank_fragment">Hello blank fragment</string>
|
||||
</resources>
|
||||
|
Reference in New Issue
Block a user