Some changes required for the actual integration with a GUI renderer
These changes accumulated during the integration with the Pixel specific
impelemtation. The make it easiser to integrate an GUI renderer with the
core logic.
Bug: 63928580
Test: VTS tests and manual tests
Change-Id: I7001f60709ce806a16f098492bdb71eb05e6ca9a
diff --git a/confirmationui/1.0/default/ConfirmationUI.cpp b/confirmationui/1.0/default/ConfirmationUI.cpp
index f241a76..41e03ce 100644
--- a/confirmationui/1.0/default/ConfirmationUI.cpp
+++ b/confirmationui/1.0/default/ConfirmationUI.cpp
@@ -43,7 +43,12 @@
const hidl_vec<uint8_t>& extraData, const hidl_string& locale,
const hidl_vec<UIOption>& uiOptions) {
auto& operation = MyOperation::get();
- return operation.init(resultCB, promptText, extraData, locale, uiOptions);
+ auto result = operation.init(resultCB, promptText, extraData, locale, uiOptions);
+ if (result == ResponseCode::OK) {
+ // This is where implementation start the UI and then call setPending on success.
+ operation.setPending();
+ }
+ return result;
}
Return<ResponseCode> ConfirmationUI::deliverSecureInputEvent(
diff --git a/confirmationui/1.0/default/PlatformSpecifics.h b/confirmationui/1.0/default/PlatformSpecifics.h
index 18b88c8..488da6d 100644
--- a/confirmationui/1.0/default/PlatformSpecifics.h
+++ b/confirmationui/1.0/default/PlatformSpecifics.h
@@ -52,8 +52,14 @@
const uint8_t key[32], std::initializer_list<support::ByteBufferProxy> buffers);
};
-using MyOperation = generic::Operation<sp<IConfirmationResultCallback>, MonotonicClockTimeStamper,
- HMacImplementation>;
+class MyOperation : public generic::Operation<sp<IConfirmationResultCallback>,
+ MonotonicClockTimeStamper, HMacImplementation> {
+ public:
+ static MyOperation& get() {
+ static MyOperation op;
+ return op;
+ }
+};
} // namespace implementation
} // namespace V1_0