Skip to content

Commit fd390c5

Browse files
authored
Merge pull request #11 from SysdataSpA/feature/list_fix
Feature/list fix
2 parents 44db9fb + b105918 commit fd390c5

File tree

5 files changed

+12
-38
lines changed

5 files changed

+12
-38
lines changed

.idea/codeStyles/Project.xml

Lines changed: 0 additions & 29 deletions
This file was deleted.

HtmlSpanner/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ dependencies {
3838
implementation fileTree(dir: 'libs', include: ['*.jar'])
3939
implementation 'net.sourceforge.htmlcleaner:htmlcleaner:2.16'
4040
implementation 'com.osbcp.cssparser:cssparser:1.5'
41-
implementation 'io.reactivex:rxjava:1.2.10'
41+
implementation 'io.reactivex:rxjava:1.3.8'
4242
implementation 'io.reactivex:rxandroid:1.2.1'
4343
}
4444

HtmlSpanner/src/main/java/com/sysdata/htmlspanner/handlers/TableHandler.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public class TableHandler extends TagNodeHandler {
5353
private int textColor = Color.BLACK;
5454

5555
private static final int PADDING = 5;
56+
private boolean hasHeader;
5657

5758
/**
5859
* Sets how wide the table should be.
@@ -116,6 +117,7 @@ private void readNode(Object node, Table table) {
116117
}
117118

118119
if (tagNode.getName().equals("th")) {
120+
hasHeader = true;
119121
Spanned result = this.getSpanner().fromTagNode(tagNode, null);
120122
table.addCell(result);
121123
return;
@@ -192,11 +194,12 @@ public void handleTagNode(TagNode node, SpannableStringBuilder builder,
192194
List<Spanned> row = table.getRows().get(i);
193195
builder.append("\uFFFC");
194196

195-
TableRowDrawable drawable = new TableRowDrawable(row, table.isDrawBorder());
197+
TableRowDrawable drawable = new TableRowDrawable(row, table.isDrawBorder(), i == 0 && hasHeader ? Alignment.ALIGN_CENTER : Alignment.ALIGN_NORMAL);
196198
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
197199
drawable.getIntrinsicHeight());
198200

199-
builder.setSpan(new ImageSpan(drawable), start + i, builder.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
201+
int index = i == 0 ? start : builder.length() - 1;
202+
builder.setSpan(new ImageSpan(drawable), index, builder.length(),Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
200203
builder.append("\n");
201204
}
202205

@@ -205,7 +208,7 @@ public void handleTagNode(TagNode node, SpannableStringBuilder builder,
205208
the last row would appear detached.
206209
*/
207210
builder.append("\uFFFC");
208-
Drawable drawable = new TableRowDrawable(new ArrayList<Spanned>(), table.isDrawBorder());
211+
Drawable drawable = new TableRowDrawable(new ArrayList<Spanned>(), table.isDrawBorder(), Alignment.ALIGN_NORMAL);
209212
drawable.setBounds(0, 0, tableWidth, 1);
210213

211214
builder.setSpan(new ImageSpan(drawable), builder.length() -1, builder.length(),
@@ -231,15 +234,17 @@ public Alignment getAlignment() {
231234
*/
232235
private class TableRowDrawable extends Drawable {
233236

237+
private final Alignment alignment;
234238
private List<Spanned> tableRow;
235239

236240
private int rowHeight;
237241
private boolean paintBorder;
238242

239-
public TableRowDrawable(List<Spanned> tableRow, boolean paintBorder) {
243+
public TableRowDrawable(List<Spanned> tableRow, boolean paintBorder, Alignment alignment) {
240244
this.tableRow = tableRow;
241245
this.rowHeight = calculateRowHeight(tableRow);
242246
this.paintBorder = paintBorder;
247+
this.alignment = alignment;
243248
}
244249

245250
@Override
@@ -271,7 +276,7 @@ public void draw(Canvas canvas) {
271276

272277
StaticLayout layout = new StaticLayout(tableRow.get(i),
273278
getTextPaint(), (columnWidth - 2 * PADDING),
274-
Alignment.ALIGN_NORMAL, 1f, 0f, true);
279+
alignment, 1f, 0f, true);
275280

276281
canvas.translate(offset + PADDING, 0);
277282
layout.draw(canvas);

HtmlSpanner/src/main/java/com/sysdata/htmlspanner/spans/BorderSpan.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,6 @@ public void drawBackground(Canvas c, Paint p,
8686
p.setStrokeWidth( strokeWidth );
8787
right -= strokeWidth;
8888

89-
p.setStyle(Paint.Style.STROKE);
90-
9189
if ( start <= this.start ) {
9290
Log.d("BorderSpan", "Drawing first line");
9391
c.drawLine(left, top, right, top, p);

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22

33
buildscript {
4-
ext.kotlin_version = '1.2.51'
4+
ext.kotlin_version = '1.3.31'
55
repositories {
66
google()
77
jcenter()

0 commit comments

Comments
 (0)