Remove some minor settings
Some spring cleaning to remove some unnecessary complexity so things are easier to maintain. - Start screen: redundant with app shortcuts in Android 7.1+ - Jump to chapters: irrelevant in tablet mode and people can scroll a tiny bit if they really have to - Option to not scroll away bottom nav: issues with fast scroll will be irrelevant with it being replaced or removed in the Compose migrations Get ready for people malding over their special needs. https://xkcd.com/1172/
This commit is contained in:
parent
06bec0ad54
commit
0b77b78f6a
10 changed files with 6 additions and 96 deletions
|
@ -13,8 +13,6 @@ object PreferenceKeys {
|
|||
|
||||
const val defaultOrientationType = "pref_default_orientation_type_key"
|
||||
|
||||
const val jumpToChapters = "jump_to_chapters"
|
||||
|
||||
const val autoUpdateTrack = "pref_auto_update_manga_sync_key"
|
||||
|
||||
const val downloadOnlyOverWifi = "pref_download_only_over_wifi_key"
|
||||
|
@ -43,8 +41,6 @@ object PreferenceKeys {
|
|||
const val migrationSortingMode = "pref_migration_sorting"
|
||||
const val migrationSortingDirection = "pref_migration_direction"
|
||||
|
||||
const val startScreen = "start_screen"
|
||||
|
||||
const val hideNotificationContent = "hide_notification_content"
|
||||
|
||||
const val autoUpdateMetadata = "auto_update_metadata"
|
||||
|
|
|
@ -44,12 +44,8 @@ class PreferencesHelper(val context: Context) {
|
|||
"backup",
|
||||
).toUri()
|
||||
|
||||
fun startScreen() = prefs.getInt(Keys.startScreen, 1)
|
||||
|
||||
fun confirmExit() = prefs.getBoolean(Keys.confirmExit, false)
|
||||
|
||||
fun hideBottomBarOnScroll() = flowPrefs.getBoolean("pref_hide_bottom_bar_on_scroll", true)
|
||||
|
||||
fun sideNavIconAlignment() = flowPrefs.getInt("pref_side_nav_icon_alignment", 0)
|
||||
|
||||
fun useAuthenticator() = flowPrefs.getBoolean("use_biometric_lock", false)
|
||||
|
@ -162,8 +158,6 @@ class PreferencesHelper(val context: Context) {
|
|||
|
||||
fun landscapeColumns() = flowPrefs.getInt("pref_library_columns_landscape_key", 0)
|
||||
|
||||
fun jumpToChapters() = prefs.getBoolean(Keys.jumpToChapters, false)
|
||||
|
||||
fun autoUpdateTrack() = prefs.getBoolean(Keys.autoUpdateTrack, true)
|
||||
|
||||
fun lastUsedSource() = flowPrefs.getLong("last_catalogue_source", -1)
|
||||
|
|
|
@ -83,15 +83,7 @@ class MainActivity : BaseActivity() {
|
|||
|
||||
private lateinit var router: Router
|
||||
|
||||
private val startScreenId by lazy {
|
||||
when (preferences.startScreen()) {
|
||||
2 -> R.id.nav_history
|
||||
3 -> R.id.nav_updates
|
||||
4 -> R.id.nav_browse
|
||||
else -> R.id.nav_library
|
||||
}
|
||||
}
|
||||
|
||||
private val startScreenId = R.id.nav_library
|
||||
private var isConfirmingExit: Boolean = false
|
||||
private var isHandlingShortcut: Boolean = false
|
||||
|
||||
|
|
|
@ -265,18 +265,6 @@ class MangaController :
|
|||
.build()
|
||||
it.adapter = ConcatAdapter(config, mangaInfoAdapter, chaptersHeaderAdapter, chaptersAdapter)
|
||||
|
||||
// Skips directly to chapters list if navigated to from the library
|
||||
it.post {
|
||||
if (!fromSource && preferences.jumpToChapters()) {
|
||||
val mainActivityAppBar = (activity as? MainActivity)?.binding?.appbar
|
||||
(it.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(
|
||||
1,
|
||||
mainActivityAppBar?.height ?: 0,
|
||||
)
|
||||
mainActivityAppBar?.isLifted = true
|
||||
}
|
||||
}
|
||||
|
||||
it.scrollStateChanges()
|
||||
.onEach { _ ->
|
||||
// Disable swipe refresh when view is not at the top
|
||||
|
|
|
@ -93,10 +93,10 @@ class SettingsAppearanceController : SettingsController() {
|
|||
}
|
||||
}
|
||||
|
||||
preferenceCategory {
|
||||
titleRes = R.string.pref_category_navigation
|
||||
if (context.isTablet()) {
|
||||
preferenceCategory {
|
||||
titleRes = R.string.pref_category_navigation
|
||||
|
||||
if (context.isTablet()) {
|
||||
intListPreference {
|
||||
bindTo(preferences.sideNavIconAlignment())
|
||||
titleRes = R.string.pref_side_nav_icon_alignment
|
||||
|
@ -108,11 +108,6 @@ class SettingsAppearanceController : SettingsController() {
|
|||
entryValues = arrayOf("0", "1", "2")
|
||||
summary = "%s"
|
||||
}
|
||||
} else {
|
||||
switchPreference {
|
||||
bindTo(preferences.hideBottomBarOnScroll())
|
||||
titleRes = R.string.pref_hide_bottom_bar_on_scroll
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,8 +7,6 @@ import androidx.preference.PreferenceScreen
|
|||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.util.preference.bindTo
|
||||
import eu.kanade.tachiyomi.util.preference.defaultValue
|
||||
import eu.kanade.tachiyomi.util.preference.entriesRes
|
||||
import eu.kanade.tachiyomi.util.preference.intListPreference
|
||||
import eu.kanade.tachiyomi.util.preference.onClick
|
||||
import eu.kanade.tachiyomi.util.preference.preference
|
||||
import eu.kanade.tachiyomi.util.preference.switchPreference
|
||||
|
@ -20,19 +18,6 @@ class SettingsGeneralController : SettingsController() {
|
|||
override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply {
|
||||
titleRes = R.string.pref_category_general
|
||||
|
||||
intListPreference {
|
||||
key = Keys.startScreen
|
||||
titleRes = R.string.pref_start_screen
|
||||
entriesRes = arrayOf(
|
||||
R.string.label_library,
|
||||
R.string.label_recent_updates,
|
||||
R.string.label_recent_manga,
|
||||
R.string.browse,
|
||||
)
|
||||
entryValues = arrayOf("1", "3", "2", "4")
|
||||
defaultValue = "1"
|
||||
summary = "%s"
|
||||
}
|
||||
switchPreference {
|
||||
bindTo(preferences.showUpdatesNavBadge())
|
||||
titleRes = R.string.pref_library_update_show_tab_badge
|
||||
|
|
|
@ -35,7 +35,6 @@ import eu.kanade.tachiyomi.util.preference.preferenceCategory
|
|||
import eu.kanade.tachiyomi.util.preference.summaryRes
|
||||
import eu.kanade.tachiyomi.util.preference.switchPreference
|
||||
import eu.kanade.tachiyomi.util.preference.titleRes
|
||||
import eu.kanade.tachiyomi.util.system.isTablet
|
||||
import eu.kanade.tachiyomi.widget.materialdialogs.QuadStateTextView
|
||||
import eu.kanade.tachiyomi.widget.materialdialogs.setQuadStateMultiChoiceItems
|
||||
import kotlinx.coroutines.flow.combine
|
||||
|
@ -84,13 +83,6 @@ class SettingsLibraryController : SettingsController() {
|
|||
}
|
||||
.launchIn(viewScope)
|
||||
}
|
||||
if (!context.isTablet()) {
|
||||
switchPreference {
|
||||
key = Keys.jumpToChapters
|
||||
titleRes = R.string.pref_jump_to_chapters
|
||||
defaultValue = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
preferenceCategory {
|
||||
|
|
|
@ -8,22 +8,12 @@ import android.os.Parcel
|
|||
import android.os.Parcelable
|
||||
import android.util.AttributeSet
|
||||
import android.view.ViewPropertyAnimator
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
import androidx.core.view.doOnLayout
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import androidx.customview.view.AbsSavedState
|
||||
import androidx.interpolator.view.animation.FastOutLinearInInterpolator
|
||||
import androidx.interpolator.view.animation.LinearOutSlowInInterpolator
|
||||
import androidx.lifecycle.findViewTreeLifecycleOwner
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.util.preference.asImmediateFlow
|
||||
import eu.kanade.tachiyomi.util.system.applySystemAnimatorScale
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
||||
class TachiyomiBottomNavigationView @JvmOverloads constructor(
|
||||
context: Context,
|
||||
|
@ -36,25 +26,6 @@ class TachiyomiBottomNavigationView @JvmOverloads constructor(
|
|||
|
||||
private var currentState = STATE_UP
|
||||
|
||||
init {
|
||||
// Hide on scroll
|
||||
doOnLayout {
|
||||
findViewTreeLifecycleOwner()?.lifecycleScope?.let { scope ->
|
||||
Injekt.get<PreferencesHelper>().hideBottomBarOnScroll()
|
||||
.asImmediateFlow {
|
||||
updateLayoutParams<CoordinatorLayout.LayoutParams> {
|
||||
behavior = if (it) {
|
||||
HideBottomNavigationOnScrollBehavior()
|
||||
} else {
|
||||
null
|
||||
}
|
||||
}
|
||||
}
|
||||
.launchIn(scope)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onSaveInstanceState(): Parcelable {
|
||||
val superState = super.onSaveInstanceState()
|
||||
return SavedState(superState).also {
|
||||
|
@ -120,8 +91,7 @@ class TachiyomiBottomNavigationView @JvmOverloads constructor(
|
|||
currentAnimator = null
|
||||
postInvalidate()
|
||||
}
|
||||
},
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
internal class SavedState : AbsSavedState {
|
||||
|
|
|
@ -86,6 +86,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:clickable="true"
|
||||
app:layout_behavior="eu.kanade.tachiyomi.widget.HideBottomNavigationOnScrollBehavior"
|
||||
app:layout_insetEdge="bottom"
|
||||
app:menu="@menu/main_nav"
|
||||
tools:ignore="KeyboardInaccessibleWidget" />
|
||||
|
|
|
@ -170,14 +170,12 @@
|
|||
<string name="alignment_top">Top</string>
|
||||
<string name="alignment_center">Center</string>
|
||||
<string name="alignment_bottom">Bottom</string>
|
||||
<string name="pref_hide_bottom_bar_on_scroll">Hide bottom bar on scroll</string>
|
||||
<string name="pref_category_timestamps">Timestamps</string>
|
||||
<string name="pref_relative_format">Relative timestamps</string>
|
||||
<string name="pref_relative_time_short">Short (Today, Yesterday)</string>
|
||||
<string name="pref_relative_time_long">Long (Short+, n days ago)</string>
|
||||
<string name="pref_date_format">Date format</string>
|
||||
|
||||
<string name="pref_start_screen">Start screen</string>
|
||||
<string name="pref_confirm_exit">Confirm exit</string>
|
||||
<string name="pref_manage_notifications">Manage notifications</string>
|
||||
|
||||
|
@ -210,7 +208,6 @@
|
|||
<string name="pref_library_columns">Items per row</string>
|
||||
<string name="portrait">Portrait</string>
|
||||
<string name="landscape">Landscape</string>
|
||||
<string name="pref_jump_to_chapters">Jump to chapters on open</string>
|
||||
|
||||
<string name="pref_category_library_update">Global update</string>
|
||||
<string name="pref_library_update_interval">Automatic updates</string>
|
||||
|
|
Reference in a new issue