1
package org.ocsinventory.android.agent;
3
import org.ocsinventory.android.actions.Inventory;
4
import org.ocsinventory.android.actions.OCSFiles;
5
import org.ocsinventory.android.actions.OCSLog;
6
import org.ocsinventory.android.actions.OCSProtocol;
7
import org.ocsinventory.android.actions.OCSProtocolException;
9
import android.annotation.SuppressLint;
10
import android.app.Activity;
11
import android.app.ProgressDialog;
12
import android.content.Context;
13
import android.content.Intent;
14
import android.os.AsyncTask;
15
import android.widget.TextView;
16
import android.widget.Toast;
18
@SuppressLint("NewApi")
19
public class AsyncOperations extends AsyncTask<Void , Integer, String> {
20
//private final View root;
21
private final Activity mActivity;
22
private ProgressDialog mProgressDialog;
23
private TextView mTvStatus;
24
private Context mAppCtx;
25
private boolean mSend;
26
private boolean mDownload;
28
public AsyncOperations ( boolean send , ProgressDialog progressDialog, TextView status, Activity act, Context ctx) {
30
this.mProgressDialog=progressDialog;
31
this.mTvStatus=status;
37
@Override protected void onPreExecute() {
38
mTvStatus.setText(R.string.state_build_inventory);
41
@Override protected void onPostExecute(String msg) {
42
OCSLog.getInstance().debug("onPostExecute ["+msg+"]");
43
mProgressDialog.dismiss();
45
// Toast cant be build in the thread doInBackground
46
Toast toast = Toast.makeText(mAppCtx, mAppCtx.getString(R.string.start_download_service),
51
mTvStatus.setText(msg);
54
@Override protected String doInBackground(Void... params) {
56
Inventory inventory = Inventory.getInstance(mActivity);
58
OCSProtocol ocsproto = new OCSProtocol(mAppCtx);
61
String status = new OCSFiles(mAppCtx).copyToExternal(inventory);
62
if ( status.equals("OK"))
63
status=mAppCtx.getString(R.string.state_saved);
66
publishProgress(R.string.state_send_prolog);
71
reply = ocsproto.sendPrologueMessage(inventory);
72
} catch (OCSProtocolException e1) {
73
return(e1.getMessage());
75
OCSLog.getInstance().debug("Retour send prolog ["+reply.getResponse()+"]");
76
OCSLog.getInstance().debug(reply.log());
77
if ( reply.getResponse().equals("ERROR")) {
78
return(reply.getResponse());
81
publishProgress(R.string.state_send_inventory);
83
rep=ocsproto.sendInventoryMessage(inventory);
84
} catch (OCSProtocolException e) {
85
return(e.getMessage());
89
OCSLog.getInstance().debug("Retour send inventory ["+rep+"]");
91
if ( ! reply.getIdList().isEmpty() ) {
92
OCSLog.getInstance().debug(mAppCtx.getString(R.string.start_download_service));
94
// Some downlowds requiered invoke download service
95
Intent dldService = new Intent(mAppCtx, OCSDownloadService.class);
96
mAppCtx.startService(dldService);
97
mDownload=true; // Info for postexecute stage
101
return(mAppCtx.getString(R.string.state_send_error));
102
else if ( rep.length() == 0 )
103
return(mAppCtx.getString(R.string.state_sent_inventory));
108
protected void onProgressUpdate(Integer... progress) {
109
mProgressDialog.setMessage(mAppCtx.getString(progress[0]));