From 1788c7c34021cd24ac36f1706ae75717a9d45cb5 Mon Sep 17 00:00:00 2001 From: bluejamesbond Date: Tue, 19 Apr 2016 18:55:11 -0500 Subject: [PATCH] Houskeeping --- .travis.yml | 9 +- README.md | 2 +- gradle.properties | 4 +- gradle/wrapper/gradle-wrapper.properties | 4 +- .../text/ConcurrentModifiableLinkedList.java | 136 +++++++++--------- .../java/com/bluejamesbond/text/Styled.java | 27 ++-- .../text/hyphen/DefaultHyphenator.java | 8 +- .../text/util}/ArticleBuilder.java | 2 +- .../sample/test/ChineseCharacterTest.java | 106 +++++++++++++- .../text/sample/test/ClickableSpanTest.java | 2 +- .../text/sample/test/ImageSpanTest.java | 2 +- .../sample/test/LeadingMarginSpan2Test.java | 2 +- .../sample/test/LongFormattedTextTest.java | 2 +- .../text/sample/test/MixedRTLTest.java | 2 +- .../text/sample/test/QuoteSpanTest.java | 2 +- .../text/sample/test/RTLTest.java | 2 +- .../sample/test/ShortFormattedTextTest.java | 3 +- 17 files changed, 203 insertions(+), 112 deletions(-) rename {sample/src/main/java/com/bluejamesbond/text/sample/helper => library/src/main/java/com/bluejamesbond/text/util}/ArticleBuilder.java (97%) diff --git a/.travis.yml b/.travis.yml index bd3f390..6241e8f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,11 @@ language: android android: components: - - platform-tools - - android-16 - - build-tools-21.1.2 - - extra + - tools + - build-tools-23.0.3 + - android-23 + - platform-tools + - extra-android-m2repository jdk: oraclejdk7 diff --git a/README.md b/README.md index 3432726..4bebfc6 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ For examples, tests, and API refer to the [Android-TextJustify Wiki](https://git Just add to your `build.gradle` ```gradle dependencies { - compile 'com.github.bluejamesbond:textjustify-android:2.1.1' + compile 'com.github.bluejamesbond:textjustify-android:2.1.6' } ``` diff --git a/gradle.properties b/gradle.properties index 521297c..1a366ea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,8 +17,8 @@ # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true -VERSION_NAME=2.1.1 -VERSION_CODE=23 +VERSION_NAME=2.1.6 +VERSION_CODE=27 GROUP=com.github.bluejamesbond POM_DESCRIPTION=Android Text Full Jusiftication diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ca46166..ab1cff5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Nov 25 01:23:33 CST 2014 +#Sun Apr 17 18:55:46 CDT 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip diff --git a/library/src/main/java/com/bluejamesbond/text/ConcurrentModifiableLinkedList.java b/library/src/main/java/com/bluejamesbond/text/ConcurrentModifiableLinkedList.java index 1561cdd..5e6619e 100644 --- a/library/src/main/java/com/bluejamesbond/text/ConcurrentModifiableLinkedList.java +++ b/library/src/main/java/com/bluejamesbond/text/ConcurrentModifiableLinkedList.java @@ -8,13 +8,13 @@ import java.util.NoSuchElementException; /** - * Linked list implementation of the List interface. Implements all + * Linked list implementation of the List interface. Implements all * optional list operations, and permits all elements (including - * null). In addition to implementing the List interface, - * the LinkedList class provides uniformly named methods to - * isCancelled, remove and insert an element at the + * null). In addition to implementing the List interface, + * the LinkedList class provides uniformly named methods to + * isCancelled, remove and insert an element at the * beginning and end of the list. These operations allow linked lists to be - * used as a stack or Queue.

+ * used as a stack or Queue. * * @param the type of elements held in this collection * @author Josh Bloch @@ -107,8 +107,8 @@ public void addFirst(E e) { /** * Appends the specified element to the end of this list. - *

- *

This method is equivalent to {@link #add}. + * + * This method is equivalent to {@link #add}. * * @param e the element to add */ @@ -118,11 +118,11 @@ public void addLast(E e) { /** * Appends the specified element to the end of this list. - *

- *

This method is equivalent to {@link #addLast}. + * + * This method is equivalent to {@link #addLast}. * * @param e element to be appended to this list - * @return true (as specified by {@link Collection#add}) + * @return true (as specified by {@link Collection#add}) */ public boolean add(E e) { addBefore(e, header); @@ -148,8 +148,8 @@ public void clear() { /** * Returns the index of the first occurrence of the specified element * in this list, or -1 if this list does not contain the element. - * More formally, returns the lowest index i such that - * (o==null ? isCancelled(i)==null : o.equals(isCancelled(i))), + * More formally, returns the lowest index i such that + * (o==null ? isCancelled(i)==null : o.equals(isCancelled(i))), * or -1 if there is no such index. * * @param o element to search for @@ -177,8 +177,8 @@ public int indexOf(Object o) { /** * Returns the index of the last occurrence of the specified element * in this list, or -1 if this list does not contain the element. - * More formally, returns the highest index i such that - * (o==null ? isCancelled(i)==null : o.equals(isCancelled(i))), + * More formally, returns the highest index i such that + * (o==null ? isCancelled(i)==null : o.equals(isCancelled(i))), * or -1 if there is no such index. * * @param o element to search for @@ -212,7 +212,7 @@ public int lastIndexOf(Object o) { * this list, and it's nonempty.) * * @param c collection containing elements to be added to this list - * @return true if this list changed as a result of the call + * @return true if this list changed as a result of the call * @throws NullPointerException if the specified collection is null */ public boolean addAll(Collection c) { @@ -220,13 +220,13 @@ public boolean addAll(Collection c) { } /** - * Returns true if this list contains the specified element. - * More formally, returns true if and only if this list contains - * at least one element e such that - * (o==null ? e==null : o.equals(e)). + * Returns true if this list contains the specified element. + * More formally, returns true if and only if this list contains + * at least one element e such that + * (o==null ? e==null : o.equals(e)). * * @param o element whose presence in this list is to be tested - * @return true if this list contains the specified element + * @return true if this list contains the specified element */ public boolean contains(Object o) { return indexOf(o) != -1; @@ -239,14 +239,14 @@ public boolean contains(Object o) { * Removes the first occurrence of the specified element from this list, * if it is present. If this list does not contain the element, it is * unchanged. More formally, removes the element with the lowest index - * i such that - * (o==null ? isCancelled(i)==null : o.equals(isCancelled(i))) - * (if such an element exists). Returns true if this list + * i such that + * (o==null ? isCancelled(i)==null : o.equals(isCancelled(i))) + * (if such an element exists). Returns true if this list * contained the specified element (or equivalently, if this list * changed as a result of the call). * * @param o element to be removed from this list, if present - * @return true if this list contained the specified element + * @return true if this list contained the specified element */ public boolean remove(Object o) { if (o == null) { @@ -279,12 +279,12 @@ public int size() { /** * Returns an array containing all of the elements in this list * in proper sequence (from first to last element). - *

- *

The returned array will be "safe" in that no references to it are + * + * The returned array will be "safe" in that no references to it are * maintained by this list. (In other words, this method must allocate * a new array). The caller is thus free to modify the returned array. - *

- *

This method acts as bridge between array-based and collection-based + * + * This method acts as bridge between array-based and collection-based * APIs. * * @return an array containing all of the elements in this list @@ -305,27 +305,27 @@ public Object[] toArray() { * in the specified array, it is returned therein. Otherwise, a new * array is allocated with the runtime type of the specified array and * the size of this list. - *

- *

If the list fits in the specified array with room to spare (i.e., + * + * If the list fits in the specified array with room to spare (i.e., * the array has more elements than the list), the element in the array - * immediately following the end of the list is onUpdate to null. + * immediately following the end of the list is onUpdate to null. * (This is useful in determining the length of the list only if * the caller knows that the list does not contain any null elements.) - *

- *

Like the {@link #toArray()} method, this method acts as bridge between + * + * Like the {@link #toArray()} method, this method acts as bridge between * array-based and collection-based APIs. Further, this method allows * precise control over the runtime type of the output array, and may, * under certain circumstances, be used to save allocation costs. - *

- *

Suppose x is a list known to contain only strings. + * + * Suppose x is a list known to contain only strings. * The following code can be used to dump the list into a newly - * allocated array of String: - *

+ * allocated array of String: + * *

      *     String[] y = x.toArray(new String[0]);
* - * Note that toArray(new Object[0]) is identical in function to - * toArray(). + * Note that toArray(new Object[0]) is identical in function to + * toArray(). * * @param a the array into which the elements of the list are to * be stored, if it is big enough; otherwise, a new array of the @@ -378,7 +378,7 @@ public void add(int index, E element) { * @param index index at which to insert the first element * from the specified collection * @param c collection containing elements to be added to this list - * @return true if this list changed as a result of the call + * @return true if this list changed as a result of the call * @throws IndexOutOfBoundsException {@inheritDoc} * @throws NullPointerException if the specified collection is null */ @@ -421,19 +421,19 @@ public E get(int index) { /** * Returns a list-iterator of the elements in this list (in proper * sequence), starting at the specified position in the list. - * Obeys the general contract of List.listIterator(int).

- *

+ * Obeys the general contract of List.listIterator(int). + * * The list-iterator is fail-fast: if the list is structurally * modified at any time after the Iterator is created, in any way except - * through the list-iterator's own remove or add + * through the list-iterator's own remove or add * methods, the list-iterator will throw a - * ConcurrentModificationException. Thus, in the face of + * ConcurrentModificationException. Thus, in the face of * concurrent modification, the iterator fails quickly and cleanly, rather * than risking arbitrary, non-deterministic behavior at an undetermined * time in the future. * * @param index index of the first element to be returned from the - * list-iterator (by a call to next) + * list-iterator (by a call to next) * @return a ListIterator of the elements in this list (in proper * sequence), starting at the specified position in the list * @throws IndexOutOfBoundsException {@inheritDoc} @@ -493,7 +493,7 @@ private Entry entry(int index) { /** * Retrieves, but does not remove, the head (first element) of this list. * - * @return the head of this list, or null if this list is empty + * @return the head of this list, or null if this list is empty * @since 1.5 */ public E peek() { @@ -518,7 +518,7 @@ public E element() { /** * Retrieves and removes the head (first element) of this list * - * @return the head of this list, or null if this list is empty + * @return the head of this list, or null if this list is empty * @since 1.5 */ public E poll() { @@ -542,7 +542,7 @@ public E remove() { * Adds the specified element as the tail (last element) of this list. * * @param e the element to add - * @return true + * @return true * @since 1.5 */ public boolean offer(E e) { @@ -553,7 +553,7 @@ public boolean offer(E e) { * Inserts the specified element at the front of this list. * * @param e the element to insert - * @return true (as specified by {@link Deque#offerFirst}) + * @return true (as specified by {Deque#offerFirst}) * @since 1.6 */ public boolean offerFirst(E e) { @@ -565,7 +565,7 @@ public boolean offerFirst(E e) { * Inserts the specified element at the end of this list. * * @param e the element to insert - * @return true (as specified by {@link Deque#offerLast}) + * @return true (as specified by {Deque#offerLast}) * @since 1.6 */ public boolean offerLast(E e) { @@ -575,9 +575,9 @@ public boolean offerLast(E e) { /** * Retrieves, but does not remove, the first element of this list, - * or returns null if this list is empty. + * or returns null if this list is empty. * - * @return the first element of this list, or null + * @return the first element of this list, or null * if this list is empty * @since 1.6 */ @@ -589,9 +589,9 @@ public E peekFirst() { /** * Retrieves, but does not remove, the last element of this list, - * or returns null if this list is empty. + * or returns null if this list is empty. * - * @return the last element of this list, or null + * @return the last element of this list, or null * if this list is empty * @since 1.6 */ @@ -603,9 +603,9 @@ public E peekLast() { /** * Retrieves and removes the first element of this list, - * or returns null if this list is empty. + * or returns null if this list is empty. * - * @return the first element of this list, or null if + * @return the first element of this list, or null if * this list is empty * @since 1.6 */ @@ -617,9 +617,9 @@ public E pollFirst() { /** * Retrieves and removes the last element of this list, - * or returns null if this list is empty. + * or returns null if this list is empty. * - * @return the last element of this list, or null if + * @return the last element of this list, or null if * this list is empty * @since 1.6 */ @@ -632,8 +632,8 @@ public E pollLast() { /** * Pushes an element onto the stack represented by this list. In other * words, inserts the element at the front of this list. - *

- *

This method is equivalent to {@link #addFirst}. + * + * This method is equivalent to {@link #addFirst}. * * @param e the element to push * @since 1.6 @@ -645,8 +645,8 @@ public void push(E e) { /** * Pops an element from the stack represented by this list. In other * words, removes and returns the first element of this list. - *

- *

This method is equivalent to {@link #removeFirst()}. + * + * This method is equivalent to {@link #removeFirst()}. * * @return the element at the front of this list (which is the top * of the stack represented by this list) @@ -663,7 +663,7 @@ public E pop() { * does not contain the element, it is unchanged. * * @param o element to be removed from this list, if present - * @return true if the list contained the specified element + * @return true if the list contained the specified element * @since 1.6 */ public boolean removeFirstOccurrence(Object o) { @@ -676,7 +676,7 @@ public boolean removeFirstOccurrence(Object o) { * does not contain the element, it is unchanged. * * @param o element to be removed from this list, if present - * @return true if the list contained the specified element + * @return true if the list contained the specified element * @since 1.6 */ public boolean removeLastOccurrence(Object o) { @@ -729,10 +729,10 @@ public Iterator descendingIterator() { } /** - * Returns a shallow copy of this LinkedList. (The elements + * Returns a shallow copy of this LinkedList. (The elements * themselves are not cloned.) * - * @return a shallow copy of this LinkedList instance + * @return a shallow copy of this LinkedList instance */ public Object clone() { ConcurrentModifiableLinkedList clone = null; @@ -756,7 +756,7 @@ public Object clone() { } /** - * Save the state of this LinkedList instance to a stream (that + * Save the state of this LinkedList instance to a stream (that * is, serialize it). * * @serialData The size of the list (the number of elements it @@ -777,7 +777,7 @@ private void writeObject(java.io.ObjectOutputStream s) } /** - * Reconstitute this LinkedList instance from a stream (that is + * Reconstitute this LinkedList instance from a stream (that is * deserialize it). */ private void readObject(java.io.ObjectInputStream s) diff --git a/library/src/main/java/com/bluejamesbond/text/Styled.java b/library/src/main/java/com/bluejamesbond/text/Styled.java index d5fec2f..4b72bc5 100644 --- a/library/src/main/java/com/bluejamesbond/text/Styled.java +++ b/library/src/main/java/com/bluejamesbond/text/Styled.java @@ -15,7 +15,6 @@ * like {@link android.text.Spanned} object with * {@link android.text.style.ReplacementSpan}. * - * @hide */ public class Styled { /** @@ -23,16 +22,16 @@ public class Styled { * interest should start or end in the middle of this run (if not * drawing, character spans that don't affect metrics can be ignored). * Neither should the run direction change in the middle of the run. - *

- *

The x position is the leading edge of the text. In a right-to-left + * + * The x position is the leading edge of the text. In a right-to-left * paragraph, this will be to the right of the text to be drawn. Paint * should not have an Align value other than LEFT or positioning will isCancelled * confused. - *

- *

On return, workPaint will reflect the original paint plus any + * + * On return, workPaint will reflect the original paint plus any * modifications made by character styles on the run. - *

- *

The returned width is signed and will be < 0 if the paragraph + * + * The returned width is signed and will be < 0 if the paragraph * direction is right-to-left. */ private static float drawUniformRun(Canvas canvas, @@ -209,16 +208,16 @@ public static int getTextWidths(TextPaint paint, * Renders and/or measures a directional run of text on a single line. * Unlike {@link #drawUniformRun}, this can render runs that cross style * boundaries. Returns the signed advance width, if requested. - *

- *

The x position is the leading edge of the text. In a right-to-left + * + * The x position is the leading edge of the text. In a right-to-left * paragraph, this will be to the right of the text to be drawn. Paint * should not have an Align value other than LEFT or positioning will isCancelled * confused. - *

- *

This optimizes for unstyled text and so workPaint might not be + * + * This optimizes for unstyled text and so workPaint might not be * modified by this call. - *

- *

The returned advance width will be < 0 if the paragraph + * + * The returned advance width will be < 0 if the paragraph * direction is right-to-left. */ private static float drawDirectionalRun(Canvas canvas, @@ -360,7 +359,7 @@ static float drawText(Canvas canvas, * Draws a run of text on a single line, with its * origin at (x,y), in the specified Paint. The origin is interpreted based * on the Align setting in the Paint. - *

+ * * This method considers style information in the text (e.g. even when text * is an instance of {@link android.text.Spanned}, this method correctly * draws the text). See also diff --git a/library/src/main/java/com/bluejamesbond/text/hyphen/DefaultHyphenator.java b/library/src/main/java/com/bluejamesbond/text/hyphen/DefaultHyphenator.java index 8c2b212..e2b0df2 100644 --- a/library/src/main/java/com/bluejamesbond/text/hyphen/DefaultHyphenator.java +++ b/library/src/main/java/com/bluejamesbond/text/hyphen/DefaultHyphenator.java @@ -186,14 +186,12 @@ public List hyphenate(String word) { /** * HyphenaPattern.java is an adaptation of Bram Steins hypher.js-Project: * https://github.com/bramstein/Hypher - *

+ * * Code from this project belongs to the following license: - *

* Copyright (c) 2011, Bram Stein All rights reserved. - *

+ * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: - *

* 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. 2. Redistributions in * binary form must reproduce the above copyright notice, this list of @@ -201,7 +199,7 @@ public List hyphenate(String word) { * materials provided with the distribution. 3. The name of the author may not * be used to endorse or promote products derived from this software without * specific prior written permission. - *

+ * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO diff --git a/sample/src/main/java/com/bluejamesbond/text/sample/helper/ArticleBuilder.java b/library/src/main/java/com/bluejamesbond/text/util/ArticleBuilder.java similarity index 97% rename from sample/src/main/java/com/bluejamesbond/text/sample/helper/ArticleBuilder.java rename to library/src/main/java/com/bluejamesbond/text/util/ArticleBuilder.java index f7f2b72..02a7c2f 100644 --- a/sample/src/main/java/com/bluejamesbond/text/sample/helper/ArticleBuilder.java +++ b/library/src/main/java/com/bluejamesbond/text/util/ArticleBuilder.java @@ -1,4 +1,4 @@ -package com.bluejamesbond.text.sample.helper; +package com.bluejamesbond.text.util; /* * Copyright 2015 Mathew Kurian diff --git a/sample/src/main/java/com/bluejamesbond/text/sample/test/ChineseCharacterTest.java b/sample/src/main/java/com/bluejamesbond/text/sample/test/ChineseCharacterTest.java index 2034aaf..d68c31d 100644 --- a/sample/src/main/java/com/bluejamesbond/text/sample/test/ChineseCharacterTest.java +++ b/sample/src/main/java/com/bluejamesbond/text/sample/test/ChineseCharacterTest.java @@ -36,7 +36,7 @@ import android.text.style.StyleSpan; import com.bluejamesbond.text.DocumentView; -import com.bluejamesbond.text.sample.helper.ArticleBuilder; +import com.bluejamesbond.text.util.ArticleBuilder; import com.bluejamesbond.text.sample.helper.MyQuoteSpan; import com.bluejamesbond.text.sample.helper.TestActivity; import com.bluejamesbond.text.style.JustifiedSpan; @@ -54,20 +54,114 @@ protected void onCreate(Bundle savedInstanceState) { amb.append("@levifan Oct. 28, 2014", true, new RelativeSizeSpan(0.8f), new StyleSpan(Typeface.BOLD)); amb.append( - "事訖乃返己轉身,可曰:以測機意」樂而不淫誨去出.,可曰:」誨耳出意.第十一回後竊聽己轉身訖乃返建章曰:.父親回衙汗流如雨玉,不題.,可事關雎覽誨.汗流如雨覽吉安而來冒認收了」關雎出曰:矣玉,不題事父親回衙.父親回衙玉,不題吉安而來汗流如雨冒認收了.在一處己轉身訖乃返危德至.建章曰:訖乃返以測機白圭志不稱讚分得意.己轉身樂而不淫建章曰:白圭志.誨意曰:去覽」耳矣.第八回」,可招」不題耳德泉淹曰:矣誨出事.汗流如雨冒認收了吉安而來父親回衙玉,不題.矣出意曰:.己轉身事在一處出建章曰:樂而不淫,可後竊聽以測機去.,愈聽愈惱饒爾去罷」此是後話也懊悔不了.玉,不題,可出汗流如雨父親回衙冒認收了耳關雎事曰:吉安而來.了」第一回不題第二回第九回第五回.,愈聽愈惱此是後話饒爾去罷」.意,可此是後話,愈聽愈惱」也懊悔不了覽饒爾去罷」耳關雎.此是後話,愈聽愈惱也懊悔不了饒爾去罷」.意覽事出去.,愈聽愈惱饒爾去罷」也懊悔不了.第一回第三回德泉淹羨殺.了」第十回第八回.驚異第十回第五回第七回.,可驚異曰:德泉淹矣覽第二回出」相域去.意第十一回事訖乃返己轉身耳去白圭志曰:.事」耳,可意關雎誨.事,可父親回衙曰:意出冒認收了吉安而來」去.矣出意曰:.己轉身事在一處出建章曰:樂而不淫,可後竊聽以測機去.,愈聽愈惱饒爾去罷」此是後話也懊悔不了.玉,不題,可出汗流如雨父親回衙冒認收了耳關雎事曰:吉安而來.了」第一回不題第二回第九回第五回.,愈聽愈惱此是後話饒爾去罷」.意,可此是後話,愈聽愈惱」也懊悔不了覽饒爾去罷」耳關雎.此是後話,愈聽愈惱也懊悔不了饒爾去罷」.意覽事出去.,愈聽愈惱饒爾去罷」也懊悔不了.第一回第三回德泉淹羨殺.了」第十回第八回.驚異第十回第五回第七回.,可驚異曰:德泉淹矣覽第二回出」相域去.意第十一回事訖乃返己轉身耳去白圭志曰:.事」耳,可意關雎誨.事,可父親回衙曰:意出冒認收了吉安而來」去.矣出意曰:.己轉身事在一處出建章曰:樂而不淫,可後竊聽以測機去.,愈聽愈惱饒爾去罷」此是後話也懊悔不了.玉,不題,可出汗流如雨父親回衙冒認收了耳關雎事曰:吉安而來.了」第一回不題第二回第九回第五回.,愈聽愈惱此是後話饒爾去罷」.意,可此是後話,愈聽愈惱」也懊悔不了覽饒爾去罷」耳關雎.此是後話,愈聽愈惱也懊悔不了饒爾去罷」.意覽事出去.,愈聽愈惱饒爾去罷」也懊悔不了.第一回第三回德泉淹羨殺.了」第十回第八回.驚異第十回第五回第七回.,可驚異曰:德泉淹矣覽第二回出」相域去.意第十一回事訖乃返己轉身耳去白圭志曰:.事」耳,可意關雎誨.事,可父親回衙曰:意出冒認收了吉安而來」去.", + "事訖乃返己轉身,可曰:以測機意」樂而不淫誨去出.,可曰:」誨耳出意.第十一回後竊聽己轉身訖乃返建章曰:.父親回衙汗流如雨玉,不題.,可事關雎覽誨" + + ".汗流如雨覽吉安而來冒認收了」關雎出曰:矣玉,不題事父親回衙.父親回衙玉,不題吉安而來汗流如雨冒認收了.在一處己轉身訖乃返危德至" + + ".建章曰:訖乃返以測機白圭志不稱讚分得意.己轉身樂而不淫建章曰:白圭志.誨意曰:去覽」耳矣.第八回」,可招」不題耳德泉淹曰:矣誨出事" + + ".汗流如雨冒認收了吉安而來父親回衙玉,不題.矣出意曰:.己轉身事在一處出建章曰:樂而不淫,可後竊聽以測機去" + + ".,愈聽愈惱饒爾去罷」此是後話也懊悔不了.玉,不題,可出汗流如雨父親回衙冒認收了耳關雎事曰:吉安而來.了」第一回不題第二回第九回第五回" + + ".,愈聽愈惱此是後話饒爾去罷」.意,可此是後話,愈聽愈惱」也懊悔不了覽饒爾去罷」耳關雎.此是後話,愈聽愈惱也懊悔不了饒爾去罷」.意覽事出去.,愈聽愈惱饒爾去罷」也懊悔不了.第一回第三回德泉淹羨殺.了」第十回第八回.驚異第十回第五回第七回" + + ".,可驚異曰:德泉淹矣覽第二回出」相域去.意第十一回事訖乃返己轉身耳去白圭志曰:.事」耳,可意關雎誨" + + ".事,可父親回衙曰:意出冒認收了吉安而來」去.矣出意曰:.己轉身事在一處出建章曰:樂而不淫,可後竊聽以測機去" + + ".,愈聽愈惱饒爾去罷」此是後話也懊悔不了.玉,不題,可出汗流如雨父親回衙冒認收了耳關雎事曰:吉安而來.了」第一回不題第二回第九回第五回" + + ".,愈聽愈惱此是後話饒爾去罷」.意,可此是後話,愈聽愈惱」也懊悔不了覽饒爾去罷」耳關雎.此是後話,愈聽愈惱也懊悔不了饒爾去罷」.意覽事出去" + + ".,愈聽愈惱饒爾去罷」也懊悔不了.第一回第三回德泉淹羨殺.了」第十回第八回.驚異第十回第五回第七回.,可驚異曰:德泉淹矣覽第二回出」相域去" + + ".意第十一回事訖乃返己轉身耳去白圭志曰:.事」耳,可意關雎誨.事,可父親回衙曰:意出冒認收了吉安而來」去.矣出意曰:" + + ".己轉身事在一處出建章曰:樂而不淫,可後竊聽以測機去.,愈聽愈惱饒爾去罷」此是後話也懊悔不了" + + ".玉,不題,可出汗流如雨父親回衙冒認收了耳關雎事曰:吉安而來.了」第一回不題第二回第九回第五回.,愈聽愈惱此是後話饒爾去罷」" + + ".意,可此是後話,愈聽愈惱」也懊悔不了覽饒爾去罷」耳關雎.此是後話,愈聽愈惱也懊悔不了饒爾去罷」.意覽事出去.,愈聽愈惱饒爾去罷」也懊悔不了" + + ".第一回第三回德泉淹羨殺.了」第十回第八回.驚異第十回第五回第七回.,可驚異曰:德泉淹矣覽第二回出」相域去" + + ".意第十一回事訖乃返己轉身耳去白圭志曰:.事」耳,可意關雎誨.事,可父親回衙曰:意出冒認收了吉安而來」去.", true, new RelativeSizeSpan(0.8f), new JustifiedSpan(), new MyQuoteSpan(0xFFFFC801), new StyleSpan(Typeface.ITALIC), new ForegroundColorSpan(0xFF555555)); amb.append( - "矣意去出,可耳.,可意去矣不題招」德泉淹了」第二回.覽意誨事.吉安而來玉,不題父親回衙冒認收了汗流如雨.德泉淹出第六回第八回意第一回耳,可」第五回矣.樂而不淫建章曰:不稱讚第十一回訖乃返.吉安而來玉,不題父親回衙汗流如雨.曰:,可覽誨.不題德泉淹第二回第四回第十回第一回.去關雎出誨.饒爾去罷」也懊悔不了此是後話,愈聽愈惱.己轉身誨意第十一回事後竊聽去矣,可分得意」曰:.意,可出關雎覽」矣耳.出,可」事曰:耳.耳出事去.己轉身訖乃返分得意.矣吉安而來」耳冒認收了汗流如雨覽事出,可.第八回相域第三回第十回第九回.出意分得意耳覽誨第十一回關雎,可事白圭志.,愈聽愈惱饒爾去罷」也懊悔不了此是後話.矣意去出,可耳.,可意去矣不題招」德泉淹了」第二回.覽意誨事.吉安而來玉,不題父親回衙冒認收了汗流如雨.德泉淹出第六回第八回意第一回耳,可」第五回矣.樂而不淫建章曰:不稱讚第十一回訖乃返.吉安而來玉,不題父親回衙汗流如雨.曰:,可覽誨.不題德泉淹第二回第四回第十回第一回.去關雎出誨.饒爾去罷」也懊悔不了此是後話,愈聽愈惱.己轉身誨意第十一回事後竊聽去矣,可分得意」曰:.意,可出關雎覽」矣耳.出,可」事曰:耳.耳出事去.己轉身訖乃返分得意.矣吉安而來」耳冒認收了汗流如雨覽事出,可.第八回相域第三回第十回第九回.出意分得意耳覽誨第十一回關雎,可事白圭志.,愈聽愈惱饒爾去罷」也懊悔不了此是後話.矣意去出,可耳.,可意去矣不題招」德泉淹了」第二回.覽意誨事.吉安而來玉,不題父親回衙冒認收了汗流如雨.德泉淹出第六回第八回意第一回耳,可」第五回矣.樂而不淫建章曰:不稱讚第十一回訖乃返.吉安而來玉,不題父親回衙汗流如雨.曰:,可覽誨.不題德泉淹第二回第四回第十回第一回.去關雎出誨.饒爾去罷」也懊悔不了此是後話,愈聽愈惱.己轉身誨意第十一回事後竊聽去矣,可分得意」曰:.意,可出關雎覽」矣耳.出,可」事曰:耳.耳出事去.己轉身訖乃返分得意.矣吉安而來」耳冒認收了汗流如雨覽事出,可.第八回相域第三回第十回第九回.出意分得意耳覽誨第十一回關雎,可事白圭志.,愈聽愈惱饒爾去罷」也懊悔不了此是後話.", + "矣意去出,可耳.,可意去矣不題招」德泉淹了」第二回.覽意誨事.吉安而來玉,不題父親回衙冒認收了汗流如雨.德泉淹出第六回第八回意第一回耳,可」第五回矣" + + ".樂而不淫建章曰:不稱讚第十一回訖乃返.吉安而來玉,不題父親回衙汗流如雨.曰:,可覽誨.不題德泉淹第二回第四回第十回第一回.去關雎出誨" + + ".饒爾去罷」也懊悔不了此是後話,愈聽愈惱.己轉身誨意第十一回事後竊聽去矣,可分得意」曰:.意,可出關雎覽」矣耳.出,可」事曰:耳.耳出事去" + + ".己轉身訖乃返分得意.矣吉安而來」耳冒認收了汗流如雨覽事出,可.第八回相域第三回第十回第九回" + + ".出意分得意耳覽誨第十一回關雎,可事白圭志.,愈聽愈惱饒爾去罷」也懊悔不了此是後話.矣意去出,可耳.,可意去矣不題招」德泉淹了」第二回" + + ".覽意誨事.吉安而來玉,不題父親回衙冒認收了汗流如雨.德泉淹出第六回第八回意第一回耳,可」第五回矣.樂而不淫建章曰:不稱讚第十一回訖乃返" + + ".吉安而來玉,不題父親回衙汗流如雨.曰:,可覽誨.不題德泉淹第二回第四回第十回第一回.去關雎出誨.饒爾去罷」也懊悔不了此是後話,愈聽愈惱" + + ".己轉身誨意第十一回事後竊聽去矣,可分得意」曰:.意,可出關雎覽」矣耳.出,可」事曰:耳.耳出事去.己轉身訖乃返分得意" + + ".矣吉安而來」耳冒認收了汗流如雨覽事出,可.第八回相域第三回第十回第九回.出意分得意耳覽誨第十一回關雎,可事白圭志" + + ".,愈聽愈惱饒爾去罷」也懊悔不了此是後話.矣意去出,可耳.,可意去矣不題招」德泉淹了」第二回.覽意誨事.吉安而來玉,不題父親回衙冒認收了汗流如雨" + + ".德泉淹出第六回第八回意第一回耳,可」第五回矣.樂而不淫建章曰:不稱讚第十一回訖乃返.吉安而來玉,不題父親回衙汗流如雨.曰:,可覽誨" + + ".不題德泉淹第二回第四回第十回第一回.去關雎出誨.饒爾去罷」也懊悔不了此是後話,愈聽愈惱" + + ".己轉身誨意第十一回事後竊聽去矣,可分得意」曰:.意,可出關雎覽」矣耳.出,可」事曰:耳.耳出事去.己轉身訖乃返分得意" + + ".矣吉安而來」耳冒認收了汗流如雨覽事出,可.第八回相域第三回第十回第九回.出意分得意耳覽誨第十一回關雎,可事白圭志" + + ".,愈聽愈惱饒爾去罷」也懊悔不了此是後話.", true, new RelativeSizeSpan(0.8f), new JustifiedSpan()); amb.append( - "意關雎去覽矣曰:誨.去曰:覽關雎事意.意出關雎耳誨去覽.」事第八回不題曰:羨殺第三回誨第一回.去,可耳意關雎誨矣覽.曰:」出誨意事,可.父親回衙汗流如雨玉,不題冒認收了.第十一回樂而不淫以測機建章曰:危德至.訖乃返不稱讚第十一回建章曰:意己轉身關雎事後竊聽曰:去誨覽.去關雎耳,可」曰:矣.意矣」,可曰:.去意覽,可.父親回衙」出玉,不題誨事,可吉安而來冒認收了去曰:覽.耳此是後話,愈聽愈惱也懊悔不了曰:矣饒爾去罷」去出」.冒認收了汗流如雨吉安而來.誨」矣關雎事曰:覽,可.誨」曰:耳覽去關雎意.關雎事羨殺,可第十回耳了」招」矣德泉淹第七回覽去.饒爾去罷」也懊悔不了耳覽此是後話,愈聽愈惱,可矣」.第二回德泉淹第一回第七回不題第九回.在一處以測機分得意不稱讚.矣,可事曰:去意」.也懊悔不了此是後話,愈聽愈惱饒爾去罷」.意關雎去覽矣曰:誨.去曰:覽關雎事意.意出關雎耳誨去覽.」事第八回不題曰:羨殺第三回誨第一回.去,可耳意關雎誨矣覽.曰:」出誨意事,可.父親回衙汗流如雨玉,不題冒認收了.第十一回樂而不淫以測機建章曰:危德至.訖乃返不稱讚第十一回建章曰:意己轉身關雎事後竊聽曰:去誨覽.去關雎耳,可」曰:矣.意矣」,可曰:.去意覽,可.父親回衙」出玉,不題誨事,可吉安而來冒認收了去曰:覽.耳此是後話,愈聽愈惱也懊悔不了曰:矣饒爾去罷」去出」.冒認收了汗流如雨吉安而來.誨」矣關雎事曰:覽,可.誨」曰:耳覽去關雎意.關雎事羨殺,可第十回耳了」招」矣德泉淹第七回覽去.饒爾去罷」也懊悔不了耳覽此是後話,愈聽愈惱,可矣」.第二回德泉淹第一回第七回不題第九回.在一處以測機分得意不稱讚.矣,可事曰:去意」.也懊悔不了此是後話,愈聽愈惱饒爾去罷」.意關雎去覽矣曰:誨.去曰:覽關雎事意.意出關雎耳誨去覽.」事第八回不題曰:羨殺第三回誨第一回.去,可耳意關雎誨矣覽.曰:」出誨意事,可.父親回衙汗流如雨玉,不題冒認收了.第十一回樂而不淫以測機建章曰:危德至.訖乃返不稱讚第十一回建章曰:意己轉身關雎事後竊聽曰:去誨覽.去關雎耳,可」曰:矣.意矣」,可曰:.去意覽,可.父親回衙」出玉,不題誨事,可吉安而來冒認收了去曰:覽.耳此是後話,愈聽愈惱也懊悔不了曰:矣饒爾去罷」去出」.冒認收了汗流如雨吉安而來.誨」矣關雎事曰:覽,可.誨」曰:耳覽去關雎意.關雎事羨殺,可第十回耳了」招」矣德泉淹第七回覽去.饒爾去罷」也懊悔不了耳覽此是後話,愈聽愈惱,可矣」.第二回德泉淹第一回第七回不題第九回.在一處以測機分得意不稱讚.矣,可事曰:去意」.也懊悔不了此是後話,愈聽愈惱饒爾去罷」.意關雎去覽矣曰:誨.去曰:覽關雎事意.意出關雎耳誨去覽.」事第八回不題曰:羨殺第三回誨第一回.去,可耳意關雎誨矣覽.曰:」出誨意事,可.父親回衙汗流如雨玉,不題冒認收了.第十一回樂而不淫以測機建章曰:危德至.訖乃返不稱讚第十一回建章曰:意己轉身關雎事後竊聽曰:去誨覽.去關雎耳,可」曰:矣.意矣」,可曰:.去意覽,可.父親回衙」出玉,不題誨事,可吉安而來冒認收了去曰:覽.耳此是後話,愈聽愈惱也懊悔不了曰:矣饒爾去罷」去出」.冒認收了汗流如雨吉安而來.誨」矣關雎事曰:覽,可.誨」曰:耳覽去關雎意.關雎事羨殺,可第十回耳了」招」矣德泉淹第七回覽去.饒爾去罷」也懊悔不了耳覽此是後話,愈聽愈惱,可矣」.第二回德泉淹第一回第七回不題第九回.在一處以測機分得意不稱讚.矣,可事曰:去意」.也懊悔不了此是後話,愈聽愈惱饒爾去罷」.", + "意關雎去覽矣曰:誨.去曰:覽關雎事意.意出關雎耳誨去覽.」事第八回不題曰:羨殺第三回誨第一回.去,可耳意關雎誨矣覽.曰:」出誨意事,可" + + ".父親回衙汗流如雨玉,不題冒認收了.第十一回樂而不淫以測機建章曰:危德至.訖乃返不稱讚第十一回建章曰:意己轉身關雎事後竊聽曰:去誨覽" + + ".去關雎耳,可」曰:矣.意矣」,可曰:.去意覽,可.父親回衙」出玉,不題誨事,可吉安而來冒認收了去曰:覽" + + ".耳此是後話,愈聽愈惱也懊悔不了曰:矣饒爾去罷」去出」.冒認收了汗流如雨吉安而來.誨」矣關雎事曰:覽,可.誨」曰:耳覽去關雎意" + + ".關雎事羨殺,可第十回耳了」招」矣德泉淹第七回覽去.饒爾去罷」也懊悔不了耳覽此是後話,愈聽愈惱,可矣」.第二回德泉淹第一回第七回不題第九回" + + ".在一處以測機分得意不稱讚.矣,可事曰:去意」.也懊悔不了此是後話,愈聽愈惱饒爾去罷」.意關雎去覽矣曰:誨.去曰:覽關雎事意.意出關雎耳誨去覽.」事第八回不題曰:羨殺第三回誨第一回.去,可耳意關雎誨矣覽.曰:」出誨意事,可" + + ".父親回衙汗流如雨玉,不題冒認收了.第十一回樂而不淫以測機建章曰:危德至.訖乃返不稱讚第十一回建章曰:意己轉身關雎事後竊聽曰:去誨覽" + + ".去關雎耳,可」曰:矣.意矣」,可曰:.去意覽,可.父親回衙」出玉,不題誨事,可吉安而來冒認收了去曰:覽" + + ".耳此是後話,愈聽愈惱也懊悔不了曰:矣饒爾去罷」去出」.冒認收了汗流如雨吉安而來.誨」矣關雎事曰:覽,可.誨」曰:耳覽去關雎意" + + ".關雎事羨殺,可第十回耳了」招」矣德泉淹第七回覽去.饒爾去罷」也懊悔不了耳覽此是後話,愈聽愈惱,可矣」.第二回德泉淹第一回第七回不題第九回" + + ".在一處以測機分得意不稱讚.矣,可事曰:去意」.也懊悔不了此是後話,愈聽愈惱饒爾去罷」.意關雎去覽矣曰:誨.去曰:覽關雎事意.意出關雎耳誨去覽" + + ".」事第八回不題曰:羨殺第三回誨第一回.去,可耳意關雎誨矣覽.曰:」出誨意事,可.父親回衙汗流如雨玉,不題冒認收了" + + ".第十一回樂而不淫以測機建章曰:危德至.訖乃返不稱讚第十一回建章曰:意己轉身關雎事後竊聽曰:去誨覽.去關雎耳,可」曰:矣.意矣」,可曰:" + + ".去意覽,可.父親回衙」出玉,不題誨事,可吉安而來冒認收了去曰:覽.耳此是後話,愈聽愈惱也懊悔不了曰:矣饒爾去罷」去出」" + + ".冒認收了汗流如雨吉安而來.誨」矣關雎事曰:覽,可.誨」曰:耳覽去關雎意.關雎事羨殺,可第十回耳了」招」矣德泉淹第七回覽去" + + ".饒爾去罷」也懊悔不了耳覽此是後話,愈聽愈惱,可矣」.第二回德泉淹第一回第七回不題第九回.在一處以測機分得意不稱讚.矣,可事曰:去意」" + + ".也懊悔不了此是後話,愈聽愈惱饒爾去罷」.意關雎去覽矣曰:誨.去曰:覽關雎事意.意出關雎耳誨去覽.」事第八回不題曰:羨殺第三回誨第一回" + + ".去,可耳意關雎誨矣覽.曰:」出誨意事,可.父親回衙汗流如雨玉,不題冒認收了.第十一回樂而不淫以測機建章曰:危德至" + + ".訖乃返不稱讚第十一回建章曰:意己轉身關雎事後竊聽曰:去誨覽.去關雎耳,可」曰:矣.意矣」,可曰:.去意覽,可" + + ".父親回衙」出玉,不題誨事,可吉安而來冒認收了去曰:覽.耳此是後話,愈聽愈惱也懊悔不了曰:矣饒爾去罷」去出」.冒認收了汗流如雨吉安而來" + + ".誨」矣關雎事曰:覽,可.誨」曰:耳覽去關雎意.關雎事羨殺,可第十回耳了」招」矣德泉淹第七回覽去" + + ".饒爾去罷」也懊悔不了耳覽此是後話,愈聽愈惱,可矣」.第二回德泉淹第一回第七回不題第九回.在一處以測機分得意不稱讚.矣,可事曰:去意」" + + ".也懊悔不了此是後話,愈聽愈惱饒爾去罷」.", true, new RelativeSizeSpan(1.3f), new JustifiedSpan()); amb.append( - "誨曰:覽出關雎.曰:,可矣誨事.意誨耳關雎出曰:去.覽吉安而來出父親回衙汗流如雨意誨」,可關雎玉,不題.關雎」出意覽去矣.以測機在一處訖乃返建章曰:.父親回衙汗流如雨吉安而來玉,不題.出曰:,可矣.曰:關雎誨覽耳.去父親回衙,可汗流如雨玉,不題意事誨曰:耳覽.關雎出,可意覽曰:」.事曰:,可矣去誨關雎.事覽誨關雎出矣.貢院第九回不題羨殺第八回第三回.第四回第一回第九回貢院.,可曰:吉安而來父親回衙汗流如雨玉,不題耳意.」曰:出關雎.第十回驚異德泉淹貢院.分得意己轉身建章曰:訖乃返.誨曰:覽出關雎.曰:,可矣誨事.意誨耳關雎出曰:去.覽吉安而來出父親回衙汗流如雨意誨」,可關雎玉,不題.關雎」出意覽去矣.以測機在一處訖乃返建章曰:.父親回衙汗流如雨吉安而來玉,不題.出曰:,可矣.曰:關雎誨覽耳.去父親回衙,可汗流如雨玉,不題意事誨曰:耳覽.關雎出,可意覽曰:」.事曰:,可矣去誨關雎.事覽誨關雎出矣.貢院第九回不題羨殺第八回第三回.第四回第一回第九回貢院.,可曰:吉安而來父親回衙汗流如雨玉,不題耳意.」曰:出關雎.第十回驚異德泉淹貢院.分得意己轉身建章曰:訖乃返.誨曰:覽出關雎.曰:,可矣誨事.意誨耳關雎出曰:去.覽吉安而來出父親回衙汗流如雨意誨」,可關雎玉,不題.關雎」出意覽去矣.以測機在一處訖乃返建章曰:.父親回衙汗流如雨吉安而來玉,不題.出曰:,可矣.曰:關雎誨覽耳.去父親回衙,可汗流如雨玉,不題意事誨曰:耳覽.關雎出,可意覽曰:」.事曰:,可矣去誨關雎.事覽誨關雎出矣.貢院第九回不題羨殺第八回第三回.第四回第一回第九回貢院.,可曰:吉安而來父親回衙汗流如雨玉,不題耳意.」曰:出關雎.第十回驚異德泉淹貢院.分得意己轉身建章曰:訖乃返.誨曰:覽出關雎.曰:,可矣誨事.意誨耳關雎出曰:去.覽吉安而來出父親回衙汗流如雨意誨」,可關雎玉,不題.關雎」出意覽去矣.以測機在一處訖乃返建章曰:.父親回衙汗流如雨吉安而來玉,不題.出曰:,可矣.曰:關雎誨覽耳.去父親回衙,可汗流如雨玉,不題意事誨曰:耳覽.關雎出,可意覽曰:」.事曰:,可矣去誨關雎.事覽誨關雎出矣.貢院第九回不題羨殺第八回第三回.第四回第一回第九回貢院.,可曰:吉安而來父親回衙汗流如雨玉,不題耳意.」曰:出關雎.第十回驚異德泉淹貢院.分得意己轉身建章曰:訖乃返.", + "誨曰:覽出關雎.曰:,可矣誨事.意誨耳關雎出曰:去.覽吉安而來出父親回衙汗流如雨意誨」,可關雎玉,不題.關雎」出意覽去矣.以測機在一處訖乃返建章曰:" + + ".父親回衙汗流如雨吉安而來玉,不題.出曰:,可矣.曰:關雎誨覽耳.去父親回衙,可汗流如雨玉,不題意事誨曰:耳覽.關雎出,可意覽曰:」" + + ".事曰:,可矣去誨關雎.事覽誨關雎出矣.貢院第九回不題羨殺第八回第三回.第四回第一回第九回貢院.,可曰:吉安而來父親回衙汗流如雨玉,不題耳意" + + ".」曰:出關雎.第十回驚異德泉淹貢院.分得意己轉身建章曰:訖乃返.誨曰:覽出關雎.曰:,可矣誨事.意誨耳關雎出曰:去" + + ".覽吉安而來出父親回衙汗流如雨意誨」,可關雎玉,不題.關雎」出意覽去矣.以測機在一處訖乃返建章曰:.父親回衙汗流如雨吉安而來玉,不題" + + ".出曰:,可矣.曰:關雎誨覽耳.去父親回衙,可汗流如雨玉,不題意事誨曰:耳覽.關雎出,可意覽曰:」.事曰:,可矣去誨關雎.事覽誨關雎出矣.貢院第九回不題羨殺第八回第三回.第四回第一回第九回貢院.,可曰:吉安而來父親回衙汗流如雨玉,不題耳意" + + ".」曰:出關雎.第十回驚異德泉淹貢院.分得意己轉身建章曰:訖乃返.誨曰:覽出關雎.曰:,可矣誨事.意誨耳關雎出曰:去" + + ".覽吉安而來出父親回衙汗流如雨意誨」,可關雎玉,不題.關雎」出意覽去矣.以測機在一處訖乃返建章曰:.父親回衙汗流如雨吉安而來玉,不題" + + ".出曰:,可矣.曰:關雎誨覽耳.去父親回衙,可汗流如雨玉,不題意事誨曰:耳覽.關雎出,可意覽曰:」.事曰:,可矣去誨關雎.事覽誨關雎出矣" + + ".貢院第九回不題羨殺第八回第三回.第四回第一回第九回貢院.,可曰:吉安而來父親回衙汗流如雨玉,不題耳意.」曰:出關雎" + + ".第十回驚異德泉淹貢院.分得意己轉身建章曰:訖乃返.誨曰:覽出關雎.曰:,可矣誨事.意誨耳關雎出曰:去" + + ".覽吉安而來出父親回衙汗流如雨意誨」,可關雎玉,不題.關雎」出意覽去矣.以測機在一處訖乃返建章曰:.父親回衙汗流如雨吉安而來玉,不題" + + ".出曰:,可矣.曰:關雎誨覽耳.去父親回衙,可汗流如雨玉,不題意事誨曰:耳覽.關雎出,可意覽曰:」.事曰:,可矣去誨關雎.事覽誨關雎出矣" + + ".貢院第九回不題羨殺第八回第三回.第四回第一回第九回貢院.,可曰:吉安而來父親回衙汗流如雨玉,不題耳意.」曰:出關雎.第十回驚異德泉淹貢院" + + ".分得意己轉身建章曰:訖乃返.", true, new RelativeSizeSpan(0.8f), new JustifiedSpan()); amb.append( - "意矣去出誨關雎耳.饒爾去罷」此是後話也懊悔不了,愈聽愈惱.曰:」耳去事矣關雎出.去意出,可.曰:耳」事.耳覽去曰:矣事」意.不稱讚樂而不淫在一處己轉身.第二回第九回第七回.第九回第二回第八回羨殺第六回.第四回第二回第五回羨殺.汗流如雨玉,不題吉安而來父親回衙.玉,不題汗流如雨吉安而來冒認收了父親回衙.關雎誨曰:去.父親回衙冒認收了吉安而來.饒爾去罷」也懊悔不了,愈聽愈惱此是後話.以測機不稱讚樂而不淫第十一回建章曰:.第三回」第二回第六回誨出了」第十回耳矣.出矣誨覽關雎」去事.也懊悔不了,愈聽愈惱饒爾去罷」.第二回覽矣第一回」第七回相域誨意第八回去出.驚異意招」出第二回德泉淹第十回關雎覽第四回誨曰:.也懊悔不了事饒爾去罷」誨」此是後話出矣去覽意.曰:出,可意意矣去出誨關雎耳.饒爾去罷」此是後話也懊悔不了,愈聽愈惱.曰:」耳去事矣關雎出.去意出,可.曰:耳」事.耳覽去曰:矣事」意.不稱讚樂而不淫在一處己轉身.第二回第九回第七回.第九回第二回第八回羨殺第六回.第四回第二回第五回羨殺.汗流如雨玉,不題吉安而來父親回衙.玉,不題汗流如雨吉安而來冒認收了父親回衙.關雎誨曰:去.父親回衙冒認收了吉安而來.饒爾去罷」也懊悔不了,愈聽愈惱此是後話.以測機不稱讚樂而不淫第十一回建章曰:.第三回」第二回第六回誨出了」第十回耳矣.出矣誨覽關雎」去事.也懊悔不了,愈聽愈惱饒爾去罷」.第二回覽矣第一回」第七回相域誨意第八回去出.驚異意招」出第二回德泉淹第十回關雎覽第四回誨曰:.也懊悔不了事饒爾去罷」誨」此是後話出矣去覽意.曰:出,可意意矣去出誨關雎耳.饒爾去罷」此是後話也懊悔不了,愈聽愈惱.曰:」耳去事矣關雎出.去意出,可.曰:耳」事.耳覽去曰:矣事」意.不稱讚樂而不淫在一處己轉身.第二回第九回第七回.第九回第二回第八回羨殺第六回.第四回第二回第五回羨殺.汗流如雨玉,不題吉安而來父親回衙.玉,不題汗流如雨吉安而來冒認收了父親回衙.關雎誨曰:去.父親回衙冒認收了吉安而來.饒爾去罷」也懊悔不了,愈聽愈惱此是後話.以測機不稱讚樂而不淫第十一回建章曰:.第三回」第二回第六回誨出了」第十回耳矣.出矣誨覽關雎」去事.也懊悔不了,愈聽愈惱饒爾去罷」.第二回覽矣第一回」第七回相域誨意第八回去出.驚異意招」出第二回德泉淹第十回關雎覽第四回誨曰:.也懊悔不了事饒爾去罷」誨」此是後話出矣去覽意.曰:出,可意意矣去出誨關雎耳.饒爾去罷」此是後話也懊悔不了,愈聽愈惱.曰:」耳去事矣關雎出.去意出,可.曰:耳」事.耳覽去曰:矣事」意.不稱讚樂而不淫在一處己轉身.第二回第九回第七回.第九回第二回第八回羨殺第六回.第四回第二回第五回羨殺.汗流如雨玉,不題吉安而來父親回衙.玉,不題汗流如雨吉安而來冒認收了父親回衙.關雎誨曰:去.父親回衙冒認收了吉安而來.饒爾去罷」也懊悔不了,愈聽愈惱此是後話.以測機不稱讚樂而不淫第十一回建章曰:.第三回」第二回第六回誨出了」第十回耳矣.出矣誨覽關雎」去事.也懊悔不了,愈聽愈惱饒爾去罷」.第二回覽矣第一回」第七回相域誨意第八回去出.驚異意招」出第二回德泉淹第十回關雎覽第四回誨曰:.也懊悔不了事饒爾去罷」誨」此是後話出矣去覽意.曰:出,可意意矣去出誨關雎耳.饒爾去罷」此是後話也懊悔不了,愈聽愈惱.曰:」耳去事矣關雎出.去意出,可.曰:耳」事.耳覽去曰:矣事」意.不稱讚樂而不淫在一處己轉身.第二回第九回第七回.第九回第二回第八回羨殺第六回.第四回第二回第五回羨殺.汗流如雨玉,不題吉安而來父親回衙.玉,不題汗流如雨吉安而來冒認收了父親回衙.關雎誨曰:去.父親回衙冒認收了吉安而來.饒爾去罷」也懊悔不了,愈聽愈惱此是後話.以測機不稱讚樂而不淫第十一回建章曰:.第三回」第二回第六回誨出了」第十回耳矣.出矣誨覽關雎」去事.也懊悔不了,愈聽愈惱饒爾去罷」.第二回覽矣第一回」第七回相域誨意第八回去出.驚異意招」出第二回德泉淹第十回關雎覽第四回誨曰:.也懊悔不了事饒爾去罷」誨」此是後話出矣去覽意.曰:出,可意", + "意矣去出誨關雎耳.饒爾去罷」此是後話也懊悔不了,愈聽愈惱.曰:」耳去事矣關雎出.去意出,可.曰:耳」事.耳覽去曰:矣事」意.不稱讚樂而不淫在一處己轉身" + + ".第二回第九回第七回.第九回第二回第八回羨殺第六回.第四回第二回第五回羨殺.汗流如雨玉,不題吉安而來父親回衙" + + ".玉,不題汗流如雨吉安而來冒認收了父親回衙.關雎誨曰:去.父親回衙冒認收了吉安而來.饒爾去罷」也懊悔不了,愈聽愈惱此是後話" + + ".以測機不稱讚樂而不淫第十一回建章曰:.第三回」第二回第六回誨出了」第十回耳矣.出矣誨覽關雎」去事.也懊悔不了,愈聽愈惱饒爾去罷」" + + ".第二回覽矣第一回」第七回相域誨意第八回去出.驚異意招」出第二回德泉淹第十回關雎覽第四回誨曰:.也懊悔不了事饒爾去罷」誨」此是後話出矣去覽意" + + ".曰:出,可意意矣去出誨關雎耳.饒爾去罷」此是後話也懊悔不了,愈聽愈惱.曰:」耳去事矣關雎出.去意出,可.曰:耳」事.耳覽去曰:矣事」意" + + ".不稱讚樂而不淫在一處己轉身.第二回第九回第七回.第九回第二回第八回羨殺第六回.第四回第二回第五回羨殺.汗流如雨玉,不題吉安而來父親回衙" + + ".玉,不題汗流如雨吉安而來冒認收了父親回衙.關雎誨曰:去.父親回衙冒認收了吉安而來.饒爾去罷」也懊悔不了,愈聽愈惱此是後話" + + ".以測機不稱讚樂而不淫第十一回建章曰:.第三回」第二回第六回誨出了」第十回耳矣.出矣誨覽關雎」去事.也懊悔不了,愈聽愈惱饒爾去罷」" + + ".第二回覽矣第一回」第七回相域誨意第八回去出.驚異意招」出第二回德泉淹第十回關雎覽第四回誨曰:.也懊悔不了事饒爾去罷」誨」此是後話出矣去覽意" + + ".曰:出,可意意矣去出誨關雎耳.饒爾去罷」此是後話也懊悔不了,愈聽愈惱.曰:」耳去事矣關雎出.去意出,可.曰:耳」事.耳覽去曰:矣事」意" + + ".不稱讚樂而不淫在一處己轉身.第二回第九回第七回.第九回第二回第八回羨殺第六回.第四回第二回第五回羨殺.汗流如雨玉,不題吉安而來父親回衙" + + ".玉,不題汗流如雨吉安而來冒認收了父親回衙.關雎誨曰:去.父親回衙冒認收了吉安而來.饒爾去罷」也懊悔不了,愈聽愈惱此是後話" + + ".以測機不稱讚樂而不淫第十一回建章曰:.第三回」第二回第六回誨出了」第十回耳矣.出矣誨覽關雎」去事.也懊悔不了,愈聽愈惱饒爾去罷」" + + ".第二回覽矣第一回」第七回相域誨意第八回去出.驚異意招」出第二回德泉淹第十回關雎覽第四回誨曰:.也懊悔不了事饒爾去罷」誨」此是後話出矣去覽意" + + ".曰:出,可意意矣去出誨關雎耳.饒爾去罷」此是後話也懊悔不了,愈聽愈惱.曰:」耳去事矣關雎出.去意出,可.曰:耳」事.耳覽去曰:矣事」意" + + ".不稱讚樂而不淫在一處己轉身.第二回第九回第七回.第九回第二回第八回羨殺第六回.第四回第二回第五回羨殺.汗流如雨玉,不題吉安而來父親回衙" + + ".玉,不題汗流如雨吉安而來冒認收了父親回衙.關雎誨曰:去.父親回衙冒認收了吉安而來.饒爾去罷」也懊悔不了,愈聽愈惱此是後話" + + ".以測機不稱讚樂而不淫第十一回建章曰:.第三回」第二回第六回誨出了」第十回耳矣.出矣誨覽關雎」去事.也懊悔不了,愈聽愈惱饒爾去罷」" + + ".第二回覽矣第一回」第七回相域誨意第八回去出.驚異意招」出第二回德泉淹第十回關雎覽第四回誨曰:.也懊悔不了事饒爾去罷」誨」此是後話出矣去覽意" + + ".曰:出,可意意矣去出誨關雎耳.饒爾去罷」此是後話也懊悔不了,愈聽愈惱.曰:」耳去事矣關雎出.去意出,可.曰:耳」事.耳覽去曰:矣事」意" + + ".不稱讚樂而不淫在一處己轉身.第二回第九回第七回.第九回第二回第八回羨殺第六回.第四回第二回第五回羨殺.汗流如雨玉,不題吉安而來父親回衙" + + ".玉,不題汗流如雨吉安而來冒認收了父親回衙.關雎誨曰:去.父親回衙冒認收了吉安而來.饒爾去罷」也懊悔不了,愈聽愈惱此是後話" + + ".以測機不稱讚樂而不淫第十一回建章曰:.第三回」第二回第六回誨出了」第十回耳矣.出矣誨覽關雎」去事.也懊悔不了,愈聽愈惱饒爾去罷」" + + ".第二回覽矣第一回」第七回相域誨意第八回去出.驚異意招」出第二回德泉淹第十回關雎覽第四回誨曰:.也懊悔不了事饒爾去罷」誨」此是後話出矣去覽意" + + ".曰:出,可意", false, new RelativeSizeSpan(0.8f), new JustifiedSpan(), new StyleSpan(Typeface.ITALIC)); diff --git a/sample/src/main/java/com/bluejamesbond/text/sample/test/ClickableSpanTest.java b/sample/src/main/java/com/bluejamesbond/text/sample/test/ClickableSpanTest.java index b0f4d44..d7b2d85 100644 --- a/sample/src/main/java/com/bluejamesbond/text/sample/test/ClickableSpanTest.java +++ b/sample/src/main/java/com/bluejamesbond/text/sample/test/ClickableSpanTest.java @@ -39,7 +39,7 @@ import com.bluejamesbond.text.DocumentView; import com.bluejamesbond.text.hyphen.SqueezeHyphenator; -import com.bluejamesbond.text.sample.helper.ArticleBuilder; +import com.bluejamesbond.text.util.ArticleBuilder; import com.bluejamesbond.text.sample.helper.MyQuoteSpan; import com.bluejamesbond.text.sample.helper.TestActivity; import com.bluejamesbond.text.style.JustifiedSpan; diff --git a/sample/src/main/java/com/bluejamesbond/text/sample/test/ImageSpanTest.java b/sample/src/main/java/com/bluejamesbond/text/sample/test/ImageSpanTest.java index 0d5cc4a..20c0a5b 100644 --- a/sample/src/main/java/com/bluejamesbond/text/sample/test/ImageSpanTest.java +++ b/sample/src/main/java/com/bluejamesbond/text/sample/test/ImageSpanTest.java @@ -37,7 +37,7 @@ import com.bluejamesbond.text.DocumentView; import com.bluejamesbond.text.sample.R; -import com.bluejamesbond.text.sample.helper.ArticleBuilder; +import com.bluejamesbond.text.util.ArticleBuilder; import com.bluejamesbond.text.sample.helper.MyQuoteSpan; import com.bluejamesbond.text.sample.helper.TestActivity; import com.bluejamesbond.text.style.CenterSpan; diff --git a/sample/src/main/java/com/bluejamesbond/text/sample/test/LeadingMarginSpan2Test.java b/sample/src/main/java/com/bluejamesbond/text/sample/test/LeadingMarginSpan2Test.java index 5065ba0..d9f2b46 100644 --- a/sample/src/main/java/com/bluejamesbond/text/sample/test/LeadingMarginSpan2Test.java +++ b/sample/src/main/java/com/bluejamesbond/text/sample/test/LeadingMarginSpan2Test.java @@ -35,7 +35,7 @@ import android.text.style.StyleSpan; import com.bluejamesbond.text.DocumentView; -import com.bluejamesbond.text.sample.helper.ArticleBuilder; +import com.bluejamesbond.text.util.ArticleBuilder; import com.bluejamesbond.text.sample.helper.MyLeadingMarginSpan2; import com.bluejamesbond.text.sample.helper.TestActivity; import com.bluejamesbond.text.style.JustifiedSpan; diff --git a/sample/src/main/java/com/bluejamesbond/text/sample/test/LongFormattedTextTest.java b/sample/src/main/java/com/bluejamesbond/text/sample/test/LongFormattedTextTest.java index a1c15af..a8f30c0 100644 --- a/sample/src/main/java/com/bluejamesbond/text/sample/test/LongFormattedTextTest.java +++ b/sample/src/main/java/com/bluejamesbond/text/sample/test/LongFormattedTextTest.java @@ -35,7 +35,7 @@ import android.text.style.StyleSpan; import com.bluejamesbond.text.DocumentView; -import com.bluejamesbond.text.sample.helper.ArticleBuilder; +import com.bluejamesbond.text.util.ArticleBuilder; import com.bluejamesbond.text.sample.helper.MyQuoteSpan; import com.bluejamesbond.text.sample.helper.TestActivity; import com.bluejamesbond.text.style.CenterSpan; diff --git a/sample/src/main/java/com/bluejamesbond/text/sample/test/MixedRTLTest.java b/sample/src/main/java/com/bluejamesbond/text/sample/test/MixedRTLTest.java index 997b5b3..350f751 100644 --- a/sample/src/main/java/com/bluejamesbond/text/sample/test/MixedRTLTest.java +++ b/sample/src/main/java/com/bluejamesbond/text/sample/test/MixedRTLTest.java @@ -35,7 +35,7 @@ import android.text.style.StyleSpan; import com.bluejamesbond.text.DocumentView; -import com.bluejamesbond.text.sample.helper.ArticleBuilder; +import com.bluejamesbond.text.util.ArticleBuilder; import com.bluejamesbond.text.sample.helper.TestActivity; import com.bluejamesbond.text.style.Direction; import com.bluejamesbond.text.style.DirectionSpan; diff --git a/sample/src/main/java/com/bluejamesbond/text/sample/test/QuoteSpanTest.java b/sample/src/main/java/com/bluejamesbond/text/sample/test/QuoteSpanTest.java index 86d97ca..f6ca3fc 100644 --- a/sample/src/main/java/com/bluejamesbond/text/sample/test/QuoteSpanTest.java +++ b/sample/src/main/java/com/bluejamesbond/text/sample/test/QuoteSpanTest.java @@ -36,7 +36,7 @@ import android.text.style.StyleSpan; import com.bluejamesbond.text.DocumentView; -import com.bluejamesbond.text.sample.helper.ArticleBuilder; +import com.bluejamesbond.text.util.ArticleBuilder; import com.bluejamesbond.text.sample.helper.MyQuoteSpan; import com.bluejamesbond.text.sample.helper.TestActivity; import com.bluejamesbond.text.style.JustifiedSpan; diff --git a/sample/src/main/java/com/bluejamesbond/text/sample/test/RTLTest.java b/sample/src/main/java/com/bluejamesbond/text/sample/test/RTLTest.java index 8213fb3..f4f9d24 100644 --- a/sample/src/main/java/com/bluejamesbond/text/sample/test/RTLTest.java +++ b/sample/src/main/java/com/bluejamesbond/text/sample/test/RTLTest.java @@ -35,7 +35,7 @@ import android.text.style.StyleSpan; import com.bluejamesbond.text.DocumentView; -import com.bluejamesbond.text.sample.helper.ArticleBuilder; +import com.bluejamesbond.text.util.ArticleBuilder; import com.bluejamesbond.text.sample.helper.TestActivity; import com.bluejamesbond.text.style.JustifiedSpan; import com.bluejamesbond.text.style.RightSpan; diff --git a/sample/src/main/java/com/bluejamesbond/text/sample/test/ShortFormattedTextTest.java b/sample/src/main/java/com/bluejamesbond/text/sample/test/ShortFormattedTextTest.java index 038e7b9..acad29e 100644 --- a/sample/src/main/java/com/bluejamesbond/text/sample/test/ShortFormattedTextTest.java +++ b/sample/src/main/java/com/bluejamesbond/text/sample/test/ShortFormattedTextTest.java @@ -35,13 +35,12 @@ import android.text.style.StyleSpan; import com.bluejamesbond.text.DocumentView; -import com.bluejamesbond.text.sample.helper.ArticleBuilder; +import com.bluejamesbond.text.util.ArticleBuilder; import com.bluejamesbond.text.sample.helper.MyQuoteSpan; import com.bluejamesbond.text.sample.helper.TestActivity; import com.bluejamesbond.text.style.CenterSpan; import com.bluejamesbond.text.style.JustifiedSpan; import com.bluejamesbond.text.style.LeftSpan; -import com.bluejamesbond.text.style.RightSpan; public class ShortFormattedTextTest extends TestActivity {