feat(debug): add preview toggles and auto-close ads

- 기록/통계 탭에 디버그 토글 배너 추가 및 테스트 데이터 주입 로직 상태화\n- 리스트 공유 화면에 디버그 프리뷰 토글, 광고 관문, 디버그 전송 흐름 반영\n- 모의 전면 광고는 대기 시간 종료 시 자동 완료되도록 변경\n- AGENTS.md에 코멘트는 한국어로 작성 규칙 명시\n\n테스트: flutter analyze; flutter test
This commit is contained in:
JiWoong Sul
2025-12-02 15:24:34 +09:00
parent 69902bbc30
commit df4c34194c
7 changed files with 801 additions and 34 deletions

View File

@@ -28,6 +28,7 @@ class _MockInterstitialAdDialogState extends State<_MockInterstitialAdDialog> {
late Timer _timer;
int _elapsedSeconds = 0;
bool _completed = false;
@override
void initState() {
@@ -37,8 +38,10 @@ class _MockInterstitialAdDialogState extends State<_MockInterstitialAdDialog> {
setState(() {
_elapsedSeconds++;
});
if (_elapsedSeconds >= _adDurationSeconds) {
if (_elapsedSeconds >= _adDurationSeconds && !_completed) {
_completed = true;
_timer.cancel();
Navigator.of(context).pop(true);
}
});
}
@@ -99,26 +102,13 @@ class _MockInterstitialAdDialogState extends State<_MockInterstitialAdDialog> {
const SizedBox(height: 12),
Text(
_canClose
? '이제 닫을 수 있어요.'
? '광고가 완료되었어요. 자동으로 계속합니다.'
: '남은 시간: ${_adDurationSeconds - _elapsedSeconds}',
style: TextStyle(
color: isDark ? Colors.white70 : Colors.black54,
),
),
const SizedBox(height: 24),
FilledButton(
onPressed: _canClose
? () {
Navigator.of(context).pop(true);
}
: null,
style: FilledButton.styleFrom(
minimumSize: const Size.fromHeight(48),
backgroundColor: Colors.deepPurple,
),
child: const Text('추천 계속 보기'),
),
const SizedBox(height: 8),
const SizedBox(height: 12),
TextButton(
onPressed: () {
Navigator.of(context).pop(false);