From 920b48a938d148a54a166947d39f0d4fa21a9d86 Mon Sep 17 00:00:00 2001 From: tom79 Date: Mon, 17 Jun 2019 14:24:50 +0200 Subject: [PATCH] Allow to store toots in draft manually --- .../android/activities/TootActivity.java | 84 ++++++++++++++++++- app/src/main/res/values/strings.xml | 1 + 2 files changed, 82 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/activities/TootActivity.java b/app/src/main/java/app/fedilab/android/activities/TootActivity.java index 74cb70e49..d9e6ce764 100644 --- a/app/src/main/java/app/fedilab/android/activities/TootActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/TootActivity.java @@ -59,6 +59,7 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; +import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.ArrayAdapter; @@ -172,6 +173,7 @@ import app.fedilab.android.interfaces.OnRetrieveSearchInterface; import app.fedilab.android.jobs.ScheduledTootsSyncJob; import app.fedilab.android.sqlite.AccountDAO; import app.fedilab.android.sqlite.CustomEmojiDAO; +import app.fedilab.android.sqlite.SearchDAO; import app.fedilab.android.sqlite.Sqlite; import app.fedilab.android.sqlite.StatusStoredDAO; import es.dmoral.toasty.Toasty; @@ -301,7 +303,42 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate, InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); assert inputMethodManager != null; inputMethodManager.hideSoftInputFromWindow(toot_content.getWindowToken(), 0); - finish(); + boolean storeToot = sharedpreferences.getBoolean(Helper.SET_AUTO_STORE, true); + if( !storeToot ) { + if (toot_content.getText().toString().trim().length() == 0 && (attachments == null || attachments.size() < 1) && toot_cw_content.getText().toString().trim().length() == 0){ + finish(); + }else if (initialContent.trim().equals(toot_content.getText().toString().trim())){ + finish(); + }else { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(TootActivity.this, style); + dialogBuilder.setMessage(R.string.save_draft); + dialogBuilder.setPositiveButton(R.string.validate, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + if (accountReply == null) { + storeToot(true, false); + } else { + storeToot(false, false); + } + dialog.dismiss(); + finish(); + } + }); + dialogBuilder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + dialog.dismiss(); + finish(); + } + }); + AlertDialog alertDialog = dialogBuilder.create(); + alertDialog.setCancelable(false); + alertDialog.show(); + } + + }else{ + finish(); + } } }); if (theme == Helper.THEME_LIGHT) { @@ -2073,10 +2110,51 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate, super.onPause(); final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); boolean storeToot = sharedpreferences.getBoolean(Helper.SET_AUTO_STORE, true); - if( storeToot && accountReply == null) + if( storeToot && accountReply == null) { storeToot(true, false); - else if( storeToot) + }else if( storeToot) { storeToot(false, false); + } + } + + @Override + public void onBackPressed() { + final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); + boolean storeToot = sharedpreferences.getBoolean(Helper.SET_AUTO_STORE, true); + if( !storeToot ){ + if (toot_content.getText().toString().trim().length() == 0 && (attachments == null || attachments.size() < 1) && toot_cw_content.getText().toString().trim().length() == 0){ + finish(); + }else if (initialContent.trim().equals(toot_content.getText().toString().trim())){ + finish(); + }else { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(TootActivity.this, style); + dialogBuilder.setMessage(R.string.save_draft); + dialogBuilder.setPositiveButton(R.string.validate, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + if (accountReply == null) { + storeToot(true, false); + } else { + storeToot(false, false); + } + dialog.dismiss(); + finish(); + } + }); + dialogBuilder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + dialog.dismiss(); + finish(); + } + }); + AlertDialog alertDialog = dialogBuilder.create(); + alertDialog.setCancelable(false); + alertDialog.show(); + } + }else{ + super.onBackPressed(); + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6a74dfde9..d17082264 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1027,6 +1027,7 @@ You can now connect your account by writing %1$s in the first field and click on Connect.\n\n Important: If your instance required validation, you will receive an email once it is validated! + Save the message in drafts? %d vote %d votes