summaryrefslogtreecommitdiff
path: root/core/java/android/app/ApplicationPackageManager.java
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2020-11-21 19:38:01 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-11-21 19:38:01 +0000
commit66daa23b1b2eeefce39d2a9914f2c19c0b9b00af (patch)
tree0dad2a34ebe3d63d4efe60bd483d78c5d011d226 /core/java/android/app/ApplicationPackageManager.java
parent46aed909cbba6fc92020be2f6f4468993971d3ca (diff)
parent569435e0eb42bcd9ae31efb22244ed186ed82d45 (diff)
Merge "Implment get/query APIs for properties"
Diffstat (limited to 'core/java/android/app/ApplicationPackageManager.java')
-rw-r--r--core/java/android/app/ApplicationPackageManager.java110
1 files changed, 110 insertions, 0 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 7cef93fe7547..34437afb614a 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -58,6 +58,8 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageInstaller;
import android.content.pm.PackageItemInfo;
import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.PackageManager.Property;
import android.content.pm.ParceledListSlice;
import android.content.pm.PermissionGroupInfo;
import android.content.pm.PermissionInfo;
@@ -3551,4 +3553,112 @@ public class ApplicationPackageManager extends PackageManager {
throw e.rethrowAsRuntimeException();
}
}
+
+ @Override
+ public Property getProperty(String propertyName, String packageName)
+ throws NameNotFoundException {
+ Objects.requireNonNull(packageName);
+ Objects.requireNonNull(propertyName);
+ try {
+ final Property property = mPM.getProperty(propertyName, packageName, null);
+ if (property == null) {
+ throw new NameNotFoundException();
+ }
+ return property;
+ } catch (RemoteException e) {
+ throw e.rethrowAsRuntimeException();
+ }
+ }
+
+ @Override
+ public Property getProperty(String propertyName, ComponentName component)
+ throws NameNotFoundException {
+ Objects.requireNonNull(component);
+ Objects.requireNonNull(propertyName);
+ try {
+ final Property property = mPM.getProperty(
+ propertyName, component.getPackageName(), component.getClassName());
+ if (property == null) {
+ throw new NameNotFoundException();
+ }
+ return property;
+ } catch (RemoteException e) {
+ throw e.rethrowAsRuntimeException();
+ }
+ }
+
+ @Override
+ public List<Property> queryApplicationProperty(String propertyName) {
+ Objects.requireNonNull(propertyName);
+ try {
+ final ParceledListSlice<Property> parceledList =
+ mPM.queryProperty(propertyName, TYPE_APPLICATION);
+ if (parceledList == null) {
+ return Collections.emptyList();
+ }
+ return parceledList.getList();
+ } catch (RemoteException e) {
+ throw e.rethrowAsRuntimeException();
+ }
+ }
+
+ @Override
+ public List<Property> queryActivityProperty(String propertyName) {
+ Objects.requireNonNull(propertyName);
+ try {
+ final ParceledListSlice<Property> parceledList =
+ mPM.queryProperty(propertyName, TYPE_ACTIVITY);
+ if (parceledList == null) {
+ return Collections.emptyList();
+ }
+ return parceledList.getList();
+ } catch (RemoteException e) {
+ throw e.rethrowAsRuntimeException();
+ }
+ }
+
+ @Override
+ public List<Property> queryProviderProperty(String propertyName) {
+ Objects.requireNonNull(propertyName);
+ try {
+ final ParceledListSlice<Property> parceledList =
+ mPM.queryProperty(propertyName, TYPE_PROVIDER);
+ if (parceledList == null) {
+ return Collections.emptyList();
+ }
+ return parceledList.getList();
+ } catch (RemoteException e) {
+ throw e.rethrowAsRuntimeException();
+ }
+ }
+
+ @Override
+ public List<Property> queryReceiverProperty(String propertyName) {
+ Objects.requireNonNull(propertyName);
+ try {
+ final ParceledListSlice<Property> parceledList =
+ mPM.queryProperty(propertyName, TYPE_RECEIVER);
+ if (parceledList == null) {
+ return Collections.emptyList();
+ }
+ return parceledList.getList();
+ } catch (RemoteException e) {
+ throw e.rethrowAsRuntimeException();
+ }
+ }
+
+ @Override
+ public List<Property> queryServiceProperty(String propertyName) {
+ Objects.requireNonNull(propertyName);
+ try {
+ final ParceledListSlice<Property> parceledList =
+ mPM.queryProperty(propertyName, TYPE_SERVICE);
+ if (parceledList == null) {
+ return Collections.emptyList();
+ }
+ return parceledList.getList();
+ } catch (RemoteException e) {
+ throw e.rethrowAsRuntimeException();
+ }
+ }
}