Allow to display video previews separately of image previews

This commit is contained in:
stom79 2018-11-14 15:42:26 +01:00
parent fb93823d16
commit 55d789085d
6 changed files with 35 additions and 6 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -174,6 +174,12 @@
android:text="@string/set_display_card"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/set_display_video_preview"
android:layout_width="wrap_content"
android:text="@string/set_display_video_preview"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/set_old_direct_timeline"
android:layout_width="wrap_content"

View File

@ -174,6 +174,12 @@
android:text="@string/set_display_card"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/set_display_video_preview"
android:layout_width="wrap_content"
android:text="@string/set_display_video_preview"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/set_old_direct_timeline"
android:layout_width="wrap_content"

View File

@ -658,6 +658,7 @@
<string name="set_display_card">Display previews in all toots</string>
<string name="thanks_text_ux">New UX/UI designer</string>
<string name="set_old_direct_timeline">Use the direct timeline prior to Mastodon 2.6</string>
<string name="set_display_video_preview">Display video previews</string>
<string-array name="filter_expire">
<item>Never</item>