添加界面状态恢复逻辑
This commit is contained in:
@@ -80,6 +80,8 @@ import androidx.compose.ui.draw.alpha
|
||||
import androidx.compose.ui.focus.focusRequester
|
||||
import androidx.compose.ui.graphics.asImageBitmap
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
import com.aiosman.ravenow.ui.agent.AddAgentViewModel.showManualCreation
|
||||
|
||||
/**
|
||||
* 添加智能体界面
|
||||
*/
|
||||
@@ -154,15 +156,32 @@ fun AddAgentScreen() {
|
||||
// 页面进入时重置头像选择状态
|
||||
LaunchedEffect(Unit) {
|
||||
model.isSelectingAvatar = false
|
||||
// 根据标记恢复相应的状态
|
||||
if (model.isAutoModeManualForm) {
|
||||
// 恢复自动模式下的手动表单状态
|
||||
showManualCreationForm = model.showManualCreationForm
|
||||
isCreatingAgent = model.isCreatingAgent
|
||||
showWaveAnimation = model.showWaveAnimation
|
||||
showManualCreation = model.showManualCreation
|
||||
} else {
|
||||
// 恢复手动模式下的状态
|
||||
showManualCreation = model.showManualCreation
|
||||
showManualCreationForm = model.showManualCreationForm
|
||||
isCreatingAgent = model.isCreatingAgent
|
||||
showWaveAnimation = model.showWaveAnimation
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.background(color = appColors.decentBackground),
|
||||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
var showManualCreation by remember { mutableStateOf(false) }
|
||||
var showManualCreation by remember {
|
||||
mutableStateOf(model.showManualCreation)
|
||||
}
|
||||
StatusBarSpacer()
|
||||
Box(
|
||||
modifier = Modifier.padding(horizontal = 14.dp, vertical = 16.dp)
|
||||
@@ -489,6 +508,12 @@ fun AddAgentScreen() {
|
||||
)
|
||||
.align(Alignment.Start)
|
||||
.noRippleClickable {
|
||||
// 保存当前状态
|
||||
model.showManualCreationForm = showManualCreationForm
|
||||
model.isCreatingAgent = isCreatingAgent
|
||||
model.showWaveAnimation = showWaveAnimation
|
||||
model.showManualCreation = showManualCreation
|
||||
model.isAutoModeManualForm = true // 标记为自动模式下的手动表单
|
||||
// 设置正在选择头像的标志
|
||||
model.isSelectingAvatar = true
|
||||
navController.navigate(NavigationRoute.AgentImageCrop.route)
|
||||
@@ -678,6 +703,12 @@ fun AddAgentScreen() {
|
||||
)
|
||||
.align(Alignment.Start)
|
||||
.noRippleClickable {
|
||||
// 保存当前状态
|
||||
model.showManualCreation = showManualCreation
|
||||
model.showManualCreationForm = showManualCreationForm
|
||||
model.isCreatingAgent = isCreatingAgent
|
||||
model.showWaveAnimation = showWaveAnimation
|
||||
model.isAutoModeManualForm = false // 标记为手动模式下的手动表单
|
||||
// 设置正在选择头像的标志
|
||||
model.isSelectingAvatar = true
|
||||
navController.navigate(NavigationRoute.AgentImageCrop.route)
|
||||
|
||||
@@ -24,7 +24,12 @@ object AddAgentViewModel : ViewModel() {
|
||||
var croppedBitmap by mutableStateOf<Bitmap?>(null)
|
||||
var isUpdating by mutableStateOf(false)
|
||||
var isSelectingAvatar by mutableStateOf(false) // 标记是否正在选择头像
|
||||
|
||||
var showManualCreationForm by mutableStateOf(false)
|
||||
var isCreatingAgent by mutableStateOf(false)
|
||||
var showWaveAnimation by mutableStateOf(false)
|
||||
var showManualCreation by mutableStateOf(false)
|
||||
// 添加一个标志来区分两种手动表单状态
|
||||
var isAutoModeManualForm by mutableStateOf(false)
|
||||
suspend fun updateAgentAvatar(context: Context) {
|
||||
croppedBitmap?.let {
|
||||
val file = File(context.cacheDir, "agent_avatar.jpg")
|
||||
@@ -84,5 +89,10 @@ object AddAgentViewModel : ViewModel() {
|
||||
croppedBitmap = null
|
||||
isUpdating = false
|
||||
isSelectingAvatar = false
|
||||
showManualCreationForm = false
|
||||
isCreatingAgent = false
|
||||
showWaveAnimation = false
|
||||
showManualCreation = false
|
||||
isAutoModeManualForm = false
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user