Add grid view option to chapters menu
This commit is contained in:
1
.idea/.name
generated
Normal file
1
.idea/.name
generated
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Kotatsu
|
||||||
3
.idea/gradle.xml
generated
3
.idea/gradle.xml
generated
@@ -4,9 +4,8 @@
|
|||||||
<component name="GradleSettings">
|
<component name="GradleSettings">
|
||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
<option name="testRunner" value="GRADLE" />
|
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
<option name="gradleJvm" value="jbr-17" />
|
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
<set>
|
<set>
|
||||||
<option value="$PROJECT_DIR$" />
|
<option value="$PROJECT_DIR$" />
|
||||||
|
|||||||
@@ -182,6 +182,10 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
|
|||||||
get() = prefs.getBoolean(KEY_REVERSE_CHAPTERS, false)
|
get() = prefs.getBoolean(KEY_REVERSE_CHAPTERS, false)
|
||||||
set(value) = prefs.edit { putBoolean(KEY_REVERSE_CHAPTERS, value) }
|
set(value) = prefs.edit { putBoolean(KEY_REVERSE_CHAPTERS, value) }
|
||||||
|
|
||||||
|
var chaptersGridView: Boolean
|
||||||
|
get() = prefs.getBoolean(KEY_GRID_VIEW_CHAPTERS, false)
|
||||||
|
set(value) = prefs.edit { putBoolean(KEY_GRID_VIEW_CHAPTERS, value) }
|
||||||
|
|
||||||
val zoomMode: ZoomMode
|
val zoomMode: ZoomMode
|
||||||
get() = prefs.getEnumValue(KEY_ZOOM_MODE, ZoomMode.FIT_CENTER)
|
get() = prefs.getEnumValue(KEY_ZOOM_MODE, ZoomMode.FIT_CENTER)
|
||||||
|
|
||||||
@@ -538,6 +542,7 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
|
|||||||
const val KEY_HISTORY_GROUPING = "history_grouping"
|
const val KEY_HISTORY_GROUPING = "history_grouping"
|
||||||
const val KEY_READING_INDICATORS = "reading_indicators"
|
const val KEY_READING_INDICATORS = "reading_indicators"
|
||||||
const val KEY_REVERSE_CHAPTERS = "reverse_chapters"
|
const val KEY_REVERSE_CHAPTERS = "reverse_chapters"
|
||||||
|
const val KEY_GRID_VIEW_CHAPTERS = "grid_view_chapters"
|
||||||
const val KEY_HISTORY_EXCLUDE_NSFW = "history_exclude_nsfw"
|
const val KEY_HISTORY_EXCLUDE_NSFW = "history_exclude_nsfw"
|
||||||
const val KEY_PAGES_NUMBERS = "pages_numbers"
|
const val KEY_PAGES_NUMBERS = "pages_numbers"
|
||||||
const val KEY_SCREENSHOTS_POLICY = "screenshots_policy"
|
const val KEY_SCREENSHOTS_POLICY = "screenshots_policy"
|
||||||
|
|||||||
@@ -28,8 +28,9 @@ class ChaptersMenuProvider(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onPrepareMenu(menu: Menu) {
|
override fun onPrepareMenu(menu: Menu) {
|
||||||
menu.findItem(R.id.action_reversed)?.isChecked = viewModel.isChaptersReversed.value == true
|
|
||||||
menu.findItem(R.id.action_search)?.isVisible = viewModel.isChaptersEmpty.value == false
|
menu.findItem(R.id.action_search)?.isVisible = viewModel.isChaptersEmpty.value == false
|
||||||
|
menu.findItem(R.id.action_reversed)?.isChecked = viewModel.isChaptersReversed.value == true
|
||||||
|
menu.findItem(R.id.action_grid_view)?.isChecked = viewModel.isChaptersInGridView.value == true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
|
override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
|
||||||
@@ -37,6 +38,10 @@ class ChaptersMenuProvider(
|
|||||||
viewModel.setChaptersReversed(!menuItem.isChecked)
|
viewModel.setChaptersReversed(!menuItem.isChecked)
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
R.id.action_grid_view-> {
|
||||||
|
viewModel.setChaptersInGridView(!menuItem.isChecked)
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,6 +119,12 @@ class DetailsViewModel @Inject constructor(
|
|||||||
valueProducer = { chaptersReverse },
|
valueProducer = { chaptersReverse },
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val isChaptersInGridView = settings.observeAsStateFlow(
|
||||||
|
scope = viewModelScope + Dispatchers.Default,
|
||||||
|
key = AppSettings.KEY_GRID_VIEW_CHAPTERS,
|
||||||
|
valueProducer = { chaptersGridView },
|
||||||
|
)
|
||||||
|
|
||||||
val historyInfo: StateFlow<HistoryInfo> = combine(
|
val historyInfo: StateFlow<HistoryInfo> = combine(
|
||||||
manga,
|
manga,
|
||||||
selectedBranch,
|
selectedBranch,
|
||||||
@@ -278,6 +284,10 @@ class DetailsViewModel @Inject constructor(
|
|||||||
settings.chaptersReverse = newValue
|
settings.chaptersReverse = newValue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setChaptersInGridView(newValue: Boolean) {
|
||||||
|
settings.chaptersGridView = newValue
|
||||||
|
}
|
||||||
|
|
||||||
fun setSelectedBranch(branch: String?) {
|
fun setSelectedBranch(branch: String?) {
|
||||||
selectedBranch.value = branch
|
selectedBranch.value = branch
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,4 +18,11 @@
|
|||||||
android:title="@string/reverse"
|
android:title="@string/reverse"
|
||||||
app:showAsAction="never" />
|
app:showAsAction="never" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_grid_view"
|
||||||
|
android:checkable="true"
|
||||||
|
android:orderInCategory="30"
|
||||||
|
android:title="@string/chapters_grid_view"
|
||||||
|
app:showAsAction="never" />
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
|||||||
Reference in New Issue
Block a user