项目:tomdroid
文件:LinkInternalSpan.java
public static MatchFilter getNoteLinkMatchFilter(final SpannableStringBuilder noteContent,final LinkInternalSpan[] links) {
return new MatchFilter() {
public boolean acceptMatch(CharSequence s,int start,int end) {
int spanstart,spanend;
for(LinkInternalSpan link: links) {
spanstart = noteContent.getSpanStart(link);
spanend = noteContent.getSpanEnd(link);
if(!(end <= spanstart || spanend <= start)) {
return false;
}
}
return true;
}
};
}
项目:tomdroid
文件:ViewNote.java
private void showNote(boolean xml) {
if(xml) {
content.setText(note.getXmlContent());
title.setText((CharSequence) note.getTitle());
this.setTitle(this.getTitle() + " - XML");
return;
}
LinkInternalSpan[] links = noteContent.getSpans(0,noteContent.length(),LinkInternalSpan.class);
MatchFilter noteLinkMatchFilter = LinkInternalSpan.getNoteLinkMatchFilter(noteContent,links);
// show the note (spannable makes the TextView able to output styled text)
content.setText(noteContent,TextView.BufferType.SPANNABLE);
// add links to stuff that is understood by Android except phone numbers because it's too aggressive
// Todo this is SLOWWWW!!!!
int linkFlags = 0;
if(Preferences.getBoolean(Preferences.Key.LINK_EMAILS))
linkFlags |= Linkify.EMAIL_ADDRESSES;
if(Preferences.getBoolean(Preferences.Key.LINK_URLS))
linkFlags |= Linkify.WEB_URLS;
if(Preferences.getBoolean(Preferences.Key.LINK_ADDRESSES))
linkFlags |= Linkify.MAP_ADDRESSES;
Linkify.addLinks(content,linkFlags);
// Custom phone number linkifier (fixes lp:512204)
if(Preferences.getBoolean(Preferences.Key.LINK_PHOnes))
Linkify.addLinks(content,LinkifyPhone.PHONE_PATTERN,"tel:",LinkifyPhone.sPhoneNumberMatchFilter,Linkify.sPhoneNumberTransformFilter);
// This will create a link every time a note title is found in the text.
// The pattern contains a very dumb (title1)|(title2) escaped correctly
// Then we transform the url from the note name to the note id to avoid characters that mess up with the URI (ex: ?)
if(Preferences.getBoolean(Preferences.Key.LINK_TITLES)) {
Pattern pattern = NoteManager.buildNoteLinkifyPattern(this,note.getTitle());
if(pattern != null) {
Linkify.addLinks(
content,pattern,Tomdroid.CONTENT_URI+"/",noteLinkMatchFilter,noteTitleTransformFilter
);
// content.setMovementMethod(LinkMovementMethod.getInstance());
}
}
title.setText((CharSequence) note.getTitle());
}
项目:tomdroid
文件:EditNote.java
private void showNote(boolean xml) {
if(xml) {
formatBar.setVisibility(View.GONE);
content.setText(note.getXmlContent());
title.setText((CharSequence) note.getTitle());
this.setTitle(this.getTitle() + " - XML");
xmlOn = true;
return;
}
LinkInternalSpan[] links = noteContent.getSpans(0,noteTitleTransformFilter
);
// content.setMovementMethod(LinkMovementMethod.getInstance());
}
}
title.setText((CharSequence) note.getTitle());
}
项目:tomdroid
文件:Tomdroid.java
private void showNote(boolean xml) {
if(xml) {
content.setText(note.getXmlContent());
title.setText((CharSequence) note.getTitle());
this.setTitle(this.getTitle() + " - XML");
return;
}
LinkInternalSpan[] links = noteContent.getSpans(0,TextView.BufferType.SPANNABLE);
// add links to stuff that is understood by Android except phone numbers because it's too aggressive
// Todo this is SLOWWWW!!!!
int linkFlags = 0;
if(Preferences.getBoolean(Preferences.Key.LINK_EMAILS))
linkFlags |= Linkify.EMAIL_ADDRESSES;
if(Preferences.getBoolean(Preferences.Key.LINK_URLS))
linkFlags |= Linkify.WEB_URLS;
if(Preferences.getBoolean(Preferences.Key.LINK_ADDRESSES))
linkFlags |= Linkify.MAP_ADDRESSES;
Linkify.addLinks(content,noteTitleTransformFilter
);
// content.setMovementMethod(LinkMovementMethod.getInstance());
}
}
title.setText((CharSequence) note.getTitle());
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。