diff options
Diffstat (limited to 'libraries/HtmlTextView/src/org/sufficientlysecure/htmltextview/HtmlTagHandler.java')
-rw-r--r-- | libraries/HtmlTextView/src/org/sufficientlysecure/htmltextview/HtmlTagHandler.java | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/libraries/HtmlTextView/src/org/sufficientlysecure/htmltextview/HtmlTagHandler.java b/libraries/HtmlTextView/src/org/sufficientlysecure/htmltextview/HtmlTagHandler.java deleted file mode 100644 index c40c8dec3..000000000 --- a/libraries/HtmlTextView/src/org/sufficientlysecure/htmltextview/HtmlTagHandler.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (C) 2013 Mohammed Lakkadshaw - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.sufficientlysecure.htmltextview; - -import java.util.Vector; - -import org.xml.sax.XMLReader; - -import android.text.Editable; -import android.text.Html; -import android.text.Spannable; -import android.text.style.BulletSpan; -import android.text.style.LeadingMarginSpan; -import android.text.style.TypefaceSpan; -import android.util.Log; - -public class HtmlTagHandler implements Html.TagHandler { - private int mListItemCount = 0; - private Vector<String> mListParents = new Vector<String>(); - - @Override - public void handleTag(final boolean opening, final String tag, Editable output, final XMLReader xmlReader) { - - if (tag.equals("ul") || tag.equals("ol") || tag.equals("dd")) { - if (opening) { - mListParents.add(tag); - } else mListParents.remove(tag); - - mListItemCount = 0; - } else if (tag.equals("li") && !opening) { - handleListTag(output); - } else if (tag.equalsIgnoreCase("code")) { - if (opening) { - output.setSpan(new TypefaceSpan("monospace"), output.length(), output.length(), Spannable.SPAN_MARK_MARK); - } else { - Log.d(HtmlTextView.TAG, "Code tag encountered"); - Object obj = getLast(output, TypefaceSpan.class); - int where = output.getSpanStart(obj); - output.setSpan(new TypefaceSpan("monospace"), where, output.length(), 0); - } - } - } - - private Object getLast(Editable text, Class kind) { - Object[] objs = text.getSpans(0, text.length(), kind); - if (objs.length == 0) { - return null; - } else { - for (int i = objs.length; i > 0; i--) { - if (text.getSpanFlags(objs[i - 1]) == Spannable.SPAN_MARK_MARK) { - return objs[i - 1]; - } - } - return null; - } - } - - private void handleListTag(Editable output) { - if (mListParents.lastElement().equals("ul")) { - output.append("\n"); - String[] split = output.toString().split("\n"); - - int lastIndex = split.length - 1; - int start = output.length() - split[lastIndex].length() - 1; - output.setSpan(new BulletSpan(15 * mListParents.size()), start, output.length(), 0); - } else if (mListParents.lastElement().equals("ol")) { - mListItemCount++; - - output.append("\n"); - String[] split = output.toString().split("\n"); - - int lastIndex = split.length - 1; - int start = output.length() - split[lastIndex].length() - 1; - output.insert(start, mListItemCount + ". "); - output.setSpan(new LeadingMarginSpan.Standard(15 * mListParents.size()), start, output.length(), 0); - } - } -} |