Add bind() function to the binder interface.
Update engine may have started and done some work before we call
applyPayload(). Add a new binder function bind() to register a
callback function that communicates with the update engine.
Bug: None
Test: 'mmma system/update_engine'.
Change-Id: Iafcdb250904b44f9526be15f0381690df50805a2
diff --git a/Android.mk b/Android.mk
index fa6c067..aa20b29 100644
--- a/Android.mk
+++ b/Android.mk
@@ -369,7 +369,7 @@
libutils
LOCAL_SRC_FILES := \
binder_bindings/android/os/IUpdateEngine.aidl \
- binder_bindings/android/os/IUpdateEnginePayloadApplicationCallback.aidl \
+ binder_bindings/android/os/IUpdateEngineCallback.aidl \
binder_main.cc \
binder_service.cc
diff --git a/binder_bindings/android/os/IUpdateEngine.aidl b/binder_bindings/android/os/IUpdateEngine.aidl
index ebc3ffb..1e8090e 100644
--- a/binder_bindings/android/os/IUpdateEngine.aidl
+++ b/binder_bindings/android/os/IUpdateEngine.aidl
@@ -16,12 +16,12 @@
package android.os;
-import android.os.IUpdateEnginePayloadApplicationCallback;
+import android.os.IUpdateEngineCallback;
interface IUpdateEngine {
- int applyPayload(String url,
- in String[] headerKeyValuePairs,
- IUpdateEnginePayloadApplicationCallback callback);
+ void applyPayload(String url,
+ in String[] headerKeyValuePairs);
+ boolean bind(IUpdateEngineCallback callback);
void suspend();
void resume();
void cancel();
diff --git a/binder_bindings/android/os/IUpdateEnginePayloadApplicationCallback.aidl b/binder_bindings/android/os/IUpdateEngineCallback.aidl
similarity index 92%
rename from binder_bindings/android/os/IUpdateEnginePayloadApplicationCallback.aidl
rename to binder_bindings/android/os/IUpdateEngineCallback.aidl
index 871ef1d..729abdd 100644
--- a/binder_bindings/android/os/IUpdateEnginePayloadApplicationCallback.aidl
+++ b/binder_bindings/android/os/IUpdateEngineCallback.aidl
@@ -16,7 +16,7 @@
package android.os;
-oneway interface IUpdateEnginePayloadApplicationCallback {
+oneway interface IUpdateEngineCallback {
void onStatusUpdate(int status_code, float percentage);
void onPayloadApplicationComplete(int error_code);
}
diff --git a/binder_service.cc b/binder_service.cc
index 8029505..f412d42 100644
--- a/binder_service.cc
+++ b/binder_service.cc
@@ -18,19 +18,23 @@
using android::OK;
using android::String16;
-using android::os::IUpdateEnginePayloadApplicationCallback;
+using android::os::IUpdateEngineCallback;
using android::sp;
using android::binder::Status;
using std::vector;
namespace chromeos_update_engine {
+Status BinderService::bind(
+ const sp<IUpdateEngineCallback>& callback,
+ bool* return_value) {
+ *return_value = true;
+ return Status::ok();
+}
+
Status BinderService::applyPayload(
const String16& url,
- const vector<String16>& header_kv_pairs,
- const sp<IUpdateEnginePayloadApplicationCallback>& callback,
- int32_t* return_value) {
- *return_value = 0;
+ const vector<String16>& header_kv_pairs) {
return Status::ok();
}
diff --git a/binder_service.h b/binder_service.h
index bbbe5b6..71b9778 100644
--- a/binder_service.h
+++ b/binder_service.h
@@ -24,7 +24,7 @@
#include <utils/StrongPointer.h>
#include "android/os/BnUpdateEngine.h"
-#include "android/os/IUpdateEnginePayloadApplicationCallback.h"
+#include "android/os/IUpdateEngineCallback.h"
namespace chromeos_update_engine {
@@ -35,10 +35,11 @@
android::binder::Status applyPayload(
const android::String16& url,
- const std::vector<android::String16>& header_kv_pairs,
- const android::sp<android::os::IUpdateEnginePayloadApplicationCallback>&
- callback,
- int32_t* return_value) override;
+ const std::vector<android::String16>& header_kv_pairs) override;
+
+ android::binder::Status bind(
+ const android::sp<android::os::IUpdateEngineCallback>& callback,
+ bool* return_value) override;
android::binder::Status suspend() override;