diff --git a/travisjr/assets/ascii_art b/travisjr/assets/ascii_art index 8b50b36..114814d 100644 --- a/travisjr/assets/ascii_art +++ b/travisjr/assets/ascii_art @@ -1,22 +1,22 @@ -      _____                    _____                    _____                _____                    _____                    _____                            _____                    _____                   -     /\    \                  /\    \                  /\    \              /\    \                  /\    \                  /\    \                          /\    \                  /\    \                  -    /::\    \                /::\    \                /::\    \            /::\____\                /::\    \                /::\    \                        /::\    \                /::\    \                 -    \:::\    \              /::::\    \              /::::\    \          /:::/    /                \:::\    \              /::::\    \                      /::::\    \               \:::\    \                -     \:::\    \            /::::::\    \            /::::::\    \        /:::/    /                  \:::\    \            /::::::\    \                    /::::::\    \               \:::\    \               -      \:::\    \          /:::/\:::\    \          /:::/\:::\    \      /:::/    /                    \:::\    \          /:::/\:::\    \                  /:::/\:::\    \               \:::\    \              -       \:::\    \        /:::/__\:::\    \        /:::/__\:::\    \    /:::/____/                      \:::\    \        /:::/__\:::\    \                /:::/  \:::\    \               \:::\    \             -       /::::\    \      /::::\   \:::\    \      /::::\   \:::\    \   |::|    |                       /::::\    \       \:::\   \:::\    \              /:::/    \:::\    \              /::::\    \            -      /::::::\    \    /::::::\   \:::\    \    /::::::\   \:::\    \  |::|    |     _____    ____    /::::::\    \    ___\:::\   \:::\    \            /:::/    / \:::\    \    ____    /::::::\    \           -     /:::/\:::\    \  /:::/\:::\   \:::\____\  /:::/\:::\   \:::\    \ |::|    |    /\    \  /\   \  /:::/\:::\    \  /\   \:::\   \:::\    \          /:::/    /   \:::\    \  /\   \  /:::/\:::\    \          -    /:::/  \:::\____\/:::/  \:::\   \:::|    |/:::/  \:::\   \:::\____\|::|    |   /::\____\/::\   \/:::/  \:::\____\/::\   \:::\   \:::\____\        /:::/____/     \:::\____\/::\   \/:::/  \:::\____\         -   /:::/    \::/    /\::/   |::::\  /:::|____|\::/    \:::\  /:::/    /|::|    |  /:::/    /\:::\  /:::/    \::/    /\:::\   \:::\   \::/    /        \:::\    \      \::/    /\:::\  /:::/    \::/    /         -  /:::/    / \/____/  \/____|:::::\/:::/    /  \/____/ \:::\/:::/    / |::|    | /:::/    /  \:::\/:::/    / \/____/  \:::\   \:::\   \/____/          \:::\    \      \/____/  \:::\/:::/    / \/____/          - /:::/    /                 |:::::::::/    /            \::::::/    /  |::|____|/:::/    /    \::::::/    /            \:::\   \:::\    \               \:::\    \               \::::::/    /                   -/:::/    /                  |::|\::::/    /              \::::/    /   |:::::::::::/    /      \::::/____/              \:::\   \:::\____\               \:::\    \               \::::/____/                    -\::/    /                   |::| \::/____/               /:::/    /    \::::::::::/____/        \:::\    \               \:::\  /:::/    /                \:::\    \               \:::\    \                    - \/____/                    |::|  ~|                    /:::/    /      ~~~~~~~~~~               \:::\    \               \:::\/:::/    /                  \:::\    \               \:::\    \                   -                            |::|   |                   /:::/    /                                 \:::\    \               \::::::/    /                    \:::\    \               \:::\    \                  -                            \::|   |                  /:::/    /                                   \:::\____\               \::::/    /                      \:::\____\               \:::\____\                 -                             \:|   |                  \::/    /                                     \::/    /                \::/    /                        \::/    /                \::/    /                 -                              \|___|                   \/____/                                       \/____/                  \/____/                          \/____/                  \/____/                  -                                                                                                                                                                                                                     \ No newline at end of file + _____ _____ _____ _____ _____ _____ _____ _____ + /\ \ /\ \ /\ \ /\ \ /\ \ /\ \ /\ \ /\ \ + /::\ \ /::\ \ /::\ \ /::\____\ /::\ \ /::\ \ /::\ \ /::\ \ + \:::\ \ /::::\ \ /::::\ \ /:::/ / \:::\ \ /::::\ \ /::::\ \ \:::\ \ + \:::\ \ /::::::\ \ /::::::\ \ /:::/ / \:::\ \ /::::::\ \ /::::::\ \ \:::\ \ + \:::\ \ /:::/\:::\ \ /:::/\:::\ \ /:::/ / \:::\ \ /:::/\:::\ \ /:::/\:::\ \ \:::\ \ + \:::\ \ /:::/__\:::\ \ /:::/__\:::\ \ /:::/____/ \:::\ \ /:::/__\:::\ \ /:::/ \:::\ \ \:::\ \ + /::::\ \ /::::\ \:::\ \ /::::\ \:::\ \ |::| | /::::\ \ \:::\ \:::\ \ /:::/ \:::\ \ /::::\ \ + /::::::\ \ /::::::\ \:::\ \ /::::::\ \:::\ \ |::| | _____ ____ /::::::\ \ ___\:::\ \:::\ \ /:::/ / \:::\ \ ____ /::::::\ \ + /:::/\:::\ \ /:::/\:::\ \:::\____\ /:::/\:::\ \:::\ \ |::| | /\ \ /\ \ /:::/\:::\ \ /\ \:::\ \:::\ \ /:::/ / \:::\ \ /\ \ /:::/\:::\ \ + /:::/ \:::\____\/:::/ \:::\ \:::| |/:::/ \:::\ \:::\____\|::| | /::\____\/::\ \/:::/ \:::\____\/::\ \:::\ \:::\____\ /:::/____/ \:::\____\/::\ \/:::/ \:::\____\ + /:::/ \::/ /\::/ |::::\ /:::|____|\::/ \:::\ /:::/ /|::| | /:::/ /\:::\ /:::/ \::/ /\:::\ \:::\ \::/ / \:::\ \ \::/ /\:::\ /:::/ \::/ / + /:::/ / \/____/ \/____|:::::\/:::/ / \/____/ \:::\/:::/ / |::| | /:::/ / \:::\/:::/ / \/____/ \:::\ \:::\ \/____/ \:::\ \ \/____/ \:::\/:::/ / \/____/ + /:::/ / |:::::::::/ / \::::::/ / |::|____|/:::/ / \::::::/ / \:::\ \:::\ \ \:::\ \ \::::::/ / +/:::/ / |::|\::::/ / \::::/ / |:::::::::::/ / \::::/____/ \:::\ \:::\____\ \:::\ \ \::::/____/ +\::/ / |::| \::/____/ /:::/ / \::::::::::/____/ \:::\ \ \:::\ /:::/ / \:::\ \ \:::\ \ + \/____/ |::| ~| /:::/ / ~~~~~~~~~~ \:::\ \ \:::\/:::/ / \:::\ \ \:::\ \ + |::| | /:::/ / \:::\ \ \::::::/ / \:::\ \ \:::\ \ + \::| | /:::/ / \:::\____\ \::::/ / \:::\____\ \:::\____\ + \:| | \::/ / \::/ / \::/ / \::/ / \::/ / + \|___| \/____/ \/____/ \/____/ \/____/ \/____/ + diff --git a/travisjr/pom.xml b/travisjr/pom.xml index 5a7079c..e88fe25 100644 --- a/travisjr/pom.xml +++ b/travisjr/pom.xml @@ -48,4 +48,12 @@ - \ No newline at end of file + + + + org.fusesource.jansi + jansi + 1.11 + + + diff --git a/travisjr/src/main/java/com/lonepulse/travisjr/BuildInfoActivity.java b/travisjr/src/main/java/com/lonepulse/travisjr/BuildInfoActivity.java index 0f9e9f7..e796aad 100644 --- a/travisjr/src/main/java/com/lonepulse/travisjr/BuildInfoActivity.java +++ b/travisjr/src/main/java/com/lonepulse/travisjr/BuildInfoActivity.java @@ -72,6 +72,7 @@ import com.lonepulse.travisjr.util.BuildUtils; import com.lonepulse.travisjr.util.DateUtils; import com.lonepulse.travisjr.util.IntentUtils; +import com.lonepulse.travisjr.util.TextUtils; import com.lonepulse.travisjr.util.Res; /** @@ -105,11 +106,11 @@ public class BuildInfoActivity extends TravisJrActivity { try { scanner = new Scanner(TravisJr.Application.getContext().getAssets().open("ascii_art")); - ASCII_ART.append("

"); + ASCII_ART.append("

"); while(scanner.hasNextLine()) { - ASCII_ART.append(scanner.nextLine()).append("
"); + ASCII_ART.append(scanner.nextLine()+"\n"); } ASCII_ART.append("

"); @@ -219,7 +220,7 @@ protected void onCreate(Bundle savedInstanceState) { settings.setRenderPriority(RenderPriority.HIGH); settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); - loadLogData(ASCII_ART.toString()); + loadLogData(ASCII_ART.toString(), false); } @Override @@ -304,13 +305,13 @@ private void updateLogChooser(final List logIds) { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { - loadLogData(logs.get(logIds.get(position)).toString()); + loadLogData(logs.get(logIds.get(position)).toString(), true); } @Override public void onNothingSelected(AdapterView parent) { - loadLogData(logs.get(logs.firstKey()).toString()); + loadLogData(logs.get(logs.firstKey()).toString(), true); } }); @@ -318,8 +319,9 @@ public void onNothingSelected(AdapterView parent) { } } - private void loadLogData(String logData) { - + private void loadLogData(String logData, Boolean escape) { + + if (escape) logData = TextUtils.ansi2html(logData); final StringBuilder html = new StringBuilder() .append("") @@ -328,7 +330,7 @@ private void loadLogData(String logData) { log.loadData(html.toString(), "text/html", "utf-8"); } - + @UI(UI_SYNC) private void uiSync() { diff --git a/travisjr/src/main/java/com/lonepulse/travisjr/util/TextUtils.java b/travisjr/src/main/java/com/lonepulse/travisjr/util/TextUtils.java index feb5aad..8fbbb78 100644 --- a/travisjr/src/main/java/com/lonepulse/travisjr/util/TextUtils.java +++ b/travisjr/src/main/java/com/lonepulse/travisjr/util/TextUtils.java @@ -20,6 +20,10 @@ * #L% */ +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +import org.fusesource.jansi.HtmlAnsiOutputStream; import com.lonepulse.travisjr.R; import com.lonepulse.travisjr.app.TravisJr; @@ -92,4 +96,27 @@ public static String isAvailable(Object object, String ifNotAvailable) { } + + /** + *

Convert text to HTML, including ANSI escape sequences. + * + * @param s + * text to convert to HTML + * @return HTML + */ + public static String ansi2html(String s) { + + try { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + HtmlAnsiOutputStream hos = new HtmlAnsiOutputStream(os); + + hos.write(s.getBytes("UTF-8")); + hos.close(); + return new String(os.toByteArray(), "UTF-8"); + } + catch(IOException e) { + + return s; + } + } }