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

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

Merge branch '656-app_details_loading_time' into 'main'

Issue 656: Fix app details page taking extremely long time to load

See merge request !208
parents 140c5ea9 d03e5443
Loading
Loading
Loading
Loading
Loading
+23 −3
Original line number Diff line number Diff line
@@ -177,6 +177,8 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) {
         */
        val it = resultPair.first

        togglePrivacyInfoVisibility(false)

        isDetailsLoaded = true
        if (applicationViewModel.appStatus.value == null) {
            applicationViewModel.appStatus.value = it.status
@@ -211,6 +213,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) {
        mainActivityViewModel.downloadList.observe(viewLifecycleOwner) { list ->
            applicationViewModel.updateApplicationStatus(list)
        }
        stopLoadingUI()
    }

    private fun updateAppDescriptionText(it: FusedApp) {
@@ -383,7 +386,13 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) {
        /* Remove trailing slash (if present) that can become part of the packageName */
        val packageName = args.packageName.run { if (endsWith('/')) dropLast(1) else this }

        applicationViewModel.loadData(args.id, packageName, origin, isFdroidDeepLink, authObjectList) {
        applicationViewModel.loadData(
            args.id,
            packageName,
            origin,
            isFdroidDeepLink,
            authObjectList
        ) {
            clearAndRestartGPlayLogin()
            true
        }
@@ -732,7 +741,6 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) {
    private fun fetchAppTracker(fusedApp: FusedApp) {
        privacyInfoViewModel.getAppPrivacyInfoLiveData(fusedApp).observe(viewLifecycleOwner) {
            updatePrivacyScore()
            stopLoadingUI()
        }
    }

@@ -761,6 +769,18 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) {
            )
            appPrivacyScore.compoundDrawablePadding = 15
        }
        togglePrivacyInfoVisibility(true)
    }

    private fun togglePrivacyInfoVisibility(visible: Boolean) {
        val visibility = if (visible) View.VISIBLE else View.INVISIBLE
        binding.privacyInclude.run {
            appPermissions.visibility = visibility
            appTrackers.visibility = visibility
            loadingBar.isVisible = !visible
        }
        binding.ratingsInclude.loadingBar.isVisible = !visible
        binding.ratingsInclude.appPrivacyScore.visibility = visibility
    }

    override fun onDestroyView() {
+2 −2
Original line number Diff line number Diff line
@@ -17,8 +17,8 @@
  -->

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:width="18dp"
    android:height="18dp"
    android:viewportWidth="24"
    android:viewportHeight="24"
    android:tint="@color/colorAccent"
+21 −31
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@
        android:textStyle="bold" />

    <RelativeLayout
        android:id="@+id/appPermissions"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
@@ -44,49 +43,40 @@
        android:layout_marginBottom="10dp">

        <com.google.android.material.textview.MaterialTextView
            android:id="@+id/appPermissions"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="10dp"
            android:background="?android:selectableItemBackground"
            android:text="@string/permissions"
            android:textColor="?android:textColorPrimary"
            android:textSize="15sp" />

        <ImageView
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:padding="4dp"
            android:src="@drawable/ic_arrow_forward"
            android:layout_centerVertical="true"
            android:layout_alignParentEnd="true"/>
    </RelativeLayout>
            android:textSize="15sp"
            android:drawableEnd="@drawable/ic_arrow_forward"
            android:visibility="invisible" />

    <RelativeLayout
        <com.google.android.material.textview.MaterialTextView
            android:id="@+id/appTrackers"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/appPermissions"
            android:layout_marginTop="5dp"
        android:layout_marginStart="20dp"
        android:layout_marginEnd="20dp"
        android:layout_marginBottom="10dp">

        <com.google.android.material.textview.MaterialTextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginBottom="10dp"
            android:background="?android:selectableItemBackground"
            android:text="@string/trackers_title"
            android:textColor="?android:textColorPrimary"
            android:textSize="15sp" />
            android:textSize="15sp"
            android:drawableEnd="@drawable/ic_arrow_forward"
            android:visibility="invisible" />

        <ImageView
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:padding="4dp"
            android:src="@drawable/ic_arrow_forward"
            android:layout_centerVertical="true"
            android:layout_alignParentEnd="true"/>
    </RelativeLayout>
        <ProgressBar
            android:id="@+id/loadingBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:visibility="visible"
            />

    </RelativeLayout>

</LinearLayout>
+24 −5
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@
                app:drawableStartCompat="@drawable/ic_star" />
        </LinearLayout>

        <LinearLayout
        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/appPrivacyScoreLayout"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
@@ -80,24 +80,43 @@
            android:gravity="center"
            android:orientation="vertical">

            <ProgressBar
                android:id="@+id/loadingBar"
                android:layout_width="wrap_content"
                android:layout_height="25dp"
                android:visibility="visible"
                app:layout_constraintBottom_toBottomOf="@+id/appPrivacyScore"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="@+id/appPrivacyScore" />

            <com.google.android.material.textview.MaterialTextView
                android:id="@+id/appPrivacyScore"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/not_available"
                android:textColor="?android:textColorPrimary"
                android:textSize="25sp" />
                android:textSize="25sp"
                android:visibility="invisible"
                app:layout_constraintBottom_toTopOf="@+id/materialTextView2"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <com.google.android.material.textview.MaterialTextView
                android:id="@+id/materialTextView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:drawablePadding="5sp"
                android:drawableTint="@color/colorAccent"
                android:text="@string/privacy"
                android:textColor="?android:textColorPrimary"
                android:textSize="15sp"
                android:drawableTint="@color/colorAccent"
                app:drawableStartCompat="@drawable/ic_lock" />
        </LinearLayout>
                app:drawableStartCompat="@drawable/ic_lock"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent" />
        </androidx.constraintlayout.widget.ConstraintLayout>

    </LinearLayout>