Fix crash and foreign key issue
This commit is contained in:
@@ -15,7 +15,7 @@ android {
|
|||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
versionCode gitCommits
|
versionCode gitCommits
|
||||||
versionName '0.1.3'
|
versionName '0.1.4'
|
||||||
|
|
||||||
buildConfigField 'String', 'GIT_BRANCH', "\"${gitBranch}\""
|
buildConfigField 'String', 'GIT_BRANCH', "\"${gitBranch}\""
|
||||||
|
|
||||||
@@ -36,6 +36,9 @@ android {
|
|||||||
buildTypes {
|
buildTypes {
|
||||||
debug {
|
debug {
|
||||||
applicationIdSuffix = '.debug'
|
applicationIdSuffix = '.debug'
|
||||||
|
minifyEnabled true
|
||||||
|
shrinkResources true
|
||||||
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||||
}
|
}
|
||||||
release {
|
release {
|
||||||
minifyEnabled true
|
minifyEnabled true
|
||||||
|
|||||||
@@ -14,13 +14,18 @@ class MangaDataRepository : KoinComponent {
|
|||||||
|
|
||||||
private val db: MangaDatabase by inject()
|
private val db: MangaDatabase by inject()
|
||||||
|
|
||||||
suspend fun savePreferences(mangaId: Long, mode: ReaderMode) {
|
suspend fun savePreferences(manga: Manga, mode: ReaderMode) {
|
||||||
db.preferencesDao().upsert(
|
val tags = manga.tags.map(TagEntity.Companion::fromMangaTag)
|
||||||
MangaPrefsEntity(
|
db.withTransaction {
|
||||||
mangaId = mangaId,
|
db.tagsDao().upsert(tags)
|
||||||
mode = mode.id
|
db.mangaDao().upsert(MangaEntity.from(manga), tags)
|
||||||
|
db.preferencesDao().upsert(
|
||||||
|
MangaPrefsEntity(
|
||||||
|
mangaId = manga.id,
|
||||||
|
mode = mode.id
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun getReaderMode(mangaId: Long): ReaderMode? {
|
suspend fun getReaderMode(mangaId: Long): ReaderMode? {
|
||||||
|
|||||||
@@ -182,6 +182,9 @@ abstract class MangaListFragment<E> : BaseFragment(R.layout.fragment_list), Mang
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) {
|
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) {
|
||||||
|
if (context == null) {
|
||||||
|
return
|
||||||
|
}
|
||||||
when (key) {
|
when (key) {
|
||||||
getString(R.string.key_list_mode) -> initListMode(settings.listMode)
|
getString(R.string.key_list_mode) -> initListMode(settings.listMode)
|
||||||
getString(R.string.key_grid_size) -> UiUtils.SpanCountResolver.update(recyclerView)
|
getString(R.string.key_grid_size) -> UiUtils.SpanCountResolver.update(recyclerView)
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import moxy.presenterScope
|
|||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import org.koin.core.get
|
import org.koin.core.get
|
||||||
|
import org.koitharu.kotatsu.BuildConfig
|
||||||
import org.koitharu.kotatsu.core.model.Manga
|
import org.koitharu.kotatsu.core.model.Manga
|
||||||
import org.koitharu.kotatsu.core.model.MangaPage
|
import org.koitharu.kotatsu.core.model.MangaPage
|
||||||
import org.koitharu.kotatsu.core.prefs.ReaderMode
|
import org.koitharu.kotatsu.core.prefs.ReaderMode
|
||||||
@@ -39,7 +40,7 @@ class ReaderPresenter : BasePresenter<ReaderView>() {
|
|||||||
mode = MangaUtils.determineReaderMode(pages)
|
mode = MangaUtils.determineReaderMode(pages)
|
||||||
if (mode != null) {
|
if (mode != null) {
|
||||||
prefs.savePreferences(
|
prefs.savePreferences(
|
||||||
mangaId = manga.id,
|
manga = manga,
|
||||||
mode = mode
|
mode = mode
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -49,6 +50,9 @@ class ReaderPresenter : BasePresenter<ReaderView>() {
|
|||||||
viewState.onInitReader(manga, mode)
|
viewState.onInitReader(manga, mode)
|
||||||
} catch (_: CancellationException) {
|
} catch (_: CancellationException) {
|
||||||
} catch (e: Throwable) {
|
} catch (e: Throwable) {
|
||||||
|
if (BuildConfig.DEBUG) {
|
||||||
|
e.printStackTrace()
|
||||||
|
}
|
||||||
viewState.onError(e)
|
viewState.onError(e)
|
||||||
} finally {
|
} finally {
|
||||||
viewState.onLoadingStateChanged(isLoading = false)
|
viewState.onLoadingStateChanged(isLoading = false)
|
||||||
@@ -59,7 +63,7 @@ class ReaderPresenter : BasePresenter<ReaderView>() {
|
|||||||
fun setMode(manga: Manga, mode: ReaderMode) {
|
fun setMode(manga: Manga, mode: ReaderMode) {
|
||||||
presenterScope.launch(Dispatchers.IO) {
|
presenterScope.launch(Dispatchers.IO) {
|
||||||
MangaDataRepository().savePreferences(
|
MangaDataRepository().savePreferences(
|
||||||
mangaId = manga.id,
|
manga = manga,
|
||||||
mode = mode
|
mode = mode
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user