Skip to content

Commit 5fc028d

Browse files
authored
Merge pull request #420 from hyeeyoung/dev
1.2.1 버전 업데이트
2 parents 557d874 + 2fb2c1b commit 5fc028d

File tree

14 files changed

+98
-161
lines changed

14 files changed

+98
-161
lines changed

app/build.gradle

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ android {
2828
applicationId "com.hyeeyoung.wishboard"
2929
minSdkVersion 24
3030
targetSdkVersion 33
31-
versionCode 22
32-
versionName "1.2.0"
31+
versionCode 30
32+
versionName "1.2.1"
3333

3434
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
3535
vectorDrawables {
@@ -82,6 +82,7 @@ dependencies {
8282
implementation 'androidx.security:security-crypto-ktx:1.1.0-alpha04'
8383
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.0'
8484
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0'
85+
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
8586
implementation 'androidx.fragment:fragment-ktx:1.5.4'
8687
implementation 'androidx.preference:preference-ktx:1.2.0'
8788
implementation 'androidx.navigation:navigation-ui-ktx:2.4.0'
@@ -91,12 +92,7 @@ dependencies {
9192
implementation 'io.coil-kt:coil:2.1.0'
9293

9394
// jsoup
94-
implementation 'org.jsoup:jsoup:1.14.1'
95-
96-
// glide
97-
implementation 'com.github.bumptech.glide:glide:4.12.0'
98-
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
99-
kapt 'com.github.bumptech.glide:compiler:4.12.0'
95+
implementation 'org.jsoup:jsoup:1.14.1' // TODO delete
10096

10197
// Network
10298
implementation platform('com.squareup.okhttp3:okhttp-bom:4.10.0')
@@ -111,11 +107,6 @@ dependencies {
111107
kapt "com.google.dagger:hilt-compiler:$hilt_version"
112108
implementation "androidx.hilt:hilt-navigation-fragment:1.0.0"
113109

114-
// AWS S3
115-
implementation 'com.amplifyframework:aws-storage-s3:1.31.1'
116-
implementation 'com.amplifyframework:aws-auth-cognito:1.31.1'
117-
implementation 'com.amplifyframework:core-kotlin:0.15.1'
118-
119110
// Firebase FCM
120111
implementation 'com.google.firebase:firebase-messaging-ktx'
121112
implementation 'com.google.firebase:firebase-analytics-ktx'
@@ -130,11 +121,15 @@ dependencies {
130121
implementation "com.airbnb.android:lottie:$lottie_version"
131122

132123
// Calendar View
133-
implementation 'joda-time:joda-time:2.10.14'
124+
implementation 'joda-time:joda-time:2.10.14' // TODO delete
134125

135126
// Timber
136127
implementation 'com.jakewharton.timber:timber:5.0.1'
137128

129+
// In App Update
130+
implementation 'com.google.android.play:app-update:2.1.0'
131+
implementation 'com.google.android.play:app-update-ktx:2.1.0'
132+
138133
// Compose
139134
def composeBom = platform('androidx.compose:compose-bom:2023.05.01')
140135
implementation composeBom
@@ -144,15 +139,15 @@ dependencies {
144139
implementation 'androidx.compose.runtime:runtime-livedata'
145140
implementation 'androidx.lifecycle:lifecycle-viewmodel-compose'
146141

147-
implementation "androidx.compose.ui:ui"
148-
implementation "androidx.compose.ui:ui-tooling-preview"
142+
implementation 'androidx.compose.ui:ui'
143+
implementation 'androidx.compose.ui:ui-tooling-preview'
149144
implementation 'androidx.compose.material3:material3'
150145
implementation 'androidx.constraintlayout:constraintlayout-compose:1.0.1'
151146
implementation 'io.coil-kt:coil-compose:2.4.0'
152147

153-
androidTestImplementation "androidx.compose.ui:ui-test-junit4"
154-
debugImplementation "androidx.compose.ui:ui-tooling"
155-
debugImplementation "androidx.compose.ui:ui-test-manifest"
148+
androidTestImplementation 'androidx.compose.ui:ui-test-junit4'
149+
debugImplementation 'androidx.compose.ui:ui-tooling'
150+
debugImplementation 'androidx.compose.ui:ui-test-manifest'
156151

157152
testImplementation 'junit:junit:4.12'
158153
androidTestImplementation 'androidx.test.ext:junit:1.1.3'

app/src/main/java/com/hyeeyoung/wishboard/WishBoardApp.kt

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@ package com.hyeeyoung.wishboard
22

33
import android.app.Application
44
import androidx.appcompat.app.AppCompatDelegate
5-
import com.amplifyframework.AmplifyException
6-
import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin
7-
import com.amplifyframework.core.Amplify
8-
import com.amplifyframework.storage.s3.AWSS3StoragePlugin
95
import com.hyeeyoung.wishboard.util.WishBoardDebugTree
106
import dagger.hilt.android.HiltAndroidApp
117
import timber.log.Timber
@@ -17,18 +13,6 @@ class WishBoardApp : Application() {
1713
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
1814

1915
setUpTimber()
20-
setUpAmplify()
21-
}
22-
23-
private fun setUpAmplify() {
24-
try {
25-
Amplify.addPlugin(AWSCognitoAuthPlugin())
26-
Amplify.addPlugin(AWSS3StoragePlugin())
27-
Amplify.configure(applicationContext)
28-
Timber.d("Initialized Amplify")
29-
} catch (error: AmplifyException) {
30-
Timber.e("Could not initialize Amplify", error)
31-
}
3216
}
3317

3418
private fun setUpTimber() {

app/src/main/java/com/hyeeyoung/wishboard/data/interceptor/AuthInterceptor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import timber.log.Timber
2020
import javax.inject.Inject
2121

2222
class AuthInterceptor @Inject constructor(
23-
private val gson: Gson,
23+
private val gson: Gson, // TODO json으로 변경
2424
private val context: Application,
2525
private val localStorage: WishBoardPreference,
2626
) : Interceptor {

app/src/main/java/com/hyeeyoung/wishboard/data/services/AWSS3Service.kt

Lines changed: 0 additions & 40 deletions
This file was deleted.

app/src/main/java/com/hyeeyoung/wishboard/presentation/calendar/screen/CalendarActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class CalendarActivity : ComponentActivity() {
2323
val notiList by viewModel.calendarNotiList.collectAsState()
2424

2525
CalendarScreen(
26-
notiList = notiList,
26+
notiList = notiList ?: emptyList(),
2727
onClickBack = { finish() },
2828
onClickNotiWithLink = { shopUrl ->
2929
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(shopUrl)))

app/src/main/java/com/hyeeyoung/wishboard/presentation/calendar/screen/CalendarScreen.kt

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package com.hyeeyoung.wishboard.presentation.calendar.screen
22

33
import androidx.compose.foundation.ExperimentalFoundationApi
4+
import androidx.compose.foundation.background
45
import androidx.compose.foundation.layout.Column
56
import androidx.compose.foundation.pager.rememberPagerState
67
import androidx.compose.material3.Scaffold
78
import androidx.compose.material3.SnackbarHostState
89
import androidx.compose.runtime.*
10+
import androidx.compose.ui.Modifier
11+
import androidx.compose.ui.graphics.Color
912
import androidx.compose.ui.res.stringResource
1013
import androidx.compose.ui.tooling.preview.Preview
1114
import com.hyeeyoung.wishboard.R
@@ -26,11 +29,10 @@ private const val INITIAL_PAGE = PAGE_COUNT / 2
2629
@OptIn(ExperimentalFoundationApi::class)
2730
@Composable
2831
fun CalendarScreen(
29-
notiList: List<NotiItem>?,
32+
notiList: List<NotiItem>,
3033
onClickBack: () -> Unit,
3134
onClickNotiWithLink: (String) -> Unit
3235
) {
33-
if (notiList == null) return
3436
WishboardTheme {
3537
var selectedDate by remember { mutableStateOf(LocalDate.now()) }
3638
var prevPage by remember { mutableStateOf(INITIAL_PAGE) }
@@ -44,7 +46,7 @@ fun CalendarScreen(
4446
val snackbarMsgForNotiLink = stringResource(id = R.string.noti_item_url_snackbar_text)
4547

4648
Scaffold(snackbarHost = { WishboardSnackbarHost(hostState = snackbarHostState) }) {
47-
Column {
49+
Column(modifier = Modifier.background(Color.White)) {
4850
CalendarHeader(selectedDate = selectedDate, onClickBack = onClickBack)
4951
CalendarTable(
5052
selectedDate = selectedDate,
@@ -156,3 +158,13 @@ fun CalendarPreview() {
156158
onClickNotiWithLink = {}
157159
)
158160
}
161+
162+
@Preview(showBackground = true)
163+
@Composable
164+
fun EmmptyCalendarPreview() {
165+
CalendarScreen(
166+
notiList = emptyList(),
167+
onClickBack = {},
168+
onClickNotiWithLink = {}
169+
)
170+
}

app/src/main/java/com/hyeeyoung/wishboard/presentation/my/screens/MyProfileEditFragment.kt

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package com.hyeeyoung.wishboard.presentation.my.screens
33
import android.net.Uri
44
import android.os.Bundle
55
import android.view.View
6-
import androidx.activity.result.contract.ActivityResultContracts
76
import androidx.core.os.bundleOf
87
import androidx.hilt.navigation.fragment.hiltNavGraphViewModels
98
import androidx.navigation.fragment.findNavController
@@ -14,8 +13,7 @@ import com.hyeeyoung.wishboard.presentation.my.MyViewModel
1413
import com.hyeeyoung.wishboard.presentation.wishitem.WishItemStatus
1514
import com.hyeeyoung.wishboard.util.BaseFragment
1615
import com.hyeeyoung.wishboard.util.UiState
17-
import com.hyeeyoung.wishboard.util.extension.collectFlow
18-
import com.hyeeyoung.wishboard.util.extension.showPhotoDialog
16+
import com.hyeeyoung.wishboard.util.extension.*
1917
import com.hyeeyoung.wishboard.util.showKeyboard
2018
import dagger.hilt.android.AndroidEntryPoint
2119

@@ -25,23 +23,14 @@ class MyProfileEditFragment :
2523
private val viewModel: MyViewModel by hiltNavGraphViewModels(R.id.my_nav_graph)
2624
private var photoUri: Uri? = null
2725

28-
private val requestSelectPicture =
29-
registerForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
30-
if (uri != null) viewModel.setSelectedUserProfileImage(uri)
31-
}
32-
33-
private val requestCamera =
34-
registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
35-
if (isGranted) {
36-
photoUri = viewModel.createCameraImageUri()
37-
takePicture.launch(photoUri)
38-
}
39-
}
40-
41-
private val takePicture =
42-
registerForActivityResult(ActivityResultContracts.TakePicture()) { success ->
43-
if (success && (photoUri != null)) viewModel.setSelectedUserProfileImage(photoUri!!)
44-
}
26+
private val requestSelectPicture = requestSelectPicture { uri -> viewModel.setSelectedUserProfileImage(uri) }
27+
private val requestCamera = requestCamera {
28+
photoUri = viewModel.createCameraImageUri()
29+
takePicture.launch(photoUri)
30+
}
31+
private val takePicture = takePicture {
32+
viewModel.setSelectedUserProfileImage(photoUri ?: return@takePicture)
33+
}
4534

4635
override fun onCreate(savedInstanceState: Bundle?) {
4736
super.onCreate(savedInstanceState)

app/src/main/java/com/hyeeyoung/wishboard/presentation/splash/SplashActivity.kt

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,48 +3,46 @@ package com.hyeeyoung.wishboard.presentation.splash
33
import android.content.Intent
44
import android.net.Uri
55
import android.os.Bundle
6+
import androidx.activity.viewModels
67
import androidx.lifecycle.lifecycleScope
78
import com.google.android.play.core.appupdate.AppUpdateManagerFactory
89
import com.google.android.play.core.install.model.AppUpdateType
910
import com.google.android.play.core.install.model.UpdateAvailability
1011
import com.hyeeyoung.wishboard.BuildConfig
1112
import com.hyeeyoung.wishboard.R
12-
import com.hyeeyoung.wishboard.data.local.WishBoardPreference
1313
import com.hyeeyoung.wishboard.databinding.ActivitySplashBinding
1414
import com.hyeeyoung.wishboard.presentation.common.screens.TwoButtonDialogFragment
1515
import com.hyeeyoung.wishboard.presentation.common.types.DialogButtonReplyType
1616
import com.hyeeyoung.wishboard.presentation.main.MainActivity
1717
import com.hyeeyoung.wishboard.presentation.sign.screens.SignActivity
1818
import com.hyeeyoung.wishboard.util.BaseActivity
1919
import com.hyeeyoung.wishboard.util.DialogListener
20-
import kotlinx.coroutines.Dispatchers
21-
import kotlinx.coroutines.Job
20+
import dagger.hilt.android.AndroidEntryPoint
2221
import kotlinx.coroutines.delay
2322
import kotlinx.coroutines.launch
2423

24+
@AndroidEntryPoint
2525
class SplashActivity : BaseActivity<ActivitySplashBinding>(R.layout.activity_splash) {
26-
private var job: Job? = null
26+
private val viewModel: SplashViewModel by viewModels()
2727

2828
override fun onCreate(savedInstanceState: Bundle?) {
2929
super.onCreate(savedInstanceState)
3030

31-
lifecycleScope.launch(Dispatchers.Main) {
32-
job = launch {
33-
delay(2000)
34-
checkForNewVersionUpdate()
35-
}
31+
lifecycleScope.launch() {
32+
delay(2000)
33+
checkForNewVersionUpdate()
3634
}
3735
}
3836

3937
private fun moveToNext() {
40-
val isLogin = WishBoardPreference(this).isLogin
38+
val isLogin = viewModel.isLogin()
4139
val nextScreen = if (isLogin) MainActivity::class.java else SignActivity::class.java
4240
startActivity(Intent(this@SplashActivity, nextScreen))
4341
finish()
4442
}
4543

4644
private fun checkForNewVersionUpdate() {
47-
val appUpdateManager = AppUpdateManagerFactory.create(this)
45+
val appUpdateManager = AppUpdateManagerFactory.create(this@SplashActivity)
4846
val appUpdateInfoTask = appUpdateManager.appUpdateInfo
4947

5048
appUpdateInfoTask.addOnSuccessListener { appUpdateInfo ->
@@ -53,6 +51,8 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(R.layout.activity_spl
5351
&& appUpdateInfo.availableVersionCode() != BuildConfig.VERSION_CODE
5452
) {
5553
showUpdateDialog()
54+
} else {
55+
moveToNext()
5656
}
5757
}.addOnFailureListener {
5858
moveToNext()
@@ -83,9 +83,4 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(R.layout.activity_spl
8383
startActivity(it)
8484
}
8585
}
86-
87-
override fun onPause() {
88-
job?.cancel()
89-
super.onPause()
90-
}
91-
}
86+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.hyeeyoung.wishboard.presentation.splash
2+
3+
import androidx.lifecycle.ViewModel
4+
import com.hyeeyoung.wishboard.data.local.WishBoardPreference
5+
import dagger.hilt.android.lifecycle.HiltViewModel
6+
import javax.inject.Inject
7+
8+
@HiltViewModel
9+
class SplashViewModel @Inject constructor(
10+
private val localStorage: WishBoardPreference,
11+
) : ViewModel() {
12+
fun isLogin() = localStorage.isLogin
13+
}

0 commit comments

Comments
 (0)