From 6b529f806f4793ec6f438a8fd7c80c2ad13f10df Mon Sep 17 00:00:00 2001 From: Koitharu Date: Sat, 5 Dec 2020 18:15:18 +0200 Subject: [PATCH] Fix default value for some preferences --- .../details/ui/adapter/ChaptersAdapter.kt | 5 +++- .../history/ui/HistoryListViewModel.kt | 6 ++++- .../list/ui/model/ListModelConversionExt.kt | 13 +++++----- .../kotatsu/settings/MainSettingsFragment.kt | 25 +++++++------------ .../settings/ReaderSettingsFragment.kt | 3 ++- .../kotatsu/utils/ext/PreferencesExt.kt | 9 +++++++ .../main/res/layout/fragment_cloudflare.xml | 1 - app/src/main/res/layout/item_error_footer.xml | 6 ++--- .../main/res/layout/item_loading_footer.xml | 1 - app/src/main/res/values/dimens.xml | 8 +++--- 10 files changed, 43 insertions(+), 34 deletions(-) create mode 100644 app/src/main/java/org/koitharu/kotatsu/utils/ext/PreferencesExt.kt diff --git a/app/src/main/java/org/koitharu/kotatsu/details/ui/adapter/ChaptersAdapter.kt b/app/src/main/java/org/koitharu/kotatsu/details/ui/adapter/ChaptersAdapter.kt index 154a2e038..b98a427e7 100644 --- a/app/src/main/java/org/koitharu/kotatsu/details/ui/adapter/ChaptersAdapter.kt +++ b/app/src/main/java/org/koitharu/kotatsu/details/ui/adapter/ChaptersAdapter.kt @@ -30,7 +30,10 @@ class ChaptersAdapter( return oldItem.chapter.id == newItem.chapter.id } - override fun areContentsTheSame(oldItem: ChapterListItem, newItem: ChapterListItem): Boolean { + override fun areContentsTheSame( + oldItem: ChapterListItem, + newItem: ChapterListItem + ): Boolean { return Intrinsics.areEqual(oldItem, newItem) } diff --git a/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt index fa9884543..af32db57b 100644 --- a/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt +++ b/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt @@ -84,7 +84,11 @@ class HistoryListViewModel( settings.historyGrouping = isGroupingEnabled } - private fun mapList(list: List, grouped: Boolean, mode: ListMode): List { + private fun mapList( + list: List, + grouped: Boolean, + mode: ListMode + ): List { val result = ArrayList(if (grouped) (list.size * 1.4).toInt() else list.size) var prevDate: DateTimeAgo? = null for ((manga, history) in list) { diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/model/ListModelConversionExt.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/model/ListModelConversionExt.kt index 0a45d8432..5832e798c 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/model/ListModelConversionExt.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/model/ListModelConversionExt.kt @@ -30,17 +30,18 @@ fun Manga.toGridModel() = MangaGridModel( manga = this ) -fun List.toUi(mode: ListMode): List = when(mode) { +fun List.toUi(mode: ListMode): List = when (mode) { ListMode.LIST -> map(Manga::toListModel) ListMode.DETAILED_LIST -> map(Manga::toListDetailedModel) ListMode.GRID -> map(Manga::toGridModel) } -fun > List.toUi(destination: C, mode: ListMode): C = when(mode) { - ListMode.LIST -> mapTo(destination, Manga::toListModel) - ListMode.DETAILED_LIST -> mapTo(destination, Manga::toListDetailedModel) - ListMode.GRID -> mapTo(destination, Manga::toGridModel) -} +fun > List.toUi(destination: C, mode: ListMode): C = + when (mode) { + ListMode.LIST -> mapTo(destination, Manga::toListModel) + ListMode.DETAILED_LIST -> mapTo(destination, Manga::toListDetailedModel) + ListMode.GRID -> mapTo(destination, Manga::toGridModel) + } fun Throwable.toErrorState(canRetry: Boolean = true) = ErrorState( exception = this, diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/MainSettingsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/settings/MainSettingsFragment.kt index 9d42faa80..8f1e75c63 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/MainSettingsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/MainSettingsFragment.kt @@ -23,10 +23,7 @@ import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.core.prefs.ListMode import org.koitharu.kotatsu.settings.utils.MultiSummaryProvider import org.koitharu.kotatsu.tracker.work.TrackWorker -import org.koitharu.kotatsu.utils.ext.getStorageName -import org.koitharu.kotatsu.utils.ext.md5 -import org.koitharu.kotatsu.utils.ext.names -import org.koitharu.kotatsu.utils.ext.viewLifecycleScope +import org.koitharu.kotatsu.utils.ext.* import java.io.File @@ -43,24 +40,20 @@ class MainSettingsFragment : BasePreferenceFragment(R.string.settings), true } } + preferenceScreen?.findPreference(AppSettings.KEY_ZOOM_MODE)?.run { + entryValues = ZoomMode.values().names() + setDefaultValueCompat(ZoomMode.FIT_CENTER.name) + } + preferenceScreen?.findPreference(AppSettings.KEY_LIST_MODE)?.run { + entryValues = ListMode.values().names() + setDefaultValueCompat(ListMode.GRID.name) + } findPreference(AppSettings.KEY_READER_SWITCHERS)?.summaryProvider = MultiSummaryProvider(R.string.gestures_only) findPreference(AppSettings.KEY_TRACK_SOURCES)?.summaryProvider = MultiSummaryProvider(R.string.dont_check) } - override fun setPreferenceScreen(preferenceScreen: PreferenceScreen?) { - preferenceScreen?.findPreference(AppSettings.KEY_ZOOM_MODE)?.run { - entryValues = ZoomMode.values().names() - setDefaultValue(ZoomMode.FIT_CENTER.name) - } - preferenceScreen?.findPreference(AppSettings.KEY_LIST_MODE)?.run { - entryValues = ListMode.values().names() - setDefaultValue(ListMode.GRID.name) - } - super.setPreferenceScreen(preferenceScreen) - } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) findPreference(AppSettings.KEY_APP_UPDATE_AUTO)?.run { diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/ReaderSettingsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/settings/ReaderSettingsFragment.kt index 486b7d177..5602d23c2 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/ReaderSettingsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/ReaderSettingsFragment.kt @@ -9,6 +9,7 @@ import org.koitharu.kotatsu.core.model.ZoomMode import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.settings.utils.MultiSummaryProvider import org.koitharu.kotatsu.utils.ext.names +import org.koitharu.kotatsu.utils.ext.setDefaultValueCompat class ReaderSettingsFragment : BasePreferenceFragment(R.string.reader_settings) { @@ -19,7 +20,7 @@ class ReaderSettingsFragment : BasePreferenceFragment(R.string.reader_settings) } findPreference(AppSettings.KEY_ZOOM_MODE)?.let { it.entryValues = ZoomMode.values().names() - it.setDefaultValue(ZoomMode.FIT_CENTER.name) + it.setDefaultValueCompat(ZoomMode.FIT_CENTER.name) } } } \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/utils/ext/PreferencesExt.kt b/app/src/main/java/org/koitharu/kotatsu/utils/ext/PreferencesExt.kt new file mode 100644 index 000000000..bc930b0f9 --- /dev/null +++ b/app/src/main/java/org/koitharu/kotatsu/utils/ext/PreferencesExt.kt @@ -0,0 +1,9 @@ +package org.koitharu.kotatsu.utils.ext + +import androidx.preference.ListPreference + +fun ListPreference.setDefaultValueCompat(defaultValue: String) { + if (value == null) { + value = defaultValue + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_cloudflare.xml b/app/src/main/res/layout/fragment_cloudflare.xml index 962633827..1b3d00249 100644 --- a/app/src/main/res/layout/fragment_cloudflare.xml +++ b/app/src/main/res/layout/fragment_cloudflare.xml @@ -1,7 +1,6 @@ diff --git a/app/src/main/res/layout/item_error_footer.xml b/app/src/main/res/layout/item_error_footer.xml index a023d6c3c..347256105 100644 --- a/app/src/main/res/layout/item_error_footer.xml +++ b/app/src/main/res/layout/item_error_footer.xml @@ -10,11 +10,11 @@ android:padding="4dp"> + android:layout_height="wrap_content" + android:contentDescription="@null" + tools:src="@drawable/ic_alert_outline" /> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 78eda8e09..f47905595 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,10 +1,10 @@ 5dp - 84dp - 120dp - 46dp - 120dp + 84dp + 120dp + 46dp + 120dp 34dp 16dp 48dp