package su.reya.coop import android.content.Intent import android.os.Build import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.activity.viewModels import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import su.reya.coop.coop.storage.SecretStore class MainActivity : ComponentActivity() { private val viewModel: NostrViewModel by viewModels { object : ViewModelProvider.Factory { override fun create(modelClass: Class): T { val secretStore = SecretStore(this@MainActivity) return NostrViewModel(NostrManager.instance, secretStore) as T } } } override fun onCreate(savedInstanceState: Bundle?) { val splashScreen = installSplashScreen() enableEdgeToEdge() super.onCreate(savedInstanceState) val serviceIntent = Intent(this, NostrForegroundService::class.java) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForegroundService(serviceIntent) } else { startService(serviceIntent) } // Keep the splash screen visible until the signer check is complete splashScreen.setKeepOnScreenCondition { viewModel.signerRequired.value == null } setContent { App(viewModel = viewModel) } } override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) setIntent(intent) } }