2020-09-10 21:05:11 +00:00
|
|
|
package oppen.gem.ui.bookmarks
|
|
|
|
|
|
|
|
import android.content.Context
|
2020-09-11 21:02:54 +00:00
|
|
|
import android.os.Handler
|
|
|
|
import android.os.Looper
|
2020-09-10 21:05:11 +00:00
|
|
|
import android.view.View
|
|
|
|
import androidx.appcompat.app.AppCompatDialog
|
|
|
|
import kotlinx.android.synthetic.main.fragment_bookmark_dialog.view.*
|
|
|
|
import oppen.gem.R
|
|
|
|
import oppen.gem.io.bookmarks.Bookmark
|
|
|
|
import oppen.gem.io.bookmarks.BookmarksDatasource
|
|
|
|
import java.net.URI
|
|
|
|
|
|
|
|
|
2020-09-11 21:02:54 +00:00
|
|
|
class BookmarkDialog(
|
|
|
|
context: Context,
|
|
|
|
private val bookmarkDatasource: BookmarksDatasource,
|
|
|
|
val uri: String,
|
|
|
|
val name: String,
|
|
|
|
onDismiss: () -> Unit) : AppCompatDialog(context, R.style.FSDialog) {
|
2020-09-10 21:05:11 +00:00
|
|
|
|
|
|
|
init {
|
|
|
|
val view = View.inflate(context, R.layout.fragment_bookmark_dialog, null)
|
|
|
|
|
|
|
|
setContentView(view)
|
|
|
|
|
|
|
|
view.bookmark_toolbar.setNavigationIcon(R.drawable.vector_close)
|
|
|
|
view.bookmark_toolbar.setNavigationOnClickListener {
|
|
|
|
onDismiss()
|
|
|
|
dismiss()
|
|
|
|
}
|
|
|
|
|
|
|
|
view.bookmark_name.setText(name)
|
|
|
|
view.bookmark_uri.setText(uri)
|
|
|
|
|
|
|
|
view.bookmark_toolbar.inflateMenu(R.menu.add_bookmark)
|
|
|
|
view.bookmark_toolbar.setOnMenuItemClickListener {menuItem ->
|
|
|
|
if(menuItem.itemId == R.id.menu_action_save_bookmark){
|
2020-09-11 21:02:54 +00:00
|
|
|
//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.size
|
|
|
|
)){
|
|
|
|
Handler(Looper.getMainLooper()).post {
|
|
|
|
onDismiss()
|
|
|
|
dismiss()
|
|
|
|
}
|
|
|
|
}
|
2020-09-10 21:05:11 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
true
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|