mirror of
https://github.com/SimpleMobileTools/Simple-Notes.git
synced 2025-04-16 16:27:23 +02:00
moving another function in Room
This commit is contained in:
parent
43896a964a
commit
66821397e9
@ -300,7 +300,7 @@ class MainActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun displayNewNoteDialog(value: String = "") {
|
private fun displayNewNoteDialog(value: String = "") {
|
||||||
NewNoteDialog(this, dbHelper) {
|
NewNoteDialog(this) {
|
||||||
val newNote = Note(null, it, value, TYPE_NOTE)
|
val newNote = Note(null, it, value, TYPE_NOTE)
|
||||||
addNewNote(newNote)
|
addNewNote(newNote)
|
||||||
}
|
}
|
||||||
@ -355,7 +355,7 @@ class MainActivity : SimpleActivity() {
|
|||||||
toast(R.string.invalid_file_format)
|
toast(R.string.invalid_file_format)
|
||||||
} else if (file.length() > 10 * 1000 * 1000) {
|
} else if (file.length() > 10 * 1000 * 1000) {
|
||||||
toast(R.string.file_too_large)
|
toast(R.string.file_too_large)
|
||||||
} else if (checkTitle && dbHelper.doesNoteTitleExist(path.getFilenameFromPath())) {
|
} else if (checkTitle && mNotes.any { it.title.equals(path.getFilenameFromPath(), true) }) {
|
||||||
toast(R.string.title_taken)
|
toast(R.string.title_taken)
|
||||||
} else {
|
} else {
|
||||||
onChecksPassed(file)
|
onChecksPassed(file)
|
||||||
@ -386,7 +386,7 @@ class MainActivity : SimpleActivity() {
|
|||||||
private fun openPath(path: String) {
|
private fun openPath(path: String) {
|
||||||
openFile(path, false) {
|
openFile(path, false) {
|
||||||
var title = path.getFilenameFromPath()
|
var title = path.getFilenameFromPath()
|
||||||
if (dbHelper.doesNoteTitleExist(title)) {
|
if (mNotes.any { it.title.equals(title, true) }) {
|
||||||
title += " (file)"
|
title += " (file)"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import com.simplemobiletools.commons.extensions.isMediaFile
|
|||||||
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
||||||
import com.simplemobiletools.notes.pro.R
|
import com.simplemobiletools.notes.pro.R
|
||||||
import com.simplemobiletools.notes.pro.activities.SimpleActivity
|
import com.simplemobiletools.notes.pro.activities.SimpleActivity
|
||||||
import com.simplemobiletools.notes.pro.extensions.dbHelper
|
import com.simplemobiletools.notes.pro.extensions.notesDB
|
||||||
import com.simplemobiletools.notes.pro.helpers.NotesHelper
|
import com.simplemobiletools.notes.pro.helpers.NotesHelper
|
||||||
import com.simplemobiletools.notes.pro.helpers.TYPE_NOTE
|
import com.simplemobiletools.notes.pro.helpers.TYPE_NOTE
|
||||||
import com.simplemobiletools.notes.pro.models.Note
|
import com.simplemobiletools.notes.pro.models.Note
|
||||||
@ -30,7 +30,9 @@ class ImportFolderDialog(val activity: SimpleActivity, val path: String, val cal
|
|||||||
activity.setupDialogStuff(view, this, R.string.import_folder) {
|
activity.setupDialogStuff(view, this, R.string.import_folder) {
|
||||||
getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener {
|
getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener {
|
||||||
val updateFilesOnEdit = view.open_file_type.checkedRadioButtonId == R.id.open_file_update_file
|
val updateFilesOnEdit = view.open_file_type.checkedRadioButtonId == R.id.open_file_update_file
|
||||||
saveFolder(updateFilesOnEdit)
|
Thread {
|
||||||
|
saveFolder(updateFilesOnEdit)
|
||||||
|
}.start()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -44,7 +46,7 @@ class ImportFolderDialog(val activity: SimpleActivity, val path: String, val cal
|
|||||||
file.isDirectory -> false
|
file.isDirectory -> false
|
||||||
filename.isMediaFile() -> false
|
filename.isMediaFile() -> false
|
||||||
file.length() > 10 * 1000 * 1000 -> false
|
file.length() > 10 * 1000 * 1000 -> false
|
||||||
activity.dbHelper.doesNoteTitleExist(filename) -> false
|
activity.notesDB.getNoteIdWithTitle(filename) != null -> false
|
||||||
else -> true
|
else -> true
|
||||||
}
|
}
|
||||||
}.forEach {
|
}.forEach {
|
||||||
@ -61,8 +63,10 @@ class ImportFolderDialog(val activity: SimpleActivity, val path: String, val cal
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
callback()
|
activity.runOnUiThread {
|
||||||
dialog.dismiss()
|
callback()
|
||||||
|
dialog.dismiss()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun saveNote(title: String, value: String, path: String) {
|
private fun saveNote(title: String, value: String, path: String) {
|
||||||
|
@ -8,10 +8,10 @@ import com.simplemobiletools.commons.extensions.showKeyboard
|
|||||||
import com.simplemobiletools.commons.extensions.toast
|
import com.simplemobiletools.commons.extensions.toast
|
||||||
import com.simplemobiletools.commons.extensions.value
|
import com.simplemobiletools.commons.extensions.value
|
||||||
import com.simplemobiletools.notes.pro.R
|
import com.simplemobiletools.notes.pro.R
|
||||||
import com.simplemobiletools.notes.pro.helpers.DBHelper
|
import com.simplemobiletools.notes.pro.extensions.notesDB
|
||||||
import kotlinx.android.synthetic.main.dialog_new_note.view.*
|
import kotlinx.android.synthetic.main.dialog_new_note.view.*
|
||||||
|
|
||||||
class NewNoteDialog(val activity: Activity, val db: DBHelper, callback: (title: String) -> Unit) {
|
class NewNoteDialog(val activity: Activity, callback: (title: String) -> Unit) {
|
||||||
init {
|
init {
|
||||||
val view = activity.layoutInflater.inflate(R.layout.dialog_new_note, null)
|
val view = activity.layoutInflater.inflate(R.layout.dialog_new_note, null)
|
||||||
|
|
||||||
@ -23,14 +23,16 @@ class NewNoteDialog(val activity: Activity, val db: DBHelper, callback: (title:
|
|||||||
showKeyboard(view.note_name)
|
showKeyboard(view.note_name)
|
||||||
getButton(BUTTON_POSITIVE).setOnClickListener {
|
getButton(BUTTON_POSITIVE).setOnClickListener {
|
||||||
val title = view.note_name.value
|
val title = view.note_name.value
|
||||||
when {
|
Thread {
|
||||||
title.isEmpty() -> activity.toast(R.string.no_title)
|
when {
|
||||||
db.doesNoteTitleExist(title) -> activity.toast(R.string.title_taken)
|
title.isEmpty() -> activity.toast(R.string.no_title)
|
||||||
else -> {
|
activity.notesDB.getNoteIdWithTitle(title) != null -> activity.toast(R.string.title_taken)
|
||||||
callback(title)
|
else -> {
|
||||||
dismiss()
|
callback(title)
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}.start()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,13 +5,12 @@ import androidx.appcompat.app.AlertDialog
|
|||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.notes.pro.R
|
import com.simplemobiletools.notes.pro.R
|
||||||
import com.simplemobiletools.notes.pro.activities.SimpleActivity
|
import com.simplemobiletools.notes.pro.activities.SimpleActivity
|
||||||
import com.simplemobiletools.notes.pro.extensions.dbHelper
|
import com.simplemobiletools.notes.pro.extensions.notesDB
|
||||||
import com.simplemobiletools.notes.pro.helpers.NotesHelper
|
|
||||||
import com.simplemobiletools.notes.pro.models.Note
|
import com.simplemobiletools.notes.pro.models.Note
|
||||||
import kotlinx.android.synthetic.main.dialog_new_note.view.*
|
import kotlinx.android.synthetic.main.dialog_new_note.view.*
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class RenameNoteDialog(val activity: SimpleActivity, val note: Note, callback: (note: Note) -> Unit) {
|
class RenameNoteDialog(val activity: SimpleActivity, val note: Note, val callback: (note: Note) -> Unit) {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val view = activity.layoutInflater.inflate(R.layout.dialog_rename_note, null)
|
val view = activity.layoutInflater.inflate(R.layout.dialog_rename_note, null)
|
||||||
@ -25,47 +24,55 @@ class RenameNoteDialog(val activity: SimpleActivity, val note: Note, callback: (
|
|||||||
showKeyboard(view.note_name)
|
showKeyboard(view.note_name)
|
||||||
getButton(BUTTON_POSITIVE).setOnClickListener {
|
getButton(BUTTON_POSITIVE).setOnClickListener {
|
||||||
val title = view.note_name.value
|
val title = view.note_name.value
|
||||||
when {
|
Thread {
|
||||||
title.isEmpty() -> activity.toast(R.string.no_title)
|
newTitleConfirmed(title, this)
|
||||||
activity.dbHelper.doesNoteTitleExist(title) -> activity.toast(R.string.title_taken)
|
}.start()
|
||||||
else -> {
|
|
||||||
note.title = title
|
|
||||||
val path = note.path
|
|
||||||
if (path.isEmpty()) {
|
|
||||||
NotesHelper(activity).insertOrUpdateNote(note) {
|
|
||||||
dismiss()
|
|
||||||
callback(note)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (title.isEmpty()) {
|
|
||||||
activity.toast(R.string.filename_cannot_be_empty)
|
|
||||||
return@setOnClickListener
|
|
||||||
}
|
|
||||||
|
|
||||||
val file = File(path)
|
|
||||||
val newFile = File(file.parent, title)
|
|
||||||
if (!newFile.name.isAValidFilename()) {
|
|
||||||
activity.toast(R.string.invalid_name)
|
|
||||||
return@setOnClickListener
|
|
||||||
}
|
|
||||||
|
|
||||||
activity.renameFile(file.absolutePath, newFile.absolutePath) {
|
|
||||||
if (it) {
|
|
||||||
note.path = newFile.absolutePath
|
|
||||||
NotesHelper(activity).insertOrUpdateNote(note) {
|
|
||||||
dismiss()
|
|
||||||
callback(note)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
activity.toast(R.string.rename_file_error)
|
|
||||||
return@renameFile
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun newTitleConfirmed(title: String, dialog: AlertDialog) {
|
||||||
|
when {
|
||||||
|
title.isEmpty() -> activity.toast(R.string.no_title)
|
||||||
|
activity.notesDB.getNoteIdWithTitle(title) != null -> activity.toast(R.string.title_taken)
|
||||||
|
else -> {
|
||||||
|
note.title = title
|
||||||
|
val path = note.path
|
||||||
|
if (path.isEmpty()) {
|
||||||
|
activity.notesDB.insertOrUpdate(note)
|
||||||
|
activity.runOnUiThread {
|
||||||
|
dialog.dismiss()
|
||||||
|
callback(note)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (title.isEmpty()) {
|
||||||
|
activity.toast(R.string.filename_cannot_be_empty)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
val file = File(path)
|
||||||
|
val newFile = File(file.parent, title)
|
||||||
|
if (!newFile.name.isAValidFilename()) {
|
||||||
|
activity.toast(R.string.invalid_name)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
activity.renameFile(file.absolutePath, newFile.absolutePath) {
|
||||||
|
if (it) {
|
||||||
|
note.path = newFile.absolutePath
|
||||||
|
activity.notesDB.insertOrUpdate(note)
|
||||||
|
activity.runOnUiThread {
|
||||||
|
dialog.dismiss()
|
||||||
|
callback(note)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
activity.toast(R.string.rename_file_error)
|
||||||
|
return@renameFile
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,19 +78,6 @@ class DBHelper private constructor(private val mContext: Context) : SQLiteOpenHe
|
|||||||
mDb.delete(WIDGETS_TABLE_NAME, "$COL_NOTE_ID = $id", null)
|
mDb.delete(WIDGETS_TABLE_NAME, "$COL_NOTE_ID = $id", null)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun doesNoteTitleExist(title: String): Boolean {
|
|
||||||
val cols = arrayOf(COL_ID)
|
|
||||||
val selection = "$COL_TITLE = ? COLLATE NOCASE"
|
|
||||||
val selectionArgs = arrayOf(title)
|
|
||||||
var cursor: Cursor? = null
|
|
||||||
try {
|
|
||||||
cursor = mDb.query(NOTES_TABLE_NAME, cols, selection, selectionArgs, null, null, null)
|
|
||||||
return cursor.count == 1
|
|
||||||
} finally {
|
|
||||||
cursor?.close()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getWidgets(): ArrayList<Widget> {
|
fun getWidgets(): ArrayList<Widget> {
|
||||||
val widgets = ArrayList<Widget>()
|
val widgets = ArrayList<Widget>()
|
||||||
val cols = arrayOf(COL_WIDGET_ID, COL_NOTE_ID)
|
val cols = arrayOf(COL_WIDGET_ID, COL_NOTE_ID)
|
||||||
|
@ -14,6 +14,9 @@ interface NotesDao {
|
|||||||
@Query("SELECT id FROM notes WHERE path = :path")
|
@Query("SELECT id FROM notes WHERE path = :path")
|
||||||
fun getNoteIdWithPath(path: String): Long?
|
fun getNoteIdWithPath(path: String): Long?
|
||||||
|
|
||||||
|
@Query("SELECT id FROM notes WHERE title = :title COLLATE NOCASE")
|
||||||
|
fun getNoteIdWithTitle(title: String): Long?
|
||||||
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
fun insertOrUpdate(note: Note): Long
|
fun insertOrUpdate(note: Note): Long
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user