From 1eb1562dfd018fc46947558d925bb3f30efcc805 Mon Sep 17 00:00:00 2001 From: scria1000 <91804886+scria1000@users.noreply.github.com> Date: Sun, 28 Nov 2021 19:15:47 +0300 Subject: [PATCH] Adjust caption layout Set caption max length Set link ellipsis --- .../PostDetailRecyclerViewAdapter.java | 44 ++--- .../ViewRedditGalleryImageOrGifFragment.java | 40 +++-- ...gment_view_reddit_gallery_image_or_gif.xml | 50 +++--- .../res/layout/item_post_detail_gallery.xml | 152 +++++++++--------- 4 files changed, 154 insertions(+), 132 deletions(-) diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java index 5ab227a1..17bd2e8a 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java @@ -768,26 +768,9 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter previews) { Post.Preview preview; diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryImageOrGifFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryImageOrGifFragment.java index 97330c13..df3d88ae 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryImageOrGifFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryImageOrGifFragment.java @@ -201,20 +201,12 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment { bottomAppBar.setVisibility(View.VISIBLE); } } else { - activity.getWindow().getDecorView().setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_STABLE - | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_FULLSCREEN - | View.SYSTEM_UI_FLAG_IMMERSIVE); - isActionBarHidden = true; - if (activity.isUseBottomAppBar() || isUseBottomCaption) { - bottomAppBar.setVisibility(View.GONE); - } + hideAppBar(); } }); + captionLayout.setOnClickListener(view -> hideAppBar()); + errorLinearLayout.setOnClickListener(view -> { progressBar.setVisibility(View.VISIBLE); errorLinearLayout.setVisibility(View.GONE); @@ -268,6 +260,7 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment { if (!captionIsEmpty) { captionTextView.setVisibility(View.VISIBLE); captionTextView.setText(caption); + captionTextView.setOnClickListener(view -> hideAppBar()); captionTextView.setOnLongClickListener(view -> { if (activity != null && !activity.isDestroyed() @@ -284,12 +277,19 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment { }); } if (!captionUrlIsEmpty) { - captionUrlTextView.setText(captionUrl); + String scheme = Uri.parse(captionUrl).getScheme(); + String urlWithoutScheme = ""; + if(!TextUtils.isEmpty(scheme)){ + urlWithoutScheme = captionUrl.substring(scheme.length() + 3); + } + + captionUrlTextView.setText(TextUtils.isEmpty(urlWithoutScheme) ? captionUrl : urlWithoutScheme); + BetterLinkMovementMethod.linkify(Linkify.WEB_URLS, captionUrlTextView).setOnLinkLongClickListener((textView, url) -> { if (activity != null && !activity.isDestroyed() && !activity.isFinishing()) { UrlMenuBottomSheetFragment urlMenuBottomSheetFragment = new UrlMenuBottomSheetFragment(); Bundle bundle = new Bundle(); - bundle.putString(UrlMenuBottomSheetFragment.EXTRA_URL, url); + bundle.putString(UrlMenuBottomSheetFragment.EXTRA_URL, captionUrl); urlMenuBottomSheetFragment.setArguments(bundle); urlMenuBottomSheetFragment.show(activity.getSupportFragmentManager(), urlMenuBottomSheetFragment.getTag()); } @@ -302,6 +302,20 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment { return rootView; } + private void hideAppBar() { + activity.getWindow().getDecorView().setSystemUiVisibility( + View.SYSTEM_UI_FLAG_LAYOUT_STABLE + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_FULLSCREEN + | View.SYSTEM_UI_FLAG_IMMERSIVE); + isActionBarHidden = true; + if (activity.isUseBottomAppBar() || isUseBottomCaption) { + bottomAppBar.setVisibility(View.GONE); + } + } + private void loadImage() { imageView.showImage(Uri.parse(media.url)); } diff --git a/app/src/main/res/layout/fragment_view_reddit_gallery_image_or_gif.xml b/app/src/main/res/layout/fragment_view_reddit_gallery_image_or_gif.xml index 54d64069..4cfdf858 100644 --- a/app/src/main/res/layout/fragment_view_reddit_gallery_image_or_gif.xml +++ b/app/src/main/res/layout/fragment_view_reddit_gallery_image_or_gif.xml @@ -1,7 +1,7 @@ + android:textColor="@android:color/white" + android:textSize="?attr/font_default" /> + android:visibility="gone"> + android:paddingTop="8dp" + android:visibility="gone"> @@ -80,7 +80,7 @@ android:layout_weight="1" android:ellipsize="end" android:fontFamily="?attr/content_font_family" - android:gravity="center_vertical" + android:maxLength="180" android:textColor="#FFFFFF" android:textColorLink="#FFFFFF" android:textSize="?attr/content_font_default" @@ -97,41 +97,41 @@ android:id="@+id/title_text_view_view_reddit_gallery_image_or_gif_fragment" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_weight="1" android:layout_gravity="center_vertical" + android:layout_weight="1" + android:ellipsize="end" + android:fontFamily="?attr/font_family" android:gravity="center_vertical" + android:maxLines="1" android:paddingTop="8dp" android:paddingBottom="8dp" android:textColor="#FFFFFF" - android:textSize="?attr/font_20" - android:fontFamily="?attr/font_family" - android:maxLines="1" - android:ellipsize="end" /> + android:textSize="?attr/font_20" /> + android:src="@drawable/ic_file_download_toolbar_white_24dp" /> + android:src="@drawable/ic_share_toolbar_white_24dp" /> + android:src="@drawable/ic_wallpaper_white_24dp" /> diff --git a/app/src/main/res/layout/item_post_detail_gallery.xml b/app/src/main/res/layout/item_post_detail_gallery.xml index e9044418..0cf6a484 100644 --- a/app/src/main/res/layout/item_post_detail_gallery.xml +++ b/app/src/main/res/layout/item_post_detail_gallery.xml @@ -1,11 +1,11 @@ + android:background="?attr/cardViewBackgroundColor" + android:orientation="vertical"> + app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_gallery" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_gallery" + app:layout_constraintTop_toBottomOf="@+id/subreddit_text_view_item_post_detail_gallery" /> + android:textSize="?attr/title_font_18" /> @@ -129,10 +129,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:text="@string/spoiler" - android:textSize="?attr/font_12" android:fontFamily="?attr/font_family" android:padding="4dp" + android:text="@string/spoiler" + android:textSize="?attr/font_12" android:visibility="gone" app:lib_setRadius="6dp" app:lib_setRoundedView="true" @@ -142,10 +142,10 @@ android:id="@+id/nsfw_text_view_item_post_detail_gallery" 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_12" - android:fontFamily="?attr/font_family" android:visibility="gone" app:lib_setRadius="6dp" app:lib_setRoundedView="true" @@ -156,9 +156,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_12" - android:fontFamily="?attr/font_family" android:visibility="gone" app:lib_setRadius="6dp" app:lib_setRoundedView="true" @@ -168,8 +168,8 @@ android:id="@+id/upvote_ratio_text_view_item_post_detail_gallery" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textSize="?attr/font_12" - android:fontFamily="?attr/font_family" /> + android:fontFamily="?attr/font_family" + android:textSize="?attr/font_12" /> @@ -223,10 +223,10 @@ android:id="@+id/video_or_gif_indicator_image_view_item_post_detail" android:layout_width="36dp" android:layout_height="36dp" - android:layout_margin="16dp" android:layout_gravity="start" - android:scaleType="center" + android:layout_margin="16dp" android:background="@drawable/play_button_round_background" + android:scaleType="center" android:src="@drawable/ic_gallery_24dp" /> @@ -247,12 +247,12 @@ android:id="@+id/load_image_error_text_view_item_post_detail_gallery" android:layout_width="match_parent" android:layout_height="wrap_content" - android:drawableTop="@drawable/ic_error_outline_black_24dp" android:layout_centerInParent="true" + android:drawableTop="@drawable/ic_error_outline_black_24dp" + android:fontFamily="?attr/font_family" android:gravity="center" android:text="@string/error_loading_image_tap_to_retry" android:textSize="?attr/font_default" - android:fontFamily="?attr/font_family" android:visibility="gone" /> @@ -279,42 +279,44 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:ellipsize="marquee" + android:focusable="true" + android:focusableInTouchMode="true" android:fontFamily="?attr/content_font_family" android:gravity="start" android:marqueeRepeatLimit="marquee_forever" - android:paddingLeft="8dp" - android:paddingRight="8dp" - android:singleLine="true" + android:paddingHorizontal="8dp" android:scrollHorizontally="true" - android:focusable="true" - android:focusableInTouchMode="true" + android:singleLine="true" android:textColor="?attr/primaryTextColor" android:textSize="?attr/content_font_default" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toStartOf="@id/guideline4" + app:layout_constraintEnd_toStartOf="@id/caption_url_text_view_item_post_detail_gallery" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -322,89 +324,89 @@ + android:layout_height="wrap_content"> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintStart_toEndOf="@id/plus_button_item_post_detail_gallery" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintStart_toEndOf="@id/score_text_view_item_post_detail_gallery" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintStart_toEndOf="@id/minus_button_item_post_detail_gallery" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" />