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

Commit 04884567 authored by Sayantan Roychowdhury's avatar Sayantan Roychowdhury
Browse files

Merge branch 'main' into 5413-timeout_improvement

# Conflicts:
#	app/src/main/java/foundation/e/apps/updates/UpdatesFragment.kt
parents d8899787 ac93b044
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ plugins {
}

def versionMajor = 2
def versionMinor = 2
def versionMinor = 3
def versionPatch = 0

android {
@@ -66,6 +66,12 @@ android {
            signingConfig signingConfigs.releaseStableConfig
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

        applicationVariants.all { variant ->
            variant.outputs.all { output ->
                outputFileName = "AppLounge-${variant.versionName}-${variant.buildType.name}.apk"
            }
        }
    }
    buildFeatures {
        viewBinding true
@@ -116,6 +122,9 @@ dependencies {
    implementation "androidx.viewpager2:viewpager2:1.0.0"
    implementation "androidx.recyclerview:recyclerview:1.2.1"

    //logger
    implementation 'com.jakewharton.timber:timber:5.0.1'

    // Retrofit
    def retrofit_version = "2.9.0"
    implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
+5 −0
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ import foundation.e.apps.utils.modules.DataStoreModule
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.launch
import timber.log.Timber
import timber.log.Timber.Forest.plant
import java.util.concurrent.Executors
import javax.inject.Inject

@@ -60,6 +62,9 @@ class AppLoungeApplication : Application(), Configuration.Provider {
                dataStoreModule.saveTOCStatus(false, "")
            }
        }
        if (BuildConfig.DEBUG) {
            plant(Timber.DebugTree())
        }
    }

    override fun getWorkManagerConfiguration() =
+19 −19
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import android.os.Bundle
import android.os.Environment
import android.os.StatFs
import android.os.storage.StorageManager
import android.util.Log
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
@@ -47,6 +46,7 @@ import foundation.e.apps.utils.enums.Status
import foundation.e.apps.utils.modules.CommonUtilsModule
import foundation.e.apps.utils.parentFragment.TimeoutFragment
import kotlinx.coroutines.launch
import timber.log.Timber
import java.io.File
import java.util.UUID

@@ -59,6 +59,7 @@ class MainActivity : AppCompatActivity() {

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

@@ -91,32 +92,31 @@ class MainActivity : AppCompatActivity() {
                binding.noInternet.visibility = View.GONE
                binding.fragment.visibility = View.VISIBLE

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

                signInViewModel.authLiveData.observe(this) {
                    viewModel.updateAuthData(it)
                }
            }
        }

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

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

        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: " + lastFragment.javaClass.name)
                    lastFragment.onTimeout()
                }
            }
@@ -218,7 +218,7 @@ class MainActivity : AppCompatActivity() {
            }
            viewModel.updateAwaiting(it)
            InstallWorkManager.enqueueWork(it)
            Log.d(TAG, "===> onCreate: AWAITING ${it.name}")
            Timber.d("===> onCreate: AWAITING ${it.name}")
        }
    }

@@ -273,7 +273,7 @@ class MainActivity : AppCompatActivity() {
                    statsManager.getFreeBytes(StorageManager.UUID_DEFAULT)
                }
            } catch (e: Exception) {
                Log.e(TAG, "calculateAvailableDiskSpace: ${e.stackTraceToString()}")
                Timber.e("calculateAvailableDiskSpace: ${e.stackTraceToString()}")
                getAvailableInternalMemorySize()
            }
        } else {
+11 −11
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import android.graphics.Bitmap
import android.os.Build
import android.os.SystemClock
import android.util.Base64
import android.util.Log
import android.widget.ImageView
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AlertDialog
@@ -56,6 +55,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import ru.beryukhov.reactivenetwork.ReactiveNetwork
import timber.log.Timber
import java.io.ByteArrayOutputStream
import javax.inject.Inject

@@ -201,10 +201,10 @@ class MainActivityViewModel @Inject constructor(
            if (regenerateFunction != null) {
                dataStoreModule.userType.collect { user ->
                    if (!user.isBlank() && User.valueOf(user) == User.ANONYMOUS) {
                        Log.d(TAG, "Regenerating auth data for Anonymous user")
                        Timber.d("Regenerating auth data for Anonymous user")
                        regenerateFunction(user)
                    } else {
                        Log.d(TAG, "Ask Google user to log in again")
                        Timber.d("Ask Google user to log in again")
                        dataStoreModule.clearUserType()
                    }
                }
@@ -236,12 +236,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)) {
        } else if (isEligibleToValidateJson(json) && internetConnection.value == true) {
            validateAuthData()
            Log.d(TAG, ">>> Authentication data is available!")
            Timber.d(">>> Authentication data is available!")
        }
    }

@@ -251,7 +251,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) {
@@ -259,11 +259,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)
@@ -280,7 +280,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()
                }
@@ -290,7 +290,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()
                }
+0 −5
Original line number Diff line number Diff line
package foundation.e.apps

import android.util.Log
import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.liveData
@@ -88,10 +87,6 @@ class PrivacyInfoViewModel @Inject constructor(
        val calculatePermissionsScore = calculatePermissionsScore(
            countAndroidPermissions(fusedApp)
        )
        Log.d(
            "PrivacyInfoViewModel",
            "calculatePrivacyScore: ${fusedApp.name}: privacyScore: $calculateTrackersScore permissionScore: $calculatePermissionsScore noOfPermission: ${fusedApp.perms.size}"
        )
        return calculateTrackersScore + calculatePermissionsScore
    }

Loading