Эх сурвалжийг харах

Customer search results cannot be displayed-- customer 查询结果无法显示(resolve: #14445)
Home aci / emanifest cell are not displayed correctly -- 首页aci / emanifest单元格没有正确显示(resolve: #14443)
Added the logic to force the current device to log out after detecting that the user is logged in from another device -- 增加检测到用户在其他设备登录后,当前设备强制登出逻辑(resolve: #14441)
Optimize UI layout and display -- 优化界面布局和显示(issue50: #14439)
Detail injection into the menu sometimes causes a crash -- detail 注入菜单有时会造成闪退(resolve: #14446)

Ray Zhang 4 жил өмнө
parent
commit
ea4a3658c4
25 өөрчлөгдсөн 657 нэмэгдсэн , 82 устгасан
  1. 36 5
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/RootActivity.java
  2. 16 1
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/TradeFilingApplication.java
  3. 40 26
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/dataprovider/OnlineDataProvider.java
  4. 23 9
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/detail/DetailFragment.java
  5. 5 7
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/HomeFragment.java
  6. 3 3
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/dashmodel/error/HomeDashACIModelE.java
  7. 3 3
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/dashmodel/error/HomeDasheManifestModelE.java
  8. 3 3
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/dashmodel/pending/HomeDashACIModelP.java
  9. 3 3
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/dashmodel/pending/HomeDasheManifestModelP.java
  10. 9 9
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/my/MyFragment.java
  11. 31 0
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/result/ResultAdapter.java
  12. 6 0
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/result/ResultPresenter.java
  13. 188 0
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/result/cell/ResultCustomerCell.java
  14. 60 0
      ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/result/model/ResultCustomerModel.java
  15. 5 2
      ApexDrivers/ratradefiling/src/main/res/layout/home_dash_acem1_cell_e.xml
  16. 5 1
      ApexDrivers/ratradefiling/src/main/res/layout/home_dash_acem1_cell_p.xml
  17. 4 2
      ApexDrivers/ratradefiling/src/main/res/layout/home_dash_aci_cell_e.xml
  18. 7 2
      ApexDrivers/ratradefiling/src/main/res/layout/home_dash_aci_cell_p.xml
  19. 4 2
      ApexDrivers/ratradefiling/src/main/res/layout/home_dash_emanifest_cell_e.xml
  20. 7 1
      ApexDrivers/ratradefiling/src/main/res/layout/home_dash_emanifest_cell_p.xml
  21. 4 2
      ApexDrivers/ratradefiling/src/main/res/layout/home_dash_isf_cell_e.xml
  22. 6 1
      ApexDrivers/ratradefiling/src/main/res/layout/home_dash_isf_cell_p.xml
  23. 65 0
      ApexDrivers/ratradefiling/src/main/res/layout/home_section_header.xml
  24. 121 0
      ApexDrivers/ratradefiling/src/main/res/layout/result_customer_cell.xml
  25. 3 0
      ApexDrivers/ratradefiling/src/main/res/values/colors.xml

+ 36 - 5
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/RootActivity.java

@@ -12,6 +12,9 @@ import android.graphics.Color;
 import android.graphics.drawable.Drawable;
 import android.os.Build;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.text.TextUtils;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
@@ -192,15 +195,43 @@ public class RootActivity extends BasicActivity {
                     boolean blogin = intent.getBooleanExtra("state",true);
                     login=blogin;
 
+                    final String msg = intent.getStringExtra("msg");
+
+
                     setupViewPager(viewPager);
 
 
-//                    Intent aintent = new Intent();
-//
-//                    aintent.setClass(RootActivity.this, RootActivity.class);
+                    Intent aintent = new Intent();
+
+                    aintent.setClass(RootActivity.this, RootActivity.class);
 //                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-//                    aintent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-//                    startActivity(aintent);
+                    aintent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+                    startActivity(aintent);
+
+                    if(!TextUtils.isEmpty(msg))
+                    {
+                        Handler handler = new Handler(Looper.getMainLooper());
+
+                        handler.post(new Runnable() {
+                            @Override
+                            public void run() {
+                                AlertDialog.Builder builder = new AlertDialog.Builder(RootActivity.this);
+                                builder.setTitle("Warning");
+                                builder.setMessage(msg);
+                                builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
+                                    @Override
+                                    public void onClick(DialogInterface dialog, int which) {
+
+                                    }
+                                });
+                                builder.show();
+
+                            }
+                        });
+                    }
+
+
+
                 }
 
 

+ 16 - 1
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/TradeFilingApplication.java

@@ -7,6 +7,7 @@ import android.app.DownloadManager;
 import android.app.ProgressDialog;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.res.Configuration;
 import android.content.res.Resources;
@@ -19,6 +20,8 @@ import android.os.SystemClock;
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
 import com.usai.ratradefiling.dataprovider.RADataProvider;
 import com.usai.ratradefiling.utils.AES;
 import com.usai.ratradefiling.dataprovider.OnlineDataProvider;
@@ -447,7 +450,7 @@ public class TradeFilingApplication extends Application implements RAProviderHel
 //		am.cancel(sender);
 	}
 
-	public static void logout()
+	public static void logout(String msg)
 	{
 		ncount = 1;
 		cancelalarm();
@@ -466,6 +469,18 @@ public class TradeFilingApplication extends Application implements RAProviderHel
 		editor.putBoolean("autologin", false);
 		editor.commit();
 
+
+
+		Intent bintent = new Intent("Login");
+		bintent.putExtra("state", false);
+		if(!TextUtils.isEmpty(msg))
+		{
+			bintent.putExtra("msg", msg);
+		}
+
+		LocalBroadcastManager.getInstance(TradeFilingApplication.get_instance())
+				.sendBroadcast(bintent);
+
 	}
 
 	public static void SetAuthorizeStatus(boolean bauthorized)

+ 40 - 26
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/dataprovider/OnlineDataProvider.java

@@ -334,36 +334,50 @@ public class OnlineDataProvider extends com.usai.redant.rautils.utils.Network
 			{
 
 
-				Handler handler = new Handler(Looper.getMainLooper());
-				final String finalMsg = msg;
-				final Activity activity = RAUtil.getCurrentActivity();
-				handler.post(new Runnable() {
-					@Override
-					public void run() {
-						AlertDialog.Builder builder = new AlertDialog.Builder(activity);
-						builder.setTitle("Warning");
-						builder.setMessage(finalMsg);
-						builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
-									@Override
-									public void onClick(DialogInterface dialog, int which) {
-										TradeFilingApplication.logout();
-
-										dialog.dismiss();
-										activity.finish();
-//										RAUtil.getCurrentActivity().finish();
+//				Handler handler = new Handler(Looper.getMainLooper());
+//				final String finalMsg = msg;
+//				final Activity activity = RAUtil.getCurrentActivity();
+
+				TradeFilingApplication.logout(msg);
 
+//				dialog.dismiss();
+//										activity.finish();
+//										RAUtil.getCurrentActivity().finish();
 
 
-										Intent bintent = new Intent("Login");
-										bintent.putExtra("state", false);
-										LocalBroadcastManager.getInstance(TradeFilingApplication.get_instance())
-												.sendBroadcast(bintent);
-									}
-								});
-						builder.show();
 
-					}
-				});
+//				Intent bintent = new Intent("Login");
+//				bintent.putExtra("state", false);
+//
+//				LocalBroadcastManager.getInstance(TradeFilingApplication.get_instance())
+//						.sendBroadcast(bintent);
+//				handler.post(new Runnable() {
+//					@Override
+//					public void run() {
+//						AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+//						builder.setTitle("Warning");
+//						builder.setMessage(finalMsg);
+//						builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
+//									@Override
+//									public void onClick(DialogInterface dialog, int which) {
+//										TradeFilingApplication.logout();
+//
+//										dialog.dismiss();
+////										activity.finish();
+////										RAUtil.getCurrentActivity().finish();
+//
+//
+//
+//										Intent bintent = new Intent("Login");
+//										bintent.putExtra("state", false);
+//										LocalBroadcastManager.getInstance(TradeFilingApplication.get_instance())
+//												.sendBroadcast(bintent);
+//									}
+//								});
+//						builder.show();
+//
+//					}
+//				});
 
 
 			}

+ 23 - 9
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/detail/DetailFragment.java

@@ -1048,11 +1048,15 @@ public class DetailFragment extends Fragment implements OnClickListener /*
 
 						if(bgcolor)
 						{
-							tvitem.setBackgroundResource(R.color.TFGray);
+							tvitem.setBackgroundResource(R.color.TFCache);
+							tvitem.setTextColor(getResources().getColor(
+									R.color.white));
 						}
 						else
 						{
 							tvitem.setBackgroundResource(R.color.white);
+							tvitem.setTextColor(getResources().getColor(
+									R.color.TFTextBlack));
 						}
 						tvitem.setText(val);
 						// tvitem.setBackgroundResource(R.drawable.detail_item);
@@ -1282,22 +1286,32 @@ public class DetailFragment extends Fragment implements OnClickListener /*
 	}
 	void injectmenu()
 	{
-		if(injectMenu!=null&&FragmentMenu!=null)
-		{
 
-			FragmentMenu.removeGroup(-1);
+		getActivity().runOnUiThread(new Runnable() {
 
-			for(int i=0;i<injectMenu.length();i++)
-			{
-				JSONObject item= injectMenu.optJSONObject(i);
+			@Override
+			public void run() {
+				if(injectMenu!=null&&FragmentMenu!=null)
+				{
+
+					FragmentMenu.removeGroup(-1);
+
+					for(int i=0;i<injectMenu.length();i++)
+					{
+						JSONObject item= injectMenu.optJSONObject(i);
 
 
 //				public MenuItem add(int groupId, int itemId, int order, CharSequence title);
-				FragmentMenu.add(-1,i,i,item.optString("title"));
+						FragmentMenu.add(-1,i,i,item.optString("title"));
+
+					}
+
+				}
+				// Stuff that updates the UI
 
 			}
+		});
 
-		}
 	}
 	@Override
 	public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

+ 5 - 7
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/HomeFragment.java

@@ -10,7 +10,6 @@ import android.content.IntentFilter;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -55,7 +54,6 @@ import com.usai.ratradefiling.home.dashmodel.pending.HomeDashACEM1ModelP;
 import com.usai.ratradefiling.home.dashmodel.pending.HomeDashACIModelP;
 import com.usai.ratradefiling.home.dashmodel.pending.HomeDashISFModelP;
 import com.usai.ratradefiling.home.dashmodel.pending.HomeDasheManifestModelP;
-import com.usai.ratradefiling.login.RetrievePasswordActivity;
 import com.usai.redant.rautils.actionsheet.ActionSheet;
 import com.usai.redant.rautils.utils.Network;
 
@@ -1352,7 +1350,7 @@ public class HomeFragment extends Fragment
             if (convertView == null)
             {
 
-                header = LayoutInflater.from(mCtx).inflate(R.layout.section_header, null);
+                header = LayoutInflater.from(mCtx).inflate(R.layout.home_section_header, null);
                 holder = new SectionHeaderHolder(header);
 
             }
@@ -1385,7 +1383,7 @@ public class HomeFragment extends Fragment
                     HomeDashACIModelP dashmode = (HomeDashACIModelP)model;
                     HomeDashACICellP cell=aciCellP(context, convertView);
                     cell.prepareReuse();
-                    cell.setCCN(dashmode.ccn).setPCCN(dashmode.primary_ccn).setSN(dashmode.sn);
+                    cell.setCCN(dashmode.hbccn).setPCCN(dashmode.primary_ccn).setSN(dashmode.sn);
                     return cell;
                 }
                 else if(model.type == DashResultTypeeManifestPending.ordinal())
@@ -1393,7 +1391,7 @@ public class HomeFragment extends Fragment
                     HomeDasheManifestModelP dashmode = (HomeDasheManifestModelP)model;
                     HomeDasheManifestCellP cell=emanifestCellP(context, convertView);
                     cell.prepareReuse();
-                    cell.setCCN(dashmode.ccn).setPrimaryCCN(dashmode.primary_ccn).setSN(dashmode.sn).setPreviousCCN(dashmode.previous_ccn);
+                    cell.setCCN(dashmode.hbccn).setPrimaryCCN(dashmode.primary_ccn).setSN(dashmode.sn).setPreviousCCN(dashmode.previous_ccn);
                     return cell;
                 }
                 else if(model.type == DashResultTypeACEM1Pending.ordinal())
@@ -1418,7 +1416,7 @@ public class HomeFragment extends Fragment
                                 HomeDashACIModelE dashmode = (HomeDashACIModelE)model;
                                 HomeDashACICellE cell=aciCellE(context, convertView);
                                 cell.prepareReuse();
-                                cell.setCCN(dashmode.ccn).setLog(dashmode.log).setSN(dashmode.sn);
+                                cell.setCCN(dashmode.hbccn).setLog(dashmode.log).setSN(dashmode.sn);
                                 return cell;
                             }
                             else if(model.type == DashResultTypeeManifestError.ordinal())
@@ -1426,7 +1424,7 @@ public class HomeFragment extends Fragment
                                     HomeDasheManifestModelE dashmode = (HomeDasheManifestModelE)model;
                                     HomeDasheManifestCellE cell=emanifestCellE(context, convertView);
                                     cell.prepareReuse();
-                                    cell.setCCN(dashmode.ccn).setLog(dashmode.log).setSN(dashmode.sn);
+                                    cell.setCCN(dashmode.hbccn).setLog(dashmode.log).setSN(dashmode.sn);
                                     return cell;
                                 }
                                 else if(model.type == DashResultTypeACEM1Error.ordinal())

+ 3 - 3
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/dashmodel/error/HomeDashACIModelE.java

@@ -11,7 +11,7 @@ public class HomeDashACIModelE extends ResultBaseModel
 
 
     // region Model
-    public String ccn;
+    public String hbccn;
     public String sn;
     public String log;
 //    public String detail;
@@ -35,8 +35,8 @@ public class HomeDashACIModelE extends ResultBaseModel
 
         try {
 
-            if (ccn != null) {
-                json.put("ccn", ccn);
+            if (hbccn != null) {
+                json.put("ccn", hbccn);
             }
             if (sn != null) {
                 json.put("sn", sn);

+ 3 - 3
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/dashmodel/error/HomeDasheManifestModelE.java

@@ -11,7 +11,7 @@ public class HomeDasheManifestModelE extends ResultBaseModel
 
 
     // region Model
-    public String ccn;
+    public String hbccn;
     public String sn;
     public String log;
 
@@ -39,8 +39,8 @@ public class HomeDasheManifestModelE extends ResultBaseModel
 
                 json.put("log", log);
             }
-            if (ccn != null) {
-                json.put("ccn", ccn);
+            if (hbccn != null) {
+                json.put("ccn", hbccn);
             }
             if (sn != null) {
                 json.put("sn", sn);

+ 3 - 3
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/dashmodel/pending/HomeDashACIModelP.java

@@ -11,7 +11,7 @@ public class HomeDashACIModelP extends ResultBaseModel
 
 
     // region Model
-    public String ccn;
+    public String hbccn;
     public String sn;
     public String primary_ccn;
 //    public String detail;
@@ -35,8 +35,8 @@ public class HomeDashACIModelP extends ResultBaseModel
 
         try {
 
-            if (ccn != null) {
-                json.put("ccn", ccn);
+            if (hbccn != null) {
+                json.put("ccn", hbccn);
             }
             if (sn != null) {
                 json.put("sn", sn);

+ 3 - 3
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/dashmodel/pending/HomeDasheManifestModelP.java

@@ -11,7 +11,7 @@ public class HomeDasheManifestModelP extends ResultBaseModel
 
 
     // region Model
-    public String ccn;
+    public String hbccn;
     public String sn;
     public String primary_ccn;
     public String previous_ccn;
@@ -38,8 +38,8 @@ public class HomeDasheManifestModelP extends ResultBaseModel
             if (previous_ccn != null) {
                 json.put("previous_ccn", previous_ccn);
             }
-            if (ccn != null) {
-                json.put("ccn", ccn);
+            if (hbccn != null) {
+                json.put("ccn", hbccn);
             }
             if (sn != null) {
                 json.put("sn", sn);

+ 9 - 9
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/my/MyFragment.java

@@ -171,10 +171,10 @@ public class MyFragment extends StaticModelistFragment
                 {
 
                     RADataProvider.Logout();
-
+                    TradeFilingApplication.logout("");
                 }
             }).start();
-            TradeFilingApplication.logout();
+
 
 
 
@@ -188,13 +188,13 @@ public class MyFragment extends StaticModelistFragment
             if(mCallBack!=null)
                 mCallBack.onLogout();
 
-            {
-
-                Intent bintent = new Intent("Login");
-                bintent.putExtra("state", false);
-                LocalBroadcastManager.getInstance(getActivity())
-                        .sendBroadcast(bintent);
-            }
+//            {
+//
+//                Intent bintent = new Intent("Login");
+//                bintent.putExtra("state", false);
+//                LocalBroadcastManager.getInstance(getActivity())
+//                        .sendBroadcast(bintent);
+//            }
 
         }
 

+ 31 - 0
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/result/ResultAdapter.java

@@ -22,10 +22,12 @@ import android.widget.BaseAdapter;
 import com.usai.ratradefiling.base.ResultBaseModel;
 import com.usai.ratradefiling.result.cell.ResultACEM1Cell;
 import com.usai.ratradefiling.result.cell.ResultACICell;
+import com.usai.ratradefiling.result.cell.ResultCustomerCell;
 import com.usai.ratradefiling.result.cell.ResultISFCell;
 import com.usai.ratradefiling.result.cell.ResulteManifestCell;
 import com.usai.ratradefiling.result.model.ResultACEM1Model;
 import com.usai.ratradefiling.result.model.ResultACIModel;
+import com.usai.ratradefiling.result.model.ResultCustomerModel;
 import com.usai.ratradefiling.result.model.ResultISFModel;
 import com.usai.ratradefiling.result.model.ResulteManifestModel;
 
@@ -143,6 +145,23 @@ public class ResultAdapter extends BaseAdapter {
 
                 return cell;
 
+            }
+            else if (model.type == ResultBaseModel.ResultType.ResultTypeCustomer.ordinal()) {
+
+                ResultCustomerModel customerModel = (ResultCustomerModel)model;
+                ResultCustomerCell cell = dequeueCustomerCell(context, convertView);
+                cell.prepareReuse();
+                cell.setContactID(customerModel.contactid).setCompany(customerModel.company).setIcon(customerModel.getIcon()).setAddress(customerModel.address);
+
+                ArrayList<ResultAddition> additions = customerModel.getAddition();
+                if (additions != null && additions.size() > 0) {
+                    for (ResultAddition addition : additions) {
+                        cell.addAddition(addition.name, addition.value);
+                    }
+                }
+
+                return cell;
+
             }
             else if (model.type == ResultBaseModel.ResultType.ResultTypeISF.ordinal()) {
 
@@ -295,6 +314,18 @@ public class ResultAdapter extends BaseAdapter {
 
         return cell;
     }
+    private ResultCustomerCell dequeueCustomerCell(Context context, View convertView) {
+
+        ResultCustomerCell cell = null;
+
+        if (convertView == null) {
+            cell = ResultCustomerCell.makeCell(context);
+        } else {
+            cell = (ResultCustomerCell)convertView;
+        }
+
+        return cell;
+    }
     private ResultISFCell dequeueISFCell(Context context, View convertView) {
 
         ResultISFCell cell = null;

+ 6 - 0
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/result/ResultPresenter.java

@@ -17,6 +17,7 @@ import com.usai.ratradefiling.dataprovider.OnlineDataProvider;
 import com.usai.ratradefiling.dataprovider.RADataProvider;
 import com.usai.ratradefiling.result.model.ResultACEM1Model;
 import com.usai.ratradefiling.result.model.ResultACIModel;
+import com.usai.ratradefiling.result.model.ResultCustomerModel;
 import com.usai.ratradefiling.result.model.ResultISFModel;
 import com.usai.ratradefiling.result.model.ResulteManifestModel;
 import com.usai.redant.rautils.operationqueue.OperationQueue;
@@ -281,6 +282,11 @@ public class ResultPresenter implements ResultAdapter.ApexResultAdapterDataSourc
                         model.setValuesForKeysWithJSON(item);
                         return model;
                     }
+                    case ResultTypeCustomer: {
+                        ResultCustomerModel model = new ResultCustomerModel();
+                        model.setValuesForKeysWithJSON(item);
+                        return model;
+                    }
                     case ResultTypeISF: {
                         ResultISFModel model = new ResultISFModel();
                         model.setValuesForKeysWithJSON(item);

+ 188 - 0
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/result/cell/ResultCustomerCell.java

@@ -0,0 +1,188 @@
+package com.usai.ratradefiling.result.cell;
+
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+
+import com.usai.ratradefiling.R;
+
+import java.util.ArrayList;
+
+//import com.usai.apex.ApexTrackingApplication;
+//import com.usai.apex.R;
+//import com.usai.apex.mainframe.TrackingImageView;
+
+public class ResultCustomerCell extends LinearLayout {
+
+    // region initial
+    public static ResultCustomerCell makeCell(Context context) {
+        ResultCustomerCell cell = (ResultCustomerCell) LayoutInflater.from(context).inflate(R.layout.result_customer_cell, null);
+        cell.init();
+
+        return cell;
+    }
+
+    private TextView contactidTV,
+//            dateTv,
+            companyTV, addressTV;
+    private ImageView statusIv;
+//    private View stageView;
+    private LinearLayout additionLayout;
+
+    private ArrayList<ResultAdditionView> additionArray = new ArrayList<>();
+    private int additionCount = 0;
+
+    public ResultCustomerCell(Context context) {
+        super(context);
+    }
+
+    public ResultCustomerCell(Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public ResultCustomerCell(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    private void init() {
+
+        contactidTV = findViewById(R.id.tv_contactid);
+//        dateTv = findViewById(R.id.tv_time);
+        companyTV = findViewById(R.id.tv_company);
+        addressTV = findViewById(R.id.tv_address);
+
+        statusIv = findViewById(R.id.iv_status);
+//        stageView = findViewById(R.id.v_transport_stage);
+        additionLayout = findViewById(R.id.result_addition_view);
+
+
+        prepareReuse();
+    }
+
+    public void prepareReuse() {
+
+        contactidTV.setText("");
+//        dateTv.setText("");
+        companyTV.setText("");
+        addressTV.setText("");
+
+        statusIv.setImageDrawable(null);
+//        setTransportStage(0);
+
+        clearAdditionView();
+        forceLayout();
+    }
+
+//    public void setTransportStage(int stage) {
+//        switch(stage)
+//        {
+//            case 0:
+//                stageView.setBackground(ApexTrackingApplication.getInstance().getResources().getDrawable(R.drawable.list_corner_transport_stage_bg_0));
+//                break;
+//            case 1:
+//                stageView.setBackground(ApexTrackingApplication.getInstance().getResources().getDrawable(R.drawable.list_corner_transport_stage_bg_1));
+//                break;
+//            case 2:
+//                stageView.setBackground(ApexTrackingApplication.getInstance().getResources().getDrawable(R.drawable.list_corner_transport_stage_bg_2));
+//                break;
+//            case 3:
+//                stageView.setBackground(ApexTrackingApplication.getInstance().getResources().getDrawable(R.drawable.list_corner_transport_stage_bg_3));
+//                break;
+//            default:
+//                stageView.setBackground(ApexTrackingApplication.getInstance().getResources().getDrawable(R.drawable.list_corner_transport_stage_bg_0));
+//                break;
+//
+//        }
+//    }
+
+    // endregion
+
+    // region set
+
+//    public String icon;
+//    public String hbol;
+//    public String mbol;
+//    public String log;
+//    public String date;
+//    public String port;
+//    public String consignee;
+
+
+
+    public ResultCustomerCell setContactID(String contactID) {
+        contactidTV.setText(contactID);
+        contactidTV.forceLayout();
+        return this;
+    }
+
+    public ResultCustomerCell setCompany(String company) {
+
+        companyTV.setText(company);
+        companyTV.forceLayout();
+        return this;
+    }
+
+    public ResultCustomerCell setIcon(String icon) {
+        if (icon != null) {
+            int resourceId = getContext().getResources().getIdentifier(icon, "drawable", getContext().getPackageName());
+            statusIv.setImageResource(resourceId);
+        } else {
+            statusIv.setImageDrawable(null);
+        }
+        statusIv.forceLayout();
+        return this;
+    }
+
+    public ResultCustomerCell setAddress(String address) {
+        addressTV.setText(address);
+        addressTV.forceLayout();
+        return this;
+    }
+
+//    public ResultISFCell setDate(String date) {
+//        dateTv.setText(date);
+//        dateTv.forceLayout();
+//        return this;
+//    }
+
+
+
+    public void addAddition(String name, String value) {
+
+        ResultAdditionView additionView;
+        if (additionCount >= additionArray.size()) {
+
+            additionView = ResultAdditionView.makeAdditionView(getContext());
+            additionArray.add(additionView);
+
+        } else {
+            additionView = additionArray.get(additionCount);
+        }
+        additionCount++;
+
+        additionView.setTitle(name);
+        additionView.setValue(value);
+
+        LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
+        additionLayout.addView(additionView, layoutParams);
+    }
+
+    // endregion
+
+    // region Private
+
+    private void clearAdditionView() {
+        additionLayout.removeAllViews();
+        additionCount = 0;
+        additionLayout.forceLayout();
+    }
+
+    // endregion
+}

+ 60 - 0
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/result/model/ResultCustomerModel.java

@@ -0,0 +1,60 @@
+package com.usai.ratradefiling.result.model;
+
+import com.usai.ratradefiling.base.ResultBaseModel;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+
+public class ResultCustomerModel extends ResultBaseModel
+{
+
+
+    // region Model
+    public String icon;
+    public String contactid;
+    public String company;
+    public String address;
+
+//    public int transport_stage;
+//    public String consignee;
+
+
+    public ResultCustomerModel() {
+
+    }
+    public String getIcon() {
+        return icon;
+    }
+
+    // endregion
+
+
+    @Override
+    public JSONObject toJson() {
+        JSONObject json = super.toJson();
+
+        try {
+
+            if (contactid != null) {
+                json.put("contactid", contactid);
+            }
+            if ( icon!= null) {
+                json.put("icon", icon);
+            }
+            if (company != null) {
+                json.put("company", company);
+            }
+            if (address != null) {
+
+                json.put("address", address);
+            }
+
+
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+
+        return json;
+    }
+}

+ 5 - 2
ApexDrivers/ratradefiling/src/main/res/layout/home_dash_acem1_cell_e.xml

@@ -14,7 +14,7 @@
         android:layout_height="wrap_content"
         android:layout_marginLeft="5dp"
         android:layout_marginRight="5dp"
-        android:layout_marginTop="1dp"
+        android:layout_marginBottom="5dp"
         android:background="@drawable/round_corner_bg"
         >
 
@@ -25,8 +25,10 @@
             android:layout_height="wrap_content"
             android:layout_marginStart="15dp"
             android:text="999"
-            android:textColor="@color/TFTextBlack"
+            android:textColor="@color/TFRed"
+            android:textStyle="bold"
             android:textSize="18sp"
+
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent" />
@@ -54,6 +56,7 @@
             android:minLines="1"
             android:text="TextView"
             android:textColor="@color/TFGray"
+            android:textSize="12sp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="@+id/tv_hbol"
             app:layout_constraintStart_toStartOf="@+id/tv_hbol"

+ 5 - 1
ApexDrivers/ratradefiling/src/main/res/layout/home_dash_acem1_cell_p.xml

@@ -15,7 +15,7 @@
         android:layout_height="wrap_content"
         android:layout_marginLeft="5dp"
         android:layout_marginRight="5dp"
-        android:layout_marginTop="1dp"
+        android:layout_marginBottom="5dp"
         android:background="@drawable/round_corner_bg"
         >
 
@@ -25,6 +25,8 @@
             android:gravity="center"
             android:layout_height="wrap_content"
             android:layout_marginStart="15dp"
+            android:textColor="@color/TFRed"
+            android:textStyle="bold"
 
             android:text="999"
             android:textSize="18sp"
@@ -40,6 +42,7 @@
             android:layout_marginTop="8dp"
             android:layout_marginEnd="15dp"
             android:text="TextView"
+            android:textColor="@color/TFTextBlack"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toEndOf="@+id/tv_sn"
             app:layout_constraintTop_toTopOf="parent" />
@@ -51,6 +54,7 @@
             android:layout_marginTop="8dp"
             android:layout_marginBottom="8dp"
             android:text="TextView"
+            android:textColor="@color/TFTextBlack"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="@+id/tv_hbol"
             app:layout_constraintStart_toStartOf="@+id/tv_hbol"

+ 4 - 2
ApexDrivers/ratradefiling/src/main/res/layout/home_dash_aci_cell_e.xml

@@ -14,7 +14,7 @@
         android:layout_height="wrap_content"
         android:layout_marginLeft="5dp"
         android:layout_marginRight="5dp"
-        android:layout_marginTop="1dp"
+        android:layout_marginBottom="5dp"
         android:background="@drawable/round_corner_bg"
         >
 
@@ -25,7 +25,8 @@
             android:layout_height="wrap_content"
             android:layout_marginStart="15dp"
             android:text="999"
-            android:textColor="@color/TFTextBlack"
+            android:textColor="@color/TFRed"
+            android:textStyle="bold"
             android:textSize="18sp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -53,6 +54,7 @@
             android:maxLines="2"
             android:minLines="1"
             android:text="TextView"
+            android:textSize="12sp"
             android:textColor="@color/TFGray"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="@+id/tv_ccn"

+ 7 - 2
ApexDrivers/ratradefiling/src/main/res/layout/home_dash_aci_cell_p.xml

@@ -14,18 +14,21 @@
         android:layout_height="wrap_content"
         android:layout_marginLeft="5dp"
         android:layout_marginRight="5dp"
-        android:layout_marginTop="1dp"
+        android:layout_marginBottom="5dp"
         android:background="@drawable/round_corner_bg"
         >
 
         <TextView
             android:id="@+id/tv_sn"
             android:layout_width="40dp"
-            android:gravity="center"
             android:layout_height="wrap_content"
             android:layout_marginStart="15dp"
+            android:gravity="center"
             android:text="999"
+            android:textColor="@color/TFRed"
+            android:textStyle="bold"
             android:textSize="18sp"
+
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent" />
@@ -38,6 +41,7 @@
             android:layout_marginTop="8dp"
             android:layout_marginEnd="15dp"
             android:text="TextView"
+            android:textColor="@color/TFTextBlack"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toEndOf="@+id/tv_sn"
             app:layout_constraintTop_toTopOf="parent" />
@@ -49,6 +53,7 @@
             android:layout_marginTop="8dp"
             android:layout_marginBottom="8dp"
             android:text="TextView"
+            android:textColor="@color/TFTextBlack"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="@+id/tv_ccn"
             app:layout_constraintStart_toStartOf="@+id/tv_ccn"

+ 4 - 2
ApexDrivers/ratradefiling/src/main/res/layout/home_dash_emanifest_cell_e.xml

@@ -14,7 +14,7 @@
         android:layout_height="wrap_content"
         android:layout_marginLeft="5dp"
         android:layout_marginRight="5dp"
-        android:layout_marginTop="1dp"
+        android:layout_marginBottom="5dp"
         android:background="@drawable/round_corner_bg"
         >
 
@@ -25,7 +25,8 @@
             android:layout_height="wrap_content"
             android:layout_marginStart="15dp"
             android:text="999"
-            android:textColor="@color/TFTextBlack"
+            android:textColor="@color/TFRed"
+            android:textStyle="bold"
             android:textSize="18sp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -53,6 +54,7 @@
             android:maxLines="2"
             android:minLines="1"
             android:text="TextView"
+            android:textSize="12sp"
             android:textColor="@color/TFGray"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="@+id/tv_ccn"

+ 7 - 1
ApexDrivers/ratradefiling/src/main/res/layout/home_dash_emanifest_cell_p.xml

@@ -14,7 +14,7 @@
         android:layout_height="wrap_content"
         android:layout_marginLeft="5dp"
         android:layout_marginRight="5dp"
-        android:layout_marginTop="1dp"
+        android:layout_marginBottom="5dp"
         android:background="@drawable/round_corner_bg"
         >
 
@@ -26,6 +26,9 @@
             android:layout_marginStart="15dp"
             android:text="999"
             android:textSize="18sp"
+            android:textColor="@color/TFRed"
+            android:textStyle="bold"
+
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent" />
@@ -38,6 +41,7 @@
             android:layout_marginTop="8dp"
             android:layout_marginEnd="15dp"
             android:text="TextView"
+            android:textColor="@color/TFTextBlack"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toEndOf="@+id/tv_sn"
             app:layout_constraintTop_toTopOf="parent" />
@@ -48,6 +52,7 @@
             android:layout_height="wrap_content"
             android:layout_marginTop="8dp"
             android:text="TextView"
+            android:textColor="@color/TFTextBlack"
             app:layout_constraintEnd_toEndOf="@+id/tv_ccn"
             app:layout_constraintStart_toStartOf="@+id/tv_ccn"
             app:layout_constraintTop_toBottomOf="@+id/tv_ccn" />
@@ -56,6 +61,7 @@
             android:id="@+id/tv_previous_ccn"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
+            android:textColor="@color/TFTextBlack"
             android:layout_marginTop="8dp"
             android:layout_marginBottom="8dp"
             android:text="TextView"

+ 4 - 2
ApexDrivers/ratradefiling/src/main/res/layout/home_dash_isf_cell_e.xml

@@ -14,7 +14,7 @@
         android:layout_height="wrap_content"
         android:layout_marginLeft="5dp"
         android:layout_marginRight="5dp"
-        android:layout_marginTop="1dp"
+        android:layout_marginBottom="5dp"
         android:background="@drawable/round_corner_bg">
 
         <TextView
@@ -24,7 +24,8 @@
             android:layout_height="wrap_content"
             android:layout_marginStart="15dp"
             android:text="999"
-            android:textColor="@color/TFTextBlack"
+            android:textColor="@color/TFRed"
+            android:textStyle="bold"
             android:textSize="18sp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -52,6 +53,7 @@
             android:maxLines="2"
             android:minLines="1"
             android:text="TextView"
+            android:textSize="12sp"
             android:textColor="@color/TFGray"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="@+id/tv_bol"

+ 6 - 1
ApexDrivers/ratradefiling/src/main/res/layout/home_dash_isf_cell_p.xml

@@ -14,7 +14,7 @@
         android:layout_height="wrap_content"
         android:layout_marginLeft="5dp"
         android:layout_marginRight="5dp"
-        android:layout_marginTop="1dp"
+        android:layout_marginBottom="5dp"
         android:background="@drawable/round_corner_bg">
 
         <TextView
@@ -25,6 +25,9 @@
             android:layout_marginStart="15dp"
             android:text="999"
             android:textSize="18sp"
+            android:textColor="@color/TFRed"
+            android:textStyle="bold"
+
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent" />
@@ -37,6 +40,7 @@
             android:layout_marginTop="8dp"
             android:layout_marginEnd="15dp"
             android:text="TextView"
+            android:textColor="@color/TFTextBlack"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toEndOf="@+id/tv_sn"
             app:layout_constraintTop_toTopOf="parent" />
@@ -48,6 +52,7 @@
             android:layout_marginTop="8dp"
             android:layout_marginBottom="8dp"
             android:text="TextView"
+            android:textColor="@color/TFTextBlack"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="@+id/tv_bol"
             app:layout_constraintStart_toStartOf="@+id/tv_bol"

+ 65 - 0
ApexDrivers/ratradefiling/src/main/res/layout/home_section_header.xml

@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:layout_width="match_parent"
+                android:layout_height="50dp"
+                android:background="#00000000"
+                android:gravity="center"
+
+    >
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:layout_marginBottom="5dp"
+
+        android:background="@color/TFPrimary0">
+
+        <Button
+            android:id="@+id/section_switch_btn"
+            android:layout_width="40dp"
+            android:layout_height="40dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginRight="10dp"
+            android:background="@drawable/clear_bg"
+            android:text="@string/btn_more"
+            android:textAllCaps="false"
+            android:textColor="@color/TFWhite"
+            android:textSize="17sp" />
+
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="50dp"
+            android:layout_centerInParent="true"
+            android:layout_toLeftOf="@id/section_switch_btn"
+            android:background="@drawable/clear_bg">
+
+            <TextView
+                android:id="@+id/header_title_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerVertical="true"
+                android:layout_marginLeft="2dp"
+                android:background="@drawable/clear_bg"
+                android:text="New Order"
+                android:textColor="#ffffff"
+                android:textSize="20sp" />
+
+            <!--            <com.usai.redant.apexdrivers.badgeview.BadgeView-->
+            <!--                android:id="@+id/header_badge_tv"-->
+            <!--                android:layout_width="wrap_content"-->
+            <!--                android:layout_height="wrap_content"-->
+            <!--                android:layout_centerVertical="true"-->
+            <!--                android:layout_toRightOf="@id/header_title_tv"-->
+            <!--                android:layout_marginLeft="5dp"-->
+            <!--                />-->
+
+        </RelativeLayout>
+
+
+    </RelativeLayout>
+
+
+
+</RelativeLayout>

+ 121 - 0
ApexDrivers/ratradefiling/src/main/res/layout/result_customer_cell.xml

@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.usai.ratradefiling.result.cell.ResultCustomerCell xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+                                                       android:layout_height="wrap_content"
+                                                       android:orientation="vertical"
+    >
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="5dp"
+        android:layout_marginRight="5dp"
+        android:layout_marginBottom="0dp"
+        android:layout_marginTop="5dp"
+        android:background="@drawable/result_cell_bg"
+        android:clipChildren="true"
+        android:orientation="horizontal"
+        >
+
+
+        <LinearLayout
+            android:layout_width="0dp"
+                      android:layout_height="wrap_content"
+                      android:layout_weight="1"
+                      android:orientation="vertical"
+                      android:layout_marginRight="5dp"
+                      android:layout_marginEnd="5dp"
+            >
+
+            <androidx.constraintlayout.widget.ConstraintLayout
+                android:id="@+id/cell_content_view"
+                android:layout_width="match_parent"
+                android:layout_height="96dp"
+                android:clipChildren="true">
+
+                <ImageView
+                    android:id="@+id/iv_status"
+                    android:layout_width="42dp"
+                    android:layout_height="42dp"
+                    android:layout_marginTop="4dp"
+                    app:layout_constraintStart_toStartOf="@+id/tv_contactid"
+                    app:layout_constraintTop_toBottomOf="@+id/tv_company"
+                    app:srcCompat="@mipmap/ic_launcher" />
+
+                <TextView
+                    android:id="@+id/tv_contactid"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="13dp"
+                    android:layout_marginTop="8dp"
+                    android:layout_marginEnd="13dp"
+                    android:ellipsize="end"
+                    android:singleLine="true"
+                    android:text="TextView"
+                    android:textColor="@color/icon_gray"
+                    android:textSize="12.7sp"
+                    android:textStyle="bold"
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toTopOf="parent" />
+
+                <TextView
+                    android:id="@+id/tv_company"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="2dp"
+                    android:layout_marginEnd="13dp"
+                    android:singleLine="true"
+                    android:text="TextView"
+                    android:textColor="@color/icon_red"
+                    android:textSize="9.7sp"
+
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="@+id/tv_contactid"
+                    app:layout_constraintTop_toBottomOf="@+id/tv_contactid" />
+
+                <TextView
+                    android:id="@+id/tv_address"
+                    android:layout_width="0dp"
+                    android:layout_height="0dp"
+                    android:layout_marginStart="7dp"
+                    android:ellipsize="end"
+                    android:singleLine="false"
+                    android:text="TextView"
+                    android:textColor="@color/TFGray"
+                    android:textSize="12sp"
+                    app:layout_constraintBottom_toBottomOf="@+id/iv_status"
+                    app:layout_constraintEnd_toEndOf="@+id/tv_company"
+                    app:layout_constraintStart_toEndOf="@+id/iv_status"
+                    app:layout_constraintTop_toTopOf="@+id/iv_status" />
+
+            </androidx.constraintlayout.widget.ConstraintLayout>
+
+            <LinearLayout
+                android:id="@+id/result_addition_view"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:layout_marginLeft="13dp"
+                android:layout_marginStart="13dp"
+                >
+
+            </LinearLayout>
+
+        </LinearLayout>
+
+<!--        <View-->
+<!--            android:id="@+id/v_transport_stage"-->
+<!--            android:layout_width="5dp"-->
+<!--            android:layout_height="match_parent"-->
+<!--            android:background="@drawable/list_corner_transport_stage_bg_0"-->
+<!--            />-->
+
+    </LinearLayout>
+
+
+
+
+</com.usai.ratradefiling.result.cell.ResultCustomerCell>

+ 3 - 0
ApexDrivers/ratradefiling/src/main/res/values/colors.xml

@@ -27,6 +27,9 @@
     <color name="blue">#2172ff</color>
 
     <color name="TFGray">#4f5356</color>
+
+
+
     <color name="TFCache">#d6d6d6</color>
     <color name="TFWhite">#ffffff</color>