Add more dump logs for debugging purpose
This Cl adds the below dump logs 1. The last 64 MobileStatus Changes in MobileStatusTracker 2. The last 64 Default NetworkCapabilities changes 3. The last 64 SignalCallbacks in CallbackHandler Bug: 176428921 Test: Manual Test Change-Id: Ibff88fab0806f0851424cd1e7311efca94752d5c
This commit is contained in:
@@ -259,7 +259,12 @@ public class MobileStatusTracker {
|
||||
.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode).append(',')
|
||||
.append("dataState=").append(dataState).append(',')
|
||||
.append("serviceState=").append(serviceState == null ? ""
|
||||
: serviceState.toString()).append(',')
|
||||
: "mVoiceRegState=" + serviceState.getState() + "("
|
||||
+ ServiceState.rilServiceStateToString(serviceState.getState())
|
||||
+ ")" + ", mDataRegState=" + serviceState.getDataRegState() + "("
|
||||
+ ServiceState.rilServiceStateToString(
|
||||
serviceState.getDataRegState()) + ")")
|
||||
.append(',')
|
||||
.append("signalStrength=").append(signalStrength == null ? ""
|
||||
: signalStrength.toString()).append(',')
|
||||
.append("telephonyDisplayInfo=").append(telephonyDisplayInfo == null ? ""
|
||||
|
||||
@@ -25,6 +25,8 @@ import com.android.systemui.statusbar.policy.NetworkController.EmergencyListener
|
||||
import com.android.systemui.statusbar.policy.NetworkController.IconState;
|
||||
import com.android.systemui.statusbar.policy.NetworkController.SignalCallback;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -42,11 +44,18 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa
|
||||
private static final int MSG_MOBILE_DATA_ENABLED_CHANGED = 5;
|
||||
private static final int MSG_ADD_REMOVE_EMERGENCY = 6;
|
||||
private static final int MSG_ADD_REMOVE_SIGNAL = 7;
|
||||
private static final int HISTORY_SIZE = 64;
|
||||
private static final SimpleDateFormat SSDF = new SimpleDateFormat("MM-dd HH:mm:ss.SSS");
|
||||
|
||||
// All the callbacks.
|
||||
private final ArrayList<EmergencyListener> mEmergencyListeners = new ArrayList<>();
|
||||
private final ArrayList<SignalCallback> mSignalCallbacks = new ArrayList<>();
|
||||
|
||||
// Save the previous HISTORY_SIZE states for logging.
|
||||
private final String[] mHistory = new String[HISTORY_SIZE];
|
||||
// Where to copy the next state into.
|
||||
private int mHistoryIndex;
|
||||
|
||||
public CallbackHandler() {
|
||||
super(Looper.getMainLooper());
|
||||
}
|
||||
@@ -111,12 +120,27 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa
|
||||
public void setWifiIndicators(final boolean enabled, final IconState statusIcon,
|
||||
final IconState qsIcon, final boolean activityIn, final boolean activityOut,
|
||||
final String description, boolean isTransient, String secondaryLabel) {
|
||||
String log = new StringBuilder()
|
||||
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
||||
.append("setWifiIndicators: ")
|
||||
.append("enabled=").append(enabled).append(",")
|
||||
.append("statusIcon=").append(statusIcon).append(",")
|
||||
.append("qsIcon=").append(qsIcon).append(",")
|
||||
.append("activityIn=").append(activityIn).append(",")
|
||||
.append("activityOut=").append(activityOut).append(",")
|
||||
.append("description=").append(description).append(",")
|
||||
.append("isTransient=").append(isTransient).append(",")
|
||||
.append("secondaryLabel=").append(secondaryLabel)
|
||||
.toString();
|
||||
recordLastCallback(log);
|
||||
post(() -> {
|
||||
for (SignalCallback callback : mSignalCallbacks) {
|
||||
callback.setWifiIndicators(enabled, statusIcon, qsIcon, activityIn, activityOut,
|
||||
description, isTransient, secondaryLabel);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -125,6 +149,25 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa
|
||||
final boolean activityOut, final CharSequence typeContentDescription,
|
||||
CharSequence typeContentDescriptionHtml, final CharSequence description,
|
||||
final boolean isWide, final int subId, boolean roaming, boolean showTriangle) {
|
||||
String log = new StringBuilder()
|
||||
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
||||
.append("setMobileDataIndicators: ")
|
||||
.append("statusIcon=").append(statusIcon).append(",")
|
||||
.append("qsIcon=").append(qsIcon).append(",")
|
||||
.append("statusType=").append(statusType).append(",")
|
||||
.append("qsType=").append(qsType).append(",")
|
||||
.append("activityIn=").append(activityIn).append(",")
|
||||
.append("activityOut=").append(activityOut).append(",")
|
||||
.append("typeContentDescription=").append(typeContentDescription).append(",")
|
||||
.append("typeContentDescriptionHtml=").append(typeContentDescriptionHtml)
|
||||
.append(",")
|
||||
.append("description=").append(description).append(",")
|
||||
.append("isWide=").append(isWide).append(",")
|
||||
.append("subId=").append(subId).append(",")
|
||||
.append("roaming=").append(roaming).append(",")
|
||||
.append("showTriangle=").append(showTriangle)
|
||||
.toString();
|
||||
recordLastCallback(log);
|
||||
post(() -> {
|
||||
for (SignalCallback signalCluster : mSignalCallbacks) {
|
||||
signalCluster.setMobileDataIndicators(statusIcon, qsIcon, statusType, qsType,
|
||||
@@ -138,6 +181,14 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa
|
||||
@Override
|
||||
public void setConnectivityStatus(boolean noDefaultNetwork, boolean noValidatedNetwork,
|
||||
boolean noNetworksAvailable) {
|
||||
String log = new StringBuilder()
|
||||
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
||||
.append("setConnectivityStatus: ")
|
||||
.append("noDefaultNetwork=").append(noDefaultNetwork).append(",")
|
||||
.append("noValidatedNetwork=").append(noValidatedNetwork).append(",")
|
||||
.append("noNetworksAvailable=").append(noNetworksAvailable)
|
||||
.toString();
|
||||
recordLastCallback(log);
|
||||
post(() -> {
|
||||
for (SignalCallback signalCluster : mSignalCallbacks) {
|
||||
signalCluster.setConnectivityStatus(
|
||||
@@ -148,6 +199,13 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa
|
||||
|
||||
@Override
|
||||
public void setNoCallingStatus(boolean noCalling, int subId) {
|
||||
String log = new StringBuilder()
|
||||
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
||||
.append("setNoCallingStatus: ")
|
||||
.append("noCalling=").append(noCalling).append(",")
|
||||
.append("subId=").append(subId)
|
||||
.toString();
|
||||
recordLastCallback(log);
|
||||
post(() -> {
|
||||
for (SignalCallback signalCluster : mSignalCallbacks) {
|
||||
signalCluster.setNoCallingStatus(noCalling, subId);
|
||||
@@ -157,16 +215,35 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa
|
||||
|
||||
@Override
|
||||
public void setSubs(List<SubscriptionInfo> subs) {
|
||||
String log = new StringBuilder()
|
||||
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
||||
.append("setSubs: ")
|
||||
.append("subs=").append(subs == null ? "" : subs.toString())
|
||||
.toString();
|
||||
recordLastCallback(log);
|
||||
obtainMessage(MSG_SUBS_CHANGED, subs).sendToTarget();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNoSims(boolean show, boolean simDetected) {
|
||||
String log = new StringBuilder()
|
||||
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
||||
.append("setNoSims: ")
|
||||
.append("show=").append(show).append(",")
|
||||
.append("simDetected=").append(simDetected)
|
||||
.toString();
|
||||
recordLastCallback(log);
|
||||
obtainMessage(MSG_NO_SIM_VISIBLE_CHANGED, show ? 1 : 0, simDetected ? 1 : 0).sendToTarget();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMobileDataEnabled(boolean enabled) {
|
||||
String log = new StringBuilder()
|
||||
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
||||
.append("setMobileDataEnabled: ")
|
||||
.append("enabled=").append(enabled)
|
||||
.toString();
|
||||
recordLastCallback(log);
|
||||
obtainMessage(MSG_MOBILE_DATA_ENABLED_CHANGED, enabled ? 1 : 0, 0).sendToTarget();
|
||||
}
|
||||
|
||||
@@ -177,11 +254,23 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa
|
||||
|
||||
@Override
|
||||
public void setEthernetIndicators(IconState icon) {
|
||||
String log = new StringBuilder()
|
||||
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
||||
.append("setEthernetIndicators: ")
|
||||
.append("icon=").append(icon)
|
||||
.toString();
|
||||
recordLastCallback(log);
|
||||
obtainMessage(MSG_ETHERNET_CHANGED, icon).sendToTarget();;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setIsAirplaneMode(IconState icon) {
|
||||
String log = new StringBuilder()
|
||||
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
||||
.append("setIsAirplaneMode: ")
|
||||
.append("icon=").append(icon)
|
||||
.toString();
|
||||
recordLastCallback(log);
|
||||
obtainMessage(MSG_AIRPLANE_MODE_CHANGED, icon).sendToTarget();;
|
||||
}
|
||||
|
||||
@@ -193,4 +282,25 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa
|
||||
obtainMessage(MSG_ADD_REMOVE_SIGNAL, listening ? 1 : 0, 0, listener).sendToTarget();
|
||||
}
|
||||
|
||||
protected void recordLastCallback(String callback) {
|
||||
mHistory[mHistoryIndex++ & (HISTORY_SIZE - 1)] = callback;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dump the Callback logs
|
||||
*/
|
||||
public void dump(PrintWriter pw) {
|
||||
pw.println(" - CallbackHandler -----");
|
||||
int size = 0;
|
||||
for (int i = 0; i < HISTORY_SIZE; i++) {
|
||||
if (mHistory[i] != null) size++;
|
||||
}
|
||||
// Print out the previous states in ordered number.
|
||||
for (int i = mHistoryIndex + HISTORY_SIZE - 1;
|
||||
i >= mHistoryIndex + HISTORY_SIZE - size; i--) {
|
||||
pw.println(" Previous Callback(" + (mHistoryIndex + HISTORY_SIZE - i) + "): "
|
||||
+ mHistory[i & (HISTORY_SIZE - 1)]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ import com.android.settingslib.Utils;
|
||||
import com.android.settingslib.graph.SignalDrawable;
|
||||
import com.android.settingslib.mobile.MobileMappings.Config;
|
||||
import com.android.settingslib.mobile.MobileStatusTracker;
|
||||
import com.android.settingslib.mobile.MobileStatusTracker.MobileStatus;
|
||||
import com.android.settingslib.mobile.MobileStatusTracker.SubscriptionDefaults;
|
||||
import com.android.settingslib.mobile.TelephonyIcons;
|
||||
import com.android.settingslib.net.SignalStrengthUtil;
|
||||
@@ -54,6 +55,7 @@ import com.android.systemui.statusbar.policy.NetworkController.IconState;
|
||||
import com.android.systemui.statusbar.policy.NetworkController.SignalCallback;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.BitSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -62,6 +64,8 @@ import java.util.Map;
|
||||
* Monitors the mobile signal changes and update the SysUI icons.
|
||||
*/
|
||||
public class MobileSignalController extends SignalController<MobileState, MobileIconGroup> {
|
||||
private static final SimpleDateFormat SSDF = new SimpleDateFormat("MM-dd HH:mm:ss.SSS");
|
||||
|
||||
private final TelephonyManager mPhone;
|
||||
private final SubscriptionDefaults mDefaults;
|
||||
private final String mNetworkNameDefault;
|
||||
@@ -90,6 +94,11 @@ public class MobileSignalController extends SignalController<MobileState, Mobile
|
||||
@VisibleForTesting
|
||||
MobileStatusTracker mMobileStatusTracker;
|
||||
|
||||
// Save the previous HISTORY_SIZE states for logging.
|
||||
private final String[] mMobileStatusHistory = new String[HISTORY_SIZE];
|
||||
// Where to copy the next state into.
|
||||
private int mMobileStatusHistoryIndex;
|
||||
|
||||
// TODO: Reduce number of vars passed in, if we have the NetworkController, probably don't
|
||||
// need listener lists anymore.
|
||||
public MobileSignalController(Context context, Config config, boolean hasMobileData,
|
||||
@@ -126,12 +135,17 @@ public class MobileSignalController extends SignalController<MobileState, Mobile
|
||||
mCallback = new MobileStatusTracker.Callback() {
|
||||
@Override
|
||||
public void onMobileStatusChanged(boolean updateTelephony,
|
||||
MobileStatusTracker.MobileStatus mobileStatus) {
|
||||
MobileStatus mobileStatus) {
|
||||
if (Log.isLoggable(mTag, Log.DEBUG)) {
|
||||
Log.d(mTag, "onMobileStatusChanged="
|
||||
+ " updateTelephony=" + updateTelephony
|
||||
+ " mobileStatus=" + mobileStatus.toString());
|
||||
}
|
||||
String status = new StringBuilder()
|
||||
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
||||
.append(mobileStatus.toString())
|
||||
.toString();
|
||||
recordLastMobileStatus(status);
|
||||
updateMobileStatus(mobileStatus);
|
||||
if (updateTelephony) {
|
||||
updateTelephony();
|
||||
@@ -455,7 +469,7 @@ public class MobileSignalController extends SignalController<MobileState, Mobile
|
||||
return CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
|
||||
}
|
||||
|
||||
private void updateMobileStatus(MobileStatusTracker.MobileStatus mobileStatus) {
|
||||
private void updateMobileStatus(MobileStatus mobileStatus) {
|
||||
mCurrentState.activityIn = mobileStatus.activityIn;
|
||||
mCurrentState.activityOut = mobileStatus.activityOut;
|
||||
mCurrentState.dataSim = mobileStatus.dataSim;
|
||||
@@ -570,6 +584,10 @@ public class MobileSignalController extends SignalController<MobileState, Mobile
|
||||
notifyListenersIfNecessary();
|
||||
}
|
||||
|
||||
private void recordLastMobileStatus(String mobileStatus) {
|
||||
mMobileStatusHistory[mMobileStatusHistoryIndex++ & (HISTORY_SIZE - 1)] = mobileStatus;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dump(PrintWriter pw) {
|
||||
super.dump(pw);
|
||||
@@ -580,5 +598,17 @@ public class MobileSignalController extends SignalController<MobileState, Mobile
|
||||
pw.println(" mDataState=" + mDataState + ",");
|
||||
pw.println(" mInflateSignalStrengths=" + mInflateSignalStrengths + ",");
|
||||
pw.println(" isDataDisabled=" + isDataDisabled() + ",");
|
||||
pw.println(" MobileStatusHistory");
|
||||
int size = 0;
|
||||
for (int i = 0; i < HISTORY_SIZE; i++) {
|
||||
if (mMobileStatusHistory[i] != null) size++;
|
||||
}
|
||||
// Print out the previous states in ordered number.
|
||||
for (int i = mMobileStatusHistoryIndex + HISTORY_SIZE - 1;
|
||||
i >= mMobileStatusHistoryIndex + HISTORY_SIZE - size; i--) {
|
||||
pw.println(" Previous MobileStatus("
|
||||
+ (mMobileStatusHistoryIndex + HISTORY_SIZE - i) + "): "
|
||||
+ mMobileStatusHistory[i & (HISTORY_SIZE - 1)]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,6 +76,7 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceP
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.BitSet;
|
||||
import java.util.Collections;
|
||||
@@ -100,6 +101,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
||||
private static final int EMERGENCY_VOICE_CONTROLLER = 200;
|
||||
private static final int EMERGENCY_NO_SUB = 300;
|
||||
private static final int EMERGENCY_ASSUMED_VOICE_CONTROLLER = 400;
|
||||
private static final int HISTORY_SIZE = 16;
|
||||
private static final SimpleDateFormat SSDF = new SimpleDateFormat("MM-dd HH:mm:ss.SSS");
|
||||
|
||||
private final Context mContext;
|
||||
private final TelephonyManager mPhone;
|
||||
@@ -150,6 +153,11 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
||||
// This list holds our ordering.
|
||||
private List<SubscriptionInfo> mCurrentSubscriptions = new ArrayList<>();
|
||||
|
||||
// Save the previous HISTORY_SIZE states for logging.
|
||||
private final String[] mHistory = new String[HISTORY_SIZE];
|
||||
// Where to copy the next state into.
|
||||
private int mHistoryIndex;
|
||||
|
||||
@VisibleForTesting
|
||||
boolean mListening;
|
||||
|
||||
@@ -307,6 +315,12 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
||||
public void onLost(Network network) {
|
||||
mLastNetwork = null;
|
||||
mLastNetworkCapabilities = null;
|
||||
String callback = new StringBuilder()
|
||||
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
||||
.append("onLost: ")
|
||||
.append("network=").append(network)
|
||||
.toString();
|
||||
recordLastNetworkCallback(callback);
|
||||
updateConnectivity();
|
||||
}
|
||||
|
||||
@@ -327,6 +341,13 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
||||
}
|
||||
mLastNetwork = network;
|
||||
mLastNetworkCapabilities = networkCapabilities;
|
||||
String callback = new StringBuilder()
|
||||
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
||||
.append("onCapabilitiesChanged: ")
|
||||
.append("network=").append(network).append(",")
|
||||
.append("networkCapabilities=").append(networkCapabilities)
|
||||
.toString();
|
||||
recordLastNetworkCallback(callback);
|
||||
updateConnectivity();
|
||||
}
|
||||
};
|
||||
@@ -996,6 +1017,19 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
||||
pw.print(" mEmergencySource=");
|
||||
pw.println(emergencyToString(mEmergencySource));
|
||||
|
||||
pw.println(" - DefaultNetworkCallback -----");
|
||||
int size = 0;
|
||||
for (int i = 0; i < HISTORY_SIZE; i++) {
|
||||
if (mHistory[i] != null) {
|
||||
size++;
|
||||
}
|
||||
}
|
||||
for (int i = mHistoryIndex + HISTORY_SIZE - 1;
|
||||
i >= mHistoryIndex + HISTORY_SIZE - size; i--) {
|
||||
pw.println(" Previous NetworkCallback(" + (mHistoryIndex + HISTORY_SIZE - i) + "): "
|
||||
+ mHistory[i & (HISTORY_SIZE - 1)]);
|
||||
}
|
||||
|
||||
pw.println(" - config ------");
|
||||
for (int i = 0; i < mMobileSignalControllers.size(); i++) {
|
||||
MobileSignalController mobileSignalController = mMobileSignalControllers.valueAt(i);
|
||||
@@ -1006,6 +1040,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
||||
mEthernetSignalController.dump(pw);
|
||||
|
||||
mAccessPoints.dump(pw);
|
||||
|
||||
mCallbackHandler.dump(pw);
|
||||
}
|
||||
|
||||
private static final String emergencyToString(int emergencySource) {
|
||||
@@ -1235,6 +1271,10 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
||||
return s;
|
||||
}
|
||||
|
||||
private void recordLastNetworkCallback(String callback) {
|
||||
mHistory[mHistoryIndex++ & (HISTORY_SIZE - 1)] = callback;
|
||||
}
|
||||
|
||||
private SubscriptionInfo addSignalController(int id, int simSlotIndex) {
|
||||
SubscriptionInfo info = new SubscriptionInfo(id, "", simSlotIndex, "", "", 0, 0, "", 0,
|
||||
null, null, null, "", false, null, null);
|
||||
|
||||
Reference in New Issue
Block a user