Remove: MainNavFragments extension of CursorOwner.Callback

This commit is contained in:
machiav3lli 2022-01-13 01:05:12 +01:00
parent d427968ccb
commit d183ebd5fc
4 changed files with 6 additions and 80 deletions

View File

@ -1,17 +1,13 @@
package com.looker.droidify.ui.fragments
import android.database.Cursor
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.recyclerview.widget.LinearLayoutManager
import com.looker.droidify.R
import com.looker.droidify.database.CursorOwner
import com.looker.droidify.database.Product
import com.looker.droidify.databinding.FragmentExploreXBinding
import com.looker.droidify.entity.Repository
import com.looker.droidify.ui.adapters.AppListAdapter
@ -20,11 +16,10 @@ import com.looker.droidify.utility.RxUtils
import com.looker.droidify.utility.extension.resources.getDrawableCompat
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
import me.zhanghai.android.fastscroll.FastScrollerBuilder
class ExploreFragment : MainNavFragmentX(), CursorOwner.Callback {
// TODO create categories layouts that hold the apps in horizontal layout
class ExploreFragment : MainNavFragmentX() {
override lateinit var viewModel: MainNavFragmentViewModelX
private lateinit var binding: FragmentExploreXBinding
@ -71,20 +66,4 @@ class ExploreFragment : MainNavFragmentX(), CursorOwner.Callback {
.observeOn(AndroidSchedulers.mainThread())
.subscribe { repositories = it }
}
override fun onCursorData(request: CursorOwner.Request, cursor: Cursor?) {
(binding.recyclerView.adapter as? AppListAdapter)?.apply {
this.cursor = cursor
lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.RESUMED) {
emptyText = when {
cursor == null -> ""
viewModel.searchQuery.first()
.isNotEmpty() -> getString(R.string.no_matching_applications_found)
else -> getString(R.string.no_applications_available)
}
}
}
}
}
}

View File

@ -1,6 +1,5 @@
package com.looker.droidify.ui.fragments
import android.database.Cursor
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@ -9,7 +8,6 @@ import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.looker.droidify.R
import com.looker.droidify.database.CursorOwner
import com.looker.droidify.databinding.FragmentInstalledXBinding
import com.looker.droidify.entity.ProductItem
import com.looker.droidify.entity.Repository
@ -24,7 +22,7 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
import me.zhanghai.android.fastscroll.FastScrollerBuilder
class InstalledFragment : MainNavFragmentX(), CursorOwner.Callback {
class InstalledFragment : MainNavFragmentX() {
override lateinit var viewModel: MainNavFragmentViewModelX
private lateinit var binding: FragmentInstalledXBinding
@ -88,28 +86,4 @@ class InstalledFragment : MainNavFragmentX(), CursorOwner.Callback {
.observeOn(AndroidSchedulers.mainThread())
.subscribe { repositories = it }
}
override fun onCursorData(request: CursorOwner.Request, cursor: Cursor?) {
// TODO get a list instead of the cursor
// TODO use LiveData and observers instead of listeners
val appItemList: List<ProductItem> = listOf()
installedItemAdapter.set(appItemList
.map { VAppItem(it, repositories[it.repositoryId]) }
)
updatedItemAdapter.set(appItemList.filter { it.canUpdate }
.map { HAppItem(it, repositories[it.repositoryId]) }
)
/*
lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.RESUMED) {
emptyText = when {
cursor == null -> ""
viewModel.searchQuery.first()
.isNotEmpty() -> getString(R.string.no_matching_applications_found)
else -> getString(R.string.all_applications_up_to_date)
}
}
}
*/
}
}

View File

@ -1,6 +1,5 @@
package com.looker.droidify.ui.fragments
import android.database.Cursor
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@ -9,7 +8,6 @@ import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.looker.droidify.R
import com.looker.droidify.database.CursorOwner
import com.looker.droidify.databinding.FragmentLatestXBinding
import com.looker.droidify.entity.ProductItem
import com.looker.droidify.entity.Repository
@ -24,7 +22,7 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
import me.zhanghai.android.fastscroll.FastScrollerBuilder
class LatestFragment : MainNavFragmentX(), CursorOwner.Callback {
class LatestFragment : MainNavFragmentX() {
override lateinit var viewModel: MainNavFragmentViewModelX
private lateinit var binding: FragmentLatestXBinding
@ -88,28 +86,4 @@ class LatestFragment : MainNavFragmentX(), CursorOwner.Callback {
.observeOn(AndroidSchedulers.mainThread())
.subscribe { repositories = it }
}
override fun onCursorData(request: CursorOwner.Request, cursor: Cursor?) {
// TODO get a list instead of the cursor
// TODO use LiveData and observers instead of listeners
val appItemList: List<ProductItem> = listOf()
updatedItemAdapter.set(appItemList // .filter { !it.hasOneRelease }
.map { VAppItem(it, repositories[it.repositoryId]) }
)
newItemAdapter.set(appItemList // .filter { it.hasOneRelease }
.map { HAppItem(it, repositories[it.repositoryId]) }
)
/*
lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.RESUMED) {
emptyText = when {
cursor == null -> ""
viewModel.searchQuery.first()
.isNotEmpty() -> getString(R.string.no_matching_applications_found)
else -> getString(R.string.all_applications_up_to_date)
}
}
}
*/
}
}

View File

@ -2,12 +2,11 @@ package com.looker.droidify.ui.fragments
import androidx.fragment.app.Fragment
import com.looker.droidify.R
import com.looker.droidify.database.CursorOwner
import com.looker.droidify.entity.ProductItem
import com.looker.droidify.ui.activities.MainActivityX
import com.looker.droidify.ui.viewmodels.MainNavFragmentViewModelX
abstract class MainNavFragmentX : Fragment(), CursorOwner.Callback {
abstract class MainNavFragmentX : Fragment() {
val mainActivityX: MainActivityX
get() = requireActivity() as MainActivityX
abstract var viewModel: MainNavFragmentViewModelX