diff options
author | scria1000 <91804886+scria1000@users.noreply.github.com> | 2021-11-28 16:15:47 +0000 |
---|---|---|
committer | scria1000 <91804886+scria1000@users.noreply.github.com> | 2021-11-28 16:15:47 +0000 |
commit | 1eb1562dfd018fc46947558d925bb3f30efcc805 (patch) | |
tree | cbbabb6636c0e8958ec504b37106a26c2f5b6572 /app/src/main/java | |
parent | fa772c1d20731b8d474bec78f131dea02b53dd8c (diff) | |
download | infinity-for-reddit-1eb1562dfd018fc46947558d925bb3f30efcc805.tar infinity-for-reddit-1eb1562dfd018fc46947558d925bb3f30efcc805.tar.gz infinity-for-reddit-1eb1562dfd018fc46947558d925bb3f30efcc805.tar.bz2 infinity-for-reddit-1eb1562dfd018fc46947558d925bb3f30efcc805.tar.lz infinity-for-reddit-1eb1562dfd018fc46947558d925bb3f30efcc805.tar.xz infinity-for-reddit-1eb1562dfd018fc46947558d925bb3f30efcc805.tar.zst infinity-for-reddit-1eb1562dfd018fc46947558d925bb3f30efcc805.zip |
Adjust caption layout
Set caption max length
Set link ellipsis
Diffstat (limited to 'app/src/main/java')
2 files changed, 52 insertions, 32 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<Recycler ((PostDetailGalleryViewHolder) holder).mImageView .setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth()); - String previewCaption = preview.getPreviewCaption(); - String previewCaptionUrl = preview.getPreviewCaptionUrl(); - boolean previewCaptionIsEmpty = android.text.TextUtils.isEmpty(previewCaption); - boolean previewCaptionUrlIsEmpty = android.text.TextUtils.isEmpty(previewCaptionUrl); - if (!previewCaptionIsEmpty || !previewCaptionUrlIsEmpty) { - ((PostDetailGalleryViewHolder) holder).mCaptionConstraintLayout.setBackgroundColor(mCardViewColor & 0x0D000000); // Make 10% darker than CardViewColor - ((PostDetailGalleryViewHolder) holder).mCaptionConstraintLayout.setVisibility(View.VISIBLE); - } - if (!previewCaptionIsEmpty) { - ((PostDetailGalleryViewHolder) holder).mCaption.setTextColor(mCommentColor); - ((PostDetailGalleryViewHolder) holder).mCaption.setText(previewCaption); - ((PostDetailGalleryViewHolder) holder).mCaption.setSelected(true); - } - if (!previewCaptionUrlIsEmpty) { - String domain = Uri.parse(previewCaptionUrl).getHost(); - domain = domain.startsWith("www.") ? domain.substring(4) : domain; - mPostDetailMarkwon.setMarkdown(((PostDetailGalleryViewHolder) holder).mCaptionUrl, String.format("[%s](%s)", domain, previewCaptionUrl)); - } - loadImage((PostDetailGalleryViewHolder) holder, preview); + + loadCaptionPreview((PostDetailGalleryViewHolder) holder, preview); } else { ((PostDetailGalleryViewHolder) holder).mNoPreviewPostTypeImageView.setVisibility(View.VISIBLE); } @@ -814,6 +797,29 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler } } + private void loadCaptionPreview(PostDetailBaseViewHolder holder, Post.Preview preview) { + if (holder instanceof PostDetailGalleryViewHolder) { + String previewCaption = preview.getPreviewCaption(); + String previewCaptionUrl = preview.getPreviewCaptionUrl(); + boolean previewCaptionIsEmpty = android.text.TextUtils.isEmpty(previewCaption); + boolean previewCaptionUrlIsEmpty = android.text.TextUtils.isEmpty(previewCaptionUrl); + if (!previewCaptionIsEmpty || !previewCaptionUrlIsEmpty) { + ((PostDetailGalleryViewHolder) holder).mCaptionConstraintLayout.setBackgroundColor(mCardViewColor & 0x0D000000); // Make 10% darker than CardViewColor + ((PostDetailGalleryViewHolder) holder).mCaptionConstraintLayout.setVisibility(View.VISIBLE); + } + if (!previewCaptionIsEmpty) { + ((PostDetailGalleryViewHolder) holder).mCaption.setTextColor(mCommentColor); + ((PostDetailGalleryViewHolder) holder).mCaption.setText(previewCaption); + ((PostDetailGalleryViewHolder) holder).mCaption.setSelected(true); + } + if (!previewCaptionUrlIsEmpty) { + String domain = Uri.parse(previewCaptionUrl).getHost(); + domain = domain.startsWith("www.") ? domain.substring(4) : domain; + mPostDetailMarkwon.setMarkdown(((PostDetailGalleryViewHolder) holder).mCaptionUrl, String.format("[%s](%s)", domain, previewCaptionUrl)); + } + } + } + @Nullable private Post.Preview getSuitablePreview(ArrayList<Post.Preview> 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)); } |