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

Commit 3115c215 authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Add PeopleSpaceWidgetMgr to dumpsys

To debug empty conversation widgets

Test: adb bugreport, review output
Bug: 261609188
Change-Id: Id4c288ccf93023bc4c7bd934f1c96a910d15fa04
parent 09ca88f9
Loading
Loading
Loading
Loading
+45 −2
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.Trace;
import android.os.UserHandle;
import android.os.UserManager;
import android.preference.PreferenceManager;
@@ -85,9 +86,11 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.UiEventLoggerImpl;
import com.android.systemui.Dumpable;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.people.NotificationHelper;
import com.android.systemui.people.PeopleBackupFollowUpJob;
import com.android.systemui.people.PeopleSpaceUtils;
@@ -99,6 +102,7 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection;
import com.android.wm.shell.bubbles.Bubbles;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -119,7 +123,8 @@ import javax.inject.Inject;

/** Manager for People Space widget. */
@SysUISingleton
public class PeopleSpaceWidgetManager {
public class PeopleSpaceWidgetManager implements Dumpable {

    private static final String TAG = "PeopleSpaceWidgetMgr";
    private static final boolean DEBUG = PeopleSpaceUtils.DEBUG;

@@ -160,7 +165,8 @@ public class PeopleSpaceWidgetManager {
            CommonNotifCollection notifCollection,
            PackageManager packageManager, Optional<Bubbles> bubblesOptional,
            UserManager userManager, NotificationManager notificationManager,
            BroadcastDispatcher broadcastDispatcher, @Background Executor bgExecutor) {
            BroadcastDispatcher broadcastDispatcher, @Background Executor bgExecutor,
            DumpManager dumpManager) {
        if (DEBUG) Log.d(TAG, "constructor");
        mContext = context;
        mAppWidgetManager = AppWidgetManager.getInstance(context);
@@ -180,6 +186,7 @@ public class PeopleSpaceWidgetManager {
        mManager = this;
        mBroadcastDispatcher = broadcastDispatcher;
        mBgExecutor = bgExecutor;
        dumpManager.registerNormalDumpable(TAG, this);
    }

    /** Initializes {@PeopleSpaceWidgetManager}. */
@@ -1364,4 +1371,40 @@ public class PeopleSpaceWidgetManager {
                .filter(id -> !TextUtils.isEmpty(id))
                .collect(Collectors.toSet());
    }

    @Override
    public void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
        Trace.traceBegin(Trace.TRACE_TAG_APP, TAG + ".dump");
        SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(mContext);
        Map<String, ?> all = sp.getAll();
        pw.println("People widget list:");
        for (Map.Entry<String, ?> entry : all.entrySet()) {
            String key = entry.getKey();
            PeopleBackupHelper.SharedFileEntryType keyType = getEntryType(entry);
            switch (keyType) {
                case WIDGET_ID:
                    SharedPreferences widgetSp = mContext.getSharedPreferences(key,
                            Context.MODE_PRIVATE);
                    pw.print("People widget (valid) [");
                    pw.print(key);
                    pw.print("] shortcut id: \"");
                    pw.print(widgetSp.getString(SHORTCUT_ID, EMPTY_STRING));
                    pw.print("\", user id: ");
                    pw.print(widgetSp.getInt(USER_ID, INVALID_USER_ID));
                    pw.print(", package: ");
                    pw.println(widgetSp.getString(PACKAGE_NAME, EMPTY_STRING));
                    break;
                case PEOPLE_TILE_KEY:
                case CONTACT_URI:
                    pw.print("Extra data [");
                    pw.print(key);
                    pw.print(" : ");
                    pw.print((Set<String>) entry.getValue());
                    pw.println("]");
                    break;
            }
        }

        Trace.traceEnd(Trace.TRACE_TAG_APP);
    }
}