nageyqma·git
HTTPS https://git.nageyqma.icu/nageyqma/odin_next.git SSH git@git.nageyqma.icu:nageyqma/odin_next.git

HTTPS 链接可直接 git clone;推送代码请使用 SSH。

844 B · 26 行raw
1234567891011121314151617181920212223242526
package com.odtheking.odin.config

data class WaypointPackState(
    val selectedPackIds: MutableList<String> = mutableListOf(),
    var editPackId: String = "",
)

fun WaypointPackState.normalized(availablePackIds: List<String>): WaypointPackState {
    if (availablePackIds.isEmpty()) return WaypointPackState()

    val selectedPackIds = selectedPackIds
        .map(String::trim)
        .filter { it.isNotBlank() && it in availablePackIds }
        .distinct()
        .toMutableList()

    val editPackId = editPackId
        .takeIf { it in availablePackIds }
        ?: selectedPackIds.firstOrNull()
        ?: availablePackIds.first()

    if (selectedPackIds.isEmpty()) selectedPackIds.add(editPackId)
    if (editPackId !in selectedPackIds) selectedPackIds.add(editPackId)

    return WaypointPackState(selectedPackIds, editPackId)
}