package net.basilwang.core; import net.basilwang.CheckCodeDialog; import net.basilwang.dao.ScoreService; import net.basilwang.enums.TAHelperDownloadPhrase; import android.app.Activity; import android.content.Context; import android.os.AsyncTask; import android.preference.PreferenceManager; import android.util.Log; public class ScorePreferenceTask extends AsyncTask<Integer, Integer, String> { static final String TAG = "ScorePreferenceTask"; private Context mContext; String title; private int accountId; private ScoreService scoreService; private String cemesterIndex; private String cemesterYear; private String semesterValue; int lastMileStone=15; private int mileStoneInterval=0; public ScorePreferenceTask(Context context) { mContext = context; scoreService = new ScoreService(context); semesterValue = PreferenceManager.getDefaultSharedPreferences(mContext) .getString("score_semester_name", ""); } @Override protected void onPreExecute() { // ((Activity) mContext).setProgressBarVisibility(true); title = ((Activity) mContext).getTitle().toString(); super.onPreExecute(); } @Override protected String doInBackground(Integer... params) { accountId = params[0]; // 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 String HttpClient(Integer... params) { OnDownloadProgressListener listener = new OnDownloadProgressListener() { @Override public void onDownloadProgress(int percent, int downloadedData, int total,TAHelperDownloadPhrase phrase) { publishProgress(percent, downloadedData, total,phrase.getValue()); } }; String[] cemesterSettings = semesterValue.split("\\|"); cemesterYear = cemesterSettings[0]; cemesterIndex = cemesterSettings[1]; cemesterYear = cemesterYear.replace('–', '-'); return TAHelper.Instance().getScore(listener, cemesterYear, cemesterIndex); } 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 Log.i(TAG,"lastMileStone is "+String.valueOf(lastMileStone)); if(progress[3]>lastMileStone) { mileStoneInterval=progress[3]-lastMileStone; Log.i(TAG,String.valueOf(mileStoneInterval)); } int progressInterval=(int)(progress[0] * mileStoneInterval/100); ((CheckCodeDialog) mContext).getProgressBar().setProgress(lastMileStone+progressInterval); if(progress[0]==100){ lastMileStone=progress[3]; Log.i(TAG,"percent is 100 and lastMileStone is "+ String.valueOf(lastMileStone)); } // ((Activity) mContext).setTitle(title + " " + lp + "K/" + rp + "K"); } protected void onPostExecute(String scoreString) { // Intent i = new Intent("net.basilwang.intents.progress").putExtra("progress", 60); // this.mContext.sendBroadcast(i); // Log.i(TAG, "progress is 60"); String semesterName = cemesterYear + "|" + cemesterIndex; scoreService.formatAndSaveScoreById(semesterName, scoreString, accountId); // Button mScoreUpdateButton = (Button) ((Activity) mContext) // .findViewById(R.id.scheduling_score_update); // mScoreUpdateButton.setEnabled(true); // Button mCurriculumUpdateButton = (Button) ((Activity) mContext) // .findViewById(R.id.scheduling_update); // mCurriculumUpdateButton.setEnabled(true); // Toast.makeText(mContext, // TAUtils.getCemesterIndex(mContext,cemesterValue) + "成绩下载成功,请到成绩页面查看", // Toast.LENGTH_SHORT).show(); // Update the progress bar // i.putExtra("progress", 100); // this.mContext.sendBroadcast(i); // Log.i(TAG, "progress is 100"); ((CheckCodeDialog) mContext).finish(); ((CheckCodeDialog) mContext).getProgressBar().dismiss(); } }