Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ff648d4b authored by Hasib Prince's avatar Hasib Prince
Browse files

Merge branch '788-fix_category_display' into 'release-1.5-rc3'

Issue 788: Fix category display in app details page

See merge request !229
parents f81e3288 61ff4c6e
Loading
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import android.widget.RelativeLayout
import androidx.core.content.ContextCompat
import androidx.core.graphics.BlendModeColorFilterCompat
import androidx.core.graphics.BlendModeCompat
import androidx.core.view.isVisible
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
@@ -325,7 +326,9 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) {
            appInfoFetchViewModel.getAuthorName(it).observe(viewLifecycleOwner) {
                appAuthor.text = it
            }
            categoryTitle.text = it.category

            updateCategoryTitle(it)

            if (it.origin == Origin.CLEANAPK) {
                sourceTag.visibility = View.VISIBLE
                sourceTag.text = it.source
@@ -338,6 +341,20 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) {
        }
    }

    private fun updateCategoryTitle(app: FusedApp) {
        binding.titleInclude.apply {
            var catText = app.category.ifBlank { args.category }
            when {
                catText.isBlank() -> categoryTitle.isVisible = false
                catText == "game_open_games" -> catText = getString(R.string.games) // F-droid games
                catText == "web_games" -> catText = getString(R.string.games) // PWA games
            }

            catText = catText.replace("_", " ")
            categoryTitle.text = catText
        }
    }

    private fun setupScreenshotRVAdapter() {
        screenshotsRVAdapter = ApplicationScreenshotsRVAdapter(origin)
        binding.recyclerView.apply {
+1 −1
Original line number Diff line number Diff line
@@ -216,7 +216,7 @@ class ApplicationListFragment :
        ) {
            return
        }
        listAdapter?.setData(fusedAppResult.data!!)
        listAdapter?.setData(fusedAppResult.data!!, args.translation)
        listAdapter?.let { adapter ->
            observeDownloadList(adapter)
        }
+13 −4
Original line number Diff line number Diff line
@@ -67,6 +67,8 @@ class ApplicationListRVAdapter(

    private val TAG = ApplicationListRVAdapter::class.java.simpleName

    private var optionalCategory = ""

    private val shimmer = Shimmer.ColorHighlightBuilder()
        .setDuration(500)
        .setBaseAlpha(0.7f)
@@ -200,26 +202,30 @@ class ApplicationListRVAdapter(
        searchApp: FusedApp,
        view: View
    ) {
        val catText = searchApp.category.ifBlank { optionalCategory }
        val action = when (currentDestinationId) {
            R.id.applicationListFragment -> {
                ApplicationListFragmentDirections.actionApplicationListFragmentToApplicationFragment(
                    searchApp._id,
                    searchApp.package_name,
                    searchApp.origin
                    searchApp.origin,
                    catText,
                )
            }
            R.id.searchFragment -> {
                SearchFragmentDirections.actionSearchFragmentToApplicationFragment(
                    searchApp._id,
                    searchApp.package_name,
                    searchApp.origin
                    searchApp.origin,
                    catText,
                )
            }
            R.id.updatesFragment -> {
                UpdatesFragmentDirections.actionUpdatesFragmentToApplicationFragment(
                    searchApp._id,
                    searchApp.package_name,
                    searchApp.origin
                    searchApp.origin,
                    catText,
                )
            }
            else -> null
@@ -515,7 +521,10 @@ class ApplicationListRVAdapter(
        progressBarInstall.visibility = View.GONE
    }

    fun setData(newList: List<FusedApp>) {
    fun setData(newList: List<FusedApp>, optionalCategory: String? = null) {
        optionalCategory?.let {
            this.optionalCategory = it
        }
        currentList.forEach {
            newList.find { item -> item._id == it._id }?.let { foundItem ->
                foundItem.privacyScore = it.privacyScore
+2 −1
Original line number Diff line number Diff line
@@ -96,7 +96,8 @@ class HomeChildRVAdapter(
                val action = HomeFragmentDirections.actionHomeFragmentToApplicationFragment(
                    homeApp._id,
                    homeApp.package_name,
                    homeApp.origin
                    homeApp.origin,
                    homeApp.category
                )
                holder.itemView.findNavController().navigate(action)
            }
+3 −0
Original line number Diff line number Diff line
@@ -106,6 +106,9 @@
            android:name="origin"
            android:defaultValue="GPLAY"
            app:argType="foundation.e.apps.utils.enums.Origin" />
        <argument
            android:name="category"
            app:argType="string" />
        <deepLink
            app:action="android.intent.action.VIEW"
            app:uri="play.google.com/store/apps/details?id={packageName}" />