Notifly 기본 설정 추가

This commit is contained in:
2025-03-12 03:08:12 +09:00
parent d430f5d543
commit 10208fada8
6 changed files with 63 additions and 2 deletions

View File

@@ -15,6 +15,7 @@ import kr.co.vividnext.sodalive.common.ImageLoaderProvider
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.di.AppDI
import kr.co.vividnext.sodalive.tracking.FirebaseTracking
import tech.notifly.Notifly
class SodaLiveApp : Application() {
override fun onCreate() {
@@ -37,6 +38,8 @@ class SodaLiveApp : Application() {
FacebookSdk.fullyInitialize()
setupAppsFlyer()
setupNotifly()
}
private fun isDebuggable(): Boolean {
@@ -106,4 +109,13 @@ class SodaLiveApp : Application() {
private fun logUtmInFirebase() {
FirebaseTracking.logUtm()
}
private fun setupNotifly() {
Notifly.initialize(
applicationContext,
BuildConfig.NOTIFLY_PROJECT_ID,
BuildConfig.NOTIFLY_USERNAME,
BuildConfig.NOTIFLY_PASSWORD,
)
}
}

View File

@@ -565,7 +565,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
}
private fun getMemberInfo() {
viewModel.getMemberInfo {
viewModel.getMemberInfo(context = applicationContext) {
notificationSettingsDialog.show(screenWidth)
}
}

View File

@@ -16,7 +16,11 @@ import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.settings.event.EventItem
import kr.co.vividnext.sodalive.settings.event.EventRepository
import kr.co.vividnext.sodalive.settings.notification.UpdateNotificationSettingRequest
import kr.co.vividnext.sodalive.tracking.NotiflyClient
import kr.co.vividnext.sodalive.user.UserRepository
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale
import java.util.concurrent.Executors
class MainViewModel(
@@ -86,7 +90,7 @@ class MainViewModel(
)
}
fun getMemberInfo(showNotificationSettingsDialog: () -> Unit) {
fun getMemberInfo(context: Context, showNotificationSettingsDialog: () -> Unit) {
compositeDisposable.add(
userRepository.getMemberInfo(token = "Bearer ${SharedPreferenceManager.token}")
.subscribeOn(Schedulers.io())
@@ -107,6 +111,28 @@ class MainViewModel(
) {
showNotificationSettingsDialog()
}
val dateFormat = SimpleDateFormat(
"yyyy-MM-dd, HH:mm:ss",
Locale.getDefault()
)
val lastActiveDate = dateFormat.format(Date())
val params = mutableMapOf(
"nickname" to SharedPreferenceManager.nickname,
"last_active_date" to lastActiveDate,
"charge_count" to data.chargeCount,
"signup_date" to data.signupDate,
"is_auth" to data.isAuth,
"gender" to data.gender,
"can" to data.can
)
NotiflyClient.setUser(
context = context,
userId = SharedPreferenceManager.userId,
params = params
)
}
},
{}

View File

@@ -7,6 +7,9 @@ import com.google.gson.annotations.SerializedName
data class GetMemberInfoResponse(
@SerializedName("can") val can: Int,
@SerializedName("isAuth") val isAuth: Boolean,
@SerializedName("gender") val gender: String?,
@SerializedName("signupDate") val signupDate: String,
@SerializedName("chargeCount") val chargeCount: Int,
@SerializedName("role") val role: MemberRole,
@SerializedName("messageNotice") val messageNotice: Boolean?,
@SerializedName("followingChannelLiveNotice")

View File

@@ -0,0 +1,11 @@
package kr.co.vividnext.sodalive.tracking
import android.content.Context
import tech.notifly.Notifly
object NotiflyClient {
fun setUser(context: Context, userId: Long, params: Map<String, Any?>) {
Notifly.setUserId(context, "voiceon_user$userId")
Notifly.setUserProperties(context, params)
}
}