// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: MIT-0 package com.amplifyframework.sample.photosharing import android.app.Application import android.util.Log import com.amplifyframework.AmplifyException import com.amplifyframework.api.aws.AWSApiPlugin import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin import com.amplifyframework.datastore.AWSDataStorePlugin import com.amplifyframework.kotlin.core.Amplify import com.amplifyframework.storage.s3.AWSS3StoragePlugin import kotlinx.coroutines.FlowPreview import org.koin.android.ext.koin.androidContext import org.koin.core.context.startKoin class PhotoSharingApplication : Application() { private val TAG = "PhotoSharingApplication" override fun onCreate() { super.onCreate() startKoin() initAmplify() } private fun initAmplify() { try { Amplify.addPlugin(AWSCognitoAuthPlugin()) Amplify.addPlugin(AWSDataStorePlugin()) Amplify.addPlugin(AWSApiPlugin()) Amplify.addPlugin(AWSS3StoragePlugin()) Amplify.configure(applicationContext) Log.i(TAG, "Initialized Amplify") } catch (error: AmplifyException) { Log.e(TAG, "Could not initialize Amplify", error) } } @OptIn(FlowPreview::class) private fun startKoin() { startKoin { androidContext(this@PhotoSharingApplication) modules(photoSharingModule) } } }