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