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

위치 이모티콘(🏢🍴🧪 등)을 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)에 있던 데이터를 그대로 옮기면서, // 원래 별도 Firebase 페이지(index.html)에 있던 데이터를 그대로 옮기면서,
// "김지" 약어가 실제로는 조신현 선생님을 가리키던 오타를 "조신"으로 바로잡았다. // "김지" 약어가 실제로는 조신현 선생님을 가리키던 오타를 "조신"으로 바로잡았다.
@@ -101,15 +103,15 @@ List<String> teachersInClassNow(int weekday, String hhmm) {
return abbrevs.map((a) => kTeacherAbbrevMap[a]).whereType<String>().toList(); 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 = [ const List<String> kLocationOptions = [
+31 -10
View File
@@ -239,8 +239,13 @@ class _TeacherCallScreenState extends State<TeacherCallScreen> {
); );
} }
static const List<Color> _medalColors = [
Color(0xFFC9A227), // 금
Color(0xFF9AA0A6), // 은
Color(0xFFB07A4B), // 동
];
Widget _buildRanking() { Widget _buildRanking() {
final medals = ['🥇', '🥈', '🥉'];
return Container( return Container(
padding: const EdgeInsets.all(14), padding: const EdgeInsets.all(14),
decoration: BoxDecoration( decoration: BoxDecoration(
@@ -272,7 +277,11 @@ class _TeacherCallScreenState extends State<TeacherCallScreen> {
for (var i = 0; i < _controller.ranking.length; i++) for (var i = 0; i < _controller.ranking.length; i++)
Column( Column(
children: [ children: [
Text(medals[i], style: const TextStyle(fontSize: 22)), Icon(
Icons.emoji_events_rounded,
color: _medalColors[i],
size: 22,
),
Text( Text(
_controller.ranking[i]['teacherName'] ?? '', _controller.ranking[i]['teacherName'] ?? '',
style: const TextStyle(fontWeight: FontWeight.bold), style: const TextStyle(fontWeight: FontWeight.bold),
@@ -436,14 +445,26 @@ class _TeacherCallScreenState extends State<TeacherCallScreen> {
), ),
), ),
const SizedBox(height: 2), const SizedBox(height: 2),
Text( Row(
'${kLocationIcons[location] ?? '📍'} $location', children: [
maxLines: 1, Icon(
overflow: TextOverflow.ellipsis, kLocationIcons[location] ?? Icons.location_on_rounded,
style: TextStyle( size: 12,
fontSize: 11, color: isSelected ? Colors.white70 : Colors.grey[500],
color: isSelected ? Colors.white70 : Colors.grey[500], ),
), const SizedBox(width: 3),
Expanded(
child: Text(
location,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 11,
color: isSelected ? Colors.white70 : Colors.grey[500],
),
),
),
],
), ),
], ],
), ),
+26 -10
View File
@@ -112,13 +112,25 @@ class _TeacherLocationScreenState extends State<TeacherLocationScreen> {
), ),
), ),
const SizedBox(height: 6), const SizedBox(height: 6),
Text( Row(
'${kLocationIcons[_controller.currentLocation] ?? '📍'} ${_controller.currentLocation}', mainAxisAlignment: MainAxisAlignment.center,
style: const TextStyle( children: [
fontWeight: FontWeight.bold, Icon(
fontSize: 20, kLocationIcons[_controller.currentLocation] ??
color: Colors.white, Icons.location_on_rounded,
), color: Colors.white,
size: 20,
),
const SizedBox(width: 8),
Text(
_controller.currentLocation,
style: const TextStyle(
fontWeight: FontWeight.bold,
fontSize: 20,
color: Colors.white,
),
),
],
), ),
], ],
), ),
@@ -177,9 +189,13 @@ class _TeacherLocationScreenState extends State<TeacherLocationScreen> {
: AppPalette.linen, : AppPalette.linen,
shape: BoxShape.circle, shape: BoxShape.circle,
), ),
child: Text( child: Icon(
kLocationIcons[loc] ?? '📍', kLocationIcons[loc] ??
style: const TextStyle(fontSize: 16), Icons.location_on_rounded,
size: 16,
color: isSelected
? Colors.white
: AppPalette.ink,
), ),
), ),
const SizedBox(height: 6), const SizedBox(height: 6),