-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Fix/toast] 스낵바로 변경 #234
[Fix/toast] 스낵바로 변경 #234
Conversation
Walkthrough
Changes
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Outside diff range and nitpick comments (4)
app/src/main/java/com/eatssu/android/util/NotificationReceiver.kt (1)
21-25
: 주말 체크 로직의 가독성 개선이 필요합니다.현재 구현은 정상적으로 작동하지만, 다음과 같은 개선사항을 제안드립니다:
- 주말 체크 로직을 별도 함수로 분리
- 가독성을 위한 상수 정의
다음과 같이 개선해보세요:
class NotificationReceiver : BroadcastReceiver() { + companion object { + private const val CHANNEL_ID = "DailyNotificationChannel" + private const val NOTIFICATION_ID = 1 + } + + @RequiresApi(Build.VERSION_CODES.O) + private fun isWeekday(): Boolean { + val currentDay = LocalDateTime.now().dayOfWeek + return currentDay != DayOfWeek.SATURDAY && currentDay != DayOfWeek.SUNDAY + } @RequiresApi(Build.VERSION_CODES.O) override fun onReceive(context: Context, intent: Intent) { - // 현재 요일이 평일인 경우에만 알림을 발송 - val currentDay = LocalDateTime.now().dayOfWeek - if (currentDay != DayOfWeek.SATURDAY && currentDay != DayOfWeek.SUNDAY) { + // 평일에만 알림 발송 + if (isWeekday()) { showNotification(context) } }app/src/main/java/com/eatssu/android/ui/mypage/MyPageActivity.kt (3)
64-70
: 스위치 리스너 처리 로직을 개선하면 좋겠습니다.현재 구현은 상태 업데이트 중 원치 않는 이벤트 발생을 방지하는 좋은 패턴이지만, 가독성을 위해 별도의 메서드로 분리하는 것이 좋겠습니다.
다음과 같이 리팩토링을 제안드립니다:
- // Switch 상태를 설정할 때 리스너를 임시로 null로 설정 - binding.alarmSwitch.setOnCheckedChangeListener(null) - binding.alarmSwitch.isChecked = it.isAlarmOn - // 상태 설정 후에 리스너 추가 - binding.alarmSwitch.setOnCheckedChangeListener { _, isChecked -> - handleAlarmSwitchChange(isChecked) - } + private fun updateAlarmSwitchState(isAlarmOn: Boolean) { + binding.alarmSwitch.run { + setOnCheckedChangeListener(null) + isChecked = isAlarmOn + setOnCheckedChangeListener { _, isChecked -> + handleAlarmSwitchChange(isChecked) + } + } + }그리고 setupObservers에서는 다음과 같이 호출:
updateAlarmSwitchState(it.isAlarmOn)
77-93
: 알림 처리 로직의 구조적 개선이 필요합니다.현재 구현은 기능적으로는 문제가 없으나, 다음과 같은 개선사항을 고려해보시면 좋겠습니다:
- 시간 포맷팅 로직을 별도의 유틸리티 클래스로 분리
- 권한 처리 로직을 더 견고하게 구현
다음과 같은 구조적 개선을 제안드립니다:
- DateTimeUtils 클래스 생성:
object DateTimeUtils { private val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm") fun getCurrentFormattedDateTime(): String { return LocalDateTime.now().format(formatter) } }
- 권한 처리를 위한 확장 함수:
fun Context.checkAndRequestNotificationPermission( onGranted: () -> Unit, onDenied: () -> Unit ) { when { checkNotificationPermission(this) -> onGranted() shouldShowRequestPermissionRationale() -> showNotificationPermissionDialog() else -> onDenied() } }
289-291
: Snackbar 표시 방식을 개선하면 좋겠습니다.현재 구현은 기본적인 Snackbar를 사용하고 있습니다. 사용자 경험을 향상시키기 위해 다음과 같은 개선을 고려해보세요.
private fun showSnackbar(message: String) { Snackbar.make(binding.root, message, Snackbar.LENGTH_SHORT) .setAction("확인") { /* dismiss */ } .setActionTextColor(ContextCompat.getColor(this, R.color.primary)) .show() }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (2)
app/src/main/java/com/eatssu/android/ui/mypage/MyPageActivity.kt
(4 hunks)app/src/main/java/com/eatssu/android/util/NotificationReceiver.kt
(1 hunks)
🔇 Additional comments (3)
app/src/main/java/com/eatssu/android/util/NotificationReceiver.kt (2)
10-10
: 새로운 import 구문이 적절히 추가되었습니다.
주말 체크 기능 구현을 위한 필수적인 import 구문들이 잘 추가되었습니다.
Also applies to: 14-15
19-20
: API 레벨 호환성 검증이 필요합니다.
LocalDateTime을 사용하기 위해 API 레벨 26(Android O) 이상이 필요합니다. 낮은 API 레벨에서의 대체 구현이 필요할 수 있습니다.
다음 스크립트로 최소 지원 API 레벨을 확인해보세요:
app/src/main/java/com/eatssu/android/ui/mypage/MyPageActivity.kt (1)
30-30
: 필요한 import 문이 적절히 추가되었습니다!
Snackbar와 시간 포맷팅을 위한 import 문이 잘 추가되었습니다.
Also applies to: 34-35
* Production to develop (#228) * release 1.1.15 * Release/2.0.0 (#209) * [Refactor/#165] 문의하기 리팩토링 (#189) * refactor: inquire * add: todo * [Chore] migrate build.gradle.kts & lib.version.toml (#194) * chore: migrate build.gradle.kts & lib.version.toml * chore: toml use kebab-case * [Fix/#141] remote config ENUM값 있는걸로 교체 (#193) * fix: as Restaurant 타입 캐스팅 안되는 중 * fix: conflict * ds * chore: add gitignore ".DS_Store" * [Fix/#139] 리뷰 수정시 정보가 안넘어가던 현상 고치기 (#192) * release 1.1.15 * fix: 리뷰 수정하기 정보 안넘어가던거 성공 * fix: 맛 별점이 양 별점으로 잘못 들어가는거 수정 * fix: endpoint "s" * [chore/#195] change new color scheme (#196) * chore: change new color scheme * chore: naming * chore: naming lower * chore: missing "1" * chore: change missing color * [Redesign] change home design (#198) * redesign: calendar * redesign: item_cafeteria_section.xml * fix: top 여백을 fragment에서 item으로 변경 * feat: 장소 바인딩 * chore: indicator width min * add: ic good, bad * Revert "add: ic good, bad" This reverts commit f115b5f. * Revert "chore: indicator width min" This reverts commit afc2f16. * [Feat] 현재 시간에 따른 아침/점심/저녁 구분 (#201) * feat: TabLayout 시간대 설정 * feat: TabLayout 시간대 설정 * [Redesign/#203] my page 리디자인 적용 (#204) * redesign: 마이페이지 UI 변경 * redesign: 닉네임 변경 디자인 변경 * redesign: 닉네임 변경 디자인 변경 * delete: 안쓰는 drawable 삭제 * add: 정말 탈퇴하시겠습니까? 뷰 * feat: 닉네임 설정 로직 3개 완료 * feat: 정말 탈퇴하시겠습니까? * feat: 만든 사람들 * [Redesign/#200] review보기 리디자인 적용 (#202) * resign: 액션바 색상 변경 * add: 리사이클러뷰 메뉴 아이템 생성 * chore: 프로그래스 바 간격 맞추기 * chore: 맛&양 -> 굿&배드 * feat: 카드뷰로 사진 테두리 구현 * feat: 카드뷰로 사진 둥근테두리 구현 * feat: 간격 값 조정 * chore: gitignore 수정 * fix: 사진 있을 때만 imageView&CardView 보이게 * delete: ds_store * fix: missing files * chore: 바 추가 * chore: 리뷰 없을 때 간격 조정 * chore: 시간 대 조정 * [Redesign/#199] Info 리디자인 적용 + bottomSheet로 변경 (#205) * redesign: info bottomsheet로 변경 * feat: 식당 운영정보 실제 정보로 바인딩 * [Redesign] menus (#208) * refactor: material menus로 신고/수정/삭제 분리 * fix: 삭제 안되는거 수정 dialog import 수정, context를 this로 수정 * fix: 리뷰 삭제 후 리스트 재로딩 * [Redesign/#206] report 리디자인 적용 +문의하기 웹뷰처리 (#207) * add: shape, selector 파일 * delete: 문의하기 카카오채널로 변경 * refactor: 신고하기 flow로 리팩토링 * chore: 로고 변경 * chore: 메뉴이름 임시 바인딩 * chore: 굿배드 주석처리 * chore: 리뷰 작성 임시 처리 * fix: 리뷰 사진 안보이는거 해결 * fix: 메뉴이름 Text style * fix: 식당 사진 똑같게 들어가던거 수정 * chore: 체크박스 색상 변경 * fix: 텍스트 비정상적으로 작은거 해결 * chore: tablayout indicator 수정 * fix: NPE 뜨는 부분 주석처리 * fix: 사진이 없는데 자리 차지 하던거 고침 * fix: 아이콘 없대서 다시 되돌림 * [Release/2.1.0] (#223) * Update release_tag.yml * Update bug_report.md * Production to develop (#213) * release 1.1.15 * Release/2.0.0 (#209) * [Refactor/#165] 문의하기 리팩토링 (#189) * refactor: inquire * add: todo * [Chore] migrate build.gradle.kts & lib.version.toml (#194) * chore: migrate build.gradle.kts & lib.version.toml * chore: toml use kebab-case * [Fix/#141] remote config ENUM값 있는걸로 교체 (#193) * fix: as Restaurant 타입 캐스팅 안되는 중 * fix: conflict * ds * chore: add gitignore ".DS_Store" * [Fix/#139] 리뷰 수정시 정보가 안넘어가던 현상 고치기 (#192) * release 1.1.15 * fix: 리뷰 수정하기 정보 안넘어가던거 성공 * fix: 맛 별점이 양 별점으로 잘못 들어가는거 수정 * fix: endpoint "s" * [chore/#195] change new color scheme (#196) * chore: change new color scheme * chore: naming * chore: naming lower * chore: missing "1" * chore: change missing color * [Redesign] change home design (#198) * redesign: calendar * redesign: item_cafeteria_section.xml * fix: top 여백을 fragment에서 item으로 변경 * feat: 장소 바인딩 * chore: indicator width min * add: ic good, bad * Revert "add: ic good, bad" This reverts commit f115b5f. * Revert "chore: indicator width min" This reverts commit afc2f16. * [Feat] 현재 시간에 따른 아침/점심/저녁 구분 (#201) * feat: TabLayout 시간대 설정 * feat: TabLayout 시간대 설정 * [Redesign/#203] my page 리디자인 적용 (#204) * redesign: 마이페이지 UI 변경 * redesign: 닉네임 변경 디자인 변경 * redesign: 닉네임 변경 디자인 변경 * delete: 안쓰는 drawable 삭제 * add: 정말 탈퇴하시겠습니까? 뷰 * feat: 닉네임 설정 로직 3개 완료 * feat: 정말 탈퇴하시겠습니까? * feat: 만든 사람들 * [Redesign/#200] review보기 리디자인 적용 (#202) * resign: 액션바 색상 변경 * add: 리사이클러뷰 메뉴 아이템 생성 * chore: 프로그래스 바 간격 맞추기 * chore: 맛&양 -> 굿&배드 * feat: 카드뷰로 사진 테두리 구현 * feat: 카드뷰로 사진 둥근테두리 구현 * feat: 간격 값 조정 * chore: gitignore 수정 * fix: 사진 있을 때만 imageView&CardView 보이게 * delete: ds_store * fix: missing files * chore: 바 추가 * chore: 리뷰 없을 때 간격 조정 * chore: 시간 대 조정 * [Redesign/#199] Info 리디자인 적용 + bottomSheet로 변경 (#205) * redesign: info bottomsheet로 변경 * feat: 식당 운영정보 실제 정보로 바인딩 * [Redesign] menus (#208) * refactor: material menus로 신고/수정/삭제 분리 * fix: 삭제 안되는거 수정 dialog import 수정, context를 this로 수정 * fix: 리뷰 삭제 후 리스트 재로딩 * [Redesign/#206] report 리디자인 적용 +문의하기 웹뷰처리 (#207) * add: shape, selector 파일 * delete: 문의하기 카카오채널로 변경 * refactor: 신고하기 flow로 리팩토링 * chore: 로고 변경 * chore: 메뉴이름 임시 바인딩 * chore: 굿배드 주석처리 * chore: 리뷰 작성 임시 처리 * fix: 리뷰 사진 안보이는거 해결 * fix: 메뉴이름 Text style * fix: 식당 사진 똑같게 들어가던거 수정 * chore: 체크박스 색상 변경 * fix: 텍스트 비정상적으로 작은거 해결 * chore: tablayout indicator 수정 * fix: NPE 뜨는 부분 주석처리 * fix: 사진이 없는데 자리 차지 하던거 고침 * fix: 아이콘 없대서 다시 되돌림 * Create qa_apk (#218) * Rename qa_apk to qa_apk.yml * feat: colored on today was not selected (#219) * Update README.md * Update README.md * [Feat] Notification (#216) * feat: test notify 성공 * add: notify 작업 파일 스테이징 * feat: workManager로 구현 * chore: modify workManager * modify: change workManager to AlarmManager it working on api 28, but not working on api 33 * chore: notify on 11 am * feat: save notification statue in datastore * modify: change mypage design * chore: modify layout * chore: modify code * chore: modify code * delete: work manager * chore: change alarm logo file to vector * chore: move code loading app version * chore: change padding * chore: separate setting alarm code at UI * chore: at 11 * [Redesign/login] 로그인 화면 리디자인 적용 (#222) * chore: delete firebase version * chore: delete default splash (android 12) * chore: set new splash * redesign: login activity * chore: delete unused logo files * chore: dark mode * version 2.1.0 * release/2.1.1 (#227) * Update release_tag.yml * Update bug_report.md * Production to develop (#213) * release 1.1.15 * Release/2.0.0 (#209) * [Refactor/#165] 문의하기 리팩토링 (#189) * refactor: inquire * add: todo * [Chore] migrate build.gradle.kts & lib.version.toml (#194) * chore: migrate build.gradle.kts & lib.version.toml * chore: toml use kebab-case * [Fix/#141] remote config ENUM값 있는걸로 교체 (#193) * fix: as Restaurant 타입 캐스팅 안되는 중 * fix: conflict * ds * chore: add gitignore ".DS_Store" * [Fix/#139] 리뷰 수정시 정보가 안넘어가던 현상 고치기 (#192) * release 1.1.15 * fix: 리뷰 수정하기 정보 안넘어가던거 성공 * fix: 맛 별점이 양 별점으로 잘못 들어가는거 수정 * fix: endpoint "s" * [chore/#195] change new color scheme (#196) * chore: change new color scheme * chore: naming * chore: naming lower * chore: missing "1" * chore: change missing color * [Redesign] change home design (#198) * redesign: calendar * redesign: item_cafeteria_section.xml * fix: top 여백을 fragment에서 item으로 변경 * feat: 장소 바인딩 * chore: indicator width min * add: ic good, bad * Revert "add: ic good, bad" This reverts commit f115b5f. * Revert "chore: indicator width min" This reverts commit afc2f16. * [Feat] 현재 시간에 따른 아침/점심/저녁 구분 (#201) * feat: TabLayout 시간대 설정 * feat: TabLayout 시간대 설정 * [Redesign/#203] my page 리디자인 적용 (#204) * redesign: 마이페이지 UI 변경 * redesign: 닉네임 변경 디자인 변경 * redesign: 닉네임 변경 디자인 변경 * delete: 안쓰는 drawable 삭제 * add: 정말 탈퇴하시겠습니까? 뷰 * feat: 닉네임 설정 로직 3개 완료 * feat: 정말 탈퇴하시겠습니까? * feat: 만든 사람들 * [Redesign/#200] review보기 리디자인 적용 (#202) * resign: 액션바 색상 변경 * add: 리사이클러뷰 메뉴 아이템 생성 * chore: 프로그래스 바 간격 맞추기 * chore: 맛&양 -> 굿&배드 * feat: 카드뷰로 사진 테두리 구현 * feat: 카드뷰로 사진 둥근테두리 구현 * feat: 간격 값 조정 * chore: gitignore 수정 * fix: 사진 있을 때만 imageView&CardView 보이게 * delete: ds_store * fix: missing files * chore: 바 추가 * chore: 리뷰 없을 때 간격 조정 * chore: 시간 대 조정 * [Redesign/#199] Info 리디자인 적용 + bottomSheet로 변경 (#205) * redesign: info bottomsheet로 변경 * feat: 식당 운영정보 실제 정보로 바인딩 * [Redesign] menus (#208) * refactor: material menus로 신고/수정/삭제 분리 * fix: 삭제 안되는거 수정 dialog import 수정, context를 this로 수정 * fix: 리뷰 삭제 후 리스트 재로딩 * [Redesign/#206] report 리디자인 적용 +문의하기 웹뷰처리 (#207) * add: shape, selector 파일 * delete: 문의하기 카카오채널로 변경 * refactor: 신고하기 flow로 리팩토링 * chore: 로고 변경 * chore: 메뉴이름 임시 바인딩 * chore: 굿배드 주석처리 * chore: 리뷰 작성 임시 처리 * fix: 리뷰 사진 안보이는거 해결 * fix: 메뉴이름 Text style * fix: 식당 사진 똑같게 들어가던거 수정 * chore: 체크박스 색상 변경 * fix: 텍스트 비정상적으로 작은거 해결 * chore: tablayout indicator 수정 * fix: NPE 뜨는 부분 주석처리 * fix: 사진이 없는데 자리 차지 하던거 고침 * fix: 아이콘 없대서 다시 되돌림 * Create qa_apk (#218) * Rename qa_apk to qa_apk.yml * feat: colored on today was not selected (#219) * Update README.md * Update README.md * [Feat] Notification (#216) * feat: test notify 성공 * add: notify 작업 파일 스테이징 * feat: workManager로 구현 * chore: modify workManager * modify: change workManager to AlarmManager it working on api 28, but not working on api 33 * chore: notify on 11 am * feat: save notification statue in datastore * modify: change mypage design * chore: modify layout * chore: modify code * chore: modify code * delete: work manager * chore: change alarm logo file to vector * chore: move code loading app version * chore: change padding * chore: separate setting alarm code at UI * chore: at 11 * [Redesign/login] 로그인 화면 리디자인 적용 (#222) * chore: delete firebase version * chore: delete default splash (android 12) * chore: set new splash * redesign: login activity * chore: delete unused logo files * chore: dark mode * [Refactor/remote config] 리모트 컨피그 관련 로직 수정 + info 버튼 터치 영역 확대 (#224) * chore: change small size logo file * delete: infoviewmodelfactory 제거 * chore: modify default config * chore: modify real location data * chore: more larger touch area(cafetria info btn) * [Refactor/#167] Hilt를 통해 ApplicationContext 주입하기 (#226) * add: appContext to di * chore: clean code * release/2.1.1 * Update README.md * Update README.md * Update README.md * Update README.md * Refactor/package (#230) * chore: change package name * clean * Revert "Refactor/package (#230)" (#231) This reverts commit 734620d. * [Fix/toast] 스낵바로 변경 (#234) * fix: fix toast error and change snack bar * chore: formated * feat: onReceive at day, not weekend. on api 26+ * release: 2.1.2
Summary
토스트 -> 스낵바로 변경
Summary by CodeRabbit
새로운 기능
버그 수정
문서화