Add new contexthub HAL 1.2 methods to default impl
Bug: 166846988
Test: Run VTS against default HAL
Change-Id: I158a49e54f340a2ba25f79894d6ec465070326f8
diff --git a/contexthub/1.2/default/Contexthub.cpp b/contexthub/1.2/default/Contexthub.cpp
index 8bc028e..db0c5bc 100644
--- a/contexthub/1.2/default/Contexthub.cpp
+++ b/contexthub/1.2/default/Contexthub.cpp
@@ -17,23 +17,47 @@
#include <vector>
-using ::android::hardware::contexthub::V1_0::Result;
-
namespace android {
namespace hardware {
namespace contexthub {
namespace V1_2 {
namespace implementation {
-// TODO(b/166846988): Implement new methods.
-Return<Result> Contexthub::registerCallback_1_2(uint32_t /* hubId */,
- const sp<IContexthubCallback>& /* cb */) {
- return Result::UNKNOWN_FAILURE;
+using ::android::hardware::contexthub::V1_0::Result;
+using ::android::hardware::contexthub::V1_X::implementation::IContextHubCallbackWrapperV1_0;
+using ::android::hardware::contexthub::V1_X::implementation::IContextHubCallbackWrapperV1_2;
+
+Return<Result> Contexthub::registerCallback(uint32_t hubId,
+ const sp<V1_0::IContexthubCallback>& cb) {
+ if (hubId == kMockHubId) {
+ mCallback = new IContextHubCallbackWrapperV1_0(cb);
+ return Result::OK;
+ }
+ return Result::BAD_PARAMS;
}
+Return<Result> Contexthub::queryApps(uint32_t hubId) {
+ if (hubId == kMockHubId && mCallback != nullptr) {
+ std::vector<V1_2::HubAppInfo> nanoapps;
+ mCallback->handleAppsInfo(nanoapps);
+ return Result::OK;
+ }
+ return Result::BAD_PARAMS;
+}
+
+Return<Result> Contexthub::registerCallback_1_2(uint32_t hubId,
+ const sp<V1_2::IContexthubCallback>& cb) {
+ if (hubId == kMockHubId) {
+ mCallback = new IContextHubCallbackWrapperV1_2(cb);
+ return Result::OK;
+ }
+ return Result::BAD_PARAMS;
+}
+
+// We don't expose any nanoapps, therefore all nanoapp-related API calls return with BAD_PARAMS
Return<Result> Contexthub::sendMessageToHub_1_2(uint32_t /* hubId */,
const ContextHubMsg& /* msg */) {
- return Result::UNKNOWN_FAILURE;
+ return Result::BAD_PARAMS;
}
Return<void> Contexthub::onSettingChanged(SettingV1_1 /*setting*/, SettingValue /*newValue*/) {