Skip to content

Conversation

@kez-lab
Copy link
Member

@kez-lab kez-lab commented Aug 3, 2025

Summary by CodeRabbit

  • Removed Features

    • Eliminated all login and authentication functionality, including Kakao login integration and related screens.
    • Removed point management features, including point earning, usage, display, and related UI components.
    • Deleted onboarding sign-up and token handling logic.
    • Navigation to login and point screens is no longer available.
    • User profile and my page screens no longer display point information.
  • UI/UX Changes

    • Login and point-related screens, dialogs, buttons, and strings have been removed.
    • Challenge and my page screens updated to exclude point and login elements.
    • Simplified onboarding and challenge flows.
  • Dependency and Build Changes

    • Removed dependencies and modules related to login, point, and Kakao SDK.
    • Updated project settings and build scripts to exclude related modules and libraries.
  • Bug Fixes

    • Improved permission checks for usage stats.
  • Documentation

    • Updated string resources and layout files to reflect removed features.

End-users will no longer see login, sign-up, or point-related features in the app.

@kez-lab kez-lab self-assigned this Aug 3, 2025
@kez-lab kez-lab requested a review from a team as a code owner August 3, 2025 06:09
@kez-lab kez-lab added the ✂️delete 불필요한 코드 삭제 label Aug 3, 2025
@coderabbitai
Copy link

coderabbitai bot commented Aug 3, 2025

Walkthrough

This change set removes all code, dependencies, modules, and features related to login (especially Kakao login) and point management from the project. It deletes associated domain, data, and network layers, Gradle configurations, UI components, navigation, and related resources. Remaining code is refactored to eliminate references to these features, simplifying onboarding, main, and mypage flows.

Changes

Cohort / File(s) Change Summary
Login & Point Domain/Data Modules Removal
domain/login/*, domain/point/*, data/login/*, data/point/*
Entire domain and data modules for login and point features deleted, including models, repositories, mappers, and build scripts.
Network Layer Cleanup (Login/Point)
core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/authenticator/AuthenticatorUtil.kt, core/network/src/main/java/com/hmh/hamyeonham/core/network/login/*, core/network/src/main/java/com/hmh/hamyeonham/core/network/point/*, core/network/src/main/java/com/hmh/hamyeonham/core/network/di/AuthModule.kt, core/network/src/main/java/com/hmh/hamyeonham/core/network/di/PointModule.kt, core/network/src/main/java/com/hmh/hamyeonham/core/network/di/NetModule.kt
Removed all network service interfaces, models, Dagger modules, and utility classes related to login and point. Refactored network modules to remove dependencies and interceptors for these features.
Gradle & Build Config Cleanup
settings.gradle.kts, gradle/libs.versions.toml, app/build.gradle.kts, core/network/build.gradle.kts, core/viewmodel/main/build.gradle.kts, feature/challenge/build.gradle.kts, feature/login/build.gradle.kts, feature/mypage/build.gradle.kts, feature/onboarding/build.gradle.kts, data/login/build.gradle.kts, data/point/build.gradle.kts
Removed references to login and point modules, Kakao SDK, and related dependencies from project and module build scripts and settings.
AndroidManifest & ProGuard Updates
app/src/main/AndroidManifest.xml, feature/login/src/main/AndroidManifest.xml, feature/challenge/src/main/AndroidManifest.xml, app/proguard-rules.pro, data/login/src/main/AndroidManifest.xml, data/point/src/main/AndroidManifest.xml, domain/login/src/main/AndroidManifest.xml, domain/point/src/main/AndroidManifest.xml
Removed activity declarations for login, point, and Kakao SDK; deleted empty manifests; removed ProGuard rules for Kakao SDK.
UI & Resource Pruning (Login/Point)
feature/login/src/main/java/com/hmh/hamyeonham/feature/login/*, feature/login/src/main/res/layout/activity_login.xml, feature/login/src/main/res/values/strings.xml, feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/*, feature/challenge/src/main/res/layout/activity_point.xml, feature/challenge/src/main/res/layout/fragment_challenge.xml, feature/main/src/main/res/values/strings.xml, feature/mypage/src/main/res/layout/fragment_my_page.xml, feature/mypage/src/main/res/values/strings.xml
Deleted all login and point-related activities, adapters, viewmodels, layouts, and string resources. Updated layouts and strings to remove point displays and login UI.
Navigation & ViewModel Refactoring
core/common/src/main/java/com/hmh/hamyeonham/common/navigation/NavigationProvider.kt, app/src/main/java/com/hmh/hamyeonham/navigation/DefaultNavigationProvider.kt, app/src/main/java/com/hmh/hamyeonham/StartActivity.kt, feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/ChallengeFragment.kt, core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainViewModel.kt, core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainEffect.kt, feature/main/src/main/java/com/hmh/hamyeonham/feature/main/MainActivity.kt
Removed navigation intents and flows for login/point; refactored ViewModels to drop point and login logic; simplified effects and UI reactions.
User Info & MyPage Adjustments
domain/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/model/UserInfo.kt, data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/mapper/MypageMapper.kt, data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/repository/DefaultUserInfoRepository.kt, feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/MyPageFragment.kt, feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/viewmodel/MyPageViewModel.kt
Removed point property from user info model and mapping; updated mypage fragment and viewmodel to remove point display and logic; refactored effects and flows.
Onboarding Flow Simplification
feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/OnBoardingActivity.kt, feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/viewmodel/OnBoardingViewModel.kt
Removed access token handling and sign-up logic from onboarding; simplified event tracking and state.
Database & Permission Updates
core/database/src/main/java/com/hmh/hamyeonham/core/database/HMHRoomDatabase.kt, core/database/src/main/java/com/hmh/hamyeonham/core/database/di/DatabaseModule.kt, core/common/src/main/java/com/hmh/hamyeonham/common/permission/PermissionActivity.kt, core/common/src/main/java/com/hmh/hamyeonham/common/permission/PermissionExt.kt
Added new migration for user_auth and user_profile tables; updated permission checks and removed unused methods.
Miscellaneous Cleanup
core/designsystem/src/main/res/values/themes.xml, app/src/main/res/layout/activity_sample.xml, .github/workflows/develop_PR_builder.yml, .github/workflows/release.yml, build-logic/convention/src/main/kotlin/com/hmh/hamyeonham/plugin/CommonConfigs.kt
Minor theme, animation, and workflow updates; removed Kakao API key handling from config and workflows.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant App
  participant MainActivity
  participant OnBoardingActivity

  User->>App: Launches app
  App->>MainActivity: Shows main UI (no login/point)
  User->>OnBoardingActivity: (if onboarding needed)
  OnBoardingActivity->>App: Tracks onboarding events
  Note over App,MainActivity: All login/point flows and UI removed
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~90+ minutes

Poem

A rabbit hopped through code so wide,
Sweeping login and points aside.
Kakao keys and tokens gone,
Simpler flows now carry on.
UI and models, all made light—
The garden’s clean, the path is bright!
🐇✨

Note

⚡️ Unit Test Generation is now available in beta!

Learn more here, or try it out under "Finishing Touches" below.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/remove_kakao_login

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@kez-lab
Copy link
Member Author

kez-lab commented Aug 3, 2025

coderabbit 리뷰만 받고 target branch를 remove_server_point 로 바꿀 예정

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🧹 Nitpick comments (2)
app/src/main/res/layout/activity_sample.xml (1)

36-36: Consider if animation speed change is necessary for this PR.

The splash logo animation speed increase from 1 to 1.5 seems unrelated to the core objective of removing Kakao login functionality. This change might be better suited for a separate UI improvement PR.

app/src/main/java/com/hmh/hamyeonham/StartActivity.kt (1)

28-28: Consider renaming method for clarity.

The method name navigateToLogin() is misleading since it now navigates to MainActivity. Consider renaming to navigateToMain() for better code readability.

-            if (it.animatedFraction == 1.0f) {
-                navigateToLogin()
-            }
+            if (it.animatedFraction == 1.0f) {
+                navigateToMain()
+            }
-    private fun navigateToLogin() {
+    private fun navigateToMain() {
         startActivity(Intent(this, MainActivity::class.java))
         finish()
     }

Also applies to: 33-36

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 45a2f4a and 20b60be.

📒 Files selected for processing (100)
  • .github/workflows/develop_PR_builder.yml (0 hunks)
  • .github/workflows/release.yml (0 hunks)
  • app/build.gradle.kts (0 hunks)
  • app/proguard-rules.pro (0 hunks)
  • app/src/main/AndroidManifest.xml (0 hunks)
  • app/src/main/java/com/hmh/hamyeonham/HMHApplication.kt (0 hunks)
  • app/src/main/java/com/hmh/hamyeonham/StartActivity.kt (2 hunks)
  • app/src/main/java/com/hmh/hamyeonham/navigation/DefaultNavigationProvider.kt (0 hunks)
  • app/src/main/res/layout/activity_sample.xml (1 hunks)
  • build-logic/convention/src/main/kotlin/com/hmh/hamyeonham/plugin/CommonConfigs.kt (0 hunks)
  • core/common/src/main/java/com/hmh/hamyeonham/common/navigation/NavigationProvider.kt (0 hunks)
  • core/common/src/main/java/com/hmh/hamyeonham/common/permission/PermissionActivity.kt (2 hunks)
  • core/common/src/main/java/com/hmh/hamyeonham/common/permission/PermissionExt.kt (2 hunks)
  • core/common/src/main/java/com/hmh/hamyeonham/common/qualifier/OAuth.kt (0 hunks)
  • core/database/src/main/java/com/hmh/hamyeonham/core/database/HMHRoomDatabase.kt (3 hunks)
  • core/database/src/main/java/com/hmh/hamyeonham/core/database/di/DatabaseModule.kt (2 hunks)
  • core/designsystem/src/main/res/values/themes.xml (2 hunks)
  • core/network/build.gradle.kts (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/authenticator/AuthenticatorUtil.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/authenticator/HMHAuthenticator.kt (2 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/datastore/network/DefaultUserPreference.kt (2 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/datastore/network/UserPreference.kt (1 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/interceptor/AuthInterceptor.kt (1 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/interceptor/HeaderInterceptor.kt (1 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/AuthModule.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/DataStoreModule.kt (2 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/NetModule.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/PointModule.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/login/AuthService.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/login/model/LoginRequest.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/login/model/LoginResponse.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/PointService.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/ChallengeDateRequest.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointRequest.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointResponse.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/PointListResponse.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsablePointResponse.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsePointResponse.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/signup/model/SignUpRequest.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/signup/model/SignUpResponse.kt (0 hunks)
  • core/viewmodel/main/build.gradle.kts (0 hunks)
  • core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainEffect.kt (0 hunks)
  • core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainViewModel.kt (1 hunks)
  • data/login/.gitignore (0 hunks)
  • data/login/build.gradle.kts (0 hunks)
  • data/login/src/main/AndroidManifest.xml (0 hunks)
  • data/login/src/main/java/com/hmh/hamyeonham/login/DefaultAuthRepository.kt (0 hunks)
  • data/login/src/main/java/com/hmh/hamyeonham/login/di/AuthModule.kt (0 hunks)
  • data/login/src/main/java/com/hmh/hamyeonham/login/mapper/LoginMapper.kt (0 hunks)
  • data/point/.gitignore (0 hunks)
  • data/point/build.gradle.kts (0 hunks)
  • data/point/src/main/AndroidManifest.xml (0 hunks)
  • data/point/src/main/java/com/hmh/hamyeonham/data/point/PointMapper.kt (0 hunks)
  • data/point/src/main/java/com/hmh/hamyeonham/data/point/di/PointBinder.kt (0 hunks)
  • data/point/src/main/java/com/hmh/hamyeonham/data/point/repository/DefaultPointRepository.kt (0 hunks)
  • data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/mapper/MypageMapper.kt (1 hunks)
  • data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/repository/DefaultUserInfoRepository.kt (1 hunks)
  • domain/login/.gitignore (0 hunks)
  • domain/login/build.gradle.kts (0 hunks)
  • domain/login/src/main/AndroidManifest.xml (0 hunks)
  • domain/login/src/main/java/com/hmh/hamyeonham/login/model/Login.kt (0 hunks)
  • domain/login/src/main/java/com/hmh/hamyeonham/login/model/SignRequestDomain.kt (0 hunks)
  • domain/login/src/main/java/com/hmh/hamyeonham/login/model/SignUpUser.kt (0 hunks)
  • domain/login/src/main/java/com/hmh/hamyeonham/login/repository/AuthRepository.kt (0 hunks)
  • domain/point/.gitignore (0 hunks)
  • domain/point/build.gradle.kts (0 hunks)
  • domain/point/src/main/AndroidManifest.xml (0 hunks)
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/EarnPoint.kt (0 hunks)
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/PointInfo.kt (0 hunks)
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsablePoint.kt (0 hunks)
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsePoint.kt (0 hunks)
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/repository/PointRepository.kt (0 hunks)
  • domain/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/model/UserInfo.kt (0 hunks)
  • feature/challenge/build.gradle.kts (0 hunks)
  • feature/challenge/src/main/AndroidManifest.xml (0 hunks)
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/ChallengeFragment.kt (1 hunks)
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointActivity.kt (0 hunks)
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointAdapter.kt (0 hunks)
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointViewModel.kt (0 hunks)
  • feature/challenge/src/main/res/layout/activity_point.xml (0 hunks)
  • feature/challenge/src/main/res/layout/fragment_challenge.xml (0 hunks)
  • feature/login/build.gradle.kts (0 hunks)
  • feature/login/src/main/AndroidManifest.xml (0 hunks)
  • feature/login/src/main/java/com/hmh/hamyeonham/feature/login/LoginActivity.kt (0 hunks)
  • feature/login/src/main/java/com/hmh/hamyeonham/feature/login/LoginViewModel.kt (0 hunks)
  • feature/login/src/main/java/com/hmh/hamyeonham/feature/login/LoginViewPagerAdapter.kt (0 hunks)
  • feature/login/src/main/res/layout/activity_login.xml (0 hunks)
  • feature/login/src/main/res/values/strings.xml (0 hunks)
  • feature/main/src/main/java/com/hmh/hamyeonham/feature/main/MainActivity.kt (1 hunks)
  • feature/main/src/main/res/values/strings.xml (0 hunks)
  • feature/mypage/build.gradle.kts (0 hunks)
  • feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/MyPageFragment.kt (3 hunks)
  • feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/viewmodel/MyPageViewModel.kt (1 hunks)
  • feature/mypage/src/main/res/layout/fragment_my_page.xml (2 hunks)
  • feature/mypage/src/main/res/values/strings.xml (1 hunks)
  • feature/onboarding/build.gradle.kts (0 hunks)
  • feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/OnBoardingActivity.kt (1 hunks)
  • feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/viewmodel/OnBoardingViewModel.kt (2 hunks)
  • gradle/libs.versions.toml (0 hunks)
  • settings.gradle.kts (0 hunks)
💤 Files with no reviewable changes (76)
  • core/viewmodel/main/build.gradle.kts
  • domain/login/.gitignore
  • feature/challenge/build.gradle.kts
  • feature/onboarding/build.gradle.kts
  • data/login/.gitignore
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/EarnPoint.kt
  • core/common/src/main/java/com/hmh/hamyeonham/common/qualifier/OAuth.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/signup/model/SignUpResponse.kt
  • core/network/build.gradle.kts
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsablePoint.kt
  • domain/point/.gitignore
  • domain/login/src/main/AndroidManifest.xml
  • app/proguard-rules.pro
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/ChallengeDateRequest.kt
  • data/login/src/main/AndroidManifest.xml
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/AuthModule.kt
  • domain/point/src/main/AndroidManifest.xml
  • domain/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/model/UserInfo.kt
  • feature/login/build.gradle.kts
  • feature/mypage/build.gradle.kts
  • domain/login/build.gradle.kts
  • feature/challenge/src/main/AndroidManifest.xml
  • data/point/.gitignore
  • domain/login/src/main/java/com/hmh/hamyeonham/login/model/Login.kt
  • core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainEffect.kt
  • feature/login/src/main/res/layout/activity_login.xml
  • .github/workflows/release.yml
  • .github/workflows/develop_PR_builder.yml
  • data/point/src/main/AndroidManifest.xml
  • feature/login/src/main/AndroidManifest.xml
  • feature/main/src/main/res/values/strings.xml
  • app/build.gradle.kts
  • data/point/build.gradle.kts
  • domain/point/build.gradle.kts
  • build-logic/convention/src/main/kotlin/com/hmh/hamyeonham/plugin/CommonConfigs.kt
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsePoint.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointRequest.kt
  • settings.gradle.kts
  • app/src/main/java/com/hmh/hamyeonham/HMHApplication.kt
  • app/src/main/AndroidManifest.xml
  • app/src/main/java/com/hmh/hamyeonham/navigation/DefaultNavigationProvider.kt
  • data/login/build.gradle.kts
  • core/common/src/main/java/com/hmh/hamyeonham/common/navigation/NavigationProvider.kt
  • data/login/src/main/java/com/hmh/hamyeonham/login/mapper/LoginMapper.kt
  • feature/challenge/src/main/res/layout/fragment_challenge.xml
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsablePointResponse.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/PointModule.kt
  • gradle/libs.versions.toml
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/login/model/LoginRequest.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointResponse.kt
  • domain/login/src/main/java/com/hmh/hamyeonham/login/model/SignUpUser.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/authenticator/AuthenticatorUtil.kt
  • feature/login/src/main/java/com/hmh/hamyeonham/feature/login/LoginViewPagerAdapter.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/login/model/LoginResponse.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/login/AuthService.kt
  • feature/login/src/main/java/com/hmh/hamyeonham/feature/login/LoginActivity.kt
  • feature/challenge/src/main/res/layout/activity_point.xml
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsePointResponse.kt
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointActivity.kt
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointViewModel.kt
  • domain/login/src/main/java/com/hmh/hamyeonham/login/model/SignRequestDomain.kt
  • data/login/src/main/java/com/hmh/hamyeonham/login/DefaultAuthRepository.kt
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/PointInfo.kt
  • data/point/src/main/java/com/hmh/hamyeonham/data/point/PointMapper.kt
  • feature/login/src/main/res/values/strings.xml
  • feature/login/src/main/java/com/hmh/hamyeonham/feature/login/LoginViewModel.kt
  • data/point/src/main/java/com/hmh/hamyeonham/data/point/di/PointBinder.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/NetModule.kt
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/repository/PointRepository.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/PointListResponse.kt
  • domain/login/src/main/java/com/hmh/hamyeonham/login/repository/AuthRepository.kt
  • data/login/src/main/java/com/hmh/hamyeonham/login/di/AuthModule.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/signup/model/SignUpRequest.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/PointService.kt
  • data/point/src/main/java/com/hmh/hamyeonham/data/point/repository/DefaultPointRepository.kt
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointAdapter.kt
🧰 Additional context used
🧬 Code Graph Analysis (1)
feature/main/src/main/java/com/hmh/hamyeonham/feature/main/MainActivity.kt (1)
core/common/src/main/java/com/hmh/hamyeonham/common/context/ContextExt.kt (1)
  • getAppNameFromPackageName (91-96)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: PR Checker
🔇 Additional comments (30)
data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/repository/DefaultUserInfoRepository.kt (1)

4-4: Mapper Function Verified; Import Change Approved

The toUserInfo extension is defined in

  • data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/mapper/MypageMapper.kt (line 6)

No further changes are needed—your import update is correct and the code can be approved.

data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/mapper/MypageMapper.kt (2)

1-1: LGTM: Package relocation aligns with refactoring goals.

The package change from login.mapper to userinfo.mapper is consistent with moving mapper functionality from the login module to the userinfo module as part of the Kakao login removal.


6-10: ✅ UserInfo mapping verified

  • domain/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/model/UserInfo.kt contains only val name: String, with no point property.
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/mypage/model/UserInfoResponse.kt still defines both name and point.
  • The toUserInfo() extension correctly maps the single required field (name) and intentionally omits point to match the simplified domain model.

All required fields are accounted for and aligned with the refactoring.

feature/mypage/src/main/res/values/strings.xml (1)

27-34: LGTM! String resources properly updated for profile feature.

The addition of profile-related strings and removal of point-related strings aligns well with the Kakao login removal and point feature cleanup. The new strings provide comprehensive coverage for profile information display.

core/designsystem/src/main/res/values/themes.xml (2)

1-1: LGTM! Tools namespace properly added.

The addition of the tools namespace is necessary for the ignore annotation used below.


11-11: LGTM! Edge-to-edge enforcement opt-out supports UI stability.

Adding android:windowOptOutEdgeToEdgeEnforcement with proper API level handling helps maintain consistent window behavior after removing login UI components.

core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/datastore/network/UserPreference.kt (2)

3-3: LGTM! Interface renaming simplifies authentication preferences.

The rename from HMHNetworkPreference to UserPreference is clearer and aligns with the authentication consolidation effort.


7-7: userId type consistency verified across codebase

All occurrences of userId have been updated to Long with no remaining Int references.

• core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/datastore/network/UserPreference.kt – var userId: Long
• core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/datastore/network/DefaultUserPreference.kt – override var userId: Long (uses preferences.getLong)

feature/mypage/src/main/res/layout/fragment_my_page.xml (1)

77-77: LGTM! Layout constraints properly updated after point UI removal.

The constraint references have been correctly updated to anchor to tv_user_name instead of the removed point-related views, maintaining proper layout flow.

Also applies to: 98-98

core/network/src/main/java/com/hmh/hamyeonham/core/network/di/DataStoreModule.kt (1)

8-9: LGTM! Clean refactoring from HMHNetworkPreference to UserPreference.

The import statements and DI binding have been correctly updated to use the renamed preference classes. The functionality remains unchanged.

Also applies to: 74-74

core/database/src/main/java/com/hmh/hamyeonham/core/database/HMHRoomDatabase.kt (1)

33-33: Database version bump looks correct.

The version increment from 1 to 2 is appropriate for the schema changes being made.

core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/authenticator/HMHAuthenticator.kt (2)

4-4: LGTM! Consistent refactoring to UserPreference.

The import and constructor parameter have been correctly updated to use the renamed UserPreference interface.

Also applies to: 19-19


48-52: Consider the user experience when token refresh fails.

Token refresh failures now just return null instead of triggering logout. This means users will encounter authentication errors rather than being automatically logged out. Ensure this aligns with the intended user experience for the new authentication flow.

core/database/src/main/java/com/hmh/hamyeonham/core/database/di/DatabaseModule.kt (1)

21-29: LGTM! Proper implementation of database migration.

The builder pattern correctly adds the migration and follows Room database best practices for schema upgrades.

core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/interceptor/HeaderInterceptor.kt (1)

3-3: LGTM! Clean interface refactoring.

The change from HMHNetworkPreference to UserPreference maintains the same functionality while aligning with the broader network layer refactoring.

Also applies to: 10-10

core/common/src/main/java/com/hmh/hamyeonham/common/permission/PermissionExt.kt (1)

4-4: Excellent improvement in permission checking approach.

The refactoring from UsageStatsManager.queryUsageStats() to AppOpsManager direct permission checks is more reliable and performant. The implementation correctly handles API level differences and provides explicit permission status.

Also applies to: 42-65

core/common/src/main/java/com/hmh/hamyeonham/common/permission/PermissionActivity.kt (2)

13-13: Clean code improvement using Kotlin extensions.

The use of toUri() extension function instead of Uri.parse() is a nice improvement for readability and consistency with Kotlin conventions.

Also applies to: 120-120


72-72: No explicit imports required for extension functions

The functions hasUsageStatsPermission() and hasOverlayPermission() are declared in PermissionExt.kt under the same package (com.hmh.hamyeonham.common.permission) and are therefore visible in PermissionActivity.kt without any import. No action needed.

Likely an incorrect or invalid review comment.

app/src/main/java/com/hmh/hamyeonham/StartActivity.kt (1)

9-9: Navigation change aligns with login removal.

Correctly updated to navigate directly to MainActivity instead of LoginActivity, which aligns with the PR objective of removing Kakao login functionality.

Also applies to: 34-34

core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/datastore/network/DefaultUserPreference.kt (2)

9-11: Clean interface refactoring.

The class rename and interface change align with the broader network layer refactoring while maintaining the same functionality.


33-39: No userId Int references found—change to Long is safe.

  • Searched across the Kotlin codebase for any userId usages expecting an Int; none were found.
  • Both UserPreference interface and DefaultUserPreference implementation now consistently use Long.
  • No further updates are required for this change.
feature/main/src/main/java/com/hmh/hamyeonham/feature/main/MainActivity.kt (2)

48-54: LGTM! Clean removal of point-related effects.

The simplified effect handling now only manages network errors, which aligns with the removal of point features.


93-112: Good implementation of unlock package dialog.

The dialog properly uses the getAppNameFromPackageName extension to display user-friendly app names and maintains proper dialog lifecycle handling.

feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/MyPageFragment.kt (2)

72-97: Clean simplification of logout and withdrawal flows.

The direct method calls to logout() and withdrawal() reflect the simplified ViewModel implementation without authentication handling.


123-137: Good use of Android KTX extensions.

Using toUri() extension is cleaner and more idiomatic than Uri.parse().

feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/OnBoardingActivity.kt (1)

115-147: Good formatting improvements for JSON property creation.

The multi-line formatting makes the Amplitude tracking code more readable and maintainable.

feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/ChallengeFragment.kt (1)

177-183: Clean simplification of challenge creation flow.

The direct navigation to NewChallengeActivity without point dependencies simplifies the user flow appropriately.

feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/viewmodel/OnBoardingViewModel.kt (1)

65-65: Excellent simplification of OnBoardingViewModel.

The removal of all authentication dependencies and network logic results in a clean, focused ViewModel that only manages onboarding UI state.

Also applies to: 169-174

core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainViewModel.kt (1)

100-109: Clean removal of point-related logic

The simplified implementation correctly preserves the core functionality while removing point management. Error handling is appropriately maintained.

feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/viewmodel/MyPageViewModel.kt (1)

11-13: Good improvement to error handling

Adding error messages to the failure cases improves debuggability and user feedback.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🔭 Outside diff range comments (1)
core/common/src/main/java/com/hmh/hamyeonham/common/permission/PermissionExt.kt (1)

127-137: Consider aligning Fragment implementation with AppCompatActivity.

The Fragment.hasUsageStatsPermission() method still uses the old UsageStatsManager approach while the AppCompatActivity version was updated to use AppOpsManager. This creates inconsistency in permission checking behavior.

Consider updating the Fragment implementation to match:

 fun Fragment.hasUsageStatsPermission(): Boolean {
-    val usageStatsManager =
-        requireContext().getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager
-    val time = System.currentTimeMillis()
-    val stats = usageStatsManager.queryUsageStats(
-        UsageStatsManager.INTERVAL_DAILY,
-        time - 1000 * 60,
-        time,
-    )
-    return stats != null && stats.isNotEmpty()
+    val ops = requireContext().getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager
+    val mode = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+        ops.unsafeCheckOpNoThrow(
+            AppOpsManager.OPSTR_GET_USAGE_STATS,
+            android.os.Process.myUid(),
+            requireContext().packageName
+        )
+    } else {
+        ops.checkOpNoThrow(
+            AppOpsManager.OPSTR_GET_USAGE_STATS,
+            android.os.Process.myUid(),
+            requireContext().packageName
+        )
+    }
+
+    return when (mode) {
+        AppOpsManager.MODE_ALLOWED -> true
+        AppOpsManager.MODE_DEFAULT,
+        AppOpsManager.MODE_IGNORED,
+        AppOpsManager.MODE_ERRORED -> false
+        else -> false
+    }
 }
🧹 Nitpick comments (2)
app/src/main/java/com/hmh/hamyeonham/StartActivity.kt (1)

9-9: Update method name to reflect actual behavior.

The method navigateToLogin() now navigates to MainActivity, which creates a naming inconsistency that could confuse future developers.

-    private fun navigateToLogin() {
+    private fun navigateToMain() {

And update the call site:

-                navigateToLogin()
+                navigateToMain()

Also applies to: 34-34

feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/MyPageFragment.kt (1)

111-115: Remove commented code instead of leaving it.

The commented-out navigation to login activity should be removed entirely rather than left as comments, as it's no longer needed after removing login functionality.

-//        val intent = navigationProvider.toLogin()
-//        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
-//        startActivity(intent)
-//        activity?.finish()
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 45a2f4a and 20b60be.

📒 Files selected for processing (100)
  • .github/workflows/develop_PR_builder.yml (0 hunks)
  • .github/workflows/release.yml (0 hunks)
  • app/build.gradle.kts (0 hunks)
  • app/proguard-rules.pro (0 hunks)
  • app/src/main/AndroidManifest.xml (0 hunks)
  • app/src/main/java/com/hmh/hamyeonham/HMHApplication.kt (0 hunks)
  • app/src/main/java/com/hmh/hamyeonham/StartActivity.kt (2 hunks)
  • app/src/main/java/com/hmh/hamyeonham/navigation/DefaultNavigationProvider.kt (0 hunks)
  • app/src/main/res/layout/activity_sample.xml (1 hunks)
  • build-logic/convention/src/main/kotlin/com/hmh/hamyeonham/plugin/CommonConfigs.kt (0 hunks)
  • core/common/src/main/java/com/hmh/hamyeonham/common/navigation/NavigationProvider.kt (0 hunks)
  • core/common/src/main/java/com/hmh/hamyeonham/common/permission/PermissionActivity.kt (2 hunks)
  • core/common/src/main/java/com/hmh/hamyeonham/common/permission/PermissionExt.kt (2 hunks)
  • core/common/src/main/java/com/hmh/hamyeonham/common/qualifier/OAuth.kt (0 hunks)
  • core/database/src/main/java/com/hmh/hamyeonham/core/database/HMHRoomDatabase.kt (3 hunks)
  • core/database/src/main/java/com/hmh/hamyeonham/core/database/di/DatabaseModule.kt (2 hunks)
  • core/designsystem/src/main/res/values/themes.xml (2 hunks)
  • core/network/build.gradle.kts (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/authenticator/AuthenticatorUtil.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/authenticator/HMHAuthenticator.kt (2 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/datastore/network/DefaultUserPreference.kt (2 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/datastore/network/UserPreference.kt (1 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/interceptor/AuthInterceptor.kt (1 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/interceptor/HeaderInterceptor.kt (1 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/AuthModule.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/DataStoreModule.kt (2 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/NetModule.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/PointModule.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/login/AuthService.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/login/model/LoginRequest.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/login/model/LoginResponse.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/PointService.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/ChallengeDateRequest.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointRequest.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointResponse.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/PointListResponse.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsablePointResponse.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsePointResponse.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/signup/model/SignUpRequest.kt (0 hunks)
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/signup/model/SignUpResponse.kt (0 hunks)
  • core/viewmodel/main/build.gradle.kts (0 hunks)
  • core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainEffect.kt (0 hunks)
  • core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainViewModel.kt (1 hunks)
  • data/login/.gitignore (0 hunks)
  • data/login/build.gradle.kts (0 hunks)
  • data/login/src/main/AndroidManifest.xml (0 hunks)
  • data/login/src/main/java/com/hmh/hamyeonham/login/DefaultAuthRepository.kt (0 hunks)
  • data/login/src/main/java/com/hmh/hamyeonham/login/di/AuthModule.kt (0 hunks)
  • data/login/src/main/java/com/hmh/hamyeonham/login/mapper/LoginMapper.kt (0 hunks)
  • data/point/.gitignore (0 hunks)
  • data/point/build.gradle.kts (0 hunks)
  • data/point/src/main/AndroidManifest.xml (0 hunks)
  • data/point/src/main/java/com/hmh/hamyeonham/data/point/PointMapper.kt (0 hunks)
  • data/point/src/main/java/com/hmh/hamyeonham/data/point/di/PointBinder.kt (0 hunks)
  • data/point/src/main/java/com/hmh/hamyeonham/data/point/repository/DefaultPointRepository.kt (0 hunks)
  • data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/mapper/MypageMapper.kt (1 hunks)
  • data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/repository/DefaultUserInfoRepository.kt (1 hunks)
  • domain/login/.gitignore (0 hunks)
  • domain/login/build.gradle.kts (0 hunks)
  • domain/login/src/main/AndroidManifest.xml (0 hunks)
  • domain/login/src/main/java/com/hmh/hamyeonham/login/model/Login.kt (0 hunks)
  • domain/login/src/main/java/com/hmh/hamyeonham/login/model/SignRequestDomain.kt (0 hunks)
  • domain/login/src/main/java/com/hmh/hamyeonham/login/model/SignUpUser.kt (0 hunks)
  • domain/login/src/main/java/com/hmh/hamyeonham/login/repository/AuthRepository.kt (0 hunks)
  • domain/point/.gitignore (0 hunks)
  • domain/point/build.gradle.kts (0 hunks)
  • domain/point/src/main/AndroidManifest.xml (0 hunks)
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/EarnPoint.kt (0 hunks)
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/PointInfo.kt (0 hunks)
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsablePoint.kt (0 hunks)
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsePoint.kt (0 hunks)
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/repository/PointRepository.kt (0 hunks)
  • domain/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/model/UserInfo.kt (0 hunks)
  • feature/challenge/build.gradle.kts (0 hunks)
  • feature/challenge/src/main/AndroidManifest.xml (0 hunks)
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/ChallengeFragment.kt (1 hunks)
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointActivity.kt (0 hunks)
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointAdapter.kt (0 hunks)
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointViewModel.kt (0 hunks)
  • feature/challenge/src/main/res/layout/activity_point.xml (0 hunks)
  • feature/challenge/src/main/res/layout/fragment_challenge.xml (0 hunks)
  • feature/login/build.gradle.kts (0 hunks)
  • feature/login/src/main/AndroidManifest.xml (0 hunks)
  • feature/login/src/main/java/com/hmh/hamyeonham/feature/login/LoginActivity.kt (0 hunks)
  • feature/login/src/main/java/com/hmh/hamyeonham/feature/login/LoginViewModel.kt (0 hunks)
  • feature/login/src/main/java/com/hmh/hamyeonham/feature/login/LoginViewPagerAdapter.kt (0 hunks)
  • feature/login/src/main/res/layout/activity_login.xml (0 hunks)
  • feature/login/src/main/res/values/strings.xml (0 hunks)
  • feature/main/src/main/java/com/hmh/hamyeonham/feature/main/MainActivity.kt (1 hunks)
  • feature/main/src/main/res/values/strings.xml (0 hunks)
  • feature/mypage/build.gradle.kts (0 hunks)
  • feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/MyPageFragment.kt (3 hunks)
  • feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/viewmodel/MyPageViewModel.kt (1 hunks)
  • feature/mypage/src/main/res/layout/fragment_my_page.xml (2 hunks)
  • feature/mypage/src/main/res/values/strings.xml (1 hunks)
  • feature/onboarding/build.gradle.kts (0 hunks)
  • feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/OnBoardingActivity.kt (1 hunks)
  • feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/viewmodel/OnBoardingViewModel.kt (2 hunks)
  • gradle/libs.versions.toml (0 hunks)
  • settings.gradle.kts (0 hunks)
💤 Files with no reviewable changes (76)
  • feature/onboarding/build.gradle.kts
  • feature/mypage/build.gradle.kts
  • feature/challenge/build.gradle.kts
  • data/point/src/main/AndroidManifest.xml
  • core/viewmodel/main/build.gradle.kts
  • core/network/build.gradle.kts
  • data/login/.gitignore
  • data/point/.gitignore
  • domain/login/.gitignore
  • feature/challenge/src/main/AndroidManifest.xml
  • feature/login/build.gradle.kts
  • feature/challenge/src/main/res/layout/fragment_challenge.xml
  • core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainEffect.kt
  • build-logic/convention/src/main/kotlin/com/hmh/hamyeonham/plugin/CommonConfigs.kt
  • domain/login/src/main/AndroidManifest.xml
  • domain/point/.gitignore
  • domain/point/src/main/AndroidManifest.xml
  • feature/login/src/main/AndroidManifest.xml
  • app/build.gradle.kts
  • data/login/src/main/AndroidManifest.xml
  • .github/workflows/release.yml
  • settings.gradle.kts
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsablePoint.kt
  • .github/workflows/develop_PR_builder.yml
  • domain/point/build.gradle.kts
  • domain/login/build.gradle.kts
  • domain/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/model/UserInfo.kt
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsePoint.kt
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/EarnPoint.kt
  • app/src/main/java/com/hmh/hamyeonham/HMHApplication.kt
  • data/point/build.gradle.kts
  • feature/login/src/main/res/layout/activity_login.xml
  • core/common/src/main/java/com/hmh/hamyeonham/common/navigation/NavigationProvider.kt
  • data/login/build.gradle.kts
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/login/model/LoginResponse.kt
  • core/common/src/main/java/com/hmh/hamyeonham/common/qualifier/OAuth.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsePointResponse.kt
  • app/src/main/java/com/hmh/hamyeonham/navigation/DefaultNavigationProvider.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsablePointResponse.kt
  • domain/login/src/main/java/com/hmh/hamyeonham/login/model/Login.kt
  • data/login/src/main/java/com/hmh/hamyeonham/login/mapper/LoginMapper.kt
  • app/src/main/AndroidManifest.xml
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointResponse.kt
  • data/point/src/main/java/com/hmh/hamyeonham/data/point/di/PointBinder.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/login/model/LoginRequest.kt
  • domain/login/src/main/java/com/hmh/hamyeonham/login/model/SignUpUser.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/authenticator/AuthenticatorUtil.kt
  • data/login/src/main/java/com/hmh/hamyeonham/login/di/AuthModule.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/PointListResponse.kt
  • domain/login/src/main/java/com/hmh/hamyeonham/login/model/SignRequestDomain.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/PointModule.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/AuthModule.kt
  • feature/login/src/main/java/com/hmh/hamyeonham/feature/login/LoginActivity.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/signup/model/SignUpResponse.kt
  • feature/main/src/main/res/values/strings.xml
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointActivity.kt
  • feature/login/src/main/res/values/strings.xml
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/repository/PointRepository.kt
  • feature/challenge/src/main/res/layout/activity_point.xml
  • app/proguard-rules.pro
  • data/point/src/main/java/com/hmh/hamyeonham/data/point/PointMapper.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/ChallengeDateRequest.kt
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointAdapter.kt
  • feature/login/src/main/java/com/hmh/hamyeonham/feature/login/LoginViewPagerAdapter.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/PointService.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/di/NetModule.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/login/AuthService.kt
  • domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/PointInfo.kt
  • gradle/libs.versions.toml
  • data/login/src/main/java/com/hmh/hamyeonham/login/DefaultAuthRepository.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointRequest.kt
  • data/point/src/main/java/com/hmh/hamyeonham/data/point/repository/DefaultPointRepository.kt
  • domain/login/src/main/java/com/hmh/hamyeonham/login/repository/AuthRepository.kt
  • feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointViewModel.kt
  • feature/login/src/main/java/com/hmh/hamyeonham/feature/login/LoginViewModel.kt
  • core/network/src/main/java/com/hmh/hamyeonham/core/network/signup/model/SignUpRequest.kt
🧰 Additional context used
🧬 Code Graph Analysis (1)
feature/main/src/main/java/com/hmh/hamyeonham/feature/main/MainActivity.kt (1)
core/common/src/main/java/com/hmh/hamyeonham/common/context/ContextExt.kt (1)
  • getAppNameFromPackageName (91-96)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: PR Checker
🔇 Additional comments (28)
core/designsystem/src/main/res/values/themes.xml (1)

11-11: Confirm compile-/targetSdk ≥ 34 before relying on android:windowOptOutEdgeToEdgeEnforcement.

The attribute was introduced in API 34 (Android 14).
If your compileSdkVersion/targetSdkVersion are still ≤ 33 the build will fail at aapt-compile time. Double-check build.gradle and CI configs have already been bumped; otherwise guard the item with:

<item
    name="android:windowOptOutEdgeToEdgeEnforcement"
    tools:targetApi="34"
    tools:ignore="NewApi">true</item>

This keeps older compile targets building while silencing lint.

data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/repository/DefaultUserInfoRepository.kt (1)

4-4: LGTM! Clean import refactoring.

The import update correctly reflects the movement of the toUserInfo mapper from the login module to the userinfo module as part of the broader cleanup.

data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/mapper/MypageMapper.kt (2)

1-1: LGTM! Package relocation aligns with module restructuring.

The package change from com.hmh.hamyeonham.login.mapper to com.hmh.hamyeonham.userinfo.mapper correctly reflects the movement of this mapper from the login module to the userinfo module.


6-10: Domain model UserInfo no longer contains point—all good.

I’ve verified that domain/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/model/UserInfo.kt only defines val name and has no point property. You can safely ignore the original concern.

feature/mypage/src/main/res/layout/fragment_my_page.xml (1)

77-77: LGTM! Constraint updates properly handle removal of point section.

The constraint updates correctly anchor the journey elements (tv_journey and v_journey) to tv_user_name after removing the point-related UI elements. This maintains proper layout structure and spacing.

Also applies to: 98-98

core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainViewModel.kt (1)

100-109: LGTM! Function simplified correctly after point feature removal.

The updateDailyChallengeFailed function is now appropriately streamlined to focus solely on unlocking functionality. The removal of point-related logic aligns with the broader removal of the point management feature while preserving proper error handling.

app/src/main/res/layout/activity_sample.xml (1)

36-36: LGTM! Animation speed increase aligns with simplified onboarding.

Increasing the Lottie animation speed from 1 to 1.5 is appropriate given the removal of login flows. The faster animation provides a more streamlined user experience without login-related delays.

core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/datastore/network/UserPreference.kt (1)

3-3: All references updated successfully
The interface rename to UserPreference and the userId type change from Int to Long have been applied consistently—no remaining references to HMHNetworkPreference or userId: Int were found. Approved.

feature/main/src/main/java/com/hmh/hamyeonham/feature/main/MainActivity.kt (1)

97-100: LGTM! Improved formatting enhances readability.

The dialog creation formatting is much more readable with proper indentation. The functional logic remains unchanged while improving code maintainability.

core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/interceptor/HeaderInterceptor.kt (1)

3-3: LGTM! Clean interface refactoring.

The replacement of HMHNetworkPreference with UserPreference is a clean refactoring that maintains the same functionality while aligning with the broader authentication simplification.

Also applies to: 10-10

app/src/main/java/com/hmh/hamyeonham/StartActivity.kt (1)

26-30: LGTM! Simplified splash screen flow.

The direct navigation to MainActivity after animation completion aligns well with the removal of login functionality.

core/database/src/main/java/com/hmh/hamyeonham/core/database/di/DatabaseModule.kt (1)

22-29: Migration Verified: MIGRATION_1_2 Properly Defined

MIGRATION_1_2 is correctly declared in HMHRoomDatabase.kt (from version 1→2) with override fun migrate(…) executing the necessary CREATE TABLE IF NOT EXISTS statements for user_auth and user_profile. The DatabaseModule properly adds this migration to the Room builder—LGTM.

core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/authenticator/HMHAuthenticator.kt (2)

4-4: LGTM! Clean interface refactoring.

The replacement of HMHNetworkPreference with UserPreference aligns with the broader authentication simplification.

Also applies to: 19-19


48-52: Consider handling token refresh failures.

With the removal of authenticatorUtil.handleLogout(), failed token refresh scenarios may leave the app in an inconsistent state. Consider what should happen when token refresh fails - should the user be redirected somewhere or should tokens be cleared?

The current implementation returns null on refresh failure, which typically means the original request fails. Verify this aligns with the expected user experience when tokens become invalid.

core/network/src/main/java/com/hmh/hamyeonham/core/network/di/DataStoreModule.kt (1)

8-9: LGTM! Clean refactoring of preference classes.

The import statements and binding method have been correctly updated to use the new UserPreference interface and DefaultUserPreference implementation, maintaining consistency with the removal of network-specific authentication preferences.

Also applies to: 74-74

core/database/src/main/java/com/hmh/hamyeonham/core/database/HMHRoomDatabase.kt (1)

54-89: Migration MIGRATION_1_2 is correctly registered

Verified that in DatabaseModule.kt the call

builder.addMigrations(HMHRoomDatabase.MIGRATION_1_2)

is present, so the schema migration from version 1 to 2 will be applied as intended. No further changes needed.

core/common/src/main/java/com/hmh/hamyeonham/common/permission/PermissionActivity.kt (1)

3-3: LGTM! Clean refactoring with proper imports and URI handling.

The addition of necessary imports and use of the toUri() extension function improves code readability. The consolidation of permission checking logic into extension functions is a good architectural improvement.

Also applies to: 7-7, 13-13, 120-120

core/common/src/main/java/com/hmh/hamyeonham/common/permission/PermissionExt.kt (1)

41-65: Excellent improvement to permission checking logic.

The refactored hasUsageStatsPermission() method using AppOpsManager is much more reliable than the previous approach of querying usage stats data. The API level handling and comprehensive mode checking are well implemented.

feature/mypage/src/main/res/values/strings.xml (1)

27-34: LGTM! Well-structured profile strings.

The new profile-related strings are well-organized and provide clear labeling for user profile information. The addition of login status indicators and guest user guidance enhances the user experience in the simplified mypage flow.

core/network/src/main/java/com/hmh/hamyeonham/core/network/auth/datastore/network/DefaultUserPreference.kt (2)

9-11: All references to old preference names and userId: Int removed – no further action needed

A full-text search across the codebase returned zero occurrences of:

  • DefaultHMHNetworkPreference or HMHNetworkPreference
  • Any userId: Int declarations

No leftover references remain. Changes are consistent and complete. Approving.


33-37: Verified userId is consistently Long
All userId declarations and usages have been audited:

  • No remaining userId: Int properties or DAO methods expecting an Int
  • No getInt/putInt calls for "user_id" in preferences
  • Database schema uses INTEGER (SQLite’s 64-bit type), which aligns with Kotlin’s Long

No further changes required.

feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/MyPageFragment.kt (3)

80-80: LGTM! Method name simplification.

The changes from handleLogout() to logout() and handleWithdrawal() to withdrawal() simplify the method names appropriately.

Also applies to: 93-93


100-106: Good improvement with dynamic error messages.

The changes from observing userEffect to effect and using dynamic effect.message instead of fixed string resources provide better user feedback.


31-31: Good use of toUri() extension function.

Using the toUri() extension function is cleaner than manual URI parsing. The import and usage are correct.

Also applies to: 126-126, 134-134

feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/OnBoardingActivity.kt (1)

115-145: LGTM! Improved code formatting and readability.

The reformatting of JSON object creation and AmplitudeUtils.trackEventWithProperties() calls improves readability without changing functionality. The multiline formatting makes the code easier to understand and maintain.

feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/ChallengeFragment.kt (1)

177-182: LGTM! Simplified challenge creation flow.

The simplification of the challenge creation button to directly launch NewChallengeActivity without point-related checks improves the user flow by removing unnecessary complexity.

feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/viewmodel/OnBoardingViewModel.kt (2)

65-65: LGTM! Simplified constructor removes authentication dependencies.

The removal of AuthRepository and HMHNetworkPreference dependencies aligns with the removal of login functionality and simplifies the ViewModel.


169-174: Verify the impact of simplified sign-up flow.

The signUp() method now only emits success and tracks the event without performing any network operations. Ensure this aligns with the intended user experience and that no user data needs to be persisted during onboarding.

Please confirm that the simplified onboarding flow (without user account creation) meets the product requirements and doesn't break the user journey.

@kez-lab kez-lab changed the base branch from develop to feat/remove_server_point August 3, 2025 06:14
Copy link
Member

@kangyuri1114 kangyuri1114 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@kez-lab kez-lab merged commit 57fcd19 into feat/remove_server_point Aug 5, 2025
2 checks passed
@kez-lab kez-lab deleted the feat/remove_kakao_login branch August 5, 2025 08:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✂️delete 불필요한 코드 삭제

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants