diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f7f4a37..e93d39a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,6 +9,7 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" + android:name=".GuideApp" android:theme="@style/AppTheme"> diff --git a/app/src/main/java/guide/graphql/toc/GuideApp.kt b/app/src/main/java/guide/graphql/toc/GuideApp.kt new file mode 100644 index 0000000..878aa71 --- /dev/null +++ b/app/src/main/java/guide/graphql/toc/GuideApp.kt @@ -0,0 +1,18 @@ +package guide.graphql.toc + +import android.app.Application +import com.apollographql.apollo.ApolloClient +import com.apollographql.apollo.cache.normalized.lru.EvictionPolicy +import com.apollographql.apollo.cache.normalized.lru.LruNormalizedCacheFactory + +class GuideApp : Application() { + val apolloClient: ApolloClient by lazy { + val cacheFactory = + LruNormalizedCacheFactory(EvictionPolicy.builder().maxSizeBytes(10 * 1024 * 1024).build()) + + ApolloClient.builder() + .serverUrl("https://api.graphql.guide/graphql") + .normalizedCache(cacheFactory) + .build() + } +} \ No newline at end of file diff --git a/app/src/main/java/guide/graphql/toc/data/Apollo.kt b/app/src/main/java/guide/graphql/toc/data/Apollo.kt deleted file mode 100644 index e12866c..0000000 --- a/app/src/main/java/guide/graphql/toc/data/Apollo.kt +++ /dev/null @@ -1,13 +0,0 @@ -package guide.graphql.toc.data - -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()) - -val apolloClient: ApolloClient = ApolloClient.builder() - .serverUrl("https://api.graphql.guide/graphql") - .normalizedCache(cacheFactory) - .build() \ No newline at end of file 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..6fc9040 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 @@ -14,8 +14,8 @@ import com.apollographql.apollo.coroutines.toDeferred import com.apollographql.apollo.exception.ApolloException import com.google.android.material.transition.MaterialSharedAxis import guide.graphql.toc.ChaptersQuery +import guide.graphql.toc.GuideApp import guide.graphql.toc.R -import guide.graphql.toc.data.apolloClient 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 = (activity?.application as GuideApp).apolloClient.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..381d49d 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 @@ -12,8 +12,8 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.apollographql.apollo.coroutines.toDeferred import com.apollographql.apollo.exception.ApolloException import com.google.android.material.transition.MaterialSharedAxis +import guide.graphql.toc.GuideApp import guide.graphql.toc.SectionsQuery -import guide.graphql.toc.data.apolloClient 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 = (activity?.application as GuideApp).apolloClient.query( SectionsQuery(id = args.chapterId) ).toDeferred().await() diff --git a/build.gradle.kts b/build.gradle.kts index 1140e17..7c32110 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath("com.android.tools.build:gradle:4.1.0-beta03") + classpath("com.android.tools.build:gradle:4.1.0-beta04") classpath("androidx.navigation:navigation-safe-args-gradle-plugin:2.3.0") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72") }