summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorPatrick Baumann <patb@google.com>2018-11-28 07:15:06 -0800
committerPatrick Baumann <patb@google.com>2018-12-20 11:46:01 -0800
commit34cf12c02cdd03f71863cd12f2fb1f72fce0e37d (patch)
tree33198a03f1cc19b9e3aaca754f966596b6bdb9d3 /core/java
parent8a8ec5a576d00e42feb05277b4a4366a7d7b3f59 (diff)
Break shared library adds into populate and modify
This change breaks current modification of shared lib state in the system into object creation and a commit step so that multiple packages may be interrogated before committing anything to the system. Change-Id: I466d588be3e9690cffc8a04e025145d747fcbb2f Bug: 109941548 Test: atest StaticSharedLibsHostTests
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/content/pm/SharedLibraryInfo.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/core/java/android/content/pm/SharedLibraryInfo.java b/core/java/android/content/pm/SharedLibraryInfo.java
index ad82626dd6ad..35609c9a8926 100644
--- a/core/java/android/content/pm/SharedLibraryInfo.java
+++ b/core/java/android/content/pm/SharedLibraryInfo.java
@@ -33,11 +33,29 @@ import java.util.List;
* This class provides information for a shared library. There are
* three types of shared libraries: builtin - non-updatable part of
* the OS; dynamic - updatable backwards-compatible dynamically linked;
- * static - updatable non backwards-compatible emulating static linking.
+ * static - non backwards-compatible emulating static linking.
*/
public final class SharedLibraryInfo implements Parcelable {
/** @hide */
+ public static SharedLibraryInfo createForStatic(PackageParser.Package pkg) {
+ return new SharedLibraryInfo(null, pkg.packageName, pkg.getAllCodePaths(),
+ pkg.staticSharedLibName,
+ pkg.staticSharedLibVersion,
+ TYPE_STATIC,
+ new VersionedPackage(pkg.manifestPackageName, pkg.getLongVersionCode()),
+ null, null);
+ }
+
+ /** @hide */
+ public static SharedLibraryInfo createForDynamic(PackageParser.Package pkg, String name) {
+ return new SharedLibraryInfo(null, pkg.packageName, pkg.getAllCodePaths(), name,
+ (long) VERSION_UNDEFINED,
+ TYPE_DYNAMIC, new VersionedPackage(pkg.packageName, pkg.getLongVersionCode()),
+ null, null);
+ }
+
+ /** @hide */
@IntDef(flag = true, prefix = { "TYPE_" }, value = {
TYPE_BUILTIN,
TYPE_DYNAMIC,