diff --git a/app/build.gradle b/app/build.gradle index 87dea662d..b6edfac27 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,7 +15,7 @@ android { minSdkVersion 21 targetSdkVersion 29 versionCode gitCommits - versionName '0.1.3' + versionName '0.1.4' buildConfigField 'String', 'GIT_BRANCH', "\"${gitBranch}\"" @@ -36,6 +36,9 @@ android { buildTypes { debug { applicationIdSuffix = '.debug' + minifyEnabled true + shrinkResources true + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } release { minifyEnabled true diff --git a/app/src/main/java/org/koitharu/kotatsu/domain/MangaDataRepository.kt b/app/src/main/java/org/koitharu/kotatsu/domain/MangaDataRepository.kt index ec5fb2896..d945c4d65 100644 --- a/app/src/main/java/org/koitharu/kotatsu/domain/MangaDataRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/domain/MangaDataRepository.kt @@ -14,13 +14,18 @@ class MangaDataRepository : KoinComponent { private val db: MangaDatabase by inject() - suspend fun savePreferences(mangaId: Long, mode: ReaderMode) { - db.preferencesDao().upsert( - MangaPrefsEntity( - mangaId = mangaId, - mode = mode.id + suspend fun savePreferences(manga: Manga, mode: ReaderMode) { + val tags = manga.tags.map(TagEntity.Companion::fromMangaTag) + db.withTransaction { + db.tagsDao().upsert(tags) + db.mangaDao().upsert(MangaEntity.from(manga), tags) + db.preferencesDao().upsert( + MangaPrefsEntity( + mangaId = manga.id, + mode = mode.id + ) ) - ) + } } suspend fun getReaderMode(mangaId: Long): ReaderMode? { diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/main/list/MangaListFragment.kt b/app/src/main/java/org/koitharu/kotatsu/ui/main/list/MangaListFragment.kt index ecbb25e2f..4bdbc30d9 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/main/list/MangaListFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/main/list/MangaListFragment.kt @@ -182,6 +182,9 @@ abstract class MangaListFragment : BaseFragment(R.layout.fragment_list), Mang } override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) { + if (context == null) { + return + } when (key) { getString(R.string.key_list_mode) -> initListMode(settings.listMode) getString(R.string.key_grid_size) -> UiUtils.SpanCountResolver.update(recyclerView) diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/reader/ReaderPresenter.kt b/app/src/main/java/org/koitharu/kotatsu/ui/reader/ReaderPresenter.kt index 293a5e699..2bc094545 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/reader/ReaderPresenter.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/reader/ReaderPresenter.kt @@ -8,6 +8,7 @@ import moxy.presenterScope import okhttp3.OkHttpClient import okhttp3.Request import org.koin.core.get +import org.koitharu.kotatsu.BuildConfig import org.koitharu.kotatsu.core.model.Manga import org.koitharu.kotatsu.core.model.MangaPage import org.koitharu.kotatsu.core.prefs.ReaderMode @@ -39,7 +40,7 @@ class ReaderPresenter : BasePresenter() { mode = MangaUtils.determineReaderMode(pages) if (mode != null) { prefs.savePreferences( - mangaId = manga.id, + manga = manga, mode = mode ) } @@ -49,6 +50,9 @@ class ReaderPresenter : BasePresenter() { viewState.onInitReader(manga, mode) } catch (_: CancellationException) { } catch (e: Throwable) { + if (BuildConfig.DEBUG) { + e.printStackTrace() + } viewState.onError(e) } finally { viewState.onLoadingStateChanged(isLoading = false) @@ -59,7 +63,7 @@ class ReaderPresenter : BasePresenter() { fun setMode(manga: Manga, mode: ReaderMode) { presenterScope.launch(Dispatchers.IO) { MangaDataRepository().savePreferences( - mangaId = manga.id, + manga = manga, mode = mode ) }