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 package com.looker.droidify.ui.fragments
import android.database.Cursor
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.looker.droidify.R 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.databinding.FragmentExploreXBinding
import com.looker.droidify.entity.Repository import com.looker.droidify.entity.Repository
import com.looker.droidify.ui.adapters.AppListAdapter 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 com.looker.droidify.utility.extension.resources.getDrawableCompat
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
import me.zhanghai.android.fastscroll.FastScrollerBuilder 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 override lateinit var viewModel: MainNavFragmentViewModelX
private lateinit var binding: FragmentExploreXBinding private lateinit var binding: FragmentExploreXBinding
@ -71,20 +66,4 @@ class ExploreFragment : MainNavFragmentX(), CursorOwner.Callback {
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe { repositories = it } .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 package com.looker.droidify.ui.fragments
import android.database.Cursor
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
@ -9,7 +8,6 @@ import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.looker.droidify.R import com.looker.droidify.R
import com.looker.droidify.database.CursorOwner
import com.looker.droidify.databinding.FragmentInstalledXBinding import com.looker.droidify.databinding.FragmentInstalledXBinding
import com.looker.droidify.entity.ProductItem import com.looker.droidify.entity.ProductItem
import com.looker.droidify.entity.Repository import com.looker.droidify.entity.Repository
@ -24,7 +22,7 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
import me.zhanghai.android.fastscroll.FastScrollerBuilder import me.zhanghai.android.fastscroll.FastScrollerBuilder
class InstalledFragment : MainNavFragmentX(), CursorOwner.Callback { class InstalledFragment : MainNavFragmentX() {
override lateinit var viewModel: MainNavFragmentViewModelX override lateinit var viewModel: MainNavFragmentViewModelX
private lateinit var binding: FragmentInstalledXBinding private lateinit var binding: FragmentInstalledXBinding
@ -88,28 +86,4 @@ class InstalledFragment : MainNavFragmentX(), CursorOwner.Callback {
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe { repositories = it } .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 package com.looker.droidify.ui.fragments
import android.database.Cursor
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
@ -9,7 +8,6 @@ import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.looker.droidify.R import com.looker.droidify.R
import com.looker.droidify.database.CursorOwner
import com.looker.droidify.databinding.FragmentLatestXBinding import com.looker.droidify.databinding.FragmentLatestXBinding
import com.looker.droidify.entity.ProductItem import com.looker.droidify.entity.ProductItem
import com.looker.droidify.entity.Repository import com.looker.droidify.entity.Repository
@ -24,7 +22,7 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
import me.zhanghai.android.fastscroll.FastScrollerBuilder import me.zhanghai.android.fastscroll.FastScrollerBuilder
class LatestFragment : MainNavFragmentX(), CursorOwner.Callback { class LatestFragment : MainNavFragmentX() {
override lateinit var viewModel: MainNavFragmentViewModelX override lateinit var viewModel: MainNavFragmentViewModelX
private lateinit var binding: FragmentLatestXBinding private lateinit var binding: FragmentLatestXBinding
@ -88,28 +86,4 @@ class LatestFragment : MainNavFragmentX(), CursorOwner.Callback {
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe { repositories = it } .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 androidx.fragment.app.Fragment
import com.looker.droidify.R import com.looker.droidify.R
import com.looker.droidify.database.CursorOwner
import com.looker.droidify.entity.ProductItem import com.looker.droidify.entity.ProductItem
import com.looker.droidify.ui.activities.MainActivityX import com.looker.droidify.ui.activities.MainActivityX
import com.looker.droidify.ui.viewmodels.MainNavFragmentViewModelX import com.looker.droidify.ui.viewmodels.MainNavFragmentViewModelX
abstract class MainNavFragmentX : Fragment(), CursorOwner.Callback { abstract class MainNavFragmentX : Fragment() {
val mainActivityX: MainActivityX val mainActivityX: MainActivityX
get() = requireActivity() as MainActivityX get() = requireActivity() as MainActivityX
abstract var viewModel: MainNavFragmentViewModelX abstract var viewModel: MainNavFragmentViewModelX