diff options
| author | 2020-03-24 21:56:05 +0000 | |
|---|---|---|
| committer | 2020-03-24 21:56:05 +0000 | |
| commit | 576ad9fe35c3c8e643cdffc1161d2f9dea3085dc (patch) | |
| tree | d97cc901edea885c58aceabcfa1d461047335929 | |
| parent | f835e028b3acb1838b4798a356073d07e76dfd9c (diff) | |
| parent | 34684143dce78c71faa8b2960fb171c6d36c21bb (diff) | |
Merge "package-manager-native: Add aidl for package change event and observer." into rvc-dev
4 files changed, 73 insertions, 0 deletions
diff --git a/libs/binder/Android.bp b/libs/binder/Android.bp index bc541f4d31..e6cfeb4943 100644 --- a/libs/binder/Android.bp +++ b/libs/binder/Android.bp @@ -158,7 +158,9 @@ cc_library { filegroup { name: "libbinder_aidl", srcs: [ + "aidl/android/content/pm/IPackageChangeObserver.aidl", "aidl/android/content/pm/IPackageManagerNative.aidl", + "aidl/android/content/pm/PackageChangeEvent.aidl", "aidl/android/os/IClientCallback.aidl", "aidl/android/os/IServiceCallback.aidl", "aidl/android/os/IServiceManager.aidl", diff --git a/libs/binder/aidl/android/content/pm/IPackageChangeObserver.aidl b/libs/binder/aidl/android/content/pm/IPackageChangeObserver.aidl new file mode 100644 index 0000000000..6929a6cb49 --- /dev/null +++ b/libs/binder/aidl/android/content/pm/IPackageChangeObserver.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.content.pm; + +import android.content.pm.PackageChangeEvent; + +/** + * This is a non-blocking notification when a package has changed. + * + * @hide + */ +oneway interface IPackageChangeObserver { + void onPackageChanged(in PackageChangeEvent event); +} diff --git a/libs/binder/aidl/android/content/pm/IPackageManagerNative.aidl b/libs/binder/aidl/android/content/pm/IPackageManagerNative.aidl index 618f88c66d..dc8d74c052 100644 --- a/libs/binder/aidl/android/content/pm/IPackageManagerNative.aidl +++ b/libs/binder/aidl/android/content/pm/IPackageManagerNative.aidl @@ -17,6 +17,8 @@ package android.content.pm; +import android.content.pm.IPackageChangeObserver; + /** * Parallel implementation of certain {@link PackageManager} APIs that need to * be exposed to native code. @@ -90,4 +92,13 @@ interface IPackageManagerNative { /* Returns the names of all packages. */ @utf8InCpp String[] getAllPackages(); + + /** Register an extra package change observer to receive the multi-cast. */ + void registerPackageChangeObserver(in IPackageChangeObserver observer); + + /** + * Unregister an existing package change observer. + * This does nothing if this observer was not already registered. + */ + void unregisterPackageChangeObserver(in IPackageChangeObserver observer); } diff --git a/libs/binder/aidl/android/content/pm/PackageChangeEvent.aidl b/libs/binder/aidl/android/content/pm/PackageChangeEvent.aidl new file mode 100644 index 0000000000..e30e9072fc --- /dev/null +++ b/libs/binder/aidl/android/content/pm/PackageChangeEvent.aidl @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.content.pm; + +/** + * This event is designed for notification to native code listener about + * any changes on a package including update, deletion and etc. + * + * @hide + */ +parcelable PackageChangeEvent { + @utf8InCpp String packageName; + long version; + long lastUpdateTimeMillis; + boolean newInstalled; + boolean dataRemoved; + boolean isDeleted; +} |