diff --git a/app.apk b/app.apk index 1f68086..3596f0c 100644 Binary files a/app.apk and b/app.apk differ diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 509e6a5..5ee951b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -20,8 +20,8 @@ android { applicationId = "com.example.shiftalarm" minSdk = 26 targetSdk = 35 - versionCode = 100 - versionName = "1.0.0" + versionCode = 101 + versionName = "1.0.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/example/shiftalarm/FragmentSettingsAlarm.kt b/app/src/main/java/com/example/shiftalarm/FragmentSettingsAlarm.kt index e0e8254..1449b4d 100644 --- a/app/src/main/java/com/example/shiftalarm/FragmentSettingsAlarm.kt +++ b/app/src/main/java/com/example/shiftalarm/FragmentSettingsAlarm.kt @@ -247,16 +247,31 @@ class FragmentSettingsAlarm : Fragment(), SharedPreferences.OnSharedPreferenceCh visibility = if (isCollapsed) View.GONE else View.VISIBLE } - // Click header to collapse/expand + // Click header to collapse/expand with smooth accordion animation headerView.setOnClickListener { - if (collapsedGroups.contains(category)) { + val willExpand = collapsedGroups.contains(category) + + // 1. Smooth accordion expand/collapse transition + val transition = android.transition.AutoTransition().apply { + duration = 250 + interpolator = android.view.animation.AccelerateDecelerateInterpolator() + } + android.transition.TransitionManager.beginDelayedTransition(container, transition) + + // 2. Smooth rotation between '+' (0 deg) and 'x' (45 deg) + val targetRotation = if (willExpand) 45f else 0f + ivExpand.animate() + .rotation(targetRotation) + .setDuration(250) + .setInterpolator(androidx.core.view.animation.PathInterpolatorCompat.create(0.22f, 1.0f, 0.36f, 1.0f)) + .start() + + if (willExpand) { collapsedGroups.remove(category) childrenContainer.visibility = View.VISIBLE - ivExpand.rotation = 45f } else { collapsedGroups.add(category) childrenContainer.visibility = View.GONE - ivExpand.rotation = 0f } } @@ -511,6 +526,13 @@ class FragmentSettingsAlarm : Fragment(), SharedPreferences.OnSharedPreferenceCh btn.setTextColor(if (isSelected) ContextCompat.getColor(requireContext(), R.color.white) else ContextCompat.getColor(requireContext(), R.color.text_secondary)) } } + updateRepeatUI() + repeatButtons.forEachIndexed { i, btn -> + btn.setOnClickListener { + selectedRepeat = repeatValues[i] + updateRepeatUI() + } + } // Pre-Alarm Buttons var selectedPreAlarm = 15 val preAlarmButtons = listOf( diff --git a/app/src/main/res/drawable/bg_chip_soft_overtime.xml b/app/src/main/res/drawable/bg_chip_soft_overtime.xml index fd61eca..98b2652 100755 --- a/app/src/main/res/drawable/bg_chip_soft_overtime.xml +++ b/app/src/main/res/drawable/bg_chip_soft_overtime.xml @@ -1,9 +1,9 @@ - + + android:color="#405856D6" /> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 90c4407..1acdaa7 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -269,7 +269,7 @@ android:textSize="10.5sp" android:textStyle="bold" android:gravity="center" - android:textColor="@color/shift_red" + android:textColor="#5856D6" android:background="@drawable/bg_chip_soft_overtime"/> diff --git a/scratch/release.py b/scratch/release.py index 8b5037c..442e880 100755 --- a/scratch/release.py +++ b/scratch/release.py @@ -6,32 +6,19 @@ import shutil token = "e3b515eaa0a6683c921ca3bf718e281ed30a6075" owner_repo = "sanjeok77/ShiftRing" -tag = "v1.0.0" -title = "v1.0.0 - ShiftRing 정식 첫 릴리즈" -body = """## 🚀 ShiftRing v1.0.0 정식 첫 릴리즈 +tag = "v1.0.1" +title = "v1.0.1 - 알람 반복 횟수 선택 버그 수정, 달력 상단 연장근무 인디고 컬러 개편, 알람 그룹 아코디언 & +/x 부드러운 회전 애니메이션 적용" +body = """## 🚀 ShiftRing v1.0.1 릴리즈 -현대자동차 / 다양한 교대근무자를 위한 스마트 교대근무 캘린더 & 맞춤 알람 솔루션 - -### 🌟 주요 기능 및 탑재 사항 -1. **One UI 8.5 라운드 카드 디자인 시스템**: - - 24dp 라운드 카드, 36dp 스퀘어클 Soft-tint 아이콘 시스템 - - 20dp 라운드 팝업창 및 12dp 알약 선택자 One UI 드롭다운(Spinner) 전면 통일 -2. **대한민국 법정 대체공휴일 100% 정밀 수식**: - - 대통령령 관공서 공휴일 개정안 정밀 적용 (현충일/신정 제외, 주요 공휴일 및 설날/추석 대체공휴일 연동) -3. **이달의 누적 연장근무 복합 정산**: - - 토요일 기본 특근(2h) + 주맞(4h) + 야맞(4h) + 교육(2h) 자동 누적 합산 -4. **알람 하이브리드 그룹화 & 순서 자동 정렬**: - - `주간(주) -> 석간(석) -> 야간(야) -> 주간 맞교대(주맞) -> 야간 맞교대(야맞) -> 기타` 고정 정렬 - - 그룹 마스터 On/Off 스위치 및 아코디언 접기/펼치기 - - 6개 근무 선택(주/석/야/주맞/야맞/기타), 알람 라벨 및 15분전 사전 알림 지원 -5. **삼성 캘린더 동일 수평 유체 슬라이드 모션 & 요약 칩 바**: - - 삼성 One UI 8.5 캘린더 동일 전체 폭 수평 슬라이드 애니메이션 (`PathInterpolator(0.22, 1, 0.36, 1)`) - - 실시간 요약 칩 바 (`주간 N일 | 석간 N일 | 야간 N일 | 연장 N시간`) - - 하루 메모 3줄 직관 표시 및 달력 5줄 고정 / 6줄 스크롤 최적화 - - 상단 알람 시간 단일행 간결 표시 (`오늘: 07:00 | 내일: 15:00`) -6. **배터리 최적화 4-Tier 다중 폴백 & One UI 업데이트 다이얼로그**: - - Samsung Device Care 연동 및 부드러운 프로그레스 애니메이션 -7. **Android 14/15 호환 및 정식 서명키(release.jks) 적용**""" +### 🌟 주요 변경 및 버그 수정 사항 +1. **알람 수정 다이얼로그 반복 횟수 선택 버그 수정**: + - 알람 수정 및 추가 화면에서 반복 횟수(3회 / 5회 / 계속) 선택이 즉시 반영되고 저장되도록 클릭 리스너 및 UI 갱신 로직 완벽 복구 +2. **달력 메인 상단 연장근무 표시 컬러 인디고(#5856D6) 개편**: + - 휴무/휴가 붉은색(`shift_red`)과 혼동되지 않도록 또렷하고 세련된 One UI 인디고(`bg_chip_soft_overtime.xml`) 칩 스타일로 변경 +3. **알람 그룹 접기/펼치기 아코디언 & 회전 애니메이션 적용**: + - 알람 그룹 헤더 터치 시 `AutoTransition` 기반 부드러운 아코디언 높이/투명도 애니메이션 적용 + - 접힘/열림 상태에 따라 `+` (0도) ↔ `x` (45도) 아이콘이 유체 감속 곡선(`PathInterpolator(0.22, 1, 0.36, 1)`)으로 매끄럽게 회전 전환되도록 구현 +4. **Android 14/15 호환 및 정식 서명키(release.jks) 적용**""" apk_path = "app/build/outputs/apk/release/app-release.apk" if not os.path.exists(apk_path): @@ -69,10 +56,10 @@ print("Updated app.apk at project root.") # Update version.json v_info = { - "versionCode": 100, - "versionName": "1.0.0", + "versionCode": 101, + "versionName": "1.0.1", "apkUrl": direct_url, - "changelog": "v1.0.0: ShiftRing 정식 첫 릴리즈 - One UI 8.5 디자인 시스템, 교대근무 캘린더, 맞춤 알람 및 법정 공휴일/연장근무 자동 계산", + "changelog": "v1.0.1: 알람 반복 횟수 선택 버그 수정, 달력 상단 연장근무 인디고 컬러 개편, 알람 그룹 아코디언 및 +/x 회전 애니메이션 적용", "forceUpdate": False } with open("version.json", "w", encoding="utf-8") as f: diff --git a/version.json b/version.json index 7b6e549..13b38ca 100644 --- a/version.json +++ b/version.json @@ -1,7 +1,7 @@ { - "versionCode": 100, - "versionName": "1.0.0", - "apkUrl": "https://git.webpluss.net/attachments/b1ec7eac-997c-4a33-bbb5-91a0f11ce9cf", - "changelog": "v1.0.0: ShiftRing 정식 첫 릴리즈 - One UI 8.5 디자인 시스템, 교대근무 캘린더, 맞춤 알람 및 법정 공휴일/연장근무 자동 계산", + "versionCode": 101, + "versionName": "1.0.1", + "apkUrl": "https://git.webpluss.net/attachments/36f93969-59ff-490d-b701-6d7f35382c28", + "changelog": "v1.0.1: 알람 반복 횟수 선택 버그 수정, 달력 상단 연장근무 인디고 컬러 개편, 알람 그룹 아코디언 및 +/x 회전 애니메이션 적용", "forceUpdate": false } \ No newline at end of file