package com.zegoggles.smssync.tasks;
import android.os.AsyncTask;
import android.text.TextUtils;
import android.util.Log;
import com.zegoggles.smssync.auth.OAuth2Client;
import com.zegoggles.smssync.auth.OAuth2Token;
import com.zegoggles.smssync.auth.XOAuthConsumer;
import com.zegoggles.smssync.preferences.AuthPreferences;
import java.io.IOException;
import static com.zegoggles.smssync.App.TAG;
public class MigrateOAuth1TokenTask extends AsyncTask<Void, Void, OAuth2Token> {
private final XOAuthConsumer xoauthConsumer;
private final OAuth2Client oAuth2Client;
private final AuthPreferences authPreferences;
public MigrateOAuth1TokenTask(XOAuthConsumer xoauthConsumer,
OAuth2Client oauth2Client,
AuthPreferences authPreferences) {
this.xoauthConsumer = xoauthConsumer;
this.oAuth2Client = oauth2Client;
this.authPreferences = authPreferences;
}
@Override
protected OAuth2Token doInBackground(Void... empty) {
try {
String refreshToken = xoauthConsumer.migrateToken(oAuth2Client.getClientId());
if (!TextUtils.isEmpty(refreshToken)) {
return oAuth2Client.refreshToken(refreshToken);
} else {
Log.w(TAG, "did not get a refresh token");
}
} catch (IOException e) {
Log.w(TAG, e);
}
return null;
}
@Override
protected void onPostExecute(OAuth2Token oAuth2Token) {
if (oAuth2Token != null) {
authPreferences.setOauth2Token(
authPreferences.getUsername(),
oAuth2Token.accessToken,
oAuth2Token.refreshToken);
authPreferences.clearOAuth1Data();
}
}
}