MainScreen.kt
/*
* This file is part of GNU Taler
* (C) 2026 Taler Systems S.A.
*
* GNU Taler is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 3, or (at your option) any later version.
*
* GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>.
*/
package net.taler.wallet.main
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.platform.LocalContext
import net.taler.wallet.NavigateCallback
import net.taler.wallet.backend.TalerErrorInfo
/**
* Temporary developer switch between the old and the new main screen.
*
* The old implementation is fully contained in [LegacyMainScreen] and its
* Legacy* composables. Once the new main screen is finished, delete
* [LegacyMainScreen], the legacy composables, the developer preference and this
* switch.
*/
@Composable
fun MainScreen(
model: MainViewModel,
onNavigate: NavigateCallback,
onFulfillPayment: (url: String) -> Unit,
onShowError: (TalerErrorInfo) -> Unit,
) {
val context = LocalContext.current
val newMainScreenEnabled by model.settingsManager
.getNewMainScreenEnabled(context)
.collectAsState(false)
if (newMainScreenEnabled) {
NewMainScreen(
model = model,
onNavigate = onNavigate,
onFulfillPayment = onFulfillPayment,
)
} else {
LegacyMainScreen(
model = model,
onNavigate = onNavigate,
onFulfillPayment = onFulfillPayment,
onShowError = onShowError,
)
}
}