From ac66cf6b9e95cd9aa9628a8a6472592ec89cf486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96ppen?= Date: Sat, 12 Sep 2020 21:51:41 +0100 Subject: [PATCH] wip support for editing bookmarks --- app/src/main/java/oppen/gem/ui/GemActivity.kt | 2 +- .../oppen/gem/ui/bookmarks/BookmarkDialog.kt | 44 +++++++++++++------ .../oppen/gem/ui/bookmarks/BookmarksDialog.kt | 4 +- 3 files changed, 34 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/oppen/gem/ui/GemActivity.kt b/app/src/main/java/oppen/gem/ui/GemActivity.kt index 6b98d6d..b63ebaa 100644 --- a/app/src/main/java/oppen/gem/ui/GemActivity.kt +++ b/app/src/main/java/oppen/gem/ui/GemActivity.kt @@ -148,7 +148,7 @@ class GemActivity : AppCompatActivity() { R.id.overflow_menu_bookmark -> { println("Bookmark: ---------------------------") val name = adapter.inferTitle() - BookmarkDialog(this, bookmarkDatasource, binding.addressEdit.text.toString(), name ?: ""){ + BookmarkDialog(this, BookmarkDialog.mode_new, bookmarkDatasource, binding.addressEdit.text.toString(), name ?: ""){ _, _ -> bookmarkDatasource.get { bookmarks -> bookmarks.forEach {bookmark -> println("Bookmark: ${bookmark.label}: ${bookmark.uri}") diff --git a/app/src/main/java/oppen/gem/ui/bookmarks/BookmarkDialog.kt b/app/src/main/java/oppen/gem/ui/bookmarks/BookmarkDialog.kt index 8f25a08..67a0423 100644 --- a/app/src/main/java/oppen/gem/ui/bookmarks/BookmarkDialog.kt +++ b/app/src/main/java/oppen/gem/ui/bookmarks/BookmarkDialog.kt @@ -14,10 +14,16 @@ import java.net.URI class BookmarkDialog( context: Context, - private val bookmarkDatasource: BookmarksDatasource, + val mode: Int, + val bookmarkDatasource: BookmarksDatasource?, val uri: String, val name: String, - onDismiss: () -> Unit) : AppCompatDialog(context, R.style.FSDialog) { + onDismiss: (label: String?, uri: String?) -> Unit) : AppCompatDialog(context, R.style.FSDialog) { + + companion object{ + const val mode_new = 0 + const val mode_edit = 1 + } init { val view = View.inflate(context, R.layout.fragment_bookmark_dialog, null) @@ -26,7 +32,7 @@ class BookmarkDialog( view.bookmark_toolbar.setNavigationIcon(R.drawable.vector_close) view.bookmark_toolbar.setNavigationOnClickListener { - onDismiss() + onDismiss(null, null) dismiss() } @@ -36,19 +42,29 @@ class BookmarkDialog( view.bookmark_toolbar.inflateMenu(R.menu.add_bookmark) view.bookmark_toolbar.setOnMenuItemClickListener {menuItem -> if(menuItem.itemId == R.id.menu_action_save_bookmark){ - //Determine index: - //todo - this is expensive, we can just get the table size from SQLite: - bookmarkDatasource.get { allBookmarks -> - bookmarkDatasource.add(Bookmark( - label = view.bookmark_name.text.toString(), - uri = URI.create(view.bookmark_uri.text.toString()), - index = allBookmarks.last().index + 1 - )){ - Handler(Looper.getMainLooper()).post { - onDismiss() - dismiss() + + if(mode == mode_new) { + //Determine index: + //todo - this is expensive, just get last item, limit1? + bookmarkDatasource?.get { allBookmarks -> + bookmarkDatasource.add( + Bookmark( + label = view.bookmark_name.text.toString(), + uri = URI.create(view.bookmark_uri.text.toString()), + index = allBookmarks.last().index + 1 + ) + ) { + Handler(Looper.getMainLooper()).post { + onDismiss(null, null) + dismiss() + } } } + }else if(mode == mode_edit){ + onDismiss( + view.bookmark_name.text.toString(), + view.bookmark_uri.text.toString()) + dismiss() } } diff --git a/app/src/main/java/oppen/gem/ui/bookmarks/BookmarksDialog.kt b/app/src/main/java/oppen/gem/ui/bookmarks/BookmarksDialog.kt index ee42225..05f47b0 100644 --- a/app/src/main/java/oppen/gem/ui/bookmarks/BookmarksDialog.kt +++ b/app/src/main/java/oppen/gem/ui/bookmarks/BookmarksDialog.kt @@ -79,7 +79,9 @@ class BookmarksDialog( } private fun edit(bookmark: Bookmark){ - + BookmarkDialog(context, BookmarkDialog.mode_edit, null, bookmark.uri.toString(), bookmark.label){ label, uri -> + //todo - update in db + }.show() } /**