2020-09-10 21:20:24 +00:00
|
|
|
package oppen.gem.ui.bookmarks
|
|
|
|
|
|
|
|
import android.content.Context
|
2020-09-11 19:49:30 +00:00
|
|
|
import android.os.Handler
|
|
|
|
import android.os.Looper
|
2020-09-10 21:20:24 +00:00
|
|
|
import android.view.View
|
|
|
|
import androidx.appcompat.app.AppCompatDialog
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
|
|
import kotlinx.android.synthetic.main.dialog_bookmarks.view.*
|
|
|
|
import oppen.gem.R
|
|
|
|
import oppen.gem.io.bookmarks.Bookmark
|
|
|
|
import oppen.gem.io.bookmarks.BookmarksDatasource
|
|
|
|
|
|
|
|
|
|
|
|
class BookmarksDialog(
|
|
|
|
context: Context,
|
2020-09-11 19:49:30 +00:00
|
|
|
bookmarkDatasource: BookmarksDatasource,
|
|
|
|
onBookmark: (bookmark: Bookmark) -> Unit): AppCompatDialog(context, R.style.FSDialog) {
|
|
|
|
|
|
|
|
lateinit var bookmarksAdapter: BookmarksAdapter
|
2020-09-10 21:20:24 +00:00
|
|
|
|
|
|
|
init {
|
|
|
|
val view = View.inflate(context, R.layout.dialog_bookmarks, null)
|
|
|
|
|
|
|
|
setContentView(view)
|
|
|
|
|
|
|
|
view.bookmarks_toolbar.setNavigationIcon(R.drawable.vector_close)
|
|
|
|
view.bookmarks_toolbar.setNavigationOnClickListener {
|
|
|
|
dismiss()
|
|
|
|
}
|
|
|
|
|
|
|
|
//None as yet
|
|
|
|
view.bookmarks_toolbar.inflateMenu(R.menu.add_bookmarks)
|
|
|
|
view.bookmarks_toolbar.setOnMenuItemClickListener {menuItem ->
|
|
|
|
true
|
2020-09-11 19:49:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
view.bookmarks_recycler.layoutManager = LinearLayoutManager(context)
|
|
|
|
|
|
|
|
bookmarksAdapter = BookmarksAdapter({ bookmark ->
|
|
|
|
//onBookmark
|
|
|
|
onBookmark(bookmark)
|
|
|
|
dismiss()
|
|
|
|
|
|
|
|
}){ view, bookmark ->
|
|
|
|
//onOverflow
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
view.bookmarks_recycler.adapter = bookmarksAdapter
|
2020-09-10 21:20:24 +00:00
|
|
|
|
2020-09-11 19:49:30 +00:00
|
|
|
bookmarkDatasource.get { bookmarks ->
|
|
|
|
Handler(Looper.getMainLooper()).post {
|
|
|
|
bookmarksAdapter.update(bookmarks)
|
|
|
|
}
|
2020-09-10 21:20:24 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|