parent
c7e7da9433
commit
2ed14d0b90
@ -1,22 +0,0 @@ |
||||
package com.keylesspalace.tusky.util |
||||
|
||||
import android.text.Spanned |
||||
|
||||
/** |
||||
* Abstracting away Android-specific things. |
||||
*/ |
||||
interface HtmlConverter { |
||||
fun fromHtml(html: String): Spanned |
||||
|
||||
fun toHtml(text: Spanned): String |
||||
} |
||||
|
||||
internal class HtmlConverterImpl : HtmlConverter { |
||||
override fun fromHtml(html: String): Spanned { |
||||
return HtmlUtils.fromHtml(html) |
||||
} |
||||
|
||||
override fun toHtml(text: Spanned): String { |
||||
return HtmlUtils.toHtml(text) |
||||
} |
||||
} |
@ -1,52 +0,0 @@ |
||||
/* Copyright 2017 Andrew Dawson |
||||
* |
||||
* This file is a part of Tusky. |
||||
* |
||||
* This program is free software; you can redistribute it and/or modify it under the terms of the |
||||
* GNU General Public License as published by the Free Software Foundation; either version 3 of the |
||||
* License, or (at your option) any later version. |
||||
* |
||||
* Tusky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even |
||||
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
||||
* Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License along with Tusky; if not, |
||||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
package com.keylesspalace.tusky.util; |
||||
|
||||
import android.os.Build; |
||||
import android.text.Html; |
||||
import android.text.Spanned; |
||||
|
||||
public class HtmlUtils { |
||||
private static CharSequence trimTrailingWhitespace(CharSequence s) { |
||||
int i = s.length(); |
||||
do { |
||||
i--; |
||||
} while (i >= 0 && Character.isWhitespace(s.charAt(i))); |
||||
return s.subSequence(0, i + 1); |
||||
} |
||||
|
||||
public static Spanned fromHtml(String html) { |
||||
Spanned result; |
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { |
||||
result = Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY); |
||||
} else { |
||||
result = Html.fromHtml(html); |
||||
} |
||||
/* Html.fromHtml returns trailing whitespace if the html ends in a </p> tag, which |
||||
* all status contents do, so it should be trimmed. */ |
||||
return (Spanned) trimTrailingWhitespace(result); |
||||
} |
||||
|
||||
public static String toHtml(Spanned text) { |
||||
String result; |
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { |
||||
result = Html.toHtml(text, Html.TO_HTML_PARAGRAPH_LINES_CONSECUTIVE); |
||||
} else { |
||||
result = Html.toHtml(text); |
||||
} |
||||
return result; |
||||
} |
||||
} |
Loading…
Reference in new issue