package net.basilwang.core;
import net.basilwang.CheckCodeDialog;
import net.basilwang.R;
import net.basilwang.enums.TAHelperDownloadPhrase;
import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;
public class LogOnPreferenceTask extends AsyncTask<String, Integer, Boolean> {
static final String TAG = "LogOnPreferenceTask";
private Context mContext;
private AsyncTask<Integer, Integer, String> mTask;
String title;
private int accountId;
int lastMileStone=0;
private int mileStoneInterval=0;
public LogOnPreferenceTask(Context context,
AsyncTask<Integer, Integer, String> task) {
// TAConfiguration config = TAConfiguration.Instance();
// TAHelper.initWithTAConfiguration(config);
mContext = context;
mTask = task;
}
@Override
protected void onPreExecute() {
// ((Activity) mContext).setProgressBarVisibility(true);
title = ((Activity) mContext).getTitle().toString();
super.onPreExecute();
}
@Override
protected Boolean doInBackground(String... params) {
accountId = Integer.valueOf(params[3]);
// 2012-04-21 basilwang honeycomb request network access on new thread
// try {
// TAHelper.Instance().setSessionID();
// } catch (SessionIDNotFoundException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// Log.v("Undergraduate", TAContext.Instance().getSessionid());
return HttpClient(params);
}
private Boolean HttpClient(String... params) {
OnDownloadProgressListener listener = new OnDownloadProgressListener() {
@Override
public void onDownloadProgress(int percent, int downloadedData,
int total,TAHelperDownloadPhrase phrase) {
publishProgress(percent, downloadedData, total,phrase.getValue());
}
};
return TAHelper.Instance().logOn(params[0], params[1], params[2],
listener);
}
protected void onProgressUpdate(Integer... progress) {
// ProgressBar
// mBar=(ProgressBar)(((Activity)mContext).findViewById(R.id.progressBar));
// mBar.setProgress(progress[0]);
// 2012-04-14 basilwang Window.FEATURE_PROGRESS max progress is 10000,so
// we mutiply by 100
// 2012-11-24 basilwang
if(progress[3]>lastMileStone)
{
mileStoneInterval=progress[3]-lastMileStone;
}
int progressInterval=(int)(progress[0] * mileStoneInterval/100);
((CheckCodeDialog) mContext).getProgressBar().setProgress(lastMileStone+progressInterval);
if(progress[0]==100){
lastMileStone+=mileStoneInterval;
}
// ((Activity) mContext).setProgress(progress[0] * 100);
int lp = progress[1] / 1000;
int rp = progress[2] / 1000;
// ((Activity) mContext).setTitle(title + " " + lp + "K/" + rp + "K");
}
protected void onPostExecute(Boolean isLogOn) {
if (isLogOn) {
// Intent i = new Intent("net.basilwang.intents.progress").putExtra("progress", 30);
// Log.i(TAG, "progress is 30");
// this.mContext.sendBroadcast(i);
mTask.execute(accountId);
} else {
// Intent i = new Intent("net.basilwang.intents.progress").putExtra("progress", 100);
// this.mContext.sendBroadcast(i);
// 2012-11-8 WeiXiaoXing
((Activity) mContext).finish();
Toast.makeText(
mContext,
mContext.getResources().getString(
R.string.errorpasswordmaybe), Toast.LENGTH_LONG)
.show();
}
}
}