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

Commit 962d3d8d authored by Hasib Prince's avatar Hasib Prince
Browse files

App Lounge: fixed flickering in homepage

parent 5dabf764
Loading
Loading
Loading
Loading
Loading
+28 −13
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.os.storage.StorageManager
import android.util.Log
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavOptions
@@ -60,6 +61,7 @@ class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        Timber.d(">>> onCreate")
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

@@ -91,32 +93,35 @@ class MainActivity : AppCompatActivity() {
            if (isInternetAvailable) {
                binding.noInternet.visibility = View.GONE
                binding.fragment.visibility = View.VISIBLE

                // Watch and refresh authentication data
                if(viewModel.authDataJson.value == null) {
                    viewModel.authDataJson.observe(this) {
                        viewModel.handleAuthDataJson()
                    }
                }

            }
        }

        Timber.d(">>> userTypeLiveData: ${viewModel.userType.value}")
        Timber.d(">>> authDataJsonLiveData: ${viewModel.authDataJson.value}")
        viewModel.userType.observe(this) { user ->
            viewModel.handleAuthDataJson()
        }

        if(signInViewModel.authLiveData.value == null) {
            signInViewModel.authLiveData.observe(this) {
                viewModel.updateAuthData(it)
            }

        // Watch and refresh authentication data
        viewModel.authDataJson.observe(this) {
            viewModel.handleAuthDataJson()
        }

        viewModel.authValidity.observe(this) {
            viewModel.handleAuthValidity(it) {
                Log.d(TAG, "Timeout validating auth data!")
                Timber.d("Timeout validating auth data!")
                val lastFragment = navHostFragment.childFragmentManager.fragments[0]
                if (lastFragment is TimeoutFragment) {
                    Log.d(
                        TAG,
                        "Displaying timeout from MainActivity on fragment: " +
                            lastFragment::class.java.name
                    )
                    Timber.d("Displaying timeout from MainActivity on fragment: " + Fragment.java.name)
                    lastFragment.onTimeout()
                }
            }
@@ -288,4 +293,14 @@ class MainActivity : AppCompatActivity() {
        val availableBlocks = stat.availableBlocksLong
        return availableBlocks * blockSize
    }

    override fun onResume() {
        Timber.d(">>> onResume")
        super.onResume()
    }

    override fun onDestroy() {
        Timber.d(">>> onDestroy")
        super.onDestroy()
    }
}
+12 −7
Original line number Diff line number Diff line
@@ -224,12 +224,12 @@ class MainActivityViewModel @Inject constructor(
        if (user == null || json == null) {
            return
        }

        Timber.d(">>> handleAuthDataJson: internet: ${internetConnection.value}")
        if (!isUserLoggedIn(user, json)) {
            generateAuthDataBasedOnUserType(user)
        } else if (isEligibleToValidateJson(json) && internetConnection.value == true) {
            validateAuthData()
            Log.d(TAG, ">>> Authentication data is available!")
            Timber.d(">>> Authentication data is available!")
        }
    }

@@ -239,7 +239,7 @@ class MainActivityViewModel @Inject constructor(
    private fun isEligibleToValidateJson(authDataJson: String?) =
        !authDataJson.isNullOrEmpty() && !userType.value.isNullOrEmpty() && !userType.value.contentEquals(
            User.UNAVAILABLE.name
        )
        ) && authValidity.value != true

    fun handleAuthValidity(isValid: Boolean, handleTimeoOut: () -> Unit) {
        if (isGoogleLoginRunning) {
@@ -247,11 +247,11 @@ class MainActivityViewModel @Inject constructor(
        }
        isTokenValidationCompletedOnce = true
        if (isValid) {
            Log.d(TAG, "Authentication data is valid!")
            Timber.d("Authentication data is valid!")
            generateAuthData()
            return
        }
        Log.d(TAG, ">>> Authentication data validation failed!")
        Timber.d(">>> Authentication data validation failed!")
        destroyCredentials { user ->
            if (isTimeEligibleForTokenRefresh()) {
                generateAuthDataBasedOnUserType(user)
@@ -268,7 +268,7 @@ class MainActivityViewModel @Inject constructor(
        when (User.valueOf(user)) {
            User.ANONYMOUS -> {
                if (authDataJson.value.isNullOrEmpty() && !authRequestRunning) {
                    Log.d(TAG, ">>> Fetching new authentication data")
                    Timber.d(">>> Fetching new authentication data")
                    setFirstTokenFetchTime()
                    getAuthData()
                }
@@ -278,7 +278,7 @@ class MainActivityViewModel @Inject constructor(
            }
            User.GOOGLE -> {
                if (authData.value == null && !authRequestRunning) {
                    Log.d(TAG, ">>> Fetching new authentication data")
                    Timber.d(">>> Fetching new authentication data")
                    setFirstTokenFetchTime()
                    doFetchAuthData()
                }
@@ -540,4 +540,9 @@ class MainActivityViewModel @Inject constructor(
    fun updateAppWarningList() {
        blockedAppRepository.fetchUpdateOfAppWarningList()
    }

    override fun onCleared() {
        Timber.d(">>> onCleared")
        super.onCleared()
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -159,7 +159,9 @@ class HomeFragment : TimeoutFragment(R.layout.fragment_home), FusedAPIInterface
        homeViewModel.homeScreenData.observe(viewLifecycleOwner) {
            stopLoadingUI()
            if (it.second == ResultStatus.OK) {
                Log.d("TAG", ">>> homeScreenData updated ")
                if(homeParentRVAdapter?.itemCount ?: 0 > 0) {
                    return@observe
                }
                dismissTimeoutDialog()
                homeParentRVAdapter?.setData(it.first)
            } else {
+0 −1
Original line number Diff line number Diff line
@@ -94,7 +94,6 @@ class HomeParentRVAdapter(
    ) {
        lifecycleOwner?.let {
            mainActivityViewModel.downloadList.observe(it) {
                Log.d("TAG", ">>> ParentRVAdapter updated downloadlist: ")
                mainActivityViewModel.updateStatusOfFusedApps(fusedHome.list, it)
                (homeChildRVAdapter as HomeChildRVAdapter).setData(fusedHome.list)
            }
+1 −1
Original line number Diff line number Diff line
@@ -132,7 +132,7 @@ class FusedManagerImpl @Inject constructor(
                        pkgManagerModule.installApplication(list, fusedDownload.packageName)
                        Timber.d( "installApp: ENDED ${fusedDownload.name} ${list.size}")
                    } catch (e: Exception) {
                        Log.d(TAG, ">>> installApp app failed ")
                        Timber.d(">>> installApp app failed ")
                        installationIssue(fusedDownload)
                        throw e
                    }
Loading