visual method
Icon, tone and label of a SIM state; raw is shown as the detail.
Implementation
NmStatusVisual visual(NmSimState s, {String? raw}) => switch (s) {
NmSimState.active => NmStatusVisual(code: 'active', label: _l.simActive, meaning: _l.simActiveMeaning, icon: NmFugue.tickCircle, tone: NmTone.success),
NmSimState.calling => NmStatusVisual(code: 'calling', label: _l.simCalling, meaning: _l.simCallingMeaning, icon: NmFugue.telephone, tone: NmTone.brand),
NmSimState.idle => NmStatusVisual(code: 'idle', label: _l.simIdle, meaning: _l.simIdleMeaning, icon: NmFugue.cardSmall, tone: NmTone.muted),
NmSimState.blocked => NmStatusVisual(code: 'blocked', label: _l.simBlocked, meaning: _l.simBlockedMeaning, icon: NmFugue.lock, tone: NmTone.danger),
NmSimState.notRegistered => NmStatusVisual(
code: 'not_registered',
label: _l.simNotRegistered,
meaning: _l.simNotRegisteredMeaning,
icon: NmFugue.exclamation,
tone: NmTone.warning,
),
NmSimState.noSim => NmStatusVisual(code: 'no_sim', label: _l.simNoSim, meaning: _l.simNoSimMeaning, icon: NmFugue.cardBadgeMinus, tone: NmTone.muted),
NmSimState.error => NmStatusVisual(code: 'error', label: _l.simError, meaning: _l.simErrorMeaning, icon: NmFugue.exclamationRed, tone: NmTone.danger),
NmSimState.unknown => NmStatusVisual(
code: raw ?? 'unknown',
label: (raw ?? '?').toUpperCase(),
meaning: _l.simUnknownMeaning,
icon: NmFugue.question,
tone: NmTone.muted,
),
};