Add dumpsys handler for telephony
Overriding dump() in the binder is required to make "dumpsys phone"
work. Currently only visual voicemail local log is dumped.
Bug: 29517754
Change-Id: I01f655940ca55915c0af1ff45a586a19f59ab5ef
diff --git a/src/com/android/phone/DumpsysHandler.java b/src/com/android/phone/DumpsysHandler.java
new file mode 100644
index 0000000..cf3bde2
--- /dev/null
+++ b/src/com/android/phone/DumpsysHandler.java
@@ -0,0 +1,18 @@
+
+package com.android.phone;
+
+import com.android.phone.vvm.omtp.LocalLogHelper;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+
+/**
+ * Handles "adb shell dumpsys phone" and bug report dump.
+ */
+public class DumpsysHandler {
+
+ public static void dump(FileDescriptor fd, final PrintWriter writer, String[] args) {
+ // Dump OMTP visual voicemail log.
+ LocalLogHelper.dump(fd, writer, args);
+ }
+}
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 2ace8e1..ecefe24 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -85,6 +85,8 @@
import com.android.internal.util.HexDump;
import com.android.phone.settings.VoicemailNotificationSettingsUtil;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -3289,4 +3291,12 @@
}
}
+ /**
+ * Called when "adb shell dumpsys phone" is invoked. Dump is also automatically invoked when a
+ * bug report is being generated.
+ */
+ @Override
+ protected void dump(FileDescriptor fd, final PrintWriter writer, String[] args) {
+ DumpsysHandler.dump(fd, writer, args);
+ }
}
diff --git a/src/com/android/phone/vvm/omtp/LocalLogHelper.java b/src/com/android/phone/vvm/omtp/LocalLogHelper.java
index a3de74f..13a55c0 100644
--- a/src/com/android/phone/vvm/omtp/LocalLogHelper.java
+++ b/src/com/android/phone/vvm/omtp/LocalLogHelper.java
@@ -15,21 +15,31 @@
*/
package com.android.phone.vvm.omtp;
-import com.android.internal.telephony.PhoneFactory;
+import android.util.LocalLog;
+
+import com.android.internal.util.IndentingPrintWriter;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
/**
- * Helper methods for adding to Telephony local logs.
+ * Helper methods for adding to OMTP visual voicemail local logs.
*/
public class LocalLogHelper {
- public static final String KEY = "OmtpVvm";
- private static final int MAX_OMTP_VVM_LOGS = 20;
+
+ private static final int MAX_OMTP_VVM_LOGS = 100;
+
+ private static final LocalLog sLocalLog = new LocalLog(MAX_OMTP_VVM_LOGS);
public static void log(String tag, String log) {
- try {
- PhoneFactory.addLocalLog(KEY, MAX_OMTP_VVM_LOGS);
- } catch (IllegalArgumentException e){
- } finally {
- PhoneFactory.localLog(KEY, tag + ": " + log);
- }
+ sLocalLog.log(tag + ": " + log);
+ }
+
+ public static void dump(FileDescriptor fd, PrintWriter printwriter, String[] args) {
+ IndentingPrintWriter indentingPrintWriter = new IndentingPrintWriter(printwriter, " ");
+ indentingPrintWriter.println("OmtpVvm:");
+ indentingPrintWriter.increaseIndent();
+ sLocalLog.dump(fd, indentingPrintWriter, args);
+ indentingPrintWriter.decreaseIndent();
}
}