Forráskód Böngészése

1.修改Android Apex Drivers Detail Value高亮显示以及Confirm刷新。

Pen Li 7 éve
szülő
commit
4e0aeacd1c

+ 20 - 4
ApexDrivers/app/src/main/java/com/usai/redant/apexdrivers/detail/DetailActivity.java

@@ -55,6 +55,8 @@ import static com.usai.redant.apexdrivers.detail.DetailAdapter.MapLifCircleActio
 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;
+import static com.usai.redant.apexdrivers.detail.model.DetailSubActionModel.DetailRemoteActionType.DetailRemoteActionTypeGoHome;
+import static com.usai.redant.apexdrivers.detail.model.DetailSubActionModel.DetailRemoteActionType.DetailRemoteActionTypeReload;
 import static com.usai.redant.rautils.utils.Network.RESULT_TRUE;
 
 public class DetailActivity extends BasicActivity implements DetailAdapter.DetailActionDelegate {
@@ -348,6 +350,10 @@ public class DetailActivity extends BasicActivity implements DetailAdapter.Detai
 
     }
 
+    private void reload() {
+        loadData();
+    }
+
     private void loadData() {
 
         showProgressDialog();
@@ -374,18 +380,19 @@ public class DetailActivity extends BasicActivity implements DetailAdapter.Detai
         }).start();
     }
 
-    private void report(final String url, final Bundle params) {
+    private void handleRemoteAction(final DetailSubActionModel model) {
 
         showProgressDialog();
         new Thread(new Runnable() {
             @Override
             public void run() {
 
-                JSONObject json = Network.report(url,params);
+                JSONObject json = Network.report(model.url,model.params);
 
                 Message msg = new Message();
                 msg.what = DetailHandler.DetailActionRemote;
                 msg.obj = json;
+                msg.arg1 = model.remoteActionType;
                 mHandler.sendMessage(msg);
 
             }
@@ -484,7 +491,7 @@ public class DetailActivity extends BasicActivity implements DetailAdapter.Detai
                     ApexDriverApplication.sharedApplication().setRequiredLocation(true);
                 }
 
-                report(actionModel.url,actionModel.params);
+                handleRemoteAction(actionModel);
             }
             break;
             default:
@@ -561,7 +568,16 @@ public class DetailActivity extends BasicActivity implements DetailAdapter.Detai
                         int result = json.optInt("result");
                         if (result == RESULT_TRUE) {
 
-                            activity.goHome();
+                            switch (msg.arg1) {
+                                case DetailRemoteActionTypeGoHome: {
+                                    activity.goHome();
+                                }
+                                break;
+                                case DetailRemoteActionTypeReload: {
+                                    activity.reload();
+                                }
+                                break;
+                            }
                         } else {
                             // error;
                             String errMsg = json.optString("err_msg");

+ 23 - 0
ApexDrivers/app/src/main/java/com/usai/redant/apexdrivers/detail/DetailAdapter.java

@@ -301,6 +301,11 @@ public class DetailAdapter extends BaseExpandableListAdapter {
 
             titleTv.setText(model.title);
             valueTv.setText(model.value);
+            if (model.highlight) {
+                valueTv.setTextColor(mCtx.getResources().getColor(R.color.ApexDriverTextRedColor));
+            } else {
+                valueTv.setTextColor(mCtx.getResources().getColor(R.color.ApexDriverTextBlackColor));
+            }
         }
     }
 
@@ -317,6 +322,12 @@ public class DetailAdapter extends BaseExpandableListAdapter {
 
         public void bindMultLineModel(DetailMultipleLineModel model) {
             valueTv.setText(model.value);
+
+            if (model.highlight) {
+                valueTv.setTextColor(mCtx.getResources().getColor(R.color.ApexDriverTextRedColor));
+            } else {
+                valueTv.setTextColor(mCtx.getResources().getColor(R.color.ApexDriverTextBlackColor));
+            }
         }
     }
 
@@ -435,6 +446,12 @@ public class DetailAdapter extends BaseExpandableListAdapter {
             locationTv.setText(model.location);
 
             mWeakLocation = new WeakReference<>(model);
+
+            if (model.highlight) {
+                locationTv.setTextColor(mCtx.getResources().getColor(R.color.ApexDriverTextRedColor));
+            } else {
+                locationTv.setTextColor(mCtx.getResources().getColor(R.color.ApexDriverTextBlackColor));
+            }
         }
     }
 
@@ -584,6 +601,12 @@ public class DetailAdapter extends BaseExpandableListAdapter {
                     titleTv.setText(model.title);
                     valueTv.setText(model.location);
 
+                    if (model.highlight) {
+                        valueTv.setTextColor(mCtx.getResources().getColor(R.color.ApexDriverTextRedColor));
+                    } else {
+                        valueTv.setTextColor(mCtx.getResources().getColor(R.color.ApexDriverTextBlackColor));
+                    }
+
                     String lat = model.getLat();
                     String lon = model.getLon();
                     boolean showMap = lat != null && lat.length() > 0 && lon != null && lon.length() > 0;

+ 8 - 0
ApexDrivers/app/src/main/java/com/usai/redant/apexdrivers/detail/DetailSectionModel.java

@@ -51,6 +51,7 @@ public class DetailSectionModel {
                 JSONObject value = values.optJSONObject(i);
                 if (value != null) {
                     int type = value.optInt("type",-1);
+                    boolean highlight = value.optBoolean("highlight");
                     switch (type) {
                         case DetailBaseModel.OrderDetailValueType.OderDetailValueTypeSingleLine: {
                             DetailSingleLineModel model = new DetailSingleLineModel(mCtx);
@@ -58,6 +59,7 @@ public class DetailSectionModel {
                             model.title = value.optString("title");
                             model.value = value.optString("value");
                             model.type = type;
+                            model.highlight = highlight;
 
                             this.values.add(model);
                         }
@@ -67,6 +69,7 @@ public class DetailSectionModel {
 
                             model.value = value.optString("value");
                             model.type = type;
+                            model.highlight = highlight;
 
                             this.values.add(model);
                         }
@@ -77,6 +80,7 @@ public class DetailSectionModel {
 
                             model.setActions(value.optJSONArray("actions"));
                             model.type = type;
+                            model.highlight = highlight;
 
                             this.values.add(model);
                         }
@@ -89,6 +93,7 @@ public class DetailSectionModel {
                             model.location = value.optString("location");
                             model.street = value.optString("street");
                             model.type = type;
+                            model.highlight = highlight;
 
                             this.values.add(model);
                         }
@@ -100,6 +105,7 @@ public class DetailSectionModel {
                             model.title = value.optString("title");
                             model.location = value.optString("location");
                             model.setLatlon(value.optString("latlon"));
+                            model.highlight = highlight;
 
                             this.values.add(model);
                         }
@@ -110,6 +116,7 @@ public class DetailSectionModel {
                             model.setTitle(value.optString("title"));
                             model.setPhotoURL(value.optString("photoURL"));
                             model.type = type;
+                            model.highlight = highlight;
 
                             this.values.add(model);
                         }
@@ -120,6 +127,7 @@ public class DetailSectionModel {
                             model.setTitle(value.optString("title"));
                             model.setSignatureURL(value.optString("signatureURL"));
                             model.type = type;
+                            model.highlight = highlight;
 
                             this.values.add(model);
                         }

+ 3 - 0
ApexDrivers/app/src/main/java/com/usai/redant/apexdrivers/detail/model/DetailActionModel.java

@@ -74,6 +74,9 @@ public class DetailActionModel extends DetailBaseModel{
                         } else {
                             subActionModel.params = null;
                         }
+
+                        int remoteActionType = action.optInt("remoteActionType");
+                        subActionModel.remoteActionType = remoteActionType;
                     }
 
 

+ 1 - 0
ApexDrivers/app/src/main/java/com/usai/redant/apexdrivers/detail/model/DetailBaseModel.java

@@ -23,6 +23,7 @@ public class DetailBaseModel {
     }
 
     public int type;
+    public boolean highlight;
 
     private OrderDetailModelDelegate delegate;
 

+ 8 - 0
ApexDrivers/app/src/main/java/com/usai/redant/apexdrivers/detail/model/DetailSubActionModel.java

@@ -22,6 +22,13 @@ public class DetailSubActionModel {
         public static final int DetailActionSubTypeOther = 4;
     }
 
+    public static class DetailRemoteActionType {
+
+        public static final int DetailRemoteActionTypeGoHome = 0;
+        public static final int DetailRemoteActionTypeReload = 1;
+
+    }
+
     public int actionType;
     public int actionSubType;
     public String actionTitle;
@@ -56,6 +63,7 @@ public class DetailSubActionModel {
      * */
     public String url;
     public Bundle params;
+    public int remoteActionType;
 
     /**
      * actionType == RADetailActionTypeLocal && actionSubType == DetailActionSubTypeUpdate

BIN
ApexDrivers/app/src/main/res/drawable-hdpi/btn_map_no.png


BIN
ApexDrivers/app/src/main/res/drawable-ldpi/btn_map_no.png


BIN
ApexDrivers/app/src/main/res/drawable-mdpi/btn_map_no.png


BIN
ApexDrivers/app/src/main/res/drawable-xhdpi/btn_map_no.png


BIN
ApexDrivers/app/src/main/res/drawable-xxhdpi/btn_map_no.png


+ 2 - 0
ApexDrivers/app/src/main/res/values/colors.xml

@@ -25,5 +25,7 @@
     <color name="ApexDriverWhite">#ffffff</color>
     <color name="ApexDriverOrangeWhiteColor">#ff8008</color>
     <color name="ApexDriverRedColor">#AE2838</color>
+    <color name="ApexDriverTextRedColor">#ff0000</color>
+    <color name="ApexDriverTextBlackColor">#000000</color>
 
 </resources>