Car: remove use of -static hidl java am: be4780ccce am: 8b9969b76e am: 79295cd9a2
am: 8d62530216

Change-Id: I711ab62df46472ecd3a7f0a0b7af9bcf4f81ddf5
diff --git a/car-cluster-logging-renderer/Android.mk b/car-cluster-logging-renderer/Android.mk
index 8fb7674..dd1d0ca 100644
--- a/car-cluster-logging-renderer/Android.mk
+++ b/car-cluster-logging-renderer/Android.mk
@@ -13,7 +13,7 @@
 # limitations under the License.
 #
 #
-
+ifneq ($(TARGET_BUILD_PDK),true)
 LOCAL_PATH:= $(call my-dir)
 
 include $(CLEAR_VARS)
@@ -32,3 +32,4 @@
 LOCAL_JAVA_LIBRARIES += android.car
 
 include $(BUILD_PACKAGE)
+endif
diff --git a/tests/carservice_test/src/com/android/car/test/SystemActivityMonitoringServiceTest.java b/tests/carservice_test/src/com/android/car/test/SystemActivityMonitoringServiceTest.java
index 0b1e718..3345605 100644
--- a/tests/carservice_test/src/com/android/car/test/SystemActivityMonitoringServiceTest.java
+++ b/tests/carservice_test/src/com/android/car/test/SystemActivityMonitoringServiceTest.java
@@ -54,6 +54,11 @@
         // blocking activity.
         mDrivingStatusHandler.setDrivingStatusRestricted(drivingStatusRestricted);
 
+        // Due to asynchronous nature of Car Service initialization, if we won't wait we may inject
+        // an event while SensorHalService is not subscribed yet.
+        assertTrue(getMockedVehicleHal()
+                .waitForSubscriber(VehicleProperty.DRIVING_STATUS, TIMEOUT_MS));
+
         VehiclePropValue injectValue =
                 VehiclePropValueBuilder.newBuilder(VehicleProperty.DRIVING_STATUS)
                         .setTimestamp(SystemClock.elapsedRealtimeNanos())
diff --git a/vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java b/vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java
index 1a5b8c6..0da3565 100644
--- a/vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java
+++ b/vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java
@@ -21,8 +21,6 @@
 import static junit.framework.Assert.assertNotNull;
 import static junit.framework.Assert.fail;
 
-import com.google.android.collect.Lists;
-
 import android.hardware.automotive.vehicle.V2_0.IVehicle;
 import android.hardware.automotive.vehicle.V2_0.IVehicleCallback;
 import android.hardware.automotive.vehicle.V2_0.StatusCode;
@@ -31,6 +29,9 @@
 import android.hardware.automotive.vehicle.V2_0.VehiclePropValue;
 import android.hardware.automotive.vehicle.V2_0.VehiclePropertyAccess;
 import android.os.RemoteException;
+import android.os.SystemClock;
+
+import com.google.android.collect.Lists;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -74,6 +75,23 @@
         addProperty(config, new StaticPropertyHandler(value));
     }
 
+    public boolean waitForSubscriber(int propId, long timeoutMillis) {
+        long startTime = SystemClock.elapsedRealtime();
+        try {
+            synchronized (this) {
+                while (mSubscribers.get(propId) == null) {
+                    long waitMillis = startTime - SystemClock.elapsedRealtime() + timeoutMillis;
+                    if (waitMillis < 0) break;
+                    wait(waitMillis);
+                }
+
+                return mSubscribers.get(propId) != null;
+            }
+        } catch (InterruptedException e) {
+            return false;
+        }
+    }
+
     public synchronized void injectEvent(VehiclePropValue value) {
         List<IVehicleCallback> callbacks = mSubscribers.get(value.prop);
         assertNotNull("Injecting event failed for property: " + value.prop
@@ -156,6 +174,7 @@
             if (subscribers == null) {
                 subscribers = new ArrayList<>();
                 mSubscribers.put(opt.propId, subscribers);
+                notifyAll();
             }
             subscribers.add(callback);
         }