summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/demomode/DemoMode.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/demomode/DemoModeController.kt22
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java14
3 files changed, 29 insertions, 16 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/demomode/DemoMode.java b/packages/SystemUI/src/com/android/systemui/demomode/DemoMode.java
index 672ade2655a3..30211843ad63 100644
--- a/packages/SystemUI/src/com/android/systemui/demomode/DemoMode.java
+++ b/packages/SystemUI/src/com/android/systemui/demomode/DemoMode.java
@@ -37,6 +37,15 @@ public interface DemoMode extends DemoModeCommandReceiver {
return NO_COMMANDS;
}
+ /** Something simple enough to be recognizable in dumpsys logs */
+ default String logName() {
+ if (this.getClass().isAnonymousClass()) {
+ return getClass().getName();
+ } else {
+ return getClass().getSimpleName();
+ }
+ }
+
String ACTION_DEMO = "com.android.systemui.demo";
String EXTRA_COMMAND = "command";
diff --git a/packages/SystemUI/src/com/android/systemui/demomode/DemoModeController.kt b/packages/SystemUI/src/com/android/systemui/demomode/DemoModeController.kt
index 45ff963c2a9f..f03aa63a7abb 100644
--- a/packages/SystemUI/src/com/android/systemui/demomode/DemoModeController.kt
+++ b/packages/SystemUI/src/com/android/systemui/demomode/DemoModeController.kt
@@ -25,12 +25,12 @@ import android.os.UserHandle
import android.util.Log
import com.android.systemui.Dumpable
import com.android.systemui.broadcast.BroadcastDispatcher
-import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow
import com.android.systemui.demomode.DemoMode.ACTION_DEMO
import com.android.systemui.dump.DumpManager
import com.android.systemui.statusbar.policy.CallbackController
import com.android.systemui.util.Assert
import com.android.systemui.util.settings.GlobalSettings
+import com.android.systemui.utils.coroutines.flow.conflatedCallbackFlow
import java.io.PrintWriter
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
@@ -209,20 +209,18 @@ constructor(
pw.println("DemoModeController state -")
pw.println(" isInDemoMode=$isInDemoMode")
pw.println(" isDemoModeAllowed=$isAvailable")
- pw.print(" receivers=[")
- val copy: List<DemoModeCommandReceiver>
+ val copy: List<DemoMode>
synchronized(this) { copy = receivers.toList() }
- copy.forEach { recv -> pw.print(" ${recv.javaClass.simpleName}") }
- pw.println(" ]")
+
+ // List of all receivers
+ pw.println(" receivers=[${copy.joinToString(", ") { it.logName() }}]")
+
+ // Print out the map of COMMAND -> list of receivers for that command
pw.println(" receiverMap= [")
- receiverMap.keys.forEach { command ->
- pw.print(" $command : [")
- val recvs =
- receiverMap[command]!!
- .map { receiver -> receiver.javaClass.simpleName }
- .joinToString(",")
- pw.println("$recvs ]")
+ receiverMap.entries.forEach { (comm, recv) ->
+ pw.println(" $comm : [${recv.joinToString(", ") {it.logName()}}]")
}
+ pw.println(" ]")
}
private val tracker =
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 724b19c891aa..e3c47a43aad4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java
@@ -83,6 +83,10 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceP
import com.android.systemui.telephony.TelephonyListenerManager;
import com.android.systemui.util.CarrierConfigTracker;
+import dalvik.annotation.optimization.NeverCompile;
+
+import kotlin.Unit;
+
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -97,9 +101,6 @@ import java.util.stream.Collectors;
import javax.inject.Inject;
-import dalvik.annotation.optimization.NeverCompile;
-import kotlin.Unit;
-
/** Platform implementation of the network controller. **/
@SysUISingleton
public class NetworkControllerImpl extends BroadcastReceiver
@@ -464,7 +465,10 @@ public class NetworkControllerImpl extends BroadcastReceiver
});
};
- mDemoModeController.addCallback(this);
+ // TODO(b/336357360): Until we can remove this class entirely, disable its handling of ALL
+ // demo mode commands, due to the fact that the mobile command handler has an infinite
+ // loop bug if you use any slot other than 1.
+ // mDemoModeController.addCallback(this);
mDumpManager.registerNormalDumpable(TAG, this);
}
@@ -1317,6 +1321,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
int carrierId = TextUtils.isEmpty(carrierIdString) ? 0
: Integer.parseInt(carrierIdString);
// Ensure we have enough sim slots
+ // TODO(b/336357360): This is the origination of the infinite loop bug, for those
+ // following along at home.
List<SubscriptionInfo> subs = new ArrayList<>();
while (mMobileSignalControllers.size() <= slot) {
int nextSlot = mMobileSignalControllers.size();