Fix logging for latency

GetPropertySyncLatency was casting before subtraction causing floating
point rounding errors, this is exacerbated by large floaing point
numbers since their rounding is larger.

Bug: 295378910
Test: manual, logcat
Change-Id: Ie7bad9cce717acdf8eed3ee4a263e537513a80aa
diff --git a/service/src/com/android/car/CarPropertyService.java b/service/src/com/android/car/CarPropertyService.java
index cea1282..de04484 100644
--- a/service/src/com/android/car/CarPropertyService.java
+++ b/service/src/com/android/car/CarPropertyService.java
@@ -565,14 +565,18 @@
             throws IllegalArgumentException, ServiceSpecificException {
         validateGetParameters(propertyId, areaId);
         Trace.traceBegin(TRACE_TAG, "CarPropertyValue#getProperty");
-        float currentTimeMs = System.currentTimeMillis();
+        long currentTimeMs = System.currentTimeMillis();
         try {
             return runSyncOperationCheckLimit(() -> {
                 return mPropertyHalService.getProperty(propertyId, areaId);
             });
         } finally {
-            sGetPropertySyncLatencyHistogram.logSample((float) System.currentTimeMillis()
-                    - currentTimeMs);
+            if (DBG) {
+                Slogf.d(TAG, "Latency of getPropertySync is: %f", (float) (System
+                        .currentTimeMillis() - currentTimeMs));
+            }
+            sGetPropertySyncLatencyHistogram.logSample((float) (System.currentTimeMillis()
+                    - currentTimeMs));
             Trace.traceEnd(TRACE_TAG);
         }
     }
@@ -648,8 +652,12 @@
             mClientMap.put(listenerBinder, client);
             updateSetOperationRecorderLocked(carPropertyValue.getPropertyId(),
                     carPropertyValue.getAreaId(), client);
-            sSetPropertySyncLatencyHistogram.logSample((float) System.currentTimeMillis()
-                    - currentTimeMs);
+            if (DBG) {
+                Slogf.d(TAG, "Latency of setPropertySync is: %f", (float) (System
+                        .currentTimeMillis() - currentTimeMs));
+            }
+            sSetPropertySyncLatencyHistogram.logSample((float) (System.currentTimeMillis()
+                    - currentTimeMs));
         }
     }
 
@@ -791,7 +799,11 @@
         }
         mPropertyHalService.getCarPropertyValuesAsync(getPropertyServiceRequests,
                 asyncPropertyResultCallback, timeoutInMs, currentTime);
-        sGetAsyncLatencyHistogram.logSample((float) System.currentTimeMillis() - currentTime);
+        if (DBG) {
+            Slogf.d(TAG, "Latency of getPropertyAsync is: %f", (float) (System
+                    .currentTimeMillis() - currentTime));
+        }
+        sGetAsyncLatencyHistogram.logSample((float) (System.currentTimeMillis() - currentTime));
     }
 
     /**
@@ -836,7 +848,11 @@
         }
         mPropertyHalService.setCarPropertyValuesAsync(setPropertyServiceRequestList,
                 asyncPropertyResultCallback, timeoutInMs, currentTime);
-        sSetAsyncLatencyHistogram.logSample((float) System.currentTimeMillis() - currentTime);
+        if (DBG) {
+            Slogf.d(TAG, "Latency of setPropertyAsync is: %f", (float) (System
+                    .currentTimeMillis() - currentTime));
+        }
+        sSetAsyncLatencyHistogram.logSample((float) (System.currentTimeMillis() - currentTime));
     }
 
     /**