From 7a6890d10da8de63638da197fcb35069ef85f074 Mon Sep 17 00:00:00 2001 From: Azuma Kasumi Date: Wed, 27 Sep 2023 18:38:16 +0900 Subject: [PATCH] =?UTF-8?q?=E8=AA=8D=E8=A8=BC=E6=83=85=E5=A0=B1=E5=89=8A?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../atled/agileworks/model/NotificationRepository.kt | 2 +- .../java/jp/atled/agileworks/model/api/ApiClient.kt | 4 ++-- .../atled/agileworks/view/ui/login/LoginFragment.kt | 11 +++++++---- .../jp/atled/agileworks/view/ui/login/LoginUtil.kt | 8 ++++---- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/jp/atled/agileworks/model/NotificationRepository.kt b/app/src/main/java/jp/atled/agileworks/model/NotificationRepository.kt index 045df278..7ce32a11 100644 --- a/app/src/main/java/jp/atled/agileworks/model/NotificationRepository.kt +++ b/app/src/main/java/jp/atled/agileworks/model/NotificationRepository.kt @@ -38,7 +38,7 @@ class NotificationRepository(_serverNumber: Int? = null) { fun clearToken(onResult: (Boolean) -> Unit) { Log.d("AgileWorks", "firebase token clean") - ApiClient.reCreateLogout() + ApiClient.reCreateLogout(serverNumber) LogoutRepository.getInstance().getLogout { FcmRepository().removeFcmToken { Log.d("AgileWorks", "firebase token clean -> ${successOrFailured(it)}") diff --git a/app/src/main/java/jp/atled/agileworks/model/api/ApiClient.kt b/app/src/main/java/jp/atled/agileworks/model/api/ApiClient.kt index 66475d3e..068b0081 100644 --- a/app/src/main/java/jp/atled/agileworks/model/api/ApiClient.kt +++ b/app/src/main/java/jp/atled/agileworks/model/api/ApiClient.kt @@ -25,8 +25,8 @@ object ApiClient { instance = createRetrofitInstance(isLogout = false) } var instanceLogout: ApiService = createRetrofitInstance(isLogout = true) - fun reCreateLogout() { - instanceLogout = createRetrofitInstance(isLogout = true) + fun reCreateLogout(serverNumber: Int? = null) { + instanceLogout = createRetrofitInstance(serverNumber, isLogout = true) } private fun createRetrofitInstance(serverNumber: Int? = null, isLogout: Boolean): ApiService { return Retrofit.Builder().run { diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginFragment.kt b/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginFragment.kt index f341ac5f..7a3ada6f 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginFragment.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginFragment.kt @@ -395,11 +395,14 @@ class LoginFragment: Fragment() { } private fun relogin() { - LoginUtil.clearAuthStateAndNotificationToken { - // relogin() の契機のひとつ、通知タップからの再認証の失敗時に MainActivity をスタックに残さないように。 - shouldClearTaskOnOAuthFailure = true - startAuthorization() + val serverList = ServerRepository().loadServerList() + for (serverNumber in serverList) { + LoginUtil.clearAuthStateAndNotificationToken(serverNumber) { + // relogin() の契機のひとつ、通知タップからの再認証の失敗時に MainActivity をスタックに残さないように。 + shouldClearTaskOnOAuthFailure = true + } } + ServerRepository().removeServerList() } fun startAuthorization() { diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginUtil.kt b/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginUtil.kt index 60f13a35..ac67b45e 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginUtil.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginUtil.kt @@ -7,12 +7,12 @@ import jp.atled.agileworks.view.ui.documentweb.DocumentWebFragment import kotlinx.android.synthetic.main.activity_direct_open_document.* object LoginUtil { - fun clearAuthStateAndNotificationToken(onResponse: (Boolean) -> Unit) { - NotificationRepository().clearToken { + fun clearAuthStateAndNotificationToken(serverNumber: Int? = null, onResponse: (Boolean) -> Unit) { + NotificationRepository(serverNumber).clearToken() { // FCM トークンの削除に API 呼び出しを伴うので、トークン削除できてからリポジトリをクリアする。 - AuthStateRepository().clear() + AuthStateRepository(serverNumber).clear() OAuthService.resetAuthState() - DeviceInfoRepository().removeDeviceInfo() + DeviceInfoRepository(serverNumber).removeDeviceInfo() onResponse(it) } } -- GitLab