Loading app/build.gradle +3 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,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" Loading app/src/main/java/foundation/e/apps/AppLoungeApplication.kt +6 −0 Original line number Diff line number Diff line Loading @@ -30,9 +30,12 @@ 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 @HiltAndroidApp @DelicateCoroutinesApi class AppLoungeApplication : Application(), Configuration.Provider { Loading Loading @@ -60,6 +63,9 @@ class AppLoungeApplication : Application(), Configuration.Provider { dataStoreModule.saveTOCStatus(false, "") } } if (BuildConfig.DEBUG) { plant(Timber.DebugTree()) } } override fun getWorkManagerConfiguration() = Loading app/src/main/java/foundation/e/apps/MainActivity.kt +9 −8 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import foundation.e.apps.utils.enums.User import foundation.e.apps.utils.parentFragment.TimeoutFragment import foundation.e.apps.utils.modules.CommonUtilsModule import kotlinx.coroutines.launch import timber.log.Timber import java.io.File import java.util.UUID Loading Loading @@ -90,7 +91,7 @@ class MainActivity : AppCompatActivity() { when (User.valueOf(user)) { User.ANONYMOUS -> { if (viewModel.authDataJson.value.isNullOrEmpty() && !viewModel.authRequestRunning) { Log.d(TAG, "Fetching new authentication data") Timber.d( "Fetching new authentication data") viewModel.setFirstTokenFetchTime() viewModel.getAuthData() } Loading @@ -100,7 +101,7 @@ class MainActivity : AppCompatActivity() { } User.GOOGLE -> { if (viewModel.authData.value == null && !viewModel.authRequestRunning) { Log.d(TAG, "Fetching new authentication data") Timber.d( "Fetching new authentication data") viewModel.setFirstTokenFetchTime() signInViewModel.fetchAuthData() } Loading @@ -127,7 +128,7 @@ class MainActivity : AppCompatActivity() { viewModel.authDataJson.observe(this) { if (!it.isNullOrEmpty()) { viewModel.generateAuthData() Log.d(TAG, "Authentication data is available!") Timber.d( "Authentication data is available!") } } } Loading @@ -135,22 +136,22 @@ class MainActivity : AppCompatActivity() { viewModel.authValidity.observe(this) { if (it != true) { Log.d(TAG, "Authentication data validation failed!") Timber.d( "Authentication data validation failed!") viewModel.destroyCredentials { user -> if (viewModel.isTimeEligibleForTokenRefresh()) { generateAuthDataBasedOnUserType(user) } else { 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: " Timber.d( "Displaying timeout from MainActivity on fragment: " + lastFragment::class.java.name) lastFragment.onTimeout() } } } } else { Log.d(TAG, "Authentication data is valid!") Timber.d( "Authentication data is valid!") } } Loading Loading @@ -250,7 +251,7 @@ class MainActivity : AppCompatActivity() { } viewModel.updateAwaiting(it) InstallWorkManager.enqueueWork(it) Log.d(TAG, "===> onCreate: AWAITING ${it.name}") Timber.d( "===> onCreate: AWAITING ${it.name}") } } Loading app/src/main/java/foundation/e/apps/MainActivityViewModel.kt +3 −2 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ import foundation.e.apps.utils.modules.DataStoreModule import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import ru.beryukhov.reactivenetwork.ReactiveNetwork import timber.log.Timber import java.io.ByteArrayOutputStream import javax.inject.Inject Loading Loading @@ -185,10 +186,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() } } Loading app/src/main/java/foundation/e/apps/api/fused/FusedAPIImpl.kt +2 −1 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import foundation.e.apps.utils.modules.PWAManagerModule import foundation.e.apps.utils.modules.PreferenceManagerModule import kotlinx.coroutines.TimeoutCancellationException import kotlinx.coroutines.withTimeout import timber.log.Timber import javax.inject.Inject import javax.inject.Singleton Loading Loading @@ -155,7 +156,7 @@ class FusedAPIImpl @Inject constructor( } catch (e: TimeoutCancellationException) { e.printStackTrace() apiStatus = ResultStatus.TIMEOUT Log.d(TAG, "Timed out fetching home data for type: $applicationType") Timber.d( "Timed out fetching home data for type: $applicationType") } catch (e: Exception) { apiStatus = ResultStatus.UNKNOWN e.printStackTrace() Loading Loading
app/build.gradle +3 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,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" Loading
app/src/main/java/foundation/e/apps/AppLoungeApplication.kt +6 −0 Original line number Diff line number Diff line Loading @@ -30,9 +30,12 @@ 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 @HiltAndroidApp @DelicateCoroutinesApi class AppLoungeApplication : Application(), Configuration.Provider { Loading Loading @@ -60,6 +63,9 @@ class AppLoungeApplication : Application(), Configuration.Provider { dataStoreModule.saveTOCStatus(false, "") } } if (BuildConfig.DEBUG) { plant(Timber.DebugTree()) } } override fun getWorkManagerConfiguration() = Loading
app/src/main/java/foundation/e/apps/MainActivity.kt +9 −8 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import foundation.e.apps.utils.enums.User import foundation.e.apps.utils.parentFragment.TimeoutFragment import foundation.e.apps.utils.modules.CommonUtilsModule import kotlinx.coroutines.launch import timber.log.Timber import java.io.File import java.util.UUID Loading Loading @@ -90,7 +91,7 @@ class MainActivity : AppCompatActivity() { when (User.valueOf(user)) { User.ANONYMOUS -> { if (viewModel.authDataJson.value.isNullOrEmpty() && !viewModel.authRequestRunning) { Log.d(TAG, "Fetching new authentication data") Timber.d( "Fetching new authentication data") viewModel.setFirstTokenFetchTime() viewModel.getAuthData() } Loading @@ -100,7 +101,7 @@ class MainActivity : AppCompatActivity() { } User.GOOGLE -> { if (viewModel.authData.value == null && !viewModel.authRequestRunning) { Log.d(TAG, "Fetching new authentication data") Timber.d( "Fetching new authentication data") viewModel.setFirstTokenFetchTime() signInViewModel.fetchAuthData() } Loading @@ -127,7 +128,7 @@ class MainActivity : AppCompatActivity() { viewModel.authDataJson.observe(this) { if (!it.isNullOrEmpty()) { viewModel.generateAuthData() Log.d(TAG, "Authentication data is available!") Timber.d( "Authentication data is available!") } } } Loading @@ -135,22 +136,22 @@ class MainActivity : AppCompatActivity() { viewModel.authValidity.observe(this) { if (it != true) { Log.d(TAG, "Authentication data validation failed!") Timber.d( "Authentication data validation failed!") viewModel.destroyCredentials { user -> if (viewModel.isTimeEligibleForTokenRefresh()) { generateAuthDataBasedOnUserType(user) } else { 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: " Timber.d( "Displaying timeout from MainActivity on fragment: " + lastFragment::class.java.name) lastFragment.onTimeout() } } } } else { Log.d(TAG, "Authentication data is valid!") Timber.d( "Authentication data is valid!") } } Loading Loading @@ -250,7 +251,7 @@ class MainActivity : AppCompatActivity() { } viewModel.updateAwaiting(it) InstallWorkManager.enqueueWork(it) Log.d(TAG, "===> onCreate: AWAITING ${it.name}") Timber.d( "===> onCreate: AWAITING ${it.name}") } } Loading
app/src/main/java/foundation/e/apps/MainActivityViewModel.kt +3 −2 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ import foundation.e.apps.utils.modules.DataStoreModule import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import ru.beryukhov.reactivenetwork.ReactiveNetwork import timber.log.Timber import java.io.ByteArrayOutputStream import javax.inject.Inject Loading Loading @@ -185,10 +186,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() } } Loading
app/src/main/java/foundation/e/apps/api/fused/FusedAPIImpl.kt +2 −1 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import foundation.e.apps.utils.modules.PWAManagerModule import foundation.e.apps.utils.modules.PreferenceManagerModule import kotlinx.coroutines.TimeoutCancellationException import kotlinx.coroutines.withTimeout import timber.log.Timber import javax.inject.Inject import javax.inject.Singleton Loading Loading @@ -155,7 +156,7 @@ class FusedAPIImpl @Inject constructor( } catch (e: TimeoutCancellationException) { e.printStackTrace() apiStatus = ResultStatus.TIMEOUT Log.d(TAG, "Timed out fetching home data for type: $applicationType") Timber.d( "Timed out fetching home data for type: $applicationType") } catch (e: Exception) { apiStatus = ResultStatus.UNKNOWN e.printStackTrace() Loading