diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index 30aa626..0000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/HtmlSpanner/build.gradle b/HtmlSpanner/build.gradle
index 8f2ad5a..c0b6b0c 100644
--- a/HtmlSpanner/build.gradle
+++ b/HtmlSpanner/build.gradle
@@ -38,7 +38,7 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'net.sourceforge.htmlcleaner:htmlcleaner:2.16'
implementation 'com.osbcp.cssparser:cssparser:1.5'
- implementation 'io.reactivex:rxjava:1.2.10'
+ implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
}
diff --git a/HtmlSpanner/src/main/java/com/sysdata/htmlspanner/handlers/TableHandler.java b/HtmlSpanner/src/main/java/com/sysdata/htmlspanner/handlers/TableHandler.java
index 755dbf5..b712c53 100644
--- a/HtmlSpanner/src/main/java/com/sysdata/htmlspanner/handlers/TableHandler.java
+++ b/HtmlSpanner/src/main/java/com/sysdata/htmlspanner/handlers/TableHandler.java
@@ -53,6 +53,7 @@ public class TableHandler extends TagNodeHandler {
private int textColor = Color.BLACK;
private static final int PADDING = 5;
+ private boolean hasHeader;
/**
* Sets how wide the table should be.
@@ -116,6 +117,7 @@ private void readNode(Object node, Table table) {
}
if (tagNode.getName().equals("th")) {
+ hasHeader = true;
Spanned result = this.getSpanner().fromTagNode(tagNode, null);
table.addCell(result);
return;
@@ -192,11 +194,12 @@ public void handleTagNode(TagNode node, SpannableStringBuilder builder,
List row = table.getRows().get(i);
builder.append("\uFFFC");
- TableRowDrawable drawable = new TableRowDrawable(row, table.isDrawBorder());
+ TableRowDrawable drawable = new TableRowDrawable(row, table.isDrawBorder(), i == 0 && hasHeader ? Alignment.ALIGN_CENTER : Alignment.ALIGN_NORMAL);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
- builder.setSpan(new ImageSpan(drawable), start + i, builder.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ int index = i == 0 ? start : builder.length() - 1;
+ builder.setSpan(new ImageSpan(drawable), index, builder.length(),Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
builder.append("\n");
}
@@ -205,7 +208,7 @@ public void handleTagNode(TagNode node, SpannableStringBuilder builder,
the last row would appear detached.
*/
builder.append("\uFFFC");
- Drawable drawable = new TableRowDrawable(new ArrayList(), table.isDrawBorder());
+ Drawable drawable = new TableRowDrawable(new ArrayList(), table.isDrawBorder(), Alignment.ALIGN_NORMAL);
drawable.setBounds(0, 0, tableWidth, 1);
builder.setSpan(new ImageSpan(drawable), builder.length() -1, builder.length(),
@@ -231,15 +234,17 @@ public Alignment getAlignment() {
*/
private class TableRowDrawable extends Drawable {
+ private final Alignment alignment;
private List tableRow;
private int rowHeight;
private boolean paintBorder;
- public TableRowDrawable(List tableRow, boolean paintBorder) {
+ public TableRowDrawable(List tableRow, boolean paintBorder, Alignment alignment) {
this.tableRow = tableRow;
this.rowHeight = calculateRowHeight(tableRow);
this.paintBorder = paintBorder;
+ this.alignment = alignment;
}
@Override
@@ -271,7 +276,7 @@ public void draw(Canvas canvas) {
StaticLayout layout = new StaticLayout(tableRow.get(i),
getTextPaint(), (columnWidth - 2 * PADDING),
- Alignment.ALIGN_NORMAL, 1f, 0f, true);
+ alignment, 1f, 0f, true);
canvas.translate(offset + PADDING, 0);
layout.draw(canvas);
diff --git a/HtmlSpanner/src/main/java/com/sysdata/htmlspanner/spans/BorderSpan.java b/HtmlSpanner/src/main/java/com/sysdata/htmlspanner/spans/BorderSpan.java
index e9b1528..f546a76 100644
--- a/HtmlSpanner/src/main/java/com/sysdata/htmlspanner/spans/BorderSpan.java
+++ b/HtmlSpanner/src/main/java/com/sysdata/htmlspanner/spans/BorderSpan.java
@@ -86,8 +86,6 @@ public void drawBackground(Canvas c, Paint p,
p.setStrokeWidth( strokeWidth );
right -= strokeWidth;
- p.setStyle(Paint.Style.STROKE);
-
if ( start <= this.start ) {
Log.d("BorderSpan", "Drawing first line");
c.drawLine(left, top, right, top, p);
diff --git a/build.gradle b/build.gradle
index 8836f3b..a9381ed 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.kotlin_version = '1.2.51'
+ ext.kotlin_version = '1.3.31'
repositories {
google()
jcenter()