Skip to content

Commit b59649d

Browse files
committed
fix #133, add an option to disable autosave
1 parent be4d06f commit b59649d

File tree

7 files changed

+53
-3
lines changed

7 files changed

+53
-3
lines changed

app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,16 +111,21 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener {
111111
findItem(R.id.open_note).isVisible = shouldBeVisible
112112
findItem(R.id.delete_note).isVisible = shouldBeVisible
113113
findItem(R.id.export_all_notes).isVisible = shouldBeVisible
114+
findItem(R.id.save_note).isVisible = !config.autosaveNotes
114115
}
115116

116117
pager_title_strip.beVisibleIf(shouldBeVisible)
117118
return super.onPrepareOptionsMenu(menu)
118119
}
119120

120121
override fun onOptionsItemSelected(item: MenuItem): Boolean {
121-
saveCurrentNote()
122+
if (config.autosaveNotes) {
123+
saveCurrentNote()
124+
}
125+
122126
when (item.itemId) {
123127
R.id.open_note -> displayOpenNoteDialog()
128+
R.id.save_note -> saveNote()
124129
R.id.new_note -> displayNewNoteDialog()
125130
R.id.rename_note -> displayRenameDialog()
126131
R.id.share -> shareText()
@@ -461,6 +466,10 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener {
461466
}
462467
}
463468

469+
private fun saveNote() {
470+
saveCurrentNote()
471+
}
472+
464473
private fun getNoteIndexWithId(id: Int): Int {
465474
for (i in 0 until mNotes.count()) {
466475
if (mNotes[i].id == id) {

app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class SettingsActivity : SimpleActivity() {
3333

3434
setupCustomizeColors()
3535
setupUseEnglish()
36+
setupAutosaveNotes()
3637
setupDisplaySuccess()
3738
setupClickableLinks()
3839
setupMonospacedFont()
@@ -62,6 +63,14 @@ class SettingsActivity : SimpleActivity() {
6263
}
6364
}
6465

66+
private fun setupAutosaveNotes() {
67+
settings_autosave_notes.isChecked = config.autosaveNotes
68+
settings_autosave_notes_holder.setOnClickListener {
69+
settings_autosave_notes.toggle()
70+
config.autosaveNotes = settings_autosave_notes.isChecked
71+
}
72+
}
73+
6574
private fun setupDisplaySuccess() {
6675
settings_display_success.isChecked = config.displaySuccess
6776
settings_display_success_holder.setOnClickListener {

app/src/main/kotlin/com/simplemobiletools/notes/fragments/NoteFragment.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class NoteFragment : Fragment() {
5252

5353
override fun setMenuVisibility(menuVisible: Boolean) {
5454
super.setMenuVisibility(menuVisible)
55-
if (noteId != 0) {
55+
if (noteId != 0 && context?.config?.autosaveNotes == true) {
5656
saveText()
5757
}
5858
}
@@ -134,7 +134,9 @@ class NoteFragment : Fragment() {
134134

135135
override fun onPause() {
136136
super.onPause()
137-
saveText()
137+
if (context!!.config.autosaveNotes) {
138+
saveText()
139+
}
138140
view.notes_view.removeTextChangedListener(textWatcher)
139141
}
140142

app/src/main/kotlin/com/simplemobiletools/notes/helpers/Config.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ class Config(context: Context) : BaseConfig(context) {
99
fun newInstance(context: Context) = Config(context)
1010
}
1111

12+
var autosaveNotes: Boolean
13+
get() = prefs.getBoolean(AUTOSAVE_NOTES, true)
14+
set(autosaveNotes) = prefs.edit().putBoolean(AUTOSAVE_NOTES, autosaveNotes).apply()
15+
1216
var displaySuccess: Boolean
1317
get() = prefs.getBoolean(DISPLAY_SUCCESS, false)
1418
set(displaySuccess) = prefs.edit().putBoolean(DISPLAY_SUCCESS, displaySuccess).apply()

app/src/main/kotlin/com/simplemobiletools/notes/helpers/Constants.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const val OPEN_NOTE_ID = "open_note_id"
55

66
// shared preferences
77
const val CURRENT_NOTE_ID = "current_note_id"
8+
const val AUTOSAVE_NOTES = "autosave_notes"
89
const val DISPLAY_SUCCESS = "display_success"
910
const val CLICKABLE_LINKS = "clickable_links"
1011
const val WIDGET_NOTE_ID = "widget_note_id"

app/src/main/res/layout/activity_settings.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,26 @@
5050

5151
</RelativeLayout>
5252

53+
<RelativeLayout
54+
android:id="@+id/settings_autosave_notes_holder"
55+
android:layout_width="match_parent"
56+
android:layout_height="wrap_content"
57+
android:layout_marginTop="@dimen/medium_margin"
58+
android:background="?attr/selectableItemBackground"
59+
android:padding="@dimen/activity_margin">
60+
61+
<com.simplemobiletools.commons.views.MySwitchCompat
62+
android:id="@+id/settings_autosave_notes"
63+
android:layout_width="match_parent"
64+
android:layout_height="wrap_content"
65+
android:background="@null"
66+
android:clickable="false"
67+
android:paddingLeft="@dimen/medium_margin"
68+
android:paddingStart="@dimen/medium_margin"
69+
android:text="@string/autosave_notes"/>
70+
71+
</RelativeLayout>
72+
5373
<RelativeLayout
5474
android:id="@+id/settings_display_success_holder"
5575
android:layout_width="match_parent"

app/src/main/res/menu/menu.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<menu xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:app="http://schemas.android.com/apk/res-auto">
4+
<item
5+
android:id="@+id/save_note"
6+
android:icon="@drawable/ic_save"
7+
android:title="@string/save"
8+
app:showAsAction="ifRoom"/>
49
<item
510
android:id="@+id/open_note"
611
android:icon="@drawable/ic_open"

0 commit comments

Comments
 (0)