/**
*
*/
package com.gmail.charleszq.picorner.task.px500;
import java.net.URL;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.net.Uri;
import android.util.Log;
import com.github.yuyang226.j500px.J500px;
import com.github.yuyang226.j500px.oauth.OAuthToken;
import com.gmail.charleszq.picorner.PicornerApplication;
import com.gmail.charleszq.picorner.R;
import com.gmail.charleszq.picorner.task.AbstractContextAwareTask;
import com.gmail.charleszq.picorner.utils.IConstants;
/**
* @author charleszq
*
*/
public class Px500OAuthTask extends
AbstractContextAwareTask<Void, Integer, String> {
private final String TAG = Px500OAuthTask.class.getSimpleName();
private static final Uri OAUTH_CALLBACK_URI = Uri
.parse(IConstants.PX500_OAUTH_CALLBACK_SCHEMA + "://oauth"); //$NON-NLS-1$
private ProgressDialog mProgressDialog;
public Px500OAuthTask(Context ctx) {
super(ctx);
}
/*
* (non-Javadoc)
*
* @see android.os.AsyncTask#onPreExecute()
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressDialog = ProgressDialog.show(mContext,
"", mContext.getString(R.string.auth_gen_req_token)); //$NON-NLS-1$
mProgressDialog.setCanceledOnTouchOutside(true);
mProgressDialog.setCancelable(true);
mProgressDialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dlg) {
Px500OAuthTask.this.cancel(true);
}
});
}
@Override
protected String doInBackground(Void... params) {
try {
J500px j500px = new J500px(IConstants.PX500_CONSUMER_KEY,
IConstants.PX500_CONSUMER_SECRET);
OAuthToken token = j500px.getOAuthInterface().getRequestToken(
OAUTH_CALLBACK_URI.toString());
saveTokenSecrent(token.getOauthTokenSecret());
URL oauthUrl = j500px.getOAuthInterface().buildAuthenticationUrl(
token);
return oauthUrl.toString();
} catch (Exception e) {
Log.e(TAG, "Error to oauth", e); //$NON-NLS-1$
return null;
}
}
private void saveTokenSecrent(String oauthTokenSecret) {
Activity act = (Activity) mContext;
PicornerApplication app = (PicornerApplication) act.getApplication();
app.savePx500TokenSecret(oauthTokenSecret);
}
/*
* (non-Javadoc)
*
* @see
* com.gmail.charleszq.picorner.task.AbstractGeneralTask#onPostExecute(java
* .lang.Object)
*/
@Override
protected void onPostExecute(String result) {
if (mProgressDialog != null) {
try {
mProgressDialog.cancel();
} catch (Exception e) {
}
}
super.onPostExecute(result);
}
}