diff --git a/app/build.gradle b/app/build.gradle index e62821811..a6b7b9048 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -87,8 +87,8 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.10.0' - implementation 'androidx.activity:activity-ktx:1.7.0' - implementation 'androidx.fragment:fragment-ktx:1.5.6' + implementation 'androidx.activity:activity-ktx:1.7.1' + implementation 'androidx.fragment:fragment-ktx:1.5.7' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1' implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1' implementation 'androidx.lifecycle:lifecycle-service:2.6.1' diff --git a/app/src/main/java/org/koitharu/kotatsu/base/domain/MangaDataRepository.kt b/app/src/main/java/org/koitharu/kotatsu/base/domain/MangaDataRepository.kt index 2c9d78960..263253786 100644 --- a/app/src/main/java/org/koitharu/kotatsu/base/domain/MangaDataRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/base/domain/MangaDataRepository.kt @@ -4,6 +4,7 @@ import android.graphics.BitmapFactory import android.net.Uri import android.util.Size import androidx.room.withTransaction +import dagger.Reusable import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.distinctUntilChanged @@ -30,12 +31,11 @@ import java.io.File import java.io.InputStream import java.util.zip.ZipFile import javax.inject.Inject -import javax.inject.Singleton import kotlin.math.roundToInt private const val MIN_WEBTOON_RATIO = 2 -@Singleton +@Reusable class MangaDataRepository @Inject constructor( private val okHttpClient: OkHttpClient, private val db: MangaDatabase, diff --git a/app/src/main/java/org/koitharu/kotatsu/bookmarks/domain/BookmarksRepository.kt b/app/src/main/java/org/koitharu/kotatsu/bookmarks/domain/BookmarksRepository.kt index 8162e4016..feeac4519 100644 --- a/app/src/main/java/org/koitharu/kotatsu/bookmarks/domain/BookmarksRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/bookmarks/domain/BookmarksRepository.kt @@ -2,7 +2,7 @@ package org.koitharu.kotatsu.bookmarks.domain import android.database.SQLException import androidx.room.withTransaction -import javax.inject.Inject +import dagger.Reusable import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map import org.koitharu.kotatsu.base.domain.ReversibleHandle @@ -17,9 +17,9 @@ import org.koitharu.kotatsu.core.db.entity.toManga import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.utils.ext.mapItems import org.koitharu.kotatsu.utils.ext.printStackTraceDebug -import javax.inject.Singleton +import javax.inject.Inject -@Singleton +@Reusable class BookmarksRepository @Inject constructor( private val db: MangaDatabase, ) { diff --git a/app/src/main/java/org/koitharu/kotatsu/core/AppModule.kt b/app/src/main/java/org/koitharu/kotatsu/core/AppModule.kt index 042f57865..43e5bba82 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/AppModule.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/AppModule.kt @@ -169,7 +169,6 @@ interface AppModule { } @Provides - @Singleton @ElementsIntoSet fun provideDatabaseObservers( widgetUpdater: WidgetUpdater, @@ -184,7 +183,6 @@ interface AppModule { ) @Provides - @Singleton @ElementsIntoSet fun provideActivityLifecycleCallbacks( appProtectHelper: AppProtectHelper, diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/domain/FavouritesRepository.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/domain/FavouritesRepository.kt index 25a7c9f0d..3875eb2e5 100644 --- a/app/src/main/java/org/koitharu/kotatsu/favourites/domain/FavouritesRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/favourites/domain/FavouritesRepository.kt @@ -1,6 +1,7 @@ package org.koitharu.kotatsu.favourites.domain import androidx.room.withTransaction +import dagger.Reusable import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filterNotNull @@ -22,9 +23,8 @@ import org.koitharu.kotatsu.parsers.model.SortOrder import org.koitharu.kotatsu.tracker.work.TrackerNotificationChannels import org.koitharu.kotatsu.utils.ext.mapItems import javax.inject.Inject -import javax.inject.Singleton -@Singleton +@Reusable class FavouritesRepository @Inject constructor( private val db: MangaDatabase, private val channels: TrackerNotificationChannels, diff --git a/app/src/main/java/org/koitharu/kotatsu/history/domain/HistoryRepository.kt b/app/src/main/java/org/koitharu/kotatsu/history/domain/HistoryRepository.kt index 34df167b6..1e84585de 100644 --- a/app/src/main/java/org/koitharu/kotatsu/history/domain/HistoryRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/history/domain/HistoryRepository.kt @@ -1,6 +1,7 @@ package org.koitharu.kotatsu.history.domain import androidx.room.withTransaction +import dagger.Reusable import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.distinctUntilChangedBy @@ -27,11 +28,10 @@ import org.koitharu.kotatsu.scrobbling.common.domain.tryScrobble import org.koitharu.kotatsu.tracker.domain.TrackingRepository import org.koitharu.kotatsu.utils.ext.mapItems import javax.inject.Inject -import javax.inject.Singleton const val PROGRESS_NONE = -1f -@Singleton +@Reusable class HistoryRepository @Inject constructor( private val db: MangaDatabase, private val trackingRepository: TrackingRepository, diff --git a/app/src/main/java/org/koitharu/kotatsu/local/data/LocalStorageManager.kt b/app/src/main/java/org/koitharu/kotatsu/local/data/LocalStorageManager.kt index b473aa6bb..8792b5bc8 100644 --- a/app/src/main/java/org/koitharu/kotatsu/local/data/LocalStorageManager.kt +++ b/app/src/main/java/org/koitharu/kotatsu/local/data/LocalStorageManager.kt @@ -4,6 +4,7 @@ import android.content.ContentResolver import android.content.Context import android.os.StatFs import androidx.annotation.WorkerThread +import dagger.Reusable import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.Flow @@ -20,14 +21,13 @@ import org.koitharu.kotatsu.utils.ext.computeSize import org.koitharu.kotatsu.utils.ext.getStorageName import java.io.File import javax.inject.Inject -import javax.inject.Singleton private const val DIR_NAME = "manga" private const val CACHE_DISK_PERCENTAGE = 0.02 private const val CACHE_SIZE_MIN: Long = 10 * 1024 * 1024 // 10MB private const val CACHE_SIZE_MAX: Long = 250 * 1024 * 1024 // 250MB -@Singleton +@Reusable class LocalStorageManager @Inject constructor( @ApplicationContext private val context: Context, private val settings: AppSettings, diff --git a/app/src/main/java/org/koitharu/kotatsu/search/domain/MangaSearchRepository.kt b/app/src/main/java/org/koitharu/kotatsu/search/domain/MangaSearchRepository.kt index 6ab02557c..80d3dce0f 100644 --- a/app/src/main/java/org/koitharu/kotatsu/search/domain/MangaSearchRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/search/domain/MangaSearchRepository.kt @@ -4,8 +4,8 @@ import android.annotation.SuppressLint import android.app.SearchManager import android.content.Context import android.provider.SearchRecentSuggestions +import dagger.Reusable import dagger.hilt.android.qualifiers.ApplicationContext -import javax.inject.Inject import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.currentCoroutineContext import kotlinx.coroutines.flow.* @@ -22,9 +22,9 @@ import org.koitharu.kotatsu.parsers.model.MangaTag import org.koitharu.kotatsu.parsers.util.levenshteinDistance import org.koitharu.kotatsu.search.ui.MangaSuggestionsProvider import org.koitharu.kotatsu.utils.ext.runCatchingCancellable -import javax.inject.Singleton +import javax.inject.Inject -@Singleton +@Reusable class MangaSearchRepository @Inject constructor( private val settings: AppSettings, private val db: MangaDatabase, diff --git a/app/src/main/java/org/koitharu/kotatsu/shelf/domain/ShelfRepository.kt b/app/src/main/java/org/koitharu/kotatsu/shelf/domain/ShelfRepository.kt index 5da6628e2..19cdc883c 100644 --- a/app/src/main/java/org/koitharu/kotatsu/shelf/domain/ShelfRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/shelf/domain/ShelfRepository.kt @@ -1,5 +1,6 @@ package org.koitharu.kotatsu.shelf.domain +import dagger.Reusable import kotlinx.coroutines.async import kotlinx.coroutines.awaitAll import kotlinx.coroutines.coroutineScope @@ -24,9 +25,8 @@ import org.koitharu.kotatsu.parsers.model.SortOrder import org.koitharu.kotatsu.tracker.domain.TrackingRepository import org.koitharu.kotatsu.utils.ext.runCatchingCancellable import javax.inject.Inject -import javax.inject.Singleton -@Singleton +@Reusable class ShelfRepository @Inject constructor( private val localMangaRepository: LocalMangaRepository, private val historyRepository: HistoryRepository, diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/domain/TrackingRepository.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/domain/TrackingRepository.kt index e07abd0ab..a6b3b8518 100644 --- a/app/src/main/java/org/koitharu/kotatsu/tracker/domain/TrackingRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/tracker/domain/TrackingRepository.kt @@ -2,6 +2,7 @@ package org.koitharu.kotatsu.tracker.domain import androidx.annotation.VisibleForTesting import androidx.room.withTransaction +import dagger.Reusable import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.distinctUntilChanged @@ -23,11 +24,10 @@ import org.koitharu.kotatsu.tracker.domain.model.MangaUpdates import org.koitharu.kotatsu.tracker.domain.model.TrackingLogItem import java.util.Date import javax.inject.Inject -import javax.inject.Singleton private const val NO_ID = 0L -@Singleton +@Reusable class TrackingRepository @Inject constructor( private val db: MangaDatabase, ) {