diff --git a/.gitignore b/.gitignore
index af291a5..9e1560f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,6 @@
.gradle
-/local.properties
-/.idea/workspace.xml
+local.properties
.DS_Store
-/build
+build/
.idea/
-*iml
-*.iml
-*/build
\ No newline at end of file
+*.iml
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 3531e8d..47ddac9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,15 +1,17 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.kotlin_version = '1.1.4'
+ ext.kotlin_version = '1.3.72'
repositories {
+ google()
jcenter()
+ mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.2.3'
+ classpath 'com.android.tools.build:gradle:3.6.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.1'
- classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
+ classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5'
+ classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@@ -18,7 +20,9 @@ buildscript {
allprojects {
repositories {
+ google()
jcenter()
+ mavenCentral()
}
}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 13372ae..490fda8 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 04e285f..6623300 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Mon Dec 28 10:00:20 PST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
diff --git a/gradlew b/gradlew
index 9d82f78..2fe81a7 100755
--- a/gradlew
+++ b/gradlew
@@ -1,4 +1,20 @@
-#!/usr/bin/env bash
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
##############################################################################
##
@@ -6,42 +22,6 @@
##
##############################################################################
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
- echo "$*"
-}
-
-die ( ) {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
-esac
-
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
@@ -60,6 +40,46 @@ cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
@@ -85,7 +105,7 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
@@ -105,8 +125,8 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
@@ -134,27 +154,30 @@ if $cygwin ; then
else
eval `echo args$i`="\"$arg\""
fi
- i=$((i+1))
+ i=`expr $i + 1`
done
case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+APP_ARGS=`save "$@"`
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
index 8a0b282..62bd9b9 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,3 +1,19 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@@ -8,14 +24,17 @@
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
@@ -46,10 +65,9 @@ echo location of your Java installation.
goto fail
:init
-@rem Get command-line arguments, handling Windowz variants
+@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
@@ -60,11 +78,6 @@ set _SKIP=2
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
diff --git a/library/.gitignore b/library/.gitignore
deleted file mode 100644
index 796b96d..0000000
--- a/library/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
diff --git a/library/build.gradle b/library/build.gradle
index 068a2a8..2eb1b1c 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -6,12 +6,12 @@ apply plugin: 'com.jfrog.bintray'
version = '1.2'
android {
- compileSdkVersion 25
- buildToolsVersion "25.0.2"
+ compileSdkVersion 27
+ buildToolsVersion "29.0.3"
defaultConfig {
minSdkVersion 16
- targetSdkVersion 25
+ targetSdkVersion 27
versionCode 1
versionName version
}
@@ -22,17 +22,21 @@ android {
}
}
+ compileOptions {
+ sourceCompatibility = 1.8
+ targetCompatibility = 1.8
+ }
+
+ kotlinOptions {
+ jvmTarget = "1.8"
+ }
}
dependencies {
- provided "com.squareup.okhttp3:okhttp:3.8.1"
- provided "io.reactivex:rxjava:1.3.0"
- provided "org.jsoup:jsoup:1.10.2"
- provided "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
-}
-
-repositories {
- mavenCentral()
+ compileOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
+ compileOnly 'com.squareup.okhttp3:okhttp:3.10.0'
+ compileOnly 'io.reactivex:rxjava:1.3.6'
+ compileOnly 'org.jsoup:jsoup:1.10.2'
}
ext {
@@ -47,7 +51,7 @@ ext {
siteUrl = 'https://github.com/inorichi/tachiyomi-extensions-lib'
gitUrl = 'https://github.com/inorichi/tachiyomi-extensions-lib.git'
- githubRepository= 'inorichi/tachiyomi-extensions-lib'
+ githubRepository = 'inorichi/tachiyomi-extensions-lib'
licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
@@ -91,7 +95,7 @@ install {
}
task sourcesJar(type: Jar) {
- classifier = 'sources'
+ archiveClassifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
@@ -118,7 +122,7 @@ bintray {
name = bintrayName
desc = libraryDescription
websiteUrl = siteUrl
- issueTrackerUrl = siteUrl+'/issues'
+ issueTrackerUrl = siteUrl + '/issues'
vcsUrl = gitUrl
licenses = allLicenses
githubRepo = githubRepository
diff --git a/library/proguard-rules.pro b/library/proguard-rules.pro
deleted file mode 100644
index ad11ab2..0000000
--- a/library/proguard-rules.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-# Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in C:\Users\len\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the proguardFiles
-# directive in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# Add any project specific keep options here:
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
diff --git a/library/src/main/AndroidManifest.xml b/library/src/main/AndroidManifest.xml
index f07f3a0..c79637f 100644
--- a/library/src/main/AndroidManifest.xml
+++ b/library/src/main/AndroidManifest.xml
@@ -1,3 +1 @@
-
-
+
diff --git a/library/src/main/java/eu/kanade/tachiyomi/source/online/HttpSource.kt b/library/src/main/java/eu/kanade/tachiyomi/source/online/HttpSource.kt
index 8002e83..0132254 100644
--- a/library/src/main/java/eu/kanade/tachiyomi/source/online/HttpSource.kt
+++ b/library/src/main/java/eu/kanade/tachiyomi/source/online/HttpSource.kt
@@ -51,7 +51,7 @@ abstract class HttpSource : CatalogueSource {
/**
* Headers builder for requests. Implementations can override this method for custom headers.
*/
- open protected fun headersBuilder(): Headers.Builder {
+ protected open fun headersBuilder(): Headers.Builder {
throw Exception("Stub!")
}
@@ -77,14 +77,14 @@ abstract class HttpSource : CatalogueSource {
*
* @param page the page number to retrieve.
*/
- abstract protected fun popularMangaRequest(page: Int): Request
+ protected abstract fun popularMangaRequest(page: Int): Request
/**
* Parses the response from the site and returns a [MangasPage] object.
*
* @param response the response from the site.
*/
- abstract protected fun popularMangaParse(response: Response): MangasPage
+ protected abstract fun popularMangaParse(response: Response): MangasPage
/**
* Returns an observable containing a page with a list of manga. Normally it's not needed to
@@ -105,14 +105,14 @@ abstract class HttpSource : CatalogueSource {
* @param query the search query.
* @param filters the list of filters to apply.
*/
- abstract protected fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request
+ protected abstract fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request
/**
* Parses the response from the site and returns a [MangasPage] object.
*
* @param response the response from the site.
*/
- abstract protected fun searchMangaParse(response: Response): MangasPage
+ protected abstract fun searchMangaParse(response: Response): MangasPage
/**
* Returns an observable containing a page with a list of latest manga updates.
@@ -128,14 +128,14 @@ abstract class HttpSource : CatalogueSource {
*
* @param page the page number to retrieve.
*/
- abstract protected fun latestUpdatesRequest(page: Int): Request
+ protected abstract fun latestUpdatesRequest(page: Int): Request
/**
* Parses the response from the site and returns a [MangasPage] object.
*
* @param response the response from the site.
*/
- abstract protected fun latestUpdatesParse(response: Response): MangasPage
+ protected abstract fun latestUpdatesParse(response: Response): MangasPage
/**
* Returns an observable with the updated details for a manga. Normally it's not needed to
@@ -162,7 +162,7 @@ abstract class HttpSource : CatalogueSource {
*
* @param response the response from the site.
*/
- abstract protected fun mangaDetailsParse(response: Response): SManga
+ protected abstract fun mangaDetailsParse(response: Response): SManga
/**
* Returns an observable with the updated chapter list for a manga. Normally it's not needed to
@@ -180,7 +180,7 @@ abstract class HttpSource : CatalogueSource {
*
* @param manga the manga to look for chapters.
*/
- open protected fun chapterListRequest(manga: SManga): Request {
+ protected open fun chapterListRequest(manga: SManga): Request {
throw Exception("Stub!")
}
@@ -189,7 +189,7 @@ abstract class HttpSource : CatalogueSource {
*
* @param response the response from the site.
*/
- abstract protected fun chapterListParse(response: Response): List
+ protected abstract fun chapterListParse(response: Response): List
/**
* Returns an observable with the page list for a chapter.
@@ -206,7 +206,7 @@ abstract class HttpSource : CatalogueSource {
*
* @param chapter the chapter whose page list has to be fetched.
*/
- open protected fun pageListRequest(chapter: SChapter): Request {
+ protected open fun pageListRequest(chapter: SChapter): Request {
throw Exception("Stub!")
}
@@ -215,7 +215,7 @@ abstract class HttpSource : CatalogueSource {
*
* @param response the response from the site.
*/
- abstract protected fun pageListParse(response: Response): List
+ protected abstract fun pageListParse(response: Response): List
/**
* Returns an observable with the page containing the source url of the image. If there's any
@@ -233,7 +233,7 @@ abstract class HttpSource : CatalogueSource {
*
* @param page the chapter whose page list has to be fetched
*/
- open protected fun imageUrlRequest(page: Page): Request {
+ protected open fun imageUrlRequest(page: Page): Request {
throw Exception("Stub!")
}
@@ -242,7 +242,7 @@ abstract class HttpSource : CatalogueSource {
*
* @param response the response from the site.
*/
- abstract protected fun imageUrlParse(response: Response): String
+ protected abstract fun imageUrlParse(response: Response): String
/**
* Returns an observable with the response of the source image.
@@ -259,7 +259,7 @@ abstract class HttpSource : CatalogueSource {
*
* @param page the chapter whose page list has to be fetched
*/
- open protected fun imageRequest(page: Page): Request {
+ protected open fun imageRequest(page: Page): Request {
throw Exception("Stub!")
}
diff --git a/library/src/main/java/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt b/library/src/main/java/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt
index 2707fcc..a1d7e80 100644
--- a/library/src/main/java/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt
+++ b/library/src/main/java/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt
@@ -26,7 +26,7 @@ abstract class ParsedHttpSource : HttpSource() {
/**
* Returns the Jsoup selector that returns a list of [Element] corresponding to each manga.
*/
- abstract protected fun popularMangaSelector(): String
+ protected abstract fun popularMangaSelector(): String
/**
* Returns a manga from the given [element]. Most sites only show the title and the url, it's
@@ -34,13 +34,13 @@ abstract class ParsedHttpSource : HttpSource() {
*
* @param element an element obtained from [popularMangaSelector].
*/
- abstract protected fun popularMangaFromElement(element: Element): SManga
+ protected abstract fun popularMangaFromElement(element: Element): SManga
/**
* Returns the Jsoup selector that returns the tag linking to the next page, or null if
* there's no next page.
*/
- abstract protected fun popularMangaNextPageSelector(): String?
+ protected abstract fun popularMangaNextPageSelector(): String?
/**
* Parses the response from the site and returns a [MangasPage] object.
@@ -54,7 +54,7 @@ abstract class ParsedHttpSource : HttpSource() {
/**
* Returns the Jsoup selector that returns a list of [Element] corresponding to each manga.
*/
- abstract protected fun searchMangaSelector(): String
+ protected abstract fun searchMangaSelector(): String
/**
* Returns a manga from the given [element]. Most sites only show the title and the url, it's
@@ -62,13 +62,13 @@ abstract class ParsedHttpSource : HttpSource() {
*
* @param element an element obtained from [searchMangaSelector].
*/
- abstract protected fun searchMangaFromElement(element: Element): SManga
+ protected abstract fun searchMangaFromElement(element: Element): SManga
/**
* Returns the Jsoup selector that returns the tag linking to the next page, or null if
* there's no next page.
*/
- abstract protected fun searchMangaNextPageSelector(): String?
+ protected abstract fun searchMangaNextPageSelector(): String?
/**
* Parses the response from the site and returns a [MangasPage] object.
@@ -82,7 +82,7 @@ abstract class ParsedHttpSource : HttpSource() {
/**
* Returns the Jsoup selector that returns a list of [Element] corresponding to each manga.
*/
- abstract protected fun latestUpdatesSelector(): String
+ protected abstract fun latestUpdatesSelector(): String
/**
* Returns a manga from the given [element]. Most sites only show the title and the url, it's
@@ -90,13 +90,13 @@ abstract class ParsedHttpSource : HttpSource() {
*
* @param element an element obtained from [latestUpdatesSelector].
*/
- abstract protected fun latestUpdatesFromElement(element: Element): SManga
+ protected abstract fun latestUpdatesFromElement(element: Element): SManga
/**
* Returns the Jsoup selector that returns the tag linking to the next page, or null if
* there's no next page.
*/
- abstract protected fun latestUpdatesNextPageSelector(): String?
+ protected abstract fun latestUpdatesNextPageSelector(): String?
/**
* Parses the response from the site and returns the details of a manga.
@@ -112,7 +112,7 @@ abstract class ParsedHttpSource : HttpSource() {
*
* @param document the parsed document.
*/
- abstract protected fun mangaDetailsParse(document: Document): SManga
+ protected abstract fun mangaDetailsParse(document: Document): SManga
/**
* Parses the response from the site and returns a list of chapters.
@@ -126,14 +126,14 @@ abstract class ParsedHttpSource : HttpSource() {
/**
* Returns the Jsoup selector that returns a list of [Element] corresponding to each chapter.
*/
- abstract protected fun chapterListSelector(): String
+ protected abstract fun chapterListSelector(): String
/**
* Returns a chapter from the given element.
*
* @param element an element obtained from [chapterListSelector].
*/
- abstract protected fun chapterFromElement(element: Element): SChapter
+ protected abstract fun chapterFromElement(element: Element): SChapter
/**
* Parses the response from the site and returns the page list.
@@ -149,7 +149,7 @@ abstract class ParsedHttpSource : HttpSource() {
*
* @param document the parsed document.
*/
- abstract protected fun pageListParse(document: Document): List
+ protected abstract fun pageListParse(document: Document): List
/**
* Parse the response from the site and returns the absolute url to the source image.
@@ -165,5 +165,5 @@ abstract class ParsedHttpSource : HttpSource() {
*
* @param document the parsed document.
*/
- abstract protected fun imageUrlParse(document: Document): String
+ protected abstract fun imageUrlParse(document: Document): String
}