diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 65c6ad511..1779f9c25 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -57,7 +57,20 @@ android:windowSoftInputMode="adjustResize|stateHidden" /> - + + + + + + + + + + + + @@ -66,11 +79,14 @@ - - - + - + + + + @@ -79,7 +95,8 @@ - + + diff --git a/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt b/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt index f9124f9fb..0812b6706 100644 --- a/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt @@ -1,5 +1,7 @@ package io.legado.app.ui.book.search +import android.content.Intent +import android.os.Build import android.os.Bundle import androidx.appcompat.widget.SearchView import androidx.lifecycle.LiveData @@ -49,9 +51,8 @@ class SearchActivity : VMBaseActivity(R.layout.activity_book_se initSearchView() initOtherView() initData() - intent.getStringExtra("key")?.let { - search_view.setQuery(it, true) - } + initIntent() + upHistory() } private fun initSearchView() { @@ -125,7 +126,25 @@ class SearchActivity : VMBaseActivity(R.layout.activity_book_se ), 30 ).build() searchBookData?.observe(this, Observer { adapter.submitList(it) }) - upHistory() + } + + private fun initIntent() { + if (Intent.ACTION_SEND == intent.action && intent.type == "text/plain") { + intent.getStringExtra(Intent.EXTRA_TEXT)?.let { + search_view.setQuery(it, true) + } + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M + && Intent.ACTION_PROCESS_TEXT == intent.action + && intent.type == "text/plain" + ) { + intent.getStringExtra(Intent.EXTRA_PROCESS_TEXT)?.let { + search_view.setQuery(it, true) + } + } else { + intent.getStringExtra("key")?.let { + search_view.setQuery(it, true) + } + } } private fun upHistory(key: String? = null) {