mirror of
https://github.com/wgtunnel/android.git
synced 2026-07-03 14:07:49 +02:00
47 lines
1.6 KiB
Kotlin
47 lines
1.6 KiB
Kotlin
package com.zaneschepke.wireguardautotunnel.module
|
|
|
|
import android.content.Context
|
|
import com.zaneschepke.logcatter.LogReader
|
|
import com.zaneschepke.logcatter.LogcatReader
|
|
import com.zaneschepke.wireguardautotunnel.service.notification.NotificationService
|
|
import com.zaneschepke.wireguardautotunnel.service.notification.WireGuardNotification
|
|
import com.zaneschepke.wireguardautotunnel.service.shortcut.DynamicShortcutManager
|
|
import com.zaneschepke.wireguardautotunnel.service.shortcut.ShortcutManager
|
|
import dagger.Module
|
|
import dagger.Provides
|
|
import dagger.hilt.InstallIn
|
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
import dagger.hilt.components.SingletonComponent
|
|
import kotlinx.coroutines.CoroutineDispatcher
|
|
import kotlinx.coroutines.CoroutineScope
|
|
import kotlinx.coroutines.SupervisorJob
|
|
import javax.inject.Singleton
|
|
|
|
@Module
|
|
@InstallIn(SingletonComponent::class)
|
|
class AppModule {
|
|
@Singleton
|
|
@ApplicationScope
|
|
@Provides
|
|
fun providesApplicationScope(@DefaultDispatcher defaultDispatcher: CoroutineDispatcher): CoroutineScope =
|
|
CoroutineScope(SupervisorJob() + defaultDispatcher)
|
|
|
|
@Singleton
|
|
@Provides
|
|
fun provideLogCollect(@ApplicationContext context: Context): LogReader {
|
|
return LogcatReader.init(storageDir = context.filesDir.absolutePath)
|
|
}
|
|
|
|
@Singleton
|
|
@Provides
|
|
fun provideNotificationService(@ApplicationContext context: Context): NotificationService {
|
|
return WireGuardNotification(context)
|
|
}
|
|
|
|
@Singleton
|
|
@Provides
|
|
fun provideShortcutManager(@ApplicationContext context: Context, @IoDispatcher ioDispatcher: CoroutineDispatcher): ShortcutManager {
|
|
return DynamicShortcutManager(context, ioDispatcher)
|
|
}
|
|
}
|