mirror of
https://codeberg.org/tom79/Fedilab.git
synced 2025-12-25 00:00:19 +02:00
Add options to hide 'sensitive content' and 'media description' indicators
(close #925)
This commit is contained in:
parent
79f8a0744b
commit
7fdb7b3ee6
3 changed files with 59 additions and 21 deletions
|
|
@ -260,6 +260,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
private static boolean autoplaygif;
|
||||
private static int video_cache;
|
||||
private static int timeout;
|
||||
private static boolean sensitiveIndicator;
|
||||
private static boolean mediaDescriptionIndicator;
|
||||
|
||||
private static int iconSize;
|
||||
private static int dp6;
|
||||
|
|
@ -1974,10 +1976,14 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
context.startActivity(mediaIntent, options.toBundle());
|
||||
});
|
||||
});
|
||||
layoutMediaBinding.viewHide.setOnClickListener(v -> {
|
||||
statusToDeal.sensitive = !statusToDeal.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
});
|
||||
if (sensitiveIndicator) {
|
||||
layoutMediaBinding.viewHide.setOnClickListener(v -> {
|
||||
statusToDeal.sensitive = !statusToDeal.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
});
|
||||
} else {
|
||||
layoutMediaBinding.viewHide.setVisibility(View.GONE);
|
||||
}
|
||||
ViewCompat.addAccessibilityAction(
|
||||
layoutMediaBinding.mediaVideo,
|
||||
context.getString(statusToDeal.sensitive ? R.string.cd_show_media : R.string.cd_hide_media),
|
||||
|
|
@ -2062,10 +2068,14 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
context.startActivity(mediaIntent, options.toBundle());
|
||||
});
|
||||
});
|
||||
layoutMediaBinding.viewHide.setOnClickListener(v -> {
|
||||
statusToDeal.sensitive = !statusToDeal.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
});
|
||||
if (sensitiveIndicator) {
|
||||
layoutMediaBinding.viewHide.setOnClickListener(v -> {
|
||||
statusToDeal.sensitive = !statusToDeal.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
});
|
||||
} else {
|
||||
layoutMediaBinding.viewHide.setVisibility(View.GONE);
|
||||
}
|
||||
ViewCompat.addAccessibilityAction(
|
||||
layoutMediaBinding.mediaVideo,
|
||||
context.getString(statusToDeal.sensitive ? R.string.cd_show_media : R.string.cd_hide_media),
|
||||
|
|
@ -3135,24 +3145,34 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
} else {
|
||||
layoutMediaBinding.playMusic.setVisibility(View.GONE);
|
||||
}
|
||||
if (attachment.description != null && !attachment.description.isEmpty()) {
|
||||
if (mediaDescriptionIndicator && (attachment.description != null && !attachment.description.isEmpty())) {
|
||||
layoutMediaBinding.viewDescription.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
layoutMediaBinding.viewDescription.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, attachment, mediaW * ratio, mediaH * ratio, focusX, focusY, statusToDeal.sensitive, false);
|
||||
if (!statusToDeal.sensitive || expand_media) {
|
||||
layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_24);
|
||||
if (sensitiveIndicator) {
|
||||
if (!statusToDeal.sensitive || expand_media) {
|
||||
layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_24);
|
||||
} else {
|
||||
layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_off_24);
|
||||
}
|
||||
|
||||
if (statusToDeal.sensitive) {
|
||||
Helper.changeDrawableColor(context, layoutMediaBinding.viewHide, ThemeHelper.getAttColor(context, R.attr.colorError));
|
||||
} else {
|
||||
Helper.changeDrawableColor(context, layoutMediaBinding.viewHide, R.color.white);
|
||||
}
|
||||
|
||||
layoutMediaBinding.viewHide.setOnClickListener(v -> {
|
||||
statusToDeal.sensitive = !statusToDeal.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
});
|
||||
} else {
|
||||
layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_off_24);
|
||||
layoutMediaBinding.viewHide.setVisibility(View.GONE);
|
||||
}
|
||||
requestBuilder.load(attachment.preview_url).into(layoutMediaBinding.media);
|
||||
if (statusToDeal.sensitive) {
|
||||
Helper.changeDrawableColor(context, layoutMediaBinding.viewHide, ThemeHelper.getAttColor(context, R.attr.colorError));
|
||||
} else {
|
||||
Helper.changeDrawableColor(context, layoutMediaBinding.viewHide, R.color.white);
|
||||
}
|
||||
|
||||
layoutMediaBinding.media.setOnClickListener(v -> {
|
||||
if (statusToDeal.sensitive && !expand_media) {
|
||||
|
|
@ -3186,10 +3206,6 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
context.startActivity(mediaIntent, options.toBundle());
|
||||
});
|
||||
});
|
||||
layoutMediaBinding.viewHide.setOnClickListener(v -> {
|
||||
statusToDeal.sensitive = !statusToDeal.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
});
|
||||
ViewCompat.addAccessibilityAction(
|
||||
layoutMediaBinding.media,
|
||||
context.getString(statusToDeal.sensitive ? R.string.cd_show_media : R.string.cd_hide_media),
|
||||
|
|
@ -3452,6 +3468,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
video_cache = sharedpreferences.getInt(context.getString(R.string.SET_VIDEO_CACHE), Helper.DEFAULT_VIDEO_CACHE_MB);
|
||||
timeout = sharedpreferences.getInt(context.getString(R.string.SET_NSFW_TIMEOUT), 5);
|
||||
video_cache = sharedpreferences.getInt(context.getString(R.string.SET_VIDEO_CACHE), Helper.DEFAULT_VIDEO_CACHE_MB);
|
||||
sensitiveIndicator = sharedpreferences.getBoolean(context.getString(R.string.SET_SENSITIVE_INDICATOR), true);
|
||||
mediaDescriptionIndicator = sharedpreferences.getBoolean(context.getString(R.string.SET_MEDIA_DESCRIPTION_INDICATOR), true);
|
||||
|
||||
iconSize = (int) (Helper.convertDpToPixel(28, context) * scaleIcon);
|
||||
dp6 = (int) Helper.convertDpToPixel(6, context);
|
||||
|
|
|
|||
|
|
@ -1327,6 +1327,8 @@
|
|||
<string name="SET_DISPLAY_TRANSLATE" translatable="false">SET_DISPLAY_TRANSLATE</string>
|
||||
<string name="SET_TRANSLATE_BUTTON" translatable="false">SET_TRANSLATE_BUTTON</string>
|
||||
<string name="SET_QUOTE_BUTTON" translatable="false">SET_QUOTE_BUTTON</string>
|
||||
<string name="SET_SENSITIVE_INDICATOR" translatable="false">SET_SENSITIVE_INDICATOR</string>
|
||||
<string name="SET_MEDIA_DESCRIPTION_INDICATOR" translatable="false">SET_MEDIA_DESCRIPTION_INDICATOR</string>
|
||||
<string name="SET_POST_FORMAT" translatable="false">SET_POST_FORMAT</string>
|
||||
<string name="SET_COMPOSE_LOCAL_ONLY" translatable="false">SET_COMPOSE_LOCAL_ONLY</string>
|
||||
|
||||
|
|
@ -2134,6 +2136,10 @@
|
|||
<string name="icons_extra_features">Icons for extra features</string>
|
||||
<string name="icons_extra_features_visibility_summary">If your instance does not accept some extra features, you can hide these icons</string>
|
||||
<string name="set_display_quote_indication">Quote button</string>
|
||||
<string name="set_sensitive_indicator">Sensitive indicator</string>
|
||||
<string name="set_sensitive_indicator_summary">Display an indicator for sensitive media</string>
|
||||
<string name="set_media_description_indicator">Media description indicator</string>
|
||||
<string name="set_media_description_indicator_summary">Display an indicator for media with a description</string>
|
||||
<string name="set_display_reaction_indication">Display \"Reactions\" buttons</string>
|
||||
<string name="bubble">Bubble</string>
|
||||
<string name="exclude_visibility">Exclude visibility</string>
|
||||
|
|
|
|||
|
|
@ -156,6 +156,20 @@
|
|||
app:icon="@drawable/ic_baseline_format_quote_24"
|
||||
app:key="@string/SET_QUOTE_BUTTON"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
<SwitchPreferenceCompat
|
||||
app:defaultValue="true"
|
||||
app:icon="@drawable/ic_compose_sensitive"
|
||||
app:key="@string/SET_SENSITIVE_INDICATOR"
|
||||
app:singleLineTitle="false"
|
||||
app:summary="@string/set_sensitive_indicator_summary"
|
||||
app:title="@string/set_sensitive_indicator" />
|
||||
<SwitchPreferenceCompat
|
||||
app:defaultValue="true"
|
||||
app:icon="@drawable/ic_outline_note_alt_24"
|
||||
app:key="@string/SET_MEDIA_DESCRIPTION_INDICATOR"
|
||||
app:singleLineTitle="false"
|
||||
app:summary="@string/set_media_description_indicator_summary"
|
||||
app:title="@string/set_media_description_indicator" />
|
||||
<ListPreference
|
||||
app:defaultValue="FEDILAB"
|
||||
app:dialogTitle="@string/translator"
|
||||
|
|
|
|||
Loading…
Reference in a new issue