Skip to content

Commit 2758346

Browse files
committed
[IDLE-506] CI CD에 AppsFlyer Api Key 추가 및 릴리즈 버전 업
1 parent 2db6aa4 commit 2758346

7 files changed

Lines changed: 32 additions & 34 deletions

File tree

.github/workflows/android_cd.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ jobs:
3939
echo "NAVER_CLIENT_SECRET=${{ secrets.NAVER_CLIENT_SECRET }}" >> local.properties
4040
echo "AMPLITUDE_API_KEY=${{ secrets.AMPLITUDE_API_KEY }}" >> local.properties
4141
echo "KAKAO_APP_KEY=${{ secrets.KAKAO_APP_KEY }}" >> local.properties
42+
echo "APPSFLYER_API_KEY=${{ secrets.APPSFLYER_API_KEY }}" >> local.properties
4243
4344
- name: Set up keystore.properties
4445
run: |

.github/workflows/android_ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ jobs:
4242
echo "NAVER_CLIENT_SECRET=${{ secrets.NAVER_CLIENT_SECRET }}" >> local.properties
4343
echo "AMPLITUDE_API_KEY=${{ secrets.AMPLITUDE_API_KEY }}" >> local.properties
4444
echo "KAKAO_APP_KEY=${{ secrets.KAKAO_APP_KEY }}" >> local.properties
45+
echo "APPSFLYER_API_KEY=${{ secrets.APPSFLYER_API_KEY }}" >> local.properties
4546
4647
- name: Set up keystore.properties
4748
run: |

app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ android {
1111
namespace = "com.idle.care"
1212

1313
defaultConfig {
14-
versionCode = 13
15-
versionName = "1.1.6"
14+
versionCode = 15
15+
versionName = "1.2.0"
1616
targetSdk = 34
1717

1818
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

app/src/main/java/com/idle/care/notification/NotificationService.kt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
package com.idle.care.notification
22

3-
import android.util.Log
43
import com.google.firebase.messaging.FirebaseMessagingService
54
import com.google.firebase.messaging.RemoteMessage
65
import com.idle.analytics.error.ErrorLoggingHelper
7-
import com.idle.domain.model.auth.UserType
86
import com.idle.domain.usecase.auth.GetUserTypeUseCase
97
import com.idle.domain.usecase.notification.PostDeviceTokenUseCase
108
import dagger.hilt.android.AndroidEntryPoint
@@ -42,12 +40,10 @@ class NotificationService : FirebaseMessagingService() {
4240
scope.launch {
4341
val userType = getUserTypeUseCase()
4442

45-
when (userType) {
46-
UserType.CENTER.apiValue, UserType.WORKER.apiValue -> postDeviceTokenUseCase(
47-
deviceToken = token,
48-
userType = userType,
49-
)
50-
}
43+
postDeviceTokenUseCase(
44+
deviceToken = token,
45+
userType = userType,
46+
)
5147
}
5248
}
5349

core/navigation/src/main/java/com/idle/navigation/NavigationHelper.kt

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,18 @@ class NavigationHelper @Inject constructor() {
2727
fun handleFCMNavigate(
2828
isColdStart: Boolean,
2929
extras: Bundle?,
30-
onInit: () -> Unit
30+
onInit: () -> Unit,
31+
readNotification: (String) -> Unit,
3132
) {
33+
val notificationId = extras?.getString(NotificationKeys.NOTIFICATION_ID) ?: run {
34+
if (isColdStart) onInit()
35+
return
36+
}
37+
38+
readNotification(notificationId)
39+
3240
val notificationType = NotificationType.create(
33-
extras?.getString(NotificationKeys.NOTIFICATION_TYPE) ?: run {
34-
if (isColdStart) {
35-
onInit()
36-
return
37-
}
38-
return
39-
}
41+
extras.getString(NotificationKeys.NOTIFICATION_TYPE) ?: return
4042
)
4143

4244
when (notificationType) {
@@ -92,36 +94,27 @@ class NavigationHelper @Inject constructor() {
9294
fun handleNotificationNavigate(notification: Notification) {
9395
val destinations = when (notification.notificationType) {
9496
APPLICANT -> {
95-
val notificationContent =
96-
notification.notificationDetails as? NotificationContent.ApplicantNotification
97-
98-
notificationContent?.let { content ->
99-
listOf(
100-
NavigationEvent.NavigateTo(CenterJobDetail(content.jobPostingId)),
101-
)
97+
(notification.notificationDetails as? NotificationContent.ApplicantNotification)?.let { content ->
98+
listOf(NavigationEvent.NavigateTo(CenterJobDetail(content.jobPostingId)))
10299
} ?: listOf()
103100
}
104101

105102
NEW_JOB_POSTING -> {
106-
val notificationContent =
107-
notification.notificationDetails as? NotificationContent.NewJobPostingNotification
108-
109-
notificationContent?.let { content ->
103+
(notification.notificationDetails as? NotificationContent.NewJobPostingNotification)?.let { content ->
110104
listOf(
111105
NavigationEvent.NavigateTo(
112106
WorkerJobDetail(
113-
jobPostingId = content.jobPostingId,
114-
jobPostingType = JobPostingType.CAREMEET.name,
107+
content.jobPostingId,
108+
JobPostingType.CAREMEET.name
115109
)
116-
),
110+
)
117111
)
118112
} ?: listOf()
119113
}
120114

121115
else -> listOf()
122116
}
123-
124-
destinations.onEach { destination -> _navigationFlow.trySend(destination) }
117+
destinations.forEach { _navigationFlow.trySend(it) }
125118
}
126119
}
127120

@@ -148,6 +141,7 @@ enum class NotificationType {
148141
}
149142

150143
private object NotificationKeys {
144+
const val NOTIFICATION_ID = "notificationId"
151145
const val NOTIFICATION_TYPE = "notificationType"
152146
const val JOB_POSTING_ID = "jobPostingId"
153147
}

presentation/src/main/java/com/idle/presentation/MainActivity.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ class MainActivity : AppCompatActivity() {
117117
return
118118
},
119119
onInit = ::initializeUserSession,
120+
readNotification = ::readNotification,
120121
)
121122
}
122123
}
@@ -136,6 +137,7 @@ class MainActivity : AppCompatActivity() {
136137
isColdStart = false,
137138
extras = intent?.extras ?: return,
138139
onInit = viewModel::initializeUserSession,
140+
readNotification = viewModel::readNotification,
139141
)
140142
}
141143

presentation/src/main/java/com/idle/presentation/MainViewModel.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,10 @@ class MainViewModel @Inject constructor(
116116
jobPostingRepository.sharedJobPostingInfo = sharedJobPostingInfo
117117
}
118118

119+
internal fun readNotification(notificationId: String) = viewModelScope.launch {
120+
readNotificationUseCase(notificationId).onFailure { errorHandlerHelper.sendError(it) }
121+
}
122+
119123
private suspend fun getAccessTokenAndUserRole(): Pair<String, String> = coroutineScope {
120124
val accessTokenDeferred = async { getAccessTokenUseCase() }
121125
val userRoleDeferred = async { getMyUserRoleUseCase() }

0 commit comments

Comments
 (0)