선생님 호출 화면 이모티콘을 검정 아이콘으로 통일
위치 이모티콘(🏢🍴🧪 등)을 Material 아이콘으로, 랭킹 메달 이모티콘을 백품타 랭킹 화면과 같은 금/은/동 색 emoji_events 아이콘으로 교체. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -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 = [
|
||||||
|
|||||||
@@ -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],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
Reference in New Issue
Block a user