- SettingsScreen: Add DisposableEffect for BroadcastReceiver lifecycle management
- MainActivity: Add error logging and permission checks before download
- ApkDownloadManager: Add install permission validation with Settings.canRequestPackageInstalls()
- Add user feedback with Toast messages for all error cases
- Bump version to 1.11.6
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
- MainActivity에서 하드코딩된 폴링 제거 (MainViewModel에서 처리)
- 비저빌리티 로직 개선 - 앱 시작 시 새로고침 추가
- WorkerScheduler 배터리 제약 조건 완화
- BootReceiver 저장된 폴링 간격 사용하도록 수정
- 버전 1.11.5로 업데이트
- BroadcastReceiver에 RECEIVER_NOT_EXPORTED 플래그 추가 (Android 12+)
- 다운로드 완료 후 리시버 자동 해제로 메모리 누수 방지
- FileProvider 경로 수정으로 APK 설치 실패 문제 해결
- 버전 1.11.4로 업데이트
### UI/UX 개선
- DealItem 프로덕션 레벨 디자인 적용
- 키워드 매칭 그라데이션 배경 효과
- 세련된 타이포그래피 및 아이콘 스타일
- 부드러운 바운스 애니메이션
### Pull to Refresh 수정
- 스피너가 레이어에 가려지는 문제 해결
- 상단 패딩 추가로 전체 스피너 표시
- MainScreen.kt: 불필요한 windowInsetsPadding 제거로 화면 공간 확보
- DealListScreen.kt: TopAppBar에 statusBarsPadding 적용, FAB에 navigationBarsPadding 적용
- Theme.kt: 시스템 바 색상을 앱 surface 색상과 일치시켜 이질감 해소
- MainActivity.kt: setupEdgeToEdge 함수 간소화 및 중복 코드 제거
- version.json: 1.9.0 버전 업데이트
- Edge-to-edge UI 적용 (상태바/네비게이션바 투명)
- WindowInsets 처리로 시스템 바 가림 해결
- 내 키워드 필터 추가 (키워드 매칭된 게시물만 표시)
- 백그라운드에서 포어그라운드 전환 시 자동 새로고침
- Scaffold contentWindowInsets 적용
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
- 아이콘 디자인 개선 (알림 벨 + 불꽃)
- 메인 화면 헤더 제거로 화면 넓게 사용
- 설정 화면 알림 설정 UI 대폭 개선
- 키워드 카드 세련된 디자인 적용
- 전체 UI/UX 모던하게 고도화
- 필터 칩 애니메이션 추가
- 버전 1.2.0 -> 1.3.0 (versionCode 4 -> 5)
- 알림 권한 설정 UI 상세화 (아이콘, 설명 추가)
- 폴링 주기 오타 수정 (폴� -> 폴링)
- 키워드 매칭 시각화 강화 (별 아이콘, 강한 테두리)
- 하단 네비게이션 제거, 상단 앱바로 설정 이동
- 배터리/데이터 최적화 (데이터 보관 기간 7일 -> 3일)
- 버전 업데이트 (1.0.1 -> 1.1.0)
- Add version.json for remote version check
- Add VersionManager utility
- Show update dialog on app start
- Add version info in settings screen
- Version format: x.y.z (1.0.0)
- versionCode increments by 1