diff --git a/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java b/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java index 197447be..c23e876e 100644 --- a/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java +++ b/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java @@ -137,10 +137,11 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm private EditText contentWarningEditor; private TextView charactersLeft; private Button floatingBtn; - private ImageButton pickBtn; private ImageButton takeBtn; - private ImageButton hideMediaToggle; + private ImageButton pickBtn; private ImageButton visibilityBtn; + private ImageButton saveButton; + private ImageButton hideMediaToggle; private ProgressBar postProgress; // this only exists when a status is trying to be sent, but uploads are still occurring private ProgressDialog finishingUploadDialog; @@ -174,10 +175,11 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm contentWarningEditor = (EditText) findViewById(R.id.field_content_warning); charactersLeft = (TextView) findViewById(R.id.characters_left); floatingBtn = (Button) findViewById(R.id.floating_btn); - pickBtn = (ImageButton) findViewById(R.id.compose_photo_pick); takeBtn = (ImageButton) findViewById(R.id.compose_photo_take); - hideMediaToggle = (ImageButton) findViewById(R.id.action_hide_media); + pickBtn = (ImageButton) findViewById(R.id.compose_photo_pick); visibilityBtn = (ImageButton) findViewById(R.id.action_toggle_visibility); + saveButton = (ImageButton) findViewById(R.id.compose_save_draft); + hideMediaToggle = (ImageButton) findViewById(R.id.action_hide_media); postProgress = (ProgressBar) findViewById(R.id.postProgress); // Setup the toolbar. @@ -203,22 +205,13 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm floatingBtn.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { - String contentWarning = null; - if (statusHideText) { - contentWarning = contentWarningEditor.getText().toString(); - } - /* Discard any upload URLs embedded in the text because they'll be re-uploaded when - * the draft is loaded and replaced with new URLs. */ - if (mediaQueued != null) { - for (QueuedMedia item : mediaQueued) { - removeUrlFromEditable(textEditor.getEditableText(), item.uploadUrl); - } - } - boolean b = saveTheToot(textEditor.getText().toString(), contentWarning); - if (b) { - Toast.makeText(ComposeActivity.this, R.string.action_save_one_toot, Toast.LENGTH_SHORT).show(); - } - return b; + return saveDraft(); + } + }); + takeBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + initiateCameraApp(); } }); pickBtn.setOnClickListener(new View.OnClickListener() { @@ -227,22 +220,22 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm onMediaPick(); } }); - takeBtn.setOnClickListener(new View.OnClickListener() { + visibilityBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - initiateCameraApp(); + showComposeOptions(); } }); - hideMediaToggle.setOnClickListener(new View.OnClickListener() { + saveButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - toggleHideMedia(); + saveDraft(); } }); - visibilityBtn.setOnClickListener(new View.OnClickListener() { + hideMediaToggle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - showComposeOptions(); + toggleHideMedia(); } }); @@ -534,21 +527,43 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm } private void disableButtons() { - pickBtn.setClickable(false); takeBtn.setClickable(false); - hideMediaToggle.setClickable(false); + pickBtn.setClickable(false); visibilityBtn.setClickable(false); + saveButton.setClickable(false); + hideMediaToggle.setClickable(false); floatingBtn.setEnabled(false); } private void enableButtons() { - pickBtn.setClickable(true); takeBtn.setClickable(true); - hideMediaToggle.setClickable(true); + pickBtn.setClickable(true); visibilityBtn.setClickable(true); + saveButton.setClickable(true); + hideMediaToggle.setClickable(true); floatingBtn.setEnabled(true); } + private boolean saveDraft() { + String contentWarning = null; + if (statusHideText) { + contentWarning = contentWarningEditor.getText().toString(); + } + /* Discard any upload URLs embedded in the text because they'll be re-uploaded when + * the draft is loaded and replaced with new URLs. */ + if (mediaQueued != null) { + for (QueuedMedia item : mediaQueued) { + removeUrlFromEditable(textEditor.getEditableText(), item.uploadUrl); + } + } + boolean b = saveTheToot(textEditor.getText().toString(), contentWarning); + if (b) { + Toast.makeText(ComposeActivity.this, R.string.action_save_one_toot, Toast.LENGTH_SHORT) + .show(); + } + return b; + } + private static boolean copyToFile(ContentResolver contentResolver, Uri uri, File file) { InputStream from; FileOutputStream to; diff --git a/app/src/main/res/layout/activity_compose.xml b/app/src/main/res/layout/activity_compose.xml index 12782c33..c924c8e1 100644 --- a/app/src/main/res/layout/activity_compose.xml +++ b/app/src/main/res/layout/activity_compose.xml @@ -130,6 +130,16 @@ app:srcCompat="@drawable/ic_public_24dp" android:contentDescription="@string/action_compose_options" /> + +