diff --git a/src/main/kotlin/com/looker/droidify/ui/fragments/ExploreFragment.kt b/src/main/kotlin/com/looker/droidify/ui/fragments/ExploreFragment.kt index 5e97c6b4..67d6f378 100644 --- a/src/main/kotlin/com/looker/droidify/ui/fragments/ExploreFragment.kt +++ b/src/main/kotlin/com/looker/droidify/ui/fragments/ExploreFragment.kt @@ -6,21 +6,17 @@ import android.view.View import android.view.ViewGroup import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager -import com.looker.droidify.R 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 import com.looker.droidify.ui.items.VAppItem import com.looker.droidify.ui.viewmodels.MainNavFragmentViewModelX import com.looker.droidify.utility.PRODUCT_ASYNC_DIFFER_CONFIG import com.looker.droidify.utility.RxUtils -import com.looker.droidify.utility.extension.resources.getDrawableCompat import com.mikepenz.fastadapter.FastAdapter import com.mikepenz.fastadapter.paged.PagedModelAdapter import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers -import me.zhanghai.android.fastscroll.FastScrollerBuilder // TODO create categories layouts that hold the apps in horizontal layout class ExploreFragment : MainNavFragmentX() { @@ -52,24 +48,16 @@ class ExploreFragment : MainNavFragmentX() { super.onViewCreated(view, savedInstanceState) appsItemAdapter = PagedModelAdapter(PRODUCT_ASYNC_DIFFER_CONFIG) { - it.data_item?.let { item -> - VAppItem(item, repositories[it.repository_id]) - } + it.data_item?.let { item -> VAppItem(item, repositories[it.repository_id]) } } - appsFastAdapter = FastAdapter.with(appsItemAdapter) appsFastAdapter?.setHasStableIds(true) binding.recyclerView.apply { layoutManager = LinearLayoutManager(requireContext()) setHasFixedSize(true) - recycledViewPool.setMaxRecycledViews(AppListAdapter.ViewType.PRODUCT.ordinal, 30) adapter = appsFastAdapter - FastScrollerBuilder(this) - .useMd2Style() - .setThumbDrawable(this.context.getDrawableCompat(R.drawable.scrollbar_thumb)) - .build() } - //viewModel.fillList(source) + viewModel.db.repositoryDao.allFlowable .observeOn(Schedulers.io()) .flatMapSingle { list -> RxUtils.querySingle { list.mapNotNull { it.trueData } } } diff --git a/src/main/kotlin/com/looker/droidify/ui/fragments/InstalledFragment.kt b/src/main/kotlin/com/looker/droidify/ui/fragments/InstalledFragment.kt index 8b01c303..3bca294b 100644 --- a/src/main/kotlin/com/looker/droidify/ui/fragments/InstalledFragment.kt +++ b/src/main/kotlin/com/looker/droidify/ui/fragments/InstalledFragment.kt @@ -7,22 +7,18 @@ import android.view.ViewGroup import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.looker.droidify.R import com.looker.droidify.database.Product import com.looker.droidify.databinding.FragmentInstalledXBinding import com.looker.droidify.entity.Repository -import com.looker.droidify.ui.adapters.AppListAdapter import com.looker.droidify.ui.items.HAppItem import com.looker.droidify.ui.items.VAppItem import com.looker.droidify.ui.viewmodels.MainNavFragmentViewModelX import com.looker.droidify.utility.PRODUCT_ASYNC_DIFFER_CONFIG import com.looker.droidify.utility.RxUtils -import com.looker.droidify.utility.extension.resources.getDrawableCompat import com.mikepenz.fastadapter.FastAdapter import com.mikepenz.fastadapter.paged.PagedModelAdapter import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers -import me.zhanghai.android.fastscroll.FastScrollerBuilder class InstalledFragment : MainNavFragmentX() { @@ -56,36 +52,25 @@ class InstalledFragment : MainNavFragmentX() { super.onViewCreated(view, savedInstanceState) installedItemAdapter = PagedModelAdapter(PRODUCT_ASYNC_DIFFER_CONFIG) { - it.data_item?.let { item -> - VAppItem(item, repositories[it.repository_id]) - } + it.data_item?.let { item -> VAppItem(item, repositories[it.repository_id]) } } updatedItemAdapter = PagedModelAdapter(PRODUCT_ASYNC_DIFFER_CONFIG) { - it.data_item?.let { item -> - // TODO filter for only updated apps and add placeholder - HAppItem(item, repositories[it.repository_id]) - } + // TODO filter for only updated apps and add placeholder + it.data_item?.let { item -> HAppItem(item, repositories[it.repository_id]) } } - installedFastAdapter = FastAdapter.with(installedItemAdapter) installedFastAdapter?.setHasStableIds(true) binding.installedRecycler.apply { layoutManager = LinearLayoutManager(requireContext()) - recycledViewPool.setMaxRecycledViews(AppListAdapter.ViewType.PRODUCT.ordinal, 30) adapter = installedFastAdapter - FastScrollerBuilder(this) - .useMd2Style() - .setThumbDrawable(this.context.getDrawableCompat(R.drawable.scrollbar_thumb)) - .build() } updatedFastAdapter = FastAdapter.with(updatedItemAdapter) updatedFastAdapter?.setHasStableIds(true) binding.updatedRecycler.apply { layoutManager = LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false) - recycledViewPool.setMaxRecycledViews(AppListAdapter.ViewType.PRODUCT.ordinal, 30) adapter = updatedFastAdapter } - //viewModel.fillList(source) + viewModel.db.repositoryDao.allFlowable .observeOn(Schedulers.io()) .flatMapSingle { list -> RxUtils.querySingle { list.mapNotNull { it.trueData } } } diff --git a/src/main/kotlin/com/looker/droidify/ui/fragments/LatestFragment.kt b/src/main/kotlin/com/looker/droidify/ui/fragments/LatestFragment.kt index a2aef47a..ead3304d 100644 --- a/src/main/kotlin/com/looker/droidify/ui/fragments/LatestFragment.kt +++ b/src/main/kotlin/com/looker/droidify/ui/fragments/LatestFragment.kt @@ -7,22 +7,18 @@ import android.view.ViewGroup import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.looker.droidify.R import com.looker.droidify.database.Product import com.looker.droidify.databinding.FragmentLatestXBinding import com.looker.droidify.entity.Repository -import com.looker.droidify.ui.adapters.AppListAdapter import com.looker.droidify.ui.items.HAppItem import com.looker.droidify.ui.items.VAppItem import com.looker.droidify.ui.viewmodels.MainNavFragmentViewModelX import com.looker.droidify.utility.PRODUCT_ASYNC_DIFFER_CONFIG import com.looker.droidify.utility.RxUtils -import com.looker.droidify.utility.extension.resources.getDrawableCompat import com.mikepenz.fastadapter.FastAdapter import com.mikepenz.fastadapter.paged.PagedModelAdapter import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers -import me.zhanghai.android.fastscroll.FastScrollerBuilder class LatestFragment : MainNavFragmentX() { @@ -57,36 +53,25 @@ class LatestFragment : MainNavFragmentX() { super.onViewCreated(view, savedInstanceState) updatedItemAdapter = PagedModelAdapter(PRODUCT_ASYNC_DIFFER_CONFIG) { - it.data_item?.let { item -> - VAppItem(item, repositories[it.repository_id]) - } + it.data_item?.let { item -> VAppItem(item, repositories[it.repository_id]) } } newItemAdapter = PagedModelAdapter(PRODUCT_ASYNC_DIFFER_CONFIG) { - it.data_item?.let { item -> - // TODO filter for only new apps and add placeholder - HAppItem(item, repositories[it.repository_id]) - } + // TODO filter for only new apps and add placeholder + it.data_item?.let { item -> HAppItem(item, repositories[it.repository_id]) } } - updatedFastAdapter = FastAdapter.with(updatedItemAdapter) updatedFastAdapter?.setHasStableIds(true) binding.updatedRecycler.apply { layoutManager = LinearLayoutManager(requireContext()) - recycledViewPool.setMaxRecycledViews(AppListAdapter.ViewType.PRODUCT.ordinal, 30) adapter = updatedFastAdapter - FastScrollerBuilder(this) - .useMd2Style() - .setThumbDrawable(this.context.getDrawableCompat(R.drawable.scrollbar_thumb)) - .build() } newFastAdapter = FastAdapter.with(newItemAdapter) newFastAdapter?.setHasStableIds(true) binding.newRecycler.apply { layoutManager = LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false) - recycledViewPool.setMaxRecycledViews(AppListAdapter.ViewType.PRODUCT.ordinal, 30) adapter = newFastAdapter } - //viewModel.fillList(source) + viewModel.db.repositoryDao.allFlowable .observeOn(Schedulers.io()) .flatMapSingle { list -> RxUtils.querySingle { list.mapNotNull { it.trueData } } }