From 98df581cfd9dfadc4a60b7ce38297c1e62b44c1f Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 5 Jan 2020 11:16:12 -0500 Subject: [PATCH] Add support for AndroidX preferences (#1971) * Add stubs for AndroidX preferences * Update extensions for AndroidX preferences --- .../v7/preference/DialogPreference.java | 6 +-- .../v7/preference/EditTextPreference.java | 4 +- .../support/v7/preference/ListPreference.java | 13 ++--- .../support/v7/preference/Preference.java | 16 +++--- .../v7/preference/PreferenceScreen.java | 7 +-- .../androidx/preference/DialogPreference.java | 21 ++++++++ .../preference/EditTextPreference.java | 19 +++++++ .../androidx/preference/ListPreference.java | 43 ++++++++++++++++ .../java/androidx/preference/Preference.java | 49 +++++++++++++++++++ .../androidx/preference/PreferenceScreen.java | 15 ++++++ .../tachiyomi/source/ConfigurableSource.java | 10 ++-- src/all/komga/build.gradle | 2 +- .../tachiyomi/extension/all/komga/Komga.kt | 32 +++++++++++- src/all/mangadex/build.gradle | 2 +- .../extension/all/mangadex/Mangadex.kt | 49 +++++++++++++++++++ src/all/nhentai/build.gradle | 2 +- .../extension/all/nhentai/NHentai.kt | 23 +++++++++ src/all/wpmangastream/build.gradle | 2 +- .../all/wpmangastream/WPMangaStream.kt | 18 ++++++- src/en/guya/build.gradle | 2 +- .../tachiyomi/extension/en/guya/Guya.kt | 26 ++++++++++ src/en/mangakisa/build.gradle | 2 +- .../extension/en/mangakisa/MangaKisa.kt | 39 +++++++++++++-- src/es/lectormanga/build.gradle | 2 +- .../extension/es/lectormanga/LectorManga.kt | 18 +++++++ src/es/tumangaonline/build.gradle | 2 +- .../es/tumangaonline/TuMangaOnline.kt | 20 +++++++- src/ko/mangashowme/build.gradle | 2 +- .../extension/ko/mangashowme/MangaShowMe.kt | 24 +++++++++ src/ko/newtoki/build.gradle | 2 +- .../tachiyomi/extension/ko/newtoki/NewToki.kt | 26 +++++++++- src/ru/libmanga/build.gradle | 2 +- .../extension/ru/libmanga/LibManga.kt | 23 +++++++++ src/ru/mangaonlinebiz/build.gradle | 1 - 34 files changed, 470 insertions(+), 54 deletions(-) create mode 100644 lib/preference-stub/src/main/java/androidx/preference/DialogPreference.java create mode 100644 lib/preference-stub/src/main/java/androidx/preference/EditTextPreference.java create mode 100644 lib/preference-stub/src/main/java/androidx/preference/ListPreference.java create mode 100644 lib/preference-stub/src/main/java/androidx/preference/Preference.java create mode 100644 lib/preference-stub/src/main/java/androidx/preference/PreferenceScreen.java diff --git a/lib/preference-stub/src/main/java/android/support/v7/preference/DialogPreference.java b/lib/preference-stub/src/main/java/android/support/v7/preference/DialogPreference.java index d74c0c71d..a4cc7ccf8 100644 --- a/lib/preference-stub/src/main/java/android/support/v7/preference/DialogPreference.java +++ b/lib/preference-stub/src/main/java/android/support/v7/preference/DialogPreference.java @@ -1,10 +1,7 @@ package android.support.v7.preference; -/** - * Created by Carlos on 5/9/2018. - */ - public abstract class DialogPreference extends Preference { + public CharSequence getDialogTitle() { throw new RuntimeException("Stub!"); } @@ -20,4 +17,5 @@ public abstract class DialogPreference extends Preference { public void setDialogMessage(CharSequence dialogMessage) { throw new RuntimeException("Stub!"); } + } diff --git a/lib/preference-stub/src/main/java/android/support/v7/preference/EditTextPreference.java b/lib/preference-stub/src/main/java/android/support/v7/preference/EditTextPreference.java index 2071573df..f5eb9d6ad 100644 --- a/lib/preference-stub/src/main/java/android/support/v7/preference/EditTextPreference.java +++ b/lib/preference-stub/src/main/java/android/support/v7/preference/EditTextPreference.java @@ -3,6 +3,7 @@ package android.support.v7.preference; import android.content.Context; public class EditTextPreference extends DialogPreference { + public EditTextPreference(Context context) { throw new RuntimeException("Stub!"); } @@ -14,4 +15,5 @@ public class EditTextPreference extends DialogPreference { public void setText(String text) { throw new RuntimeException("Stub!"); } -} \ No newline at end of file + +} diff --git a/lib/preference-stub/src/main/java/android/support/v7/preference/ListPreference.java b/lib/preference-stub/src/main/java/android/support/v7/preference/ListPreference.java index 6099c5b86..3ca948d6e 100644 --- a/lib/preference-stub/src/main/java/android/support/v7/preference/ListPreference.java +++ b/lib/preference-stub/src/main/java/android/support/v7/preference/ListPreference.java @@ -2,21 +2,17 @@ package android.support.v7.preference; import android.content.Context; -/** - * Created by Carlos on 5/9/2018. - */ - public class ListPreference extends Preference { public ListPreference(Context context) { throw new RuntimeException("Stub!"); } - public void setEntries(CharSequence[] entries) { + public CharSequence[] getEntries() { throw new RuntimeException("Stub!"); } - public CharSequence[] getEntries() { + public void setEntries(CharSequence[] entries) { throw new RuntimeException("Stub!"); } @@ -24,11 +20,11 @@ public class ListPreference extends Preference { throw new RuntimeException("Stub!"); } - public void setEntryValues(CharSequence[] entryValues) { + public CharSequence[] getEntryValues() { throw new RuntimeException("Stub!"); } - public CharSequence[] getEntryValues() { + public void setEntryValues(CharSequence[] entryValues) { throw new RuntimeException("Stub!"); } @@ -43,4 +39,5 @@ public class ListPreference extends Preference { public void setValue(String value) { throw new RuntimeException("Stub!"); } + } diff --git a/lib/preference-stub/src/main/java/android/support/v7/preference/Preference.java b/lib/preference-stub/src/main/java/android/support/v7/preference/Preference.java index a6c27095d..beda8ba9d 100644 --- a/lib/preference-stub/src/main/java/android/support/v7/preference/Preference.java +++ b/lib/preference-stub/src/main/java/android/support/v7/preference/Preference.java @@ -1,13 +1,6 @@ package android.support.v7.preference; -/** - * Created by Carlos on 5/9/2018. - */ - public class Preference { - public interface OnPreferenceChangeListener { - boolean onPreferenceChange(Preference preference, Object newValue); - } public void setOnPreferenceChangeListener(OnPreferenceChangeListener onPreferenceChangeListener) { throw new RuntimeException("Stub!"); @@ -29,7 +22,7 @@ public class Preference { throw new RuntimeException("Stub!"); } - public void setKey(String key) { + public void setSummary(CharSequence summary) { throw new RuntimeException("Stub!"); } @@ -37,7 +30,7 @@ public class Preference { throw new RuntimeException("Stub!"); } - public void setSummary(CharSequence summary) { + public void setKey(String key) { throw new RuntimeException("Stub!"); } @@ -45,7 +38,12 @@ public class Preference { throw new RuntimeException("Stub!"); } + public interface OnPreferenceChangeListener { + boolean onPreferenceChange(Preference preference, Object newValue); + } + public interface OnPreferenceClickListener { boolean onPreferenceClick(Preference preference); } + } diff --git a/lib/preference-stub/src/main/java/android/support/v7/preference/PreferenceScreen.java b/lib/preference-stub/src/main/java/android/support/v7/preference/PreferenceScreen.java index 26badb6c8..cfb9da457 100644 --- a/lib/preference-stub/src/main/java/android/support/v7/preference/PreferenceScreen.java +++ b/lib/preference-stub/src/main/java/android/support/v7/preference/PreferenceScreen.java @@ -2,11 +2,7 @@ package android.support.v7.preference; import android.content.Context; -/** - * Created by Carlos on 5/7/2018. - */ - -public class PreferenceScreen{ +public class PreferenceScreen { public boolean addPreference(Preference preference) { throw new RuntimeException("Stub!"); @@ -15,4 +11,5 @@ public class PreferenceScreen{ public Context getContext() { throw new RuntimeException("Stub!"); } + } diff --git a/lib/preference-stub/src/main/java/androidx/preference/DialogPreference.java b/lib/preference-stub/src/main/java/androidx/preference/DialogPreference.java new file mode 100644 index 000000000..5a884efe8 --- /dev/null +++ b/lib/preference-stub/src/main/java/androidx/preference/DialogPreference.java @@ -0,0 +1,21 @@ +package androidx.preference; + +public abstract class DialogPreference extends Preference { + + public CharSequence getDialogTitle() { + throw new RuntimeException("Stub!"); + } + + public void setDialogTitle(CharSequence dialogTitle) { + throw new RuntimeException("Stub!"); + } + + public CharSequence getDialogMessage() { + throw new RuntimeException("Stub!"); + } + + public void setDialogMessage(CharSequence dialogMessage) { + throw new RuntimeException("Stub!"); + } + +} diff --git a/lib/preference-stub/src/main/java/androidx/preference/EditTextPreference.java b/lib/preference-stub/src/main/java/androidx/preference/EditTextPreference.java new file mode 100644 index 000000000..2d9814e57 --- /dev/null +++ b/lib/preference-stub/src/main/java/androidx/preference/EditTextPreference.java @@ -0,0 +1,19 @@ +package androidx.preference; + +import android.content.Context; + +public class EditTextPreference extends DialogPreference { + + public EditTextPreference(Context context) { + throw new RuntimeException("Stub!"); + } + + public String getText() { + throw new RuntimeException("Stub!"); + } + + public void setText(String text) { + throw new RuntimeException("Stub!"); + } + +} diff --git a/lib/preference-stub/src/main/java/androidx/preference/ListPreference.java b/lib/preference-stub/src/main/java/androidx/preference/ListPreference.java new file mode 100644 index 000000000..51ba95fc8 --- /dev/null +++ b/lib/preference-stub/src/main/java/androidx/preference/ListPreference.java @@ -0,0 +1,43 @@ +package androidx.preference; + +import android.content.Context; + +public class ListPreference extends Preference { + + public ListPreference(Context context) { + throw new RuntimeException("Stub!"); + } + + public CharSequence[] getEntries() { + throw new RuntimeException("Stub!"); + } + + public void setEntries(CharSequence[] entries) { + throw new RuntimeException("Stub!"); + } + + public int findIndexOfValue(String value) { + throw new RuntimeException("Stub!"); + } + + public CharSequence[] getEntryValues() { + throw new RuntimeException("Stub!"); + } + + public void setEntryValues(CharSequence[] entryValues) { + throw new RuntimeException("Stub!"); + } + + public void setValueIndex(int index) { + throw new RuntimeException("Stub!"); + } + + public String getValue() { + throw new RuntimeException("Stub!"); + } + + public void setValue(String value) { + throw new RuntimeException("Stub!"); + } + +} diff --git a/lib/preference-stub/src/main/java/androidx/preference/Preference.java b/lib/preference-stub/src/main/java/androidx/preference/Preference.java new file mode 100644 index 000000000..e0b94c403 --- /dev/null +++ b/lib/preference-stub/src/main/java/androidx/preference/Preference.java @@ -0,0 +1,49 @@ +package androidx.preference; + +public class Preference { + + public void setOnPreferenceChangeListener(OnPreferenceChangeListener onPreferenceChangeListener) { + throw new RuntimeException("Stub!"); + } + + public void setOnPreferenceClickListener(OnPreferenceClickListener onPreferenceClickListener) { + throw new RuntimeException("Stub!"); + } + + public CharSequence getTitle() { + throw new RuntimeException("Stub!"); + } + + public void setTitle(CharSequence title) { + throw new RuntimeException("Stub!"); + } + + public CharSequence getSummary() { + throw new RuntimeException("Stub!"); + } + + public void setSummary(CharSequence summary) { + throw new RuntimeException("Stub!"); + } + + public String getKey() { + throw new RuntimeException("Stub!"); + } + + public void setKey(String key) { + throw new RuntimeException("Stub!"); + } + + public void setDefaultValue(Object defaultValue) { + throw new RuntimeException("Stub!"); + } + + public interface OnPreferenceChangeListener { + boolean onPreferenceChange(Preference preference, Object newValue); + } + + public interface OnPreferenceClickListener { + boolean onPreferenceClick(Preference preference); + } + +} diff --git a/lib/preference-stub/src/main/java/androidx/preference/PreferenceScreen.java b/lib/preference-stub/src/main/java/androidx/preference/PreferenceScreen.java new file mode 100644 index 000000000..38e31e644 --- /dev/null +++ b/lib/preference-stub/src/main/java/androidx/preference/PreferenceScreen.java @@ -0,0 +1,15 @@ +package androidx.preference; + +import android.content.Context; + +public class PreferenceScreen { + + public boolean addPreference(Preference preference) { + throw new RuntimeException("Stub!"); + } + + public Context getContext() { + throw new RuntimeException("Stub!"); + } + +} diff --git a/lib/preference-stub/src/main/java/eu/kanade/tachiyomi/source/ConfigurableSource.java b/lib/preference-stub/src/main/java/eu/kanade/tachiyomi/source/ConfigurableSource.java index 727b53763..1df0d528c 100644 --- a/lib/preference-stub/src/main/java/eu/kanade/tachiyomi/source/ConfigurableSource.java +++ b/lib/preference-stub/src/main/java/eu/kanade/tachiyomi/source/ConfigurableSource.java @@ -1,13 +1,9 @@ package eu.kanade.tachiyomi.source; -import android.support.v7.preference.PreferenceScreen; - -/** - * Created by Carlos on 5/7/2018. - */ - public interface ConfigurableSource { - void setupPreferenceScreen(PreferenceScreen screen); + void setupPreferenceScreen(android.support.v7.preference.PreferenceScreen screen); + + void setupPreferenceScreen(androidx.preference.PreferenceScreen screen); } diff --git a/src/all/komga/build.gradle b/src/all/komga/build.gradle index 71fcc58ba..ea1e7ff3c 100644 --- a/src/all/komga/build.gradle +++ b/src/all/komga/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: Komga' pkgNameSuffix = 'all.komga' extClass = '.Komga' - extVersionCode = 5 + extVersionCode = 6 libVersion = '1.2' } diff --git a/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/Komga.kt b/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/Komga.kt index 3b044e27d..dc4d7b76d 100644 --- a/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/Komga.kt +++ b/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/Komga.kt @@ -190,13 +190,41 @@ open class Komga : ConfigurableSource, HttpSource() { } .build() - override fun setupPreferenceScreen(screen: PreferenceScreen) { + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { screen.addPreference(screen.editTextPreference(ADDRESS_TITLE, ADDRESS_DEFAULT, baseUrl)) screen.addPreference(screen.editTextPreference(USERNAME_TITLE, USERNAME_DEFAULT, username)) screen.addPreference(screen.editTextPreference(PASSWORD_TITLE, PASSWORD_DEFAULT, password)) } - private fun PreferenceScreen.editTextPreference(title: String, default: String, value: String): EditTextPreference { + private fun androidx.preference.PreferenceScreen.editTextPreference(title: String, default: String, value: String): androidx.preference.EditTextPreference { + return androidx.preference.EditTextPreference(context).apply { + key = title + this.title = title + summary = value + this.setDefaultValue(default) + dialogTitle = title + + setOnPreferenceChangeListener { _, newValue -> + try { + val res = preferences.edit().putString(title, newValue as String).commit() + Toast.makeText(context, "Restart Tachiyomi to apply new setting." + , Toast.LENGTH_LONG).show() + res + } catch (e: Exception) { + e.printStackTrace() + false + } + } + } + } + + override fun setupPreferenceScreen(screen: PreferenceScreen) { + screen.addPreference(screen.supportEditTextPreference(ADDRESS_TITLE, ADDRESS_DEFAULT, baseUrl)) + screen.addPreference(screen.supportEditTextPreference(USERNAME_TITLE, USERNAME_DEFAULT, username)) + screen.addPreference(screen.supportEditTextPreference(PASSWORD_TITLE, PASSWORD_DEFAULT, password)) + } + + private fun PreferenceScreen.supportEditTextPreference(title: String, default: String, value: String): EditTextPreference { return EditTextPreference(context).apply { key = title this.title = title diff --git a/src/all/mangadex/build.gradle b/src/all/mangadex/build.gradle index 72aba6767..5b77122f0 100644 --- a/src/all/mangadex/build.gradle +++ b/src/all/mangadex/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: MangaDex' pkgNameSuffix = 'all.mangadex' extClass = '.MangadexFactory' - extVersionCode = 73 + extVersionCode = 74 libVersion = '1.2' } diff --git a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt index 97be4ba99..73c3cdb81 100644 --- a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt +++ b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt @@ -581,6 +581,55 @@ abstract class Mangadex( return baseUrl + attr } + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { + val myPref = androidx.preference.ListPreference(screen.context).apply { + key = SHOW_R18_PREF_Title + title = SHOW_R18_PREF_Title + + title = SHOW_R18_PREF_Title + entries = arrayOf("Show No R18+", "Show All", "Show Only R18+") + entryValues = arrayOf("0", "1", "2") + summary = "%s" + + setOnPreferenceChangeListener { _, newValue -> + val selected = newValue as String + val index = this.findIndexOfValue(selected) + preferences.edit().putInt(SHOW_R18_PREF, index).commit() + } + } + val thumbsPref = androidx.preference.ListPreference(screen.context).apply { + key = SHOW_THUMBNAIL_PREF_Title + title = SHOW_THUMBNAIL_PREF_Title + entries = arrayOf("Show high quality", "Show low quality") + entryValues = arrayOf("0", "1") + summary = "%s" + + setOnPreferenceChangeListener { _, newValue -> + val selected = newValue as String + val index = this.findIndexOfValue(selected) + preferences.edit().putInt(SHOW_THUMBNAIL_PREF, index).commit() + } + } + val serverPref = androidx.preference.ListPreference(screen.context).apply { + key = SERVER_PREF_Title + title = SERVER_PREF_Title + entries = SERVER_PREF_ENTRIES + entryValues = SERVER_PREF_ENTRY_VALUES + summary = "%s" + + setOnPreferenceChangeListener { _, newValue -> + val selected = newValue as String + val index = this.findIndexOfValue(selected) + val entry = entryValues[index] as String + preferences.edit().putString(SERVER_PREF, entry).commit() + } + } + + screen.addPreference(myPref) + screen.addPreference(thumbsPref) + screen.addPreference(serverPref) + } + override fun setupPreferenceScreen(screen: PreferenceScreen) { val myPref = ListPreference(screen.context).apply { key = SHOW_R18_PREF_Title diff --git a/src/all/nhentai/build.gradle b/src/all/nhentai/build.gradle index 127bafbde..7bcd22f4c 100644 --- a/src/all/nhentai/build.gradle +++ b/src/all/nhentai/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: NHentai' pkgNameSuffix = 'all.nhentai' extClass = '.NHFactory' - extVersionCode = 15 + extVersionCode = 16 libVersion = '1.2' } diff --git a/src/all/nhentai/src/eu/kanade/tachiyomi/extension/all/nhentai/NHentai.kt b/src/all/nhentai/src/eu/kanade/tachiyomi/extension/all/nhentai/NHentai.kt index 975adc24c..5455e40be 100644 --- a/src/all/nhentai/src/eu/kanade/tachiyomi/extension/all/nhentai/NHentai.kt +++ b/src/all/nhentai/src/eu/kanade/tachiyomi/extension/all/nhentai/NHentai.kt @@ -57,6 +57,29 @@ open class NHentai( else -> false } + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { + val serverPref = androidx.preference.ListPreference(screen.context).apply { + key = TITLE_PREF + title = TITLE_PREF + entries = arrayOf("Full Title", "Short Title") + entryValues = arrayOf("full", "short") + summary = "%s" + + setOnPreferenceChangeListener { _, newValue -> + displayFullTitle = when(newValue){ + "full" -> true + else -> false + } + true + } + } + + if(!preferences.contains(TITLE_PREF)) + preferences.edit().putString(TITLE_PREF, "full").apply() + + screen.addPreference(serverPref) + } + override fun setupPreferenceScreen(screen: PreferenceScreen) { val serverPref = ListPreference(screen.context).apply { key = TITLE_PREF diff --git a/src/all/wpmangastream/build.gradle b/src/all/wpmangastream/build.gradle index 009f28c96..698d87871 100644 --- a/src/all/wpmangastream/build.gradle +++ b/src/all/wpmangastream/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: WP Manga Stream' pkgNameSuffix = 'all.wpmangastream' extClass = '.WPMangaStreamFactory' - extVersionCode = 2 + extVersionCode = 3 libVersion = '1.2' } diff --git a/src/all/wpmangastream/src/eu/kanade/tachiyomi/extension/all/wpmangastream/WPMangaStream.kt b/src/all/wpmangastream/src/eu/kanade/tachiyomi/extension/all/wpmangastream/WPMangaStream.kt index 243bec15b..fe5fa8712 100644 --- a/src/all/wpmangastream/src/eu/kanade/tachiyomi/extension/all/wpmangastream/WPMangaStream.kt +++ b/src/all/wpmangastream/src/eu/kanade/tachiyomi/extension/all/wpmangastream/WPMangaStream.kt @@ -35,8 +35,24 @@ abstract class WPMangaStream(override val name: String, override val baseUrl: St Injekt.get().getSharedPreferences("source_$id", 0x0000) } - override fun setupPreferenceScreen(screen: PreferenceScreen) { + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { + val thumbsPref = androidx.preference.ListPreference(screen.context).apply { + key = SHOW_THUMBNAIL_PREF_Title + title = SHOW_THUMBNAIL_PREF_Title + entries = arrayOf("Show high quality", "Show mid quality", "Show low quality") + entryValues = arrayOf("0", "1", "2") + summary = "%s" + setOnPreferenceChangeListener { _, newValue -> + val selected = newValue as String + val index = this.findIndexOfValue(selected) + preferences.edit().putInt(SHOW_THUMBNAIL_PREF, index).commit() + } + } + screen.addPreference(thumbsPref) + } + + override fun setupPreferenceScreen(screen: PreferenceScreen) { val thumbsPref = ListPreference(screen.context).apply { key = SHOW_THUMBNAIL_PREF_Title title = SHOW_THUMBNAIL_PREF_Title diff --git a/src/en/guya/build.gradle b/src/en/guya/build.gradle index 8f74e859c..f6e5560be 100644 --- a/src/en/guya/build.gradle +++ b/src/en/guya/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: Guya' pkgNameSuffix = "en.guya" extClass = '.Guya' - extVersionCode = 7 + extVersionCode = 8 libVersion = '1.2' } diff --git a/src/en/guya/src/eu/kanade/tachiyomi/extension/en/guya/Guya.kt b/src/en/guya/src/eu/kanade/tachiyomi/extension/en/guya/Guya.kt index dc12ff283..ef149a47e 100644 --- a/src/en/guya/src/eu/kanade/tachiyomi/extension/en/guya/Guya.kt +++ b/src/en/guya/src/eu/kanade/tachiyomi/extension/en/guya/Guya.kt @@ -163,6 +163,32 @@ open class Guya() : ConfigurableSource, HttpSource() { return parseManga(truncatedJSON) } + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { + val preference = androidx.preference.ListPreference(screen.context).apply { + key = "preferred_scanlator" + title = "Preferred scanlator" + entries = arrayOf() + entryValues = arrayOf() + for (key in Scanlators.keys()) { + entries += Scanlators.getValueFromKey(key) + entryValues += key + } + summary = "Current: %s\n\n" + + "This setting sets the scanlation group to prioritize " + + "on chapter refresh/update. It will get the next available if " + + "your preferred scanlator isn't an option (yet)." + + this.setDefaultValue("1") + + setOnPreferenceChangeListener{_, newValue -> + val selected = newValue.toString() + preferences.edit().putString(SCANLATOR_PREFERENCE, selected).commit() + } + } + + screen.addPreference(preference) + } + override fun setupPreferenceScreen(screen: PreferenceScreen) { val preference = ListPreference(screen.context).apply { key = "preferred_scanlator" diff --git a/src/en/mangakisa/build.gradle b/src/en/mangakisa/build.gradle index f60856f10..67e569e17 100644 --- a/src/en/mangakisa/build.gradle +++ b/src/en/mangakisa/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: MangaKisa' pkgNameSuffix = 'en.mangakisa' extClass = '.MangaKisa' - extVersionCode = 1 + extVersionCode = 2 libVersion = '1.2' } diff --git a/src/en/mangakisa/src/eu/kanade/tachiyomi/extension/en/mangakisa/MangaKisa.kt b/src/en/mangakisa/src/eu/kanade/tachiyomi/extension/en/mangakisa/MangaKisa.kt index d842362c5..306b23c04 100644 --- a/src/en/mangakisa/src/eu/kanade/tachiyomi/extension/en/mangakisa/MangaKisa.kt +++ b/src/en/mangakisa/src/eu/kanade/tachiyomi/extension/en/mangakisa/MangaKisa.kt @@ -141,7 +141,7 @@ class MangaKisa : ConfigurableSource, ParsedHttpSource() { return pages } - + override fun imageUrlRequest(page: Page) = throw Exception("Not used") override fun imageUrlParse(document: Document) = throw Exception("Not used") @@ -210,8 +210,41 @@ class MangaKisa : ConfigurableSource, ParsedHttpSource() { Pair("yaoi", "Yaoi "), Pair("yuri", "Yuri ") )) - - // Preferences Code + + // Preferences Code + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { + val popularmangapref = androidx.preference.ListPreference(screen.context).apply { + key = BROWSE_PREF_Title + title = BROWSE_PREF_Title + entries = arrayOf("Weekly", "All Time") + entryValues = arrayOf("popular", "popular-alltime") + summary = "%s" + + setOnPreferenceChangeListener { _, newValue -> + val selected = newValue as String + val index = this.findIndexOfValue(selected) + val entry = entryValues.get(index) as String + preferences.edit().putString(BROWSE_PREF, entry).commit() + } + } + val latestmangapref = androidx.preference.ListPreference(screen.context).apply { + key = LATEST_PREF_Title + title = LATEST_PREF_Title + entries = arrayOf("Popular Updates", "All Updates") + entryValues = arrayOf("latest", "all-updates/latest") + summary = "%s" + + setOnPreferenceChangeListener { _, newValue -> + val selected = newValue as String + val index = this.findIndexOfValue(selected) + val entry = entryValues.get(index) as String + preferences.edit().putString(LATEST_PREF, entry).commit() + } + } + screen.addPreference(popularmangapref) + screen.addPreference(latestmangapref) + } + override fun setupPreferenceScreen(screen: PreferenceScreen) { val popularmangapref = ListPreference(screen.context).apply { key = BROWSE_PREF_Title diff --git a/src/es/lectormanga/build.gradle b/src/es/lectormanga/build.gradle index aa5c253d3..259fa1cac 100755 --- a/src/es/lectormanga/build.gradle +++ b/src/es/lectormanga/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: LectorManga' pkgNameSuffix = 'es.lectormanga' extClass = '.LectorManga' - extVersionCode = 3 + extVersionCode = 4 libVersion = '1.2' } diff --git a/src/es/lectormanga/src/eu/kanade/tachiyomi/extension/es/lectormanga/LectorManga.kt b/src/es/lectormanga/src/eu/kanade/tachiyomi/extension/es/lectormanga/LectorManga.kt index ba2832019..409152122 100755 --- a/src/es/lectormanga/src/eu/kanade/tachiyomi/extension/es/lectormanga/LectorManga.kt +++ b/src/es/lectormanga/src/eu/kanade/tachiyomi/extension/es/lectormanga/LectorManga.kt @@ -408,6 +408,24 @@ class LectorManga : ConfigurableSource, ParsedHttpSource() { } // Preferences Code + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { + val deduppref = androidx.preference.ListPreference(screen.context).apply { + key = DEDUP_PREF_Title + title = DEDUP_PREF_Title + entries = arrayOf("All scanlators", "One scanlator per chapter") + entryValues = arrayOf("all", "one") + summary = "%s" + + setOnPreferenceChangeListener { _, newValue -> + val selected = newValue as String + val index = this.findIndexOfValue(selected) + val entry = entryValues.get(index) as String + preferences.edit().putString(DEDUP_PREF, entry).commit() + } + } + screen.addPreference(deduppref) + } + override fun setupPreferenceScreen(screen: PreferenceScreen) { val deduppref = ListPreference(screen.context).apply { key = DEDUP_PREF_Title diff --git a/src/es/tumangaonline/build.gradle b/src/es/tumangaonline/build.gradle index 8b411a27e..6acb82eec 100755 --- a/src/es/tumangaonline/build.gradle +++ b/src/es/tumangaonline/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: TuMangaOnline' pkgNameSuffix = 'es.tumangaonline' extClass = '.TuMangaOnline' - extVersionCode = 13 + extVersionCode = 14 libVersion = '1.2' } diff --git a/src/es/tumangaonline/src/eu/kanade/tachiyomi/extension/es/tumangaonline/TuMangaOnline.kt b/src/es/tumangaonline/src/eu/kanade/tachiyomi/extension/es/tumangaonline/TuMangaOnline.kt index 983c5541e..3f1f453d0 100755 --- a/src/es/tumangaonline/src/eu/kanade/tachiyomi/extension/es/tumangaonline/TuMangaOnline.kt +++ b/src/es/tumangaonline/src/eu/kanade/tachiyomi/extension/es/tumangaonline/TuMangaOnline.kt @@ -38,7 +38,7 @@ class TuMangaOnline : ConfigurableSource, ParsedHttpSource() { .retryOnConnectionFailure(true) .followRedirects(true) .build()!! - + private val userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0" override fun headersBuilder(): Headers.Builder { @@ -421,6 +421,24 @@ class TuMangaOnline : ConfigurableSource, ParsedHttpSource() { } // Preferences Code + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { + val deduppref = androidx.preference.ListPreference(screen.context).apply { + key = DEDUP_PREF_Title + title = DEDUP_PREF_Title + entries = arrayOf("All scanlators", "One scanlator per chapter") + entryValues = arrayOf("all", "one") + summary = "%s" + + setOnPreferenceChangeListener { _, newValue -> + val selected = newValue as String + val index = this.findIndexOfValue(selected) + val entry = entryValues.get(index) as String + preferences.edit().putString(DEDUP_PREF, entry).commit() + } + } + screen.addPreference(deduppref) + } + override fun setupPreferenceScreen(screen: PreferenceScreen) { val deduppref = ListPreference(screen.context).apply { key = DEDUP_PREF_Title diff --git a/src/ko/mangashowme/build.gradle b/src/ko/mangashowme/build.gradle index 8ce23e19b..8058b7d1d 100644 --- a/src/ko/mangashowme/build.gradle +++ b/src/ko/mangashowme/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: ManaMoa' pkgNameSuffix = 'ko.mangashowme' extClass = '.ManaMoa' - extVersionCode = 14 + extVersionCode = 15 libVersion = '1.2' } diff --git a/src/ko/mangashowme/src/eu/kanade/tachiyomi/extension/ko/mangashowme/MangaShowMe.kt b/src/ko/mangashowme/src/eu/kanade/tachiyomi/extension/ko/mangashowme/MangaShowMe.kt index 9f01a9e7a..afd13b929 100644 --- a/src/ko/mangashowme/src/eu/kanade/tachiyomi/extension/ko/mangashowme/MangaShowMe.kt +++ b/src/ko/mangashowme/src/eu/kanade/tachiyomi/extension/ko/mangashowme/MangaShowMe.kt @@ -267,6 +267,30 @@ class ManaMoa : ConfigurableSource, ParsedHttpSource() { Injekt.get().getSharedPreferences("source_$id", 0x0000) } + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { + val baseUrlPref = androidx.preference.EditTextPreference(screen.context).apply { + key = BASE_URL_PREF_TITLE + title = BASE_URL_PREF_TITLE + summary = BASE_URL_PREF_SUMMARY + this.setDefaultValue(defaultBaseUrl) + dialogTitle = BASE_URL_PREF_TITLE + dialogMessage = "Default: $defaultBaseUrl" + + setOnPreferenceChangeListener { _, newValue -> + try { + val res = preferences.edit().putString(BASE_URL_PREF, newValue as String).commit() + Toast.makeText(screen.context, RESTART_TACHIYOMI, Toast.LENGTH_LONG).show() + res + } catch (e: Exception) { + e.printStackTrace() + false + } + } + } + + screen.addPreference(baseUrlPref) + } + override fun setupPreferenceScreen(screen: PreferenceScreen) { val baseUrlPref = EditTextPreference(screen.context).apply { key = BASE_URL_PREF_TITLE diff --git a/src/ko/newtoki/build.gradle b/src/ko/newtoki/build.gradle index 922e08282..21340400f 100644 --- a/src/ko/newtoki/build.gradle +++ b/src/ko/newtoki/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: NewToki' pkgNameSuffix = 'ko.newtoki' extClass = '.NewTokiFactory' - extVersionCode = 10 + extVersionCode = 11 libVersion = '1.2' } diff --git a/src/ko/newtoki/src/eu/kanade/tachiyomi/extension/ko/newtoki/NewToki.kt b/src/ko/newtoki/src/eu/kanade/tachiyomi/extension/ko/newtoki/NewToki.kt index 475334c9b..802c4da0f 100644 --- a/src/ko/newtoki/src/eu/kanade/tachiyomi/extension/ko/newtoki/NewToki.kt +++ b/src/ko/newtoki/src/eu/kanade/tachiyomi/extension/ko/newtoki/NewToki.kt @@ -198,6 +198,30 @@ open class NewToki(override val name: String, private val defaultBaseUrl: String Injekt.get().getSharedPreferences("source_$id", 0x0000) } + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { + val baseUrlPref = androidx.preference.EditTextPreference(screen.context).apply { + key = BASE_URL_PREF_TITLE + title = BASE_URL_PREF_TITLE + summary = BASE_URL_PREF_SUMMARY + this.setDefaultValue(defaultBaseUrl) + dialogTitle = BASE_URL_PREF_TITLE + dialogMessage = "Default: $defaultBaseUrl" + + setOnPreferenceChangeListener { _, newValue -> + try { + val res = preferences.edit().putString(BASE_URL_PREF, newValue as String).commit() + Toast.makeText(screen.context, RESTART_TACHIYOMI, Toast.LENGTH_LONG).show() + res + } catch (e: Exception) { + e.printStackTrace() + false + } + } + } + + screen.addPreference(baseUrlPref) + } + override fun setupPreferenceScreen(screen: PreferenceScreen) { val baseUrlPref = EditTextPreference(screen.context).apply { key = BASE_URL_PREF_TITLE @@ -230,4 +254,4 @@ open class NewToki(override val name: String, private val defaultBaseUrl: String private const val BASE_URL_PREF_SUMMARY = "For temporary uses. Update extension will erase this setting." private const val RESTART_TACHIYOMI = "Restart Tachiyomi to apply new setting." } -} \ No newline at end of file +} diff --git a/src/ru/libmanga/build.gradle b/src/ru/libmanga/build.gradle index 5513e01ea..aacbcfe05 100644 --- a/src/ru/libmanga/build.gradle +++ b/src/ru/libmanga/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: MangaLib' pkgNameSuffix = 'ru.libmanga' extClass = '.LibManga' - extVersionCode = 8 + extVersionCode = 9 libVersion = '1.2' } diff --git a/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt b/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt index 46e50f3aa..52627846d 100644 --- a/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt +++ b/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt @@ -47,6 +47,29 @@ class LibManga : ConfigurableSource, HttpSource() { private val jsonParser = JsonParser() + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { + val serverPref = androidx.preference.ListPreference(screen.context).apply { + key = SERVER_PREF + title = SERVER_PREF_Title + entries = arrayOf("Основной", "Второй") + entryValues = arrayOf("main", "alt") + summary = "%s" + + setOnPreferenceChangeListener { _, newValue -> + imageServerUrl = when(newValue){ + "main" -> "https://img2.mangalib.me" + else -> "https://img3.mangalib.me" + } + true + } + } + + if(!preferences.contains(SERVER_PREF)) + preferences.edit().putString(SERVER_PREF, "main").apply() + + screen.addPreference(serverPref) + } + override fun setupPreferenceScreen(screen: PreferenceScreen) { val serverPref = ListPreference(screen.context).apply { key = SERVER_PREF diff --git a/src/ru/mangaonlinebiz/build.gradle b/src/ru/mangaonlinebiz/build.gradle index dac3ad675..c45e60f60 100644 --- a/src/ru/mangaonlinebiz/build.gradle +++ b/src/ru/mangaonlinebiz/build.gradle @@ -10,7 +10,6 @@ ext { } dependencies { - compileOnly project(':preference-stub') compileOnly 'com.google.code.gson:gson:2.8.5' compileOnly 'com.github.salomonbrys.kotson:kotson:2.5.0' compileOnly 'com.github.inorichi.injekt:injekt-core:65b0440'