Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 500bffdb authored by Daichi Hirono's avatar Daichi Hirono
Browse files

Publish StorageManager#openProxyFileDescriptor API.

Bug: 29970149
Test: Build succeeded
Change-Id: I1606b184968839fb99744387dcc058f15f6521c8
parent 9fb00183
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -29846,6 +29846,15 @@ package android.os {
    field public static final int THREAD_PRIORITY_URGENT_DISPLAY = -8; // 0xfffffff8
  }
  public abstract class ProxyFileDescriptorCallback {
    ctor public ProxyFileDescriptorCallback();
    method public void onFsync() throws android.system.ErrnoException;
    method public long onGetSize() throws android.system.ErrnoException;
    method public int onRead(long, int, byte[]) throws android.system.ErrnoException;
    method public abstract void onRelease();
    method public int onWrite(long, int, byte[]) throws android.system.ErrnoException;
  }
  public class RecoverySystem {
    method public static void installPackage(android.content.Context, java.io.File) throws java.io.IOException;
    method public static void rebootWipeCache(android.content.Context) throws java.io.IOException;
@@ -30263,6 +30272,7 @@ package android.os.storage {
    method public boolean isEncrypted(java.io.File);
    method public boolean isObbMounted(java.lang.String);
    method public boolean mountObb(java.lang.String, java.lang.String, android.os.storage.OnObbStateChangeListener);
    method public android.os.ParcelFileDescriptor openProxyFileDescriptor(int, android.os.ProxyFileDescriptorCallback) throws java.io.IOException;
    method public boolean unmountObb(java.lang.String, boolean, android.os.storage.OnObbStateChangeListener);
    field public static final java.lang.String ACTION_MANAGE_STORAGE = "android.os.storage.action.MANAGE_STORAGE";
  }
+10 −0
Original line number Diff line number Diff line
@@ -32448,6 +32448,15 @@ package android.os {
    field public static final int THREAD_PRIORITY_URGENT_DISPLAY = -8; // 0xfffffff8
  }
  public abstract class ProxyFileDescriptorCallback {
    ctor public ProxyFileDescriptorCallback();
    method public void onFsync() throws android.system.ErrnoException;
    method public long onGetSize() throws android.system.ErrnoException;
    method public int onRead(long, int, byte[]) throws android.system.ErrnoException;
    method public abstract void onRelease();
    method public int onWrite(long, int, byte[]) throws android.system.ErrnoException;
  }
  public class RecoverySystem {
    method public static void cancelScheduledUpdate(android.content.Context) throws java.io.IOException;
    method public static void installPackage(android.content.Context, java.io.File) throws java.io.IOException;
@@ -32951,6 +32960,7 @@ package android.os.storage {
    method public boolean isEncrypted(java.io.File);
    method public boolean isObbMounted(java.lang.String);
    method public boolean mountObb(java.lang.String, java.lang.String, android.os.storage.OnObbStateChangeListener);
    method public android.os.ParcelFileDescriptor openProxyFileDescriptor(int, android.os.ProxyFileDescriptorCallback) throws java.io.IOException;
    method public boolean unmountObb(java.lang.String, boolean, android.os.storage.OnObbStateChangeListener);
    field public static final java.lang.String ACTION_MANAGE_STORAGE = "android.os.storage.action.MANAGE_STORAGE";
  }
+10 −0
Original line number Diff line number Diff line
@@ -29956,6 +29956,15 @@ package android.os {
    field public static final int THREAD_PRIORITY_URGENT_DISPLAY = -8; // 0xfffffff8
  }
  public abstract class ProxyFileDescriptorCallback {
    ctor public ProxyFileDescriptorCallback();
    method public void onFsync() throws android.system.ErrnoException;
    method public long onGetSize() throws android.system.ErrnoException;
    method public int onRead(long, int, byte[]) throws android.system.ErrnoException;
    method public abstract void onRelease();
    method public int onWrite(long, int, byte[]) throws android.system.ErrnoException;
  }
  public class RecoverySystem {
    method public static void installPackage(android.content.Context, java.io.File) throws java.io.IOException;
    method public static void rebootWipeCache(android.content.Context) throws java.io.IOException;
@@ -30374,6 +30383,7 @@ package android.os.storage {
    method public boolean isEncrypted(java.io.File);
    method public boolean isObbMounted(java.lang.String);
    method public boolean mountObb(java.lang.String, java.lang.String, android.os.storage.OnObbStateChangeListener);
    method public android.os.ParcelFileDescriptor openProxyFileDescriptor(int, android.os.ProxyFileDescriptorCallback) throws java.io.IOException;
    method public boolean unmountObb(java.lang.String, boolean, android.os.storage.OnObbStateChangeListener);
    field public static final java.lang.String ACTION_MANAGE_STORAGE = "android.os.storage.action.MANAGE_STORAGE";
  }
+0 −1
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import android.system.OsConstants;

/**
 * Callback that handles file system requests from ProxyFileDescriptor.
 * @hide
 */
public abstract class ProxyFileDescriptorCallback {
    /**
+14 −1
Original line number Diff line number Diff line
@@ -1327,6 +1327,7 @@ public class StorageManager {
        }
    }


    /** {@hide} */
    @VisibleForTesting
    public @NonNull ParcelFileDescriptor openProxyFileDescriptor(
@@ -1378,7 +1379,19 @@ public class StorageManager {
        throw new IOException("Failed to mount bridge.");
    }

    /** {@hide} */
    /**
     * Opens seekable ParcelFileDescriptor that routes file operation requests to
     * ProxyFileDescriptorCallback.
     *
     * @param mode The desired access mode, must be one of
     *     {@link ParcelFileDescriptor#MODE_READ_ONLY},
     *     {@link ParcelFileDescriptor#MODE_WRITE_ONLY}, or
     *     {@link ParcelFileDescriptor#MODE_READ_WRITE}
     * @param callback Callback to process file operation requests issued on returned file
     *     descriptor. The callback is invoked on a thread managed by the framework.
     * @return Seekable ParcelFileDescriptor.
     * @throws IOException
     */
    public @NonNull ParcelFileDescriptor openProxyFileDescriptor(
            int mode, ProxyFileDescriptorCallback callback)
                    throws IOException {