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

Commit 07dba930 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "profcollect: attempt to upload reports if BetterBug is available" am:...

Merge "profcollect: attempt to upload reports if BetterBug is available" am: c01d2f42 am: a21c2bc3 am: c8fc6f2a

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1689209

Change-Id: Iecec4d0df333caf07a209e4f0c3ea3e8bdd07341
parents ba2767ef c8fc6f2a
Loading
Loading
Loading
Loading
+19 −13
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.app.job.JobService;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.os.Handler;
import android.os.IBinder.DeathRecipient;
import android.os.Looper;
@@ -42,6 +43,9 @@ import com.android.server.wm.ActivityMetricsLaunchObserver;
import com.android.server.wm.ActivityMetricsLaunchObserverRegistry;
import com.android.server.wm.ActivityTaskManagerInternal;

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.TimeUnit;

@@ -297,24 +301,20 @@ public final class ProfcollectForwardingService extends SystemService {
            return;
        }

        final boolean uploadReport =
                DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PROFCOLLECT_NATIVE_BOOT,
                                        "upload_report", false);

        new Thread(() -> {
            try {
                String reportUuid = mIProfcollect.report();

                if (!uploadReport) {
                final int profileId = getBBProfileId();
                String reportDir = "/data/user/" + profileId
                        + "/com.google.android.apps.internal.betterbug/cache/";
                String reportPath = reportDir + reportUuid + ".zip";

                if (!Files.exists(Paths.get(reportDir))) {
                    Log.i(LOG_TAG, "Destination directory does not exist, abort upload.");
                    return;
                }

                final int profileId = getBBProfileId();
                mIProfcollect.copy_report_to_bb(profileId, reportUuid);
                String reportPath =
                        "/data/user/" + profileId
                        + "/com.google.android.apps.internal.betterbug/cache/"
                        + reportUuid + ".zip";
                Intent uploadIntent =
                        new Intent("com.google.android.apps.betterbug.intent.action.UPLOAD_PROFILE")
                        .setPackage("com.google.android.apps.internal.betterbug")
@@ -323,9 +323,15 @@ public final class ProfcollectForwardingService extends SystemService {
                        .putExtra("EXTRA_PROFILE_PATH", reportPath)
                        .addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
                Context context = getContext();
                if (context.getPackageManager().queryBroadcastReceivers(uploadIntent, 0) != null) {
                    context.sendBroadcast(uploadIntent);

                List<ResolveInfo> receivers =
                        context.getPackageManager().queryBroadcastReceivers(uploadIntent, 0);
                if (receivers == null || receivers.isEmpty()) {
                    Log.i(LOG_TAG, "No one to receive upload intent, abort upload.");
                    return;
                }
                mIProfcollect.copy_report_to_bb(profileId, reportUuid);
                context.sendBroadcast(uploadIntent);
                mIProfcollect.delete_report(reportUuid);
            } catch (RemoteException e) {
                Log.e(LOG_TAG, e.getMessage());