in auth-lib/src/main/java/com/spotify/sdk/android/auth/LoginActivity.java [150:206]
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (requestCode == REQUEST_CODE) {
AuthorizationResponse.Builder response = new AuthorizationResponse.Builder();
if (resultCode == RESULT_ERROR) {
response.setType(AuthorizationResponse.Type.ERROR);
String errorMessage;
if (intent == null) {
errorMessage = "Invalid message format";
} else {
errorMessage = intent.getStringExtra(EXTRA_ERROR);
}
if (errorMessage == null) {
errorMessage = "Unknown error";
}
response.setError(errorMessage);
} else if (resultCode == RESULT_OK) {
Bundle data = intent.getParcelableExtra(EXTRA_REPLY);
if (data == null) {
response.setType(AuthorizationResponse.Type.ERROR);
response.setError("Missing response data");
} else {
String responseType = data.getString(KEY_RESPONSE_TYPE, "unknown");
Log.d(TAG, "Response: " + responseType);
response.setState(data.getString(KEY_STATE, null));
switch (responseType) {
case RESPONSE_TYPE_TOKEN:
String token = data.getString(KEY_ACCESS_TOKEN);
int expiresIn = data.getInt(KEY_EXPIRES_IN);
response.setType(AuthorizationResponse.Type.TOKEN);
response.setAccessToken(token);
response.setExpiresIn(expiresIn);
break;
case RESPONSE_TYPE_CODE:
String code = data.getString(KEY_AUTHORIZATION_CODE);
response.setType(AuthorizationResponse.Type.CODE);
response.setCode(code);
break;
default:
response.setType(AuthorizationResponse.Type.UNKNOWN);
break;
}
}
} else {
response.setType(AuthorizationResponse.Type.EMPTY);
}
mAuthorizationClient.setOnCompleteListener(this);
mAuthorizationClient.complete(response.build());
}
}