mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-02-02 12:54:45 +01:00
Markdown table support.
This commit is contained in:
parent
f7baba9412
commit
5bf1d342f6
@ -66,10 +66,11 @@ dependencies {
|
|||||||
implementation 'com.github.santalu:aspect-ratio-imageview:1.0.6'
|
implementation 'com.github.santalu:aspect-ratio-imageview:1.0.6'
|
||||||
implementation 'androidx.paging:paging-runtime:2.1.0'
|
implementation 'androidx.paging:paging-runtime:2.1.0'
|
||||||
implementation 'com.lsjwzh:materialloadingprogressbar:0.5.8-RELEASE'
|
implementation 'com.lsjwzh:materialloadingprogressbar:0.5.8-RELEASE'
|
||||||
implementation 'io.noties.markwon:core:4.1.2'
|
implementation 'io.noties.markwon:core:4.2.0'
|
||||||
implementation 'io.noties.markwon:linkify:4.1.2'
|
implementation 'io.noties.markwon:linkify:4.2.0'
|
||||||
implementation 'io.noties.markwon:ext-strikethrough:4.1.2'
|
implementation 'io.noties.markwon:ext-strikethrough:4.2.0'
|
||||||
implementation "io.noties.markwon:simple-ext:4.1.2"
|
implementation "io.noties.markwon:simple-ext:4.2.0"
|
||||||
|
implementation "io.noties.markwon:recycler-table:4.2.0"
|
||||||
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.19'
|
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.19'
|
||||||
implementation 'com.github.Ferfalk:SimpleSearchView:0.1.3'
|
implementation 'com.github.Ferfalk:SimpleSearchView:0.1.3'
|
||||||
implementation 'org.greenrobot:eventbus:3.1.1'
|
implementation 'org.greenrobot:eventbus:3.1.1'
|
||||||
@ -82,4 +83,5 @@ dependencies {
|
|||||||
implementation 'androidx.preference:preference:1.1.0'
|
implementation 'androidx.preference:preference:1.1.0'
|
||||||
implementation 'com.nex3z:flow-layout:1.3.0'
|
implementation 'com.nex3z:flow-layout:1.3.0'
|
||||||
implementation 'com.r0adkll:slidableactivity:2.1.0'
|
implementation 'com.r0adkll:slidableactivity:2.1.0'
|
||||||
|
implementation 'com.atlassian.commonmark:commonmark:0.13.1'
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
import androidx.constraintlayout.widget.ConstraintSet;
|
import androidx.constraintlayout.widget.ConstraintSet;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.bumptech.glide.RequestBuilder;
|
import com.bumptech.glide.RequestBuilder;
|
||||||
@ -39,6 +40,8 @@ import com.bumptech.glide.request.target.Target;
|
|||||||
import com.libRG.CustomTextView;
|
import com.libRG.CustomTextView;
|
||||||
import com.santalu.aspectratioimageview.AspectRatioImageView;
|
import com.santalu.aspectratioimageview.AspectRatioImageView;
|
||||||
|
|
||||||
|
import org.commonmark.ext.gfm.tables.TableBlock;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
@ -49,6 +52,9 @@ import io.noties.markwon.Markwon;
|
|||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.ext.strikethrough.StrikethroughPlugin;
|
import io.noties.markwon.ext.strikethrough.StrikethroughPlugin;
|
||||||
import io.noties.markwon.linkify.LinkifyPlugin;
|
import io.noties.markwon.linkify.LinkifyPlugin;
|
||||||
|
import io.noties.markwon.recycler.MarkwonAdapter;
|
||||||
|
import io.noties.markwon.recycler.table.TableEntry;
|
||||||
|
import io.noties.markwon.recycler.table.TableEntryPlugin;
|
||||||
import io.noties.markwon.simple.ext.SimpleExtPlugin;
|
import io.noties.markwon.simple.ext.SimpleExtPlugin;
|
||||||
import io.noties.markwon.urlprocessor.UrlProcessorRelativeToAbsolute;
|
import io.noties.markwon.urlprocessor.UrlProcessorRelativeToAbsolute;
|
||||||
import jp.wasabeef.glide.transformations.BlurTransformation;
|
import jp.wasabeef.glide.transformations.BlurTransformation;
|
||||||
@ -97,6 +103,7 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
|||||||
private RedditDataRoomDatabase mRedditDataRoomDatabase;
|
private RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
private RequestManager mGlide;
|
private RequestManager mGlide;
|
||||||
private Markwon mMarkwon;
|
private Markwon mMarkwon;
|
||||||
|
private final MarkwonAdapter mMarkwonAdapter;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
private Post mPost;
|
private Post mPost;
|
||||||
@ -152,7 +159,14 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
.usePlugin(TableEntryPlugin.create(mActivity))
|
||||||
.build();
|
.build();
|
||||||
|
mMarkwonAdapter = MarkwonAdapter.builder(R.layout.adapter_default_entry, R.id.text)
|
||||||
|
.include(TableBlock.class, TableEntry.create(builder -> builder
|
||||||
|
.tableLayout(R.layout.adapter_table_block, R.id.table_layout)
|
||||||
|
.textLayoutIsRoot(R.layout.view_table_entry_cell)))
|
||||||
|
.build();
|
||||||
|
mMarkwonAdapter.setMarkdown(mMarkwon, "");
|
||||||
mAccessToken = accessToken;
|
mAccessToken = accessToken;
|
||||||
mAccountName = accountName;
|
mAccountName = accountName;
|
||||||
mPost = post;
|
mPost = post;
|
||||||
@ -493,7 +507,10 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
|||||||
|
|
||||||
if (mPost.getSelfText() != null && !mPost.getSelfText().equals("")) {
|
if (mPost.getSelfText() != null && !mPost.getSelfText().equals("")) {
|
||||||
((PostDetailViewHolder) holder).mContentMarkdownView.setVisibility(View.VISIBLE);
|
((PostDetailViewHolder) holder).mContentMarkdownView.setVisibility(View.VISIBLE);
|
||||||
mMarkwon.setMarkdown(((PostDetailViewHolder) holder).mContentMarkdownView, mPost.getSelfText());
|
((PostDetailViewHolder) holder).mContentMarkdownView.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||||
|
((PostDetailViewHolder) holder).mContentMarkdownView.setAdapter(mMarkwonAdapter);
|
||||||
|
mMarkwonAdapter.setMarkdown(mMarkwon, mPost.getSelfText());
|
||||||
|
mMarkwonAdapter.notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
((PostDetailViewHolder) holder).mNoPreviewLinkImageView.setVisibility(View.VISIBLE);
|
((PostDetailViewHolder) holder).mNoPreviewLinkImageView.setVisibility(View.VISIBLE);
|
||||||
@ -513,7 +530,10 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
|||||||
|
|
||||||
if (!mPost.getSelfText().equals("")) {
|
if (!mPost.getSelfText().equals("")) {
|
||||||
((PostDetailViewHolder) holder).mContentMarkdownView.setVisibility(View.VISIBLE);
|
((PostDetailViewHolder) holder).mContentMarkdownView.setVisibility(View.VISIBLE);
|
||||||
mMarkwon.setMarkdown(((PostDetailViewHolder) holder).mContentMarkdownView, mPost.getSelfText());
|
((PostDetailViewHolder) holder).mContentMarkdownView.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||||
|
((PostDetailViewHolder) holder).mContentMarkdownView.setAdapter(mMarkwonAdapter);
|
||||||
|
mMarkwonAdapter.setMarkdown(mMarkwon, mPost.getSelfText());
|
||||||
|
mMarkwonAdapter.notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1550,8 +1570,10 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
|||||||
TextView mPostTimeTextView;
|
TextView mPostTimeTextView;
|
||||||
@BindView(R.id.title_text_view_item_post_detail)
|
@BindView(R.id.title_text_view_item_post_detail)
|
||||||
TextView mTitleTextView;
|
TextView mTitleTextView;
|
||||||
|
/*@BindView(R.id.content_markdown_view_item_post_detail)
|
||||||
|
TextView mContentMarkdownView;*/
|
||||||
@BindView(R.id.content_markdown_view_item_post_detail)
|
@BindView(R.id.content_markdown_view_item_post_detail)
|
||||||
TextView mContentMarkdownView;
|
RecyclerView mContentMarkdownView;
|
||||||
@BindView(R.id.type_text_view_item_post_detail)
|
@BindView(R.id.type_text_view_item_post_detail)
|
||||||
CustomTextView mTypeTextView;
|
CustomTextView mTypeTextView;
|
||||||
@BindView(R.id.gilded_number_text_view_item_post_detail)
|
@BindView(R.id.gilded_number_text_view_item_post_detail)
|
||||||
|
15
app/src/main/res/layout/adapter_default_entry.xml
Normal file
15
app/src/main/res/layout/adapter_default_entry.xml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/text"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="16dip"
|
||||||
|
android:layout_marginRight="16dip"
|
||||||
|
android:lineSpacingExtra="2dip"
|
||||||
|
android:paddingTop="8dip"
|
||||||
|
android:paddingBottom="8dip"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:textColor="#000"
|
||||||
|
android:textSize="16sp"
|
||||||
|
tools:text="Hello" />
|
19
app/src/main/res/layout/adapter_table_block.xml
Normal file
19
app/src/main/res/layout/adapter_table_block.xml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:clipChildren="false"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:paddingLeft="16dp"
|
||||||
|
android:paddingTop="8dp"
|
||||||
|
android:paddingRight="16dp"
|
||||||
|
android:paddingBottom="8dp"
|
||||||
|
android:scrollbarStyle="outsideInset">
|
||||||
|
|
||||||
|
<TableLayout
|
||||||
|
android:id="@+id/table_layout"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:stretchColumns="*" />
|
||||||
|
|
||||||
|
</HorizontalScrollView>
|
@ -81,15 +81,11 @@
|
|||||||
android:textColor="@color/primaryTextColor"
|
android:textColor="@color/primaryTextColor"
|
||||||
android:textSize="?attr/title_font_18" />
|
android:textSize="?attr/title_font_18" />
|
||||||
|
|
||||||
<TextView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/content_markdown_view_item_post_detail"
|
android:id="@+id/content_markdown_view_item_post_detail"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:paddingStart="16dp"
|
android:visibility="gone" />
|
||||||
android:paddingEnd="16dp"
|
|
||||||
android:layout_marginTop="16dp"
|
|
||||||
android:visibility="gone"
|
|
||||||
android:textSize="?attr/content_font_default" />
|
|
||||||
|
|
||||||
<com.nex3z.flowlayout.FlowLayout
|
<com.nex3z.flowlayout.FlowLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
9
app/src/main/res/layout/view_table_entry_cell.xml
Normal file
9
app/src/main/res/layout/view_table_entry_cell.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:textColor="#000"
|
||||||
|
android:textSize="16sp"
|
||||||
|
tools:text="Table content" />
|
Loading…
x
Reference in New Issue
Block a user