public static CharSequence FromHtml2(final BA pBA, String HtmlString, String ImageGetterEventName, String TagHandlerEventName) {
ImageGetter imageGetter = null;
final String imageGetterEventName = ImageGetterEventName.toLowerCase(BA.cul)
+ "_getdrawable";
if (pBA.subExists(imageGetterEventName)) {
imageGetter = new ImageGetter() {
@Override
public Drawable getDrawable(String pSource) {
// problem - cannot return a value from the UI thread
Log.d("B4A", "getDrawable callback: "+imageGetterEventName);
return (Drawable) pBA.raiseEvent(null, imageGetterEventName, new Object[]{pSource});
// return (Drawable) pBA.raiseEventFromDifferentThread(null, null, mTaskId++, imageGetterEventName, false, new Object[]{pSource});
}
};
}
TagHandler tagHandler = null;
final String tagHandlerEventName = TagHandlerEventName.toLowerCase(BA.cul)
+ "_handletag";
if (pBA.subExists(tagHandlerEventName)) {
tagHandler = new TagHandler() {
@Override
public void handleTag(boolean pOpening, String pTag, Editable pOutput, XMLReader pXMLReader) {
Log.d("B4A", "handleTag callback: "+tagHandlerEventName);
pBA.raiseEvent(null, tagHandlerEventName, new Object[]{pOpening, pTag, new SpannableStringBuilder((android.text.SpannableStringBuilder) pOutput)});
// pBA.raiseEventFromDifferentThread(null, null, mTaskId++, tagHandlerEventName, false, new Object[]{pOpening, pTag, new SpannableStringBuilder((android.text.SpannableStringBuilder) pOutput)});
}
};
}
return android.text.Html.fromHtml(HtmlString, imageGetter, tagHandler);
}