package com.fsck.k9.mail.oauth;
import com.fsck.k9.mail.K9MailLib;
import com.fsck.k9.mail.filter.Base64;
import org.json.JSONException;
import org.json.JSONObject;
import timber.log.Timber;
/**
* Parses Google's Error/Challenge responses
* See: https://developers.google.com/gmail/xoauth2_protocol#error_response
*/
public class XOAuth2ChallengeParser {
public static final String BAD_RESPONSE = "400";
public static boolean shouldRetry(String response, String host) {
String decodedResponse = Base64.decode(response);
if (K9MailLib.isDebug()) {
Timber.v("Challenge response: %s", decodedResponse);
}
try {
JSONObject json = new JSONObject(decodedResponse);
String status = json.getString("status");
if (!BAD_RESPONSE.equals(status)) {
return false;
}
} catch (JSONException jsonException) {
Timber.e("Error decoding JSON response from: %s. Response was: %s", host, decodedResponse);
}
return true;
}
}