Add fragment kotlin extensions

pull/1047/head
Alex Baker 4 years ago
parent c36649fb54
commit 2c57d06980

@ -150,6 +150,7 @@ dependencies {
implementation("androidx.hilt:hilt-work:${Versions.hilt_androidx}")
implementation("androidx.hilt:hilt-lifecycle-viewmodel:${Versions.hilt_androidx}")
implementation("androidx.fragment:fragment-ktx:1.2.5")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:${Versions.lifecycle}")
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:${Versions.lifecycle}")
implementation("androidx.room:room-ktx:${Versions.room}")

@ -20,8 +20,8 @@ import androidx.appcompat.widget.SearchView
import androidx.appcompat.widget.Toolbar
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.paging.PagedList
import androidx.recyclerview.widget.DefaultItemAnimator
@ -126,7 +126,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
@BindView(R.id.recycler_view)
lateinit var recyclerView: RecyclerView
private lateinit var taskListViewModel: TaskListViewModel
private val listViewModel: TaskListViewModel by activityViewModels()
private lateinit var taskAdapter: TaskAdapter
private var recyclerAdapter: TaskListRecyclerAdapter? = null
private lateinit var filter: Filter
@ -197,14 +197,13 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
// set up list adapters
taskAdapter = taskAdapterProvider.createTaskAdapter(filter)
taskAdapter.setCollapsed(savedInstanceState?.getLongArray(EXTRA_COLLAPSED))
taskListViewModel = ViewModelProvider(requireActivity()).get(TaskListViewModel::class.java)
if (savedInstanceState != null) {
searchQuery = savedInstanceState.getString(EXTRA_SEARCH)
}
taskListViewModel.setFilter((if (searchQuery == null) filter else createSearchFilter(searchQuery!!)))
listViewModel.setFilter((if (searchQuery == null) filter else createSearchFilter(searchQuery!!)))
(recyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false
recyclerView.layoutManager = LinearLayoutManager(context)
taskListViewModel.observe(
listViewModel.observe(
this,
Observer { list: List<TaskContainer> ->
submitList(list)
@ -298,11 +297,11 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
private fun searchByQuery(query: String?) {
searchQuery = query?.trim { it <= ' ' } ?: ""
if (searchQuery?.isEmpty() == true) {
taskListViewModel.searchByFilter(
listViewModel.searchByFilter(
BuiltInFilterExposer.getMyTasksFilter(requireContext().resources))
} else {
val savedFilter = createSearchFilter(searchQuery!!)
taskListViewModel.searchByFilter(savedFilter)
listViewModel.searchByFilter(savedFilter)
}
}
@ -483,7 +482,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
}
fun loadTaskListContent() {
taskListViewModel.invalidate()
listViewModel.invalidate()
}
fun getFilter(): Filter {
@ -579,7 +578,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
}
override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
taskListViewModel.searchByFilter(filter)
listViewModel.searchByFilter(filter)
searchDisposable?.dispose()
searchQuery = null
setupMenu()

Loading…
Cancel
Save