mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-11-20 04:29:18 +01:00
Manga app shortcuts now open the newest chapter
With the option to turn it off Also refactoring app shortcut settings to turn off only series or sources or both, as well as disable the shortcut jumping straight to the reader
This commit is contained in:
parent
f2ad4725d8
commit
56bfa65a54
@ -121,6 +121,17 @@ object Migrations {
|
||||
UpdaterJob.setupTask()
|
||||
}
|
||||
}
|
||||
if (oldVersion < 75) {
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
val wasShortcutsDisabled = !prefs.getBoolean("show_manga_app_shortcuts", true)
|
||||
if (wasShortcutsDisabled) {
|
||||
prefs.edit {
|
||||
putBoolean(PreferenceKeys.showSourcesInShortcuts, false)
|
||||
putBoolean(PreferenceKeys.showSeriesInShortcuts, false)
|
||||
remove("show_manga_app_shortcuts")
|
||||
}
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
@ -204,7 +204,9 @@ object PreferenceKeys {
|
||||
|
||||
const val showSideNavOnBottom = "show_side_nav_on_bottom"
|
||||
|
||||
const val showMangaAppShortcuts = "show_manga_app_shortcuts"
|
||||
const val showSeriesInShortcuts = "show_series_shortcuts"
|
||||
const val showSourcesInShortcuts = "show_sources_shortcuts"
|
||||
const val openChapterInShortcuts = "open_chapter_shortcuts"
|
||||
|
||||
const val createLegacyBackup = "create_legacy_backup"
|
||||
|
||||
|
@ -402,7 +402,10 @@ class PreferencesHelper(val context: Context) {
|
||||
|
||||
fun createLegacyBackup() = flowPrefs.getBoolean(Keys.createLegacyBackup, true)
|
||||
fun dohProvider() = prefs.getInt(Keys.dohProvider, -1)
|
||||
fun appShortcuts() = prefs.getBoolean(Keys.showMangaAppShortcuts, true)
|
||||
|
||||
fun showSeriesInShortcuts() = prefs.getBoolean(Keys.showSeriesInShortcuts, true)
|
||||
fun showSourcesInShortcuts() = prefs.getBoolean(Keys.showSourcesInShortcuts, true)
|
||||
fun openChapterInShortcuts() = prefs.getBoolean(Keys.openChapterInShortcuts, true)
|
||||
|
||||
fun incognitoMode() = flowPrefs.getBoolean(Keys.incognitoMode, false)
|
||||
}
|
||||
|
@ -9,16 +9,20 @@ import com.bluelinelabs.conductor.Controller
|
||||
import com.bluelinelabs.conductor.RouterTransaction
|
||||
import com.bluelinelabs.conductor.changehandler.FadeChangeHandler
|
||||
import com.bluelinelabs.conductor.changehandler.SimpleSwapChangeHandler
|
||||
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
||||
import eu.kanade.tachiyomi.data.notification.NotificationReceiver
|
||||
import eu.kanade.tachiyomi.ui.base.controller.BaseController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||
import eu.kanade.tachiyomi.ui.manga.MangaDetailsController
|
||||
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
||||
import eu.kanade.tachiyomi.ui.security.SecureActivityDelegate
|
||||
import eu.kanade.tachiyomi.ui.setting.SettingsController
|
||||
import eu.kanade.tachiyomi.ui.setting.SettingsReaderController
|
||||
import eu.kanade.tachiyomi.ui.source.browse.BrowseSourceController
|
||||
import eu.kanade.tachiyomi.ui.source.global_search.GlobalSearchController
|
||||
import eu.kanade.tachiyomi.util.view.withFadeTransaction
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
||||
class SearchActivity : MainActivity() {
|
||||
|
||||
@ -109,6 +113,21 @@ class SearchActivity : MainActivity() {
|
||||
}
|
||||
SHORTCUT_MANGA, SHORTCUT_MANGA_BACK -> {
|
||||
val extras = intent.extras ?: return false
|
||||
if (intent.action == SHORTCUT_MANGA_BACK && preferences.openChapterInShortcuts()) {
|
||||
val mangaId = extras.getLong(MangaDetailsController.MANGA_EXTRA)
|
||||
if (mangaId != 0L) {
|
||||
val db = Injekt.get<DatabaseHelper>()
|
||||
val chapters = db.getChapters(mangaId).executeAsBlocking()
|
||||
val nextUnreadChapter = chapters.sortedByDescending { it.source_order }.find { !it.read }
|
||||
val manga = db.getManga(mangaId).executeAsBlocking()
|
||||
if (nextUnreadChapter != null && manga != null) {
|
||||
val activity = ReaderActivity.newIntent(this, manga, nextUnreadChapter)
|
||||
startActivity(activity)
|
||||
finish()
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
router.replaceTopController(
|
||||
RouterTransaction.with(MangaDetailsController(extras))
|
||||
.pushChangeHandler(SimpleSwapChangeHandler())
|
||||
|
@ -84,13 +84,6 @@ class SettingsGeneralController : SettingsController() {
|
||||
isVisible = activity?.isTablet() == true
|
||||
}
|
||||
|
||||
switchPreference {
|
||||
key = Keys.showMangaAppShortcuts
|
||||
titleRes = R.string.app_shortcuts
|
||||
summaryRes = R.string.show_recent_in_shortcuts
|
||||
defaultValue = true
|
||||
}
|
||||
|
||||
preferenceCategory {
|
||||
titleRes = R.string.display
|
||||
|
||||
@ -136,6 +129,30 @@ class SettingsGeneralController : SettingsController() {
|
||||
}
|
||||
}
|
||||
|
||||
preferenceCategory {
|
||||
titleRes = R.string.app_shortcuts
|
||||
|
||||
switchPreference {
|
||||
key = Keys.showSeriesInShortcuts
|
||||
titleRes = R.string.show_recent_series
|
||||
summaryRes = R.string.includes_recently_read_updated_added
|
||||
defaultValue = true
|
||||
}
|
||||
|
||||
switchPreference {
|
||||
key = Keys.showSourcesInShortcuts
|
||||
titleRes = R.string.show_recent_sources
|
||||
defaultValue = true
|
||||
}
|
||||
|
||||
switchPreference {
|
||||
key = Keys.openChapterInShortcuts
|
||||
titleRes = R.string.series_opens_new_chapters
|
||||
summaryRes = R.string.no_new_chapters_open_details
|
||||
defaultValue = true
|
||||
}
|
||||
}
|
||||
|
||||
preferenceCategory {
|
||||
titleRes = R.string.locale
|
||||
|
||||
|
@ -38,7 +38,7 @@ class MangaShortcutManager(
|
||||
val context: Context = preferences.context
|
||||
fun updateShortcuts() {
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N_MR1) {
|
||||
if (!preferences.appShortcuts()) {
|
||||
if (!preferences.showSeriesInShortcuts() && !preferences.showSourcesInShortcuts()) {
|
||||
val shortcutManager = context.getSystemService(ShortcutManager::class.java)
|
||||
shortcutManager.removeAllDynamicShortcuts()
|
||||
return
|
||||
@ -46,12 +46,20 @@ class MangaShortcutManager(
|
||||
GlobalScope.launchIO {
|
||||
val shortcutManager = context.getSystemService(ShortcutManager::class.java)
|
||||
|
||||
val recentManga = RecentsPresenter.getRecentManga()
|
||||
val recentSources = preferences.lastUsedSources().get().mapNotNull {
|
||||
val splitS = it.split(":")
|
||||
splitS.first().toLongOrNull()?.let { id ->
|
||||
sourceManager.getOrStub(id) to splitS[1].toLong()
|
||||
val recentManga = if (preferences.showSeriesInShortcuts()) {
|
||||
RecentsPresenter.getRecentManga()
|
||||
} else {
|
||||
emptyList()
|
||||
}
|
||||
val recentSources = if (preferences.showSourcesInShortcuts()) {
|
||||
preferences.lastUsedSources().get().mapNotNull {
|
||||
val splitS = it.split(":")
|
||||
splitS.first().toLongOrNull()?.let { id ->
|
||||
sourceManager.getOrStub(id) to splitS[1].toLong()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
emptyList()
|
||||
}
|
||||
val recents =
|
||||
(recentManga.take(shortcutManager.maxShortcutCountPerActivity) + recentSources)
|
||||
|
@ -619,8 +619,6 @@
|
||||
<string name="secure_screen">Secure screen</string>
|
||||
<string name="hide_bottom_nav">Auto-hide bottom navigation</string>
|
||||
<string name="move_side_nav_to_bottom">Move side navigation buttons to bottom</string>
|
||||
<string name="app_shortcuts">App shortcuts</string>
|
||||
<string name="show_recent_in_shortcuts">Show recent sources and series in app shortcuts</string>
|
||||
<string name="follow_system_theme">Follow system theme</string>
|
||||
<string name="hides_on_scroll">Hides when scrolling</string>
|
||||
<string name="hide_app_block_screenshots">Hide app contents when switching apps and block screenshots</string>
|
||||
@ -629,6 +627,13 @@
|
||||
<string name="back_to_start">Back to start</string>
|
||||
<string name="pressing_back_to_start">Pressing back to starting screen</string>
|
||||
|
||||
<string name="app_shortcuts">App shortcuts</string>
|
||||
<string name="show_recent_sources">Show recently used sources</string>
|
||||
<string name="show_recent_series">Show recent series</string>
|
||||
<string name="includes_recently_read_updated_added">Includes recently read, updated, and added series</string>
|
||||
<string name="series_opens_new_chapters">Series shortcuts opens new chapters</string>
|
||||
<string name="no_new_chapters_open_details">When there\'s no new chapters, the series\' details will open instead</string>
|
||||
|
||||
<!-- Backup -->
|
||||
<string name="backup">Backup</string>
|
||||
<string name="backup_and_restore">Backup and restore</string>
|
||||
|
Loading…
Reference in New Issue
Block a user