UI 문구 이모티콘 제거 + 계정 강제 삭제 아이콘 검정으로 통일

화면 타이틀, 스낵바/다이얼로그 메시지, 백그라운드 알림 문구 등
사용자에게 노출되는 텍스트에서 이모티콘을 전부 제거 (코드 주석은
대상 아님). 아이콘 위젯은 그대로 유지.

main_dashboard.dart의 "계정 강제 삭제" 타일 아이콘 색상도 빨간색
대신 다른 타일과 동일한 검정(AppPalette.ink)으로 통일.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-04 22:31:03 +09:00
co-authored by Claude Sonnet 5
parent dce5f1ad1b
commit 9089b9032e
22 changed files with 157 additions and 160 deletions
+10 -10
View File
@@ -63,7 +63,7 @@ class _TeacherAttendancePageState extends State<TeacherAttendancePage> {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: const Text('🧪 테스트용 허용시간 초기화'),
title: const Text('테스트용 허용시간 초기화'),
content: const Text(
'하교 처리나 반출 허용 시간 설정으로 켜져 있는 모든 허용 시간대를 지금 즉시 해제합니다.\n'
'(무단반출 감지 테스트할 때만 사용하세요)',
@@ -126,7 +126,7 @@ class _TeacherAttendancePageState extends State<TeacherAttendancePage> {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: const Text('⏰ 전체 학생 반출 허용 시간 설정'),
title: const Text('전체 학생 반출 허용 시간 설정'),
content: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
@@ -169,7 +169,7 @@ class _TeacherAttendancePageState extends State<TeacherAttendancePage> {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: const Text('🏫 하교 처리'),
title: const Text('하교 처리'),
content: const Text(
'지금부터 모든 학생의 반출이 자동으로 허용되며, 더 이상 무단반출 경고가 뜨지 않습니다.\n하교 처리하시겠습니까?',
),
@@ -206,7 +206,7 @@ class _TeacherAttendancePageState extends State<TeacherAttendancePage> {
backgroundColor: AppPalette.mist,
appBar: AppBar(
title: const Text(
'📋 실시간 출석 현황',
'실시간 출석 현황',
style: TextStyle(fontWeight: FontWeight.bold),
),
backgroundColor: AppPalette.ink,
@@ -261,7 +261,7 @@ class _TeacherAttendancePageState extends State<TeacherAttendancePage> {
Icons.bug_report_outlined,
color: Colors.white70,
),
tooltip: '🧪 테스트용: 허용시간 초기화',
tooltip: '테스트용: 허용시간 초기화',
),
const SizedBox(width: 8),
],
@@ -387,9 +387,9 @@ class _TeacherAttendancePageState extends State<TeacherAttendancePage> {
? Colors.red
: (isPending ? Colors.orange : (isComplete ? Colors.blue : Colors.red));
final String statusLine = hasViolation
? '🚨 무단반출 (${student['violationTime']})'
? '무단반출 (${student['violationTime']})'
: (isPending
? '⏳ 미완료 (${student['checkInTime']})'
? '미완료 (${student['checkInTime']})'
: (isComplete
? '${student['checkInTime']}'
: (student['hasEverCheckedIn'] == true ? '미제출' : '미등록')));
@@ -691,7 +691,7 @@ class _TeacherAttendancePageState extends State<TeacherAttendancePage> {
const SizedBox(width: 8),
Expanded(
child: Text(
'🔓 지금 전체 반출 허용 중입니다 ($until 까지) — 이 시간 동안은 무단반출 경고가 뜨지 않아요.',
'지금 전체 반출 허용 중입니다 ($until 까지) — 이 시간 동안은 무단반출 경고가 뜨지 않아요.',
style: TextStyle(
color: Colors.amber[900],
fontWeight: FontWeight.bold,
@@ -721,12 +721,12 @@ class _TeacherAttendancePageState extends State<TeacherAttendancePage> {
onSelected: (_) => _controller.setFilter("ALL"),
),
FilterChip(
label: const Text("🟢 출석자"),
label: const Text("출석자"),
selected: _controller.filterType == "CHECKED_IN",
onSelected: (_) => _controller.setFilter("CHECKED_IN"),
),
FilterChip(
label: const Text("🔴 미출석자"),
label: const Text("미출석자"),
selected: _controller.filterType == "ABSENT",
onSelected: (_) => _controller.setFilter("ABSENT"),
),