@@ -30,7 +30,7 @@ import io.fusionauth.mobilesdk.AuthorizationManager
3030import io.fusionauth.mobilesdk.FusionAuthState
3131import io.fusionauth.mobilesdk.UserInfo
3232import io.fusionauth.mobilesdk.exceptions.AuthorizationException
33- import io.fusionauth.mobilesdk.storage.SharedPreferencesStorage
33+ import io.fusionauth.mobilesdk.storage.DataStoreStorage
3434import kotlinx.coroutines.launch
3535import org.json.JSONException
3636import java.io.IOException
@@ -58,7 +58,7 @@ class TokenActivity : AppCompatActivity() {
5858 if (! AuthorizationManager .isInitialized()) {
5959 AuthorizationManager .initialize(
6060 AuthorizationConfiguration .fromResources(this , R .raw.fusionauth_config),
61- SharedPreferencesStorage (this )
61+ DataStoreStorage (this )
6262 )
6363 }
6464
@@ -75,21 +75,20 @@ class TokenActivity : AppCompatActivity() {
7575 }
7676
7777 Logger .getLogger(TAG ).info(" Checking for authorization response" )
78- if (AuthorizationManager .isAuthenticated()) {
79- fetchUserInfoAndDisplayAuthorized(/* authState.getAccessToken()*/ )
80- return
81- }
82-
8378 lifecycleScope.launch {
84- displayLoading(" Exchanging authorization code" )
85- try {
86- val authState: FusionAuthState = AuthorizationManager .oAuth(this @TokenActivity)
87- .handleRedirect(intent)
88- Log .i(TAG , authState.toString())
79+ if (AuthorizationManager .isAuthenticated()) {
8980 fetchUserInfoAndDisplayAuthorized()
90- } catch (ex: AuthorizationException ) {
91- Log .e(TAG , " Failed to exchange authorization code" , ex)
92- displayNotAuthorized(" Authorization failed" )
81+ } else {
82+ displayLoading(" Exchanging authorization code" )
83+ try {
84+ val authState: FusionAuthState = AuthorizationManager .oAuth(this @TokenActivity)
85+ .handleRedirect(intent)
86+ Log .i(TAG , authState.toString())
87+ fetchUserInfoAndDisplayAuthorized()
88+ } catch (ex: AuthorizationException ) {
89+ Log .e(TAG , " Failed to exchange authorization code" , ex)
90+ displayNotAuthorized(" Authorization failed" )
91+ }
9392 }
9493 }
9594 }
@@ -129,7 +128,7 @@ class TokenActivity : AppCompatActivity() {
129128 }
130129
131130 @MainThread
132- private fun displayAuthorized () {
131+ private suspend fun displayAuthorized () {
133132 findViewById<View >(R .id.authorized).visibility = View .VISIBLE
134133 findViewById<View >(R .id.not_authorized).visibility = View .GONE
135134 findViewById<View >(R .id.loading_container).visibility = View .GONE
@@ -214,7 +213,7 @@ class TokenActivity : AppCompatActivity() {
214213 showSnackbar(" Failed to parse user info" )
215214 }
216215
217- runOnUiThread { this @TokenActivity.displayAuthorized() }
216+ this @TokenActivity.displayAuthorized()
218217 }
219218 }
220219
@@ -265,12 +264,14 @@ class TokenActivity : AppCompatActivity() {
265264
266265 @MainThread
267266 private fun signOut () {
268- AuthorizationManager .clearState()
267+ lifecycleScope.launch {
268+ AuthorizationManager .clearState()
269269
270- val mainIntent = Intent (this , LoginActivity ::class .java)
271- mainIntent.setFlags(Intent .FLAG_ACTIVITY_CLEAR_TOP )
272- startActivity(mainIntent)
273- finish()
270+ val mainIntent = Intent (this @TokenActivity, LoginActivity ::class .java)
271+ mainIntent.flags = Intent .FLAG_ACTIVITY_CLEAR_TOP
272+ startActivity(mainIntent)
273+ finish()
274+ }
274275 }
275276
276277 @MainThread
0 commit comments