걸음 수 Health Connect·HealthKit · 위치 퀘스트 사진·QR 인증 · 행성 형태 확정

This commit is contained in:
Sn-Kinos
2026-10-05 23:57:01 +09:00
parent dc9861df38
commit dce2f64362
44 changed files with 930 additions and 66 deletions
@@ -304,6 +304,26 @@ class _QuestCreateScreenState extends State<QuestCreateScreen> {
trailing: const Icon(Icons.chevron_right),
onTap: _pickPlace,
),
// 추가 인증 수단(원장 C-03 「Location 의 추가 인증 수단」 · PRD-05 「GPS · 사진 · QR 인증」).
// GPS 는 항상 들어간다. 🟡 Figma 생성 화면에 이 줄이 없어 배치는 임시다(해석 확인 요청 영역B Q-B-10).
Text(context.l10n.questExtraVerify, style: Theme.of(context).textTheme.bodySmall),
const SizedBox(height: AppSpace.s2),
Wrap(
spacing: AppSpace.s2,
children: [
for (final (key, label) in [
('photo', context.l10n.questVerifyPhoto),
('qr', context.l10n.questVerifyQr),
])
FilterChip(
label: Text(label),
selected: _extraVerify.contains(key),
onSelected: (on) => setState(
() => on ? _extraVerify.add(key) : _extraVerify.remove(key),
),
),
],
),
const SizedBox(height: AppSpace.s3),
],
@@ -383,6 +403,9 @@ class _QuestCreateScreenState extends State<QuestCreateScreen> {
});
}
/// 위치 Quest 에 덧붙일 인증 수단(`photo` · `qr`).
final _extraVerify = <String>{};
Future<void> _pickPlace() async {
if (_places.isEmpty) {
final places = await widget.repository.places();
@@ -446,6 +469,7 @@ class _QuestCreateScreenState extends State<QuestCreateScreen> {
placeId: _needs('place') && !(_place?.isPin ?? true) ? _place?.id : null,
pin: _needs('place') && (_place?.isPin ?? false) ? _place : null,
goal: _needs('goal') ? _intOf(_goal) : null,
extraVerify: _needs('place') ? _extraVerify.toList() : const [],
),
);
} on BackendException catch (error) {