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

Commit 5c179c56 authored by Paul Chang's avatar Paul Chang Committed by Android (Google) Code Review
Browse files

Merge "Add requestBugreport system API in BugreportManager."

parents 1389ea2d 9082c390
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -6050,6 +6050,7 @@ package android.os {
  public final class BugreportManager {
    method @RequiresPermission(android.Manifest.permission.DUMP) public void cancelBugreport();
    method @RequiresPermission(android.Manifest.permission.DUMP) public void requestBugreport(@NonNull android.os.BugreportParams, @Nullable CharSequence, @Nullable CharSequence);
    method @RequiresPermission(android.Manifest.permission.DUMP) public void startBugreport(@NonNull android.os.ParcelFileDescriptor, @Nullable android.os.ParcelFileDescriptor, @NonNull android.os.BugreportParams, @NonNull java.util.concurrent.Executor, @NonNull android.os.BugreportManager.BugreportCallback);
  }
+1 −0
Original line number Diff line number Diff line
@@ -1756,6 +1756,7 @@ package android.os {

  public final class BugreportManager {
    method @RequiresPermission(android.Manifest.permission.DUMP) public void cancelBugreport();
    method @RequiresPermission(android.Manifest.permission.DUMP) public void requestBugreport(@NonNull android.os.BugreportParams, @Nullable CharSequence, @Nullable CharSequence);
    method @RequiresPermission(android.Manifest.permission.DUMP) public void startBugreport(@NonNull android.os.ParcelFileDescriptor, @Nullable android.os.ParcelFileDescriptor, @NonNull android.os.BugreportParams, @NonNull java.util.concurrent.Executor, @NonNull android.os.BugreportManager.BugreportCallback);
  }

+27 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.annotation.TestApi;
import android.app.ActivityManager;
import android.content.Context;
import android.util.Log;

@@ -191,6 +192,32 @@ public final class BugreportManager {
        }
    }

    /**
     * Requests a bugreport.
     *
     * <p>This requests the platform/system to take a bugreport and makes the final bugreport
     * available to the user. The user may choose to share it with another app, but the bugreport
     * is never given back directly to the app that requested it.
     *
     * @param params           {@link BugreportParams} that specify what kind of a bugreport should
     *                         be taken, please note that not all kinds of bugreport allow for a
     *                         progress notification
     * @param shareTitle       title on the final share notification
     * @param shareDescription description on the final share notification
     */
    @RequiresPermission(android.Manifest.permission.DUMP)
    public void requestBugreport(@NonNull BugreportParams params, @Nullable CharSequence shareTitle,
            @Nullable CharSequence shareDescription) {
        try {
            String title = shareTitle == null ? null : shareTitle.toString();
            String description = shareDescription == null ? null : shareDescription.toString();
            ActivityManager.getService().requestBugReportWithDescription(title, description,
                    params.getMode());
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    private final class DumpstateListener extends IDumpstateListener.Stub {
        private final Executor mExecutor;
        private final BugreportCallback mCallback;