1ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne/* 2ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne * Copyright (C) 2011 The Android Open Source Project 3ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne * 4ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne * Licensed under the Apache License, Version 2.0 (the "License"); 5ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne * you may not use this file except in compliance with the License. 6ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne * You may obtain a copy of the License at 7ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne * 8ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne * http://www.apache.org/licenses/LICENSE-2.0 9ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne * 10ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne * Unless required by applicable law or agreed to in writing, software 11ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne * distributed under the License is distributed on an "AS IS" BASIS, 12ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne * See the License for the specific language governing permissions and 14ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne * limitations under the License. 15ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne */ 16ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne 17ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milnepackage android.util; 18ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne 19ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milneimport com.android.tools.layoutlib.annotations.LayoutlibDelegate; 20ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne 21ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milneclass Log_Delegate { 22ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne // to replicate prefix visible when using 'adb logcat' 23ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne private static char priorityChar(int priority) { 24ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne switch (priority) { 25ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne case Log.VERBOSE: 26ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne return 'V'; 27ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne case Log.DEBUG: 28ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne return 'D'; 29ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne case Log.INFO: 30ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne return 'I'; 31ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne case Log.WARN: 32ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne return 'W'; 33ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne case Log.ERROR: 34ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne return 'E'; 35ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne case Log.ASSERT: 36ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne return 'A'; 37ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne default: 38ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne return '?'; 39ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne } 40ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne } 41ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne 42ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne @LayoutlibDelegate 43ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne static int println_native(int bufID, int priority, String tag, String msgs) { 44ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne String prefix = priorityChar(priority) + "/" + tag + ": "; 45ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne for (String msg: msgs.split("\n")) { 46ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne System.out.println(prefix + msg); 47ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne } 48ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne return 0; 49ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne } 50ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne 51ea670054d6c5b59b8481cbf796e6a1cd9f38b672Philip Milne} 52