Merge "Merge "Add hwbinder library" am: 49e2a9a612 am: 811027ede7 am: 2785be7572" into oc-dr1-dev-plus-aosp
am: a4fb234a4c

Change-Id: I026ca8c33ef2fce7d40e2daec8db970d6b578f25
diff --git a/Android.mk b/Android.mk
index 2b16c02..1e9adcb 100644
--- a/Android.mk
+++ b/Android.mk
@@ -638,6 +638,32 @@
 
 framework_built := $(call java-lib-deps,framework)
 
+# HwBinder
+# =======================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+        core/java/android/os/HidlSupport.java \
+        core/java/android/annotation/NonNull.java \
+        core/java/android/os/HwBinder.java \
+        core/java/android/os/HwBlob.java \
+        core/java/android/os/HwParcel.java \
+        core/java/android/os/IHwBinder.java \
+        core/java/android/os/IHwInterface.java \
+        core/java/android/os/DeadObjectException.java \
+        core/java/android/os/DeadSystemException.java \
+        core/java/android/os/RemoteException.java \
+        core/java/android/util/AndroidException.java \
+
+LOCAL_NO_STANDARD_LIBRARIES := true
+LOCAL_JAVA_LIBRARIES := core-oj core-libart
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE := hwbinder
+
+LOCAL_DX_FLAGS := --core-library
+LOCAL_UNINSTALLABLE_MODULE := true
+include $(BUILD_JAVA_LIBRARY)
+
 # Copy AIDL files to be preprocessed and included in the SDK,
 # specified relative to the root of the build tree.
 # ============================================================
diff --git a/core/java/android/os/HwBinder.java b/core/java/android/os/HwBinder.java
index 866e20c..270e63f 100644
--- a/core/java/android/os/HwBinder.java
+++ b/core/java/android/os/HwBinder.java
@@ -71,4 +71,13 @@
     }
 
     private long mNativeContext;
+
+    private static native void native_report_sysprop_change();
+
+    /**
+     * Notifies listeners that a system property has changed
+     */
+    public static void reportSyspropChanged() {
+        native_report_sysprop_change();
+    }
 }
diff --git a/core/jni/android_os_HwBinder.cpp b/core/jni/android_os_HwBinder.cpp
index 1b14d282..59ca050 100644
--- a/core/jni/android_os_HwBinder.cpp
+++ b/core/jni/android_os_HwBinder.cpp
@@ -36,6 +36,7 @@
 #include <hwbinder/ProcessState.h>
 #include <nativehelper/ScopedLocalRef.h>
 #include <vintf/parse_string.h>
+#include <utils/misc.h>
 
 #include "core_jni_helpers.h"
 
@@ -405,6 +406,11 @@
     IPCThreadState::self()->joinThreadPool();
 }
 
+static void JHwBinder_report_sysprop_change(JNIEnv /**env*/, jobject /*clazz*/)
+{
+    report_sysprop_change();
+}
+
 static JNINativeMethod gMethods[] = {
     { "native_init", "()J", (void *)JHwBinder_native_init },
     { "native_setup", "()V", (void *)JHwBinder_native_setup },
@@ -424,6 +430,9 @@
 
     { "joinRpcThreadpool", "()V",
         (void *)JHwBinder_native_joinRpcThreadpool },
+
+    { "native_report_sysprop_change", "()V",
+        (void *)JHwBinder_report_sysprop_change },
 };
 
 namespace android {