gitextract_l136effu/ ├── .gitignore ├── .idea/ │ ├── .gitignore │ ├── .name │ ├── AndroidProjectSystem.xml │ ├── codeStyles/ │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── compiler.xml │ ├── copilot.data.migration.agent.xml │ ├── copilot.data.migration.ask2agent.xml │ ├── copilot.data.migration.edit.xml │ ├── deploymentTargetSelector.xml │ ├── gradle.xml │ ├── inspectionProfiles/ │ │ └── Project_Default.xml │ ├── kotlinc.xml │ ├── migrations.xml │ ├── misc.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── README.md ├── app/ │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── pineapple/ │ │ └── app/ │ │ └── ExampleInstrumentedTest.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── pineapple/ │ │ │ └── app/ │ │ │ ├── MainActivity.kt │ │ │ ├── PineappleApp.kt │ │ │ ├── consts/ │ │ │ │ ├── MMKVKey.kt │ │ │ │ ├── NavDestinationKey.kt │ │ │ │ ├── OnboardingLoginType.kt │ │ │ │ ├── PageDestinationKey.kt │ │ │ │ ├── PostFilterSort.kt │ │ │ │ └── PostFilterTime.kt │ │ │ ├── di/ │ │ │ │ ├── DatabaseModule.kt │ │ │ │ ├── MMKVModule.kt │ │ │ │ └── NetworkModule.kt │ │ │ ├── network/ │ │ │ │ ├── api/ │ │ │ │ │ ├── RedditApi.kt │ │ │ │ │ └── RedditTokenApi.kt │ │ │ │ ├── caching/ │ │ │ │ │ ├── AppDatabase.kt │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── CommentDao.kt │ │ │ │ │ │ ├── PostDao.kt │ │ │ │ │ │ ├── RemoteKeyDao.kt │ │ │ │ │ │ ├── SearchRemoteKeyDao.kt │ │ │ │ │ │ ├── SearchResultDao.kt │ │ │ │ │ │ ├── SubredditDao.kt │ │ │ │ │ │ └── UserDao.kt │ │ │ │ │ └── entity/ │ │ │ │ │ ├── CommentEntity.kt │ │ │ │ │ ├── PostEntity.kt │ │ │ │ │ ├── RemoteKeyEntity.kt │ │ │ │ │ ├── SearchRemoteKeyEntity.kt │ │ │ │ │ ├── SearchResultEntity.kt │ │ │ │ │ ├── SubredditEntity.kt │ │ │ │ │ └── UserEntity.kt │ │ │ │ ├── interceptor/ │ │ │ │ │ ├── AuthInterceptor.kt │ │ │ │ │ └── TokenUserAgentInterceptor.kt │ │ │ │ ├── model/ │ │ │ │ │ ├── auth/ │ │ │ │ │ │ └── AuthResponse.kt │ │ │ │ │ ├── cache/ │ │ │ │ │ │ ├── CommentWithUser.kt │ │ │ │ │ │ └── PostwithUser.kt │ │ │ │ │ └── reddit/ │ │ │ │ │ ├── AboutAccount.kt │ │ │ │ │ ├── AllAwarding.kt │ │ │ │ │ ├── CommentData.kt │ │ │ │ │ ├── CommentListing.kt │ │ │ │ │ ├── CondensedUserAbout.kt │ │ │ │ │ ├── FlairRichItem.kt │ │ │ │ │ ├── Gildings.kt │ │ │ │ │ ├── Image.kt │ │ │ │ │ ├── Listing.kt │ │ │ │ │ ├── ListingBase.kt │ │ │ │ │ ├── ListingItem.kt │ │ │ │ │ ├── PostData.kt │ │ │ │ │ ├── PostItem.kt │ │ │ │ │ ├── PostListing.kt │ │ │ │ │ ├── Preview.kt │ │ │ │ │ ├── ResizedIcon.kt │ │ │ │ │ ├── SecureMedia.kt │ │ │ │ │ ├── SubredditData.kt │ │ │ │ │ ├── SubredditInfo.kt │ │ │ │ │ ├── SubredditItem.kt │ │ │ │ │ ├── UserAbout.kt │ │ │ │ │ └── UserSubredditData.kt │ │ │ │ ├── paging/ │ │ │ │ │ ├── CommentsRemoteMediator.kt │ │ │ │ │ ├── PagingRepository.kt │ │ │ │ │ ├── PostsRemoteMediator.kt │ │ │ │ │ └── SearchRemoteMediator.kt │ │ │ │ ├── repository/ │ │ │ │ │ ├── RedditAuthRepository.kt │ │ │ │ │ └── RedditRepository.kt │ │ │ │ └── serialization/ │ │ │ │ └── RedditRepliesAdapter.kt │ │ │ ├── ui/ │ │ │ │ ├── components/ │ │ │ │ │ ├── ButtonComponents.kt │ │ │ │ │ ├── CardComponents.kt │ │ │ │ │ ├── ListComponents.kt │ │ │ │ │ └── MediaComponents.kt │ │ │ │ ├── modal/ │ │ │ │ │ ├── CommentDetailSheet.kt │ │ │ │ │ ├── CommentRepliesSheet.kt │ │ │ │ │ ├── PostOptionSheet.kt │ │ │ │ │ └── SortPostSheet.kt │ │ │ │ ├── state/ │ │ │ │ │ └── AuthViewState.kt │ │ │ │ ├── theme/ │ │ │ │ │ ├── Shape.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ ├── view/ │ │ │ │ │ ├── AccountPage.kt │ │ │ │ │ ├── BrowsePage.kt │ │ │ │ │ ├── ChatPage.kt │ │ │ │ │ ├── CommunityView.kt │ │ │ │ │ ├── HomeView.kt │ │ │ │ │ ├── KeyProviderView.kt │ │ │ │ │ ├── PostView.kt │ │ │ │ │ ├── SearchPage.kt │ │ │ │ │ ├── UserView.kt │ │ │ │ │ └── WelcomeView.kt │ │ │ │ └── viewmodel/ │ │ │ │ ├── BrowseViewModel.kt │ │ │ │ ├── HomeViewModel.kt │ │ │ │ ├── KeyProviderViewModel.kt │ │ │ │ ├── PostViewModel.kt │ │ │ │ └── SearchViewModel.kt │ │ │ └── utilities/ │ │ │ ├── NumberUtilities.kt │ │ │ └── TypeUtilities.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── async_image_placeholder.xml │ │ │ ├── generic_avatar.xml │ │ │ ├── generic_community.xml │ │ │ ├── ic_angry.xml │ │ │ ├── ic_arrow_up.xml │ │ │ ├── ic_back.xml │ │ │ ├── ic_bookmark.xml │ │ │ ├── ic_bookmark_filled.xml │ │ │ ├── ic_browse.xml │ │ │ ├── ic_calendar_day.xml │ │ │ ├── ic_calendar_month.xml │ │ │ ├── ic_check.xml │ │ │ ├── ic_close.xml │ │ │ ├── ic_community.xml │ │ │ ├── ic_copy.xml │ │ │ ├── ic_downvote.xml │ │ │ ├── ic_filter.xml │ │ │ ├── ic_fire.xml │ │ │ ├── ic_flag.xml │ │ │ ├── ic_forum.xml │ │ │ ├── ic_forward.xml │ │ │ ├── ic_help.xml │ │ │ ├── ic_history.xml │ │ │ ├── ic_hourglass.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_launcher_monochrome.xml │ │ │ ├── ic_menu.xml │ │ │ ├── ic_more_vert.xml │ │ │ ├── ic_open_external.xml │ │ │ ├── ic_person.xml │ │ │ ├── ic_pineapple_logo.xml │ │ │ ├── ic_plus.xml │ │ │ ├── ic_reddit.xml │ │ │ ├── ic_search.xml │ │ │ ├── ic_settings.xml │ │ │ ├── ic_share.xml │ │ │ ├── ic_shine.xml │ │ │ ├── ic_trending.xml │ │ │ ├── ic_upvote.xml │ │ │ └── ic_week.xml │ │ ├── drawable-night/ │ │ │ └── async_image_placeholder.xml │ │ ├── drawable-night-v34/ │ │ │ ├── async_image_placeholder.xml │ │ │ ├── generic_avatar.xml │ │ │ └── generic_community.xml │ │ ├── drawable-v34/ │ │ │ ├── async_image_placeholder.xml │ │ │ ├── generic_avatar.xml │ │ │ └── generic_community.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── xml/ │ │ ├── backup_rules.xml │ │ └── data_extraction_rules.xml │ └── test/ │ └── java/ │ └── com/ │ └── pineapple/ │ └── app/ │ └── ExampleUnitTest.kt ├── build.gradle.kts ├── gradle/ │ ├── libs.versions.toml │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat └── settings.gradle.kts