diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 05ff76ad..ae9f380e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -17,26 +17,6 @@
android:name="ua.acclorite.book_story.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"
tools:node="remove" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Unit)? = null,
error: () -> Unit
) {
+ val intent = if (createChooser) Intent.createChooser(this, "") else this
if (openInNewWindow) {
- this.flags = Intent.FLAG_ACTIVITY_NEW_TASK
+ intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
}
try {
- activity.baseContext.startActivity(this)
+ activity.baseContext.startActivity(intent)
} catch (e: Exception) {
error()
return
diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/ReaderScreen.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/ReaderScreen.kt
index 2dbff153..951a0c19 100644
--- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/ReaderScreen.kt
+++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/ReaderScreen.kt
@@ -277,7 +277,8 @@ private fun ReaderScreen(
onTranslateRequested = { textToTranslate ->
onEvent(
ReaderEvent.OnOpenTranslator(
- textToTranslate,
+ textToTranslate = textToTranslate,
+ translateWholeParagraph = false,
context,
noAppsFound = {
Toast.makeText(
diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/ReaderTextParagraph.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/ReaderTextParagraph.kt
index a12be257..d05fb875 100644
--- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/ReaderTextParagraph.kt
+++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/ReaderTextParagraph.kt
@@ -85,6 +85,7 @@ fun LazyItemScope.ReaderTextParagraph(
onEvent(
ReaderEvent.OnOpenTranslator(
textToTranslate = line,
+ translateWholeParagraph = true,
context = context as ComponentActivity,
noAppsFound = {
Toast.makeText(
diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderEvent.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderEvent.kt
index 9134a288..1fc25861 100644
--- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderEvent.kt
+++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderEvent.kt
@@ -46,6 +46,7 @@ sealed class ReaderEvent {
data class OnOpenTranslator(
val textToTranslate: String,
+ val translateWholeParagraph: Boolean,
val context: ComponentActivity,
val noAppsFound: () -> Unit
) : ReaderEvent()
diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderViewModel.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderViewModel.kt
index 2ab068c5..98dccf54 100644
--- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderViewModel.kt
+++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderViewModel.kt
@@ -2,6 +2,7 @@ package ua.acclorite.book_story.presentation.screens.reader.data
import android.app.SearchManager
import android.content.Intent
+import android.net.Uri
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.compose.runtime.snapshotFlow
@@ -337,7 +338,10 @@ class ReaderViewModel @Inject constructor(
)
var translatorFailure = false
- translatorIntent.launchActivity(event.context) {
+ translatorIntent.launchActivity(
+ event.context,
+ createChooser = !event.translateWholeParagraph
+ ) {
translatorFailure = true
}
if (!translatorFailure) {
@@ -358,20 +362,34 @@ class ReaderViewModel @Inject constructor(
is ReaderEvent.OnOpenDictionary -> {
launch {
+ val dictionaryIntent = Intent()
val browserIntent = Intent()
- browserIntent.action = Intent.ACTION_WEB_SEARCH
- browserIntent.putExtra(
- SearchManager.QUERY,
- "dictionary" +
- ": ${event.textToDefine.trim()}"
+ dictionaryIntent.type = "text/plain"
+ dictionaryIntent.action = Intent.ACTION_PROCESS_TEXT
+ dictionaryIntent.putExtra(
+ Intent.EXTRA_PROCESS_TEXT,
+ event.textToDefine.trim()
)
+ dictionaryIntent.putExtra(Intent.EXTRA_PROCESS_TEXT_READONLY, true)
- var failure = false
- browserIntent.launchActivity(event.context) {
- failure = true
+ browserIntent.action = Intent.ACTION_VIEW
+ val text = event.textToDefine.trim().replace(" ", "+")
+ browserIntent.data = Uri.parse("https://www.onelook.com/?w=$text")
+
+ var dictionaryFailure = false
+ dictionaryIntent.launchActivity(event.context, createChooser = true) {
+ dictionaryFailure = true
}
- if (!failure) {
+ if (!dictionaryFailure) {
+ return@launch
+ }
+
+ var browserFailure = false
+ browserIntent.launchActivity(event.context) {
+ browserFailure = true
+ }
+ if (!browserFailure) {
return@launch
}