diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-11-21 19:38:01 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-11-21 19:38:01 +0000 |
| commit | 66daa23b1b2eeefce39d2a9914f2c19c0b9b00af (patch) | |
| tree | 0dad2a34ebe3d63d4efe60bd483d78c5d011d226 /core/java/android/app/ApplicationPackageManager.java | |
| parent | 46aed909cbba6fc92020be2f6f4468993971d3ca (diff) | |
| parent | 569435e0eb42bcd9ae31efb22244ed186ed82d45 (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.java | 110 |
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(); + } + } } |
