diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/MainActivity.kt b/app/src/main/java/jp/atled/agileworks/view/ui/MainActivity.kt index c983924863770a916a815b658df7e4e51a18d3e9..1322ca82587e5de13e46754bfda378ef1c4c3482 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/MainActivity.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/MainActivity.kt @@ -51,7 +51,6 @@ class MainActivity : BaseActivity() { DrawerMenu.setup(this, drawer_layout, navigation_drawer) app_ver_label.text = getString(R.string.app_ver_format, BuildConfig.VERSION_NAME) setupNotification() - setupFcm() if (isDirectOpen()) { DirectOpenDocumentActivity.start(this, intent.extras) @@ -97,18 +96,6 @@ class MainActivity : BaseActivity() { manager.createNotificationChannel(channel) } - private fun setupFcm() { - // 非同期なので最初の API 呼び出しに間に合わない可能性はあるが、最初の何回かの API 呼出で - // デバイス ID 付加されずに最終利用日時が更新されないだけなので気にしない。 - FcmRepository().getFcmToken { _, token -> - if (token != null) { - DeviceInfoRepository().loadOrCreateDeviceId(this, token) { _, deviceId -> - Log.d(TAG, "device id = $deviceId") - } - } - } - } - override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) val isDarkTheme = newConfig.uiMode and Configuration.UI_MODE_NIGHT_MASK 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 3eaf474b5beb14ed0a3f5c41b0a3fcbd425cef02..5eb23f872038e0acd9e6f0b73ed733b7d3f5376c 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 @@ -21,8 +21,6 @@ import jp.atled.agileworks.BuildConfig import jp.atled.agileworks.R import jp.atled.agileworks.AwApp import jp.atled.agileworks.databinding.FragmentLoginBinding -import jp.atled.agileworks.model.CertRepository -import jp.atled.agileworks.model.NotificationRepository import jp.atled.agileworks.model.api.ApiClient import jp.atled.agileworks.view.ui.MainActivity import jp.atled.agileworks.view.ui.license.License @@ -36,7 +34,7 @@ import com.journeyapps.barcodescanner.ScanContract import com.journeyapps.barcodescanner.ScanOptions import com.journeyapps.barcodescanner.ScanIntentResult -import jp.atled.agileworks.model.LoginRepository +import jp.atled.agileworks.model.* class LoginFragment: Fragment() { @@ -234,12 +232,6 @@ class LoginFragment: Fragment() { override fun onPause() { Log.d(TAG, "call onPause()") super.onPause() - - try { - mOAuthService.saveAuthState() - } catch (e: Exception) { - Log.e(TAG, "exception: ${e.message ?: "(unknown exception)"}") - } } override fun onStop() { @@ -346,6 +338,11 @@ class LoginFragment: Fragment() { response, ex -> Log.d(TAG, "response?.jsonSerializeString()=" + response?.jsonSerializeString()) mOAuthService.getAuthState().update(response, ex) + try { + mOAuthService.saveAuthState() + } catch (e: Exception) { + Log.e(TAG, "exception: ${e.message ?: "(unknown exception)"}") + } if (response != null) { // トークンの更新に成功したら、MainActivity を起動 FirebaseInstanceId.getInstance().instanceId.addOnCompleteListener { task -> @@ -356,7 +353,7 @@ class LoginFragment: Fragment() { } else { Log.w(TAG, "getInstanceId failed", task.exception) } - whenAuthorizationSucceeds() + setupFcm() } } else { // 失敗したらログイン画面 @@ -366,6 +363,18 @@ class LoginFragment: Fragment() { Log.d(TAG, "return handleAuthorizationResponse()") } + private fun setupFcm() { + FcmRepository().getFcmToken { _, token -> + if (token != null) { + DeviceInfoRepository().loadOrCreateDeviceId(this.requireActivity(), token) { _, deviceId -> + Log.d(TAG, "device id = $deviceId") + // レスポンスが返ってきたらMainActivity起動 + whenAuthorizationSucceeds() + } + } + } + } + private fun whenAuthorizationSucceeds() { Log.d(TAG, "call whenAuthorizationSucceeds()") MainActivity.start(this.requireActivity(), arguments)