Changes the NSFW button to a "hide media" icon in the composer. This is inspired in part by the upstream change tootsuite/mastodon#2696. But also NSFW was never a good description of this function.

main
Vavassor 8 years ago
parent 9d78808bf3
commit 3f861084bf
  1. 33
      app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java
  2. 7
      app/src/main/res/drawable/ic_hide_media_24dp.xml
  3. 15
      app/src/main/res/layout/activity_compose.xml
  4. 4
      app/src/main/res/values/attrs.xml
  5. 2
      app/src/main/res/values/strings.xml
  6. 8
      app/src/main/res/values/styles.xml

@ -145,8 +145,8 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
ImageButton pickBtn; ImageButton pickBtn;
@BindView(R.id.compose_photo_take) @BindView(R.id.compose_photo_take)
ImageButton takeBtn; ImageButton takeBtn;
@BindView(R.id.action_toggle_nsfw) @BindView(R.id.action_hide_media)
Button nsfwBtn; ImageButton hideMediaToggle;
@BindView(R.id.postProgress) @BindView(R.id.postProgress)
ProgressBar postProgress; ProgressBar postProgress;
@BindView(R.id.action_toggle_visibility) @BindView(R.id.action_toggle_visibility)
@ -209,10 +209,10 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
initiateCameraApp(); initiateCameraApp();
} }
}); });
nsfwBtn.setOnClickListener(new View.OnClickListener() { hideMediaToggle.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
toggleNsfw(); toggleHideMedia();
} }
}); });
visibilityBtn.setOnClickListener(new View.OnClickListener() { visibilityBtn.setOnClickListener(new View.OnClickListener() {
@ -293,7 +293,7 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
// After the starting state is finalised, the interface can be set to reflect this state. // After the starting state is finalised, the interface can be set to reflect this state.
setStatusVisibility(startingVisibility); setStatusVisibility(startingVisibility);
postProgress.setVisibility(View.INVISIBLE); postProgress.setVisibility(View.INVISIBLE);
updateNsfwButtonColor(); updateHideMediaToggleColor();
final ParserUtils parser = new ParserUtils(this); final ParserUtils parser = new ParserUtils(this);
@ -456,25 +456,25 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
Snackbar.make(findViewById(R.id.activity_compose), stringId, Snackbar.LENGTH_LONG).show(); Snackbar.make(findViewById(R.id.activity_compose), stringId, Snackbar.LENGTH_LONG).show();
} }
private void toggleNsfw() { private void toggleHideMedia() {
statusMarkSensitive = !statusMarkSensitive; statusMarkSensitive = !statusMarkSensitive;
updateNsfwButtonColor(); updateHideMediaToggleColor();
} }
private void updateNsfwButtonColor() { private void updateHideMediaToggleColor() {
@AttrRes int attribute; @AttrRes int attribute;
if (statusMarkSensitive) { if (statusMarkSensitive) {
attribute = R.attr.compose_nsfw_button_selected_color; attribute = R.attr.compose_hide_media_button_selected_color;
} else { } else {
attribute = R.attr.compose_nsfw_button_color; attribute = R.attr.compose_hide_media_button_color;
} }
nsfwBtn.setTextColor(ThemeUtils.getColor(this, attribute)); ThemeUtils.setDrawableTint(this, hideMediaToggle.getDrawable(), attribute);
} }
private void disableButtons() { private void disableButtons() {
pickBtn.setClickable(false); pickBtn.setClickable(false);
takeBtn.setClickable(false); takeBtn.setClickable(false);
nsfwBtn.setClickable(false); hideMediaToggle.setClickable(false);
visibilityBtn.setClickable(false); visibilityBtn.setClickable(false);
floatingBtn.setEnabled(false); floatingBtn.setEnabled(false);
} }
@ -482,7 +482,7 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
private void enableButtons() { private void enableButtons() {
pickBtn.setClickable(true); pickBtn.setClickable(true);
takeBtn.setClickable(true); takeBtn.setClickable(true);
nsfwBtn.setClickable(true); hideMediaToggle.setClickable(true);
visibilityBtn.setClickable(true); visibilityBtn.setClickable(true);
floatingBtn.setEnabled(true); floatingBtn.setEnabled(true);
} }
@ -1168,13 +1168,14 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
if (!showMarkSensitive) { if (!showMarkSensitive) {
statusMarkSensitive = false; statusMarkSensitive = false;
nsfwBtn.setTextColor(ThemeUtils.getColor(this, R.attr.compose_nsfw_button_color)); ThemeUtils.setDrawableTint(this, hideMediaToggle.getDrawable(),
R.attr.compose_hide_media_button_color);
} }
if (show) { if (show) {
nsfwBtn.setVisibility(View.VISIBLE); hideMediaToggle.setVisibility(View.VISIBLE);
} else { } else {
nsfwBtn.setVisibility(View.GONE); hideMediaToggle.setVisibility(View.GONE);
} }
} }

@ -0,0 +1,7 @@
<vector android:height="24dp" android:viewportHeight="35.43307"
android:viewportWidth="35.43307" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillAlpha="1" android:fillColor="#ffffff"
android:pathData="M4.99,5.56L2.99,7.56L7.55,12.13A17.72,17.72 0,0 0,2.4 17.71A17.72,17.72 0,0 0,17.72 26.57A17.72,17.72 0,0 0,21.56 26.13L26.79,31.37L28.79,29.36L4.99,5.56zM17.72,8.86A17.72,17.72 0,0 0,12.95 9.53L15.26,11.84A6.38,6.38 0,0 1,17.72 11.34A6.38,6.38 0,0 1,24.09 17.72A6.38,6.38 0,0 1,23.6 20.18L27.21,23.78A17.72,17.72 0,0 0,33.04 17.72A17.72,17.72 0,0 0,17.72 8.86zM17.72,14.17A3.54,3.54 0,0 0,17.6 14.18L21.26,17.83A3.54,3.54 0,0 0,21.26 17.72A3.54,3.54 0,0 0,17.72 14.17zM11.55,16.13L14.41,18.99A3.54,3.54 0,0 0,16.45 21.03L19.31,23.88A6.38,6.38 0,0 1,17.72 24.09A6.38,6.38 0,0 1,11.34 17.72A6.38,6.38 0,0 1,11.55 16.13z"
android:strokeAlpha="1" android:strokeColor="#00000000"
android:strokeLineCap="square" android:strokeLineJoin="miter" android:strokeWidth="2.65748024"/>
</vector>

@ -127,17 +127,16 @@
app:srcCompat="@drawable/ic_public_24dp" app:srcCompat="@drawable/ic_public_24dp"
android:contentDescription="@string/action_compose_options" /> android:contentDescription="@string/action_compose_options" />
<Button <ImageButton
android:id="@+id/action_toggle_nsfw" android:id="@+id/action_hide_media"
style="?attr/image_button_style" style="?attr/image_button_style"
android:layout_width="wrap_content" android:layout_width="32dp"
android:layout_height="wrap_content" android:layout_height="32dp"
android:minWidth="0dp"
android:paddingLeft="8dp" android:paddingLeft="8dp"
android:paddingRight="8dp" android:paddingRight="8dp"
android:visibility="gone" app:srcCompat="@drawable/ic_hide_media_24dp"
android:textColor="?attr/compose_nsfw_button_color" android:contentDescription="@string/action_hide_media"
android:text="@string/toggle_nsfw" /> android:visibility="gone" />
<android.support.v4.widget.Space <android.support.v4.widget.Space
android:layout_width="0dp" android:layout_width="0dp"

@ -35,8 +35,8 @@
<attr name="compose_media_button_disabled_tint" format="reference|color" /> <attr name="compose_media_button_disabled_tint" format="reference|color" />
<attr name="compose_mention_color" format="reference|color" /> <attr name="compose_mention_color" format="reference|color" />
<attr name="compose_content_warning_bar_background" format="reference" /> <attr name="compose_content_warning_bar_background" format="reference" />
<attr name="compose_nsfw_button_color" format="reference|color" /> <attr name="compose_hide_media_button_color" format="reference|color" />
<attr name="compose_nsfw_button_selected_color" format="reference|color" /> <attr name="compose_hide_media_button_selected_color" format="reference|color" />
<attr name="compose_image_button_tint" format="reference|color" /> <attr name="compose_image_button_tint" format="reference|color" />
<attr name="report_status_background_color" format="reference|color" /> <attr name="report_status_background_color" format="reference|color" />
<attr name="report_status_divider_drawable" format="reference" /> <attr name="report_status_divider_drawable" format="reference" />

@ -91,7 +91,7 @@
<string name="action_mute">Mute</string> <string name="action_mute">Mute</string>
<string name="action_unmute">Unmute</string> <string name="action_unmute">Unmute</string>
<string name="action_mention">Mention</string> <string name="action_mention">Mention</string>
<string name="toggle_nsfw">NSFW</string> <string name="action_hide_media">Hide media</string>
<string name="action_compose_options">Options</string> <string name="action_compose_options">Options</string>
<string name="action_open_drawer">Open drawer</string> <string name="action_open_drawer">Open drawer</string>
<string name="action_clear">Clear</string> <string name="action_clear">Clear</string>

@ -65,8 +65,8 @@
<item name="compose_media_button_disabled_tint">@color/compose_media_button_disabled_dark</item> <item name="compose_media_button_disabled_tint">@color/compose_media_button_disabled_dark</item>
<item name="compose_mention_color">@color/color_accent_dark</item> <item name="compose_mention_color">@color/color_accent_dark</item>
<item name="compose_content_warning_bar_background">@drawable/border_background_dark</item> <item name="compose_content_warning_bar_background">@drawable/border_background_dark</item>
<item name="compose_nsfw_button_color">@color/image_button_dark</item> <item name="compose_hide_media_button_color">@color/image_button_dark</item>
<item name="compose_nsfw_button_selected_color">@color/color_accent_dark</item> <item name="compose_hide_media_button_selected_color">@color/color_accent_dark</item>
<item name="compose_image_button_tint">@color/image_button_dark</item> <item name="compose_image_button_tint">@color/image_button_dark</item>
<item name="report_status_background_color">@color/color_background_dark</item> <item name="report_status_background_color">@color/color_background_dark</item>
<item name="report_status_divider_drawable">@drawable/status_divider_dark</item> <item name="report_status_divider_drawable">@drawable/status_divider_dark</item>
@ -142,8 +142,8 @@
<item name="compose_media_button_disabled_tint">@color/compose_media_button_disabled_light</item> <item name="compose_media_button_disabled_tint">@color/compose_media_button_disabled_light</item>
<item name="compose_mention_color">@color/compose_mention_light</item> <item name="compose_mention_color">@color/compose_mention_light</item>
<item name="compose_content_warning_bar_background">@drawable/border_background_light</item> <item name="compose_content_warning_bar_background">@drawable/border_background_light</item>
<item name="compose_nsfw_button_color">@color/image_button_light</item> <item name="compose_hide_media_button_color">@color/image_button_light</item>
<item name="compose_nsfw_button_selected_color">@color/color_accent_light</item> <item name="compose_hide_media_button_selected_color">@color/color_accent_light</item>
<item name="compose_image_button_tint">@color/image_button_light</item> <item name="compose_image_button_tint">@color/image_button_light</item>
<item name="report_status_background_color">@color/report_status_background_light</item> <item name="report_status_background_color">@color/report_status_background_light</item>
<item name="report_status_divider_drawable">@drawable/report_status_divider_light</item> <item name="report_status_divider_drawable">@drawable/report_status_divider_light</item>

Loading…
Cancel
Save