summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/CoreStartable.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/SystemUIApplication.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java7
4 files changed, 22 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/CoreStartable.java b/packages/SystemUI/src/com/android/systemui/CoreStartable.java
index becf5b39e9df..c07a4d26f476 100644
--- a/packages/SystemUI/src/com/android/systemui/CoreStartable.java
+++ b/packages/SystemUI/src/com/android/systemui/CoreStartable.java
@@ -53,6 +53,11 @@ public interface CoreStartable extends Dumpable {
default void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
}
+ /** Called to determine if the dumpable should be registered as critical or normal priority */
+ default boolean isDumpCritical() {
+ return true;
+ }
+
/** Called immediately after the system broadcasts
* {@link android.content.Intent#ACTION_LOCKED_BOOT_COMPLETED} or during SysUI startup if the
* property {@code sys.boot_completed} is already set to 1. The latter typically occurs when
diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
index 453d1d117d0d..e8458e72fd9e 100644
--- a/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
+++ b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
@@ -254,11 +254,16 @@ public class SystemUIApplication extends Application implements
}
for (i = 0; i < mServices.length; i++) {
+ CoreStartable service = mServices[i];
if (mBootCompleteCache.isBootComplete()) {
- notifyBootCompleted(mServices[i]);
+ notifyBootCompleted(service);
}
- dumpManager.registerDumpable(mServices[i].getClass().getName(), mServices[i]);
+ if (service.isDumpCritical()) {
+ dumpManager.registerCriticalDumpable(service.getClass().getName(), service);
+ } else {
+ dumpManager.registerNormalDumpable(service.getClass().getName(), service);
+ }
}
mSysUIComponent.getInitController().executePostInitTasks();
log.traceEnd();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java
index 93b9ac61ebec..f381b3792f68 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java
@@ -83,8 +83,6 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceP
import com.android.systemui.telephony.TelephonyListenerManager;
import com.android.systemui.util.CarrierConfigTracker;
-import kotlin.Unit;
-
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -99,6 +97,8 @@ import java.util.stream.Collectors;
import javax.inject.Inject;
+import kotlin.Unit;
+
/** Platform implementation of the network controller. **/
@SysUISingleton
public class NetworkControllerImpl extends BroadcastReceiver
@@ -465,7 +465,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
mDemoModeController.addCallback(this);
- mDumpManager.registerDumpable(TAG, this);
+ mDumpManager.registerNormalDumpable(TAG, this);
}
private final Runnable mClearForceValidated = () -> {
diff --git a/packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java b/packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java
index 943e906a1ebc..6fafcd51bd50 100644
--- a/packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java
+++ b/packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java
@@ -352,6 +352,13 @@ public final class WMShell implements
}
@Override
+ public boolean isDumpCritical() {
+ // Dump can't be critical because the shell has to dump on the main thread for
+ // synchronization reasons, which isn't reliably fast.
+ return false;
+ }
+
+ @Override
public void dump(PrintWriter pw, String[] args) {
// Handle commands if provided
if (mShell.handleCommand(args, pw)) {