mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-01-24 00:44:43 +01:00
Load comment and post content text in HTML form instead of String. Fixed a bug that the icon of subreddits was not parsed properly in ParseSubredditData class.
This commit is contained in:
parent
0fa03cba21
commit
80058ff6ab
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
@ -24,6 +24,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
google()
|
google()
|
||||||
|
jcenter()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@ -54,4 +55,5 @@ dependencies {
|
|||||||
annotationProcessor "android.arch.lifecycle:compiler:$rootProject.archLifecycleVersion"
|
annotationProcessor "android.arch.lifecycle:compiler:$rootProject.archLifecycleVersion"
|
||||||
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
|
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
|
||||||
implementation 'io.reactivex.rxjava2:rxjava:2.2.0'
|
implementation 'io.reactivex.rxjava2:rxjava:2.2.0'
|
||||||
|
implementation 'org.sufficientlysecure:html-textview:3.6'
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,8 @@ import android.widget.Toast;
|
|||||||
|
|
||||||
import com.android.volley.RequestQueue;
|
import com.android.volley.RequestQueue;
|
||||||
|
|
||||||
|
import org.sufficientlysecure.htmltextview.HtmlTextView;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
class CommentRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
class CommentRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||||
@ -40,7 +42,7 @@ class CommentRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
|||||||
public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder holder, final int position) {
|
public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder holder, final int position) {
|
||||||
((CommentViewHolder) holder).authorTextView.setText(mCommentData.get(position).getAuthor());
|
((CommentViewHolder) holder).authorTextView.setText(mCommentData.get(position).getAuthor());
|
||||||
((CommentViewHolder) holder).commentTimeTextView.setText(mCommentData.get(position).getCommentTime());
|
((CommentViewHolder) holder).commentTimeTextView.setText(mCommentData.get(position).getCommentTime());
|
||||||
((CommentViewHolder) holder).commentTextView.setText(mCommentData.get(position).getCommentContent());
|
((CommentViewHolder) holder).commentHtmlTextView.setHtml(mCommentData.get(position).getCommentContent());
|
||||||
((CommentViewHolder) holder).scoreTextView.setText(Integer.toString(mCommentData.get(position).getScore()));
|
((CommentViewHolder) holder).scoreTextView.setText(Integer.toString(mCommentData.get(position).getScore()));
|
||||||
|
|
||||||
switch (mCommentData.get(position).getVoteType()) {
|
switch (mCommentData.get(position).getVoteType()) {
|
||||||
@ -180,7 +182,7 @@ class CommentRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
|||||||
private class CommentViewHolder extends RecyclerView.ViewHolder {
|
private class CommentViewHolder extends RecyclerView.ViewHolder {
|
||||||
private TextView authorTextView;
|
private TextView authorTextView;
|
||||||
private TextView commentTimeTextView;
|
private TextView commentTimeTextView;
|
||||||
private TextView commentTextView;
|
private HtmlTextView commentHtmlTextView;
|
||||||
private ImageView upvoteButton;
|
private ImageView upvoteButton;
|
||||||
private ImageView downvoteButton;
|
private ImageView downvoteButton;
|
||||||
private TextView scoreTextView;
|
private TextView scoreTextView;
|
||||||
@ -190,7 +192,7 @@ class CommentRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
|||||||
super(itemView);
|
super(itemView);
|
||||||
authorTextView = itemView.findViewById(R.id.author_text_view_item_post_comment);
|
authorTextView = itemView.findViewById(R.id.author_text_view_item_post_comment);
|
||||||
commentTimeTextView = itemView.findViewById(R.id.comment_time_text_view_item_post_comment);
|
commentTimeTextView = itemView.findViewById(R.id.comment_time_text_view_item_post_comment);
|
||||||
commentTextView = itemView.findViewById(R.id.comment_text_view_item_post_comment);
|
commentHtmlTextView = itemView.findViewById(R.id.comment_html_text_view_item_post_comment);
|
||||||
upvoteButton = itemView.findViewById(R.id.plus_button_item_post_comment);
|
upvoteButton = itemView.findViewById(R.id.plus_button_item_post_comment);
|
||||||
downvoteButton = itemView.findViewById(R.id.minus_button_item_post_comment);
|
downvoteButton = itemView.findViewById(R.id.minus_button_item_post_comment);
|
||||||
scoreTextView = itemView.findViewById(R.id.score_text_view_item_post_comment);
|
scoreTextView = itemView.findViewById(R.id.score_text_view_item_post_comment);
|
||||||
|
@ -13,7 +13,7 @@ class JSONUtils {
|
|||||||
static final String TITLE_KEY = "title";
|
static final String TITLE_KEY = "title";
|
||||||
static final String NAME_KEY = "name";
|
static final String NAME_KEY = "name";
|
||||||
static final String SUBREDDIT_NAME_PREFIX_KEY = "subreddit_name_prefixed";
|
static final String SUBREDDIT_NAME_PREFIX_KEY = "subreddit_name_prefixed";
|
||||||
static final String SELF_TEXT_KEY = "selftext";
|
static final String SELFTEXT_HTML_KEY = "selftext_html";
|
||||||
static final String AUTHOR_KEY = "author";
|
static final String AUTHOR_KEY = "author";
|
||||||
static final String DOMAIN_KEY = "domain";
|
static final String DOMAIN_KEY = "domain";
|
||||||
static final String LINK_FLAIR_TEXT_KEY = "link_flair_text";
|
static final String LINK_FLAIR_TEXT_KEY = "link_flair_text";
|
||||||
@ -44,7 +44,7 @@ class JSONUtils {
|
|||||||
static final String REDDIT_VIDEO_PREVIEW_KEY = "reddit_video_preview";
|
static final String REDDIT_VIDEO_PREVIEW_KEY = "reddit_video_preview";
|
||||||
static final String IS_REDDIT_MEDIA_DOMAIN = "is_reddit_media_domain";
|
static final String IS_REDDIT_MEDIA_DOMAIN = "is_reddit_media_domain";
|
||||||
static final String STICKIED_KEY = "stickied";
|
static final String STICKIED_KEY = "stickied";
|
||||||
static final String BODY_KEY = "body";
|
static final String BODY_HTML_KEY = "body_html";
|
||||||
static final String COLLAPSED_KEY = "collapsed";
|
static final String COLLAPSED_KEY = "collapsed";
|
||||||
static final String IS_SUBMITTER_KEY = "is_submitter";
|
static final String IS_SUBMITTER_KEY = "is_submitter";
|
||||||
static final String REPLIES_KEY = "replies";
|
static final String REPLIES_KEY = "replies";
|
||||||
|
@ -72,7 +72,7 @@ class ParseComment {
|
|||||||
String fullName = data.getString(JSONUtils.LINK_ID);
|
String fullName = data.getString(JSONUtils.LINK_ID);
|
||||||
String author = data.getString(JSONUtils.AUTHOR_KEY);
|
String author = data.getString(JSONUtils.AUTHOR_KEY);
|
||||||
boolean isSubmitter = data.getBoolean(JSONUtils.IS_SUBMITTER_KEY);
|
boolean isSubmitter = data.getBoolean(JSONUtils.IS_SUBMITTER_KEY);
|
||||||
String commentContent = data.getString(JSONUtils.BODY_KEY);
|
String commentContent = data.getString(JSONUtils.BODY_HTML_KEY);
|
||||||
String permalink = data.getString(JSONUtils.PERMALINK_KEY);
|
String permalink = data.getString(JSONUtils.PERMALINK_KEY);
|
||||||
int score = data.getInt(JSONUtils.SCORE_KEY);
|
int score = data.getInt(JSONUtils.SCORE_KEY);
|
||||||
long submitTime = data.getLong(JSONUtils.CREATED_UTC_KEY) * 1000;
|
long submitTime = data.getLong(JSONUtils.CREATED_UTC_KEY) * 1000;
|
||||||
|
@ -130,7 +130,12 @@ class ParsePost {
|
|||||||
Log.i("text", Integer.toString(i));
|
Log.i("text", Integer.toString(i));
|
||||||
int postType = PostData.TEXT_TYPE;
|
int postType = PostData.TEXT_TYPE;
|
||||||
PostData postData = new PostData(id, fullName, subredditName, formattedPostTime, title, permalink, score, postType, voteType, nsfw);
|
PostData postData = new PostData(id, fullName, subredditName, formattedPostTime, title, permalink, score, postType, voteType, nsfw);
|
||||||
postData.setSelfText(data.getString(JSONUtils.SELF_TEXT_KEY).trim());
|
if(data.isNull(JSONUtils.SELFTEXT_HTML_KEY)) {
|
||||||
|
postData.setSelfText("");
|
||||||
|
} else {
|
||||||
|
postData.setSelfText(data.getString(JSONUtils.SELFTEXT_HTML_KEY).trim());
|
||||||
|
}
|
||||||
|
postData.setSelfText(data.getString(JSONUtils.SELFTEXT_HTML_KEY).trim());
|
||||||
bestPostData.add(postData);
|
bestPostData.add(postData);
|
||||||
} else {
|
} else {
|
||||||
//No preview link post
|
//No preview link post
|
||||||
|
@ -46,6 +46,12 @@ class ParseSubredditData {
|
|||||||
String description = data.getString(JSONUtils.PUBLIC_DESCRIPTION).trim();
|
String description = data.getString(JSONUtils.PUBLIC_DESCRIPTION).trim();
|
||||||
String bannerImageUrl = data.getString(JSONUtils.BANNER_IMG_KEY);
|
String bannerImageUrl = data.getString(JSONUtils.BANNER_IMG_KEY);
|
||||||
String iconImageUrl = data.getString(JSONUtils.ICON_IMG_KEY);
|
String iconImageUrl = data.getString(JSONUtils.ICON_IMG_KEY);
|
||||||
|
if(iconImageUrl.equals("") || iconImageUrl.equals("null")) {
|
||||||
|
iconImageUrl = data.getString(JSONUtils.COMMUNITY_ICON_KEY);
|
||||||
|
if(iconImageUrl.equals("null")) {
|
||||||
|
iconImageUrl = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
int nSubscribers = data.getInt(JSONUtils.SUBSCRIBERS_KEY);
|
int nSubscribers = data.getInt(JSONUtils.SUBSCRIBERS_KEY);
|
||||||
int nCurrentOnlineSubscribers = data.getInt(JSONUtils.ACTIVE_USER_COUNT);
|
int nCurrentOnlineSubscribers = data.getInt(JSONUtils.ACTIVE_USER_COUNT);
|
||||||
subredditData = new SubredditData(id, subredditFullName, iconImageUrl, bannerImageUrl, description, nSubscribers);
|
subredditData = new SubredditData(id, subredditFullName, iconImageUrl, bannerImageUrl, description, nSubscribers);
|
||||||
|
@ -32,6 +32,8 @@ import com.bumptech.glide.load.engine.GlideException;
|
|||||||
import com.bumptech.glide.request.RequestListener;
|
import com.bumptech.glide.request.RequestListener;
|
||||||
import com.bumptech.glide.request.target.Target;
|
import com.bumptech.glide.request.target.Target;
|
||||||
|
|
||||||
|
import org.sufficientlysecure.htmltextview.HtmlTextView;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import de.hdodenhof.circleimageview.CircleImageView;
|
import de.hdodenhof.circleimageview.CircleImageView;
|
||||||
@ -77,7 +79,7 @@ public class ViewPostDetailActivity extends AppCompatActivity {
|
|||||||
CircleImageView subredditIconCircleImageView = findViewById(R.id.subreddit_icon_circle_image_view_view_post_detail);
|
CircleImageView subredditIconCircleImageView = findViewById(R.id.subreddit_icon_circle_image_view_view_post_detail);
|
||||||
TextView postTimeTextView = findViewById(R.id.post_time_text_view_view_post_detail);
|
TextView postTimeTextView = findViewById(R.id.post_time_text_view_view_post_detail);
|
||||||
TextView subredditTextView = findViewById(R.id.subreddit_text_view_view_post_detail);
|
TextView subredditTextView = findViewById(R.id.subreddit_text_view_view_post_detail);
|
||||||
TextView contentTextView = findViewById(R.id.content_text_view_view_post_detail);
|
HtmlTextView contentTextView = findViewById(R.id.content_html_text_view_view_post_detail);
|
||||||
TextView typeTextView = findViewById(R.id.type_text_view_view_post_detail);
|
TextView typeTextView = findViewById(R.id.type_text_view_view_post_detail);
|
||||||
TextView nsfwTextView = findViewById(R.id.nsfw_text_view_view_post_detail);
|
TextView nsfwTextView = findViewById(R.id.nsfw_text_view_view_post_detail);
|
||||||
RelativeLayout relativeLayout = findViewById(R.id.image_view_wrapper_view_post_detail);
|
RelativeLayout relativeLayout = findViewById(R.id.image_view_wrapper_view_post_detail);
|
||||||
@ -294,7 +296,7 @@ public class ViewPostDetailActivity extends AppCompatActivity {
|
|||||||
typeTextView.setText("TEXT");
|
typeTextView.setText("TEXT");
|
||||||
if(!mPostData.getSelfText().equals("")) {
|
if(!mPostData.getSelfText().equals("")) {
|
||||||
contentTextView.setVisibility(View.VISIBLE);
|
contentTextView.setVisibility(View.VISIBLE);
|
||||||
contentTextView.setText(mPostData.getSelfText());
|
contentTextView.setHtml(mPostData.getSelfText());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
queryComment();
|
queryComment();
|
||||||
|
@ -74,8 +74,8 @@
|
|||||||
android:textColor="#000000"
|
android:textColor="#000000"
|
||||||
android:textSize="18sp" />
|
android:textSize="18sp" />
|
||||||
|
|
||||||
<TextView
|
<org.sufficientlysecure.htmltextview.HtmlTextView
|
||||||
android:id="@+id/content_text_view_view_post_detail"
|
android:id="@+id/content_html_text_view_view_post_detail"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
@ -84,7 +84,7 @@
|
|||||||
android:layout_marginRight="16dp"
|
android:layout_marginRight="16dp"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:textSize="16sp"
|
android:textAppearance="@android:style/TextAppearance.Small"
|
||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
|
@ -32,8 +32,8 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
<org.sufficientlysecure.htmltextview.HtmlTextView
|
||||||
android:id="@+id/comment_text_view_item_post_comment"
|
android:id="@+id/comment_html_text_view_item_post_comment"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="6dp"
|
android:layout_marginTop="6dp"
|
||||||
@ -41,7 +41,7 @@
|
|||||||
android:layout_marginStart="32dp"
|
android:layout_marginStart="32dp"
|
||||||
android:layout_marginRight="32dp"
|
android:layout_marginRight="32dp"
|
||||||
android:layout_marginEnd="32dp"
|
android:layout_marginEnd="32dp"
|
||||||
android:textColor="#000000"/>
|
android:textAppearance="@android:style/TextAppearance.Small"/>
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/relative_layout_item_post_comment"
|
android:id="@+id/relative_layout_item_post_comment"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user