improve content warning button

* Use the entire content warning text + button as the hitbox for the "Show more/less" toggle

* Move the content warning toggle button to its own line and give it a little more space

* Move content warning elements into parent layout, remove now-superfluous FlowLayout

* Use marginTop/Bottom instead of Vertical, which is only in sdk 26+

* Update minimum width for content warning toggle button
This commit is contained in:
Levi Bard 2018-03-15 19:15:12 +01:00 committed by Konrad Pozniak
commit 043ac58254
7 changed files with 79 additions and 221 deletions

View file

@ -300,7 +300,6 @@ public class NotificationsAdapter extends RecyclerView.Adapter {
private final ViewGroup container;
private final ImageView statusAvatar;
private final ImageView notificationAvatar;
private final View contentWarningBar;
private final TextView contentWarningDescriptionTextView;
private final ToggleButton contentWarningButton;
@ -320,7 +319,6 @@ public class NotificationsAdapter extends RecyclerView.Adapter {
container = itemView.findViewById(R.id.notification_container);
statusAvatar = itemView.findViewById(R.id.notification_status_avatar);
notificationAvatar = itemView.findViewById(R.id.notification_notification_avatar);
contentWarningBar = itemView.findViewById(R.id.notification_content_warning_bar);
contentWarningDescriptionTextView = itemView.findViewById(R.id.notification_content_warning_description);
contentWarningButton = itemView.findViewById(R.id.notification_content_warning_button);
@ -336,7 +334,8 @@ public class NotificationsAdapter extends RecyclerView.Adapter {
private void showNotificationContent(boolean show) {
statusNameBar.setVisibility(show ? View.VISIBLE : View.GONE);
contentWarningBar.setVisibility(show ? View.VISIBLE : View.GONE);
contentWarningDescriptionTextView.setVisibility(show ? View.VISIBLE : View.GONE);
contentWarningButton.setVisibility(show ? View.VISIBLE : View.GONE);
statusContent.setVisibility(show ? View.VISIBLE : View.GONE);
statusAvatar.setVisibility(show ? View.VISIBLE : View.GONE);
notificationAvatar.setVisibility(show ? View.VISIBLE : View.GONE);
@ -417,7 +416,8 @@ public class NotificationsAdapter extends RecyclerView.Adapter {
if (statusViewData != null) {
boolean hasSpoiler = !TextUtils.isEmpty(statusViewData.getSpoilerText());
contentWarningBar.setVisibility(hasSpoiler ? View.VISIBLE : View.GONE);
contentWarningDescriptionTextView.setVisibility(hasSpoiler ? View.VISIBLE : View.GONE);
contentWarningButton.setVisibility(hasSpoiler ? View.VISIBLE : View.GONE);
setupContentAndSpoiler(notificationViewData, listener);
}

View file

@ -58,7 +58,6 @@ abstract class StatusBaseViewHolder extends RecyclerView.ViewHolder {
private TextView sensitiveMediaWarning;
private View sensitiveMediaShow;
private TextView mediaLabel;
private View contentWarningBar;
private TextView contentWarningDescription;
private ToggleButton contentWarningButton;
@ -90,7 +89,6 @@ abstract class StatusBaseViewHolder extends RecyclerView.ViewHolder {
sensitiveMediaWarning = itemView.findViewById(R.id.status_sensitive_media_warning);
sensitiveMediaShow = itemView.findViewById(R.id.status_sensitive_media_button);
mediaLabel = itemView.findViewById(R.id.status_media_label);
contentWarningBar = itemView.findViewById(R.id.status_content_warning_bar);
contentWarningDescription = itemView.findViewById(R.id.status_content_warning_description);
contentWarningButton = itemView.findViewById(R.id.status_content_warning_button);
}
@ -389,7 +387,8 @@ abstract class StatusBaseViewHolder extends RecyclerView.ViewHolder {
CharSequence emojiSpoiler =
CustomEmojiHelper.emojifyString(spoilerText, emojis, contentWarningDescription);
contentWarningDescription.setText(emojiSpoiler);
contentWarningBar.setVisibility(View.VISIBLE);
contentWarningDescription.setVisibility(View.VISIBLE);
contentWarningButton.setVisibility(View.VISIBLE);
contentWarningButton.setChecked(expanded);
contentWarningButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
@ -413,7 +412,8 @@ abstract class StatusBaseViewHolder extends RecyclerView.ViewHolder {
}
private void hideSpoilerText() {
contentWarningBar.setVisibility(View.GONE);
contentWarningDescription.setVisibility(View.GONE);
contentWarningButton.setVisibility(View.GONE);
content.setVisibility(View.VISIBLE);
}