Merge "Add more dump logs for debugging purpose" into sc-dev
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