From de8952f3abe35dc4d1b0c6487a157bdbf27d829a Mon Sep 17 00:00:00 2001 From: machiav3lli Date: Fri, 28 Jan 2022 01:03:20 +0100 Subject: [PATCH] Clean up & add TODOs --- .../droidify/screen/ScreenshotsAdapter.kt | 6 ++++-- .../looker/droidify/screen/TabsFragment.kt | 14 ++++++++++---- .../looker/droidify/service/SyncService.kt | 6 +++++- .../droidify/ui/adapters/AppDetailAdapter.kt | 1 + .../ui/fragments/AppDetailFragment.kt | 4 +--- .../droidify/ui/fragments/ExploreFragment.kt | 8 +++++++- .../droidify/ui/fragments/MainNavFragmentX.kt | 19 ++++++++++++++----- 7 files changed, 42 insertions(+), 16 deletions(-) diff --git a/src/main/kotlin/com/looker/droidify/screen/ScreenshotsAdapter.kt b/src/main/kotlin/com/looker/droidify/screen/ScreenshotsAdapter.kt index 1e292a28..8964a7f8 100644 --- a/src/main/kotlin/com/looker/droidify/screen/ScreenshotsAdapter.kt +++ b/src/main/kotlin/com/looker/droidify/screen/ScreenshotsAdapter.kt @@ -53,11 +53,13 @@ class ScreenshotsAdapter(private val onClick: (Product.Screenshot) -> Unit) : RecyclerView.LayoutParams.WRAP_CONTENT, RecyclerView.LayoutParams.MATCH_PARENT ).apply { - marginStart = image.context.resources.getDimension(R.dimen.shape_small_corner).toInt() + marginStart = + image.context.resources.getDimension(R.dimen.shape_small_corner).toInt() marginEnd = image.context.resources.getDimension(R.dimen.shape_small_corner).toInt() } - val placeholder = image.context.getDrawableCompat(R.drawable.ic_screenshot_placeholder).mutate() + val placeholder = + image.context.getDrawableCompat(R.drawable.ic_screenshot_placeholder).mutate() placeholder.setTint(surfaceColor) this.placeholder = PaddingDrawable(placeholder, 2f) } diff --git a/src/main/kotlin/com/looker/droidify/screen/TabsFragment.kt b/src/main/kotlin/com/looker/droidify/screen/TabsFragment.kt index 5ad0307b..7071cac5 100644 --- a/src/main/kotlin/com/looker/droidify/screen/TabsFragment.kt +++ b/src/main/kotlin/com/looker/droidify/screen/TabsFragment.kt @@ -3,7 +3,10 @@ package com.looker.droidify.screen import android.animation.ValueAnimator import android.content.Context import android.os.Bundle -import android.view.* +import android.view.Gravity +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import android.view.animation.AccelerateInterpolator import android.view.animation.DecelerateInterpolator import androidx.appcompat.widget.SearchView @@ -26,8 +29,10 @@ import com.looker.droidify.service.SyncService import com.looker.droidify.ui.fragments.AppListFragment import com.looker.droidify.utility.RxUtils import com.looker.droidify.utility.Utils -import com.looker.droidify.utility.extension.android.* -import com.looker.droidify.utility.extension.resources.* +import com.looker.droidify.utility.extension.android.Android +import com.looker.droidify.utility.extension.resources.getDrawableCompat +import com.looker.droidify.utility.extension.resources.getDrawableFromAttr +import com.looker.droidify.utility.extension.resources.sizeScaled import com.looker.droidify.widget.DividerItemDecoration import com.looker.droidify.widget.FocusSearchView import com.looker.droidify.widget.StableRecyclerAdapter @@ -36,7 +41,8 @@ import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.disposables.Disposable import io.reactivex.rxjava3.schedulers.Schedulers import kotlinx.coroutines.launch -import kotlin.math.* +import kotlin.math.abs +import kotlin.math.roundToInt class TabsFragment : ScreenFragment() { diff --git a/src/main/kotlin/com/looker/droidify/service/SyncService.kt b/src/main/kotlin/com/looker/droidify/service/SyncService.kt index 1a47aa6c..71277f56 100644 --- a/src/main/kotlin/com/looker/droidify/service/SyncService.kt +++ b/src/main/kotlin/com/looker/droidify/service/SyncService.kt @@ -352,7 +352,11 @@ class SyncService : ConnectionService() { val unstable = Preferences[Preferences.Key.UpdateUnstable] lateinit var disposable: Disposable disposable = RepositoryUpdater - .update(this@SyncService, repository, unstable) { stage, progress, total -> + .update( + this@SyncService, + repository, + unstable + ) { stage, progress, total -> if (!disposable.isDisposed) { scope.launch { mutableStateSubject.emit( diff --git a/src/main/kotlin/com/looker/droidify/ui/adapters/AppDetailAdapter.kt b/src/main/kotlin/com/looker/droidify/ui/adapters/AppDetailAdapter.kt index 1f63d44c..d11383d2 100644 --- a/src/main/kotlin/com/looker/droidify/ui/adapters/AppDetailAdapter.kt +++ b/src/main/kotlin/com/looker/droidify/ui/adapters/AppDetailAdapter.kt @@ -62,6 +62,7 @@ import java.lang.ref.WeakReference import java.util.* import kotlin.math.roundToInt +// TODO break this down class AppDetailAdapter(private val callbacks: Callbacks) : StableRecyclerAdapter() { diff --git a/src/main/kotlin/com/looker/droidify/ui/fragments/AppDetailFragment.kt b/src/main/kotlin/com/looker/droidify/ui/fragments/AppDetailFragment.kt index bb18b0a8..a61b18c6 100644 --- a/src/main/kotlin/com/looker/droidify/ui/fragments/AppDetailFragment.kt +++ b/src/main/kotlin/com/looker/droidify/ui/fragments/AppDetailFragment.kt @@ -32,7 +32,7 @@ import com.looker.droidify.utility.RxUtils import com.looker.droidify.utility.Utils import com.looker.droidify.utility.Utils.rootInstallerEnabled import com.looker.droidify.utility.Utils.startUpdate -import com.looker.droidify.utility.extension.android.* +import com.looker.droidify.utility.extension.android.Android import com.looker.droidify.utility.extension.text.trimAfter import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Observable @@ -45,8 +45,6 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import java.util.* -import kotlin.collections.ArrayList class AppDetailFragment() : ScreenFragment(), AppDetailAdapter.Callbacks { companion object { 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 90abe46c..0d7a45e5 100644 --- a/src/main/kotlin/com/looker/droidify/ui/fragments/ExploreFragment.kt +++ b/src/main/kotlin/com/looker/droidify/ui/fragments/ExploreFragment.kt @@ -12,11 +12,12 @@ import com.looker.droidify.ui.items.VAppItem import com.looker.droidify.utility.PRODUCT_ASYNC_DIFFER_CONFIG import com.looker.droidify.utility.RxUtils import com.mikepenz.fastadapter.FastAdapter +import com.mikepenz.fastadapter.IAdapter import com.mikepenz.fastadapter.paged.PagedModelAdapter import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers -// TODO create categories layouts that hold the apps in horizontal layout +// TODO add chips bar to navigate categories class ExploreFragment : MainNavFragmentX() { private lateinit var binding: FragmentExploreXBinding @@ -55,6 +56,11 @@ class ExploreFragment : MainNavFragmentX() { } appsFastAdapter = FastAdapter.with(appsItemAdapter) appsFastAdapter?.setHasStableIds(true) + appsFastAdapter?.onClickListener = + { _: View?, _: IAdapter?, item: VAppItem?, position: Int? -> + launchFragment(AppFragmentX(item?.item?.packageName ?: "")) + false + } binding.recyclerView.apply { layoutManager = LinearLayoutManager(requireContext()) setHasFixedSize(true) diff --git a/src/main/kotlin/com/looker/droidify/ui/fragments/MainNavFragmentX.kt b/src/main/kotlin/com/looker/droidify/ui/fragments/MainNavFragmentX.kt index 95a431d3..1372d64f 100644 --- a/src/main/kotlin/com/looker/droidify/ui/fragments/MainNavFragmentX.kt +++ b/src/main/kotlin/com/looker/droidify/ui/fragments/MainNavFragmentX.kt @@ -41,14 +41,23 @@ abstract class MainNavFragmentX : BaseNavFragment() { } } } + + protected fun launchFragment(fragment: Fragment): Boolean { + requireActivity().supportFragmentManager + .beginTransaction() + .replace(R.id.fragment_content, fragment) + .addToBackStack(null) + .commit() + return true + } } enum class Source(val sections: Boolean, val order: Boolean) { - AVAILABLE( true, true), - INSTALLED( false, true), - UPDATES( false, false), - UPDATED( false, true), - NEW( false, true) + AVAILABLE(true, true), + INSTALLED(false, true), + UPDATES(false, false), + UPDATED(false, true), + NEW(false, true) } sealed class Request {