|
@@ -0,0 +1,1411 @@
|
|
|
|
|
+package com.usai.util;
|
|
|
|
|
+
|
|
|
|
|
+import java.io.BufferedReader;
|
|
|
|
|
+import java.io.IOException;
|
|
|
|
|
+import java.io.InputStream;
|
|
|
|
|
+import java.io.InputStreamReader;
|
|
|
|
|
+import java.net.Socket;
|
|
|
|
|
+import java.net.UnknownHostException;
|
|
|
|
|
+import java.security.KeyManagementException;
|
|
|
|
|
+import java.security.KeyStore;
|
|
|
|
|
+import java.security.KeyStoreException;
|
|
|
|
|
+import java.security.NoSuchAlgorithmException;
|
|
|
|
|
+import java.security.UnrecoverableKeyException;
|
|
|
|
|
+import java.util.Iterator;
|
|
|
|
|
+import java.util.Set;
|
|
|
|
|
+
|
|
|
|
|
+import javax.net.ssl.SSLContext;
|
|
|
|
|
+import javax.net.ssl.TrustManager;
|
|
|
|
|
+import javax.net.ssl.X509TrustManager;
|
|
|
|
|
+
|
|
|
|
|
+import org.apache.http.HttpEntity;
|
|
|
|
|
+import org.apache.http.HttpResponse;
|
|
|
|
|
+import org.apache.http.HttpStatus;
|
|
|
|
|
+import org.apache.http.HttpVersion;
|
|
|
|
|
+import org.apache.http.client.HttpClient;
|
|
|
|
|
+import org.apache.http.client.methods.HttpPost;
|
|
|
|
|
+import org.apache.http.conn.ClientConnectionManager;
|
|
|
|
|
+import org.apache.http.conn.ConnectTimeoutException;
|
|
|
|
|
+import org.apache.http.conn.scheme.PlainSocketFactory;
|
|
|
|
|
+import org.apache.http.conn.scheme.Scheme;
|
|
|
|
|
+import org.apache.http.conn.scheme.SchemeRegistry;
|
|
|
|
|
+import org.apache.http.conn.ssl.SSLSocketFactory;
|
|
|
|
|
+import org.apache.http.entity.mime.HttpMultipartMode;
|
|
|
|
|
+import org.apache.http.entity.mime.MultipartEntity;
|
|
|
|
|
+import org.apache.http.entity.mime.content.StringBody;
|
|
|
|
|
+import org.apache.http.impl.client.DefaultHttpClient;
|
|
|
|
|
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
|
|
|
|
|
+import org.apache.http.params.BasicHttpParams;
|
|
|
|
|
+import org.apache.http.params.HttpConnectionParams;
|
|
|
|
|
+import org.apache.http.params.HttpParams;
|
|
|
|
|
+import org.apache.http.params.HttpProtocolParams;
|
|
|
|
|
+import org.apache.http.protocol.HTTP;
|
|
|
|
|
+import org.json.JSONException;
|
|
|
|
|
+import org.json.JSONObject;
|
|
|
|
|
+
|
|
|
|
|
+import com.usai.apex.ApexTrackingApplication;
|
|
|
|
|
+import com.usai.apex.CustomizeFieldsActivity.fieldedit;
|
|
|
|
|
+
|
|
|
|
|
+import android.content.Context;
|
|
|
|
|
+import android.content.SharedPreferences.Editor;
|
|
|
|
|
+import android.content.pm.PackageManager.NameNotFoundException;
|
|
|
|
|
+import android.database.Cursor;
|
|
|
|
|
+import android.database.sqlite.SQLiteDatabase;
|
|
|
|
|
+import android.database.sqlite.SQLiteStatement;
|
|
|
|
|
+import android.net.ConnectivityManager;
|
|
|
|
|
+import android.net.NetworkInfo;
|
|
|
|
|
+import android.os.Bundle;
|
|
|
|
|
+import android.text.TextUtils;
|
|
|
|
|
+import android.util.Log;
|
|
|
|
|
+
|
|
|
|
|
+public class Network
|
|
|
|
|
+{
|
|
|
|
|
+ public static final int BEHAVIOR_SEARCH = 0;
|
|
|
|
|
+ public static final int BEHAVIOR_RESULT = 1;
|
|
|
|
|
+
|
|
|
|
|
+ private static final int REQUEST_TIMEOUT = 60 * 1000; // request
|
|
|
|
|
+ // time
|
|
|
|
|
+ // out
|
|
|
|
|
+ // 20
|
|
|
|
|
+ // secs
|
|
|
|
|
+ private static final int SO_TIMEOUT = 60 * 1000; // so
|
|
|
|
|
+ // time
|
|
|
|
|
+ // out
|
|
|
|
|
+ // 20
|
|
|
|
|
+ // secs;
|
|
|
|
|
+ public static int AP_USER_AUTH = 1;
|
|
|
|
|
+ public static int AP_USER_NOT_AUTH = 2;
|
|
|
|
|
+ public static int AP_USER_NOT_EXIST = 3;
|
|
|
|
|
+ public static int AP_SESSION_EXPIRED = 4;
|
|
|
|
|
+
|
|
|
|
|
+ public static int AP_MESSAGE_NEW = 5;
|
|
|
|
|
+ public static int AP_MESSAGE_NONE = 6;
|
|
|
|
|
+ //
|
|
|
|
|
+ public static final int RESULT_FALSE = 0;
|
|
|
|
|
+ public static final int RESULT_TRUE = -1;
|
|
|
|
|
+ public static final int RESULT_NET_ERROR = -3;
|
|
|
|
|
+ public static final int RESULT_NET_NOTAVAILABLE = -4;
|
|
|
|
|
+ public static final int RESULT_ERROR = -5;
|
|
|
|
|
+ public static final int RESULT_LOCALFILE_ERROR = -7;
|
|
|
|
|
+ public static final int RESULT_USERAUTH_ERROR = -9;
|
|
|
|
|
+ public static final int RESULT_UPDATE_USERAUTH_ERROR = -11;
|
|
|
|
|
+ public static final int RESULT_SESSION_EXPIRED = -13;
|
|
|
|
|
+ public static final int RESULT_VER_LOW = -15;
|
|
|
|
|
+
|
|
|
|
|
+ public static String URL_UPDATE_AUTH = "https://ra.apexshipping.com/login.php";
|
|
|
|
|
+ public static String URL_REQUEST_COUNT = "https://ra.apexshipping.com/main.php";
|
|
|
|
|
+ public static String URL_REQUEST_RECORDS = "https://ra.apexshipping.com/main.php";
|
|
|
|
|
+ public static String URL_RETRIEVE_PASS = "https://ra.apexshipping.com/main.php";
|
|
|
|
|
+ public static String URL_ANNOUNCEMENTS = "https://ra.apexshipping.com/mobile_news.php";
|
|
|
|
|
+ public static String URL_NEWS = "https://ra.apexshipping.com/mobile_news.php";
|
|
|
|
|
+ public static String URL_LOCATIONS = "https://ra.apexshipping.com/mobile_news.php";
|
|
|
|
|
+ public static String URL_PUSH = "https://ra.apexshipping.com/main.php";
|
|
|
|
|
+ public static String URL_LOG = "https://ra.apexshipping.com/mobile_news.php";
|
|
|
|
|
+
|
|
|
|
|
+ private static HttpClient getNewHttpClient()
|
|
|
|
|
+ {
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ KeyStore trustStore = KeyStore.getInstance(KeyStore
|
|
|
|
|
+ .getDefaultType());
|
|
|
|
|
+ trustStore.load(null, null);
|
|
|
|
|
+
|
|
|
|
|
+ SSLSocketFactory sf = new SSLSocketFactoryEx(trustStore);
|
|
|
|
|
+ sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
|
|
|
|
|
+
|
|
|
|
|
+ HttpParams params = new BasicHttpParams();
|
|
|
|
|
+ HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
|
|
|
|
|
+ HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
|
|
|
|
|
+ HttpConnectionParams.setConnectionTimeout(params, REQUEST_TIMEOUT);
|
|
|
|
|
+ HttpConnectionParams.setSoTimeout(params, SO_TIMEOUT);
|
|
|
|
|
+ SchemeRegistry registry = new SchemeRegistry();
|
|
|
|
|
+ registry.register(new Scheme("http", PlainSocketFactory
|
|
|
|
|
+ .getSocketFactory(), 80));
|
|
|
|
|
+ registry.register(new Scheme("https", sf, 443));
|
|
|
|
|
+
|
|
|
|
|
+ ClientConnectionManager ccm = new ThreadSafeClientConnManager(
|
|
|
|
|
+ params, registry);
|
|
|
|
|
+
|
|
|
|
|
+ return new DefaultHttpClient(ccm, params);
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (Exception e)
|
|
|
|
|
+ {
|
|
|
|
|
+ return new DefaultHttpClient();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static String get_marketnews(String id, int limit)
|
|
|
|
|
+ {
|
|
|
|
|
+ String TAG = "net_dbg@get_marketnews";
|
|
|
|
|
+
|
|
|
|
|
+ if (!Network.NetworkIsAvailable())
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "network not available!");
|
|
|
|
|
+ return null; // network not available
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Bundle parms = new Bundle();
|
|
|
|
|
+ parms.putString("module_name", "Market News");
|
|
|
|
|
+ parms.putString("action_type", "search");
|
|
|
|
|
+ parms.putString("id", id + "");
|
|
|
|
|
+ parms.putString("limit", limit + "");
|
|
|
|
|
+ String jstr = getJson(Network.URL_NEWS, parms);
|
|
|
|
|
+ if (jstr == null || jstr.length() <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ return jstr;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static String get_servicelocation()
|
|
|
|
|
+ {
|
|
|
|
|
+ String TAG = "net_dbg@get_servicelocation";
|
|
|
|
|
+
|
|
|
|
|
+ if (!Network.NetworkIsAvailable())
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "network not available!");
|
|
|
|
|
+ return null; // network not available
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Bundle parms = new Bundle();
|
|
|
|
|
+ parms.putString("module_name", "Location");
|
|
|
|
|
+ parms.putString("action_type", "search");
|
|
|
|
|
+ // parms.putString("id", id+"");
|
|
|
|
|
+ parms.putString("limit", "999");
|
|
|
|
|
+ String jstr = getJson(Network.URL_LOCATIONS, parms);
|
|
|
|
|
+ if (jstr == null || jstr.length() <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ return jstr;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static String get_announcements(String id, int limit)
|
|
|
|
|
+ {
|
|
|
|
|
+ String TAG = "net_dbg@get_announcements";
|
|
|
|
|
+
|
|
|
|
|
+ if (!Network.NetworkIsAvailable())
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "network not available!");
|
|
|
|
|
+ return null; // network not available
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Bundle parms = new Bundle();
|
|
|
|
|
+ parms.putString("module_name", "Announcements");
|
|
|
|
|
+ parms.putString("action_type", "search");
|
|
|
|
|
+ parms.putString("id", id);
|
|
|
|
|
+ parms.putString("limit", limit + "");
|
|
|
|
|
+ String jstr = getJson(Network.URL_ANNOUNCEMENTS, parms);
|
|
|
|
|
+ if (jstr == null || jstr.length() <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ return jstr;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static int change_pass(String oldpass, String newpass, String user)
|
|
|
|
|
+ {
|
|
|
|
|
+ String TAG = "net_dbg@change_pass";
|
|
|
|
|
+ Log.d(TAG, "old:" + oldpass + ";new:" + newpass);
|
|
|
|
|
+ if (!Network.NetworkIsAvailable())
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "network not available!");
|
|
|
|
|
+ return Network.RESULT_NET_NOTAVAILABLE; // network not available
|
|
|
|
|
+ }
|
|
|
|
|
+ Bundle parms = new Bundle();
|
|
|
|
|
+ parms.putString("user", user);
|
|
|
|
|
+ parms.putString("oldpass", oldpass);
|
|
|
|
|
+ parms.putString("newpass", newpass);
|
|
|
|
|
+ parms.putString("module_name", "Change Password");
|
|
|
|
|
+ parms.putString("sessionid", ApexTrackingApplication.get_sessionid());
|
|
|
|
|
+ parms.putString("action", "handset_search");
|
|
|
|
|
+ String jstr = getJson(Network.URL_RETRIEVE_PASS, parms);
|
|
|
|
|
+ /*
|
|
|
|
|
+ * error occur while get authorization info from server. include can not
|
|
|
|
|
+ * reach server , wrong parms ,server get wrong , etc.
|
|
|
|
|
+ */
|
|
|
|
|
+ if (jstr == null || jstr.length() <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return Network.RESULT_NET_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+ JSONObject jsobj;
|
|
|
|
|
+
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ jsobj = new JSONObject(jstr);
|
|
|
|
|
+ if (jsobj.length() > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ int iresult = jsobj.getInt("result");
|
|
|
|
|
+ if (iresult == Network.AP_SESSION_EXPIRED)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.e(TAG, "AP_SESSION_EXPIRED");
|
|
|
|
|
+ Network.get_Auth(user, oldpass);
|
|
|
|
|
+ jstr = getJson(Network.URL_RETRIEVE_PASS, parms);
|
|
|
|
|
+ jsobj = new JSONObject(jstr);
|
|
|
|
|
+ iresult = jsobj.getInt("result");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (iresult != Network.AP_USER_AUTH)
|
|
|
|
|
+ {
|
|
|
|
|
+ // user not authorized return
|
|
|
|
|
+ Log.d(TAG,
|
|
|
|
|
+ "USER NOT AUTHORIZED CODE="
|
|
|
|
|
+ + jsobj.getInt("result"));
|
|
|
|
|
+ return RESULT_FALSE;
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ return RESULT_TRUE;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return RESULT_NET_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (JSONException e)
|
|
|
|
|
+ {
|
|
|
|
|
+ // TODO Auto-generated catch block
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return RESULT_NET_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static int retrieve_pass(String user, String email)
|
|
|
|
|
+ {
|
|
|
|
|
+ String TAG = "net_dbg@retrieve_pass";
|
|
|
|
|
+ Log.d(TAG, "u:" + user + ";e:" + email);
|
|
|
|
|
+ if (!Network.NetworkIsAvailable())
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "network not available!");
|
|
|
|
|
+ return Network.RESULT_NET_NOTAVAILABLE; // network not available
|
|
|
|
|
+ }
|
|
|
|
|
+ Bundle parms = new Bundle();
|
|
|
|
|
+ parms.putString("user", user);
|
|
|
|
|
+ parms.putString("email", email);
|
|
|
|
|
+ parms.putString("module_name", "Retrieve Password");
|
|
|
|
|
+ parms.putString("action", "handset_search");
|
|
|
|
|
+ String jstr = getJson(Network.URL_RETRIEVE_PASS, parms);
|
|
|
|
|
+ /*
|
|
|
|
|
+ * error occur while get authorization info from server. include can not
|
|
|
|
|
+ * reach server , wrong parms ,server get wrong , etc.
|
|
|
|
|
+ */
|
|
|
|
|
+ if (jstr == null || jstr.length() <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return Network.RESULT_NET_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+ JSONObject jsobj;
|
|
|
|
|
+
|
|
|
|
|
+ // array = new JSONArray(json);
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ jsobj = new JSONObject(jstr);
|
|
|
|
|
+ if (jsobj.length() > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ int iresult = jsobj.getInt("result");
|
|
|
|
|
+
|
|
|
|
|
+ if (iresult != Network.AP_USER_AUTH)
|
|
|
|
|
+ {
|
|
|
|
|
+ // user not authorized return
|
|
|
|
|
+ Log.d(TAG,
|
|
|
|
|
+ "USER NOT AUTHORIZED CODE="
|
|
|
|
|
+ + jsobj.getInt("result"));
|
|
|
|
|
+ return RESULT_FALSE;
|
|
|
|
|
+ }
|
|
|
|
|
+ return RESULT_TRUE;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ return RESULT_NET_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (JSONException e)
|
|
|
|
|
+ {
|
|
|
|
|
+ // TODO Auto-generated catch block
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return RESULT_NET_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static String getJson(String url, Bundle parms)
|
|
|
|
|
+ {
|
|
|
|
|
+ String TAG = "net_dbg@GetJson";
|
|
|
|
|
+ Log.d(TAG, "entry");
|
|
|
|
|
+
|
|
|
|
|
+ parms.putString("sessionid", ApexTrackingApplication.get_sessionid());
|
|
|
|
|
+
|
|
|
|
|
+ // if (true)
|
|
|
|
|
+ // return fakegetJson(url);
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ // BasicHttpParams httpParams = new BasicHttpParams();
|
|
|
|
|
+ // HttpConnectionParams.setConnectionTimeout(httpParams,
|
|
|
|
|
+ // REQUEST_TIMEOUT);
|
|
|
|
|
+ // HttpConnectionParams.setSoTimeout(httpParams, SO_TIMEOUT);
|
|
|
|
|
+ HttpClient client = getNewHttpClient();// new
|
|
|
|
|
+ // DefaultHttpClient(httpParams);
|
|
|
|
|
+ HttpPost post = new HttpPost(url);
|
|
|
|
|
+ MultipartEntity reqEntity = new MultipartEntity(
|
|
|
|
|
+ HttpMultipartMode.BROWSER_COMPATIBLE);
|
|
|
|
|
+
|
|
|
|
|
+ Set<String> keys = parms.keySet();
|
|
|
|
|
+ Log.d(TAG, "================parms============");
|
|
|
|
|
+ for (String key : keys)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (key.contains("_file"))
|
|
|
|
|
+ {
|
|
|
|
|
+ ;
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ reqEntity.addPart(key, new StringBody(parms.get(key)
|
|
|
|
|
+ .toString()));
|
|
|
|
|
+ Log.d(TAG, "key=" + key + " val="
|
|
|
|
|
+ + parms.get(key).toString());
|
|
|
|
|
+ }
|
|
|
|
|
+ Log.d(TAG, "================parms============");
|
|
|
|
|
+
|
|
|
|
|
+ post.setEntity(reqEntity);
|
|
|
|
|
+ HttpResponse response = client.execute(post);
|
|
|
|
|
+ int statucode = response.getStatusLine().getStatusCode();
|
|
|
|
|
+ if (statucode == HttpStatus.SC_OK)
|
|
|
|
|
+ {
|
|
|
|
|
+ HttpEntity resEntity = response.getEntity();
|
|
|
|
|
+ if (resEntity != null)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG,
|
|
|
|
|
+ "Response: content len==>"
|
|
|
|
|
+ + resEntity.getContentLength());
|
|
|
|
|
+ InputStream is = resEntity.getContent();
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ BufferedReader br = new BufferedReader(
|
|
|
|
|
+ new InputStreamReader(is, "utf-8"), 8);
|
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
|
+ String line = null;
|
|
|
|
|
+ while ((line = br.readLine()) != null)
|
|
|
|
|
+ {
|
|
|
|
|
+ sb.append(line + "\n");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Log.d(TAG, "Response: content begin");
|
|
|
|
|
+ Log.d(TAG, sb.toString());
|
|
|
|
|
+ Log.d(TAG, "Response: content end");
|
|
|
|
|
+
|
|
|
|
|
+ if (sb.length() <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ return sb.toString();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (Exception e)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.e(TAG, e.toString());
|
|
|
|
|
+ return null;
|
|
|
|
|
+ // TODO: handle exception
|
|
|
|
|
+ }
|
|
|
|
|
+ finally
|
|
|
|
|
+ {
|
|
|
|
|
+ is.close();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ /*
|
|
|
|
|
+ * resEntity is null
|
|
|
|
|
+ */
|
|
|
|
|
+ Log.d(TAG, "RESPONSE ENTITY IS NULL");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ /*
|
|
|
|
|
+ * Http error; out put error code;
|
|
|
|
|
+ */
|
|
|
|
|
+ Log.d(TAG, "HTTP " + statucode);
|
|
|
|
|
+
|
|
|
|
|
+ HttpEntity resEntity = response.getEntity();
|
|
|
|
|
+ if (resEntity != null)
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ InputStream is = resEntity.getContent();
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ BufferedReader br = new BufferedReader(
|
|
|
|
|
+ new InputStreamReader(is, "utf-8"), 8);
|
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
|
+ String line = null;
|
|
|
|
|
+ while ((line = br.readLine()) != null)
|
|
|
|
|
+ {
|
|
|
|
|
+ sb.append(line + "\n");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Log.d(TAG, "Response: content begin");
|
|
|
|
|
+ Log.d(TAG, sb.toString());
|
|
|
|
|
+ Log.d(TAG, "Response: content end");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (Exception e)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.e(TAG, e.toString());
|
|
|
|
|
+ return null;
|
|
|
|
|
+ // TODO: handle exception
|
|
|
|
|
+ }
|
|
|
|
|
+ finally
|
|
|
|
|
+ {
|
|
|
|
|
+ is.close();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ /*
|
|
|
|
|
+ * resEntity is null
|
|
|
|
|
+ */
|
|
|
|
|
+ Log.e(TAG, "RESPONSE ENTITY IS NULL");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (ConnectTimeoutException e)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "request time out");
|
|
|
|
|
+ return null;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (Exception e)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, e.toString());
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static int get_recordcount(Bundle parms)
|
|
|
|
|
+ {
|
|
|
|
|
+ String TAG = "net_dbg@get_recordcount";
|
|
|
|
|
+
|
|
|
|
|
+ parms.putString("action", "handset_search_count");
|
|
|
|
|
+ parms.putString("sessionid", ApexTrackingApplication.get_sessionid());
|
|
|
|
|
+ Log.d(TAG, "sessionid=" + ApexTrackingApplication.get_sessionid());
|
|
|
|
|
+ String jstr = getJson(Network.URL_REQUEST_COUNT, parms);
|
|
|
|
|
+ if (jstr == null || jstr.length() <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return Network.RESULT_NET_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+ JSONObject jsobj;
|
|
|
|
|
+
|
|
|
|
|
+ // array = new JSONArray(json);
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ jsobj = new JSONObject(jstr);
|
|
|
|
|
+ if (jsobj.length() > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ int iresult = jsobj.getInt("result");
|
|
|
|
|
+ if (iresult == Network.AP_SESSION_EXPIRED)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.e(TAG, "AP_SESSION_EXPIRED");
|
|
|
|
|
+ String user, pass;
|
|
|
|
|
+ user = ApexTrackingApplication.get_user();
|
|
|
|
|
+ pass = ApexTrackingApplication.get_pass();
|
|
|
|
|
+ Network.get_Auth(user, pass);
|
|
|
|
|
+ jstr = getJson(Network.URL_REQUEST_COUNT, parms);
|
|
|
|
|
+ jsobj = new JSONObject(jstr);
|
|
|
|
|
+ iresult = jsobj.getInt("result");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (iresult != Network.AP_USER_AUTH)
|
|
|
|
|
+ {
|
|
|
|
|
+ // session expired
|
|
|
|
|
+ Log.d(TAG,
|
|
|
|
|
+ "USER NOT AUTHORIZED CODE="
|
|
|
|
|
+ + jsobj.getInt("result"));
|
|
|
|
|
+ return RESULT_SESSION_EXPIRED;
|
|
|
|
|
+ // if (get_Auth(name, password) == RESULT_TRUE)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // return get_recordcount(name, password, parms);
|
|
|
|
|
+ //
|
|
|
|
|
+ // }
|
|
|
|
|
+ // else
|
|
|
|
|
+ // {
|
|
|
|
|
+ //
|
|
|
|
|
+ // Log.d(TAG,
|
|
|
|
|
+ // "USER NOT AUTHORIZED CODE="
|
|
|
|
|
+ // + jsobj.getInt("result"));
|
|
|
|
|
+ // return RESULT_SESSION_EXPIRED;
|
|
|
|
|
+ // }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ ApexTrackingApplication.SetAuthorizeStatus(true);
|
|
|
|
|
+ return jsobj.getInt("count");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return Network.RESULT_NET_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (JSONException e)
|
|
|
|
|
+ {
|
|
|
|
|
+ // TODO Auto-generated catch block
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return RESULT_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static String get_records(String name, String password, Bundle parms)
|
|
|
|
|
+ {
|
|
|
|
|
+ String TAG = "net_dbg@get_records";
|
|
|
|
|
+ // parms.putString("user", name);
|
|
|
|
|
+ // parms.putString("password", password);
|
|
|
|
|
+ // if (!Network.NetworkIsAvailable())
|
|
|
|
|
+ // {
|
|
|
|
|
+ // Log.d(TAG, "network not available!");
|
|
|
|
|
+ // return "Network.RESULT_NET_NOTAVAILABLE"; // network not available
|
|
|
|
|
+ // }
|
|
|
|
|
+ parms.putString("action", "handset_search");
|
|
|
|
|
+ parms.putString("sessionid", ApexTrackingApplication.get_sessionid());
|
|
|
|
|
+ String jstr = getJson(Network.URL_REQUEST_RECORDS, parms);
|
|
|
|
|
+ if (jstr == null || jstr.length() <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ JSONObject jsobj;
|
|
|
|
|
+ //
|
|
|
|
|
+ // array = new JSONArray(json);
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ jsobj = new JSONObject(jstr);
|
|
|
|
|
+ if (jsobj.length() > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ int iresult = jsobj.getInt("result");
|
|
|
|
|
+ if (iresult == Network.AP_SESSION_EXPIRED)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.e(TAG, "AP_SESSION_EXPIRED");
|
|
|
|
|
+ String user, pass;
|
|
|
|
|
+ user = ApexTrackingApplication.get_user();
|
|
|
|
|
+ pass = ApexTrackingApplication.get_pass();
|
|
|
|
|
+ Network.get_Auth(user, pass);
|
|
|
|
|
+ jstr = getJson(Network.URL_REQUEST_RECORDS, parms);
|
|
|
|
|
+ jsobj = new JSONObject(jstr);
|
|
|
|
|
+ iresult = jsobj.getInt("result");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (iresult != Network.AP_USER_AUTH)
|
|
|
|
|
+ {
|
|
|
|
|
+ // session expired
|
|
|
|
|
+ Log.d(TAG,
|
|
|
|
|
+ "USER NOT AUTHORIZED CODE="
|
|
|
|
|
+ + jsobj.getInt("result"));
|
|
|
|
|
+ return null;
|
|
|
|
|
+ // if (get_Auth(name, password) == RESULT_TRUE)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // return get_records(name, password, parms);
|
|
|
|
|
+ //
|
|
|
|
|
+ // }
|
|
|
|
|
+ // else
|
|
|
|
|
+ // {
|
|
|
|
|
+ //
|
|
|
|
|
+ // Log.d(TAG,
|
|
|
|
|
+ // "USER NOT AUTHORIZED CODE="
|
|
|
|
|
+ // + jsobj.getInt("result"));
|
|
|
|
|
+ // return null;
|
|
|
|
|
+ // }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ ApexTrackingApplication.SetAuthorizeStatus(true);
|
|
|
|
|
+ return jstr;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (JSONException e)
|
|
|
|
|
+ {
|
|
|
|
|
+ // TODO Auto-generated catch block
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+
|
|
|
|
|
+ // return RESULT_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static String get_push(String e_id, String s_id, int limit,
|
|
|
|
|
+ int offset)
|
|
|
|
|
+ {
|
|
|
|
|
+ String TAG = "net_dbg@get_push";
|
|
|
|
|
+ Bundle parms = new Bundle();
|
|
|
|
|
+ parms.putString("action", "handset_search");
|
|
|
|
|
+ parms.putString("e_id", e_id);
|
|
|
|
|
+ parms.putString("s_id", s_id);
|
|
|
|
|
+ parms.putString("limit", limit + "");
|
|
|
|
|
+ parms.putString("offset", offset + "");
|
|
|
|
|
+ parms.putString("action_type", "detail");
|
|
|
|
|
+ parms.putString("module_name", "Pull Message");
|
|
|
|
|
+ parms.putString("uuid", commonUtil.getDUID());
|
|
|
|
|
+ String sessionid = ApexTrackingApplication.get_sessionid();
|
|
|
|
|
+ // if (TextUtils.isEmpty(sessionid))
|
|
|
|
|
+ // {
|
|
|
|
|
+ //
|
|
|
|
|
+ // Log.d(TAG, "no sessionid return!");
|
|
|
|
|
+ // return null;
|
|
|
|
|
+ //
|
|
|
|
|
+ // }
|
|
|
|
|
+ String user = ApexTrackingApplication.get_user();
|
|
|
|
|
+ // if (TextUtils.isEmpty(user))
|
|
|
|
|
+ // {
|
|
|
|
|
+ //
|
|
|
|
|
+ // Log.d(TAG, "no user name return!");
|
|
|
|
|
+ // return null;
|
|
|
|
|
+ //
|
|
|
|
|
+ // }
|
|
|
|
|
+ parms.putString("sessionid", sessionid);
|
|
|
|
|
+ parms.putString("user", user);
|
|
|
|
|
+ // SQLiteDatabase db =
|
|
|
|
|
+ // dbUtil.OpenDB(ApexTrackingApplication.get_instance(), null, false);
|
|
|
|
|
+ // Cursor cursor = db.query("push_message", new String[] {"MAX(e_id)"},
|
|
|
|
|
+ // "user = '"+ApexTrackingApplication.get_user()+"'", null, null, null,
|
|
|
|
|
+ // null, null);
|
|
|
|
|
+ // if (cursor.moveToNext())
|
|
|
|
|
+ // {
|
|
|
|
|
+ // String maxid = cursor.getString(0);
|
|
|
|
|
+ // if(!TextUtils.isEmpty(maxid))
|
|
|
|
|
+ // parms.putString("id", maxid);
|
|
|
|
|
+ // }
|
|
|
|
|
+ // dbUtil.CloseCursor(cursor);
|
|
|
|
|
+ // dbUtil.CloseDB(db);
|
|
|
|
|
+
|
|
|
|
|
+ String jstr = getJson(Network.URL_PUSH, parms);
|
|
|
|
|
+ if (jstr == null || jstr.length() <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ JSONObject jsobj;
|
|
|
|
|
+ //
|
|
|
|
|
+ // array = new JSONArray(json);
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ jsobj = new JSONObject(jstr);
|
|
|
|
|
+ if (jsobj.length() > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ int iresult = jsobj.getInt("result");
|
|
|
|
|
+ if (iresult == Network.AP_SESSION_EXPIRED)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.e(TAG, "AP_SESSION_EXPIRED");
|
|
|
|
|
+ String pass;
|
|
|
|
|
+
|
|
|
|
|
+ pass = ApexTrackingApplication.get_pass();
|
|
|
|
|
+ Network.get_Auth(user, pass);
|
|
|
|
|
+ jstr = getJson(Network.URL_REQUEST_RECORDS, parms);
|
|
|
|
|
+ jsobj = new JSONObject(jstr);
|
|
|
|
|
+ iresult = jsobj.getInt("result");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (iresult != Network.AP_MESSAGE_NEW)
|
|
|
|
|
+ {
|
|
|
|
|
+ // session expired
|
|
|
|
|
+ Log.d(TAG,
|
|
|
|
|
+ "DOSE NOT GET NEW MESSAGE CODE="
|
|
|
|
|
+ + jsobj.getInt("result"));
|
|
|
|
|
+ return null;
|
|
|
|
|
+ // if (get_Auth(name, password) == RESULT_TRUE)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // return get_records(name, password, parms);
|
|
|
|
|
+ //
|
|
|
|
|
+ // }
|
|
|
|
|
+ // else
|
|
|
|
|
+ // {
|
|
|
|
|
+ //
|
|
|
|
|
+ // Log.d(TAG,
|
|
|
|
|
+ // "USER NOT AUTHORIZED CODE="
|
|
|
|
|
+ // + jsobj.getInt("result"));
|
|
|
|
|
+ // return null;
|
|
|
|
|
+ // }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ return jstr;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (JSONException e)
|
|
|
|
|
+ {
|
|
|
|
|
+ // TODO Auto-generated catch block
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+
|
|
|
|
|
+ // return RESULT_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static String check_push()
|
|
|
|
|
+ {
|
|
|
|
|
+ String TAG = "net_dbg@check_push";
|
|
|
|
|
+ Bundle parms = new Bundle();
|
|
|
|
|
+ parms.putString("action", "handset_search");
|
|
|
|
|
+ parms.putString("module_name", "Pull Message");
|
|
|
|
|
+ parms.putString("uuid", commonUtil.getDUID());
|
|
|
|
|
+ String sessionid = ApexTrackingApplication.get_sessionid();
|
|
|
|
|
+ // if (TextUtils.isEmpty(sessionid))
|
|
|
|
|
+ // {
|
|
|
|
|
+ //
|
|
|
|
|
+ // Log.d(TAG, "no sessionid return!");
|
|
|
|
|
+ // return null;
|
|
|
|
|
+ //
|
|
|
|
|
+ // }
|
|
|
|
|
+ String user = ApexTrackingApplication.get_user();
|
|
|
|
|
+ if (TextUtils.isEmpty(user))
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ Log.d(TAG, "no user name return!");
|
|
|
|
|
+ return null;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ // parms.putString("sessionid", sessionid);
|
|
|
|
|
+ parms.putString("user", user);
|
|
|
|
|
+ SQLiteDatabase db = dbUtil.OpenDB(
|
|
|
|
|
+ ApexTrackingApplication.get_instance(), null, false);
|
|
|
|
|
+ Cursor cursor = db.query("push_message", new String[] { "MAX(e_id)" },
|
|
|
|
|
+ "user = '" + ApexTrackingApplication.get_user() + "'", null,
|
|
|
|
|
+ null, null, null, null);
|
|
|
|
|
+ if (cursor.moveToNext())
|
|
|
|
|
+ {
|
|
|
|
|
+ String maxid = cursor.getString(0);
|
|
|
|
|
+ if (!TextUtils.isEmpty(maxid))
|
|
|
|
|
+ parms.putString("id", maxid);
|
|
|
|
|
+ }
|
|
|
|
|
+ dbUtil.CloseCursor(cursor);
|
|
|
|
|
+ dbUtil.CloseDB(db);
|
|
|
|
|
+
|
|
|
|
|
+ String jstr = getJson(Network.URL_PUSH, parms);
|
|
|
|
|
+ if (jstr == null || jstr.length() <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ JSONObject jsobj;
|
|
|
|
|
+ //
|
|
|
|
|
+ // array = new JSONArray(json);
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ jsobj = new JSONObject(jstr);
|
|
|
|
|
+ if (jsobj.length() > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ int iresult = jsobj.getInt("result");
|
|
|
|
|
+ if (iresult == Network.AP_SESSION_EXPIRED)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.e(TAG, "AP_SESSION_EXPIRED");
|
|
|
|
|
+ String pass;
|
|
|
|
|
+
|
|
|
|
|
+ pass = ApexTrackingApplication.get_pass();
|
|
|
|
|
+ Network.get_Auth(user, pass);
|
|
|
|
|
+ jstr = getJson(Network.URL_PUSH, parms);
|
|
|
|
|
+ jsobj = new JSONObject(jstr);
|
|
|
|
|
+ iresult = jsobj.getInt("result");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (iresult != Network.AP_MESSAGE_NEW)
|
|
|
|
|
+ {
|
|
|
|
|
+ // session expired
|
|
|
|
|
+ Log.d(TAG,
|
|
|
|
|
+ "DOSE NOT GET NEW MESSAGE CODE="
|
|
|
|
|
+ + jsobj.getInt("result"));
|
|
|
|
|
+ return null;
|
|
|
|
|
+ // if (get_Auth(name, password) == RESULT_TRUE)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // return get_records(name, password, parms);
|
|
|
|
|
+ //
|
|
|
|
|
+ // }
|
|
|
|
|
+ // else
|
|
|
|
|
+ // {
|
|
|
|
|
+ //
|
|
|
|
|
+ // Log.d(TAG,
|
|
|
|
|
+ // "USER NOT AUTHORIZED CODE="
|
|
|
|
|
+ // + jsobj.getInt("result"));
|
|
|
|
|
+ // return null;
|
|
|
|
|
+ // }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ return jstr;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (JSONException e)
|
|
|
|
|
+ {
|
|
|
|
|
+ // TODO Auto-generated catch block
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+
|
|
|
|
|
+ // return RESULT_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static String get_detail(Bundle parms)
|
|
|
|
|
+ {
|
|
|
|
|
+ String TAG = "net_dbg@get_detail";
|
|
|
|
|
+ parms.putString("action", "handset_search");
|
|
|
|
|
+ parms.putString("sessionid", ApexTrackingApplication.get_sessionid());
|
|
|
|
|
+ String jstr = getJson(Network.URL_REQUEST_RECORDS, parms);
|
|
|
|
|
+ if (jstr == null || jstr.length() <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ JSONObject jsobj;
|
|
|
|
|
+ //
|
|
|
|
|
+ // array = new JSONArray(json);
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ jsobj = new JSONObject(jstr);
|
|
|
|
|
+ if (jsobj.length() > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ int iresult = jsobj.getInt("result");
|
|
|
|
|
+ if (iresult == Network.AP_SESSION_EXPIRED)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.e(TAG, "AP_SESSION_EXPIRED");
|
|
|
|
|
+ String user, pass;
|
|
|
|
|
+ user = ApexTrackingApplication.get_user();
|
|
|
|
|
+ pass = ApexTrackingApplication.get_pass();
|
|
|
|
|
+ Network.get_Auth(user, pass);
|
|
|
|
|
+ jstr = getJson(Network.URL_REQUEST_RECORDS, parms);
|
|
|
|
|
+ jsobj = new JSONObject(jstr);
|
|
|
|
|
+ iresult = jsobj.getInt("result");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (iresult != Network.AP_USER_AUTH)
|
|
|
|
|
+ {
|
|
|
|
|
+ // session expired
|
|
|
|
|
+ Log.d(TAG,
|
|
|
|
|
+ "USER NOT AUTHORIZED CODE="
|
|
|
|
|
+ + jsobj.getInt("result"));
|
|
|
|
|
+ return null;
|
|
|
|
|
+ // if (get_Auth(name, password) == RESULT_TRUE)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // return get_records(name, password, parms);
|
|
|
|
|
+ //
|
|
|
|
|
+ // }
|
|
|
|
|
+ // else
|
|
|
|
|
+ // {
|
|
|
|
|
+ //
|
|
|
|
|
+ // Log.d(TAG,
|
|
|
|
|
+ // "USER NOT AUTHORIZED CODE="
|
|
|
|
|
+ // + jsobj.getInt("result"));
|
|
|
|
|
+ // return null;
|
|
|
|
|
+ // }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ ApexTrackingApplication.SetAuthorizeStatus(true);
|
|
|
|
|
+ return jstr;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (JSONException e)
|
|
|
|
|
+ {
|
|
|
|
|
+ // TODO Auto-generated catch block
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+
|
|
|
|
|
+ // return RESULT_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static int get_Auth(String name, String password)
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ String TAG = "net_dbg@get_Auth";
|
|
|
|
|
+ Log.d(TAG, "u:" + name + ";p:" + password);
|
|
|
|
|
+ if (!Network.NetworkIsAvailable())
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "network not available!");
|
|
|
|
|
+ return Network.RESULT_NET_NOTAVAILABLE; // network not available
|
|
|
|
|
+ }
|
|
|
|
|
+ Bundle parms = new Bundle();
|
|
|
|
|
+ parms.putString("user", name);
|
|
|
|
|
+ parms.putString("password", password);
|
|
|
|
|
+ parms.putString("action", "handset_login");
|
|
|
|
|
+ int ver = ApexTrackingApplication
|
|
|
|
|
+ .get_instance()
|
|
|
|
|
+ .getSharedPreferences(name + "_Apex_auth", Context.MODE_PRIVATE)
|
|
|
|
|
+ .getInt("AuthInfoVer", 0);
|
|
|
|
|
+ parms.putString("auth_ver", ver + "");
|
|
|
|
|
+ String jstr = getJson(Network.URL_UPDATE_AUTH, parms);
|
|
|
|
|
+ /*
|
|
|
|
|
+ * error occur while get authorization info from server. include can not
|
|
|
|
|
+ * reach server , wrong parms ,server get wrong , etc.
|
|
|
|
|
+ */
|
|
|
|
|
+ if (jstr == null || jstr.length() <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return Network.RESULT_NET_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return parse_authinfo(jstr, name, password, parms);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static int parse_authinfo(String json, String user, String pass, Bundle parms)
|
|
|
|
|
+ {
|
|
|
|
|
+ String TAG = "net_dbg@parse_authinfo";
|
|
|
|
|
+ Log.d(TAG, json);
|
|
|
|
|
+ // JSONArray array;
|
|
|
|
|
+ JSONObject jsobj;
|
|
|
|
|
+ SQLiteDatabase db = null;
|
|
|
|
|
+ try
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ // array = new JSONArray(json);
|
|
|
|
|
+ jsobj = new JSONObject(json);
|
|
|
|
|
+ if (jsobj.length() > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ // JSONObject objresult = jsobj.get.getJSONObject(0);// result
|
|
|
|
|
+ // the
|
|
|
|
|
+ // server result
|
|
|
|
|
+ // ;
|
|
|
|
|
+ if (jsobj.getInt("result") != Network.AP_USER_AUTH)
|
|
|
|
|
+ {
|
|
|
|
|
+ ApexTrackingApplication.logout();
|
|
|
|
|
+ // user not authorized return
|
|
|
|
|
+ Log.d(TAG,
|
|
|
|
|
+ "USER NOT AUTHORIZED CODE="
|
|
|
|
|
+ + jsobj.getInt("result"));
|
|
|
|
|
+ return RESULT_FALSE;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ JSONObject objheader = jsobj.getJSONObject("header");
|
|
|
|
|
+ String required_ver = objheader.getString("client_ver");
|
|
|
|
|
+ //String ver = objheader.getString("ver");
|
|
|
|
|
+ String current_ver = ApexTrackingApplication.get_instance()
|
|
|
|
|
+ .getPackageManager().getPackageInfo("com.usai.apex", 0).versionName;
|
|
|
|
|
+ if (current_ver.compareTo(required_ver) < 0)
|
|
|
|
|
+ return RESULT_VER_LOW;
|
|
|
|
|
+ // JSONObject objsessionid = jsobj.getJSONObject(1); // session
|
|
|
|
|
+ // id
|
|
|
|
|
+ // on
|
|
|
|
|
+ // server;
|
|
|
|
|
+ // ApexTrackingApplication.put_sessionid(objheader
|
|
|
|
|
+ // .getString("sessionid"));
|
|
|
|
|
+ // ApexTrackingApplication.put_user(user);
|
|
|
|
|
+ // ApexTrackingApplication.put_password(pass);
|
|
|
|
|
+ // ApexTrackingApplication.put_authorization(true);
|
|
|
|
|
+ ApexTrackingApplication.login(objheader.getString("sessionid"),
|
|
|
|
|
+ user, pass);
|
|
|
|
|
+ Log.d(TAG, "sessionid=" + objheader.getString("sessionid"));
|
|
|
|
|
+ // JSONObject objupdate = array.getJSONObject(3); // whether
|
|
|
|
|
+ // need
|
|
|
|
|
+ // update ;
|
|
|
|
|
+ if (objheader.getBoolean("update") == false)
|
|
|
|
|
+ {
|
|
|
|
|
+ // no update on the server;
|
|
|
|
|
+ return RESULT_TRUE;
|
|
|
|
|
+ }
|
|
|
|
|
+ // JSONObject objver = array.getJSONObject(4); // new version
|
|
|
|
|
+ // get
|
|
|
|
|
+ // from server;
|
|
|
|
|
+
|
|
|
|
|
+ Editor editor = ApexTrackingApplication
|
|
|
|
|
+ .get_instance()
|
|
|
|
|
+ .getSharedPreferences(user + "_Apex_auth",
|
|
|
|
|
+ Context.MODE_PRIVATE).edit();
|
|
|
|
|
+
|
|
|
|
|
+ editor.putInt("AuthInfoVer", objheader.getInt("ver"));
|
|
|
|
|
+ JSONObject objfuncs = jsobj.getJSONObject("functions");
|
|
|
|
|
+ Iterator<?> it = objfuncs.keys();
|
|
|
|
|
+ db = dbUtil.OpenDB(ApexTrackingApplication.get_instance(),
|
|
|
|
|
+ null, true);
|
|
|
|
|
+ String sql = "insert into fields_info(name,aname,field_type,function_name,behavior,priority,show,user) values(?,?,?,?,?,?,?,?)";
|
|
|
|
|
+ String sql1 = "insert into actions_info(name,function_name,user,priority) values(?,?,?,?)";
|
|
|
|
|
+
|
|
|
|
|
+ SQLiteStatement stat = db.compileStatement(sql);
|
|
|
|
|
+ SQLiteStatement stat1 = db.compileStatement(sql1);
|
|
|
|
|
+
|
|
|
|
|
+ db.beginTransaction();
|
|
|
|
|
+ db.execSQL("update fields_info set abandon = 1 where user ='"
|
|
|
|
|
+ + user + "'");
|
|
|
|
|
+ db.execSQL("update actions_info set abandon = 1 where user ='"
|
|
|
|
|
+ + user + "'");
|
|
|
|
|
+
|
|
|
|
|
+ String field_name, field_type, alias_name;
|
|
|
|
|
+ while (it.hasNext()) // loop for each function
|
|
|
|
|
+ {
|
|
|
|
|
+ String func_name = (String) it.next();
|
|
|
|
|
+
|
|
|
|
|
+ // Set<String> funset = new HashSet<String>();
|
|
|
|
|
+ JSONObject objfun = objfuncs.getJSONObject(func_name);
|
|
|
|
|
+ int behavior, priority = 999;
|
|
|
|
|
+ int show = 1;
|
|
|
|
|
+ JSONObject objbehavior = objfun.getJSONObject("search");
|
|
|
|
|
+ Iterator<?> itbehavior = objbehavior.keys();
|
|
|
|
|
+ behavior = BEHAVIOR_SEARCH;
|
|
|
|
|
+ while (itbehavior.hasNext()) // loop for search fields in
|
|
|
|
|
+ // certain function
|
|
|
|
|
+ {
|
|
|
|
|
+ String field = (String) itbehavior.next();
|
|
|
|
|
+ JSONObject field_info = objbehavior
|
|
|
|
|
+ .getJSONObject(field);
|
|
|
|
|
+ field_name = field_info.getString("name");
|
|
|
|
|
+ field_type = field_info.getString("type");
|
|
|
|
|
+ alias_name = field_info.getString("alias");
|
|
|
|
|
+ priority = field_info.getInt("priority");
|
|
|
|
|
+ if (priority == 999)
|
|
|
|
|
+ show = 0;
|
|
|
|
|
+ else
|
|
|
|
|
+ show = 1;
|
|
|
|
|
+ int id = dbUtil.get_recordid(db, "fields_info",
|
|
|
|
|
+ "name='" + field_name + "' and behavior="
|
|
|
|
|
+ + behavior + " and function_name='"
|
|
|
|
|
+ + func_name + "' and user='" + user
|
|
|
|
|
+ + "'");
|
|
|
|
|
+ if (id >= 0) // record exist;
|
|
|
|
|
+ {
|
|
|
|
|
+ db.execSQL("update fields_info set abandon = 0 where _id ="
|
|
|
|
|
+ + id);
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ stat.bindString(1, field_name);
|
|
|
|
|
+ stat.bindString(2, alias_name);
|
|
|
|
|
+ stat.bindString(3, field_type);
|
|
|
|
|
+ stat.bindString(4, func_name);
|
|
|
|
|
+ stat.bindLong(5, behavior);
|
|
|
|
|
+ stat.bindLong(6, priority);
|
|
|
|
|
+ stat.bindLong(7, show);
|
|
|
|
|
+ stat.bindString(8, user);
|
|
|
|
|
+ stat.executeInsert();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ objbehavior = objfun.getJSONObject("result");
|
|
|
|
|
+ Iterator<?> itresult = objbehavior.keys();
|
|
|
|
|
+ behavior = BEHAVIOR_RESULT;
|
|
|
|
|
+ while (itresult.hasNext()) // loop for result fields in
|
|
|
|
|
+ // certain function
|
|
|
|
|
+ {
|
|
|
|
|
+ String field = (String) itresult.next();
|
|
|
|
|
+ JSONObject field_info = objbehavior
|
|
|
|
|
+ .getJSONObject(field);
|
|
|
|
|
+ field_name = field_info.getString("name");
|
|
|
|
|
+ field_type = field_info.getString("type");
|
|
|
|
|
+ alias_name = field_info.getString("alias");
|
|
|
|
|
+ priority = field_info.getInt("priority");
|
|
|
|
|
+ if (priority == 999)
|
|
|
|
|
+ show = 0;
|
|
|
|
|
+ else
|
|
|
|
|
+ show = 1;
|
|
|
|
|
+ int id = dbUtil.get_recordid(db, "fields_info",
|
|
|
|
|
+ "name='" + field_name + "' and behavior="
|
|
|
|
|
+ + behavior + " and function_name='"
|
|
|
|
|
+ + func_name + "' and user='" + user
|
|
|
|
|
+ + "'");
|
|
|
|
|
+ if (id >= 0) // record exist;
|
|
|
|
|
+ {
|
|
|
|
|
+ db.execSQL("update fields_info set abandon = 0 where _id ="
|
|
|
|
|
+ + id);
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ stat.bindString(1, field_name);
|
|
|
|
|
+ stat.bindString(2, alias_name);
|
|
|
|
|
+ stat.bindString(3, field_type);
|
|
|
|
|
+ stat.bindString(4, func_name);
|
|
|
|
|
+ stat.bindLong(5, behavior);
|
|
|
|
|
+ stat.bindLong(6, priority);
|
|
|
|
|
+ stat.bindLong(7, show);
|
|
|
|
|
+ stat.bindString(8, user);
|
|
|
|
|
+ stat.executeInsert();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // objfun.has("actions")
|
|
|
|
|
+ objbehavior = objfun.getJSONObject("actions");
|
|
|
|
|
+ Iterator<?> itactions = objbehavior.keys();
|
|
|
|
|
+ // behavior = BEHAVIOR_RESULT;
|
|
|
|
|
+ while (itactions.hasNext()) // loop for result fields in
|
|
|
|
|
+ // certain function
|
|
|
|
|
+ {
|
|
|
|
|
+ String actionname = (String) itactions.next();
|
|
|
|
|
+ int action_priority = objbehavior.getInt(actionname);
|
|
|
|
|
+
|
|
|
|
|
+ int id = dbUtil.get_recordid(db, "actions_info",
|
|
|
|
|
+ "name='" + actionname + "' and function_name='"
|
|
|
|
|
+ + func_name + "' and user='" + user
|
|
|
|
|
+ + "'");
|
|
|
|
|
+ if (id >= 0) // record exist;
|
|
|
|
|
+ {
|
|
|
|
|
+ db.execSQL("update actions_info set abandon = 0 , priority="
|
|
|
|
|
+ + action_priority + " where _id =" + id);
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ stat1.bindString(1, actionname);
|
|
|
|
|
+ stat1.bindString(2, func_name);
|
|
|
|
|
+ stat1.bindString(3, user);
|
|
|
|
|
+ stat1.bindLong(4, action_priority);
|
|
|
|
|
+ stat1.executeInsert();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ db.execSQL("delete from fields_info where abandon = 1");
|
|
|
|
|
+ db.execSQL("delete from actions_info where abandon = 1");
|
|
|
|
|
+ db.setTransactionSuccessful();
|
|
|
|
|
+ db.endTransaction();
|
|
|
|
|
+ editor.commit();
|
|
|
|
|
+ return RESULT_TRUE;
|
|
|
|
|
+ }
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return RESULT_USERAUTH_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (JSONException e1)
|
|
|
|
|
+ {
|
|
|
|
|
+ // TODO Auto-generated catch block
|
|
|
|
|
+ ApexTrackingApplication.logout();
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ parms.putString("module_name", "Log");
|
|
|
|
|
+ parms.putString("action_type", "save");
|
|
|
|
|
+ parms.putString("return", json);
|
|
|
|
|
+
|
|
|
|
|
+ String jstr = getJson(Network.URL_LOG, parms);
|
|
|
|
|
+
|
|
|
|
|
+ e1.printStackTrace();
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (NameNotFoundException e)
|
|
|
|
|
+ {
|
|
|
|
|
+ // TODO Auto-generated catch block
|
|
|
|
|
+
|
|
|
|
|
+ ApexTrackingApplication.logout();
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ parms.putString("module_name", "Log");
|
|
|
|
|
+ parms.putString("action_type", "save");
|
|
|
|
|
+ parms.putString("return", json);
|
|
|
|
|
+ String jstr = getJson(Network.URL_LOG, parms);
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ finally
|
|
|
|
|
+ {
|
|
|
|
|
+ dbUtil.CloseDB(db);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // try
|
|
|
|
|
+ // {
|
|
|
|
|
+ // m_RemoteVerCode = Integer
|
|
|
|
|
+ // .parseInt(obj.getString("verCode"));
|
|
|
|
|
+ // m_RemoteVerName = obj.getString("verName");
|
|
|
|
|
+ // m_NewVerUrl = obj.getString("URL");
|
|
|
|
|
+ // }
|
|
|
|
|
+ // catch (Exception e)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // m_RemoteVerCode = -1;
|
|
|
|
|
+ // m_RemoteVerName = "";
|
|
|
|
|
+ // m_NewVerUrl = "";
|
|
|
|
|
+ // dbgUtil.Log(Log.INFO,TAG, "download failed json file wrong!");
|
|
|
|
|
+ // return false;
|
|
|
|
|
+ // }
|
|
|
|
|
+ Log.d(TAG, "json is wrong");
|
|
|
|
|
+ return RESULT_USERAUTH_ERROR;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // private void writeData(JSONObject allData)
|
|
|
|
|
+ // {
|
|
|
|
|
+ //
|
|
|
|
|
+ // File file = new File(Environment.getExternalStorageDirectory()
|
|
|
|
|
+ // .toString() + File.separator + "live.txt");
|
|
|
|
|
+ // if (!file.exists())
|
|
|
|
|
+ // {
|
|
|
|
|
+ // try
|
|
|
|
|
+ // {
|
|
|
|
|
+ // file.createNewFile();
|
|
|
|
|
+ // }
|
|
|
|
|
+ // catch (IOException e)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // e.printStackTrace();
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+ // FileOutputStream fos;
|
|
|
|
|
+ // OutputStreamWriter osw = null;
|
|
|
|
|
+ // try
|
|
|
|
|
+ // {
|
|
|
|
|
+ // fos = new FileOutputStream(file);
|
|
|
|
|
+ //
|
|
|
|
|
+ // osw = new OutputStreamWriter(fos, "UTF-8");
|
|
|
|
|
+ // osw.write(allData.toString());
|
|
|
|
|
+ // osw.flush();
|
|
|
|
|
+ // }
|
|
|
|
|
+ // catch (FileNotFoundException e)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // e.printStackTrace();
|
|
|
|
|
+ // }
|
|
|
|
|
+ // catch (UnsupportedEncodingException e)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // e.printStackTrace();
|
|
|
|
|
+ // }
|
|
|
|
|
+ // catch (IOException e)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // e.printStackTrace();
|
|
|
|
|
+ // }
|
|
|
|
|
+ // finally
|
|
|
|
|
+ // {
|
|
|
|
|
+ // if (osw != null)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // try
|
|
|
|
|
+ // {
|
|
|
|
|
+ // osw.close();
|
|
|
|
|
+ // }
|
|
|
|
|
+ // catch (IOException e)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // e.printStackTrace();
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+
|
|
|
|
|
+ public static boolean NetworkIsAvailable()// Context context)
|
|
|
|
|
+ {
|
|
|
|
|
+ String TAG = "net_dbg@CheckNetwork";
|
|
|
|
|
+ ConnectivityManager connManager = (ConnectivityManager) ApexTrackingApplication
|
|
|
|
|
+ .get_instance().getSystemService(Context.CONNECTIVITY_SERVICE);
|
|
|
|
|
+ // .getSystemService(Context.CONNECTIVITY_SERVICE);
|
|
|
|
|
+
|
|
|
|
|
+ NetworkInfo networkInfo = connManager.getActiveNetworkInfo();
|
|
|
|
|
+ if (networkInfo == null)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "can not get Active NetworkInfo!");
|
|
|
|
|
+ // dbgUtil.Log(Log.DEBUG, "Current Network info",
|
|
|
|
|
+ // "can not get Active NetworkInfo!");
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ NetworkInfo.State netState = networkInfo.getState();
|
|
|
|
|
+ if (netState != NetworkInfo.State.CONNECTED)
|
|
|
|
|
+ {
|
|
|
|
|
+ Log.d(TAG, "not Connected!State=" + netState);
|
|
|
|
|
+ // dbgUtil.Log(Log.DEBUG, "Current Network info",
|
|
|
|
|
+ // "not Connected!State=" + netState);
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ // int iconntype = -1;
|
|
|
|
|
+ // iconntype = networkInfo.getType();
|
|
|
|
|
+
|
|
|
|
|
+ // boolean bUseMobileNetwork = context.getSharedPreferences(
|
|
|
|
|
+ // "PhoneAsstPref", 0).getBoolean("UseMobileNetwork", false);
|
|
|
|
|
+ //
|
|
|
|
|
+ // if (bUseMobileNetwork == false
|
|
|
|
|
+ // && iconntype != ConnectivityManager.TYPE_WIFI && iconntype != 9/*
|
|
|
|
|
+ // earthnet */)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // Log.d(TAG,);
|
|
|
|
|
+ // dbgUtil.Log(Log.DEBUG, "Current Network info",
|
|
|
|
|
+ // "not allowed!Connection type=" + networkInfo.getTypeName());
|
|
|
|
|
+ // return false;
|
|
|
|
|
+ // }
|
|
|
|
|
+ boolean bavailable = networkInfo.isAvailable();
|
|
|
|
|
+ String strtype = networkInfo.getTypeName();
|
|
|
|
|
+
|
|
|
|
|
+ Log.d(TAG, " type = " + strtype + " abailable = " + bavailable
|
|
|
|
|
+ + " state " + netState);
|
|
|
|
|
+ // dbgUtil.Log(Log.INFO, "Current Network info", " type = " + strtype
|
|
|
|
|
+ // + " abailable = " + bavailable + " state " + netState);
|
|
|
|
|
+ return bavailable;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static class SSLSocketFactoryEx extends SSLSocketFactory
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ SSLContext sslContext = SSLContext.getInstance("TLS");
|
|
|
|
|
+
|
|
|
|
|
+ public SSLSocketFactoryEx(KeyStore truststore)
|
|
|
|
|
+ throws NoSuchAlgorithmException, KeyManagementException,
|
|
|
|
|
+ KeyStoreException, UnrecoverableKeyException
|
|
|
|
|
+ {
|
|
|
|
|
+ super(truststore);
|
|
|
|
|
+
|
|
|
|
|
+ TrustManager tm = new X509TrustManager()
|
|
|
|
|
+ {
|
|
|
|
|
+ public java.security.cert.X509Certificate[] getAcceptedIssuers()
|
|
|
|
|
+ {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void checkClientTrusted(
|
|
|
|
|
+ java.security.cert.X509Certificate[] chain,
|
|
|
|
|
+ String authType)
|
|
|
|
|
+ throws java.security.cert.CertificateException
|
|
|
|
|
+ {
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+// @Override
|
|
|
|
|
+// public void checkServerTrusted(
|
|
|
|
|
+// java.security.cert.X509Certificate[] chain,
|
|
|
|
|
+// String authType)
|
|
|
|
|
+// throws java.security.cert.CertificateException
|
|
|
|
|
+// {
|
|
|
|
|
+// }
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws java.security.cert.CertificateException {
|
|
|
|
|
+ try {
|
|
|
|
|
+ chain[0].checkValidity();
|
|
|
|
|
+ } catch (java.security.cert.CertificateExpiredException e) {
|
|
|
|
|
+ // Logger.e(TAG, "CertificateExpiredException");
|
|
|
|
|
+ throw new java.security.cert.CertificateException("CertificateExpiredException");
|
|
|
|
|
+ } catch (java.security.cert.CertificateNotYetValidException e) {
|
|
|
|
|
+ //Logger.e(TAG, "CertificateNotYetValidException");
|
|
|
|
|
+ throw new java.security.cert.CertificateException("CertificateNotYetValidException");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+ sslContext.init(null, new TrustManager[] { tm }, null);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public Socket createSocket(Socket socket, String host, int port,
|
|
|
|
|
+ boolean autoClose) throws IOException, UnknownHostException
|
|
|
|
|
+ {
|
|
|
|
|
+ return sslContext.getSocketFactory().createSocket(socket, host,
|
|
|
|
|
+ port, autoClose);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public Socket createSocket() throws IOException
|
|
|
|
|
+ {
|
|
|
|
|
+ return sslContext.getSocketFactory().createSocket();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|