diff --git a/app/src/main/java/com/simplemobiletools/notes/Config.java b/app/src/main/java/com/simplemobiletools/notes/Config.java index 7264247b..251130c3 100644 --- a/app/src/main/java/com/simplemobiletools/notes/Config.java +++ b/app/src/main/java/com/simplemobiletools/notes/Config.java @@ -37,4 +37,12 @@ public class Config { public void setIsAutosaveEnabled(boolean enabled) { mPrefs.edit().putBoolean(Constants.AUTOSAVE, enabled).apply(); } + + public boolean getShouldPromptAutosave() { + return mPrefs.getBoolean(Constants.PROMPT_AUTOSAVE, true); + } + + public void setShouldPromptAutosave(boolean prompt) { + mPrefs.edit().putBoolean(Constants.PROMPT_AUTOSAVE, prompt).apply(); + } } diff --git a/app/src/main/java/com/simplemobiletools/notes/Constants.java b/app/src/main/java/com/simplemobiletools/notes/Constants.java index 8de4bba0..4303d304 100644 --- a/app/src/main/java/com/simplemobiletools/notes/Constants.java +++ b/app/src/main/java/com/simplemobiletools/notes/Constants.java @@ -8,6 +8,7 @@ public class Constants { public static final String IS_FIRST_RUN = "is_first_run"; public static final String IS_DARK_THEME = "is_dark_theme"; public static final String AUTOSAVE = "autosave"; + public static final String PROMPT_AUTOSAVE = "prompt_autosave"; public static final String WIDGET_BG_COLOR = "widget_bg_color"; public static final String WIDGET_TEXT_COLOR = "widget_text_color"; } diff --git a/app/src/main/java/com/simplemobiletools/notes/activities/MainActivity.java b/app/src/main/java/com/simplemobiletools/notes/activities/MainActivity.java index 47765ddb..6158d35d 100644 --- a/app/src/main/java/com/simplemobiletools/notes/activities/MainActivity.java +++ b/app/src/main/java/com/simplemobiletools/notes/activities/MainActivity.java @@ -3,10 +3,12 @@ package com.simplemobiletools.notes.activities; import android.appwidget.AppWidgetManager; import android.content.ComponentName; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; import android.os.Bundle; +import android.support.v7.app.AlertDialog; import android.view.Menu; import android.view.MenuItem; import android.view.inputmethod.InputMethodManager; @@ -33,8 +35,7 @@ public class MainActivity extends SimpleActivity { ButterKnife.bind(this); mPrefs = getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE); - final String text = mPrefs.getString(Constants.TEXT, ""); - mNotesView.setText(text); + mNotesView.setText(getSavedNote()); } @Override @@ -51,6 +52,16 @@ public class MainActivity extends SimpleActivity { } } + @Override + public void onBackPressed() { + if (mConfig.getShouldPromptAutosave() && !getCurrentNote().equals(getSavedNote())) { + mConfig.setShouldPromptAutosave(false); + displayAutosavePrompt(); + } else { + super.onBackPressed(); + } + } + @Override protected void onDestroy() { super.onDestroy(); @@ -86,8 +97,23 @@ public class MainActivity extends SimpleActivity { } } + private void displayAutosavePrompt() { + final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); + alertDialog.setTitle(getString(R.string.unsaved_changes)); + alertDialog.setMessage(getString(R.string.autosave_prompt_msg)); + + alertDialog.setNegativeButton(R.string.cancel, null); + alertDialog.setPositiveButton(R.string.enable_autosave, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + } + }); + alertDialog.create().show(); + } + private void saveText(boolean showToast) { - final String text = mNotesView.getText().toString().trim(); + final String text = getCurrentNote(); mPrefs.edit().putString(Constants.TEXT, text).apply(); if (showToast) { @@ -99,7 +125,7 @@ public class MainActivity extends SimpleActivity { } private void shareText() { - final String text = mNotesView.getText().toString().trim(); + final String text = getCurrentNote(); if (text.isEmpty()) { Utils.showToast(getApplicationContext(), R.string.cannot_share_empty_text); return; @@ -115,6 +141,14 @@ public class MainActivity extends SimpleActivity { startActivity(Intent.createChooser(sendIntent, shareTitle)); } + private String getCurrentNote() { + return mNotesView.getText().toString().trim(); + } + + private String getSavedNote() { + return mPrefs.getString(Constants.TEXT, ""); + } + private void hideKeyboard() { final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mNotesView.getWindowToken(), 0); diff --git a/app/src/main/java/com/simplemobiletools/notes/activities/SettingsActivity.java b/app/src/main/java/com/simplemobiletools/notes/activities/SettingsActivity.java index 0d5ba754..d55d87f6 100644 --- a/app/src/main/java/com/simplemobiletools/notes/activities/SettingsActivity.java +++ b/app/src/main/java/com/simplemobiletools/notes/activities/SettingsActivity.java @@ -26,6 +26,7 @@ public class SettingsActivity extends SimpleActivity { setupDarkTheme(); setupAutosave(); + mConfig.setShouldPromptAutosave(false); } private void setupDarkTheme() { diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index da485a2d..0f0af7f5 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -7,6 +7,10 @@ Impossibile condividere un testo vuoto Testo salvato Simple Note + Enable autosave + Cancel + Unsaved changes + Changes made to the note have not be saved. Do you want to enable autosave? Impostazioni diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 4eda61af..7334b55a 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -7,6 +7,10 @@ 空のテキストは共有できません テキストを保存しました シンプル メモ + Enable autosave + Cancel + Unsaved changes + Changes made to the note have not be saved. Do you want to enable autosave? 設定 diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 30e946c1..34a58d31 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -7,6 +7,10 @@ Det går inte att dela utan text Text sparad Simple Note + Enable autosave + Cancel + Unsaved changes + Changes made to the note have not be saved. Do you want to enable autosave? Inställningar diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0ced6572..de9fbdff 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,6 +7,10 @@ Cannot share empty text Text Saved Simple Note + Enable autosave + Cancel + Unsaved changes + Changes made to the note have not be saved. Do you want to enable autosave? Settings diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 2928abbf..9e896afb 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -5,7 +5,6 @@ @color/colorPrimaryDark @color/colorAccent @style/AppTheme.ActionBarStyle - @dimen/normal_text_size