package com.example.slidingmenu.yujing.client.activity; import org.json.JSONException; import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.AsyncTask.Status; import android.view.View; import com.example.slidingmenu.R; import com.example.slidingmenu.yujing.client.application.ClientApplication; import com.example.slidingmenu.yujing.client.network.HttpClient; import com.example.slidingmenu.yujing.client.network.Request; import com.example.slidingmenu.yujing.client.network.mode.RequestParam; import com.example.slidingmenu.yujing.client.network.mode.ResponseParam; import com.example.slidingmenu.yujing.client.utils.Utils; public class AboutActivity extends Activity{ private String updateUrl = ""; private UpdateTask mUpdateTask = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.about_help_layout); } public void onUpdateClick(View v) { ClientApplication client = (ClientApplication) this.getApplication(); SharedPreferences shared = client.getLoginUserInfo(); RequestParam requestParam = new RequestParam(); requestParam.setUserName(shared.getString(RequestParam.USER_NAME, "")); requestParam.setPassword(shared.getString(RequestParam.PASSWORD, "")); requestParam.setRequestType(RequestParam.UPDATE); requestParam.setRandomKey("1234"); requestParam.setParams(new String[]{""}); mUpdateTask = new UpdateTask(); mUpdateTask.execute(requestParam); } private void update() { try { Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); if(updateUrl == null || updateUrl.equals("")) { Utils.myToast(AboutActivity.this, getString(R.string.update_fail), R.drawable.toast_error); return; } Uri url = Uri.parse(updateUrl); intent.setData(url); startActivity(intent); } catch (Exception e) { e.printStackTrace(); Utils.myToast(AboutActivity.this, e.getMessage(), R.drawable.toast_error); return; } } class UpdateTask extends AsyncTask<RequestParam, Integer, Integer>{ private ProgressDialog dialog; @Override protected void onPreExecute() { dialog = ProgressDialog.show(AboutActivity.this, "", getText(R.string.waiting)); super.onPreExecute(); } @Override protected Integer doInBackground(RequestParam... params) { if(!HttpClient.isConnect(AboutActivity.this)) { return -1; } RequestParam requestParam = params[0]; String res = Request.request(requestParam.getJSON()); if ("".equals(res)) { return -1; } try { ResponseParam response = new ResponseParam(res); if (response.getResult() != ResponseParam.RESULT_SUCCESS) { return -1; } AboutActivity.this.updateUrl = response.getContent(); return 0; } catch (JSONException e) { e.printStackTrace(); } return -1; } @Override protected void onPostExecute(Integer result) { super.onPostExecute(result); dialog.dismiss(); if(result == -1) { Utils.myToast(AboutActivity.this, getString(R.string.update_fail), R.drawable.toast_error); return; } if(result == 0) { update(); } } } @Override protected void onDestroy() { if(mUpdateTask != null && mUpdateTask.getStatus() == Status.RUNNING) { mUpdateTask.cancel(true); mUpdateTask = null; } super.onDestroy(); } }