From 1712f509dc36cff8f18c0330dae65eec374c3d82 Mon Sep 17 00:00:00 2001 From: klaus Date: Mon, 26 Feb 2024 21:56:10 +0900 Subject: [PATCH] =?UTF-8?q?gaid=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/main/GaidUpdateRequest.kt | 7 ++++++ .../vividnext/sodalive/main/MainActivity.kt | 5 ++++ .../vividnext/sodalive/main/MainViewModel.kt | 25 +++++++++++++++++++ .../kr/co/vividnext/sodalive/user/UserApi.kt | 7 ++++++ .../vividnext/sodalive/user/UserRepository.kt | 8 ++++++ 5 files changed, 52 insertions(+) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/main/GaidUpdateRequest.kt diff --git a/app/src/main/java/kr/co/vividnext/sodalive/main/GaidUpdateRequest.kt b/app/src/main/java/kr/co/vividnext/sodalive/main/GaidUpdateRequest.kt new file mode 100644 index 0000000..9feb2e9 --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/main/GaidUpdateRequest.kt @@ -0,0 +1,7 @@ +package kr.co.vividnext.sodalive.main + +import com.google.gson.annotations.SerializedName + +data class GaidUpdateRequest( + @SerializedName("adid") val adid: String +) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/main/MainActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/main/MainActivity.kt index 977ad33..eb2c06d 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/main/MainActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/main/MainActivity.kt @@ -59,6 +59,7 @@ class MainActivity : BaseActivity(ActivityMainBinding::infl super.onCreate(savedInstanceState) checkPermissions() pushTokenUpdate() + gaidUpdate() getMemberInfo() getEventPopup() @@ -338,6 +339,10 @@ class MainActivity : BaseActivity(ActivityMainBinding::infl } } + private fun gaidUpdate() { + viewModel.fetchAndUpdateGaid(context = applicationContext) + } + private fun getMemberInfo() { viewModel.getMemberInfo { notificationSettingsDialog.show(screenWidth) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/main/MainViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/main/MainViewModel.kt index 8890277..9fbafb1 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/main/MainViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/main/MainViewModel.kt @@ -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() + } + } + } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/user/UserApi.kt b/app/src/main/java/kr/co/vividnext/sodalive/user/UserApi.kt index bc02205..bdb989d 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/user/UserApi.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/user/UserApi.kt @@ -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> + + @PUT("/member/adid/update") + fun updateGaid( + @Body request: GaidUpdateRequest, + @Header("Authorization") authHeader: String + ): Single> } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/user/UserRepository.kt b/app/src/main/java/kr/co/vividnext/sodalive/user/UserRepository.kt index 80afb2a..5e2d028 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/user/UserRepository.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/user/UserRepository.kt @@ -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> { return userApi.getMyProfile(authHeader = token) } + + fun updateGaid( + request: GaidUpdateRequest, + token: String + ): Single> { + return userApi.updateGaid(request, authHeader = token) + } }