diff options
| author | 2023-10-05 22:18:15 +0000 | |
|---|---|---|
| committer | 2023-10-05 22:18:15 +0000 | |
| commit | 09a2a50347708d273e6160f98cdc3600dd94a84f (patch) | |
| tree | 405a94e556e6c3cec60b49b9a4cae2acf6806307 | |
| parent | a8a539955ca06ff060912c8a6d179cdf620b8af9 (diff) | |
| parent | b9046129d7868401d80dbb2ae7eb15a906a32b10 (diff) | |
Merge "Add AppOps overload to be able to watch foreground changes." into tm-dev am: 748247412c am: b9046129d7
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/22465454
Change-Id: I2e20233e8d3c44ce357e6a9ce358e11f339eb05b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | libs/permission/AppOpsManager.cpp | 8 | ||||
| -rw-r--r-- | libs/permission/IAppOpsService.cpp | 11 | ||||
| -rw-r--r-- | libs/permission/include/binder/AppOpsManager.h | 6 | ||||
| -rw-r--r-- | libs/permission/include/binder/IAppOpsService.h | 3 | 
4 files changed, 28 insertions, 0 deletions
| diff --git a/libs/permission/AppOpsManager.cpp b/libs/permission/AppOpsManager.cpp index baa9d75116..695927418d 100644 --- a/libs/permission/AppOpsManager.cpp +++ b/libs/permission/AppOpsManager.cpp @@ -146,6 +146,14 @@ void AppOpsManager::startWatchingMode(int32_t op, const String16& packageName,      }  } +void AppOpsManager::startWatchingMode(int32_t op, const String16& packageName, int32_t flags, +        const sp<IAppOpsCallback>& callback) { +    sp<IAppOpsService> service = getService(); +    if (service != nullptr) { +        service->startWatchingModeWithFlags(op, packageName, flags, callback); +    } +} +  void AppOpsManager::stopWatchingMode(const sp<IAppOpsCallback>& callback) {      sp<IAppOpsService> service = getService();      if (service != nullptr) { diff --git a/libs/permission/IAppOpsService.cpp b/libs/permission/IAppOpsService.cpp index d59f44562e..7f235a4541 100644 --- a/libs/permission/IAppOpsService.cpp +++ b/libs/permission/IAppOpsService.cpp @@ -166,6 +166,17 @@ public:          }          return reply.readBool();      } + +    virtual void startWatchingModeWithFlags(int32_t op, const String16& packageName, +        int32_t flags, const sp<IAppOpsCallback>& callback) { +        Parcel data, reply; +        data.writeInterfaceToken(IAppOpsService::getInterfaceDescriptor()); +        data.writeInt32(op); +        data.writeString16(packageName); +        data.writeInt32(flags); +        data.writeStrongBinder(IInterface::asBinder(callback)); +        remote()->transact(START_WATCHING_MODE_WITH_FLAGS_TRANSACTION, data, &reply); +    }  };  IMPLEMENT_META_INTERFACE(AppOpsService, "com.android.internal.app.IAppOpsService") diff --git a/libs/permission/include/binder/AppOpsManager.h b/libs/permission/include/binder/AppOpsManager.h index abcd527966..243532bc4d 100644 --- a/libs/permission/include/binder/AppOpsManager.h +++ b/libs/permission/include/binder/AppOpsManager.h @@ -151,6 +151,10 @@ public:          _NUM_OP = 117      }; +    enum { +        WATCH_FOREGROUND_CHANGES = 1 << 0 +    }; +      AppOpsManager();      int32_t checkOp(int32_t op, int32_t uid, const String16& callingPackage); @@ -174,6 +178,8 @@ public:              const std::optional<String16>& attributionTag);      void startWatchingMode(int32_t op, const String16& packageName,              const sp<IAppOpsCallback>& callback); +    void startWatchingMode(int32_t op, const String16& packageName, int32_t flags, +            const sp<IAppOpsCallback>& callback);      void stopWatchingMode(const sp<IAppOpsCallback>& callback);      int32_t permissionToOpCode(const String16& permission);      void setCameraAudioRestriction(int32_t mode); diff --git a/libs/permission/include/binder/IAppOpsService.h b/libs/permission/include/binder/IAppOpsService.h index 22f056b235..918fcdbce1 100644 --- a/libs/permission/include/binder/IAppOpsService.h +++ b/libs/permission/include/binder/IAppOpsService.h @@ -52,6 +52,8 @@ public:              const String16& packageName) = 0;      virtual void setCameraAudioRestriction(int32_t mode) = 0;      virtual bool shouldCollectNotes(int32_t opCode) = 0; +    virtual void startWatchingModeWithFlags(int32_t op, const String16& packageName, +            int32_t flags, const sp<IAppOpsCallback>& callback) = 0;      enum {          CHECK_OPERATION_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION, @@ -64,6 +66,7 @@ public:          CHECK_AUDIO_OPERATION_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION+7,          SHOULD_COLLECT_NOTES_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION+8,          SET_CAMERA_AUDIO_RESTRICTION_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION+9, +        START_WATCHING_MODE_WITH_FLAGS_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION+10,      };      enum { |