diff --git a/app/src/main/java/guide/graphql/toc/data/Apollo.kt b/app/src/main/java/guide/graphql/toc/data/Apollo.kt index e12866c..bdfbe4e 100644 --- a/app/src/main/java/guide/graphql/toc/data/Apollo.kt +++ b/app/src/main/java/guide/graphql/toc/data/Apollo.kt @@ -4,10 +4,15 @@ import com.apollographql.apollo.ApolloClient import com.apollographql.apollo.cache.normalized.lru.EvictionPolicy import com.apollographql.apollo.cache.normalized.lru.LruNormalizedCacheFactory -val cacheFactory = - LruNormalizedCacheFactory(EvictionPolicy.builder().maxSizeBytes(10 * 1024 * 1024).build()) +object Apollo { -val apolloClient: ApolloClient = ApolloClient.builder() - .serverUrl("https://api.graphql.guide/graphql") - .normalizedCache(cacheFactory) - .build() \ No newline at end of file + val client: ApolloClient by lazy { + val cacheFactory = + LruNormalizedCacheFactory(EvictionPolicy.builder().maxSizeBytes(10 * 1024 * 1024).build()) + + ApolloClient.builder() + .serverUrl("https://api.graphql.guide/graphql") + .normalizedCache(cacheFactory) + .build() + } +} diff --git a/app/src/main/java/guide/graphql/toc/ui/chapters/ChaptersFragment.kt b/app/src/main/java/guide/graphql/toc/ui/chapters/ChaptersFragment.kt index eeba4db..b74c722 100644 --- a/app/src/main/java/guide/graphql/toc/ui/chapters/ChaptersFragment.kt +++ b/app/src/main/java/guide/graphql/toc/ui/chapters/ChaptersFragment.kt @@ -15,7 +15,7 @@ import com.apollographql.apollo.exception.ApolloException import com.google.android.material.transition.MaterialSharedAxis import guide.graphql.toc.ChaptersQuery import guide.graphql.toc.R -import guide.graphql.toc.data.apolloClient +import guide.graphql.toc.data.Apollo import guide.graphql.toc.databinding.ChaptersFragmentBinding class ChaptersFragment : Fragment() { @@ -73,7 +73,7 @@ class ChaptersFragment : Fragment() { lifecycleScope.launchWhenStarted { try { - val response = apolloClient.query( + val response = Apollo.client.query( ChaptersQuery() ).toDeferred().await() if (response.hasErrors()) { diff --git a/app/src/main/java/guide/graphql/toc/ui/sections/SectionsFragment.kt b/app/src/main/java/guide/graphql/toc/ui/sections/SectionsFragment.kt index f9138a4..f7269c1 100644 --- a/app/src/main/java/guide/graphql/toc/ui/sections/SectionsFragment.kt +++ b/app/src/main/java/guide/graphql/toc/ui/sections/SectionsFragment.kt @@ -13,7 +13,7 @@ import com.apollographql.apollo.coroutines.toDeferred import com.apollographql.apollo.exception.ApolloException import com.google.android.material.transition.MaterialSharedAxis import guide.graphql.toc.SectionsQuery -import guide.graphql.toc.data.apolloClient +import guide.graphql.toc.data.Apollo import guide.graphql.toc.databinding.SectionsFragmentBinding class SectionsFragment : Fragment() { @@ -66,7 +66,7 @@ class SectionsFragment : Fragment() { binding.spinner.visibility = View.VISIBLE binding.error.visibility = View.GONE try { - val response = apolloClient.query( + val response = Apollo.client.query( SectionsQuery(id = args.chapterId) ).toDeferred().await()