Add a rounded background to thumbnail in compact layout. Fix subreddits and users not clickable in sidebar.

This commit is contained in:
Alex Ning 2020-06-14 15:19:56 +08:00
parent 8ed7f54d46
commit 4d753fc562
4 changed files with 370 additions and 355 deletions

View File

@ -898,8 +898,8 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
((PostCompactViewHolder) holder).linkTextView.setVisibility(View.VISIBLE);
String noPreviewLinkDomain = Uri.parse(noPreviewLinkUrl).getHost();
((PostCompactViewHolder) holder).linkTextView.setText(noPreviewLinkDomain);
((PostCompactViewHolder) holder).noPreviewLinkImageView.setVisibility(View.VISIBLE);
((PostCompactViewHolder) holder).noPreviewLinkImageView.setOnClickListener(view -> {
((PostCompactViewHolder) holder).noPreviewLinkImageFrameLayout.setVisibility(View.VISIBLE);
((PostCompactViewHolder) holder).noPreviewLinkImageFrameLayout.setOnClickListener(view -> {
Intent intent = new Intent(mActivity, LinkResolverActivity.class);
Uri uri = Uri.parse(post.getUrl());
if (uri.getScheme() == null && uri.getHost() == null) {
@ -1385,7 +1385,7 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
((PostCompactViewHolder) holder).progressBar.setVisibility(View.GONE);
((PostCompactViewHolder) holder).imageView.setVisibility(View.GONE);
((PostCompactViewHolder) holder).playButtonImageView.setVisibility(View.GONE);
((PostCompactViewHolder) holder).noPreviewLinkImageView.setVisibility(View.GONE);
((PostCompactViewHolder) holder).noPreviewLinkImageFrameLayout.setVisibility(View.GONE);
((PostCompactViewHolder) holder).upvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
((PostCompactViewHolder) holder).scoreTextView.setTextColor(mPostIconAndInfoColor);
((PostCompactViewHolder) holder).downvoteButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
@ -2576,6 +2576,8 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
ImageView imageView;
@BindView(R.id.play_button_image_view_item_post_compact)
ImageView playButtonImageView;
@BindView(R.id.frame_layout_image_view_no_preview_link_item_post_compact)
FrameLayout noPreviewLinkImageFrameLayout;
@BindView(R.id.image_view_no_preview_link_item_post_compact)
ImageView noPreviewLinkImageView;
@BindView(R.id.barrier2)
@ -2634,11 +2636,11 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
constraintSet.clear(linkTextView.getId(), ConstraintSet.END);
constraintSet.clear(relativeLayout.getId(), ConstraintSet.START);
constraintSet.clear(relativeLayout.getId(), ConstraintSet.END);
constraintSet.clear(noPreviewLinkImageView.getId(), ConstraintSet.START);
constraintSet.clear(noPreviewLinkImageView.getId(), ConstraintSet.END);
constraintSet.clear(noPreviewLinkImageFrameLayout.getId(), ConstraintSet.START);
constraintSet.clear(noPreviewLinkImageFrameLayout.getId(), ConstraintSet.END);
int barrierId = 1234;
constraintSet.createBarrier(barrierId, Barrier.END, R.id.image_view_wrapper_item_post_compact,
R.id.image_view_no_preview_link_item_post_compact);
R.id.frame_layout_image_view_no_preview_link_item_post_compact);
constraintSet.connect(titleTextView.getId(), ConstraintSet.START, barrierId, ConstraintSet.END);
constraintSet.connect(titleTextView.getId(), ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END);
constraintSet.connect(R.id.flow_layout_item_post_compact, ConstraintSet.START, barrierId, ConstraintSet.END);
@ -2648,11 +2650,13 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
constraintSet.connect(linkTextView.getId(), ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END);
constraintSet.connect(relativeLayout.getId(), ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START);
constraintSet.connect(relativeLayout.getId(), ConstraintSet.END, barrierId, ConstraintSet.START);
constraintSet.connect(noPreviewLinkImageView.getId(), ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START);
constraintSet.connect(noPreviewLinkImageView.getId(), ConstraintSet.END, barrierId, ConstraintSet.START);
constraintSet.connect(noPreviewLinkImageFrameLayout.getId(), ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START);
constraintSet.connect(noPreviewLinkImageFrameLayout.getId(), ConstraintSet.END, barrierId, ConstraintSet.START);
constraintSet.applyTo(titleAndImageConstraintLayout);
((ConstraintLayout.LayoutParams) relativeLayout.getLayoutParams()).leftMargin = (int) Utils.convertDpToPixel(16, mActivity);
int leftMargin = (int) Utils.convertDpToPixel(16, mActivity);
((ConstraintLayout.LayoutParams) relativeLayout.getLayoutParams()).leftMargin = leftMargin;
((ConstraintLayout.LayoutParams) noPreviewLinkImageFrameLayout.getLayoutParams()).leftMargin = leftMargin;
}
itemView.setBackgroundTintList(ColorStateList.valueOf(mCardViewBackgroundColor));
@ -2688,6 +2692,10 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
saveButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
shareButton.setColorFilter(mPostIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN);
divider.setBackgroundColor(mDividerColor);
imageView.setClipToOutline(true);
noPreviewLinkImageFrameLayout.setClipToOutline(true);
}
}

View File

@ -10,6 +10,7 @@ import java.util.ArrayList;
import ml.docilealligator.infinityforreddit.SubredditDatabase.SubredditData;
import ml.docilealligator.infinityforreddit.Utils.JSONUtils;
import ml.docilealligator.infinityforreddit.Utils.Utils;
class ParseSubredditData {
static void parseSubredditData(String response, ParseSubredditDataListener parseSubredditDataListener) {
@ -24,7 +25,7 @@ class ParseSubredditData {
String id = subredditDataJsonObject.getString(JSONUtils.NAME_KEY);
String subredditFullName = subredditDataJsonObject.getString(JSONUtils.DISPLAY_NAME_KEY);
String description = subredditDataJsonObject.getString(JSONUtils.PUBLIC_DESCRIPTION_KEY).trim();
String sidebarDescription = subredditDataJsonObject.getString(JSONUtils.DESCRIPTION_KEY).trim();
String sidebarDescription = Utils.modifyMarkdown(subredditDataJsonObject.getString(JSONUtils.DESCRIPTION_KEY).trim());
long createdUTC = subredditDataJsonObject.getLong(JSONUtils.CREATED_UTC_KEY) * 1000;
String bannerImageUrl;

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="8dp"/>
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />
</shape>

View File

@ -1,12 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="?attr/cardViewBackgroundColor"
xmlns:tools="http://schemas.android.com/tools">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
@ -14,10 +8,10 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="16dp"
android:paddingEnd="16dp">
android:paddingTop="8dp"
android:paddingEnd="16dp"
android:paddingBottom="8dp">
<ml.docilealligator.infinityforreddit.CustomView.AspectRatioGifImageView
android:id="@+id/icon_gif_image_view_item_post_compact"
@ -35,9 +29,9 @@
android:layout_gravity="center"
android:layout_marginStart="16dp"
android:layout_marginEnd="8dp"
android:fontFamily="?attr/font_family"
android:textColor="#E91E63"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/stickied_post_image_view_item_post_compact"
app:layout_constraintStart_toEndOf="@id/icon_gif_image_view_item_post_compact"
@ -58,9 +52,9 @@
android:id="@+id/post_time_text_view_item_post_compact"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:fontFamily="?attr/font_family"
android:gravity="end"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/guideline2"
@ -84,39 +78,39 @@
android:id="@+id/title_text_view_item_post_compact"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:fontFamily="?attr/title_font_family"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:textColor="?attr/primaryTextColor"
android:textSize="?attr/title_font_18"
android:fontFamily="?attr/title_font_family"
app:layout_constraintBottom_toTopOf="@id/flow_layout_item_post_compact"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/barrier2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.nex3z.flowlayout.FlowLayout
android:id="@+id/flow_layout_item_post_compact"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="16dp"
android:paddingTop="8dp"
android:paddingEnd="16dp"
app:layout_constraintTop_toBottomOf="@id/title_text_view_item_post_compact"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/barrier2"
app:layout_constraintBottom_toTopOf="@id/link_text_view_item_post_compact"
android:paddingBottom="8dp"
app:flChildSpacing="8dp"
app:flChildSpacingForLastRow="align"
app:flRowSpacing="8dp">
app:flRowSpacing="8dp"
app:layout_constraintBottom_toTopOf="@id/link_text_view_item_post_compact"
app:layout_constraintEnd_toStartOf="@id/barrier2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title_text_view_item_post_compact">
<com.libRG.CustomTextView
android:id="@+id/type_text_view_item_post_compact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="?attr/font_family"
android:padding="4dp"
android:textSize="?attr/font_10"
android:fontFamily="?attr/font_family"
app:lib_setRadius="3dp"
app:lib_setRoundedView="true"
app:lib_setShape="rectangle" />
@ -126,10 +120,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="?attr/font_family"
android:padding="4dp"
android:text="@string/spoiler"
android:textSize="?attr/font_10"
android:fontFamily="?attr/font_family"
android:visibility="gone"
app:lib_setRadius="3dp"
app:lib_setRoundedView="true"
@ -139,10 +133,10 @@
android:id="@+id/nsfw_text_view_item_post_compact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="?attr/font_family"
android:padding="4dp"
android:text="@string/nsfw"
android:textSize="?attr/font_10"
android:fontFamily="?attr/font_family"
android:visibility="gone"
app:lib_setRadius="3dp"
app:lib_setRoundedView="true"
@ -153,9 +147,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="?attr/font_family"
android:padding="4dp"
android:textSize="?attr/font_10"
android:fontFamily="?attr/font_family"
android:visibility="gone"
app:lib_setRadius="3dp"
app:lib_setRoundedView="true"
@ -165,9 +159,9 @@
android:id="@+id/awards_text_view_item_post_compact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="?attr/font_family"
android:padding="4dp"
android:textSize="?attr/font_10"
android:fontFamily="?attr/font_family"
android:visibility="gone"
app:lib_setRadius="3dp"
app:lib_setRoundedView="true"
@ -200,15 +194,15 @@
android:id="@+id/link_text_view_item_post_compact"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:fontFamily="?attr/font_family"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:textSize="?attr/font_12"
android:fontFamily="?attr/font_family"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@id/flow_layout_item_post_compact"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/barrier2"
app:layout_constraintBottom_toBottomOf="parent" />
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/flow_layout_item_post_compact" />
<RelativeLayout
android:id="@+id/image_view_wrapper_item_post_compact"
@ -217,8 +211,8 @@
android:layout_marginEnd="16dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/barrier2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/barrier2"
app:layout_constraintTop_toTopOf="parent">
<FrameLayout
@ -229,14 +223,15 @@
android:id="@+id/image_view_item_post_compact"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/thumbnail_compact_layout_rounded_edge"
android:scaleType="center" />
<ImageView
android:id="@+id/play_button_image_view_item_post_compact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_gravity="center"
android:layout_margin="0dp"
android:background="@drawable/play_button_round_background"
android:src="@drawable/ic_play_circle_36dp"
android:visibility="gone" />
@ -252,26 +247,34 @@
</RelativeLayout>
<FrameLayout
android:id="@+id/frame_layout_image_view_no_preview_link_item_post_compact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:visibility="gone"
android:background="@drawable/thumbnail_compact_layout_rounded_edge"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/barrier2"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/image_view_no_preview_link_item_post_compact"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_marginEnd="16dp"
android:scaleType="center"
android:src="@drawable/ic_link"
android:tint="@android:color/tab_indicator_text"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/barrier2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:tint="@android:color/tab_indicator_text" />
</FrameLayout>
<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="start"
app:constraint_referenced_ids="image_view_wrapper_item_post_compact,image_view_no_preview_link_item_post_compact" />
app:constraint_referenced_ids="image_view_wrapper_item_post_compact,frame_layout_image_view_no_preview_link_item_post_compact" />
</androidx.constraintlayout.widget.ConstraintLayout>
@ -287,10 +290,10 @@
android:background="?actionBarItemBackground"
android:clickable="true"
android:focusable="true"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="12dp"
android:paddingTop="8dp"
android:paddingEnd="12dp"
android:paddingBottom="8dp"
android:src="@drawable/ic_arrow_upward_grey_24dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -300,10 +303,10 @@
android:id="@+id/score_text_view_item_post_compact"
android:layout_width="64dp"
android:layout_height="wrap_content"
android:fontFamily="?attr/font_family"
android:gravity="center"
android:textSize="?attr/font_12"
android:textStyle="bold"
android:fontFamily="?attr/font_family"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/plus_button_item_post_compact"
app:layout_constraintTop_toTopOf="parent" />
@ -315,10 +318,10 @@
android:background="?actionBarItemBackground"
android:clickable="true"
android:focusable="true"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="12dp"
android:paddingTop="8dp"
android:paddingEnd="12dp"
android:paddingBottom="8dp"
android:src="@drawable/ic_arrow_downward_grey_24dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/score_text_view_item_post_compact"
@ -330,14 +333,14 @@
android:layout_height="wrap_content"
android:drawableStart="@drawable/ic_comment_grey_24dp"
android:drawablePadding="12dp"
android:fontFamily="?attr/font_family"
android:gravity="center_vertical"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="12dp"
android:paddingTop="8dp"
android:paddingEnd="12dp"
android:paddingBottom="8dp"
android:textSize="?attr/font_12"
android:textStyle="bold"
android:fontFamily="?attr/font_family"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/minus_button_item_post_compact"
app:layout_constraintTop_toTopOf="parent" />
@ -349,10 +352,10 @@
android:background="?actionBarItemBackground"
android:clickable="true"
android:focusable="true"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="12dp"
android:paddingTop="8dp"
android:paddingEnd="12dp"
android:paddingBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/share_button_item_post_compact"
app:layout_constraintHorizontal_bias="1"
@ -366,10 +369,10 @@
android:background="?actionBarItemBackground"
android:clickable="true"
android:focusable="true"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="12dp"
android:paddingTop="8dp"
android:paddingEnd="12dp"
android:paddingBottom="8dp"
android:src="@drawable/ic_share_grey_24dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@ -382,6 +385,4 @@
android:layout_width="match_parent"
android:layout_height="1dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>