summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jin Seok Park <jinpark@google.com> 2020-08-13 21:48:13 +0900
committer Jin Seok Park <jinpark@google.com> 2020-08-14 10:46:17 +0900
commitd9c93db01140987eccb4939c16cf8ea3929476be (patch)
tree9cf4a79223b42a7b1a0e333e4c365a539731393b
parent2ea424eac63dca80b34e71b1c31a69f27e141566 (diff)
[Media ML] Copy over Debug#getCallers(int)
Bug: 164049795 Test: N/A Change-Id: I6ace7e92e697137f8c68278e613b880e9d80ac97
-rw-r--r--services/core/java/com/android/server/media/MediaSessionStack.java23
1 files changed, 21 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/media/MediaSessionStack.java b/services/core/java/com/android/server/media/MediaSessionStack.java
index 953aae44d6a7..d9b5b6d41c11 100644
--- a/services/core/java/com/android/server/media/MediaSessionStack.java
+++ b/services/core/java/com/android/server/media/MediaSessionStack.java
@@ -20,7 +20,6 @@ import static com.android.server.media.SessionPolicyProvider.SESSION_POLICY_IGNO
import android.media.Session2Token;
import android.media.session.MediaSession;
-import android.os.Debug;
import android.os.UserHandle;
import android.util.Log;
import android.util.SparseArray;
@@ -187,7 +186,7 @@ class MediaSessionStack {
*/
public void updateMediaButtonSessionIfNeeded() {
if (DEBUG) {
- Log.d(TAG, "updateMediaButtonSessionIfNeeded, callers=" + Debug.getCallers(2));
+ Log.d(TAG, "updateMediaButtonSessionIfNeeded, callers=" + getCallers(2));
}
List<Integer> audioPlaybackUids =
mAudioPlayerStateMonitor.getSortedAudioPlaybackClientUids();
@@ -413,4 +412,24 @@ class MediaSessionStack {
// so they also need to be cleared.
mCachedActiveLists.remove(UserHandle.USER_ALL);
}
+
+ // Code copied from android.os.Debug#getCallers(int)
+ private static String getCallers(final int depth) {
+ final StackTraceElement[] callStack = Thread.currentThread().getStackTrace();
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < depth; i++) {
+ sb.append(getCaller(callStack, i)).append(" ");
+ }
+ return sb.toString();
+ }
+
+ // Code copied from android.os.Debug#getCaller(StackTraceElement[], int)
+ private static String getCaller(StackTraceElement[] callStack, int depth) {
+ // callStack[4] is the caller of the method that called getCallers()
+ if (4 + depth >= callStack.length) {
+ return "<bottom of call stack>";
+ }
+ StackTraceElement caller = callStack[4 + depth];
+ return caller.getClassName() + "." + caller.getMethodName() + ":" + caller.getLineNumber();
+ }
}