mirror of https://git.sr.ht/~oppen/ariane
wip support for editing bookmarks
This commit is contained in:
parent
8c01af4060
commit
ac66cf6b9e
|
@ -148,7 +148,7 @@ class GemActivity : AppCompatActivity() {
|
||||||
R.id.overflow_menu_bookmark -> {
|
R.id.overflow_menu_bookmark -> {
|
||||||
println("Bookmark: ---------------------------")
|
println("Bookmark: ---------------------------")
|
||||||
val name = adapter.inferTitle()
|
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 ->
|
bookmarkDatasource.get { bookmarks ->
|
||||||
bookmarks.forEach {bookmark ->
|
bookmarks.forEach {bookmark ->
|
||||||
println("Bookmark: ${bookmark.label}: ${bookmark.uri}")
|
println("Bookmark: ${bookmark.label}: ${bookmark.uri}")
|
||||||
|
|
|
@ -14,10 +14,16 @@ import java.net.URI
|
||||||
|
|
||||||
class BookmarkDialog(
|
class BookmarkDialog(
|
||||||
context: Context,
|
context: Context,
|
||||||
private val bookmarkDatasource: BookmarksDatasource,
|
val mode: Int,
|
||||||
|
val bookmarkDatasource: BookmarksDatasource?,
|
||||||
val uri: String,
|
val uri: String,
|
||||||
val name: 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 {
|
init {
|
||||||
val view = View.inflate(context, R.layout.fragment_bookmark_dialog, null)
|
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.setNavigationIcon(R.drawable.vector_close)
|
||||||
view.bookmark_toolbar.setNavigationOnClickListener {
|
view.bookmark_toolbar.setNavigationOnClickListener {
|
||||||
onDismiss()
|
onDismiss(null, null)
|
||||||
dismiss()
|
dismiss()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,19 +42,29 @@ class BookmarkDialog(
|
||||||
view.bookmark_toolbar.inflateMenu(R.menu.add_bookmark)
|
view.bookmark_toolbar.inflateMenu(R.menu.add_bookmark)
|
||||||
view.bookmark_toolbar.setOnMenuItemClickListener {menuItem ->
|
view.bookmark_toolbar.setOnMenuItemClickListener {menuItem ->
|
||||||
if(menuItem.itemId == R.id.menu_action_save_bookmark){
|
if(menuItem.itemId == R.id.menu_action_save_bookmark){
|
||||||
//Determine index:
|
|
||||||
//todo - this is expensive, we can just get the table size from SQLite:
|
if(mode == mode_new) {
|
||||||
bookmarkDatasource.get { allBookmarks ->
|
//Determine index:
|
||||||
bookmarkDatasource.add(Bookmark(
|
//todo - this is expensive, just get last item, limit1?
|
||||||
label = view.bookmark_name.text.toString(),
|
bookmarkDatasource?.get { allBookmarks ->
|
||||||
uri = URI.create(view.bookmark_uri.text.toString()),
|
bookmarkDatasource.add(
|
||||||
index = allBookmarks.last().index + 1
|
Bookmark(
|
||||||
)){
|
label = view.bookmark_name.text.toString(),
|
||||||
Handler(Looper.getMainLooper()).post {
|
uri = URI.create(view.bookmark_uri.text.toString()),
|
||||||
onDismiss()
|
index = allBookmarks.last().index + 1
|
||||||
dismiss()
|
)
|
||||||
|
) {
|
||||||
|
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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,9 @@ class BookmarksDialog(
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun edit(bookmark: Bookmark){
|
private fun edit(bookmark: Bookmark){
|
||||||
|
BookmarkDialog(context, BookmarkDialog.mode_edit, null, bookmark.uri.toString(), bookmark.label){ label, uri ->
|
||||||
|
//todo - update in db
|
||||||
|
}.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue