diff options
author | Shishir Agrawal <shishir@google.com> | 2015-03-09 13:12:52 -0700 |
---|---|---|
committer | The Android Automerger <android-build@google.com> | 2015-04-13 20:25:51 -0700 |
commit | 97fd1e082cf37f140a3f7e9ac83ebca1efc08659 (patch) | |
tree | 14c3b6ebcfa9971aafa3b55b9d1cf77c5df93fef | |
parent | ae01da398ca7d050f8671cc3a0af40988f50fc77 (diff) | |
download | android_frameworks_opt_telephony-97fd1e082cf37f140a3f7e9ac83ebca1efc08659.tar.gz android_frameworks_opt_telephony-97fd1e082cf37f140a3f7e9ac83ebca1efc08659.tar.bz2 android_frameworks_opt_telephony-97fd1e082cf37f140a3f7e9ac83ebca1efc08659.zip |
Log last 20 CAT proactive commands.
These commands are useful for debugging issues where SIMs lock, since most
would invoke some kind of display message before locing the SIM.
Bug: 19440660
Change-Id: I5d24818e4122c875b630aead5bcc6f1f252bdd1f
4 files changed, 46 insertions, 1 deletions
diff --git a/src/java/com/android/internal/telephony/cat/CatService.java b/src/java/com/android/internal/telephony/cat/CatService.java index 1ffe08c13..ad8b4e215 100644 --- a/src/java/com/android/internal/telephony/cat/CatService.java +++ b/src/java/com/android/internal/telephony/cat/CatService.java @@ -362,6 +362,14 @@ public class CatService extends Handler implements AppInterface { private void handleCommand(CommandParams cmdParams, boolean isProactiveCmd) { CatLog.d(this, cmdParams.getCommandType().name()); + // Log all proactive commands. + if (isProactiveCmd) { + if (mUiccController != null) { + mUiccController.addCardLog("ProactiveCommand mSlotId=" + mSlotId + + " cmdParams=" + cmdParams); + } + } + CharSequence message; CatCmdMessage cmdMsg = new CatCmdMessage(cmdParams); switch (cmdParams.getCommandType()) { diff --git a/src/java/com/android/internal/telephony/cat/CommandParams.java b/src/java/com/android/internal/telephony/cat/CommandParams.java index 2f9d0fdb7..93520f789 100644 --- a/src/java/com/android/internal/telephony/cat/CommandParams.java +++ b/src/java/com/android/internal/telephony/cat/CommandParams.java @@ -57,6 +57,11 @@ class DisplayTextParams extends CommandParams { } return false; } + + @Override + public String toString() { + return "TextMessage=" + mTextMsg + " " + super.toString(); + } } class LaunchBrowserParams extends CommandParams { @@ -80,6 +85,11 @@ class LaunchBrowserParams extends CommandParams { } return false; } + + @Override + public String toString() { + return "TextMessage=" + mConfirmMsg + " " + super.toString(); + } } class SetEventListParams extends CommandParams { diff --git a/src/java/com/android/internal/telephony/cat/TextMessage.java b/src/java/com/android/internal/telephony/cat/TextMessage.java index 515f6c52b..926c927eb 100644 --- a/src/java/com/android/internal/telephony/cat/TextMessage.java +++ b/src/java/com/android/internal/telephony/cat/TextMessage.java @@ -72,4 +72,12 @@ public class TextMessage implements Parcelable { return new TextMessage[size]; } }; -}
\ No newline at end of file + + @Override + public String toString() { + return "title=" + title + " text=" + text + " icon=" + icon + + " iconSelfExplanatory=" + iconSelfExplanatory + " isHighPriority=" + + isHighPriority + " responseNeeded=" + responseNeeded + " userClear=" + + userClear + " duration=" + duration; + } +} diff --git a/src/java/com/android/internal/telephony/uicc/UiccController.java b/src/java/com/android/internal/telephony/uicc/UiccController.java index e314f826b..4f3b58b5d 100644 --- a/src/java/com/android/internal/telephony/uicc/UiccController.java +++ b/src/java/com/android/internal/telephony/uicc/UiccController.java @@ -25,6 +25,7 @@ import android.os.RegistrantList; import android.os.SystemProperties; import android.telephony.TelephonyManager; import android.telephony.Rlog; +import android.text.format.Time; import com.android.internal.telephony.CommandsInterface; import com.android.internal.telephony.PhoneConstants; @@ -32,6 +33,7 @@ import com.android.internal.telephony.SubscriptionController; import java.io.FileDescriptor; import java.io.PrintWriter; +import java.util.LinkedList; /** * This class is responsible for keeping all knowledge about @@ -98,6 +100,10 @@ public class UiccController extends Handler { protected RegistrantList mIccChangedRegistrants = new RegistrantList(); + // Logging for dumpsys. Useful in cases when the cards run into errors. + private static final int MAX_PROACTIVE_COMMANDS_TO_LOG = 20; + private LinkedList<String> mCardLogs = new LinkedList<String>(); + public static UiccController make(Context c, CommandsInterface[] ci) { synchronized (mLock) { if (mInstance != null) { @@ -340,6 +346,15 @@ public class UiccController extends Handler { Rlog.d(LOG_TAG, string); } + // TODO: This is hacky. We need a better way of saving the logs. + public void addCardLog(String data) { + Time t = new Time(); + t.setToNow(); + mCardLogs.addLast(t.format("%m-%d %H:%M:%S") + " " + data); + if (mCardLogs.size() > MAX_PROACTIVE_COMMANDS_TO_LOG) { + mCardLogs.removeFirst(); + } + } public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println("UiccController: " + this); @@ -361,5 +376,9 @@ public class UiccController extends Handler { mUiccCards[i].dump(fd, pw, args); } } + pw.println("mCardLogs: "); + for (int i = 0; i < mCardLogs.size(); ++i) { + pw.println(" " + mCardLogs.get(i)); + } } } |