summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author shengcow <shengcow@google.com> 2020-01-14 17:58:04 -0800
committer Shengcong Wang <shengcow@google.com> 2020-01-23 18:09:08 +0000
commit0696c44824aa521cdfe49c65d81fa341b22c2446 (patch)
treecd44e695891952844bbd708813c6ae5669159a1b
parent5e6abe41065190502ad336a7295aa05f83e574ee (diff)
Add system API annotation to expose Incremental classes as system APIs.
Test: None Change-Id: Iddf69534cd88670af34267287ae8ee63ed24d7c7 Bug: 148217803
-rwxr-xr-xapi/system-current.txt25
-rw-r--r--core/java/android/content/pm/InstallationFile.java3
-rw-r--r--core/java/android/service/dataloader/DataLoaderService.java11
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java4
4 files changed, 37 insertions, 6 deletions
diff --git a/api/system-current.txt b/api/system-current.txt
index a2f363f0d947..8d88f5a02669 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -2063,6 +2063,21 @@ package android.content.pm {
method @NonNull public final int getType();
}
+ public final class InstallationFile implements android.os.Parcelable {
+ ctor public InstallationFile(@NonNull String, long, @Nullable byte[]);
+ method public int describeContents();
+ method public int getFileType();
+ method @Nullable public byte[] getMetadata();
+ method @NonNull public String getName();
+ method public long getSize();
+ method public void writeToParcel(@NonNull android.os.Parcel, int);
+ field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.InstallationFile> CREATOR;
+ field public static final int FILE_TYPE_APK = 0; // 0x0
+ field public static final int FILE_TYPE_LIB = 1; // 0x1
+ field public static final int FILE_TYPE_OBB = 2; // 0x2
+ field public static final int FILE_TYPE_UNKNOWN = -1; // 0xffffffff
+ }
+
public final class InstantAppInfo implements android.os.Parcelable {
ctor public InstantAppInfo(android.content.pm.ApplicationInfo, String[], String[]);
ctor public InstantAppInfo(String, CharSequence, String[], String[]);
@@ -10126,6 +10141,16 @@ package android.service.dataloader {
public abstract class DataLoaderService extends android.app.Service {
ctor public DataLoaderService();
+ method @Nullable public android.service.dataloader.DataLoaderService.DataLoader onCreateDataLoader();
+ }
+
+ public static interface DataLoaderService.DataLoader {
+ method public boolean onCreate(@NonNull android.content.pm.DataLoaderParams, @NonNull android.service.dataloader.DataLoaderService.FileSystemConnector);
+ method public boolean onPrepareImage(@NonNull java.util.Collection<android.content.pm.InstallationFile>, @NonNull java.util.Collection<java.lang.String>);
+ }
+
+ public static final class DataLoaderService.FileSystemConnector {
+ method public void writeData(@NonNull String, long, long, @NonNull android.os.ParcelFileDescriptor) throws java.io.IOException;
}
}
diff --git a/core/java/android/content/pm/InstallationFile.java b/core/java/android/content/pm/InstallationFile.java
index ac5fd1e41075..111ad32d1e41 100644
--- a/core/java/android/content/pm/InstallationFile.java
+++ b/core/java/android/content/pm/InstallationFile.java
@@ -19,6 +19,7 @@ package android.content.pm;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
@@ -31,12 +32,14 @@ import java.lang.annotation.RetentionPolicy;
*
* @hide
*/
+@SystemApi
public final class InstallationFile implements Parcelable {
public static final int FILE_TYPE_UNKNOWN = -1;
public static final int FILE_TYPE_APK = 0;
public static final int FILE_TYPE_LIB = 1;
public static final int FILE_TYPE_OBB = 2;
+ /** @hide */
@Retention(RetentionPolicy.SOURCE)
@IntDef(prefix = {"FILE_TYPE_"}, value = {
FILE_TYPE_APK,
diff --git a/core/java/android/service/dataloader/DataLoaderService.java b/core/java/android/service/dataloader/DataLoaderService.java
index 75f252e23f79..c21577842199 100644
--- a/core/java/android/service/dataloader/DataLoaderService.java
+++ b/core/java/android/service/dataloader/DataLoaderService.java
@@ -58,6 +58,7 @@ public abstract class DataLoaderService extends Service {
* Managed DataLoader interface. Each instance corresponds to a single installation session.
* @hide
*/
+ @SystemApi
public interface DataLoader {
/**
* A virtual constructor.
@@ -78,8 +79,8 @@ public abstract class DataLoaderService extends Service {
* @param removedFiles list of files removed in this installation session.
* @return false if unable to create and populate all addedFiles.
*/
- boolean onPrepareImage(Collection<InstallationFile> addedFiles,
- Collection<String> removedFiles);
+ boolean onPrepareImage(@NonNull Collection<InstallationFile> addedFiles,
+ @NonNull Collection<String> removedFiles);
}
/**
@@ -88,6 +89,7 @@ public abstract class DataLoaderService extends Service {
* @return An instance of a DataLoader.
* @hide
*/
+ @SystemApi
public @Nullable DataLoader onCreateDataLoader() {
return null;
}
@@ -188,6 +190,7 @@ public abstract class DataLoaderService extends Service {
*
* @hide
*/
+ @SystemApi
public static final class FileSystemConnector {
/**
* Create a wrapper for a native instance.
@@ -211,8 +214,8 @@ public abstract class DataLoaderService extends Service {
* @throws IOException if trouble opening the file for writing, such as lack of disk space
* or unavailable media.
*/
- public void writeData(String name, long offsetBytes, long lengthBytes,
- ParcelFileDescriptor incomingFd) throws IOException {
+ public void writeData(@NonNull String name, long offsetBytes, long lengthBytes,
+ @NonNull ParcelFileDescriptor incomingFd) throws IOException {
try {
nativeWriteData(mNativeInstance, name, offsetBytes, lengthBytes, incomingFd);
} catch (RuntimeException e) {
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java b/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java
index a814cb8942e2..281c44a61153 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java
@@ -115,8 +115,8 @@ public class PackageManagerShellCommandDataLoader extends DataLoaderService {
}
@Override
- public boolean onPrepareImage(Collection<InstallationFile> addedFiles,
- Collection<String> removedFiles) {
+ public boolean onPrepareImage(@NonNull Collection<InstallationFile> addedFiles,
+ @NonNull Collection<String> removedFiles) {
final int commandId = extractShellCommandId(mParams.getArguments());
if (commandId == INVALID_SHELL_COMMAND_ID) {
return false;