diff --git a/mobile/src/main/AndroidManifest.xml b/mobile/src/main/AndroidManifest.xml index 7cf540b..b3abf57 100644 --- a/mobile/src/main/AndroidManifest.xml +++ b/mobile/src/main/AndroidManifest.xml @@ -13,12 +13,15 @@ android:theme="@style/Base.Theme.OmniCards"> diff --git a/mobile/src/main/java/ru/omni_devel/cards/AddCardActivity.kt b/mobile/src/main/java/ru/omni_devel/cards/AddCardActivity.kt index 59a3639..e92f23f 100644 --- a/mobile/src/main/java/ru/omni_devel/cards/AddCardActivity.kt +++ b/mobile/src/main/java/ru/omni_devel/cards/AddCardActivity.kt @@ -10,10 +10,25 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.google.zxing.BarcodeFormat +import com.journeyapps.barcodescanner.ScanContract +import com.journeyapps.barcodescanner.ScanOptions class AddCardActivity : AppCompatActivity() { private lateinit var db: DbHelper + private val barcodeLauncher = registerForActivityResult(ScanContract()) { result -> + if (result.contents != null) { + val codeTypes = BarcodeFormat.entries.map { it.name } + val codeTypeIndex = codeTypes.indexOf(result.formatName) + + if (codeTypeIndex >= 0) { + findViewById(R.id.cardCodeTypeSelector).setSelection(codeTypeIndex) + } + + findViewById(R.id.cardValueInput).setText(result.contents) + } + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -28,6 +43,7 @@ class AddCardActivity : AppCompatActivity() { val cardNameInput: EditText = findViewById(R.id.cardNameInput) val cardValueInput: EditText = findViewById(R.id.cardValueInput) + val scanCodeButton: Button = findViewById(R.id.scanCodeButton) val cardCodeTypeSelector: Spinner = findViewById(R.id.cardCodeTypeSelector) val saveCardButton: Button = findViewById(R.id.saveCardButton) @@ -36,6 +52,14 @@ class AddCardActivity : AppCompatActivity() { adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) cardCodeTypeSelector.adapter = adapter + scanCodeButton.setOnClickListener { + val options = ScanOptions() + options.setPrompt("Scan code") + options.setBeepEnabled(false) + options.setOrientationLocked(false) + barcodeLauncher.launch(options) + } + saveCardButton.setOnClickListener { val cardName = cardNameInput.text.toString() val cardValue = cardValueInput.text.toString() diff --git a/mobile/src/main/res/layout/activity_add_card.xml b/mobile/src/main/res/layout/activity_add_card.xml index 01b9f53..32ae92c 100644 --- a/mobile/src/main/res/layout/activity_add_card.xml +++ b/mobile/src/main/res/layout/activity_add_card.xml @@ -50,13 +50,26 @@ android:hint="Card name" android:inputType="text" /> - + android:layout_height="wrap_content" + android:orientation="horizontal"> + + + +