Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: hyeeyoung/wishboard-android
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1.1.2
Choose a base ref
...
head repository: hyeeyoung/wishboard-android
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: dev
Choose a head ref
Loading
Showing with 5,511 additions and 4,280 deletions.
  1. +5 −2 .github/workflows/android_build.yml
  2. +61 −22 app/build.gradle
  3. +11 −13 app/src/main/AndroidManifest.xml
  4. +0 −22 app/src/main/java/com/hyeeyoung/wishboard/WishBoardApp.kt
  5. +0 −4 app/src/main/java/com/hyeeyoung/wishboard/data/datasources/GalleryPagingDataSource.kt
  6. +90 −0 app/src/main/java/com/hyeeyoung/wishboard/data/interceptor/AuthInterceptor.kt
  7. +108 −0 app/src/main/java/com/hyeeyoung/wishboard/data/local/WishBoardPreference.kt
  8. +7 −0 app/src/main/java/com/hyeeyoung/wishboard/data/model/auth/RequestAuth.kt
  9. +6 −0 app/src/main/java/com/hyeeyoung/wishboard/data/model/auth/ResponseAuth.kt
  10. +11 −0 app/src/main/java/com/hyeeyoung/wishboard/data/model/auth/ResponseRefresh.kt
  11. +5 −0 app/src/main/java/com/hyeeyoung/wishboard/data/model/auth/ResponseVerificationMail.kt
  12. +6 −0 app/src/main/java/com/hyeeyoung/wishboard/data/model/auth/Token.kt
  13. +2 −1 app/src/main/java/com/hyeeyoung/wishboard/data/model/base/BaseResponseData.kt
  14. +26 −3 app/src/main/java/com/hyeeyoung/wishboard/data/model/noti/NotiItem.kt
  15. +14 −0 app/src/main/java/com/hyeeyoung/wishboard/data/model/system/AppVersionDto.kt
  16. +15 −15 app/src/main/java/com/hyeeyoung/wishboard/data/model/wish/ItemDetail.kt
  17. +8 −8 app/src/main/java/com/hyeeyoung/wishboard/data/repositories/CartRepositoryImpl.kt
  18. +12 −19 app/src/main/java/com/hyeeyoung/wishboard/data/repositories/FolderRepositoryImpl.kt
  19. +8 −8 app/src/main/java/com/hyeeyoung/wishboard/data/repositories/NotiRepositoryImpl.kt
  20. +31 −0 app/src/main/java/com/hyeeyoung/wishboard/data/repositories/PhotoRepositoryImpl.kt
  21. +57 −54 app/src/main/java/com/hyeeyoung/wishboard/data/repositories/SignRepositoryImpl.kt
  22. +13 −0 app/src/main/java/com/hyeeyoung/wishboard/data/repositories/SystemRepositoryImpl.kt
  23. +29 −26 app/src/main/java/com/hyeeyoung/wishboard/data/repositories/UserRepositoryImpl.kt
  24. +21 −32 app/src/main/java/com/hyeeyoung/wishboard/data/repositories/WishRepositoryImpl.kt
  25. +0 −44 app/src/main/java/com/hyeeyoung/wishboard/data/services/AWSS3Service.kt
  26. +5 −9 app/src/main/java/com/hyeeyoung/wishboard/data/services/FireBaseMessagingService.kt
  27. +16 −10 app/src/main/java/com/hyeeyoung/wishboard/data/services/retrofit/AuthService.kt
  28. +1 −4 app/src/main/java/com/hyeeyoung/wishboard/data/services/retrofit/CartService.kt
  29. +5 −19 app/src/main/java/com/hyeeyoung/wishboard/data/services/retrofit/FolderService.kt
  30. +3 −10 app/src/main/java/com/hyeeyoung/wishboard/data/services/retrofit/NotiService.kt
  31. +14 −0 app/src/main/java/com/hyeeyoung/wishboard/data/services/retrofit/SystemService.kt
  32. +9 −16 app/src/main/java/com/hyeeyoung/wishboard/data/services/retrofit/UserService.kt
  33. +3 −10 app/src/main/java/com/hyeeyoung/wishboard/data/services/retrofit/WishItemService.kt
  34. +27 −0 app/src/main/java/com/hyeeyoung/wishboard/designsystem/component/ColoredImage.kt
  35. +2 −1 app/src/main/java/com/hyeeyoung/wishboard/{util/custom → designsystem/component}/CustomDecoration.kt
  36. +18 −10 app/src/main/java/com/hyeeyoung/wishboard/{util/custom → designsystem/component}/CustomSnackbar.kt
  37. +16 −0 app/src/main/java/com/hyeeyoung/wishboard/designsystem/component/WishboardDivider.kt
  38. +60 −0 app/src/main/java/com/hyeeyoung/wishboard/designsystem/component/WishboardSnackbar.kt
  39. +28 −0 app/src/main/java/com/hyeeyoung/wishboard/designsystem/theme/Color.kt
  40. +52 −0 app/src/main/java/com/hyeeyoung/wishboard/designsystem/theme/Theme.kt
  41. +134 −0 app/src/main/java/com/hyeeyoung/wishboard/designsystem/theme/Type.kt
  42. +56 −0 app/src/main/java/com/hyeeyoung/wishboard/di/NetworkModule.kt
  43. +7 −1 app/src/main/java/com/hyeeyoung/wishboard/{domain → }/di/RepositoryModule.kt
  44. +6 −1 app/src/main/java/com/hyeeyoung/wishboard/{domain → }/di/ServiceModule.kt
  45. +0 −21 app/src/main/java/com/hyeeyoung/wishboard/domain/di/RetrofitModule.kt
  46. +14 −0 app/src/main/java/com/hyeeyoung/wishboard/domain/model/NotiItem.kt
  47. +17 −0 app/src/main/java/com/hyeeyoung/wishboard/domain/model/NotiItemInfo.kt
  48. +1 −1 app/src/main/java/com/hyeeyoung/wishboard/domain/{entity → model}/WishItemDetail.kt
  49. +6 −0 app/src/main/java/com/hyeeyoung/wishboard/domain/model/system/AppVersionDto.kt
  50. +4 −4 app/src/main/java/com/hyeeyoung/wishboard/domain/repositories/CartRepository.kt
  51. +7 −13 app/src/main/java/com/hyeeyoung/wishboard/domain/repositories/FolderRepository.kt
  52. +4 −4 app/src/main/java/com/hyeeyoung/wishboard/domain/repositories/NotiRepository.kt
  53. +7 −0 app/src/main/java/com/hyeeyoung/wishboard/domain/repositories/PhotoRepository.kt
  54. +6 −3 app/src/main/java/com/hyeeyoung/wishboard/domain/repositories/SignRepository.kt
  55. +7 −0 app/src/main/java/com/hyeeyoung/wishboard/domain/repositories/SystemRepository.kt
  56. +9 −4 app/src/main/java/com/hyeeyoung/wishboard/domain/repositories/UserRepository.kt
  57. +9 −7 app/src/main/java/com/hyeeyoung/wishboard/domain/repositories/WishRepository.kt
  58. +30 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/base/screen/BaseBottomSheetDialogFragment.kt
  59. +40 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/base/screen/BaseDialogFragment.kt
  60. +38 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/base/screen/NetworkActivity.kt
  61. +26 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/base/screen/NetworkFragment.kt
  62. +77 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/calendar/component/CalendarHeader.kt
  63. +199 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/calendar/component/CalendarSchedule.kt
  64. +167 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/calendar/component/CalendarTable.kt
  65. +34 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/calendar/screen/CalendarActivity.kt
  66. +170 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/calendar/screen/CalendarScreen.kt
  67. +1 −2 ...main/java/com/hyeeyoung/wishboard/presentation/{noti/adapters → calendar/temp}/CalendarAdapter.kt
  68. +11 −17 ...main/java/com/hyeeyoung/wishboard/presentation/{noti/screens → calendar/temp}/CalendarFragment.kt
  69. +1 −1 app/src/main/java/com/hyeeyoung/wishboard/{util/custom → presentation/calendar/temp}/CalendarView.kt
  70. +2 −3 app/src/main/java/com/hyeeyoung/wishboard/{util/custom → presentation/calendar/temp}/DateItemView.kt
  71. +23 −22 .../java/com/hyeeyoung/wishboard/presentation/{noti/screens → calendar/temp}/NotiCalendarFragment.kt
  72. +74 −36 app/src/main/java/com/hyeeyoung/wishboard/presentation/cart/CartFragment.kt
  73. +23 −41 app/src/main/java/com/hyeeyoung/wishboard/presentation/cart/CartListAdapter.kt
  74. +39 −46 app/src/main/java/com/hyeeyoung/wishboard/presentation/cart/CartViewModel.kt
  75. +0 −2 app/src/main/java/com/hyeeyoung/wishboard/presentation/common/adapters/GalleryPagingAdapter.kt
  76. +12 −29 app/src/main/java/com/hyeeyoung/wishboard/presentation/common/screens/GalleryImageFragment.kt
  77. +39 −28 app/src/main/java/com/hyeeyoung/wishboard/presentation/common/screens/OneButtonDialogFragment.kt
  78. +41 −31 app/src/main/java/com/hyeeyoung/wishboard/presentation/common/screens/TwoButtonDialogFragment.kt
  79. +23 −32 app/src/main/java/com/hyeeyoung/wishboard/presentation/common/screens/WebViewActivity.kt
  80. +3 −13 app/src/main/java/com/hyeeyoung/wishboard/presentation/common/viewmodels/GalleryViewModel.kt
  81. +46 −75 app/src/main/java/com/hyeeyoung/wishboard/presentation/folder/FolderListAdapter.kt
  82. +57 −55 app/src/main/java/com/hyeeyoung/wishboard/presentation/folder/FolderViewModel.kt
  83. +8 −28 app/src/main/java/com/hyeeyoung/wishboard/presentation/folder/screens/FolderAddDialogFragment.kt
  84. +57 −37 app/src/main/java/com/hyeeyoung/wishboard/presentation/folder/screens/FolderDetailFragment.kt
  85. +79 −59 app/src/main/java/com/hyeeyoung/wishboard/presentation/folder/screens/FolderFragment.kt
  86. +25 −25 ...c/main/java/com/hyeeyoung/wishboard/presentation/folder/screens/FolderListBottomDialogFragment.kt
  87. +0 −54 app/src/main/java/com/hyeeyoung/wishboard/presentation/folder/screens/FolderListFragment.kt
  88. +0 −48 app/src/main/java/com/hyeeyoung/wishboard/presentation/folder/screens/FolderMoreDialogFragment.kt
  89. +64 −28 ...main/java/com/hyeeyoung/wishboard/presentation/folder/screens/FolderUploadBottomDialogFragment.kt
  90. +55 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/folder/screens/TwoOptionDialogFragment.kt
  91. +0 −5 ...rc/main/java/com/hyeeyoung/wishboard/presentation/folder/types/FolderMoreDialogButtonReplyType.kt
  92. +5 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/folder/types/TwoOptionDialogReplyType.kt
  93. +57 −38 app/src/main/java/com/hyeeyoung/wishboard/presentation/home/HomeFragment.kt
  94. +14 −37 app/src/main/java/com/hyeeyoung/wishboard/presentation/home/WishListAdapter.kt
  95. +42 −22 app/src/main/java/com/hyeeyoung/wishboard/presentation/home/WishListViewModel.kt
  96. +19 −10 app/src/main/java/com/hyeeyoung/wishboard/presentation/howtouse/HowToUseAdapter.kt
  97. +0 −30 ...src/main/java/com/hyeeyoung/wishboard/presentation/howtouse/screens/HowToFolderSettingFragment.kt
  98. +0 −30 app/src/main/java/com/hyeeyoung/wishboard/presentation/howtouse/screens/HowToLinkSharingFragment.kt
  99. +0 −30 app/src/main/java/com/hyeeyoung/wishboard/presentation/howtouse/screens/HowToNotiSettingFragment.kt
  100. +26 −10 app/src/main/java/com/hyeeyoung/wishboard/presentation/howtouse/screens/HowToUseActivity.kt
  101. +46 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/howtouse/screens/HowToUseFragment.kt
  102. +13 −31 app/src/main/java/com/hyeeyoung/wishboard/presentation/main/MainActivity.kt
  103. +2 −36 app/src/main/java/com/hyeeyoung/wishboard/presentation/main/MainViewModel.kt
  104. +111 −121 app/src/main/java/com/hyeeyoung/wishboard/presentation/my/MyViewModel.kt
  105. +6 −24 app/src/main/java/com/hyeeyoung/wishboard/presentation/my/screens/MyExitDialogFragment.kt
  106. +61 −54 app/src/main/java/com/hyeeyoung/wishboard/presentation/my/screens/MyFragment.kt
  107. +56 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/my/screens/MyPasswordChangeFragment.kt
  108. +33 −79 app/src/main/java/com/hyeeyoung/wishboard/presentation/my/screens/MyProfileEditFragment.kt
  109. +88 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/noti/NotiListAdapter.kt
  110. +30 −48 app/src/main/java/com/hyeeyoung/wishboard/presentation/noti/NotiViewModel.kt
  111. +0 −133 app/src/main/java/com/hyeeyoung/wishboard/presentation/noti/adapters/NotiListAdapter.kt
  112. +23 −26 app/src/main/java/com/hyeeyoung/wishboard/presentation/noti/screens/NotiFragment.kt
  113. +4 −7 ...rc/main/java/com/hyeeyoung/wishboard/presentation/noti/screens/NotiSettingBottomDialogFragment.kt
  114. +5 −17 app/src/main/java/com/hyeeyoung/wishboard/presentation/noti/screens/NotiSettingFragment.kt
  115. +7 −8 app/src/main/java/com/hyeeyoung/wishboard/presentation/noti/types/NotiType.kt
  116. +5 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/sign/SignType.kt
  117. +39 −17 app/src/main/java/com/hyeeyoung/wishboard/presentation/sign/SignViewModel.kt
  118. +2 −20 app/src/main/java/com/hyeeyoung/wishboard/presentation/sign/screens/SignActivity.kt
  119. +4 −13 app/src/main/java/com/hyeeyoung/wishboard/presentation/sign/screens/SignFragment.kt
  120. +12 −22 app/src/main/java/com/hyeeyoung/wishboard/presentation/sign/screens/SignInEmailFragment.kt
  121. +13 −22 app/src/main/java/com/hyeeyoung/wishboard/presentation/sign/screens/SignInFragment.kt
  122. +14 −15 app/src/main/java/com/hyeeyoung/wishboard/presentation/sign/screens/SignInVerificationFragment.kt
  123. +12 −16 app/src/main/java/com/hyeeyoung/wishboard/presentation/sign/screens/SignUpEmailFragment.kt
  124. +28 −29 app/src/main/java/com/hyeeyoung/wishboard/presentation/sign/screens/SignUpPasswordFragment.kt
  125. +88 −29 app/src/main/java/com/hyeeyoung/wishboard/presentation/splash/SplashActivity.kt
  126. +45 −0 app/src/main/java/com/hyeeyoung/wishboard/presentation/splash/SplashViewModel.kt
  127. +6 −19 ...n/java/com/hyeeyoung/wishboard/presentation/wishitem/screens/ShopLinkInputBottomDialogFragment.kt
  128. +53 −59 app/src/main/java/com/hyeeyoung/wishboard/presentation/wishitem/screens/WishBasicFragment.kt
  129. +36 −32 app/src/main/java/com/hyeeyoung/wishboard/presentation/wishitem/screens/WishItemDetailFragment.kt
  130. +43 −39 app/src/main/java/com/hyeeyoung/wishboard/presentation/wishitem/screens/WishLinkSharingActivity.kt
  131. +112 −135 ...in/java/com/hyeeyoung/wishboard/presentation/wishitem/viewmodels/WishItemRegistrationViewModel.kt
  132. +20 −12 app/src/main/java/com/hyeeyoung/wishboard/presentation/wishitem/viewmodels/WishItemViewModel.kt
  133. +17 −0 app/src/main/java/com/hyeeyoung/wishboard/util/BaseActivity.kt
  134. +30 −0 app/src/main/java/com/hyeeyoung/wishboard/util/BaseFragment.kt
  135. +32 −1 app/src/main/java/com/hyeeyoung/wishboard/util/BindingAdapters.kt
  136. +17 −0 app/src/main/java/com/hyeeyoung/wishboard/util/DateFormatUtil.kt
  137. +35 −0 app/src/main/java/com/hyeeyoung/wishboard/util/NetworkMonitor.kt
  138. +1 −1 app/src/main/java/com/hyeeyoung/wishboard/util/NumberPickerUtil.kt
  139. +0 −4 app/src/main/java/com/hyeeyoung/wishboard/util/ParsingUtil.kt
  140. +0 −49 app/src/main/java/com/hyeeyoung/wishboard/util/PreferenceUtil.kt
  141. +9 −0 app/src/main/java/com/hyeeyoung/wishboard/util/UiState.kt
  142. +0 −20 app/src/main/java/com/hyeeyoung/wishboard/util/Util.kt
  143. +12 −0 app/src/main/java/com/hyeeyoung/wishboard/util/extension/BundleExt.kt
  144. +20 −0 app/src/main/java/com/hyeeyoung/wishboard/util/extension/ContextExt.kt
  145. +10 −0 app/src/main/java/com/hyeeyoung/wishboard/util/extension/Enum.kt
  146. +26 −0 app/src/main/java/com/hyeeyoung/wishboard/util/extension/FlowExt.kt
  147. +54 −0 app/src/main/java/com/hyeeyoung/wishboard/util/extension/FragmentExt.kt
  148. +5 −0 app/src/main/java/com/hyeeyoung/wishboard/util/extension/IntExt.kt
  149. +39 −0 app/src/main/java/com/hyeeyoung/wishboard/util/extension/ModifierExt.kt
  150. +13 −1 app/src/main/java/com/hyeeyoung/wishboard/util/extension/StringExt.kt
  151. +1 −1 app/src/main/res/color/selector_button_background_sub_color.xml
  152. +2 −2 app/src/main/res/drawable/background_dialog_top_corner.xml
  153. +5 −0 app/src/main/res/drawable/foreground_circle_black_alpha_5.xml
  154. +12 −0 app/src/main/res/drawable/ic_app_logo_black.xml
  155. +18 −0 app/src/main/res/drawable/ic_close_small_gray.xml
  156. +0 −16 app/src/main/res/drawable/ic_delete_small.xml
  157. +18 −0 app/src/main/res/drawable/ic_delete_small_gray.xml
  158. +1 −1 app/src/main/res/drawable/selector_navigation_menu_item_color.xml
  159. +0 −35 app/src/main/res/drawable/selector_switch_background.xml
  160. +12 −31 app/src/main/res/drawable/selector_switch_thumb.xml
  161. +17 −0 app/src/main/res/drawable/selector_switch_track.xml
  162. +6 −0 app/src/main/res/drawable/shape_border_radius_20.xml
  163. +4 −0 app/src/main/res/drawable/shape_border_radius_6.xml
  164. +2 −2 app/src/main/res/drawable/shape_border_rectangle_radius_10.xml
  165. +1 −1 app/src/main/res/drawable/shape_selected_indicator.xml
  166. +1 −1 app/src/main/res/drawable/shape_unselected_indicator.xml
  167. BIN app/src/main/res/font/suit_eb.otf
  168. +35 −27 app/src/main/res/layout/activity_how_to_use.xml
  169. +4 −16 app/src/main/res/layout/activity_main.xml
  170. +0 −14 app/src/main/res/layout/activity_sign.xml
  171. +9 −26 app/src/main/res/layout/activity_webview.xml
  172. +24 −48 app/src/main/res/layout/activity_wish_link_sharing.xml
  173. +7 −30 app/src/main/res/layout/dialog_bottom_folder_list.xml
  174. +17 −44 app/src/main/res/layout/dialog_bottom_folder_upload.xml
  175. +17 −44 app/src/main/res/layout/dialog_bottom_noti_setting.xml
  176. +10 −35 app/src/main/res/layout/dialog_bottom_shop_link_input.xml
  177. +41 −42 app/src/main/res/layout/dialog_my_exit.xml
  178. +3 −3 app/src/main/res/layout/dialog_new_folder_add.xml
  179. +6 −9 app/src/main/res/layout/dialog_one_button.xml
  180. +9 −14 app/src/main/res/layout/dialog_two_button.xml
  181. +27 −13 app/src/main/res/layout/{dialog_folder_more.xml → dialog_two_option.xml}
  182. +2 −2 app/src/main/res/layout/fragment_calendar.xml
  183. +17 −47 app/src/main/res/layout/fragment_cart.xml
  184. +11 −5 app/src/main/res/layout/fragment_folder.xml
  185. +10 −37 app/src/main/res/layout/fragment_folder_detail.xml
  186. +0 −83 app/src/main/res/layout/fragment_folder_list.xml
  187. +4 −4 app/src/main/res/layout/fragment_gallery_image.xml
  188. +39 −6 app/src/main/res/layout/fragment_home.xml
  189. +0 −54 app/src/main/res/layout/fragment_how_to_folder_setting.xml
  190. +0 −54 app/src/main/res/layout/fragment_how_to_link_sharing.xml
  191. +0 −54 app/src/main/res/layout/fragment_how_to_noti_setting.xml
  192. +46 −0 app/src/main/res/layout/fragment_how_to_use.xml
  193. +95 −177 app/src/main/res/layout/fragment_my.xml
  194. +5 −10 app/src/main/res/layout/fragment_noti.xml
  195. +12 −13 app/src/main/res/layout/fragment_noti_calendar.xml
  196. +129 −0 app/src/main/res/layout/fragment_password_change.xml
  197. +36 −59 app/src/main/res/layout/fragment_profile_edit.xml
  198. +7 −10 app/src/main/res/layout/fragment_sign.xml
  199. +39 −45 app/src/main/res/layout/fragment_sign_in.xml
  200. +62 −108 app/src/main/res/layout/fragment_sign_in_email.xml
  201. +70 −118 app/src/main/res/layout/fragment_sign_in_verification_code.xml
  202. +45 −82 app/src/main/res/layout/fragment_sign_up_email.xml
  203. +46 −82 app/src/main/res/layout/fragment_sign_up_password.xml
  204. +18 −34 app/src/main/res/layout/fragment_wish.xml
  205. +34 −47 app/src/main/res/layout/fragment_wish_item_detail.xml
  206. +10 −12 app/src/main/res/layout/item_calendar_noti.xml
  207. +10 −14 app/src/main/res/layout/item_cart.xml
  208. +2 −3 app/src/main/res/layout/item_folder_horizontal.xml
  209. +4 −5 app/src/main/res/layout/item_folder_square.xml
  210. +9 −13 app/src/main/res/layout/item_folder_vertical.xml
  211. +4 −5 app/src/main/res/layout/item_new_folder.xml
  212. +25 −17 app/src/main/res/layout/item_noti.xml
  213. +14 −15 app/src/main/res/layout/item_wish.xml
  214. +4 −2 app/src/main/res/layout/snackbar_item.xml
  215. +38 −0 app/src/main/res/layout/view_top_app_bar.xml
  216. +40 −0 app/src/main/res/layout/view_top_dialog_bar.xml
  217. +9 −0 app/src/main/res/navigation/my_nav_graph.xml
  218. +1 −1 app/src/main/res/navigation/noti_calendar_nav_graph.xml
  219. +6 −10 app/src/main/res/values/colors.xml
  220. +9 −3 app/src/main/res/values/dimens.xml
  221. +47 −14 app/src/main/res/values/strings.xml
  222. +90 −96 app/src/main/res/values/styles.xml
  223. +90 −0 app/src/main/res/values/text_appearance.xml
7 changes: 5 additions & 2 deletions .github/workflows/android_build.yml
Original file line number Diff line number Diff line change
@@ -38,8 +38,11 @@ jobs:
- name: Touch local properties
run: touch local.properties

- name: Add EC2 url
run: echo "ec2.url=\"\"" >> local.properties
- name: Add dev base url
run: echo "DEV_BASE_URL=\"\"" >> local.properties

- name: Add prod base url
run: echo "PROD_BASE_URL=\"\"" >> local.properties

- name: Grant execute permission for gradlew
run: chmod +x gradlew
83 changes: 61 additions & 22 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -10,10 +10,9 @@ Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

android {
compileSdkVersion 32
buildToolsVersion "30.0.3"

compileOptions {
coreLibraryDesugaringEnabled true

sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
@@ -24,18 +23,26 @@ android {

defaultConfig {
applicationId "com.hyeeyoung.wishboard"
minSdkVersion 22
targetSdkVersion 32
versionCode 9
versionName "1.0.0.2"
minSdkVersion 24
targetSdkVersion 34
versionCode 40
versionName "1.2.7"
compileSdk 34

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
buildConfigField "String", "BASE_URL", properties["ec2.url"]
vectorDrawables {
useSupportLibrary true
}
}

buildTypes {
debug {
buildConfigField "String", "BASE_URL", properties["DEV_BASE_URL"]
versionNameSuffix = "-dev"
}
release {
minifyEnabled true
buildConfigField "String", "BASE_URL", properties["PROD_BASE_URL"]
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
@@ -46,23 +53,35 @@ android {

buildFeatures {
dataBinding true
compose true
}

composeOptions {
kotlinCompilerExtensionVersion = "1.4.0-alpha01"
}
packagingOptions {
resources {
excludes += '/META-INF/{AL2.0,LGPL2.1}'
}
}
}

dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2'

implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'com.google.android.material:material:1.7.0'

implementation 'androidx.security:security-crypto-ktx:1.1.0-alpha04'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
implementation 'androidx.fragment:fragment-ktx:1.5.4'
implementation 'androidx.preference:preference-ktx:1.2.0'
implementation 'androidx.navigation:navigation-ui-ktx:2.4.0'
@@ -72,26 +91,21 @@ dependencies {
implementation 'io.coil-kt:coil:2.1.0'

// jsoup
implementation 'org.jsoup:jsoup:1.14.1'
implementation 'org.jsoup:jsoup:1.14.1' // TODO delete

// glide
implementation 'com.github.bumptech.glide:glide:4.12.0'
kapt 'com.github.bumptech.glide:compiler:4.12.0'

// Retrofit
// Network
implementation platform('com.squareup.okhttp3:okhttp-bom:4.10.0')
implementation 'com.squareup.okhttp3:okhttp'
implementation 'com.squareup.okhttp3:logging-interceptor'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.google.code.gson:gson:2.10'

// Dagger Hilt
implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-compiler:$hilt_version"
implementation "androidx.hilt:hilt-navigation-fragment:1.0.0"

// AWS S3
implementation 'com.amplifyframework:aws-storage-s3:1.31.1'
implementation 'com.amplifyframework:aws-auth-cognito:1.31.1'
implementation 'com.amplifyframework:core-kotlin:0.15.1'

// Firebase FCM
implementation 'com.google.firebase:firebase-messaging-ktx'
implementation 'com.google.firebase:firebase-analytics-ktx'
@@ -106,12 +120,37 @@ dependencies {
implementation "com.airbnb.android:lottie:$lottie_version"

// Calendar View
implementation 'joda-time:joda-time:2.10.14'
implementation 'joda-time:joda-time:2.10.14' // TODO delete

// Timber
implementation 'com.jakewharton.timber:timber:5.0.1'

// In App Update
implementation 'com.google.android.play:app-update:2.1.0'
implementation 'com.google.android.play:app-update-ktx:2.1.0'

// Compose
def composeBom = platform('androidx.compose:compose-bom:2023.05.01')
implementation composeBom
androidTestImplementation composeBom

implementation 'androidx.activity:activity-compose'
implementation 'androidx.compose.runtime:runtime-livedata'
implementation 'androidx.lifecycle:lifecycle-viewmodel-compose'

implementation 'androidx.compose.ui:ui'
implementation 'androidx.compose.ui:ui-tooling-preview'
implementation 'androidx.compose.material3:material3'
implementation 'androidx.constraintlayout:constraintlayout-compose:1.0.1'
implementation 'io.coil-kt:coil-compose:2.4.0'

androidTestImplementation 'androidx.compose.ui:ui-test-junit4'
debugImplementation 'androidx.compose.ui:ui-tooling'
debugImplementation 'androidx.compose.ui:ui-test-manifest'

testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
}
24 changes: 11 additions & 13 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -2,6 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hyeeyoung.wishboard">

<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
@@ -10,6 +12,9 @@
<uses-feature
android:name="android.hardware.camera2"
android:required="false" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />

<application
android:name=".WishBoardApp"
@@ -41,23 +46,13 @@
android:exported="true"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data
android:host="wishboard.com"
android:path="/main"
android:scheme="https" />
</intent-filter>
</activity>

<activity
android:name=".presentation.howtouse.screens.HowToUseActivity"
android:exported="false"
android:screenOrientation="portrait" />
android:screenOrientation="portrait"
android:theme="@style/AppThemePopup" />

<activity
android:name=".presentation.wishitem.screens.WishLinkSharingActivity"
@@ -71,7 +66,10 @@
<data android:mimeType="text/plain" />
</intent-filter>
</activity>

<activity
android:name=".presentation.calendar.screen.CalendarActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".presentation.common.screens.WebViewActivity"
android:exported="true"
22 changes: 0 additions & 22 deletions app/src/main/java/com/hyeeyoung/wishboard/WishBoardApp.kt
Original file line number Diff line number Diff line change
@@ -2,11 +2,6 @@ package com.hyeeyoung.wishboard

import android.app.Application
import androidx.appcompat.app.AppCompatDelegate
import com.amplifyframework.AmplifyException
import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin
import com.amplifyframework.core.Amplify
import com.amplifyframework.storage.s3.AWSS3StoragePlugin
import com.hyeeyoung.wishboard.util.PreferenceUtil
import com.hyeeyoung.wishboard.util.WishBoardDebugTree
import dagger.hilt.android.HiltAndroidApp
import timber.log.Timber
@@ -15,31 +10,14 @@ import timber.log.Timber
class WishBoardApp : Application() {
override fun onCreate() {
super.onCreate()
prefs = PreferenceUtil(applicationContext)
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)

setUpTimber()
setUpAmplify()
}

private fun setUpAmplify() {
try {
Amplify.addPlugin(AWSCognitoAuthPlugin())
Amplify.addPlugin(AWSS3StoragePlugin())
Amplify.configure(applicationContext)
Timber.d("Initialized Amplify")
} catch (error: AmplifyException) {
Timber.e("Could not initialize Amplify", error)
}
}

private fun setUpTimber() {
if (BuildConfig.DEBUG) {
Timber.plant(WishBoardDebugTree())
}
}

companion object {
lateinit var prefs: PreferenceUtil
}
}
Original file line number Diff line number Diff line change
@@ -86,8 +86,4 @@ class GalleryPagingDataSource(context: Context) :
cursor.close()
}
}

companion object {
private const val TAG = "GalleryPagingDataSource"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
package com.hyeeyoung.wishboard.data.interceptor

import android.app.Application
import android.content.Intent
import com.google.gson.Gson
import com.hyeeyoung.wishboard.BuildConfig
import com.hyeeyoung.wishboard.R
import com.hyeeyoung.wishboard.data.local.WishBoardPreference
import com.hyeeyoung.wishboard.data.model.auth.ResponseRefresh
import com.hyeeyoung.wishboard.util.extension.showToast
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.cancel
import kotlinx.coroutines.launch
import okhttp3.FormBody
import okhttp3.Interceptor
import okhttp3.Request
import okhttp3.Response
import timber.log.Timber
import javax.inject.Inject

class AuthInterceptor @Inject constructor(
private val gson: Gson, // TODO json으로 변경
private val context: Application,
private val localStorage: WishBoardPreference,
) : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val originalRequest = chain.request()
val authRequest = originalRequest.newAuthBuilder().build()
val response = chain.proceed(authRequest)

when (response.code) {
401 -> {
response.close()
val requestBody = FormBody.Builder()
.add(REFRESH_TOKEN, localStorage.refreshToken).build()

val refreshTokenRequest = originalRequest.newBuilder().get()
.url("${BuildConfig.BASE_URL}auth/refresh")
.post(requestBody)
.build()
val refreshTokenResponse = chain.proceed(refreshTokenRequest)

if (refreshTokenResponse.isSuccessful) {
Timber.d("토큰 리프레시 성공")
val responseRefresh = gson.fromJson(
refreshTokenResponse.body?.string(),
ResponseRefresh::class.java
)

responseRefresh.data?.token?.let {
localStorage.updateToken(it.accessToken, it.refreshToken)
}
refreshTokenResponse.close()

val newRequest = originalRequest.newAuthBuilder().build()
return chain.proceed(newRequest)
} else {
Timber.e("토큰 리프레시 실패(${refreshTokenResponse.message})")
with(context) {
CoroutineScope(Dispatchers.Main).launch {
startActivity(
Intent.makeRestartActivityTask(
packageManager.getLaunchIntentForPackage(packageName)?.component
)
)
showToast(getString(R.string.sign_auto_login_failure))
localStorage.clear()
cancel()
}
}
}
}
}
return response
}

private fun Request.newAuthBuilder() =
this.newBuilder()
.addHeader(HEADER_KEY_AUTHORIZATION, "$TOKEN_PREF${localStorage.accessToken}")
.addHeader(HEADER_KEY_USER_AGENT, "$HEADER_VALUE_USER_AGENT_PREF${if (BuildConfig.DEBUG) "dev" else "prod"}")

companion object {
private const val HEADER_KEY_AUTHORIZATION = "Authorization"
private const val HEADER_KEY_USER_AGENT = "User-Agent"
private const val HEADER_VALUE_USER_AGENT_PREF = "wishboard-android/"
private const val TOKEN_PREF = "Bearer "
private const val REFRESH_TOKEN = "refreshToken"
}
}
Loading