From 22abe55fce62387c78ef0a240a55421e49466212 Mon Sep 17 00:00:00 2001 From: Thomas Andres Gomez Date: Mon, 18 Jul 2022 10:49:56 +0200 Subject: [PATCH] Add cache usage for Glide. --- .../com/pixelized/biblib/ui/MainActivity.kt | 49 +++++++++++++++---- 1 file changed, 40 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/pixelized/biblib/ui/MainActivity.kt b/app/src/main/java/com/pixelized/biblib/ui/MainActivity.kt index b50c583..4df593c 100644 --- a/app/src/main/java/com/pixelized/biblib/ui/MainActivity.kt +++ b/app/src/main/java/com/pixelized/biblib/ui/MainActivity.kt @@ -6,12 +6,18 @@ import androidx.activity.compose.setContent import androidx.activity.viewModels import androidx.compose.material.MaterialTheme import androidx.compose.material.Surface +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.ui.graphics.Color import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.view.WindowCompat +import com.bumptech.glide.load.engine.DiskCacheStrategy +import com.bumptech.glide.request.RequestOptions import com.pixelized.biblib.ui.composable.SystemThemeColor import com.pixelized.biblib.ui.navigation.ScreenNavHost import com.pixelized.biblib.ui.screen.launch.LauncherViewModel import com.pixelized.biblib.ui.theme.BibLibTheme +import com.skydoves.landscapist.glide.LocalGlideRequestOptions import dagger.hilt.android.AndroidEntryPoint @@ -35,18 +41,43 @@ class MainActivity : ComponentActivity() { // Compose setContent { - BibLibTheme { - SystemThemeColor { - Surface(color = MaterialTheme.colors.background) { - // Handle the main Navigation - if (launcherViewModel.isLoadingDone) { - ScreenNavHost( - startDestination = launcherViewModel.startDestination - ) - } + BibLibActivityTheme { + ProvideGlideOption { + // Handle the main Navigation + if (launcherViewModel.isLoadingDone) { + ScreenNavHost( + startDestination = launcherViewModel.startDestination + ) } } } } } + + @Composable + private fun BibLibActivityTheme( + background: Color = MaterialTheme.colors.background, + content: @Composable () -> Unit, + ) { + BibLibTheme { + SystemThemeColor { + Surface( + color = background, + content = content, + ) + } + } + } + + @Composable + private fun ProvideGlideOption( + options: RequestOptions = RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL), + content: @Composable () -> Unit, + ) { + CompositionLocalProvider( + LocalGlideRequestOptions provides options, + ) { + content() + } + } } \ No newline at end of file