anytype-kotlin-wild/app/src/main/java/com/anytypeio/anytype/di/main/UtilModule.kt
Allan Quatermain 5ee6443ebb
DROID-979 App | Tech | Setup sentry (#3002)
DROID-979 App | Tech | Setup sentry
2023-03-16 19:19:24 +03:00

63 lines
2.0 KiB
Kotlin

package com.anytypeio.anytype.di.main
import android.content.Context
import android.content.SharedPreferences
import androidx.preference.PreferenceManager
import com.anytypeio.anytype.BuildConfig
import com.anytypeio.anytype.app.TogglePrefs
import com.anytypeio.anytype.app.DefaultFeatureToggles
import com.anytypeio.anytype.core_utils.tools.AppInfo
import com.anytypeio.anytype.core_utils.tools.DefaultAppInfo
import com.anytypeio.anytype.core_utils.tools.DefaultUrlValidator
import com.anytypeio.anytype.core_utils.tools.FeatureToggles
import com.anytypeio.anytype.core_utils.tools.UrlValidator
import com.anytypeio.anytype.domain.config.Gateway
import com.anytypeio.anytype.domain.misc.UrlBuilder
import com.anytypeio.anytype.middleware.interactor.MiddlewareProtobufLogger
import com.anytypeio.anytype.middleware.interactor.ProtobufConverterProvider
import dagger.Binds
import dagger.Module
import dagger.Provides
import javax.inject.Singleton
@Module(includes = [UtilModule.Bindings::class])
object UtilModule {
@JvmStatic
@Provides
@Singleton
fun provideUrlBuilder(gateway: Gateway): UrlBuilder = UrlBuilder(gateway)
@JvmStatic
@Provides
@Singleton
@TogglePrefs
fun providesSharedPreferences(
context: Context
): SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
@JvmStatic
@Provides
@Singleton
fun provideAppInfo(): AppInfo = DefaultAppInfo(BuildConfig.VERSION_NAME)
@Module
interface Bindings {
@Binds
@Singleton
fun bindUrlValidator(applicator: DefaultUrlValidator): UrlValidator
@Binds
@Singleton
fun bindFeatureToggles(applicator: DefaultFeatureToggles): FeatureToggles
@Binds
@Singleton
fun bindMiddlewareProtobufLogger(logger: MiddlewareProtobufLogger.Impl): MiddlewareProtobufLogger
@Binds
@Singleton
fun bindProtobufConverterProvider(provider: ProtobufConverterProvider.Impl): ProtobufConverterProvider
}
}