[05-Designer] #218 UX 다듬기 — RAM 게이트 문구 + 옵트아웃 표현
Round 2 QA PASS 후 user-facing 문구 3건 정리. 1) AC-6 RAM 게이트 안내: "이 단말의 RAM 이 부족합니다 (필요: 4GB 이상)" → "이 단말에서는 AI 도움을 사용할 수 없어요 (RAM 4GB 이상 필요)". Planner spec 톤과 align. "부족합니다" (비난 어조) → "사용할 수 없어요" (정보 제공 톤). 안내문 끝 마침표 제거. 2) ModelAvailability.missing 메시지가 RAM 게이트 active 상태에서 "위 토글을 켜면" 안내를 표시해 모순 발생. meetsRam=false 분기 추가 → "이 단말은 모델을 받을 수 없어요 (RAM 4GB 이상 필요)" 노출. 3) _confirmOptOut 보조 텍스트 "다시 켜면 다시 다운로드해야 합니다" → "다시 켜면 처음부터 다운로드합니다". "다시" 중복 제거 + 호흡 정리. 기능 동작 변화 0. analyze clean, 88/88 통과. Refs #218
This commit is contained in:
@@ -58,7 +58,7 @@ class _AiSection extends ConsumerWidget {
|
|||||||
subtitle: Text(
|
subtitle: Text(
|
||||||
meetsRam
|
meetsRam
|
||||||
? 'Gemma 4 E2B 모델 ≈ 2.4GB. 모든 처리는 단말에서 일어납니다.'
|
? 'Gemma 4 E2B 모델 ≈ 2.4GB. 모든 처리는 단말에서 일어납니다.'
|
||||||
: '이 단말의 RAM 이 부족합니다 (필요: 4GB 이상).',
|
: '이 단말에서는 AI 도움을 사용할 수 없어요 (RAM 4GB 이상 필요)',
|
||||||
),
|
),
|
||||||
value: meetsRam && optIn,
|
value: meetsRam && optIn,
|
||||||
onChanged: meetsRam
|
onChanged: meetsRam
|
||||||
@@ -86,7 +86,7 @@ class _AiSection extends ConsumerWidget {
|
|||||||
error: (e, _) => ListTile(title: Text('상태 오류: $e')),
|
error: (e, _) => ListTile(title: Text('상태 오류: $e')),
|
||||||
data: (a) => ListTile(
|
data: (a) => ListTile(
|
||||||
title: const Text('모델 상태'),
|
title: const Text('모델 상태'),
|
||||||
subtitle: Text(_describe(a)),
|
subtitle: Text(_describe(a, meetsRam: meetsRam)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (optIn && download != null)
|
if (optIn && download != null)
|
||||||
@@ -102,12 +102,16 @@ class _AiSection extends ConsumerWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
String _describe(ModelAvailability a) {
|
String _describe(ModelAvailability a, {required bool meetsRam}) {
|
||||||
switch (a) {
|
switch (a) {
|
||||||
case ModelAvailability.ready:
|
case ModelAvailability.ready:
|
||||||
return '준비 완료 — 새 습관 만들기에서 ✨ AI 제안을 쓸 수 있어요';
|
return '준비 완료 — 새 습관 만들기에서 ✨ AI 제안을 쓸 수 있어요';
|
||||||
case ModelAvailability.missing:
|
case ModelAvailability.missing:
|
||||||
return '아직 받지 않았어요 — 위 토글을 켜면 다운로드합니다';
|
// RAM 게이트로 토글이 비활성인 상태에서 "토글을 켜면" 안내는 모순.
|
||||||
|
// 단말 미지원 메시지를 그대로 노출해서 사용자가 다음 행동을 알 수 있게.
|
||||||
|
return meetsRam
|
||||||
|
? '아직 받지 않았어요 — 위 토글을 켜면 다운로드합니다'
|
||||||
|
: '이 단말은 모델을 받을 수 없어요 (RAM 4GB 이상 필요)';
|
||||||
case ModelAvailability.corrupt:
|
case ModelAvailability.corrupt:
|
||||||
return '파일이 손상됐어요 — 끄고 다시 켜면 새로 받습니다';
|
return '파일이 손상됐어요 — 끄고 다시 켜면 새로 받습니다';
|
||||||
case ModelAvailability.downloading:
|
case ModelAvailability.downloading:
|
||||||
@@ -171,7 +175,7 @@ class _AiSection extends ConsumerWidget {
|
|||||||
),
|
),
|
||||||
SizedBox(height: 4),
|
SizedBox(height: 4),
|
||||||
Text(
|
Text(
|
||||||
'다시 켜면 다시 다운로드해야 합니다.',
|
'다시 켜면 처음부터 다운로드합니다.',
|
||||||
style: TextStyle(fontSize: 13, color: Colors.grey),
|
style: TextStyle(fontSize: 13, color: Colors.grey),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user