package com.hormonetrack import android.Manifest import android.content.Intent import android.content.pm.PackageManager import android.os.Build import android.os.Bundle import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatDelegate import androidx.core.os.LocaleListCompat import androidx.lifecycle.lifecycleScope import com.hormonetrack.ui.HormoneTrackRoot import com.hormonetrack.ui.theme.HormoneTrackTheme import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch class MainActivity : AppCompatActivity() { private val notificationPermissionLauncher = registerForActivityResult(ActivityResultContracts.RequestPermission()) { } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val container = (application as HormoneTrackApp).container // Edge-to-edge (Material You) : le contenu s'étend sous les barres système. // Les insets sont alors consommés UNE SEULE FOIS — par les TopAppBar // Material 3 (barre de statut) et la NavigationBar (barre de navigation). // Avant : la fenêtre poussait déjà le contenu sous la barre de statut ET // les TopAppBar rajoutaient leur padding interne → double espace vide en haut. enableEdgeToEdge() lifecycleScope.launch { val lang = container.settings.language.first() val locales = if (lang == "system") { LocaleListCompat.getEmptyLocaleList() } else { LocaleListCompat.forLanguageTags(lang) } if (AppCompatDelegate.getApplicationLocales() != locales) { AppCompatDelegate.setApplicationLocales(locales) } } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { if (checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED ) { notificationPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS) } } val openLogDose = intent?.getBooleanExtra("open_log_dose", false) ?: false val treatmentId = intent?.getLongExtra("treatment_id", -1L) ?: -1L setContent { HormoneTrackTheme { HormoneTrackRoot( initialOpenLogDose = openLogDose, initialTreatmentId = treatmentId ) } } } override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) setIntent(intent) } }