~ocsinventory-dev/ocsinventory-android-agent/trunk

« back to all changes in this revision

Viewing changes to src/org/ocsinventory/android/agent/AsyncOperations.java

  • Committer: cdpointpoint
  • Date: 2014-06-12 19:01:13 UTC
  • Revision ID: cdpointpoint-20140612190113-dnl1w1wl8xr3wnxg
Delete old package src

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
package org.ocsinventory.android.agent;
2
 
 
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;
8
 
 
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;
17
 
 
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;
27
 
        
28
 
        public AsyncOperations ( boolean send , ProgressDialog progressDialog, TextView status, Activity act, Context ctx) {
29
 
                this.mSend=send;
30
 
                this.mProgressDialog=progressDialog;
31
 
                this.mTvStatus=status;
32
 
                this.mAppCtx=ctx;
33
 
                this.mActivity = act;
34
 
                this.mDownload=false;
35
 
        }
36
 
        
37
 
        @Override protected void onPreExecute() {
38
 
                mTvStatus.setText(R.string.state_build_inventory);
39
 
        }
40
 
        
41
 
        @Override protected void onPostExecute(String msg) {
42
 
                OCSLog.getInstance().debug("onPostExecute ["+msg+"]");
43
 
                mProgressDialog.dismiss();
44
 
                if ( mDownload ) {
45
 
                        // Toast cant be build in the thread doInBackground
46
 
                Toast toast = Toast.makeText(mAppCtx, mAppCtx.getString(R.string.start_download_service),
47
 
                                Toast.LENGTH_LONG);
48
 
                toast.show();
49
 
                }
50
 
 
51
 
                mTvStatus.setText(msg);
52
 
        }
53
 
        
54
 
        @Override       protected String doInBackground(Void... params) {
55
 
        
56
 
                Inventory inventory  = Inventory.getInstance(mActivity);
57
 
        
58
 
                OCSProtocol ocsproto = new OCSProtocol(mAppCtx);
59
 
                
60
 
                if ( ! mSend ) { 
61
 
                        String status = new OCSFiles(mAppCtx).copyToExternal(inventory);
62
 
                        if ( status.equals("OK"))
63
 
                                status=mAppCtx.getString(R.string.state_saved);
64
 
                        return status; 
65
 
                }
66
 
                publishProgress(R.string.state_send_prolog);
67
 
        
68
 
                OCSPrologReply reply;
69
 
                String rep;
70
 
                try {
71
 
                        reply = ocsproto.sendPrologueMessage(inventory);
72
 
                } catch (OCSProtocolException e1) {
73
 
                        return(e1.getMessage());
74
 
                }
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());
79
 
                }
80
 
                else {
81
 
                        publishProgress(R.string.state_send_inventory);
82
 
                        try {
83
 
                                rep=ocsproto.sendInventoryMessage(inventory);
84
 
                        } catch (OCSProtocolException e) {
85
 
                                return(e.getMessage());
86
 
                        }
87
 
                        
88
 
                        
89
 
                        OCSLog.getInstance().debug("Retour send inventory ["+rep+"]");
90
 
                        
91
 
                        if ( ! reply.getIdList().isEmpty() ) {
92
 
                                OCSLog.getInstance().debug(mAppCtx.getString(R.string.start_download_service));
93
 
                                
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
98
 
                        }
99
 
                        
100
 
                        if ( rep == null )
101
 
                                return(mAppCtx.getString(R.string.state_send_error));
102
 
                        else if ( rep.length() == 0 )
103
 
                                return(mAppCtx.getString(R.string.state_sent_inventory));
104
 
                        else
105
 
                                return(rep);
106
 
                }
107
 
        }
108
 
        protected void onProgressUpdate(Integer... progress) {
109
 
                mProgressDialog.setMessage(mAppCtx.getString(progress[0]));
110
 
    }
111
 
 
112
 
}