From 55d789085d596cfa2fe5187c0f054d9d9438a152 Mon Sep 17 00:00:00 2001 From: stom79 Date: Wed, 14 Nov 2018 15:42:26 +0100 Subject: [PATCH] Allow to display video previews separately of image previews --- .../etalab/mastodon/drawers/StatusListAdapter.java | 14 ++++++++------ .../mastodon/fragments/SettingsFragment.java | 13 +++++++++++++ .../fr/gouv/etalab/mastodon/helper/Helper.java | 1 + .../main/res/layout-sw600dp/fragment_settings.xml | 6 ++++++ app/src/main/res/layout/fragment_settings.xml | 6 ++++++ app/src/main/res/values/strings.xml | 1 + 6 files changed, 35 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java index f0aa9c4c3..b1ea8329f 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java @@ -1205,13 +1205,15 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct holder.status_cardview_video.setVisibility(View.GONE); holder.webview_preview.setVisibility(View.VISIBLE); } - if( type == RetrieveFeedsAsyncTask.Type.CONTEXT || display_card){ + boolean display_video_preview = sharedpreferences.getBoolean(Helper.SET_DISPLAY_VIDEO_PREVIEWS, true); + if( type == RetrieveFeedsAsyncTask.Type.CONTEXT || display_card || display_video_preview){ if( type == RetrieveFeedsAsyncTask.Type.CONTEXT) holder.status_cardview_content.setVisibility(View.VISIBLE); else holder.status_cardview_content.setVisibility(View.GONE); - if( position == conversationPosition || display_card){ + + if( position == conversationPosition || display_card || display_video_preview){ Card card = status.getReblog()!= null?status.getReblog().getCard():status.getCard(); if( card != null){ @@ -1228,7 +1230,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct .into(holder.status_cardview_image); }else holder.status_cardview_image.setVisibility(View.GONE); - if( !card.getType().equals("video")) { + if( !card.getType().equals("video") && display_card) { holder.status_cardview.setVisibility(View.VISIBLE); holder.status_cardview_video.setVisibility(View.GONE); holder.status_cardview.setOnClickListener(new View.OnClickListener() { @@ -1237,7 +1239,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct Helper.openBrowser(context, card.getUrl()); } }); - }else { + }else if(card.getType().equals("video") && display_video_preview){ Glide.with(holder.status_cardview_image.getContext()) .load(card.getImage()) .apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners(10))) @@ -1247,9 +1249,9 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct holder.status_cardview_webview.getSettings().setJavaScriptEnabled(true); String html = card.getHtml(); String src = card.getUrl(); - if( html != null){ + if (html != null) { Matcher matcher = Pattern.compile("src=\"([^\"]+)\"").matcher(html); - if( matcher.find()) + if (matcher.find()) src = matcher.group(1); } final String finalSrc = src; diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java index d93082b9a..11b5a3510 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java @@ -128,6 +128,19 @@ public class SettingsFragment extends Fragment { } }); + boolean display_video_preview = sharedpreferences.getBoolean(Helper.SET_DISPLAY_VIDEO_PREVIEWS, true); + final CheckBox set_display_video_preview = rootView.findViewById(R.id.set_display_video_preview); + set_display_video_preview.setChecked(display_video_preview); + + set_display_video_preview.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + SharedPreferences.Editor editor = sharedpreferences.edit(); + editor.putBoolean(Helper.SET_DISPLAY_VIDEO_PREVIEWS, set_display_video_preview.isChecked()); + editor.apply(); + } + }); + boolean notif_validation = sharedpreferences.getBoolean(Helper.SET_NOTIF_VALIDATION, true); final CheckBox set_share_validation = rootView.findViewById(R.id.set_share_validation); diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java index b11c5a086..054bf0880 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java @@ -277,6 +277,7 @@ public class Helper { public static final String SET_KEEP_BACKGROUND_PROCESS = "set_keep_background_process"; public static final String SET_DISPLAY_EMOJI = "set_display_emoji"; public static final String SET_DISPLAY_CARD = "set_display_card"; + public static final String SET_DISPLAY_VIDEO_PREVIEWS= "set_display_video_previews"; public static final String SET_OLD_DIRECT_TIMELINE = "sset_old_direct_timeline"; public static final int S_512KO = 1; public static final int S_1MO = 2; diff --git a/app/src/main/res/layout-sw600dp/fragment_settings.xml b/app/src/main/res/layout-sw600dp/fragment_settings.xml index a7a71a48d..2e257acdf 100644 --- a/app/src/main/res/layout-sw600dp/fragment_settings.xml +++ b/app/src/main/res/layout-sw600dp/fragment_settings.xml @@ -174,6 +174,12 @@ android:text="@string/set_display_card" android:layout_height="wrap_content" /> + + + + Display previews in all toots New UX/UI designer Use the direct timeline prior to Mastodon 2.6 + Display video previews Never