Merge pull request #367 from 1552980358/master

Modify several content
pull/368/head
kunfei 4 years ago committed by GitHub
commit 6f829893d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 183
      app/src/main/java/io/legado/app/api/ReaderProvider.kt
  2. 2
      gradle/wrapper/gradle-wrapper.properties

@ -24,28 +24,27 @@ import java.util.*
*/
class ReaderProvider : ContentProvider() {
private enum class RequestCode {
saveSource, saveSources, saveBook, deleteSources, getSource, getSources, getBookshelf, getChapterList, getBookContent
SaveSource, SaveSources, SaveBook, DeleteSources, GetSource, GetSources, GetBookshelf, GetChapterList, GetBookContent
}
private val postBodyKey = "json"
private val sMatcher by lazy {
val uriMatcher = UriMatcher(UriMatcher.NO_MATCH)
val authority = "${context?.applicationInfo?.packageName}.readerProvider"
uriMatcher.addURI(authority, "source/insert", RequestCode.saveSource.ordinal)
uriMatcher.addURI(authority, "sources/insert", RequestCode.saveSources.ordinal)
uriMatcher.addURI(authority, "book/insert", RequestCode.saveBook.ordinal)
uriMatcher.addURI(authority, "sources/delete", RequestCode.deleteSources.ordinal)
uriMatcher.addURI(authority, "source/query", RequestCode.getSource.ordinal)
uriMatcher.addURI(authority, "sources/query", RequestCode.getSources.ordinal)
uriMatcher.addURI(authority, "books/query", RequestCode.getBookshelf.ordinal)
uriMatcher.addURI(authority, "book/chapter/query", RequestCode.getChapterList.ordinal)
uriMatcher.addURI(authority, "book/content/query", RequestCode.getBookContent.ordinal)
return@lazy uriMatcher
UriMatcher(UriMatcher.NO_MATCH).apply {
"${context?.applicationInfo?.packageName}.readerProvider".also { authority ->
addURI(authority, "source/insert", RequestCode.SaveSource.ordinal)
addURI(authority, "sources/insert", RequestCode.SaveSources.ordinal)
addURI(authority, "book/insert", RequestCode.SaveBook.ordinal)
addURI(authority, "sources/delete", RequestCode.DeleteSources.ordinal)
addURI(authority, "source/query", RequestCode.GetSource.ordinal)
addURI(authority, "sources/query", RequestCode.GetSources.ordinal)
addURI(authority, "books/query", RequestCode.GetBookshelf.ordinal)
addURI(authority, "book/chapter/query", RequestCode.GetChapterList.ordinal)
addURI(authority, "book/content/query", RequestCode.GetBookContent.ordinal)
}
}
}
override fun onCreate(): Boolean {
return false
}
override fun onCreate() = false
override fun delete(
uri: Uri,
@ -54,7 +53,7 @@ class ReaderProvider : ContentProvider() {
): Int {
if (sMatcher.match(uri) < 0) return -1
when (RequestCode.values()[sMatcher.match(uri)]) {
RequestCode.deleteSources -> SourceController.deleteSources(selection)
RequestCode.DeleteSources -> SourceController.deleteSources(selection)
else -> throw IllegalStateException(
"Unexpected value: " + RequestCode.values()[sMatcher.match(uri)].name
)
@ -62,20 +61,18 @@ class ReaderProvider : ContentProvider() {
return 0
}
override fun getType(uri: Uri): String? {
throw UnsupportedOperationException("Not yet implemented")
}
override fun getType(uri: Uri) = throw UnsupportedOperationException("Not yet implemented")
override fun insert(uri: Uri, values: ContentValues?): Uri? {
if (sMatcher.match(uri) < 0) return null
when (RequestCode.values()[sMatcher.match(uri)]) {
RequestCode.saveSource -> values?.let {
RequestCode.SaveSource -> values?.let {
SourceController.saveSource(values.getAsString(postBodyKey))
}
RequestCode.saveBook -> values?.let {
RequestCode.SaveBook -> values?.let {
BookshelfController.saveBook(values.getAsString(postBodyKey))
}
RequestCode.saveSources -> values?.let {
RequestCode.SaveSources -> values?.let {
SourceController.saveSources(values.getAsString(postBodyKey))
}
else -> throw IllegalStateException(
@ -97,11 +94,11 @@ class ReaderProvider : ContentProvider() {
map["index"] = arrayListOf(it)
}
return if (sMatcher.match(uri) < 0) null else when (RequestCode.values()[sMatcher.match(uri)]) {
RequestCode.getSource -> SimpleCursor(SourceController.getSource(map))
RequestCode.getSources -> SimpleCursor(SourceController.sources)
RequestCode.getBookshelf -> SimpleCursor(BookshelfController.bookshelf)
RequestCode.getBookContent -> SimpleCursor(BookshelfController.getBookContent(map))
RequestCode.getChapterList -> SimpleCursor(BookshelfController.getChapterList(map))
RequestCode.GetSource -> SimpleCursor(SourceController.getSource(map))
RequestCode.GetSources -> SimpleCursor(SourceController.sources)
RequestCode.GetBookshelf -> SimpleCursor(BookshelfController.bookshelf)
RequestCode.GetBookContent -> SimpleCursor(BookshelfController.getBookContent(map))
RequestCode.GetChapterList -> SimpleCursor(BookshelfController.getChapterList(map))
else -> throw IllegalStateException(
"Unexpected value: " + RequestCode.values()[sMatcher.match(uri)].name
)
@ -111,9 +108,8 @@ class ReaderProvider : ContentProvider() {
override fun update(
uri: Uri, values: ContentValues?, selection: String?,
selectionArgs: Array<String>?
): Int {
throw UnsupportedOperationException("Not yet implemented")
}
) = throw UnsupportedOperationException("Not yet implemented")
/**
* Simple inner class to deliver json callback data.
@ -124,82 +120,46 @@ class ReaderProvider : ContentProvider() {
private val mData: String = Gson().toJson(data)
override fun getCount(): Int {
return 1
}
override fun getCount() = 1
override fun getPosition(): Int {
return 0
}
override fun getPosition() = 0
override fun move(i: Int): Boolean {
return true
}
override fun move(i: Int) = true
override fun moveToPosition(i: Int): Boolean {
return true
}
override fun moveToPosition(i: Int) = true
override fun moveToFirst(): Boolean {
return true
}
override fun moveToFirst() = true
override fun moveToLast(): Boolean {
return true
}
override fun moveToLast() = true
override fun moveToNext(): Boolean {
return true
}
override fun moveToNext() = true
override fun moveToPrevious(): Boolean {
return true
}
override fun moveToPrevious() = true
override fun isFirst(): Boolean {
return true
}
override fun isFirst() = true
override fun isLast(): Boolean {
return true
}
override fun isLast() = true
override fun isBeforeFirst(): Boolean {
return false
}
override fun isBeforeFirst() = true
override fun isAfterLast(): Boolean {
return false
}
override fun isAfterLast() = true
override fun getColumnIndex(s: String): Int {
return 0
}
override fun getColumnIndex(s: String) = 0
@Throws(IllegalArgumentException::class)
override fun getColumnIndexOrThrow(s: String): Int {
throw UnsupportedOperationException("Not yet implemented")
}
override fun getColumnName(i: Int): String? {
return null
}
override fun getColumnName(i: Int) = null as String?
override fun getColumnNames(): Array<String> {
return arrayOf()
}
override fun getColumnNames() = arrayOf<String>()
override fun getColumnCount(): Int {
return 0
}
override fun getColumnCount() = 0
override fun getBlob(i: Int): ByteArray {
return ByteArray(0)
}
override fun getBlob(i: Int) = ByteArray(0)
override fun getString(i: Int): String {
return mData
}
override fun getString(i: Int) = mData
override fun copyStringToBuffer(
i: Int,
@ -207,43 +167,26 @@ class ReaderProvider : ContentProvider() {
) {
}
override fun getShort(i: Int): Short {
return 0
}
override fun getShort(i: Int) = 0.toShort()
override fun getInt(i: Int): Int {
return 0
}
override fun getLong(i: Int): Long {
return 0
}
override fun getInt(i: Int) = 0
override fun getFloat(i: Int): Float {
return 0f
}
override fun getLong(i: Int) = 0L
override fun getDouble(i: Int): Double {
return 0.0
}
override fun getFloat(i: Int) = 0F
override fun getType(i: Int): Int {
return 0
}
override fun getDouble(i: Int) = 0.toDouble()
override fun isNull(i: Int): Boolean {
return false
}
override fun getType(i: Int) = 0
override fun isNull(i: Int) = false
override fun deactivate() {}
override fun requery(): Boolean {
return false
}
override fun requery() = false
override fun close() {}
override fun isClosed(): Boolean {
return false
}
override fun isClosed() = false
override fun registerContentObserver(contentObserver: ContentObserver) {}
override fun unregisterContentObserver(contentObserver: ContentObserver) {}
@ -251,22 +194,14 @@ class ReaderProvider : ContentProvider() {
override fun unregisterDataSetObserver(dataSetObserver: DataSetObserver) {}
override fun setNotificationUri(contentResolver: ContentResolver, uri: Uri) {}
override fun getNotificationUri(): Uri? {
return null
}
override fun getNotificationUri() = null as Uri?
override fun getWantsAllOnMoveCalls(): Boolean {
return false
}
override fun getWantsAllOnMoveCalls() = false
override fun setExtras(bundle: Bundle) {}
override fun getExtras(): Bundle? {
return null
}
override fun getExtras() = null as Bundle?
override fun respond(bundle: Bundle): Bundle? {
return null
}
override fun respond(bundle: Bundle) = null as Bundle?
}
}

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip

Loading…
Cancel
Save