MainActivity.kt
65 lignes · 2466 octets
package fr.ebii.card2vcf import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.ui.Modifier import fr.ebii.card2vcf.contact.ContactInsertIntent import fr.ebii.card2vcf.contact.VcfShare import fr.ebii.card2vcf.data.ContactImageStore import fr.ebii.card2vcf.data.ContactRepository import fr.ebii.card2vcf.scan.OpenCvScanEngine import fr.ebii.card2vcf.sync.SyncCredentialsStore import fr.ebii.card2vcf.ui.nav.Card2vcfNavHost import fr.ebii.card2vcf.ui.theme.Card2vcfTheme import fr.ebii.card2vcf.ui.theme.Canvas class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() OpenCvScanEngine.ensureOpenCv() val app = application as Card2vcfApp val images = ContactImageStore(this) val credentialsStore = SyncCredentialsStore(this) val repository = ContactRepository( dao = app.database.crmContactDao(), images = images, syncOpDao = app.database.syncOpDao(), isSyncEnabled = { credentialsStore.isConfigured() }, ) setContent { Card2vcfTheme { Box( Modifier .fillMaxSize() .background(Canvas) .systemBarsPadding(), ) { Card2vcfNavHost( repository = repository, database = app.database, onCreateContact = { card -> startActivity(ContactInsertIntent.build(card)) }, onExportVcf = { card -> startActivity( android.content.Intent.createChooser( VcfShare.shareIntent(this@MainActivity, card), getString(R.string.scan_exporter_vcf), ), ) }, ) } } } } }
GitRust