|
|
|
@ -2,6 +2,7 @@ package org.koitharu.kotatsu.tracker.ui
|
|
|
|
|
|
|
|
|
|
|
|
import android.os.Bundle
|
|
|
|
import android.os.Bundle
|
|
|
|
import android.view.*
|
|
|
|
import android.view.*
|
|
|
|
|
|
|
|
import androidx.appcompat.app.AlertDialog
|
|
|
|
import androidx.core.graphics.Insets
|
|
|
|
import androidx.core.graphics.Insets
|
|
|
|
import androidx.core.view.updatePadding
|
|
|
|
import androidx.core.view.updatePadding
|
|
|
|
import com.google.android.material.snackbar.Snackbar
|
|
|
|
import com.google.android.material.snackbar.Snackbar
|
|
|
|
@ -55,6 +56,9 @@ class FeedFragment : BaseFragment<FragmentFeedBinding>(), PaginationScrollListen
|
|
|
|
|
|
|
|
|
|
|
|
viewModel.content.observe(viewLifecycleOwner, this::onListChanged)
|
|
|
|
viewModel.content.observe(viewLifecycleOwner, this::onListChanged)
|
|
|
|
viewModel.onError.observe(viewLifecycleOwner, this::onError)
|
|
|
|
viewModel.onError.observe(viewLifecycleOwner, this::onError)
|
|
|
|
|
|
|
|
viewModel.onFeedCleared.observe(viewLifecycleOwner) {
|
|
|
|
|
|
|
|
onFeedCleared()
|
|
|
|
|
|
|
|
}
|
|
|
|
TrackWorker.getProgressLiveData(view.context.applicationContext)
|
|
|
|
TrackWorker.getProgressLiveData(view.context.applicationContext)
|
|
|
|
.observe(viewLifecycleOwner, this::onUpdateProgressChanged)
|
|
|
|
.observe(viewLifecycleOwner, this::onUpdateProgressChanged)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -64,7 +68,8 @@ class FeedFragment : BaseFragment<FragmentFeedBinding>(), PaginationScrollListen
|
|
|
|
inflater.inflate(R.menu.opt_feed, menu)
|
|
|
|
inflater.inflate(R.menu.opt_feed, menu)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
|
|
|
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
|
|
|
|
|
|
|
return when (item.itemId) {
|
|
|
|
R.id.action_update -> {
|
|
|
|
R.id.action_update -> {
|
|
|
|
TrackWorker.startNow(requireContext())
|
|
|
|
TrackWorker.startNow(requireContext())
|
|
|
|
Snackbar.make(
|
|
|
|
Snackbar.make(
|
|
|
|
@ -74,8 +79,19 @@ class FeedFragment : BaseFragment<FragmentFeedBinding>(), PaginationScrollListen
|
|
|
|
).show()
|
|
|
|
).show()
|
|
|
|
true
|
|
|
|
true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
R.id.action_clear_feed -> {
|
|
|
|
|
|
|
|
AlertDialog.Builder(context ?: return false)
|
|
|
|
|
|
|
|
.setTitle(R.string.clear_updates_feed)
|
|
|
|
|
|
|
|
.setMessage(R.string.text_clear_updates_feed_prompt)
|
|
|
|
|
|
|
|
.setNegativeButton(android.R.string.cancel, null)
|
|
|
|
|
|
|
|
.setPositiveButton(R.string.clear) { _, _ ->
|
|
|
|
|
|
|
|
viewModel.clearFeed()
|
|
|
|
|
|
|
|
}.show()
|
|
|
|
|
|
|
|
true
|
|
|
|
|
|
|
|
}
|
|
|
|
else -> super.onOptionsItemSelected(item)
|
|
|
|
else -> super.onOptionsItemSelected(item)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun onDestroyView() {
|
|
|
|
override fun onDestroyView() {
|
|
|
|
feedAdapter = null
|
|
|
|
feedAdapter = null
|
|
|
|
@ -95,6 +111,14 @@ class FeedFragment : BaseFragment<FragmentFeedBinding>(), PaginationScrollListen
|
|
|
|
feedAdapter?.items = list
|
|
|
|
feedAdapter?.items = list
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private fun onFeedCleared() {
|
|
|
|
|
|
|
|
Snackbar.make(
|
|
|
|
|
|
|
|
binding.recyclerView,
|
|
|
|
|
|
|
|
R.string.updates_feed_cleared,
|
|
|
|
|
|
|
|
Snackbar.LENGTH_LONG
|
|
|
|
|
|
|
|
).show()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun onError(e: Throwable) {
|
|
|
|
private fun onError(e: Throwable) {
|
|
|
|
Snackbar.make(
|
|
|
|
Snackbar.make(
|
|
|
|
binding.recyclerView,
|
|
|
|
binding.recyclerView,
|
|
|
|
|