From 33a7e3bfed74ffc9fc2ed41ce7fc4630f231f170 Mon Sep 17 00:00:00 2001 From: Vavassor Date: Thu, 27 Jul 2017 00:56:53 -0400 Subject: [PATCH] Adds save draft button to composer. --- .../keylesspalace/tusky/ComposeActivity.java | 79 +++++++++++-------- app/src/main/res/layout/activity_compose.xml | 10 +++ 2 files changed, 57 insertions(+), 32 deletions(-) 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,28 +205,7 @@ 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; - } - }); - pickBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - onMediaPick(); + return saveDraft(); } }); takeBtn.setOnClickListener(new View.OnClickListener() { @@ -233,10 +214,10 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm initiateCameraApp(); } }); - hideMediaToggle.setOnClickListener(new View.OnClickListener() { + pickBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - toggleHideMedia(); + onMediaPick(); } }); visibilityBtn.setOnClickListener(new View.OnClickListener() { @@ -245,6 +226,18 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm showComposeOptions(); } }); + saveButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + saveDraft(); + } + }); + hideMediaToggle.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + toggleHideMedia(); + } + }); /* Initialise all the state, or restore it from a previous run, to determine a "starting" * state. */ @@ -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" /> + +