diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a0e80fd..9ecc666 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -23,6 +23,14 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/java/org/fnives/android/qrcodetransfer/MainActivity.kt b/app/src/main/java/org/fnives/android/qrcodetransfer/MainActivity.kt
index 4f33ea8..1b66299 100644
--- a/app/src/main/java/org/fnives/android/qrcodetransfer/MainActivity.kt
+++ b/app/src/main/java/org/fnives/android/qrcodetransfer/MainActivity.kt
@@ -1,6 +1,8 @@
package org.fnives.android.qrcodetransfer
+import android.content.Intent
import android.os.Bundle
+import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.animation.AnimatedContent
@@ -24,8 +26,10 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import org.fnives.android.qrcodetransfer.create.CreateQRCode
+import org.fnives.android.qrcodetransfer.intent.LocalIntentTextProvider
import org.fnives.android.qrcodetransfer.read.ReadQRCode
import org.fnives.android.qrcodetransfer.ui.theme.QRCodeTransferTheme
@@ -34,27 +38,27 @@ class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
-
-
setContent {
- QRCodeTransferTheme {
- var writerSelected by rememberSaveable { mutableStateOf(true) }
- // A surface container using the 'background' color from the theme
- Surface(
- modifier = Modifier.fillMaxSize(),
- color = MaterialTheme.colors.background,
- ) {
- Scaffold(bottomBar = {
- NavBar(
- writerSelected = writerSelected,
- setWriterSelected = { writerSelected = it })
- }) {
- Box(Modifier.padding(it)) {
- AnimatedContent(targetState = writerSelected) { showWriter ->
- if (showWriter) {
- CreateQRCode()
- } else {
- ReadQRCode()
+ LocalIntentTextProvider(intent) {
+ QRCodeTransferTheme {
+ var writerSelected by rememberSaveable { mutableStateOf(true) }
+ // A surface container using the 'background' color from the theme
+ Surface(
+ modifier = Modifier.fillMaxSize(),
+ color = MaterialTheme.colors.background,
+ ) {
+ Scaffold(bottomBar = {
+ NavBar(
+ writerSelected = writerSelected,
+ setWriterSelected = { writerSelected = it })
+ }) {
+ Box(Modifier.padding(it)) {
+ AnimatedContent(targetState = writerSelected) { showWriter ->
+ if (showWriter) {
+ CreateQRCode()
+ } else {
+ ReadQRCode()
+ }
}
}
}
@@ -63,6 +67,13 @@ class MainActivity : ComponentActivity() {
}
}
}
+
+ override fun onNewIntent(intent: Intent?) {
+ super.onNewIntent(intent)
+ intent?.getStringExtra(Intent.EXTRA_TEXT)?.let { url ->
+ Toast.makeText(this, "onNewIntent: url", Toast.LENGTH_SHORT).show()
+ }
+ }
}
@Composable
diff --git a/app/src/main/java/org/fnives/android/qrcodetransfer/SequenceProtocol.kt b/app/src/main/java/org/fnives/android/qrcodetransfer/SequenceProtocol.kt
index 3812c59..afc5978 100644
--- a/app/src/main/java/org/fnives/android/qrcodetransfer/SequenceProtocol.kt
+++ b/app/src/main/java/org/fnives/android/qrcodetransfer/SequenceProtocol.kt
@@ -49,10 +49,7 @@ object SequenceProtocol {
val formatWithLength = format.replace(formatLength, chunks.size.toChar())
val messages = chunks.mapIndexed { index, s ->
val prefix = formatWithLength.replace(formatCurrent, index.toChar())
- "${prefix}${s}".also {
- println("MYLOG${index} $it")
- println("MYLOG$it")
- }
+ "${prefix}${s}"
}
return messages.map {
encode(it)
@@ -117,7 +114,7 @@ object SequenceProtocol {
EncodeHintType.CHARACTER_SET to CharacterSetECI.ASCII,
EncodeHintType.ERROR_CORRECTION to ErrorCorrectionLevel.M,
EncodeHintType.QR_VERSION to versionCode,
- EncodeHintType.MARGIN to max(versionCode / 2, 3)
+ EncodeHintType.MARGIN to max(versionCode / 3, 3)
)
)
}
diff --git a/app/src/main/java/org/fnives/android/qrcodetransfer/create/CreateQRCode.kt b/app/src/main/java/org/fnives/android/qrcodetransfer/create/CreateQRCode.kt
index 7784ef1..32618ba 100644
--- a/app/src/main/java/org/fnives/android/qrcodetransfer/create/CreateQRCode.kt
+++ b/app/src/main/java/org/fnives/android/qrcodetransfer/create/CreateQRCode.kt
@@ -44,6 +44,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.fnives.android.qrcodetransfer.R
import org.fnives.android.qrcodetransfer.SequenceProtocol
+import org.fnives.android.qrcodetransfer.intent.LocalIntentText
import org.fnives.android.qrcodetransfer.toBitmap
@@ -148,7 +149,8 @@ fun QRCodeContentInput(
setLoading: (Boolean) -> Unit,
setBitmaps: (List) -> Unit,
) {
- var content by rememberSaveable { mutableStateOf("") }
+ val messageFromIntent = LocalIntentText.current
+ var content by rememberSaveable(messageFromIntent) { mutableStateOf(messageFromIntent.orEmpty()) }
var number by rememberSaveable { mutableStateOf(SequenceProtocol.versionCode) }
SequenceProtocol.versionCode = number
var encodeBase64 by rememberSaveable { mutableStateOf(SequenceProtocol.encodeBase64) }
diff --git a/app/src/main/java/org/fnives/android/qrcodetransfer/create/QRCodeVersionNumberDropdown.kt b/app/src/main/java/org/fnives/android/qrcodetransfer/create/QRCodeVersionNumberDropdown.kt
index 9580760..384e294 100644
--- a/app/src/main/java/org/fnives/android/qrcodetransfer/create/QRCodeVersionNumberDropdown.kt
+++ b/app/src/main/java/org/fnives/android/qrcodetransfer/create/QRCodeVersionNumberDropdown.kt
@@ -51,7 +51,7 @@ fun QRCodeVersionNumberDropdown(versionNumber: Int, setVersionNumber: (Int) -> U
}) {
val text = if (versionNumber == value) {
stringResource(id = R.string.selected_version_number, value)
- } else if (value == 14) {
+ } else if (value == 13) {
stringResource(id = R.string.recommended_max, value)
} else {
"$value"
diff --git a/app/src/main/java/org/fnives/android/qrcodetransfer/intent/LocalIntentText.kt b/app/src/main/java/org/fnives/android/qrcodetransfer/intent/LocalIntentText.kt
new file mode 100644
index 0000000..82e62c5
--- /dev/null
+++ b/app/src/main/java/org/fnives/android/qrcodetransfer/intent/LocalIntentText.kt
@@ -0,0 +1,16 @@
+package org.fnives.android.qrcodetransfer.intent
+
+import android.content.Intent
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.CompositionLocalProvider
+import androidx.compose.runtime.compositionLocalOf
+
+val LocalIntentText = compositionLocalOf {
+ error("CompositionLocal LocalIntentText not present")
+}
+
+@Composable
+fun LocalIntentTextProvider(intent: Intent?, content: @Composable () -> Unit) {
+ val message= intent?.getStringExtra(Intent.EXTRA_TEXT)
+ CompositionLocalProvider(LocalIntentText provides message, content = content)
+}
\ No newline at end of file