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

Commit 7fb10e27 authored by Songchun Fan's avatar Songchun Fan Committed by Song Chun Fan
Browse files

[archive] more logging for icon files debugging

+ Also fix the dumpsys format

BUG: 324422097
Test: builds

Change-Id: Ic7257971e2a80462dbc2504c4c1f8128969e2867
parent 6f1ba5d1
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.util.Slog;

import com.android.internal.util.DataClass;

@@ -39,6 +40,7 @@ import java.util.Objects;
@DataClass(genBuilder = false, genConstructor = false, genSetters = true)
@FlaggedApi(Flags.FLAG_ARCHIVING)
public final class ArchivedActivityInfo {
    private static final String TAG = "ArchivedActivityInfo";
    /** The label for the activity. */
    private @NonNull CharSequence mLabel;
    /** The component name of this activity. */
@@ -138,7 +140,8 @@ public final class ArchivedActivityInfo {
                bitmap.getByteCount())) {
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
            return baos.toByteArray();
        } catch (IOException ignored) {
        } catch (IOException e) {
            Slog.e(TAG, "Failed to compress bitmap", e);
            return null;
        }
    }
@@ -240,10 +243,10 @@ public final class ArchivedActivityInfo {
    }

    @DataClass.Generated(
            time = 1705615445673L,
            time = 1708042076897L,
            codegenVersion = "1.0.23",
            sourceFile = "frameworks/base/core/java/android/content/pm/ArchivedActivityInfo.java",
            inputSignatures = "private @android.annotation.NonNull java.lang.CharSequence mLabel\nprivate @android.annotation.NonNull android.content.ComponentName mComponentName\nprivate @android.annotation.Nullable android.graphics.drawable.Drawable mIcon\nprivate @android.annotation.Nullable android.graphics.drawable.Drawable mMonochromeIcon\n @android.annotation.NonNull android.content.pm.ArchivedActivityParcel getParcel()\npublic static  android.graphics.Bitmap drawableToBitmap(android.graphics.drawable.Drawable)\npublic static  android.graphics.Bitmap drawableToBitmap(android.graphics.drawable.Drawable,int)\npublic static  byte[] bytesFromBitmap(android.graphics.Bitmap)\nprivate static  android.graphics.drawable.Drawable drawableFromCompressedBitmap(byte[])\nclass ArchivedActivityInfo extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genBuilder=false, genConstructor=false, genSetters=true)")
            inputSignatures = "private static final  java.lang.String TAG\nprivate @android.annotation.NonNull java.lang.CharSequence mLabel\nprivate @android.annotation.NonNull android.content.ComponentName mComponentName\nprivate @android.annotation.Nullable android.graphics.drawable.Drawable mIcon\nprivate @android.annotation.Nullable android.graphics.drawable.Drawable mMonochromeIcon\n @android.annotation.NonNull android.content.pm.ArchivedActivityParcel getParcel()\npublic static  android.graphics.Bitmap drawableToBitmap(android.graphics.drawable.Drawable)\npublic static  android.graphics.Bitmap drawableToBitmap(android.graphics.drawable.Drawable,int)\npublic static  byte[] bytesFromBitmap(android.graphics.Bitmap)\nprivate static  android.graphics.drawable.Drawable drawableFromCompressedBitmap(byte[])\nclass ArchivedActivityInfo extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genBuilder=false, genConstructor=false, genSetters=true)")
    @Deprecated
    private void __metadata() {}

+11 −0
Original line number Diff line number Diff line
@@ -122,6 +122,7 @@ import java.util.concurrent.CompletableFuture;
public class PackageArchiver {

    private static final String TAG = "PackageArchiverService";
    private static final boolean DEBUG = true;

    public static final String EXTRA_UNARCHIVE_INTENT_SENDER =
            "android.content.pm.extra.UNARCHIVE_INTENT_SENDER";
@@ -362,6 +363,10 @@ public class PackageArchiver {
                    // TODO(b/319238030) Move this into installd.
                    if (!FileUtils.deleteContentsAndDir(iconsDir)) {
                        Slog.e(TAG, "Failed to clean up archive files for " + packageName);
                    } else {
                        if (DEBUG) {
                            Slog.e(TAG, "Deleted icons at " + iconsDir.getAbsolutePath());
                        }
                    }
                });
    }
@@ -524,6 +529,9 @@ public class PackageArchiver {
            }
            out.flush();
        }
        if (DEBUG && iconFile.exists()) {
            Slog.i(TAG, "Stored icon at " + iconFile.getAbsolutePath());
        }
        return iconFile.toPath();
    }

@@ -1194,6 +1202,9 @@ public class PackageArchiver {
            if (!iconsDir.isDirectory()) {
                throw new IOException("Unable to create directory " + iconsDir);
            }
            if (DEBUG) {
                Slog.i(TAG, "Created icons directory at " + iconsDir.getAbsolutePath());
            }
        }
        SELinux.restorecon(iconsDir);
        return iconsDir;
+8 −5
Original line number Diff line number Diff line
@@ -5358,9 +5358,16 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
            pw.println(sdf.format(date));

            if (pus.getArchiveState() != null) {
                final ArchiveState archiveState = pus.getArchiveState();
                pw.print("      archiveTime=");
                date.setTime(pus.getArchiveState().getArchiveTimeMillis());
                date.setTime(archiveState.getArchiveTimeMillis());
                pw.println(sdf.format(date));
                pw.print("      unarchiveInstallerTitle=");
                pw.println(archiveState.getInstallerTitle());
                for (ArchiveState.ArchiveActivityInfo activity : archiveState.getActivityInfos()) {
                    pw.print("        archiveActivityInfo=");
                    pw.println(activity.toString());
                }
            }

            pw.print("      uninstallReason=");
@@ -5475,10 +5482,6 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
                    }
                }
            }
            ArchiveState archiveState = userState.getArchiveState();
            if (archiveState != null) {
                pw.print(archiveState.toString());
            }
        }
    }