gaid 업데이트 추가

This commit is contained in:
klaus 2024-02-26 21:56:10 +09:00
parent 78dd3b2785
commit 1712f509dc
5 changed files with 52 additions and 0 deletions

View File

@ -0,0 +1,7 @@
package kr.co.vividnext.sodalive.main
import com.google.gson.annotations.SerializedName
data class GaidUpdateRequest(
@SerializedName("adid") val adid: String
)

View File

@ -59,6 +59,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
super.onCreate(savedInstanceState)
checkPermissions()
pushTokenUpdate()
gaidUpdate()
getMemberInfo()
getEventPopup()
@ -338,6 +339,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
}
}
private fun gaidUpdate() {
viewModel.fetchAndUpdateGaid(context = applicationContext)
}
private fun getMemberInfo() {
viewModel.getMemberInfo {
notificationSettingsDialog.show(screenWidth)

View File

@ -1,7 +1,9 @@
package kr.co.vividnext.sodalive.main
import android.content.Context
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.google.android.gms.ads.identifier.AdvertisingIdClient
import com.google.gson.annotations.SerializedName
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
@ -15,6 +17,7 @@ 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.user.UserRepository
import java.util.concurrent.Executors
class MainViewModel(
private val userRepository: UserRepository,
@ -153,4 +156,26 @@ class MainViewModel(
)
)
}
fun fetchAndUpdateGaid(context: Context) {
Executors.newSingleThreadExecutor().execute {
try {
val adInfo = AdvertisingIdClient.getAdvertisingIdInfo(context)
adInfo.id?.let { gaid ->
val request = GaidUpdateRequest(adid = gaid)
compositeDisposable.add(
userRepository.updateGaid(
request,
token = "Bearer ${SharedPreferenceManager.token}"
)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({}, {})
)
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
}

View File

@ -4,6 +4,7 @@ import io.reactivex.rxjava3.core.Single
import kr.co.vividnext.sodalive.common.ApiResponse
import kr.co.vividnext.sodalive.explorer.profile.MemberBlockRequest
import kr.co.vividnext.sodalive.live.room.detail.GetRoomDetailUser
import kr.co.vividnext.sodalive.main.GaidUpdateRequest
import kr.co.vividnext.sodalive.main.PushTokenUpdateRequest
import kr.co.vividnext.sodalive.mypage.MyPageResponse
import kr.co.vividnext.sodalive.mypage.profile.ProfileResponse
@ -137,4 +138,10 @@ interface UserApi {
@Part multipartFile: MultipartBody.Part,
@Header("Authorization") authHeader: String
): Single<ApiResponse<String>>
@PUT("/member/adid/update")
fun updateGaid(
@Body request: GaidUpdateRequest,
@Header("Authorization") authHeader: String
): Single<ApiResponse<Any>>
}

View File

@ -4,6 +4,7 @@ import io.reactivex.rxjava3.core.Single
import kr.co.vividnext.sodalive.common.ApiResponse
import kr.co.vividnext.sodalive.explorer.profile.MemberBlockRequest
import kr.co.vividnext.sodalive.live.room.detail.GetRoomDetailUser
import kr.co.vividnext.sodalive.main.GaidUpdateRequest
import kr.co.vividnext.sodalive.main.PushTokenUpdateRequest
import kr.co.vividnext.sodalive.mypage.MyPageResponse
import kr.co.vividnext.sodalive.mypage.profile.ProfileResponse
@ -108,4 +109,11 @@ class UserRepository(private val userApi: UserApi) {
fun getProfile(token: String): Single<ApiResponse<ProfileResponse>> {
return userApi.getMyProfile(authHeader = token)
}
fun updateGaid(
request: GaidUpdateRequest,
token: String
): Single<ApiResponse<Any>> {
return userApi.updateGaid(request, authHeader = token)
}
}