Ray Zhang 12 tahun lalu
induk
melakukan
61944cb80e
43 mengubah file dengan 733 tambahan dan 132 penghapusan
  1. 2 0
      Apex/.settings/org.eclipse.core.resources.prefs
  2. 6 3
      Apex/AndroidManifest.xml
  3. 6 3
      Apex/bin/AndroidManifest.xml
  4. TEMPAT SAMPAH
      Apex/bin/Apex.apk
  5. TEMPAT SAMPAH
      Apex/bin/classes.dex
  6. TEMPAT SAMPAH
      Apex/bin/dexedLibs/android-support-v4-5a6e4890324d594e6e3033a1539b3b9d.jar
  7. TEMPAT SAMPAH
      Apex/bin/dexedLibs/google-play-services-2304ce94da8831ae28fe72e8be41b08c.jar
  8. TEMPAT SAMPAH
      Apex/bin/dexedLibs/httpmime-4.1.1-8b619a333400c39787fda5a16ff624ad.jar
  9. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/bg_1.png
  10. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/bg_2.png
  11. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/bg_3.png
  12. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/bg_4.png
  13. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/bg_5.png
  14. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/bg_6.png
  15. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/ic_ace_isf.png
  16. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/ic_cargo_tracking.png
  17. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/ic_container_detail.png
  18. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/ic_document.png
  19. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/ic_down_doc.png
  20. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/ic_exit.png
  21. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/ic_launcher.png
  22. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/ic_ocean.png
  23. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/ic_ocean_blinfo.png
  24. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/ic_oceanbooking.png
  25. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/ic_other.png
  26. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/ic_password.png
  27. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-hdpi/ic_shipment_info.png
  28. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-mdpi/ic_launcher.png
  29. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-xhdpi/ic_launcher.png
  30. TEMPAT SAMPAH
      Apex/bin/res/crunch/drawable-xxhdpi/ic_launcher.png
  31. TEMPAT SAMPAH
      Apex/bin/resources.ap_
  32. 45 37
      Apex/gen/com/usai/apex/R.java
  33. 2 0
      Apex/json/test.json
  34. 47 0
      Apex/res/layout/activity_search.xml
  35. 4 2
      Apex/res/layout/fragment_login.xml
  36. 25 6
      Apex/res/layout/search_lvitem_edit.xml
  37. 9 0
      Apex/res/menu/search.xml
  38. 2 0
      Apex/res/values/strings.xml
  39. 2 2
      Apex/src/com/usai/apex/ApexTrackingApplication.java
  40. 50 3
      Apex/src/com/usai/apex/FunctionSelectActivity.java
  41. 193 0
      Apex/src/com/usai/apex/SearchActivity.java
  42. 272 63
      Apex/src/com/usai/util/Network.java
  43. 68 13
      Apex/src/com/usai/util/dbUtil.java

+ 2 - 0
Apex/.settings/org.eclipse.core.resources.prefs

@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//src/com/usai/util/dbUtil.java=UTF-8

+ 6 - 3
Apex/AndroidManifest.xml

@@ -23,11 +23,11 @@
         android:required="true" />
     <!-- End of copy. -->
     <application
+        android:name="com.usai.apex.ApexTrackingApplication"
         android:allowBackup="true"
         android:icon="@drawable/ic_launcher"
         android:label="@string/app_name"
-        android:theme="@android:style/Theme.Holo.Light" 
-        android:name = "com.usai.apex.ApexTrackingApplication">
+        android:theme="@android:style/Theme.Holo.Light" >
         <meta-data
             android:name="com.google.android.maps.v2.API_KEY"
             android:value="AIzaSyBmXqQ2PJKQudZJPA05ei0w0sODW8vhD1U" />
@@ -35,7 +35,6 @@
             android:name="com.google.android.gms.version"
             android:value="@integer/google_play_services_version" />
 
-
         <activity
             android:name="com.usai.apex.ApexActivity"
             android:label="@string/title_activity_apex"
@@ -64,6 +63,10 @@
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
+        <activity
+            android:name="com.usai.apex.SearchActivity"
+            android:label="@string/title_activity_search" >
+        </activity>
     </application>
 
 </manifest>

+ 6 - 3
Apex/bin/AndroidManifest.xml

@@ -23,11 +23,11 @@
         android:required="true" />
     <!-- End of copy. -->
     <application
+        android:name="com.usai.apex.ApexTrackingApplication"
         android:allowBackup="true"
         android:icon="@drawable/ic_launcher"
         android:label="@string/app_name"
-        android:theme="@android:style/Theme.Holo.Light" 
-        android:name = "com.usai.apex.ApexTrackingApplication">
+        android:theme="@android:style/Theme.Holo.Light" >
         <meta-data
             android:name="com.google.android.maps.v2.API_KEY"
             android:value="AIzaSyBmXqQ2PJKQudZJPA05ei0w0sODW8vhD1U" />
@@ -35,7 +35,6 @@
             android:name="com.google.android.gms.version"
             android:value="@integer/google_play_services_version" />
 
-
         <activity
             android:name="com.usai.apex.ApexActivity"
             android:label="@string/title_activity_apex"
@@ -64,6 +63,10 @@
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
+        <activity
+            android:name="com.usai.apex.SearchActivity"
+            android:label="@string/title_activity_search" >
+        </activity>
     </application>
 
 </manifest>

TEMPAT SAMPAH
Apex/bin/Apex.apk


TEMPAT SAMPAH
Apex/bin/classes.dex


TEMPAT SAMPAH
Apex/bin/dexedLibs/android-support-v4-5a6e4890324d594e6e3033a1539b3b9d.jar


TEMPAT SAMPAH
Apex/bin/dexedLibs/google-play-services-2304ce94da8831ae28fe72e8be41b08c.jar


TEMPAT SAMPAH
Apex/bin/dexedLibs/httpmime-4.1.1-8b619a333400c39787fda5a16ff624ad.jar


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/bg_1.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/bg_2.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/bg_3.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/bg_4.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/bg_5.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/bg_6.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/ic_ace_isf.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/ic_cargo_tracking.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/ic_container_detail.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/ic_document.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/ic_down_doc.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/ic_exit.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/ic_launcher.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/ic_ocean.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/ic_ocean_blinfo.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/ic_oceanbooking.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/ic_other.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/ic_password.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-hdpi/ic_shipment_info.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-mdpi/ic_launcher.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-xhdpi/ic_launcher.png


TEMPAT SAMPAH
Apex/bin/res/crunch/drawable-xxhdpi/ic_launcher.png


TEMPAT SAMPAH
Apex/bin/resources.ap_


+ 45 - 37
Apex/gen/com/usai/apex/R.java

@@ -42,12 +42,16 @@ public final class R {
         public static final int ic_shipment_info=0x7f020012;
     }
     public static final class id {
-        public static final int action_forgot_password=0x7f0a001f;
-        public static final int action_settings=0x7f0a001e;
-        public static final int aliasName=0x7f0a001c;
-        public static final int button1=0x7f0a0013;
-        public static final int editText1=0x7f0a0012;
-        public static final int fragment1=0x7f0a000c;
+        public static final int action_forgot_password=0x7f0a0024;
+        public static final int action_settings=0x7f0a0023;
+        public static final int aliasName=0x7f0a001f;
+        public static final int btncancel=0x7f0a000d;
+        public static final int btnok=0x7f0a000e;
+        public static final int button1=0x7f0a0016;
+        public static final int editText1=0x7f0a0015;
+        public static final int edit_val=0x7f0a0020;
+        public static final int foot=0x7f0a000c;
+        public static final int fragment1=0x7f0a000f;
         public static final int ibtn_booking=0x7f0a0005;
         public static final int ibtn_cargo=0x7f0a0008;
         public static final int ibtn_detail=0x7f0a0007;
@@ -56,24 +60,25 @@ public final class R {
         public static final int ibtn_info=0x7f0a0006;
         public static final int ibtn_password=0x7f0a000a;
         public static final int imageView1=0x7f0a0001;
-        public static final int login=0x7f0a0019;
-        public static final int login_form=0x7f0a0016;
-        public static final int login_status=0x7f0a0014;
-        public static final int login_status_message=0x7f0a0015;
-        public static final int map=0x7f0a001b;
-        public static final int password=0x7f0a0018;
-        public static final int radio0=0x7f0a000f;
-        public static final int radio1=0x7f0a0010;
-        public static final int radio2=0x7f0a0011;
-        public static final int radioGroup1=0x7f0a000e;
-        public static final int sign_in_button=0x7f0a001a;
+        public static final int login=0x7f0a001c;
+        public static final int login_form=0x7f0a0019;
+        public static final int login_status=0x7f0a0017;
+        public static final int login_status_message=0x7f0a0018;
+        public static final int map=0x7f0a001e;
+        public static final int password=0x7f0a001b;
+        public static final int radio0=0x7f0a0012;
+        public static final int radio1=0x7f0a0013;
+        public static final int radio2=0x7f0a0014;
+        public static final int radioGroup1=0x7f0a0011;
+        public static final int sign_in_button=0x7f0a001d;
+        public static final int switch_bool=0x7f0a0021;
         public static final int tab1=0x7f0a0002;
         public static final int tab2=0x7f0a0003;
         public static final int tab3=0x7f0a0004;
         public static final int tabhost=0x7f0a0000;
-        public static final int textView1=0x7f0a000d;
-        public static final int tv_val=0x7f0a001d;
-        public static final int user=0x7f0a0017;
+        public static final int textView1=0x7f0a0010;
+        public static final int tv_type=0x7f0a0022;
+        public static final int user=0x7f0a001a;
     }
     public static final class integer {
         public static final int google_play_services_version=0x7f080000;
@@ -81,11 +86,12 @@ public final class R {
     public static final class layout {
         public static final int activity_apex=0x7f030000;
         public static final int activity_function_select=0x7f030001;
-        public static final int activity_test=0x7f030002;
-        public static final int fragment_direct_tracking=0x7f030003;
-        public static final int fragment_login=0x7f030004;
-        public static final int fragment_service_location=0x7f030005;
-        public static final int search_lvitem_edit=0x7f030006;
+        public static final int activity_search=0x7f030002;
+        public static final int activity_test=0x7f030003;
+        public static final int fragment_direct_tracking=0x7f030004;
+        public static final int fragment_login=0x7f030005;
+        public static final int fragment_service_location=0x7f030006;
+        public static final int search_lvitem_edit=0x7f030007;
     }
     public static final class menu {
         public static final int apex=0x7f090000;
@@ -93,31 +99,33 @@ public final class R {
         public static final int function_select=0x7f090002;
         public static final int login=0x7f090003;
         public static final int main=0x7f090004;
-        public static final int test=0x7f090005;
+        public static final int search=0x7f090005;
+        public static final int test=0x7f090006;
     }
     public static final class string {
-        public static final int action_forgot_password=0x7f06000f;
+        public static final int action_forgot_password=0x7f060010;
         public static final int action_settings=0x7f060001;
-        public static final int action_sign_in_register=0x7f06000d;
-        public static final int action_sign_in_short=0x7f06000e;
+        public static final int action_sign_in_register=0x7f06000e;
+        public static final int action_sign_in_short=0x7f06000f;
         public static final int app_name=0x7f060000;
-        public static final int error_field_required=0x7f060014;
-        public static final int error_incorrect_password=0x7f060013;
-        public static final int error_invalid_email=0x7f060011;
-        public static final int error_invalid_password=0x7f060012;
+        public static final int error_field_required=0x7f060015;
+        public static final int error_incorrect_password=0x7f060014;
+        public static final int error_invalid_email=0x7f060012;
+        public static final int error_invalid_password=0x7f060013;
         public static final int hello_world=0x7f060002;
-        public static final int login_progress_signing_in=0x7f060010;
+        public static final int login_progress_signing_in=0x7f060011;
         public static final int msg_connection_none=0x7f060005;
         public static final int msg_net_error=0x7f060004;
         public static final int msg_net_resulterror=0x7f060003;
         /**  Strings related to login 
          */
-        public static final int prompt_email=0x7f06000b;
-        public static final int prompt_password=0x7f06000c;
+        public static final int prompt_email=0x7f06000c;
+        public static final int prompt_password=0x7f06000d;
         public static final int title_activity_apex=0x7f060006;
         public static final int title_activity_direct_tracking=0x7f060007;
         public static final int title_activity_function_select=0x7f060008;
-        public static final int title_activity_login=0x7f06000a;
+        public static final int title_activity_login=0x7f06000b;
+        public static final int title_activity_search=0x7f06000a;
         public static final int title_activity_test=0x7f060009;
     }
     public static final class style {

File diff ditekan karena terlalu besar
+ 2 - 0
Apex/json/test.json


+ 47 - 0
Apex/res/layout/activity_search.xml

@@ -0,0 +1,47 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".SearchActivity" >
+
+    <ListView
+        android:id="@android:id/list"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_above="@+id/foot"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true" >
+    </ListView>
+
+    <LinearLayout
+        android:id="@+id/foot"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentLeft="true"
+        android:orientation="vertical" >
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal" >
+
+            <Button
+                android:id="@+id/btncancel"
+                style="?android:attr/buttonStyleSmall"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="@android:string/cancel" />
+
+            <Button
+                android:id="@+id/btnok"
+                style="?android:attr/buttonStyleSmall"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="@android:string/ok" />
+        </LinearLayout>
+    </LinearLayout>
+
+</RelativeLayout>

+ 4 - 2
Apex/res/layout/fragment_login.xml

@@ -128,7 +128,8 @@
                 android:hint="@string/prompt_email"
                 android:inputType="textAutoComplete"
                 android:maxLines="1"
-                android:singleLine="true" />
+                android:singleLine="true"
+                android:text="ra.admin" />
 
             <EditText
                 android:id="@+id/password"
@@ -140,7 +141,8 @@
                 android:imeOptions="actionUnspecified"
                 android:inputType="textPassword"
                 android:maxLines="1"
-                android:singleLine="true" />
+                android:singleLine="true"
+                android:text="#UL$dc01" />
 
             <Button
                 android:id="@+id/sign_in_button"

+ 25 - 6
Apex/res/layout/search_lvitem_edit.xml

@@ -13,15 +13,34 @@
         android:text="Medium Text"
         android:textAppearance="?android:attr/textAppearanceMedium" />
 
-    <AutoCompleteTextView
-        android:id="@+id/tv_val"
-        android:layout_width="wrap_content"
+    <EditText
+        android:id="@+id/edit_val"
+        android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_below="@+id/aliasName"
-        android:ems="10"
-        android:text="AutoCompleteTextView" >
+        android:ems="15"
+        android:text="" >
+
+    </EditText>
+    <Switch
+        android:id="@+id/switch_bool"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/aliasName"
+        android:layout_alignParentLeft="true"
+        android:text=""
+        android:textOff="no"
+        android:textOn="yes" 
+        android:visibility="gone"/>
+    <TextView
+        android:id="@+id/tv_type"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:layout_alignParentTop="true"
+        android:text="TextView" />
 
-    </AutoCompleteTextView>
+  
 
 </RelativeLayout>

+ 9 - 0
Apex/res/menu/search.xml

@@ -0,0 +1,9 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <item
+        android:id="@+id/action_custom_fields"
+        android:orderInCategory="100"
+        android:showAsAction="never"
+        android:title="@string/action_custom_fields"/>
+
+</menu>

+ 2 - 0
Apex/res/values/strings.xml

@@ -3,6 +3,7 @@
 
     <string name="app_name">Apex</string>
     <string name="action_settings">Settings</string>
+    <string name="action_custom_fields">Custom Fields</string>
     <string name="hello_world">Hello world!</string>
     <string name="msg_net_resulterror">An error occur on server</string>
     <string name="msg_net_error">Can not connect to server</string>
@@ -11,5 +12,6 @@
     <string name="title_activity_direct_tracking">DirectTracking</string>
     <string name="title_activity_function_select">FunctionSelectActivity</string>
     <string name="title_activity_test">TestActivity</string>
+    <string name="title_activity_search">SearchActivity</string>
 
 </resources>

+ 2 - 2
Apex/src/com/usai/apex/ApexTrackingApplication.java

@@ -7,7 +7,7 @@ public class ApexTrackingApplication extends Application
 {
 	static final String TAG= "ApexTrackingApplication";
 	private static ApexTrackingApplication instance;
-	private static int m_sessionid;
+	private static String m_sessionid;
 
 	@Override
 	public void onCreate()
@@ -24,7 +24,7 @@ public class ApexTrackingApplication extends Application
 		return instance;
 	}
 
-	public static void put_sessionid(int id)
+	public static void put_sessionid(String id)
 	{
 
 		m_sessionid = id;

+ 50 - 3
Apex/src/com/usai/apex/FunctionSelectActivity.java

@@ -1,19 +1,42 @@
 package com.usai.apex;
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.support.v4.app.FragmentActivity;
+import android.util.Log;
 import android.view.Menu;
 import android.view.View;
 import android.view.View.OnClickListener;
+import android.widget.ImageButton;
 
 public class FunctionSelectActivity extends FragmentActivity implements OnClickListener
 {
+	String user=null;
+	String password=null;
+	
 
 	@Override
 	protected void onCreate(Bundle savedInstanceState)
 	{
+		user=getIntent().getStringExtra("user");
+		password= getIntent().getStringExtra("password");
 		super.onCreate(savedInstanceState);
 		setContentView(R.layout.activity_function_select);
+		
+		ImageButton ibtn_booking = (ImageButton)findViewById(R.id.ibtn_booking);
+		ibtn_booking.setOnClickListener(this);
+		ImageButton ibtn_info = (ImageButton)findViewById(R.id.ibtn_info);
+		ibtn_info.setOnClickListener(this);
+		ImageButton ibtn_detail = (ImageButton)findViewById(R.id.ibtn_detail);
+		ibtn_detail.setOnClickListener(this);
+		ImageButton ibtn_cargo = (ImageButton)findViewById(R.id.ibtn_cargo);
+		ibtn_cargo.setOnClickListener(this);
+		ImageButton ibtn_doc = (ImageButton)findViewById(R.id.ibtn_doc);
+		ibtn_doc.setOnClickListener(this);
+		ImageButton ibtn_password = (ImageButton)findViewById(R.id.ibtn_password);
+		ibtn_password.setOnClickListener(this);
+		ImageButton ibtn_exit = (ImageButton)findViewById(R.id.ibtn_exit);
+		ibtn_exit.setOnClickListener(this);
 	}
 
 	@Override
@@ -24,20 +47,44 @@ public class FunctionSelectActivity extends FragmentActivity implements OnClickL
 		return true;
 	}
 
+
 	@Override
 	public void onClick(View v)
 	{
+		String TAG="onClick@FunctionSelectActivity";
+		Log.d(TAG, "ID="+v.getId());
 		switch (v.getId())
 		{
 		case R.id.ibtn_booking:
-			
+		{
+			Intent intent = new Intent();
+			intent.setClass(this, SearchActivity.class);
+			intent.putExtra("user", user);
+			intent.putExtra("password", password);
+			intent.putExtra("function_name", "Ocean Booking");
+			startActivity(intent);			
 			break;
+		}
 		case R.id.ibtn_info:
-			
+		{
+			Intent intent = new Intent();
+			intent.setClass(this, SearchActivity.class);
+			intent.putExtra("user", user);
+			intent.putExtra("password", password);
+			intent.putExtra("function_name", "Ocean B/L info.");
+			startActivity(intent);			
 			break;
+		}
 		case R.id.ibtn_detail:
-			
+		{
+			Intent intent = new Intent();
+			intent.setClass(this, SearchActivity.class);
+			intent.putExtra("user", user);
+			intent.putExtra("password", password);
+			intent.putExtra("function_name", "Container detail");
+			startActivity(intent);			
 			break;
+		}
 		case R.id.ibtn_cargo:
 			
 			break;

+ 193 - 0
Apex/src/com/usai/apex/SearchActivity.java

@@ -0,0 +1,193 @@
+package com.usai.apex;
+
+import com.usai.util.Network;
+import com.usai.util.dbUtil;
+
+import android.os.Bundle;
+import android.app.ListActivity;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.text.InputType;
+import android.util.Log;
+import android.view.Menu;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.ListView;
+import android.widget.SimpleCursorAdapter;
+import android.widget.Switch;
+
+public class SearchActivity extends ListActivity
+{
+	private SQLiteDatabase m_db = null;
+	private Cursor m_cursor = null;
+	String user = null;
+	String password = null;
+	String function_name=null;
+	RecordsAdapter m_listadapter;
+	private ListView m_ListView = null;
+
+	public class RecordsAdapter extends SimpleCursorAdapter
+	{
+
+		public RecordsAdapter(Context context, int layout, Cursor c,
+				String[] from, int[] to)
+		{
+			super(context, layout, c, from, to);
+			// TODO Auto-generated constructor stub
+		}
+
+		@Override
+		public void bindView(View view, Context context, Cursor cursor)
+		{
+			// TODO Auto-generated method stub
+			super.bindView(view, context, cursor);
+			String field_type = cursor.getString(1);
+			EditText edit = (EditText) view.findViewById(R.id.edit_val);
+			Switch switch_bool = (Switch) view.findViewById(R.id.switch_bool);
+			if(field_type.equals("boolean"))
+			{
+				edit.setVisibility(View.GONE);
+				switch_bool.setVisibility(View.VISIBLE);
+			}
+			else {
+				edit.setVisibility(View.VISIBLE);
+				switch_bool.setVisibility(View.GONE);	
+				if(field_type.equals("time"))
+				{
+//					EditText edit1 = (EditText) view.findViewById(R.id.editText1);
+//					Log.e("!!!!!!!!!!!!!",edit1.getInputType()+"##########"+(InputType.TYPE_DATETIME_VARIATION_DATE|InputType.TYPE_CLASS_DATETIME));
+					edit.setInputType(InputType.TYPE_DATETIME_VARIATION_DATE|InputType.TYPE_CLASS_DATETIME);
+				}
+			}
+			// TextView tvname = (TextView) view.findViewById(R.id.name);
+			// TextView tvinfo = (TextView) view.findViewById(R.id.info);
+			// String sname = cursor.getString(1);
+			// int iburntype = cursor.getInt(2);
+			// dbgUtil.Log(Log.INFO, "============>", "BURN TYPE =" +
+			// iburntype);
+			// if (sname == null || sname.equals(""))
+			// tvname.setVisibility(TextView.GONE);
+			// else
+			// tvname.setVisibility(View.VISIBLE);
+			// if (m_Activityinfo.NumberType != dbUtil.NUMBER_TYPE_WHITE
+			// && iburntype >= 0)
+			// {
+			//
+			// tvinfo.setText(m_arrBurntype[iburntype]);
+			// tvinfo.setVisibility(View.VISIBLE);
+			// }
+			// else
+			// {
+			// tvinfo.setVisibility(View.GONE);
+			// }
+
+		}
+
+	}
+
+	@Override
+	protected void onDestroy()
+	{
+		dbUtil.CloseDB(m_db);
+		super.onDestroy();
+	}
+
+	@Override
+	protected void onCreate(Bundle savedInstanceState)
+	{
+		super.onCreate(savedInstanceState);
+		user = getIntent().getStringExtra("user");
+		password = getIntent().getStringExtra("password");
+		function_name = getIntent().getStringExtra("function_name");
+		setContentView(R.layout.activity_search);
+		m_db = dbUtil.OpenDB(this, null, true);
+//		m_TextView = (TextView) findViewById(R.id.summarytext);
+//		m_TextView.setText(getString(m_Activityinfo.TextViewValue));
+		m_ListView = (ListView) findViewById(android.R.id.list);
+		m_cursor = m_db.query("fields_info",
+				new String[] { "aname","field_type", "name", "_id" },
+				"function_name='"+function_name+"' and user='"+user+"' and behavior="+Network.BEHAVIOR_SEARCH+" and show = 1",
+				 null, null, null, "priority , aname", null);
+		startManagingCursor(m_cursor);
+		m_listadapter = new RecordsAdapter(this,
+		// Use a template that displays a text view
+				R.layout.search_lvitem_edit,
+				// Give the cursor to the list adatper
+				m_cursor,
+				// Map the NAME column in the people database to...
+				new String[] { "aname", "field_type", "name" },
+				// The "text1" view defined in the XML template
+				new int[] {R.id.aliasName, R.id.tv_type });
+		setListAdapter(m_listadapter);	
+		
+//		initlist();
+
+		// m_ListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
+
+		// m_listadapter = new FieldsAdapter(this, data, resource, from, to);
+
+		// m_listadapter = new RecordsAdapter(this,
+		// // Use a template that displays a text view
+		// m_iListItemID,
+		// // Give the cursor to the list adatper
+		// m_cursor,
+		// // Map the NAME column in the people database to...
+		// m_sDispFields,
+		// // The "text1" view defined in the XML template
+		// m_iViewIDs);
+
+	}
+	private void RefreshList()
+	{
+//		if (dbUtil.isRecordExist(m_db, "user_numberlist","type = "+m_Activityinfo.NumberType))
+//		{
+//			m_TextView.setVisibility(ListView.INVISIBLE);
+//			m_ListView.setVisibility(ListView.VISIBLE);
+//
+//		}
+//		else
+//		{
+//			m_TextView.setVisibility(ListView.VISIBLE);
+//			m_ListView.setVisibility(ListView.INVISIBLE);
+//		}
+
+		m_cursor.requery();
+	}
+//	private void initlist()
+//	{
+//		m_ListView = (ListView) findViewById(android.R.id.list);
+//		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
+//		HashMap<String, Object> map = null;
+//
+//		String[] strings = { "alias", "type", "name" };// Map的key集合数组
+//		int[] ids = { R.id.aliasName, R.id.tv_type };// 对应布局文件的id
+//		SimpleAdapter simpleAdapter = new SimpleAdapter(this, list,
+//				R.layout.search_lvitem_edit, strings, ids);
+//
+//		// listView1.setAdapter(simpleAdapter);//绑定适配器
+//		setListAdapter(simpleAdapter);
+//	}
+
+	@Override
+	public boolean onCreateOptionsMenu(Menu menu)
+	{
+		// Inflate the menu; this adds items to the action bar if it is present.
+		getMenuInflater().inflate(R.menu.search, menu);
+		return true;
+	}
+
+	// class FieldsAdapter extends SimpleAdapter
+	// {
+	//
+	// public FieldsAdapter(Context context,
+	// List<? extends Map<String, ?>> data, int resource,
+	// String[] from, int[] to)
+	// {
+	// super(context, data, resource, from, to);
+	// // TODO Auto-generated constructor stub
+	// }
+	//
+	// }
+
+}

+ 272 - 63
Apex/src/com/usai/util/Network.java

@@ -1,53 +1,67 @@
 package com.usai.util;
 
 import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
+import java.net.Socket;
 import java.net.URL;
-import java.util.HashSet;
+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.FileBody;
 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.json.JSONArray;
+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 android.R.integer;
-import android.R.string;
 import android.content.Context;
-import android.content.Intent;
 import android.content.SharedPreferences.Editor;
+import android.database.DatabaseUtils.InsertHelper;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteStatement;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.os.Bundle;
-import android.os.Environment;
 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 = 5 * 1000;// request time out 20
 														// secs
 	private static final int SO_TIMEOUT = 5 * 1000; // so time out 20 secs;
@@ -87,20 +101,20 @@ public class Network
 	// "http://192.168.1.10/xampp/verify_user.php";
 	// static String URL_UPLOAD_PHOTO =
 	// "http://192.168.1.10/xampp/save_upload_file.php";
-	public static String URL_VERIFY_USER = "http://192.168.23.1/xampp/apex_user.php";
-	public static String URL_UPDATE_AUTH = "http://192.168.23.1/xampp/apex_auth.php";
-	public static String FAKE_URL_UPDATE_AUTH = "http://192.168.23.1/xampp/auth.json";
-	public static String FAKE_SEARCH = "http://192.168.23.1/xampp/recordset.json";
+//	public static String URL_VERIFY_USER = "https://ra.apexshipping.com/login.php";
+	public static String URL_UPDATE_AUTH = "https://ra.apexshipping.com/login.php";
+//	public static String FAKE_URL_UPDATE_AUTH = "https://192.168.23.1/xampp/auth.json";
+//	public static String FAKE_SEARCH = "https://192.168.23.1/xampp/recordset.json";
 
 	// static String URL_UPLOAD_PHOTO =
 	// "http://192.168.23.1/xampp/save_upload_file.php";
-
-	private static String fakegetJson(String url)
-	{
-		return download(url, 10000);
-		// return null;
-
-	}
+	//
+	 private static String fakegetJson(String url)
+	 {
+	 return download(url, 10000);
+	 // return null;
+	
+	 }
 
 	public static String download(String urlStr, int timeout)
 	{
@@ -169,20 +183,104 @@ public class Network
 		return sb.toString();
 	}
 
+	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();
+		}
+	}
+
+	// HttpClient getHttpsClient()
+	// {
+	// KeyStore trustStore;
+	// try
+	// {
+	// trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
+	// trustStore.load(null, null);
+	// SSLSocketFactory sf = new MySSLSocketFactory(trustStore);
+	// sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
+	//
+	// 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);
+	// }
+	// catch (KeyStoreException e)
+	// {
+	// // TODO Auto-generated catch block
+	// e.printStackTrace();
+	// }
+	// catch (NoSuchAlgorithmException e)
+	// {
+	// // TODO Auto-generated catch block
+	// e.printStackTrace();
+	// }
+	// catch (CertificateException e)
+	// {
+	// // TODO Auto-generated catch block
+	// e.printStackTrace();
+	// }
+	// catch (IOException e)
+	// {
+	// // TODO Auto-generated catch block
+	// e.printStackTrace();
+	// }
+	// catch (KeyManagementException e)
+	// {
+	// // TODO Auto-generated catch block
+	// e.printStackTrace();
+	// }
+	// catch (UnrecoverableKeyException e)
+	// {
+	// // TODO Auto-generated catch block
+	// e.printStackTrace();
+	// }
+	//
+	// }
+
 	public static String getJson(String url, Bundle parms)
 	{
 		String TAG = "net_dbg@GetJson";
 		Log.d(TAG, "entry");
 
-		if (true)
-			return fakegetJson(url);
+//		 if (true)
+//		 return fakegetJson(url);
 		try
 		{
-			BasicHttpParams httpParams = new BasicHttpParams();
-			HttpConnectionParams.setConnectionTimeout(httpParams,
-					REQUEST_TIMEOUT);
-			HttpConnectionParams.setSoTimeout(httpParams, SO_TIMEOUT);
-			HttpClient client = new DefaultHttpClient(httpParams);
+			// 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);
@@ -729,6 +827,7 @@ public class Network
 	{
 
 		String TAG = "net_dbg@get_Auth";
+		Log.d(TAG,"u:"+name+";p:"+password);
 		if (!Network.NetworkIsAvailable())
 		{
 			Log.d(TAG, "network not available!");
@@ -737,11 +836,12 @@ public class Network
 		Bundle parms = new Bundle();
 		parms.putString("user", name);
 		parms.putString("password", password);
+		parms.putString("action", "handset_login");
 		int ver = ApexTrackingApplication.get_instance()
 				.getSharedPreferences("Apex_auth", Context.MODE_PRIVATE)
 				.getInt("AuthInfoVer", 0);
 		parms.putString("auth_ver", ver + "");
-		String jstr = getJson(Network.FAKE_URL_UPDATE_AUTH, parms);
+		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.
@@ -752,21 +852,22 @@ public class Network
 			return Network.RESULT_NET_ERROR;
 		}
 
-		return parse_authinfo(jstr);
+		return parse_authinfo(jstr,name);
 	}
 
-	private static int parse_authinfo(String json)
+	private static int parse_authinfo(String json,String user)
 	{
 		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
@@ -788,7 +889,7 @@ public class Network
 				// on
 				// server;
 				ApexTrackingApplication.put_sessionid(objheader
-						.getInt("sessionid"));
+						.getString("sessionid"));
 				// JSONObject objupdate = array.getJSONObject(3); // whether
 				// need
 				// update ;
@@ -809,21 +910,85 @@ public class Network
 				editor.putInt("AuthInfoVer", objheader.getInt("ver"));
 				JSONObject objfuncs = jsobj.getJSONObject("functions");
 				Iterator it = objfuncs.keys();
-				while (it.hasNext())
+				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(?,?,?,?,?,?,?,?)";
+				db.execSQL("update fields_info set abandon = 1 where user ='"+user+"'");
+		        SQLiteStatement stat = db.compileStatement(sql);
+				db.beginTransaction();
+				String field_name,field_type,alias_name;
+				while (it.hasNext()) // loop for each function
 				{
-					String key = (String) it.next();
-
-//					Set<String> funset = new HashSet<String>();
-					JSONObject objfun = objfuncs.getJSONObject(key);
-
-					editor.putString(key,objfun.toString());
+					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");
+						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");
+						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();
+						}
+					}
+//					editor.putString(func_name, objfun.toString());
 					// JSONArray arrfun = jsobj.get(i);
 					// JSONObject objname = arrfun.getJSONObject(0);
 					//
-//					funset.add(objfun.getString("name"));
-//					funset.add(objfun.getJSONObject("search").toString());
-//					funset.add(objfun.getJSONObject("result").toString());
-//					editor.putStringSet(objfun.getString("name"), funset);
+					// funset.add(objfun.getString("name"));
+					// funset.add(objfun.getJSONObject("search").toString());
+					// funset.add(objfun.getJSONObject("result").toString());
+					// editor.putStringSet(objfun.getString("name"), funset);
 					// String value = obj.getString(key);
 					// JSONArray array = obj.getJSONArray(key);
 					// for (int i = 0; i < array.length(); i++)
@@ -835,22 +1000,10 @@ public class Network
 					// newArray.put(jsonobject);
 					// }
 				}
-				// while (jsobj)
-				// for (int i = 4; i < jsobj.length(); i++) // get functions
-				// auth
-				// // info from server;
-				// {
-				// Set<String> funset = new HashSet<String>();
-				//
-				// JSONArray arrfun = jsobj.get(i);
-				// JSONObject objname = arrfun.getJSONObject(0);
-				//
-				// funset.add(objname.getString("name"));
-				// funset.add(jsobj.getJSONArray(1).toString());
-				// funset.add(jsobj.getJSONArray(2).toString());
-				// editor.putStringSet("function" + (i - 4), funset);
-				// }
-				editor.commit();
+				db.execSQL("delete from fields_info where abandon = 1");
+		        db.setTransactionSuccessful();
+		        db.endTransaction();
+		        editor.commit();
 				return RESULT_TRUE;
 			}
 			Log.d(TAG, "json is wrong");
@@ -862,6 +1015,10 @@ public class Network
 			e1.printStackTrace();
 			Log.d(TAG, "json is wrong");
 		}
+		finally
+		{
+			dbUtil.CloseDB(db);
+		}
 
 		// try
 		// {
@@ -983,4 +1140,56 @@ public class Network
 		// + " 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
+				{
+				}
+			};
+			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();
+		}
+	}
 }

+ 68 - 13
Apex/src/com/usai/util/dbUtil.java

@@ -14,6 +14,7 @@ import android.util.Log;
 public class dbUtil
 {
 
+	private static final String[] FIELD_ID={ "_id" };
 	// public static final String ZONECODE
 	// public static final int FILTER_TYPE_MSG = 0;
 	// public static final int FILTER_TYPE_BOTH = 1;
@@ -77,12 +78,11 @@ public class dbUtil
 	// if (spliter.length == 0)
 	// continue;
 	//
-	// int ifound = spliter.length; // 关键字个数
-	// for (int idx = 0; idx < spliter.length; idx++) {
-	// // 兼容以前版本关键字有多空格情况;
+	// int ifound = spliter.length; // 鍏抽敭瀛椾釜鏁� // for (int idx = 0; idx <
+	// spliter.length; idx++) {
+	// // 鍏煎浠ュ墠鐗堟湰鍏抽敭瀛楁湁澶氱┖鏍兼儏鍐碉紱
 	// if (spliter[idx].equals("")) {
-	// ifound--; // 排除误计算的空数量
-	// continue;
+	// ifound--; // 鎺掗櫎璇绠楃殑绌烘暟閲� // continue;
 	// }
 	//
 	// if (Msg.indexOf(spliter[idx]) != -1) {
@@ -354,7 +354,7 @@ public class dbUtil
 			boolean writable)
 	{
 
-		SqlOpenHelper dbHelper = new SqlOpenHelper(context, "test1.db",
+		SqlOpenHelper dbHelper = new SqlOpenHelper(context, "apex.db",
 				factory, 1);
 		dbHelper.addInitSQL("create table users (" + "_id INTEGER PRIMARY KEY,"
 				+ "name varchar(20)," + "pass varchar(20))");
@@ -362,10 +362,37 @@ public class dbUtil
 		// dbHelper.addInitSQL("create table scan_records ("
 		// + "_id INTEGER PRIMARY KEY," + "submit BOOLEAN DEFAULT (0),"
 		// + "picker VARCHAR(20)," + "pid varchar(20))");
-
-		dbHelper.addInitSQL("create table pics (" + "_id INTEGER PRIMARY KEY,"
-				+ "picker varchar(20)," + "err_code INTEGER ,"
-				+ "pid varchar(20)," + "local_path varchar(256))");
+		
+		
+		/*
+		 * 
+		 * name : field name
+		 * aname: alias name for display
+		 * field_type: int,bool,varchar...
+		 * function_name: Ocean Booking , Ocean B/L Info., ...
+		 * behavior: search / result
+		 * priority: display order
+		 * show: whether show this field
+		 * abandon: true/false , uses for update auth_info
+		 * user: record owner
+		 * 
+		 * */
+		dbHelper.addInitSQL("CREATE TABLE fields_info (" +
+				"_id INTEGER PRIMARY KEY," +
+				"name VARCHAR(20)," +
+				"aname VARCHAR(20)," +
+				"field_type INTEGER," +
+				"function_name VARCHAR(20)," +
+				"behavior INTEGER," +
+				"priority INTEGER," +
+				"show BOOLEAN," +
+				"abandon BOOLEAN," +
+				"user VARCHAR(20))");
+
+		// dbHelper.addInitSQL("create table pics (" +
+		// "_id INTEGER PRIMARY KEY,"
+		// + "picker varchar(20)," + "err_code INTEGER ,"
+		// + "pid varchar(20)," + "local_path varchar(256))");
 
 		SQLiteDatabase db = dbHelper.OpenDB(writable);
 		return db;
@@ -390,7 +417,7 @@ public class dbUtil
 		if (to == null)
 			to = source.getColumnNames();
 
-		if (from.length != to.length)// 字段数不匹配
+		if (from.length != to.length)// 瀛楁鏁颁笉鍖归厤
 			return ret;
 
 		while (source.moveToNext())
@@ -444,7 +471,7 @@ public class dbUtil
 		try
 		{
 
-			cursor = db.query(table, new String[] { "*" }, null, null, null,
+			cursor = db.query(table, FIELD_ID, null, null, null,
 					null, null, "1");
 			if (cursor.moveToNext())
 			{
@@ -473,7 +500,7 @@ public class dbUtil
 		try
 		{
 
-			cursor = db.query(table, new String[] { "_id" }, where, null, null,
+			cursor = db.query(table, FIELD_ID, where, null, null,
 					null, null, null);
 			if (cursor.moveToNext())
 				ret = true;
@@ -492,6 +519,34 @@ public class dbUtil
 		}
 		return ret;
 
+	}
+	public static int get_recordid(SQLiteDatabase db, String table,
+			String where)
+	{
+		int ret = -1;
+		Cursor cursor = null;
+		try
+		{
+			
+			cursor = db.query(table, FIELD_ID, where, null, null,
+					null, null, null);
+			if (cursor.moveToNext())
+				ret = cursor.getInt(0);
+			else
+				ret = -1;
+		}
+		catch (SQLiteException e)
+		{
+			Log.e("sql_err", e.toString());
+			
+		}
+		finally
+		{
+			
+			dbUtil.CloseCursor(cursor);
+		}
+		return ret;
+		
 	}
 
 	// if(isTableEmpty(db,"block_records"))

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini