선생님 호출 화면 이모티콘을 검정 아이콘으로 통일

위치 이모티콘(🏢🍴🧪 등)을 Material 아이콘으로, 랭킹 메달 이모티콘을
백품타 랭킹 화면과 같은 금/은/동 색 emoji_events 아이콘으로 교체.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-18 06:28:50 +00:00
co-authored by Claude Sonnet 5
parent 86a8f7b9d1
commit bdc79b94c3
3 changed files with 68 additions and 29 deletions
+11 -9
View File
@@ -1,3 +1,5 @@
import 'package:flutter/material.dart';
// 📅 선생님 호출 화면에서 "지금 수업 중" 배지를 보여주기 위한 시간표 데이터.
// 원래 별도 Firebase 페이지(index.html)에 있던 데이터를 그대로 옮기면서,
// "김지" 약어가 실제로는 조신현 선생님을 가리키던 오타를 "조신"으로 바로잡았다.
@@ -101,15 +103,15 @@ List<String> teachersInClassNow(int weekday, String hhmm) {
return abbrevs.map((a) => kTeacherAbbrevMap[a]).whereType<String>().toList();
}
const Map<String, String> kLocationIcons = {
"교무실": "🏢",
"급식실": "🍴",
"과학실": "🧪",
"도서관": "📖",
"출장": "🚗",
"조퇴/퇴근": "🏠",
"상담실": "💬",
"기숙사": "🏨",
const Map<String, IconData> kLocationIcons = {
"교무실": Icons.business_rounded,
"급식실": Icons.restaurant_rounded,
"과학실": Icons.science_rounded,
"도서관": Icons.menu_book_rounded,
"출장": Icons.directions_car_rounded,
"조퇴/퇴근": Icons.home_rounded,
"상담실": Icons.forum_rounded,
"기숙사": Icons.hotel_rounded,
};
const List<String> kLocationOptions = [
+25 -4
View File
@@ -239,8 +239,13 @@ class _TeacherCallScreenState extends State<TeacherCallScreen> {
);
}
static const List<Color> _medalColors = [
Color(0xFFC9A227), // 금
Color(0xFF9AA0A6), // 은
Color(0xFFB07A4B), // 동
];
Widget _buildRanking() {
final medals = ['🥇', '🥈', '🥉'];
return Container(
padding: const EdgeInsets.all(14),
decoration: BoxDecoration(
@@ -272,7 +277,11 @@ class _TeacherCallScreenState extends State<TeacherCallScreen> {
for (var i = 0; i < _controller.ranking.length; i++)
Column(
children: [
Text(medals[i], style: const TextStyle(fontSize: 22)),
Icon(
Icons.emoji_events_rounded,
color: _medalColors[i],
size: 22,
),
Text(
_controller.ranking[i]['teacherName'] ?? '',
style: const TextStyle(fontWeight: FontWeight.bold),
@@ -436,8 +445,17 @@ class _TeacherCallScreenState extends State<TeacherCallScreen> {
),
),
const SizedBox(height: 2),
Text(
'${kLocationIcons[location] ?? '📍'} $location',
Row(
children: [
Icon(
kLocationIcons[location] ?? Icons.location_on_rounded,
size: 12,
color: isSelected ? Colors.white70 : Colors.grey[500],
),
const SizedBox(width: 3),
Expanded(
child: Text(
location,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
@@ -445,6 +463,9 @@ class _TeacherCallScreenState extends State<TeacherCallScreen> {
color: isSelected ? Colors.white70 : Colors.grey[500],
),
),
),
],
),
],
),
),
+20 -4
View File
@@ -112,8 +112,18 @@ class _TeacherLocationScreenState extends State<TeacherLocationScreen> {
),
),
const SizedBox(height: 6),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
kLocationIcons[_controller.currentLocation] ??
Icons.location_on_rounded,
color: Colors.white,
size: 20,
),
const SizedBox(width: 8),
Text(
'${kLocationIcons[_controller.currentLocation] ?? '📍'} ${_controller.currentLocation}',
_controller.currentLocation,
style: const TextStyle(
fontWeight: FontWeight.bold,
fontSize: 20,
@@ -122,6 +132,8 @@ class _TeacherLocationScreenState extends State<TeacherLocationScreen> {
),
],
),
],
),
),
const SizedBox(height: 20),
_sectionHeader('위치 선택'),
@@ -177,9 +189,13 @@ class _TeacherLocationScreenState extends State<TeacherLocationScreen> {
: AppPalette.linen,
shape: BoxShape.circle,
),
child: Text(
kLocationIcons[loc] ?? '📍',
style: const TextStyle(fontSize: 16),
child: Icon(
kLocationIcons[loc] ??
Icons.location_on_rounded,
size: 16,
color: isSelected
? Colors.white
: AppPalette.ink,
),
),
const SizedBox(height: 6),