Просмотр исходного кода

修复Apex Land 测试发现的问题
修复Apex Mobile 测试发现的问题

Ray Zhang 7 лет назад
Родитель
Сommit
d6746b15b4
33 измененных файлов с 586 добавлено и 109 удалено
  1. 6 5
      ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/service/RAService.java
  2. 18 0
      ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/utils/RAUtil.java
  3. 2 2
      ApexDrivers/apexdriverscn/src/main/java/com/usai/apex/apexdriverscn/ApplicationCN.java
  4. 1 1
      ApexDrivers/apexdriversi/build.gradle
  5. 2 2
      ApexDrivers/apexdriversi/src/main/java/com/usai/apex/apexdriversi/ApplicationI.java
  6. 1 0
      ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/ApexDriverApplication.java
  7. 1 0
      ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/ApexDriversBackgroundService.java
  8. 26 4
      ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/MainActivity.java
  9. 7 1
      ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/base/BasicObject.java
  10. 20 10
      ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/detail/DetailActivity.java
  11. 33 2
      ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/home/HomeFragment.java
  12. 63 13
      ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/home/HomeMoreActivity.java
  13. 34 13
      ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/message/MessageActivity.java
  14. 121 9
      ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/network/Network.java
  15. 13 1
      ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/update/UpdateActivity.java
  16. 14 0
      ApexDrivers/apexdriverslib/src/main/res/drawable/cache_background.xml
  17. 44 4
      ApexDrivers/apexdriverslib/src/main/res/layout/activity_detail.xml
  18. 46 4
      ApexDrivers/apexdriverslib/src/main/res/layout/activity_home_more.xml
  19. 4 4
      ApexDrivers/apexdriverslib/src/main/res/layout/activity_message.xml
  20. 44 4
      ApexDrivers/apexdriverslib/src/main/res/layout/activity_update.xml
  21. 47 4
      ApexDrivers/apexdriverslib/src/main/res/layout/fragment_home.xml
  22. 5 2
      ApexDrivers/apexdriverslib/src/main/res/values-zh/strings.xml
  23. 1 0
      ApexDrivers/apexdriverslib/src/main/res/values/colors.xml
  24. 7 3
      ApexDrivers/apexdriverslib/src/main/res/values/strings.xml
  25. 1 0
      ApexDrivers/apexdriverslib/src/main/res/values/styles.xml
  26. 12 10
      ApexDrivers/apexmobile/src/main/java/com/usai/apex/LocationDetailActivity.java
  27. 1 1
      ApexDrivers/apexmobile/src/main/java/com/usai/apex/mainframe/HistoryFragment.java
  28. 1 1
      ApexDrivers/apexmobile/src/main/java/com/usai/apex/mainframe/LoginFragment.java
  29. 6 6
      ApexDrivers/apexmobile/src/main/res/layout/activity_change_password.xml
  30. 2 2
      ApexDrivers/apexmobile/src/main/res/layout/activity_retrieve_password.xml
  31. 1 1
      ApexDrivers/apexmobile/src/main/res/layout/fragment_login.xml
  32. 1 0
      ApexDrivers/apexmobile/src/main/res/values-zh/strings.xml
  33. 1 0
      ApexDrivers/apexmobile/src/main/res/values/strings.xml

+ 6 - 5
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/service/RAService.java

@@ -9,7 +9,6 @@ import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.location.Location;
 import android.net.ConnectivityManager;
@@ -36,7 +35,6 @@ import com.usai.redant.rautils.location.SystemLocation;
 import com.usai.redant.rautils.receiver.RABroadcast;
 import com.usai.redant.rautils.receiver.RABroadcastReceiver;
 import com.usai.redant.rautils.upload.RAUploadManager;
-import com.usai.redant.rautils.utils.RAUtil;
 import com.usai.redant.rautils.utils.dbgUtil;
 
 import org.json.JSONObject;
@@ -50,6 +48,7 @@ public abstract class RAService extends Service {
 
     protected static  String CHANNEL_ID = "RAService";
     protected static  String CHANNEL_NAME = "RAService";
+    protected static  String LAUNCH_MSG = "SERVICE IS RUNNING";
     public static final int DEFAULT_LOCATION_TIMEINTERVAL = 30 * 1000;
 //    public static final int DEFAULT_DISTANCE = 0 * 50;
     public static final int DEFAULT_PUSHNOTIFICATION_TIMEINTERVAL = 30 * 1000;
@@ -611,11 +610,13 @@ public abstract class RAService extends Service {
 //            String CHANNEL_ID = "apex & driver";
 //            String CHANNEL_NAME = "Background Service";
 
-            NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
-                    CHANNEL_NAME, NotificationManager.IMPORTANCE_HIGH);
+            NotificationChannel channel = new NotificationChannel("Service Start",
+                    "Service Start", NotificationManager.IMPORTANCE_HIGH);
             ((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(channel);
 
-            Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
+            Notification notification = new NotificationCompat.Builder(this, "Service Start")
+//                    .setContentTitle("Apex Land is running.")
+                    .setContentText(LAUNCH_MSG)
                     .setCategory(Notification.CATEGORY_SERVICE).setSmallIcon(R.drawable.ic_launcher_foreground).setPriority(1000).build();
 
             startForeground(101, notification);

+ 18 - 0
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/utils/RAUtil.java

@@ -4,6 +4,7 @@ import android.app.Activity;
 import android.app.Application;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
@@ -12,6 +13,7 @@ import android.graphics.Bitmap;
 import android.graphics.Canvas;
 import android.graphics.Matrix;
 import android.graphics.Paint;
+import android.location.LocationManager;
 import android.os.Build;
 import android.os.Bundle;
 import android.provider.Settings;
@@ -235,6 +237,22 @@ public class RAUtil {
         return bundle;
     }
 
+    // 检查定位系统设置
+    public static boolean isLocServiceEnable(Context context) {
+        LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
+        boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
+        boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
+        if (gps || network) {
+            return true;
+        }
+        return false;
+    }
+    //打开定位系统设置
+    public static void openLocation(Context context) {
+        Intent intent =  new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
+        context.startActivity(intent);
+    }
+
 
     public static final int MY_PERMISSIONS_REQUEST = 1;
 

+ 2 - 2
ApexDrivers/apexdriverscn/src/main/java/com/usai/apex/apexdriverscn/ApplicationCN.java

@@ -7,8 +7,8 @@ public class ApplicationCN extends ApexDriverApplication {
     public void onCreate()
     {
         bUseGoogleLocation = false;
-        CHANNEL_ID = "Apex & Drivers CN";
-        CHANNEL_NAME = "Apex & Drivers CN";
+        CHANNEL_ID = "Apex Land";
+        CHANNEL_NAME = "Push Notification";
 
         super.onCreate();
     }

+ 1 - 1
ApexDrivers/apexdriversi/build.gradle

@@ -7,7 +7,7 @@ android {
         minSdkVersion 23
         targetSdkVersion 26
         versionCode 1
-        versionName "1.0"
+        versionName "1.11"
 
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
 

+ 2 - 2
ApexDrivers/apexdriversi/src/main/java/com/usai/apex/apexdriversi/ApplicationI.java

@@ -9,8 +9,8 @@ public class ApplicationI extends ApexDriverApplication implements RAProviderHel
     public void onCreate()
     {
         super.onCreate();
-        CHANNEL_ID = "Apex & Drivers I";
-        CHANNEL_NAME = "Apex & Drivers I";
+        CHANNEL_ID = "Apex Land";
+        CHANNEL_NAME = "Push Notification";
     }
 
     @Override

+ 1 - 0
ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/ApexDriverApplication.java

@@ -49,6 +49,7 @@ public class ApexDriverApplication extends Application {
     public final static String preferencesKey = "Apex";
     public static  String CHANNEL_ID = "Apex & Drivers";
     public static  String CHANNEL_NAME = "Apex & Drivers";
+    public static  String LAUNCH_MSG = "Apex Land is running";
     public static boolean bUseGoogleLocation = true;
 
     private static ApexDriverApplication mApp;

+ 1 - 0
ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/ApexDriversBackgroundService.java

@@ -61,6 +61,7 @@ public class ApexDriversBackgroundService extends RAService implements RAService
 
         CHANNEL_ID=ApexDriverApplication.sharedApplication().CHANNEL_ID;
         CHANNEL_NAME=ApexDriverApplication.sharedApplication().CHANNEL_NAME;
+        LAUNCH_MSG=ApexDriverApplication.sharedApplication().LAUNCH_MSG;
         initServiceLocation(ApexDriverApplication.sharedApplication().isbUseSystemLocation(),this);
 //        initServiceNotification(this,"replace this string with notification checking url");
 

+ 26 - 4
ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/MainActivity.java

@@ -26,7 +26,6 @@ import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
 import android.support.v4.app.NotificationManagerCompat;
 import android.text.TextUtils;
-import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.widget.RelativeLayout;
@@ -45,7 +44,6 @@ import org.json.JSONException;
 import org.json.JSONObject;
 
 import java.lang.ref.WeakReference;
-import java.util.Iterator;
 
 import static com.usai.redant.apexdrivers.ApexDriversBackgroundService.APEX_DRIVER_UPLOAD_COUNT_CHANGE_NOTIFICATION;
 
@@ -176,8 +174,8 @@ public class MainActivity extends BasicActivity implements LoginFragment.LoginCa
 
 //        checkPowerManagement();
 
-        Test();
-
+//        Test();
+        checkSysLocation();
         checkPermissions();
 
         checkNotificationEnable();
@@ -425,6 +423,30 @@ public class MainActivity extends BasicActivity implements LoginFragment.LoginCa
         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
     }
 
+    private void checkSysLocation()
+    {
+        boolean syslocation=RAUtil.isLocServiceEnable(this);
+        if(!syslocation)
+        {
+            new android.support.v7.app.AlertDialog.Builder(this)
+                    .setTitle("System Location service is disable")
+                    .setMessage("Do you want to enable System Location service?")
+                    .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
+                        @Override
+                        public void onClick(DialogInterface dialog, int which) {
+                            RAUtil.openLocation(MainActivity.this);
+                        }
+                    })
+                    .setNegativeButton("No", new DialogInterface.OnClickListener() {
+                        @Override
+                        public void onClick(DialogInterface dialog, int which) {
+
+                        }
+                    })
+                    .show();
+        }
+    }
+
     private void checkPermissions() {
 
 //        String[] permissions = {Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE};

+ 7 - 1
ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/base/BasicObject.java

@@ -103,7 +103,13 @@ public class BasicObject {
                 return true;
             }
 
-        } catch (Exception e) {
+        }
+        catch(NoSuchMethodException e)
+        {
+
+        }
+        catch (Exception e) {
+//            dbgUtil.Logd("invokeSetter",e.getMessage());
             e.printStackTrace();
         }
 

+ 20 - 10
ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/detail/DetailActivity.java

@@ -7,15 +7,13 @@ import android.content.Intent;
 import android.graphics.Color;
 import android.graphics.drawable.ColorDrawable;
 import android.net.Uri;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
-import android.support.v4.content.LocalBroadcastManager;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
-import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
@@ -32,15 +30,14 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import com.usai.redant.apexdrivers.ApexDriverApplication;
+import com.usai.redant.apexdrivers.R;
 import com.usai.redant.apexdrivers.base.BasicActivity;
 import com.usai.redant.apexdrivers.detail.model.DetailActionSelectionModel;
 import com.usai.redant.apexdrivers.detail.model.DetailLocationModel;
 import com.usai.redant.apexdrivers.detail.model.DetailMapModel;
 import com.usai.redant.apexdrivers.detail.model.DetailSubActionModel;
 import com.usai.redant.apexdrivers.home.HomeFragment;
-import com.usai.redant.apexdrivers.MainActivity;
 import com.usai.redant.apexdrivers.network.Network;
-import com.usai.redant.apexdrivers.R;
 import com.usai.redant.apexdrivers.update.UpdateActivity;
 import com.usai.redant.rautils.utils.RAUtil;
 
@@ -51,8 +48,6 @@ import org.json.JSONObject;
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 
-
-import static com.usai.redant.apexdrivers.detail.DetailAdapter.MapLifCircleAction;
 import static com.usai.redant.apexdrivers.detail.model.DetailSubActionModel.DetailActionSubType.DetailActionSubTypeAccept;
 import static com.usai.redant.apexdrivers.detail.model.DetailSubActionModel.DetailActionSubType.DetailActionSubTypeEnum;
 import static com.usai.redant.apexdrivers.detail.model.DetailSubActionModel.DetailActionSubType.DetailActionSubTypeUpdate;
@@ -387,7 +382,7 @@ public class DetailActivity extends BasicActivity implements DetailAdapter.Detai
     }
 
     private void loadData() {
-
+        findViewById(R.id.label_cache).setVisibility(View.INVISIBLE);
         showProgressDialog();
 
         if (mSectionArray != null) {
@@ -402,7 +397,16 @@ public class DetailActivity extends BasicActivity implements DetailAdapter.Detai
             public void run() {
 
                 JSONObject json = com.usai.redant.apexdrivers.network.Network.requestOrderDetail(mCtx,mOrderID,mOrderStatus,mOrderType2,mStatusNo);
+                if(json.optBoolean("iscache"))
+                {
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            findViewById(R.id.label_cache).setVisibility(View.VISIBLE);
+                        }
+                    });
 
+                }
                 Message msg = new Message();
                 msg.what = DetailHandler.DetailActionReloadData;
                 msg.obj = json;
@@ -559,6 +563,10 @@ public class DetailActivity extends BasicActivity implements DetailAdapter.Detai
             activity.dismissProgressDialog();
             switch (msg.what) {
                 case DetailActionReloadData: {
+//                    if(activity.mListView.getEmptyView()==null)
+//                    {
+//                        activity.mListView.setEmptyView(activity.findViewById(R.id.detail_empty_view));
+//                    }
 
                     if (activity.mRefresh.isRefreshing()) {
                         activity.mRefresh.setRefreshing(false);
@@ -571,7 +579,7 @@ public class DetailActivity extends BasicActivity implements DetailAdapter.Detai
                         try {
                             int restul = json.getInt("result");
                             if (restul == RESULT_TRUE) {
-
+                                activity.mEmptyView.setVisibility(View.GONE);
                                 if (!activity.mLoad) {
                                     activity.mLoad = true;
 
@@ -584,6 +592,7 @@ public class DetailActivity extends BasicActivity implements DetailAdapter.Detai
 
                             } else {
                                 // error
+                                activity.mEmptyView.setVisibility(View.VISIBLE);
                                 String errMsg = json.optString("err_msg");
                                 if (errMsg == null || errMsg.length() == 0) {
                                     errMsg = activity.getString(R.string.sorry);
@@ -592,6 +601,7 @@ public class DetailActivity extends BasicActivity implements DetailAdapter.Detai
                             }
 
                         } catch (JSONException e) {
+                            activity.mEmptyView.setVisibility(View.VISIBLE);
                             e.printStackTrace();
                             // error
                             String errMsg = activity.getString(R.string.sorry);
@@ -599,7 +609,7 @@ public class DetailActivity extends BasicActivity implements DetailAdapter.Detai
                         }
                     } else {
                         // error
-                        String errMsg = activity.getString(R.string.sorry);
+                        String errMsg = activity.getString(R.string.connect_wrong);
                         activity.showWarningMsg(errMsg);
                     }
                     activity.changeData();

+ 33 - 2
ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/home/HomeFragment.java

@@ -399,6 +399,7 @@ public class HomeFragment extends Fragment implements HomeHeaderView.HomeHeaderD
 
     private void loadData() {
 
+        getActivity().findViewById(R.id.label_cache).setVisibility(View.INVISIBLE);
         showProgressDialog();
 
         if (mSectionArray != null) {
@@ -417,16 +418,40 @@ public class HomeFragment extends Fragment implements HomeHeaderView.HomeHeaderD
                     try {
 
                         int restul = json.getInt("result");
+                        final JSONArray sectionArr = json.optJSONArray("sections");
                         if (restul == Network.RESULT_TRUE) {
-
+                            getActivity().runOnUiThread(new Runnable() {
+                                @Override
+                                public void run() {
+                                    if(sectionArr!=null&&sectionArr.length()!=0)
+                                        mEmptyView.setVisibility(View.GONE);
+                                    else
+                                        mEmptyView.setVisibility(View.VISIBLE);
+                                }
+                            });
                             boolean requiredLocation = json.optBoolean("requiredLocation");
                             ApexDriverApplication.sharedApplication().setRequiredLocation(requiredLocation);
 
+                            if(json.optBoolean("iscache"))
+                            {
+
+                                getActivity().runOnUiThread(new Runnable() {
+                                    @Override
+                                    public void run() {
+                                        getActivity().findViewById(R.id.label_cache).setVisibility(View.VISIBLE);
+                                    }
+                                });
+                            }
                             mSelectedModel = null;
                             handleJson(json);
 
                         } else {
-
+                            getActivity().runOnUiThread(new Runnable() {
+                                @Override
+                                public void run() {
+                                    mEmptyView.setVisibility(View.VISIBLE);;
+                                }
+                            });
                             // error
                             Message msg = new Message();
                             msg.what = HomeHandler.HomeActionError;
@@ -454,6 +479,12 @@ public class HomeFragment extends Fragment implements HomeHeaderView.HomeHeaderD
                     }
                 } else {
                     // error;
+                    getActivity().runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            mEmptyView.setVisibility(View.VISIBLE);;
+                        }
+                    });
                     Message msg = new Message();
                     msg.what = HomeHandler.HomeActionError;
 

+ 63 - 13
ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/home/HomeMoreActivity.java

@@ -365,6 +365,7 @@ public class HomeMoreActivity extends BasicActivity implements AbsListView.OnScr
             }
         });
 
+//        View empty_view = (View)findViewById(R.id.home_more_empty_btn);
         mEmptyView = findViewById(R.id.home_more_empty_btn);
         mEmptyView.setText(getString(R.string.empty_msg));
         mEmptyView.setOnClickListener(new View.OnClickListener() {
@@ -373,19 +374,24 @@ public class HomeMoreActivity extends BasicActivity implements AbsListView.OnScr
                 loadData();
             }
         });
-        mListView.setEmptyView(findViewById(R.id.home_more_empty_view));
 
-        mListView.setOnScrollListener(new AbsListView.OnScrollListener() {
-            @Override
-            public void onScrollStateChanged(AbsListView view, int scrollState) {
+//        View empty_view = (View)findViewById(R.id.home_more_empty_view);
+//        empty_view.setVisibility(View.GONE);
+        mListView.setEmptyView(findViewById(R.id.home_more_empty_view));
 
-            }
+        mListView.setOnScrollListener(this);
 
-            @Override
-            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
-                mFirstVisible = firstVisibleItem;
-            }
-        });
+//        mListView.setOnScrollListener(new AbsListView.OnScrollListener() {
+//            @Override
+//            public void onScrollStateChanged(AbsListView view, int scrollState) {
+//
+//            }
+//
+//            @Override
+//            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
+//                mFirstVisible = firstVisibleItem;
+//            }
+//        });
     }
 
 
@@ -403,9 +409,17 @@ public class HomeMoreActivity extends BasicActivity implements AbsListView.OnScr
             // 表示此时需要显示刷新视图界面进行新数据的加载(要等滑动停止)
             if(!isLoading)
             {
-                // 设置刷新界面可见
-                footer.setVisibility(View.VISIBLE);
-                loadMore();
+                if(findViewById(R.id.label_cache).getVisibility()==View.VISIBLE)
+                {
+                    // 设置刷新界面可见
+                    footer.setVisibility(View.INVISIBLE);
+//                    loadMore();
+                }
+                else {
+                    // 设置刷新界面可见
+                    footer.setVisibility(View.VISIBLE);
+                    loadMore();
+                }
             }
         }
     }
@@ -541,6 +555,7 @@ public class HomeMoreActivity extends BasicActivity implements AbsListView.OnScr
 
     private void loadData(final int option) {
 
+        findViewById(R.id.label_cache).setVisibility(View.INVISIBLE);
         if (isLoading) {
             return;
         }
@@ -571,10 +586,39 @@ public class HomeMoreActivity extends BasicActivity implements AbsListView.OnScr
                         if (restul == Network.RESULT_TRUE) {
 
                             mSelectedModel = null;
+                            if(json.optBoolean("iscache"))
+                            {
+                                runOnUiThread(new Runnable() {
+                                    @Override
+                                    public void run() {
+                                        findViewById(R.id.label_cache).setVisibility(View.VISIBLE);
+                                    }
+                                });
+
+
+
+                            }
                             handleJson(json,option);
+                            final JSONArray orders = json.optJSONArray("orders");
+                            runOnUiThread(new Runnable() {
+                                @Override
+                                public void run() {
+                                    if(orders!=null&&orders.length()!=0)
+                                        mEmptyView.setVisibility(View.GONE);
+                                    else
+                                        mEmptyView.setVisibility(View.VISIBLE);
+                                }
+                            });
+
 
                         } else {
 
+                            runOnUiThread(new Runnable() {
+                                @Override
+                                public void run() {
+                                    mEmptyView.setVisibility(View.VISIBLE);
+                                }
+                            });
                             // error
                             Message msg = new Message();
                             msg.what = HomeMoreHandler.HomeActionError;
@@ -601,6 +645,12 @@ public class HomeMoreActivity extends BasicActivity implements AbsListView.OnScr
                         mHandler.sendMessage(msg);
                     }
                 } else {
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            mEmptyView.setVisibility(View.VISIBLE);
+                        }
+                    });
                     // error;
                     Message msg = new Message();
                     msg.what = HomeMoreHandler.HomeActionError;

+ 34 - 13
ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/message/MessageActivity.java

@@ -265,17 +265,17 @@ public class MessageActivity extends BasicActivity implements AbsListView.OnScro
         });
         mListView.setEmptyView(findViewById(R.id.message_empty_view));
 
-        mListView.setOnScrollListener(new AbsListView.OnScrollListener() {
-            @Override
-            public void onScrollStateChanged(AbsListView view, int scrollState) {
-
-            }
-
-            @Override
-            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
-                mFirstVisible = firstVisibleItem;
-            }
-        });
+//        mListView.setOnScrollListener(new AbsListView.OnScrollListener() {
+//            @Override
+//            public void onScrollStateChanged(AbsListView view, int scrollState) {
+//
+//            }
+//
+//            @Override
+//            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
+//                mFirstVisible = firstVisibleItem;
+//            }
+//        });
     }
 
     /**
@@ -362,8 +362,18 @@ public class MessageActivity extends BasicActivity implements AbsListView.OnScro
 
                     int result = json.optInt("result");
                     if (result == com.usai.redant.rautils.utils.Network.RESULT_TRUE) {
+                        final JSONArray messages = json.optJSONArray("messages");
+
+                        runOnUiThread(new Runnable() {
+                            @Override
+                            public void run() {
+                                if(messages!=null&&messages.length()!=0)
+                                    mEmptyView.setVisibility(View.GONE);
+                                else
+                                    mEmptyView.setVisibility(View.VISIBLE);
+                            }
+                        });
 
-                        JSONArray messages = json.optJSONArray("messages");
 
                         long notificationId = json.optLong("notificationId");
                         ApexDriverApplication.sharedApplication().setNotificationID(notificationId);
@@ -371,7 +381,12 @@ public class MessageActivity extends BasicActivity implements AbsListView.OnScro
                         handleJsonArray(type,messages);
 
                     } else {
-
+                        runOnUiThread(new Runnable() {
+                            @Override
+                            public void run() {
+                                mEmptyView.setVisibility(View.VISIBLE);;
+                            }
+                        });
                         String msg = json.optString("err_msg");
                         if (TextUtils.isEmpty(msg)) {
                             msg = getString(R.string.sorry);
@@ -380,6 +395,12 @@ public class MessageActivity extends BasicActivity implements AbsListView.OnScro
                     }
 
                 } else {
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            mEmptyView.setVisibility(View.VISIBLE);;
+                        }
+                    });
                     showWarningMsg(getString(R.string.sorry));
                 }
 

+ 121 - 9
ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/network/Network.java

@@ -7,9 +7,8 @@ import android.location.Location;
 import android.os.Bundle;
 import android.text.TextUtils;
 
-
 import com.usai.redant.apexdrivers.ApexDriverApplication;
-import com.usai.redant.apexdrivers.offline.OfflineHandler;
+import com.usai.redant.rautils.utils.FileManager;
 import com.usai.redant.rautils.utils.RAUtil;
 import com.usai.redant.rautils.utils.dbgUtil;
 
@@ -17,15 +16,14 @@ import org.json.JSONException;
 import org.json.JSONObject;
 
 import java.io.BufferedReader;
+import java.io.File;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.Locale;
 
-import static java.lang.Thread.sleep;
-
 public class Network extends com.usai.redant.rautils.utils.Network {
 
-    private static final String URL_HOST = "http://192.168.0.124:8080/t";
+    private static final String URL_HOST = "http://192.168.1.108:8080/t";
 //    private static final String URL_HOST = "https://ra.apexshipping.com/t";
 
 
@@ -180,7 +178,41 @@ public class Network extends com.usai.redant.rautils.utils.Network {
         prepareParams(params);
         String jsonStr = getJson(URL_HOME,params);
 
-        return handleJson(jsonStr);
+        JSONObject json= handleJson(jsonStr);
+//        try {
+//            FileManager.createSDDir(FileManager.(context)+ File.separator+params.getString("user"));
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        }
+
+        String user = ApexDriverApplication.sharedApplication().user;
+        String path=FileManager.internalStorageFileDir(context)+ File.separator + user+"_orderList.json";
+
+        if(json!=null&& json.optInt("result")!=RESULT_NET_ERROR&& json.optInt("result")!=RESULT_NET_NOTAVAILABLE)
+        {
+            FileManager.writeJson(json.toString(),path);
+            return json;
+        }
+        else
+        {
+            JSONObject cachejson=handleJson(FileManager.readJson(path));
+            if(cachejson!=null)
+            {
+                try {
+                    cachejson.put("iscache",true);
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+                return cachejson;
+            }
+            else
+            {
+                return json;
+            }
+        }
+
+
+
     }
 
     public static JSONObject requestMoreOrder(Context context, int orderType, int offset, int limit,String filter) {
@@ -197,7 +229,33 @@ public class Network extends com.usai.redant.rautils.utils.Network {
         prepareParams(params);
         String jsonStr = getJson(URL_MORE_ORDER,params);
 
-        return handleJson(jsonStr);
+        JSONObject json= handleJson(jsonStr);
+
+        String user = ApexDriverApplication.sharedApplication().user;
+        String path=FileManager.internalStorageFileDir(context)+ File.separator + user+"_moreorder"+orderType+".json";
+
+        if(offset==0&&json!=null&& json.optInt("result")!=RESULT_NET_ERROR&& json.optInt("result")!=RESULT_NET_NOTAVAILABLE)
+        {
+            FileManager.writeJson(json.toString(),path);
+            return json;
+        }
+        else
+        {
+            JSONObject cachejson=handleJson(FileManager.readJson(path));
+            if(offset==0&&cachejson!=null)
+            {
+                try {
+                    cachejson.put("iscache",true);
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+                return cachejson;
+            }
+            else
+            {
+                return json;
+            }
+        }
 
     }
 
@@ -233,7 +291,35 @@ public class Network extends com.usai.redant.rautils.utils.Network {
 
         }
 
-        return json;
+
+        String user = ApexDriverApplication.sharedApplication().user;
+        String path=FileManager.internalStorageFileDir(context)+ File.separator + user+"_detail_"+orderID+".json";
+
+        if(json!=null&& json.optInt("result")!=RESULT_NET_ERROR&& json.optInt("result")!=RESULT_NET_NOTAVAILABLE)
+        {
+            FileManager.writeJson(json.toString(),path);
+            return json;
+        }
+        else
+        {
+            JSONObject cachejson=handleJson(FileManager.readJson(path));
+            if(cachejson!=null)
+            {
+                try {
+                    cachejson.put("iscache",true);
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+                return cachejson;
+            }
+            else
+            {
+                return json;
+            }
+        }
+
+
+//        return json;
     }
 
     public static JSONObject requestOrderUpdateInfo(Context context,String orderID, int actionID, int actionIdx) {
@@ -256,7 +342,33 @@ public class Network extends com.usai.redant.rautils.utils.Network {
         prepareParams(params);
         String jsonStr = getJson(URL_UPDATE,params);
 
-        return handleJson(jsonStr);
+        JSONObject json= handleJson(jsonStr);
+
+        String user = ApexDriverApplication.sharedApplication().user;
+        String path=FileManager.internalStorageFileDir(context)+ File.separator + user+"_"+actionID+"_"+orderID+".json";
+
+        if(json!=null&& json.optInt("result")!=RESULT_NET_ERROR&& json.optInt("result")!=RESULT_NET_NOTAVAILABLE)
+        {
+            FileManager.writeJson(json.toString(),path);
+            return json;
+        }
+        else
+        {
+            JSONObject cachejson=handleJson(FileManager.readJson(path));
+            if(cachejson!=null)
+            {
+                try {
+                    cachejson.put("iscache",true);
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+                return cachejson;
+            }
+            else
+            {
+                return json;
+            }
+        }
     }
 
     public static JSONObject report(String orderId, int orderType, int actionType, int actionIdx, String actionName, String url, Bundle params) {

+ 13 - 1
ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/update/UpdateActivity.java

@@ -633,6 +633,7 @@ public class UpdateActivity extends BasicActivity implements UpdateAdapter.Updat
 
     private void loadData() {
 
+        findViewById(R.id.label_cache).setVisibility(View.INVISIBLE);
         showProgressDialog();
 
         if (mSectionArray != null) {
@@ -647,7 +648,16 @@ public class UpdateActivity extends BasicActivity implements UpdateAdapter.Updat
             public void run() {
 
                 JSONObject json = com.usai.redant.apexdrivers.network.Network.requestOrderUpdateInfo(mCtx,mOrderID,mActionID,mActionIndex);
+                if(json.optBoolean("iscache"))
+                {
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            findViewById(R.id.label_cache).setVisibility(View.VISIBLE);
+                        }
+                    });
 
+                }
                 Message msg = new Message();
                 msg.what = UpdateHandler.UpdateActionReloadData;
                 msg.obj = json;
@@ -1452,7 +1462,7 @@ public class UpdateActivity extends BasicActivity implements UpdateAdapter.Updat
 
                             int restul = json.getInt("result");
                             if (restul == RESULT_TRUE) {
-
+                                activity.mEmptyView.setVisibility(View.GONE);
                                 activity.handleJSON(json);
 
                             } else {
@@ -1465,12 +1475,14 @@ public class UpdateActivity extends BasicActivity implements UpdateAdapter.Updat
                             }
 
                         } catch (JSONException e) {
+                            activity.mEmptyView.setVisibility(View.VISIBLE);
                             e.printStackTrace();
                             // error
                             String errMsg = activity.getString(R.string.sorry);
                             activity.showWarningMsg(errMsg);
                         }
                     } else {
+                        activity.mEmptyView.setVisibility(View.VISIBLE);
                         // error
                         String errMsg = activity.getString(R.string.sorry);
                         activity.showWarningMsg(errMsg);

+ 14 - 0
ApexDrivers/apexdriverslib/src/main/res/drawable/cache_background.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <solid
+        android:color="@color/ApexDriverCache"
+        />
+
+    <stroke
+        android:color="@color/ApexDriverGray"
+        android:width="0.5dp"
+        />
+
+</shape>

+ 44 - 4
ApexDrivers/apexdriverslib/src/main/res/layout/activity_detail.xml

@@ -32,14 +32,54 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
-            android:padding="5dp"
-            android:gravity="center_horizontal"
             android:background="@drawable/round_corner_bg"
+            android:gravity="center_horizontal"
+            android:padding="5dp"
+            android:singleLine="false"
             android:textColor="#000000"
             android:textSize="17sp"
-            android:singleLine="false"
-            />
+            android:visibility="gone" />
 
     </RelativeLayout>
+    <LinearLayout
+        android:id="@+id/label_cache"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@drawable/cache_background"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:visibility="invisible"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
 
+        <TextView
+            android:id="@+id/cache_header"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:paddingTop="4dp"
+            android:text="@string/cache_header"
+            android:textAlignment="center"
+            android:textSize="18sp"
+            android:textStyle="bold" />
+
+        <TextView
+            android:id="@+id/cache_msg"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+
+
+            android:ellipsize="middle"
+            android:gravity="center"
+            android:paddingLeft="20dp"
+            android:paddingTop="8dp"
+            android:paddingRight="20dp"
+            android:paddingBottom="8dp"
+            android:singleLine="false"
+            android:text="@string/cache_msg"
+            android:textAlignment="center"
+            android:textSize="14sp" />
+    </LinearLayout>
 </android.support.constraint.ConstraintLayout>

+ 46 - 4
ApexDrivers/apexdriverslib/src/main/res/layout/activity_home_more.xml

@@ -35,15 +35,57 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
-            android:padding="5dp"
-            android:gravity="center_horizontal"
             android:background="@drawable/round_corner_bg"
+            android:gravity="center_horizontal"
+            android:padding="5dp"
+            android:singleLine="false"
             android:textColor="#000000"
             android:textSize="17sp"
-            android:singleLine="false"
-            />
+            android:visibility="gone" />
 
     </RelativeLayout>
 
+    <LinearLayout
+        android:id="@+id/label_cache"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@drawable/cache_background"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:visibility="invisible"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <TextView
+            android:id="@+id/cache_header"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:paddingTop="4dp"
+            android:text="@string/cache_header"
+            android:textAlignment="center"
+            android:textSize="18sp"
+            android:textStyle="bold" />
+
+        <TextView
+            android:id="@+id/cache_msg"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+
+
+            android:ellipsize="middle"
+            android:gravity="center"
+            android:paddingLeft="20dp"
+            android:paddingTop="8dp"
+            android:paddingRight="20dp"
+            android:paddingBottom="8dp"
+            android:singleLine="false"
+            android:text="@string/cache_msg"
+            android:textAlignment="center"
+            android:textSize="14sp" />
+    </LinearLayout>
+
 
 </android.support.constraint.ConstraintLayout>

+ 4 - 4
ApexDrivers/apexdriverslib/src/main/res/layout/activity_message.xml

@@ -31,13 +31,13 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
-            android:padding="5dp"
-            android:gravity="center_horizontal"
             android:background="@drawable/round_corner_bg"
+            android:gravity="center_horizontal"
+            android:padding="5dp"
+            android:singleLine="false"
             android:textColor="#000000"
             android:textSize="17sp"
-            android:singleLine="false"
-            />
+            android:visibility="gone" />
 
     </RelativeLayout>
 

+ 44 - 4
ApexDrivers/apexdriverslib/src/main/res/layout/activity_update.xml

@@ -33,14 +33,54 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
-            android:padding="5dp"
-            android:gravity="center_horizontal"
             android:background="@drawable/round_corner_bg"
+            android:gravity="center_horizontal"
+            android:padding="5dp"
+            android:singleLine="false"
             android:textColor="#000000"
             android:textSize="17sp"
-            android:singleLine="false"
-            />
+            android:visibility="gone" />
 
     </RelativeLayout>
+    <LinearLayout
+        android:id="@+id/label_cache"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@drawable/cache_background"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:visibility="invisible"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
 
+        <TextView
+            android:id="@+id/cache_header"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:paddingTop="4dp"
+            android:text="@string/cache_header"
+            android:textAlignment="center"
+            android:textSize="18sp"
+            android:textStyle="bold" />
+
+        <TextView
+            android:id="@+id/cache_msg"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+
+
+            android:ellipsize="middle"
+            android:gravity="center"
+            android:paddingLeft="20dp"
+            android:paddingTop="8dp"
+            android:paddingRight="20dp"
+            android:paddingBottom="8dp"
+            android:singleLine="false"
+            android:text="@string/cache_msg"
+            android:textAlignment="center"
+            android:textSize="14sp" />
+    </LinearLayout>
 </android.support.constraint.ConstraintLayout>

+ 47 - 4
ApexDrivers/apexdriverslib/src/main/res/layout/fragment_home.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <android.support.constraint.ConstraintLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     >
@@ -36,14 +37,56 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
-            android:padding="5dp"
-            android:gravity="center_horizontal"
             android:background="@drawable/round_corner_bg"
+            android:gravity="center_horizontal"
+            android:padding="5dp"
+            android:singleLine="false"
             android:textColor="#000000"
             android:textSize="17sp"
-            android:singleLine="false"
-            />
+            android:visibility="gone" />
 
     </RelativeLayout>
 
+    <LinearLayout
+        android:id="@+id/label_cache"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@drawable/cache_background"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:visibility="invisible"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <TextView
+            android:id="@+id/cache_header"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:paddingTop="4dp"
+            android:text="@string/cache_header"
+            android:textAlignment="center"
+            android:textSize="18sp"
+            android:textStyle="bold" />
+
+        <TextView
+            android:id="@+id/cache_msg"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+
+
+            android:ellipsize="middle"
+            android:gravity="center"
+            android:paddingLeft="20dp"
+            android:paddingTop="8dp"
+            android:paddingRight="20dp"
+            android:paddingBottom="8dp"
+            android:singleLine="false"
+            android:text="@string/cache_msg"
+            android:textAlignment="center"
+            android:textSize="14sp" />
+    </LinearLayout>
+
 </android.support.constraint.ConstraintLayout>

+ 5 - 2
ApexDrivers/apexdriverslib/src/main/res/values-zh/strings.xml

@@ -1,5 +1,5 @@
 <resources>
-    <string name="app_name">Apex &amp; Drivers</string>
+    <string name="app_name">Apex Land</string>
 
     <string name="str_ver">版本:</string>
 
@@ -33,6 +33,7 @@
     <string name="message">消息</string>
     <string name="btn_cancel">取消</string>
     <string name="sorry">对不起,发生未知错误.</string>
+    <string name="connect_wrong">连接中断,请检查网络设置后重试</string>
     <string name="empty_msg">暂时没有数据\n请点击刷新</string>
 
     <!--Retrive Password-->
@@ -131,5 +132,7 @@
 
     <!--Auth-->
     <string name="auth_expired_msg">当前账号在其他设备登陆,请重新登陆。</string>
-
+    <!--cache-->
+    <string name="cache_header">连接丢失</string>
+    <string name="cache_msg">您正在浏览缓存内容</string>
 </resources>

+ 1 - 0
ApexDrivers/apexdriverslib/src/main/res/values/colors.xml

@@ -12,6 +12,7 @@
 
     <color name="ApexDriverOrange">#ff8008</color>
     <color name="ApexDriverGray">#4f5356</color>
+    <color name="ApexDriverCache">#d6d6d6</color>
     <color name="ApexDriverWhite">#ffffff</color>
     <color name="ApexDriverOrangeWhiteColor">#e65c00</color>
     <color name="ApexDriverRedColor">#AE2838</color>

+ 7 - 3
ApexDrivers/apexdriverslib/src/main/res/values/strings.xml

@@ -1,5 +1,6 @@
 <resources>
-    <string name="app_name">Apex &amp; Drivers</string>
+
+    <string name="app_name">Apex Land</string>
 
     <string name="str_ver">ver:</string>
 
@@ -33,6 +34,7 @@
     <string name="message">Message</string>
     <string name="btn_cancel">Cancel</string>
     <string name="sorry">Sorry,there is something wrong</string>
+    <string name="connect_wrong">Connection lost, please check your network and try again</string>
 
     <!--Retrive Password-->
     <string name="btn_close">Cancel</string>
@@ -50,7 +52,7 @@
 
     <!--Home-->
     <string name="btn_more">More</string>
-    <string name="empty_msg">There is no data\nPlease click to reload</string>
+    <string name="empty_msg">NO content for now\nPlease click to reload</string>
     <string name="new_order_title">New Order</string>
     <string name="processing_order_title">Processing Order</string>
     <string name="finished_order_title">Finished Order</string>
@@ -130,5 +132,7 @@
 
     <!--Auth-->
     <string name="auth_expired_msg">The current account is logged in on other devices, please log in again.</string>
-
+    <!--cache-->
+    <string name="cache_header">Connection Lost</string>
+    <string name="cache_msg">You are looking at cache content</string>
 </resources>

+ 1 - 0
ApexDrivers/apexdriverslib/src/main/res/values/styles.xml

@@ -27,6 +27,7 @@
 
     <style name="ApexDriverTheme" parent="Theme.AppCompat.Light.DarkActionBar">
 
+        <item name="android:windowBackground">@color/ApexDriverWhite</item>
         <item name="colorPrimary">@color/ApexDriverOrange</item> <!--Action Bar-->
 
         <item name="colorPrimaryDark">@color/ApexDriverOrangeWhiteColor</item> <!--Status Bar-->

+ 12 - 10
ApexDrivers/apexmobile/src/main/java/com/usai/apex/LocationDetailActivity.java

@@ -1,20 +1,17 @@
 package com.usai.apex;
 
-import java.util.List;
-
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.CommonDataKinds.Email;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.Data;
-//import android.provider.Contacts;
 import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Data;
 import android.util.Log;
 import android.view.View;
 import android.view.View.OnClickListener;
@@ -22,6 +19,10 @@ import android.widget.Button;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import java.util.List;
+
+//import android.provider.Contacts;
+
 public class LocationDetailActivity extends Activity
 {
 	LocationDetail	detail;
@@ -29,7 +30,8 @@ public class LocationDetailActivity extends Activity
 	boolean isIntentAvailable(Context context, Intent intent)
 	{
 		final PackageManager packageManager = context.getPackageManager();
-		List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.GET_ACTIVITIES);
+
+		List<ResolveInfo> list = packageManager.queryIntentActivities(intent, 0);
 		return list.size() > 0;
 	}
 

+ 1 - 1
ApexDrivers/apexmobile/src/main/java/com/usai/apex/mainframe/HistoryFragment.java

@@ -125,7 +125,7 @@ public class HistoryFragment extends TrackingListFragment {
                 }
 
             } else {
-                showAlert("Sorry,there is some wrong");
+                showAlert("Can not connect to the server");
             }
 
             isLoading = false;

+ 1 - 1
ApexDrivers/apexmobile/src/main/java/com/usai/apex/mainframe/LoginFragment.java

@@ -78,7 +78,7 @@ public class LoginFragment extends Fragment/* implements OnClickListener */
 		View view = inflater.inflate(R.layout.fragment_login, null);
 		TextView tv_ver = (TextView) view.findViewById(R.id.tv_ver);
 		try {
-			tv_ver.setText(getText(R.string.str_ver)+"2.20." +ApexTrackingApplication.get_instance().getPackageManager().getPackageInfo(
+			tv_ver.setText(getText(R.string.str_ver)+ApexTrackingApplication.get_instance().getPackageManager().getPackageInfo(
 						"com.usai.apex", 0).versionName);
 		} catch (NameNotFoundException e1) {
 			// TODO Auto-generated catch block

+ 6 - 6
ApexDrivers/apexmobile/src/main/res/layout/activity_change_password.xml

@@ -44,8 +44,8 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:hint="Old password"
-                android:imeActionId="@+id/login"
-                android:imeActionLabel="@string/action_sign_in_short"
+                android:imeActionId="1024"
+                android:imeActionLabel="@string/action_change_password_short"
                 android:imeOptions="actionUnspecified"
                 android:inputType="textPassword"
                 android:maxLines="1"
@@ -57,8 +57,8 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:hint="New password"
-                android:imeActionId="@+id/login"
-                android:imeActionLabel="@string/action_sign_in_short"
+                android:imeActionId="1024"
+                android:imeActionLabel="@string/action_change_password_short"
                 android:imeOptions="actionUnspecified"
                 android:inputType="textPassword"
                 android:maxLines="1"
@@ -70,8 +70,8 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:hint="Confirm new password"
-                android:imeActionId="@+id/login"
-                android:imeActionLabel="@string/action_sign_in_short"
+                android:imeActionId="1024"
+                android:imeActionLabel="@string/action_change_password_short"
                 android:imeOptions="actionUnspecified"
                 android:inputType="textPassword"
                 android:maxLines="1"

+ 2 - 2
ApexDrivers/apexmobile/src/main/res/layout/activity_retrieve_password.xml

@@ -44,8 +44,8 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:hint="User name"
-                android:imeActionId="@+id/login"
-                android:imeActionLabel="@string/action_sign_in_short"
+                android:imeActionId="1024"
+                android:imeActionLabel="@string/str_retrievepass"
                 android:imeOptions="actionUnspecified"
                 android:inputType="" android:maxLines="1"
                 android:singleLine="true" />

+ 1 - 1
ApexDrivers/apexmobile/src/main/res/layout/fragment_login.xml

@@ -57,7 +57,7 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:hint="@string/prompt_password"
-            android:imeActionId="@+id/login"
+            android:imeActionId="1024"
             android:imeActionLabel="@string/action_sign_in_short"
             android:imeOptions="actionUnspecified"
             android:inputType="textPassword"

+ 1 - 0
ApexDrivers/apexmobile/src/main/res/values-zh/strings.xml

@@ -15,6 +15,7 @@
     <string name="action_custom_fields">Customize Fields</string>
     <string name="action_sign_in_register"><b>Login</b></string>
     <string name="action_sign_in_short">Sign in</string>
+    <string name="action_change_password_short">Change</string>
     <string name="action_search_history">Search history</string>
     <string name="action_saved_search">Saved Search</string>
     <string name="action_saved_detail">Saved Detail</string>

+ 1 - 0
ApexDrivers/apexmobile/src/main/res/values/strings.xml

@@ -15,6 +15,7 @@
     <string name="action_custom_fields">Customize Fields</string>
     <string name="action_sign_in_register"><b>Login</b></string>
     <string name="action_sign_in_short">Sign in</string>
+    <string name="action_change_password_short">Change</string>
     <string name="action_search_history">Search history</string>
     <string name="action_saved_search">Saved Search</string>
     <string name="action_saved_detail">Saved Detail</string>