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