InputTracer: Use PackageManagerNative to get package UID

... instead of plumbing the call through InputManagerService via JNI.

Bug: 330360505
Test: manual
Test: atest inputflinger_tests
Change-Id: Ie763733d8dba442afcaea7560e6d997c06ca3877
diff --git a/services/inputflinger/tests/InputTracingTest.cpp b/services/inputflinger/tests/InputTracingTest.cpp
index 23fa045..ef0eeae 100644
--- a/services/inputflinger/tests/InputTracingTest.cpp
+++ b/services/inputflinger/tests/InputTracingTest.cpp
@@ -26,6 +26,7 @@
 
 #include <NotifyArgsBuilders.h>
 #include <android-base/logging.h>
+#include <android/content/pm/IPackageManagerNative.h>
 #include <gtest/gtest.h>
 #include <input/Input.h>
 #include <perfetto/trace/android/android_input_event.pbzero.h>
@@ -65,6 +66,26 @@
 const std::string DISALLOWED_PKG_1{"disallowed.pkg.1"};
 const std::string DISALLOWED_PKG_2{"disallowed.pkg.2"};
 
+const std::map<std::string, gui::Uid> kPackageUidMap{
+        {ALLOWED_PKG_1, ALLOWED_UID_1},
+        {ALLOWED_PKG_2, ALLOWED_UID_2},
+        {DISALLOWED_PKG_1, DISALLOWED_UID_1},
+        {DISALLOWED_PKG_2, DISALLOWED_UID_2},
+};
+
+class FakePackageManager : public content::pm::IPackageManagerNativeDefault {
+public:
+    binder::Status getPackageUid(const ::std::string& pkg, int64_t flags, int32_t userId,
+            int32_t* outUid) override {
+        auto it = kPackageUidMap.find(pkg);
+        *outUid = it != kPackageUidMap.end() ? static_cast<int32_t>(it->second.val()) : -1;
+        return binder::Status::ok();
+    }
+};
+
+const sp<testing::NiceMock<FakePackageManager>> kPackageManager =
+        sp<testing::NiceMock<FakePackageManager>>::make();
+
 const std::shared_ptr<FakeApplicationHandle> APP = std::make_shared<FakeApplicationHandle>();
 
 } // namespace
@@ -78,18 +99,11 @@
 
     void SetUp() override {
         impl::PerfettoBackend::sUseInProcessBackendForTest = true;
-
+        impl::PerfettoBackend::sPackageManagerProvider = []() { return kPackageManager; };
         mFakePolicy = std::make_unique<FakeInputDispatcherPolicy>();
-        mFakePolicy->addPackageUidMapping(ALLOWED_PKG_1, ALLOWED_UID_1);
-        mFakePolicy->addPackageUidMapping(ALLOWED_PKG_2, ALLOWED_UID_2);
-        mFakePolicy->addPackageUidMapping(DISALLOWED_PKG_1, DISALLOWED_UID_1);
-        mFakePolicy->addPackageUidMapping(DISALLOWED_PKG_2, DISALLOWED_UID_2);
 
         auto tracingBackend = std::make_unique<impl::ThreadedBackend<impl::PerfettoBackend>>(
-                impl::PerfettoBackend([this](const auto& pkg) {
-                    return static_cast<InputDispatcherPolicyInterface&>(*mFakePolicy)
-                            .getPackageUid(pkg);
-                }));
+                impl::PerfettoBackend());
         mRequestTracerIdle = tracingBackend->getIdleWaiterForTesting();
         mDispatcher = std::make_unique<InputDispatcher>(*mFakePolicy, std::move(tracingBackend));