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

Commit 5b15f9bb authored by Winson's avatar Winson
Browse files

Fixing crash when dumping secondary SystemUI user service.

- Secondary user’s SystemUI process is initialized with 
  SERVICES_PER_USER, which is a strict subset of SERVICES, but mServices
  is a fixed size array that does not change, so we need to add a null
  check when iterating through the current list of services for the 
  non-primary user.

Bug: 28153575
Change-Id: I0a6b4726e82f2efddda358a835b1ef3d9f165375
parent ce9630da
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -16,11 +16,9 @@

package com.android.systemui;

import android.app.ActivityManager;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.Process;

import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -43,12 +41,15 @@ public class SystemUISecondaryUserService extends Service {
        SystemUI[] services = ((SystemUIApplication) getApplication()).getServices();
        if (args == null || args.length == 0) {
            for (SystemUI ui: services) {
                if (ui != null) {
                    pw.println("dumping service: " + ui.getClass().getName());
                    ui.dump(fd, pw, args);
                }
            }
        } else {
            String svc = args[0];
            for (SystemUI ui: services) {
                if (ui != null) {
                    String name = ui.getClass().getName();
                    if (name.endsWith(svc)) {
                        ui.dump(fd, pw, args);
@@ -57,4 +58,5 @@ public class SystemUISecondaryUserService extends Service {
            }
        }
    }
}