Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b7ee96a6 authored by Martijn Coenen's avatar Martijn Coenen Committed by Gerrit Code Review
Browse files

Merge "Callback elision for HIDL interfaces."

parents 88f77814 f6ac8482
Loading
Loading
Loading
Loading
+13 −10
Original line number Diff line number Diff line
@@ -514,8 +514,10 @@ static bool pokeBinderServices()
// their system properties.
static void pokeHalServices()
{
    using ::android::hidl::base::V1_0::IBase;
    using ::android::hidl::manager::V1_0::IServiceManager;
    using ::android::hardware::hidl_string;
    using ::android::hardware::Return;

    sp<IServiceManager> sm = ::android::hardware::defaultServiceManager();

@@ -532,19 +534,20 @@ static void pokeHalServices()
                continue;
            hidl_string fqInterfaceName = fqInstanceName.substr(0, n);
            hidl_string instanceName = fqInstanceName.substr(n+1, std::string::npos);
            auto getRet = sm->get(fqInterfaceName, instanceName, [&](const auto &interface) {
            Return<sp<IBase>> interfaceRet = sm->get(fqInterfaceName, instanceName);
            if (!interfaceRet.isOk()) {
                fprintf(stderr, "failed to get service %s: %s\n",
                        fqInstanceName.c_str(),
                        interfaceRet.description().c_str());
                continue;
            }
            sp<IBase> interface = interfaceRet;
            auto notifyRet = interface->notifySyspropsChanged();
            if (!notifyRet.isOk()) {
                fprintf(stderr, "failed to notifySyspropsChanged on service %s: %s\n",
                        fqInstanceName.c_str(),
                        notifyRet.description().c_str());
            }
            });
            if (!getRet.isOk()) {
                fprintf(stderr, "failed to get service %s: %s\n",
                        fqInstanceName.c_str(),
                        getRet.description().c_str());
            }
        }
    });
    if (!listRet.isOk()) {