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) + } }