Replace NavController with navigation callback

This commit is contained in:
greenart7c3
2026-04-10 09:25:57 -03:00
parent c4e04a9dfb
commit 7042ba5c4e
3 changed files with 26 additions and 29 deletions
@@ -46,7 +46,6 @@ import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.navigation.NavController
import com.greenart7c3.nostrsigner.Amber
import com.greenart7c3.nostrsigner.BuildFlavorChecker
import com.greenart7c3.nostrsigner.R
@@ -69,7 +68,7 @@ fun EditConfigurationScreen(
modifier: Modifier = Modifier,
key: String,
account: Account,
navController: NavController,
onNav: (String) -> Unit,
) {
val context = LocalContext.current
val scope = rememberCoroutineScope()
@@ -324,9 +323,7 @@ fun EditConfigurationScreen(
Amber.instance.checkForNewRelaysAndUpdateAllFilters()
scope.launch(Dispatchers.Main) {
navController.navigate(Route.Applications.route) {
popUpTo(0)
}
onNav(Route.Applications.route)
}
}
}
@@ -347,9 +344,7 @@ fun EditConfigurationScreen(
Amber.instance.getHistoryDatabase(account.npub).dao().deleteHistory(it.application.key)
scope.launch(Dispatchers.Main) {
navController.navigate(Route.Applications.route) {
popUpTo(0)
}
onNav(Route.Applications.route)
}
Amber.instance.checkForNewRelaysAndUpdateAllFilters()
@@ -65,8 +65,6 @@ import com.greenart7c3.nostrsigner.models.TorMode
import com.greenart7c3.nostrsigner.okhttp.HttpClientManager
import com.greenart7c3.nostrsigner.service.TorManager
import com.greenart7c3.nostrsigner.service.crashreports.DisplayCrashMessages
import com.greenart7c3.nostrsigner.ui.NavBackStackEntryWrapper
import com.greenart7c3.nostrsigner.ui.NavHostControllerWrapper
import com.greenart7c3.nostrsigner.ui.actions.AccountBackupScreen
import com.greenart7c3.nostrsigner.ui.actions.AccountsBottomSheet
import com.greenart7c3.nostrsigner.ui.actions.ActiveRelaysScreen
@@ -434,16 +432,18 @@ fun MainScreen(
content = {
val scrollState = rememberScrollState()
SettingsScreen(
Modifier
modifier = Modifier
.fillMaxSize()
.padding(padding)
.verticalScrollbar(scrollState)
.verticalScroll(scrollState)
.padding(horizontal = verticalPadding)
.padding(top = verticalPadding * 1.5f),
accountStateViewModel,
account,
navController.navController,
accountStateViewModel = accountStateViewModel,
account = account,
onNav = {
navController.navController.navigate(it)
},
)
},
)
@@ -773,7 +773,11 @@ fun MainScreen(
.imePadding(),
key = key,
account = account,
navController = navController.navController,
onNav = { route ->
navController.navController.navigate(route) {
popUpTo(0)
}
},
)
}
},
@@ -49,7 +49,6 @@ import androidx.compose.ui.text.withStyle
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavController
import com.greenart7c3.nostrsigner.Amber
import com.greenart7c3.nostrsigner.BuildConfig
import com.greenart7c3.nostrsigner.BuildFlavorChecker
@@ -76,13 +75,12 @@ fun SettingsScreen(
modifier: Modifier,
accountStateViewModel: AccountStateViewModel,
account: Account,
navController: NavController,
onNav: (String) -> Unit,
) {
var logoutDialog by remember { mutableStateOf(false) }
val context = LocalContext.current
var torMode by remember { mutableStateOf(Amber.instance.settings.torMode) }
var disconnectTorDialog by remember { mutableStateOf(false) }
val proxyPort = remember { mutableStateOf(Amber.instance.settings.proxyPort.toString()) }
val scope = rememberCoroutineScope()
var isLoading by remember { mutableStateOf(false) }
var sizeInMBFormatted by remember { mutableStateOf("") }
@@ -127,7 +125,7 @@ fun SettingsScreen(
icon = Icons.Default.Security,
tint = MaterialTheme.colorScheme.onBackground,
onClick = {
navController.navigate(Route.Security.route)
onNav(Route.Security.route)
},
)
}
@@ -141,7 +139,7 @@ fun SettingsScreen(
icon = Icons.Default.Key,
tint = MaterialTheme.colorScheme.onBackground,
onClick = {
navController.navigate(Route.AccountBackup.route)
onNav(Route.AccountBackup.route)
},
)
}
@@ -155,7 +153,7 @@ fun SettingsScreen(
icon = Icons.Default.Language,
tint = MaterialTheme.colorScheme.onBackground,
onClick = {
navController.navigate(Route.Language.route)
onNav(Route.Language.route)
},
)
}
@@ -174,13 +172,13 @@ fun SettingsScreen(
icon = R.drawable.ic_tor,
tint = MaterialTheme.colorScheme.onBackground,
onLongClick = {
navController.navigate(Route.TorSettings.route)
onNav(Route.TorSettings.route)
},
onClick = {
if (torMode != TorMode.DISABLED) {
disconnectTorDialog = true
} else {
navController.navigate(Route.TorSettings.route)
onNav(Route.TorSettings.route)
}
},
)
@@ -195,7 +193,7 @@ fun SettingsScreen(
icon = ImageVector.vectorResource(R.drawable.relays),
tint = MaterialTheme.colorScheme.onBackground,
onClick = {
navController.navigate(Route.RelaysScreen.route)
onNav(Route.RelaysScreen.route)
},
)
}
@@ -210,7 +208,7 @@ fun SettingsScreen(
icon = Icons.Default.FilterList,
tint = MaterialTheme.colorScheme.onBackground,
onClick = {
navController.navigate(Route.Logs.route)
onNav(Route.Logs.route)
},
)
}
@@ -224,7 +222,7 @@ fun SettingsScreen(
icon = Icons.Default.Draw,
tint = MaterialTheme.colorScheme.onBackground,
onClick = {
navController.navigate(Route.SignPolicy.route)
onNav(Route.SignPolicy.route)
},
)
}
@@ -238,7 +236,7 @@ fun SettingsScreen(
icon = Icons.Default.FilterList,
tint = MaterialTheme.colorScheme.onBackground,
onClick = {
navController.navigate(Route.AuthWhitelist.route)
onNav(Route.AuthWhitelist.route)
},
)
}
@@ -252,7 +250,7 @@ fun SettingsScreen(
icon = Icons.Default.Feedback,
tint = MaterialTheme.colorScheme.onBackground,
onClick = {
navController.navigate(Route.Feedback.route)
onNav(Route.Feedback.route)
},
)
}
@@ -271,7 +269,7 @@ fun SettingsScreen(
},
icon = Icons.Default.SystemUpdate,
tint = if (latestRelease != null) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onBackground,
onClick = { navController.navigate(Route.UpdateSettings.route) },
onClick = { onNav(Route.UpdateSettings.route) },
)
}
}