Fix links in ext-table

This commit is contained in:
Dimitry Ivanov 2020-03-29 10:36:51 +03:00
parent f47124a2ac
commit 33f0dcb841
7 changed files with 74 additions and 6 deletions

View File

@ -125,10 +125,6 @@ public class TablePlugin extends AbstractMarkwonPlugin {
visitor.visitChildren(tableBlock); visitor.visitChildren(tableBlock);
// if (visitor.hasNext(tableBlock)) {
// visitor.ensureNewLine();
// visitor.forceNewLine();
// }
visitor.blockEnd(tableBlock); visitor.blockEnd(tableBlock);
} }
}) })

View File

@ -143,7 +143,13 @@ public class TableRowSpan extends ReplacementSpan {
if (recreateLayouts(canvas.getWidth())) { if (recreateLayouts(canvas.getWidth())) {
width = canvas.getWidth(); width = canvas.getWidth();
// @since $nap; it's important to cast to TextPaint in order to display links, etc
if (paint instanceof TextPaint) {
// there must be a reason why this method receives Paint instead of TextPaint...
textPaint.set((TextPaint) paint);
} else {
textPaint.set(paint); textPaint.set(paint);
}
makeNewLayouts(); makeNewLayouts();
} }

View File

@ -38,6 +38,7 @@
<activity android:name=".tasklist.TaskListActivity" /> <activity android:name=".tasklist.TaskListActivity" />
<activity android:name=".images.ImagesActivity" /> <activity android:name=".images.ImagesActivity" />
<activity android:name=".notification.NotificationActivity" /> <activity android:name=".notification.NotificationActivity" />
<activity android:name=".table.TableActivity" />
</application> </application>

View File

@ -32,6 +32,7 @@ import io.noties.markwon.sample.notification.NotificationActivity;
import io.noties.markwon.sample.precomputed.PrecomputedActivity; import io.noties.markwon.sample.precomputed.PrecomputedActivity;
import io.noties.markwon.sample.recycler.RecyclerActivity; import io.noties.markwon.sample.recycler.RecyclerActivity;
import io.noties.markwon.sample.simpleext.SimpleExtActivity; import io.noties.markwon.sample.simpleext.SimpleExtActivity;
import io.noties.markwon.sample.table.TableActivity;
import io.noties.markwon.sample.tasklist.TaskListActivity; import io.noties.markwon.sample.tasklist.TaskListActivity;
public class MainActivity extends Activity { public class MainActivity extends Activity {
@ -147,6 +148,10 @@ public class MainActivity extends Activity {
activity = NotificationActivity.class; activity = NotificationActivity.class;
break; break;
case TABLE:
activity = TableActivity.class;
break;
default: default:
throw new IllegalStateException("No Activity is associated with sample-item: " + item); throw new IllegalStateException("No Activity is associated with sample-item: " + item);
} }

View File

@ -33,7 +33,9 @@ public enum Sample {
IMAGES(R.string.sample_images), IMAGES(R.string.sample_images),
REMOTE_VIEWS(R.string.sample_remote_views); REMOTE_VIEWS(R.string.sample_remote_views),
TABLE(R.string.sample_table);
private final int textResId; private final int textResId;

View File

@ -0,0 +1,57 @@
package io.noties.markwon.sample.table;
import android.os.Bundle;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.noties.markwon.Markwon;
import io.noties.markwon.ext.tables.TablePlugin;
import io.noties.markwon.linkify.LinkifyPlugin;
import io.noties.markwon.sample.ActivityWithMenuOptions;
import io.noties.markwon.sample.MenuOptions;
import io.noties.markwon.sample.R;
public class TableActivity extends ActivityWithMenuOptions {
@NonNull
@Override
public MenuOptions menuOptions() {
return MenuOptions.create()
.add("tableAndLinkify", this::tableAndLinkify);
}
private TextView textView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_text_view);
textView = findViewById(R.id.text_view);
tableAndLinkify();
}
private void tableAndLinkify() {
final String md = "" +
"| HEADER | HEADER | HEADER |\n" +
"|:----:|:----:|:----:|\n" +
"| 测试 | 测试 | 测试 |\n" +
"| 测试 | 测试 | 测测测12345试测试测试 |\n" +
"| 测试 | 测试 | 123445 |\n" +
"| 测试 | 测试 | (650) 555-1212 |\n" +
"| 测试 | 测试 | [link](#) |\n" +
"\n" +
"测试\n" +
"\n" +
"[https://www.baidu.com](https://www.baidu.com)";
final Markwon markwon = Markwon.builder(this)
.usePlugin(LinkifyPlugin.create())
.usePlugin(TablePlugin.create(this))
.build();
markwon.setMarkdown(textView, md);
}
}

View File

@ -37,4 +37,5 @@
<string name="sample_remote_views"># \# Notification\n\nExample usage in notifications and other remote views</string> <string name="sample_remote_views"># \# Notification\n\nExample usage in notifications and other remote views</string>
<string name="sample_table"># \# Table\n\nUsage of tables in a `TextView`</string>
</resources> </resources>