Medium: Code quality issues — dead code, test fragility, deprecated APIs #29

Closed
opened 2026-06-10 15:16:01 +00:00 by Mark · 0 comments
Owner

Findings

  • H6: StoryRepositoryParsingTest duplicates parseChapter() logic instead of testing the real method. Test implementations will diverge.
  • M1: ViewBinding enabled in build.gradle but every Activity uses raw findViewById() — null-safety risk + unnecessary build overhead.
  • M2: startActivityForResult/onActivityResult deprecated — should use Activity Result API.
  • M3: Dead @Entity classes in Models.kt (Story, Chapter, UserProgress, SavedArtwork) not registered in AppDatabase. SavedArtwork shares table name with SavedArtworkEntity — would fail if both registered.
  • M7: MatchingActivity btn_new_game has no click handler — dead UI.
  • M10: INTERNET permission declared in AndroidManifest but no Kotlin code makes network calls — misleading for offline-first app.

Affected files

  • android/app/src/main/java/com/storyplay/activitybook/ui/MatchingActivity.kt
  • android/app/src/main/java/com/storyplay/activitybook/data/model/Models.kt
  • android/app/src/test/java/com/storyplay/activitybook/data/StoryRepositoryParsingTest.kt
  • android/app/build.gradle
  • android/app/src/main/AndroidManifest.xml

Impact

Test fragility, dead UI, deprecated patterns, unused build features.

## Findings - **H6**: `StoryRepositoryParsingTest` duplicates `parseChapter()` logic instead of testing the real method. Test implementations will diverge. - **M1**: ViewBinding enabled in build.gradle but every Activity uses raw `findViewById()` — null-safety risk + unnecessary build overhead. - **M2**: `startActivityForResult`/`onActivityResult` deprecated — should use Activity Result API. - **M3**: Dead `@Entity` classes in Models.kt (`Story`, `Chapter`, `UserProgress`, `SavedArtwork`) not registered in AppDatabase. `SavedArtwork` shares table name with `SavedArtworkEntity` — would fail if both registered. - **M7**: MatchingActivity `btn_new_game` has no click handler — dead UI. - **M10**: `INTERNET` permission declared in AndroidManifest but no Kotlin code makes network calls — misleading for offline-first app. ## Affected files - `android/app/src/main/java/com/storyplay/activitybook/ui/MatchingActivity.kt` - `android/app/src/main/java/com/storyplay/activitybook/data/model/Models.kt` - `android/app/src/test/java/com/storyplay/activitybook/data/StoryRepositoryParsingTest.kt` - `android/app/build.gradle` - `android/app/src/main/AndroidManifest.xml` ## Impact Test fragility, dead UI, deprecated patterns, unused build features.
Sign in to join this conversation.
No description provided.