Compare commits

..

No commits in common. "279820c1bede50d096c2bfaea267bdbddaff954a" and "84d90adc543ecce1f20238f8263345941fcea8d3" have entirely different histories.

19 changed files with 95 additions and 147 deletions

View File

@ -1,49 +0,0 @@
---
name: "Bug Report"
about: "Report a Bug!"
title: " [Bug] "
ref: "master"
labels:
- Kind/Bug
---
### Description of the Issue:
<!-- Provide a clear and concise description of what the issue is about. -->
### Steps to Reproduce:
<!-- Explain the steps to reproduce the issue, if applicable. -->
1.
2.
3.
### Expected Behavior:
<!-- Describe what you expected to happen. -->
### Actual Behavior:
<!-- Describe what actually happened. Include screenshots if applicable. -->
### App Information:
- **Version:** <!-- e.g. 1.0.0 -->
- **Device:** <!-- e.g. Samsung Galaxy S10 -->
- **Android Version:** <!-- e.g. Android 11 -->
- **Installation Source:** <!-- e.g. Google Play Store, APK -->
### Log Files:
<!-- If applicable, include log files or error messages related to this issue. -->
### Additional Context:
<!-- Add any other context about the problem here, such as relevant system configuration or screenshots. -->
### Potential Solutions or Workarounds:
<!-- If you know of any potential solutions or workarounds for this issue, please describe them here. -->

View File

@ -392,12 +392,12 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
if (comment.getAuthorIconUrl() == null) { if (comment.getAuthorIconUrl() == null) {
mFragment.loadIcon(comment.getAuthorQualifiedName(), (authorName, iconUrl) -> { mFragment.loadIcon(comment.getAuthorQualifiedName(), (authorName, iconUrl) -> {
if (authorName.equals(comment.getAuthorQualifiedName())) { if (authorName.equals(comment.getAuthor())) {
comment.setAuthorIconUrl(iconUrl); comment.setAuthorIconUrl(iconUrl);
} }
Comment currentComment = getCurrentComment(holder); Comment currentComment = getCurrentComment(holder);
if (currentComment != null && authorName.equals(currentComment.getAuthorQualifiedName())) { if (currentComment != null && authorName.equals(currentComment.getAuthor())) {
mGlide.load(iconUrl) mGlide.load(iconUrl)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))) .apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.error(mGlide.load(R.drawable.subreddit_default_icon) .error(mGlide.load(R.drawable.subreddit_default_icon)
@ -537,12 +537,12 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
if (comment.getAuthorIconUrl() == null) { if (comment.getAuthorIconUrl() == null) {
mFragment.loadIcon(comment.getAuthorQualifiedName(), (authorName, iconUrl) -> { mFragment.loadIcon(comment.getAuthorQualifiedName(), (authorName, iconUrl) -> {
if (authorName.equals(comment.getAuthorQualifiedName())) { if (authorName.equals(comment.getAuthor())) {
comment.setAuthorIconUrl(iconUrl); comment.setAuthorIconUrl(iconUrl);
} }
Comment currentComment = getCurrentComment(holder); Comment currentComment = getCurrentComment(holder);
if (currentComment != null && authorName.equals(currentComment.getAuthorQualifiedName())) { if (currentComment != null && authorName.equals(currentComment.getAuthor())) {
mGlide.load(iconUrl) mGlide.load(iconUrl)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))) .apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.error(mGlide.load(R.drawable.subreddit_default_icon) .error(mGlide.load(R.drawable.subreddit_default_icon)
@ -1548,7 +1548,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
SaveComment saveComment = new SaveComment(); SaveComment saveComment = new SaveComment();
if (comment.isSaved()) { if (comment.isSaved()) {
comment.setSaved(false); comment.setSaved(false);
saveComment.unsaveThing(mRetrofit, mAccessToken, comment.getId(), new SaveThing.SaveThingListener() { saveComment.unsaveThing(mOauthRetrofit, mAccessToken, comment.getId(), new SaveThing.SaveThingListener() {
@Override @Override
public void success() { public void success() {
comment.setSaved(false); comment.setSaved(false);

View File

@ -98,7 +98,6 @@ import eu.toldi.infinityforlemmy.markdown.MarkdownUtils;
import eu.toldi.infinityforlemmy.post.Post; import eu.toldi.infinityforlemmy.post.Post;
import eu.toldi.infinityforlemmy.post.PostPagingSource; import eu.toldi.infinityforlemmy.post.PostPagingSource;
import eu.toldi.infinityforlemmy.utils.APIUtils; import eu.toldi.infinityforlemmy.utils.APIUtils;
import eu.toldi.infinityforlemmy.utils.LemmyUtils;
import eu.toldi.infinityforlemmy.utils.SharedPreferencesUtils; import eu.toldi.infinityforlemmy.utils.SharedPreferencesUtils;
import eu.toldi.infinityforlemmy.utils.Utils; import eu.toldi.infinityforlemmy.utils.Utils;
import eu.toldi.infinityforlemmy.videoautoplay.CacheManager; import eu.toldi.infinityforlemmy.videoautoplay.CacheManager;
@ -439,7 +438,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
} }
return new PostDetailVideoAutoplayViewHolder(LayoutInflater.from(parent.getContext()).inflate(mLegacyAutoplayVideoControllerUI ? R.layout.item_post_detail_video_autoplay_legacy_controller : R.layout.item_post_detail_video_autoplay, parent, false)); return new PostDetailVideoAutoplayViewHolder(LayoutInflater.from(parent.getContext()).inflate(mLegacyAutoplayVideoControllerUI ? R.layout.item_post_detail_video_autoplay_legacy_controller : R.layout.item_post_detail_video_autoplay, parent, false));
case VIEW_TYPE_POST_DETAIL_VIDEO_AND_GIF_PREVIEW: case VIEW_TYPE_POST_DETAIL_VIDEO_AND_GIF_PREVIEW:
if (mDataSavingMode && (mDisableImagePreview || mOnlyDisablePreviewInVideoAndGifPosts) || mPost.getPreviews().isEmpty()) { if (mDataSavingMode && (mDisableImagePreview || mOnlyDisablePreviewInVideoAndGifPosts)) {
return new PostDetailNoPreviewViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_no_preview, parent, false)); return new PostDetailNoPreviewViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_no_preview, parent, false));
} }
return new PostDetailVideoAndGifPreviewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_video_and_gif_preview, parent, false)); return new PostDetailVideoAndGifPreviewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_video_and_gif_preview, parent, false));
@ -476,7 +475,8 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
((PostDetailBaseViewHolder) holder).mTitleTextView.setText(mPost.getTitle()); ((PostDetailBaseViewHolder) holder).mTitleTextView.setText(mPost.getTitle());
if (mPost.getSubredditNamePrefixed().startsWith("u/")) { if (mPost.getSubredditNamePrefixed().startsWith("u/")) {
if (mPost.getAuthorIconUrl() == null) { if (mPost.getAuthorIconUrl() == null) {
LoadUserData.loadUserData(mExecutor, new Handler(), mRedditDataRoomDatabase,mPost.getAuthorNamePrefixed(), mOauthRetrofit, iconImageUrl -> { String authorName = mPost.isAuthorDeleted() ? mPost.getSubredditNamePrefixed().substring(2) : mPost.getAuthor();
LoadUserData.loadUserData(mExecutor, new Handler(), mRedditDataRoomDatabase, authorName, mOauthRetrofit, iconImageUrl -> {
if (mActivity != null && getItemCount() > 0) { if (mActivity != null && getItemCount() > 0) {
if (iconImageUrl == null || iconImageUrl.equals("")) { if (iconImageUrl == null || iconImageUrl.equals("")) {
mGlide.load(R.drawable.subreddit_default_icon) mGlide.load(R.drawable.subreddit_default_icon)
@ -1765,8 +1765,8 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
} else { } else {
intent.setData(Uri.parse(mPost.getVideoUrl())); intent.setData(Uri.parse(mPost.getVideoUrl()));
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, mPost.getVideoDownloadUrl()); intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, mPost.getVideoDownloadUrl());
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_DIRECT); intent.putExtra(ViewVideoActivity.EXTRA_SUBREDDIT, mPost.getSubredditName());
intent.putExtra(ViewVideoActivity.EXTRA_ID, mPost.getId());
} }
intent.putExtra(ViewVideoActivity.EXTRA_POST_TITLE, mPost.getTitle()); intent.putExtra(ViewVideoActivity.EXTRA_POST_TITLE, mPost.getTitle());
if (helper != null) { if (helper != null) {
@ -2038,7 +2038,8 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
intent.putExtra(ViewVideoActivity.EXTRA_STREAMABLE_SHORT_CODE, mPost.getStreamableShortCode()); intent.putExtra(ViewVideoActivity.EXTRA_STREAMABLE_SHORT_CODE, mPost.getStreamableShortCode());
} else { } else {
intent.setData(Uri.parse(mPost.getVideoUrl())); intent.setData(Uri.parse(mPost.getVideoUrl()));
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_DIRECT); intent.putExtra(ViewVideoActivity.EXTRA_SUBREDDIT, mPost.getSubredditName());
intent.putExtra(ViewVideoActivity.EXTRA_ID, mPost.getId());
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, mPost.getVideoDownloadUrl()); intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, mPost.getVideoDownloadUrl());
} }
intent.putExtra(ViewVideoActivity.EXTRA_POST_TITLE, mPost.getTitle()); intent.putExtra(ViewVideoActivity.EXTRA_POST_TITLE, mPost.getTitle());
@ -2376,7 +2377,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
intent.putExtra(ViewVideoActivity.EXTRA_STREAMABLE_SHORT_CODE, mPost.getStreamableShortCode()); intent.putExtra(ViewVideoActivity.EXTRA_STREAMABLE_SHORT_CODE, mPost.getStreamableShortCode());
} else { } else {
intent.setData(Uri.parse(mPost.getVideoUrl())); intent.setData(Uri.parse(mPost.getVideoUrl()));
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_DIRECT); intent.putExtra(ViewVideoActivity.EXTRA_SUBREDDIT, mPost.getSubredditName());
intent.putExtra(ViewVideoActivity.EXTRA_ID, mPost.getId()); intent.putExtra(ViewVideoActivity.EXTRA_ID, mPost.getId());
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, mPost.getVideoDownloadUrl()); intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, mPost.getVideoDownloadUrl());
} }

View File

@ -542,7 +542,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
if (mDisplaySubredditName) { if (mDisplaySubredditName) {
if (authorPrefixed.equals(post.getSubredditNamePrefixed())) { if (authorPrefixed.equals(post.getSubredditNamePrefixed())) {
if (post.getAuthorIconUrl() == null) { if (post.getAuthorIconUrl() == null) {
mFragment.loadIcon(post.getAuthorNamePrefixed(), false, (subredditOrUserName, iconUrl) -> { mFragment.loadIcon(post.getAuthor(), false, (subredditOrUserName, iconUrl) -> {
if (mActivity != null && getItemCount() > 0 && post.getAuthor().equals(subredditOrUserName)) { if (mActivity != null && getItemCount() > 0 && post.getAuthor().equals(subredditOrUserName)) {
if (iconUrl == null || iconUrl.equals("")) { if (iconUrl == null || iconUrl.equals("")) {
mGlide.load(R.drawable.subreddit_default_icon) mGlide.load(R.drawable.subreddit_default_icon)
@ -574,7 +574,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
} }
} else { } else {
if (post.getSubredditIconUrl() == null) { if (post.getSubredditIconUrl() == null) {
mFragment.loadIcon(post.getSubredditNamePrefixed(), true, (subredditOrUserName, iconUrl) -> { mFragment.loadIcon(post.getSubredditName(), true, (subredditOrUserName, iconUrl) -> {
if (mActivity != null && getItemCount() > 0 && post.getSubredditName().equals(subredditOrUserName)) { if (mActivity != null && getItemCount() > 0 && post.getSubredditName().equals(subredditOrUserName)) {
if (iconUrl == null || iconUrl.equals("")) { if (iconUrl == null || iconUrl.equals("")) {
mGlide.load(R.drawable.subreddit_default_icon) mGlide.load(R.drawable.subreddit_default_icon)
@ -608,7 +608,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
} else { } else {
if (post.getAuthorIconUrl() == null) { if (post.getAuthorIconUrl() == null) {
String authorName = post.isAuthorDeleted() ? post.getSubredditName() : post.getAuthor(); String authorName = post.isAuthorDeleted() ? post.getSubredditName() : post.getAuthor();
mFragment.loadIcon(post.getSubredditNamePrefixed(), post.isAuthorDeleted(), (subredditOrUserName, iconUrl) -> { mFragment.loadIcon(authorName, post.isAuthorDeleted(), (subredditOrUserName, iconUrl) -> {
if (mActivity != null && getItemCount() > 0) { if (mActivity != null && getItemCount() > 0) {
if (iconUrl == null || iconUrl.equals("") && authorName.equals(subredditOrUserName)) { if (iconUrl == null || iconUrl.equals("") && authorName.equals(subredditOrUserName)) {
mGlide.load(R.drawable.subreddit_default_icon) mGlide.load(R.drawable.subreddit_default_icon)
@ -913,15 +913,15 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) { public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
int width = resource.getIntrinsicWidth(); int width = resource.getIntrinsicWidth();
int height = resource.getIntrinsicHeight(); int height = resource.getIntrinsicHeight();
((PostCard2VideoAutoplayViewHolder) holder).previewImageView.setImageDrawable(resource); ((PostVideoAutoplayViewHolder) holder).previewImageView.setImageDrawable(resource);
if (preview.getPreviewHeight() <= 0 || preview.getPreviewWidth() <= 0) { if (preview.getPreviewHeight() <= 0 || preview.getPreviewWidth() <= 0) {
((PostCard2VideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio((float) height / width); ((PostVideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio((float) height / width);
((PostCard2VideoAutoplayViewHolder) holder).previewImageView.getLayoutParams().height = height; ((PostVideoAutoplayViewHolder) holder).previewImageView.getLayoutParams().height = height;
preview.setPreviewHeight(height); preview.setPreviewHeight(height);
preview.setPreviewWidth(width); preview.setPreviewWidth(width);
} else { } else {
((PostCard2VideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth()); ((PostVideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth());
((PostCard2VideoAutoplayViewHolder) holder).previewImageView.getLayoutParams().height = height; ((PostVideoAutoplayViewHolder) holder).previewImageView.getLayoutParams().height = height;
} }
} }
@ -1109,8 +1109,8 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
if (mDisplaySubredditName) { if (mDisplaySubredditName) {
if (authorPrefixed.equals(subredditNamePrefixed)) { if (authorPrefixed.equals(subredditNamePrefixed)) {
if (post.getAuthorIconUrl() == null) { if (post.getAuthorIconUrl() == null) {
mFragment.loadIcon(post.getAuthorNamePrefixed(), false, (subredditOrUserName, iconUrl) -> { mFragment.loadIcon(post.getAuthor(), false, (subredditOrUserName, iconUrl) -> {
if (mActivity != null && getItemCount() > 0 && post.getAuthorNamePrefixed().equals(subredditOrUserName)) { if (mActivity != null && getItemCount() > 0 && post.getAuthor().equals(subredditOrUserName)) {
if (iconUrl == null || iconUrl.equals("")) { if (iconUrl == null || iconUrl.equals("")) {
mGlide.load(R.drawable.subreddit_default_icon) mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))) .apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
@ -1141,7 +1141,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
} }
} else { } else {
if (post.getSubredditIconUrl() == null) { if (post.getSubredditIconUrl() == null) {
mFragment.loadIcon(subredditNamePrefixed, true, (subredditOrUserName, iconUrl) -> { mFragment.loadIcon(subredditName, true, (subredditOrUserName, iconUrl) -> {
if (mActivity != null && getItemCount() > 0 && subredditName.equals(subredditOrUserName)) { if (mActivity != null && getItemCount() > 0 && subredditName.equals(subredditOrUserName)) {
if (iconUrl == null || iconUrl.equals("")) { if (iconUrl == null || iconUrl.equals("")) {
mGlide.load(R.drawable.subreddit_default_icon) mGlide.load(R.drawable.subreddit_default_icon)
@ -1181,8 +1181,8 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
} }
} else { } else {
if (post.getAuthorIconUrl() == null) { if (post.getAuthorIconUrl() == null) {
String authorName = post.getAuthorNamePrefixed(); String authorName = post.getSubredditName();
mFragment.loadIcon(post.getAuthorNamePrefixed(), false, (subredditOrUserName, iconUrl) -> { mFragment.loadIcon(authorName, post.isAuthorDeleted(), (subredditOrUserName, iconUrl) -> {
if (mActivity != null && getItemCount() > 0 && authorName.equals(subredditOrUserName)) { if (mActivity != null && getItemCount() > 0 && authorName.equals(subredditOrUserName)) {
if (iconUrl == null || iconUrl.equals("")) { if (iconUrl == null || iconUrl.equals("")) {
mGlide.load(R.drawable.subreddit_default_icon) mGlide.load(R.drawable.subreddit_default_icon)
@ -2249,7 +2249,8 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
intent.putExtra(ViewVideoActivity.EXTRA_STREAMABLE_SHORT_CODE, post.getStreamableShortCode()); intent.putExtra(ViewVideoActivity.EXTRA_STREAMABLE_SHORT_CODE, post.getStreamableShortCode());
} else { } else {
intent.setData(Uri.parse(post.getVideoUrl())); intent.setData(Uri.parse(post.getVideoUrl()));
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_DIRECT); intent.putExtra(ViewVideoActivity.EXTRA_SUBREDDIT, post.getSubredditName());
intent.putExtra(ViewVideoActivity.EXTRA_ID, post.getId());
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, post.getVideoDownloadUrl()); intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, post.getVideoDownloadUrl());
} }
intent.putExtra(ViewVideoActivity.EXTRA_POST_TITLE, post.getTitle()); intent.putExtra(ViewVideoActivity.EXTRA_POST_TITLE, post.getTitle());

View File

@ -9,7 +9,6 @@ import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
import eu.toldi.infinityforlemmy.subreddit.FetchSubredditData; import eu.toldi.infinityforlemmy.subreddit.FetchSubredditData;
import eu.toldi.infinityforlemmy.subreddit.SubredditDao; import eu.toldi.infinityforlemmy.subreddit.SubredditDao;
import eu.toldi.infinityforlemmy.subreddit.SubredditData; import eu.toldi.infinityforlemmy.subreddit.SubredditData;
import eu.toldi.infinityforlemmy.utils.LemmyUtils;
import retrofit2.Retrofit; import retrofit2.Retrofit;
public class LoadSubredditIcon { public class LoadSubredditIcon {
@ -19,9 +18,9 @@ public class LoadSubredditIcon {
LoadSubredditIconAsyncTaskListener loadSubredditIconAsyncTaskListener) { LoadSubredditIconAsyncTaskListener loadSubredditIconAsyncTaskListener) {
executor.execute(() -> { executor.execute(() -> {
SubredditDao subredditDao = redditDataRoomDatabase.subredditDao(); SubredditDao subredditDao = redditDataRoomDatabase.subredditDao();
SubredditData subredditData = subredditDao.getSubredditDataByActorId(LemmyUtils.qualifiedCommunityName2ActorId(subredditName)); SubredditData subredditData = subredditDao.getSubredditData(subredditName);
if (subredditData != null) { if (subredditData != null) {
String iconImageUrl = subredditDao.getSubredditDataByActorId(LemmyUtils.qualifiedCommunityName2ActorId(subredditName)).getIconUrl(); String iconImageUrl = subredditDao.getSubredditData(subredditName).getIconUrl();
handler.post(() -> loadSubredditIconAsyncTaskListener.loadIconSuccess(iconImageUrl)); handler.post(() -> loadSubredditIconAsyncTaskListener.loadIconSuccess(iconImageUrl));
} else { } else {
handler.post(() -> FetchSubredditData.fetchSubredditData(retrofit, subredditName, accessToken, new FetchSubredditData.FetchSubredditDataListener() { handler.post(() -> FetchSubredditData.fetchSubredditData(retrofit, subredditName, accessToken, new FetchSubredditData.FetchSubredditDataListener() {

View File

@ -8,7 +8,6 @@ import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
import eu.toldi.infinityforlemmy.user.FetchUserData; import eu.toldi.infinityforlemmy.user.FetchUserData;
import eu.toldi.infinityforlemmy.user.UserDao; import eu.toldi.infinityforlemmy.user.UserDao;
import eu.toldi.infinityforlemmy.user.UserData; import eu.toldi.infinityforlemmy.user.UserData;
import eu.toldi.infinityforlemmy.utils.LemmyUtils;
import retrofit2.Retrofit; import retrofit2.Retrofit;
public class LoadUserData { public class LoadUserData {
@ -17,9 +16,8 @@ public class LoadUserData {
Retrofit retrofit, LoadUserDataAsyncTaskListener loadUserDataAsyncTaskListener) { Retrofit retrofit, LoadUserDataAsyncTaskListener loadUserDataAsyncTaskListener) {
executor.execute(() -> { executor.execute(() -> {
UserDao userDao = redditDataRoomDatabase.userDao(); UserDao userDao = redditDataRoomDatabase.userDao();
UserData userData= userDao.getUserDataByActorId(LemmyUtils.qualifiedUserName2ActorId(userName)); if (userDao.getUserData(userName) != null) {
if (userData != null) { String iconImageUrl = userDao.getUserData(userName).getIconUrl();
String iconImageUrl = userData.getIconUrl();
handler.post(() -> loadUserDataAsyncTaskListener.loadUserDataSuccess(iconImageUrl)); handler.post(() -> loadUserDataAsyncTaskListener.loadUserDataSuccess(iconImageUrl));
} else { } else {
handler.post(() -> FetchUserData.fetchUserData(retrofit, userName, new FetchUserData.FetchUserDataListener() { handler.post(() -> FetchUserData.fetchUserData(retrofit, userName, new FetchUserData.FetchUserDataListener() {

View File

@ -285,12 +285,6 @@ public class ParseComment {
String author = creatorObj.getString("name"); String author = creatorObj.getString("name");
String authorQualifiedName = LemmyUtils.actorID2FullName(creatorObj.getString("actor_id")); String authorQualifiedName = LemmyUtils.actorID2FullName(creatorObj.getString("actor_id"));
String linkAuthor = creatorObj.getString("actor_id"); String linkAuthor = creatorObj.getString("actor_id");
String authorAvatar = null;
if(creatorObj.has("avatar")){
authorAvatar = creatorObj.getString("avatar");
}
long commentTimeMillis = 0; long commentTimeMillis = 0;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
commentTimeMillis = ZonedDateTime.parse(commentObj.getString("published"), commentTimeMillis = ZonedDateTime.parse(commentObj.getString("published"),
@ -341,7 +335,6 @@ public class ParseComment {
score, voteType, isSubmitter, distinguished, permalink, depth, collapsed, hasReply, saved, deleted, edited, path); score, voteType, isSubmitter, distinguished, permalink, depth, collapsed, hasReply, saved, deleted, edited, path);
int child_count = countsObj.getInt("child_count"); int child_count = countsObj.getInt("child_count");
comment.setChildCount(child_count); comment.setChildCount(child_count);
comment.setAuthorIconUrl(authorAvatar);
return comment; return comment;
} }

View File

@ -137,7 +137,6 @@ import eu.toldi.infinityforlemmy.post.PostPagingSource;
import eu.toldi.infinityforlemmy.post.PostViewModel; import eu.toldi.infinityforlemmy.post.PostViewModel;
import eu.toldi.infinityforlemmy.postfilter.PostFilter; import eu.toldi.infinityforlemmy.postfilter.PostFilter;
import eu.toldi.infinityforlemmy.postfilter.PostFilterUsage; import eu.toldi.infinityforlemmy.postfilter.PostFilterUsage;
import eu.toldi.infinityforlemmy.utils.LemmyUtils;
import eu.toldi.infinityforlemmy.utils.SharedPreferencesUtils; import eu.toldi.infinityforlemmy.utils.SharedPreferencesUtils;
import eu.toldi.infinityforlemmy.utils.Utils; import eu.toldi.infinityforlemmy.utils.Utils;
import eu.toldi.infinityforlemmy.videoautoplay.ExoCreator; import eu.toldi.infinityforlemmy.videoautoplay.ExoCreator;

View File

@ -114,7 +114,6 @@ import eu.toldi.infinityforlemmy.readpost.InsertReadPost;
import eu.toldi.infinityforlemmy.subreddit.FetchSubredditData; import eu.toldi.infinityforlemmy.subreddit.FetchSubredditData;
import eu.toldi.infinityforlemmy.subreddit.SubredditData; import eu.toldi.infinityforlemmy.subreddit.SubredditData;
import eu.toldi.infinityforlemmy.utils.APIUtils; import eu.toldi.infinityforlemmy.utils.APIUtils;
import eu.toldi.infinityforlemmy.utils.LemmyUtils;
import eu.toldi.infinityforlemmy.utils.SharedPreferencesUtils; import eu.toldi.infinityforlemmy.utils.SharedPreferencesUtils;
import eu.toldi.infinityforlemmy.utils.Utils; import eu.toldi.infinityforlemmy.utils.Utils;
import eu.toldi.infinityforlemmy.videoautoplay.ExoCreator; import eu.toldi.infinityforlemmy.videoautoplay.ExoCreator;

View File

@ -211,13 +211,10 @@ public class ParsePost {
String distinguished, String suggestedSort) throws JSONException { String distinguished, String suggestedSort) throws JSONException {
Post post; Post post;
boolean isVideo = false;
String url = (!data.getJSONObject("post").isNull("url")) ? data.getJSONObject("post").getString("url") : ""; String url = (!data.getJSONObject("post").isNull("url")) ? data.getJSONObject("post").getString("url") : "";
String communityURL = (!data.getJSONObject("community").isNull("icon")) ? data.getJSONObject("community").getString("icon") : "";
Uri uri = Uri.parse(url); Uri uri = Uri.parse(url);
String path = uri.getPath(); String path = uri.getPath();
boolean isVideo = path.endsWith(".mp4") || path.endsWith(".webm") || path.endsWith(".gifv");
if (!data.getJSONObject("post").has("thumbnail_url") && previews.isEmpty()) { if (!data.getJSONObject("post").has("thumbnail_url") && previews.isEmpty()) {
if (!data.getJSONObject("post").isNull("body") && url.equals("")) { if (!data.getJSONObject("post").isNull("body") && url.equals("")) {
@ -247,13 +244,16 @@ public class ParsePost {
} else { } else {
if (isVideo) { if (isVideo) {
//No preview video post //No preview video post
JSONObject redditVideoObject = data.getJSONObject(JSONUtils.MEDIA_KEY).getJSONObject(JSONUtils.REDDIT_VIDEO_KEY);
int postType = Post.VIDEO_TYPE; int postType = Post.VIDEO_TYPE;
String videoUrl = Html.fromHtml(redditVideoObject.getString(JSONUtils.HLS_URL_KEY)).toString();
String videoDownloadUrl = redditVideoObject.getString(JSONUtils.FALLBACK_URL_KEY);
post = new Post(id, fullName, subredditName, subredditNamePrefixed, author, authorFull, postTimeMillis, title, permalink, score, postType, voteType, post = new Post(id, fullName, subredditName, subredditNamePrefixed, author, authorFull, postTimeMillis, title, permalink, score, postType, voteType,
nComments, upvoteRatio, nsfw, locked, saved, distinguished, suggestedSort); nComments, upvoteRatio, nsfw, locked, saved, distinguished, suggestedSort);
post.setVideoUrl(url); post.setVideoUrl(videoUrl);
post.setVideoDownloadUrl(url); post.setVideoDownloadUrl(videoDownloadUrl);
} else if (!url.equals("")) { } else if (!url.equals("")) {
//No preview link post //No preview link post
int postType = Post.NO_PREVIEW_LINK_TYPE; int postType = Post.NO_PREVIEW_LINK_TYPE;
@ -662,7 +662,6 @@ public class ParsePost {
post.setSelfTextPlain(body); post.setSelfTextPlain(body);
post.setSelfTextPlainTrimmed(body.trim()); post.setSelfTextPlainTrimmed(body.trim());
} }
post.setSubredditIconUrl(communityURL);
return post; return post;
} }

View File

@ -251,7 +251,7 @@ public class PostPagingSource extends ListenableFuturePagingSource<Integer, Post
private ListenableFuture<LoadResult<Integer, Post>> loadSubredditPosts(@NonNull LoadParams<Integer> loadParams, LemmyAPI api) { private ListenableFuture<LoadResult<Integer, Post>> loadSubredditPosts(@NonNull LoadParams<Integer> loadParams, LemmyAPI api) {
ListenableFuture<Response<String>> subredditPost; ListenableFuture<Response<String>> subredditPost;
subredditPost = api.getPosts(null,sortType.getType().value,loadParams.getKey(),25,null,subredditOrUserName,false,accessToken); subredditPost = api.getPosts(null,sortType.getType().value,loadParams.getKey(),25,null,subredditOrUserName,false,null);
ListenableFuture<LoadResult<Integer, Post>> pageFuture = Futures.transform(subredditPost, this::transformData, executor); ListenableFuture<LoadResult<Integer, Post>> pageFuture = Futures.transform(subredditPost, this::transformData, executor);

View File

@ -105,7 +105,7 @@ public class CrashReportsFragment extends Fragment {
} catch (UnsupportedEncodingException e) { } catch (UnsupportedEncodingException e) {
return false; return false;
} }
Uri githubIssueUri = Uri.parse(String.format("https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy/issues/new?template=.gitea%2fissue_template%2fbug_report.md", model, appVersion, androidVersion, logs)); Uri githubIssueUri = Uri.parse(String.format("https://github.com/Docile-Alligator/Infinity-For-Reddit/issues/new?labels=possible-bug&device=%s&version=%s&android_version=%s&logs=%s&&template=BUG_REPORT.yml", model, appVersion, androidVersion, logs));
intent.setData(githubIssueUri); intent.setData(githubIssueUri);
startActivity(intent); startActivity(intent);
return true; return true;

View File

@ -182,13 +182,13 @@ public class ParseSubredditData {
public static String formatISOTime(String isoTime) { public static String formatISOTime(String isoTime) {
// Truncate the time to millisecond precision // Truncate the time to millisecond precision
//String truncatedTime = isoTime.substring(0, 23); String truncatedTime = isoTime.substring(0, 23);
SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.US); SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.US);
isoFormat.setTimeZone(TimeZone.getTimeZone("UTC")); isoFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
try { try {
Date date = isoFormat.parse(isoTime); Date date = isoFormat.parse(truncatedTime);
// Set your desired output format here // Set your desired output format here
SimpleDateFormat outputFormat = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss", Locale.US); SimpleDateFormat outputFormat = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss", Locale.US);

View File

@ -22,7 +22,4 @@ public interface SubredditDao {
@Query("SELECT * from subreddits WHERE name = :namePrefixed COLLATE NOCASE LIMIT 1") @Query("SELECT * from subreddits WHERE name = :namePrefixed COLLATE NOCASE LIMIT 1")
SubredditData getSubredditData(String namePrefixed); SubredditData getSubredditData(String namePrefixed);
@Query("SELECT * from subreddits WHERE actor_id = :actorId COLLATE NOCASE LIMIT 1")
SubredditData getSubredditDataByActorId(String actorId);
} }

View File

@ -25,7 +25,4 @@ public interface UserDao {
@Query("SELECT * FROM users WHERE name = :userName COLLATE NOCASE LIMIT 1") @Query("SELECT * FROM users WHERE name = :userName COLLATE NOCASE LIMIT 1")
UserData getUserData(String userName); UserData getUserData(String userName);
@Query("SELECT * FROM users WHERE actor_id = :actorId COLLATE NOCASE LIMIT 1")
UserData getUserDataByActorId(String actorId);
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -15,13 +15,13 @@
<string name="view_message_activity_label">"Caixa de Entrada"</string> <string name="view_message_activity_label">"Caixa de Entrada"</string>
<string name="settings_activity_label">"Definições"</string> <string name="settings_activity_label">"Definições"</string>
<string name="account_saved_thing_activity_label">"Guardado"</string> <string name="account_saved_thing_activity_label">"Guardado"</string>
<string name="create_multi_reddit_activity_label">"Criar Multicomunidade"</string> <string name="create_multi_reddit_activity_label">"Criar Multireddit"</string>
<string name="community_multiselection_activity_label">"Selecionar Comunidades"</string> <string name="community_multiselection_activity_label">"Selecionar Comunidades"</string>
<string name="custom_theme_listing_activity_label">"Temas Personalizados"</string> <string name="custom_theme_listing_activity_label">"Temas Personalizados"</string>
<string name="customize_theme_activity_label">"Personalizar Tema"</string> <string name="customize_theme_activity_label">"Personalizar Tema"</string>
<string name="customize_theme_activity_create_theme_label">"Criar Tema"</string> <string name="customize_theme_activity_create_theme_label">"Criar Tema"</string>
<string name="theme_preview_activity_label">"Pré-visualizar Tema"</string> <string name="theme_preview_activity_label">"Pré-visualizar Tema"</string>
<string name="edit_multi_reddit_activity_label">"Editar Multicomunidade"</string> <string name="edit_multi_reddit_activity_label">"Editar Multireddit"</string>
<string name="selected_subeddits_activity_label">"Comunidades selecionadas"</string> <string name="selected_subeddits_activity_label">"Comunidades selecionadas"</string>
<string name="report_activity_label">"Denunciar"</string> <string name="report_activity_label">"Denunciar"</string>
<string name="view_imgur_media_activity_image_label">"Imagem %1$d/%2$d"</string> <string name="view_imgur_media_activity_image_label">"Imagem %1$d/%2$d"</string>
@ -53,8 +53,8 @@
<string name="action_edit_flair">"Editar Flair"</string> <string name="action_edit_flair">"Editar Flair"</string>
<string name="action_change_post_layout">"Alterar Visualização de Publicações"</string> <string name="action_change_post_layout">"Alterar Visualização de Publicações"</string>
<string name="action_save">"Guardar"</string> <string name="action_save">"Guardar"</string>
<string name="action_edit_multi_reddit">"Editar MultiComunidade"</string> <string name="action_edit_multi_reddit">"Editar MultiReddit"</string>
<string name="action_delete_multi_reddit">"Eliminar MultiComunidade"</string> <string name="action_delete_multi_reddit">"Eliminar MultiReddit"</string>
<string name="action_share">"Partilhar"</string> <string name="action_share">"Partilhar"</string>
<string name="action_preview">"Pré-visualizar"</string> <string name="action_preview">"Pré-visualizar"</string>
<string name="action_report">"Denunciar"</string> <string name="action_report">"Denunciar"</string>
@ -81,7 +81,7 @@ Toque para tentar novamente."</string>
<string name="no_comments">"Sem comentários encontrados"</string> <string name="no_comments">"Sem comentários encontrados"</string>
<string name="no_communities">"Nenhuma comunidade encontrada"</string> <string name="no_communities">"Nenhuma comunidade encontrada"</string>
<string name="no_users">"Nenhum utilizador encontrado"</string> <string name="no_users">"Nenhum utilizador encontrado"</string>
<string name="no_multi_reddits">"Nenhuma Multicomunidade encontrada"</string> <string name="no_multi_reddits">"Nenhum Multireddit encontrado"</string>
<string name="no_storage_permission">"Sem permissão de armazenamento para guardar este ficheiro"</string> <string name="no_storage_permission">"Sem permissão de armazenamento para guardar este ficheiro"</string>
<string name="load_comments_failed">"Erro ao carregar comentários. <string name="load_comments_failed">"Erro ao carregar comentários.
Toque para tentar novamente."</string> Toque para tentar novamente."</string>
@ -102,7 +102,7 @@ Toque para tentar novamente."</string>
<string name="since">"Desde:"</string> <string name="since">"Desde:"</string>
<string name="profile">"Perfil"</string> <string name="profile">"Perfil"</string>
<string name="subscriptions">"Subscrições"</string> <string name="subscriptions">"Subscrições"</string>
<string name="multi_reddit">"Multi-comunidade"</string> <string name="multi_reddit">"Multi-reddit"</string>
<string name="inbox">"Caixa de Entrada"</string> <string name="inbox">"Caixa de Entrada"</string>
<string name="upvoted">"Voto Positivo"</string> <string name="upvoted">"Voto Positivo"</string>
<string name="downvoted">"Voto Negativo"</string> <string name="downvoted">"Voto Negativo"</string>
@ -115,7 +115,7 @@ Toque para tentar novamente."</string>
<string name="cannot_fetch_community_info">"Não é possível obter informações da comunidade"</string> <string name="cannot_fetch_community_info">"Não é possível obter informações da comunidade"</string>
<string name="cannot_fetch_user_info">"Não é possível obter informações do utilizador"</string> <string name="cannot_fetch_user_info">"Não é possível obter informações do utilizador"</string>
<string name="cannot_fetch_sidebar">"Não é possível obter informações da barra lateral"</string> <string name="cannot_fetch_sidebar">"Não é possível obter informações da barra lateral"</string>
<string name="cannot_fetch_multireddit">"Não é possível obter informações da multicomunidade"</string> <string name="cannot_fetch_multireddit">"Não é possível obter informações do multireddit"</string>
<string name="subscribe">"Subscrever"</string> <string name="subscribe">"Subscrever"</string>
<string name="unsubscribe">"Cancelar subscrição"</string> <string name="unsubscribe">"Cancelar subscrição"</string>
<string name="subscribed">"Subscrito"</string> <string name="subscribed">"Subscrito"</string>
@ -385,13 +385,13 @@ Toque para tentar novamente."</string>
<string name="settings_rate_summary">"Dê-me 5 estrelas que ficarei muito contente"</string> <string name="settings_rate_summary">"Dê-me 5 estrelas que ficarei muito contente"</string>
<string name="settings_email_title">"Email"</string> <string name="settings_email_title">"Email"</string>
<string name="settings_email_summary">"docilealligator.app@gmail.com"</string> <string name="settings_email_summary">"docilealligator.app@gmail.com"</string>
<string name="settings_reddit_account_title">"Conta do Lemmy"</string> <string name="settings_reddit_account_title">"Conta do Reddit"</string>
<string name="settings_reddit_account_summary">"u/Hostilenemy"</string> <string name="settings_reddit_account_summary">"u/Hostilenemy"</string>
<string name="settings_community_title">"Comunidade"</string> <string name="settings_community_title">"Comunidade"</string>
<string name="settings_community_summary">!infinityforlemmy@lemdro.id</string> <string name="settings_community_summary">!infinityforlemmy@lemdro.id</string>
<string name="settings_share_title">"Partilhar"</string> <string name="settings_share_title">"Partilhar"</string>
<string name="settings_share_summary">"Se aprecia esta aplicação, partilhe-a com outros"</string> <string name="settings_share_summary">"Se aprecia esta aplicação, partilhe-a com outros"</string>
<string name="settings_version_title">"Infinity For Lemmy"</string> <string name="settings_version_title">"Infinity For Reddit"</string>
<string name="settings_version_summary">"Versão %s"</string> <string name="settings_version_summary">"Versão %s"</string>
<string name="settings_category_customization_title">"Personalização"</string> <string name="settings_category_customization_title">"Personalização"</string>
<string name="settings_customize_light_theme_title">"Tema Claro"</string> <string name="settings_customize_light_theme_title">"Tema Claro"</string>
@ -414,7 +414,7 @@ Toque para tentar novamente."</string>
<string name="settings_tab_community_name">"Nome da Comunidade (sem prefixo r/)"</string> <string name="settings_tab_community_name">"Nome da Comunidade (sem prefixo r/)"</string>
<!-- Fuzzy --> <!-- Fuzzy -->
<string name="settings_tab_multi_reddit_name">"Nome MultiComunidade (/utilizador/oseunomedeutilizador/m/oseunomemulticomunidade)"</string> <string name="settings_tab_multi_reddit_name">"Nome MultiReddit (/utilizador/oseunomedeutilizador/m/oseunomemultireddit)"</string>
<string name="settings_tab_username">"Nome de Utilizador (sem prefixo u/)"</string> <string name="settings_tab_username">"Nome de Utilizador (sem prefixo u/)"</string>
<string name="no_developer_easter_egg">"Aqui não existem opções de programador"</string> <string name="no_developer_easter_egg">"Aqui não existem opções de programador"</string>
<string name="no_link_available">"Não foi possível obter a ligação"</string> <string name="no_link_available">"Não foi possível obter a ligação"</string>
@ -452,10 +452,10 @@ Toque para tentar novamente."</string>
<string name="elapsed_time_months_ago">"%1$d Meses"</string> <string name="elapsed_time_months_ago">"%1$d Meses"</string>
<string name="elapsed_time_a_year_ago">"1 Ano"</string> <string name="elapsed_time_a_year_ago">"1 Ano"</string>
<string name="elapsed_time_years_ago">"%1$d Anos"</string> <string name="elapsed_time_years_ago">"%1$d Anos"</string>
<string name="error_getting_multi_reddit_data">"Erro ao obter dados da multicomunidade"</string> <string name="error_getting_multi_reddit_data">"Erro ao obter dados do multireddit"</string>
<string name="error_loading_multi_reddit_list">"Não foi possível sincronizar multicomunidades"</string> <string name="error_loading_multi_reddit_list">"Não foi possível sincronizar multireddits"</string>
<string name="error_loading_subscriptions">"Não foi possível sincronizar as subscrições"</string> <string name="error_loading_subscriptions">"Não foi possível sincronizar as subscrições"</string>
<string name="share_this_app">"Check out Infinity for Lemmy, an awesome Lemmy client! <string name="share_this_app">"Check out Infinity for Reddit, an awesome Reddit client!
https://play.google.com/store/apps/details?id=eu.toldi.infinityforlemmy"</string> https://play.google.com/store/apps/details?id=eu.toldi.infinityforlemmy"</string>
<string name="error_getting_community_name">"Erro ao obter o nome da comunidade"</string> <string name="error_getting_community_name">"Erro ao obter o nome da comunidade"</string>
<string name="share_post_link">"Partilhar Endereço da Publicação"</string> <string name="share_post_link">"Partilhar Endereço da Publicação"</string>
@ -483,9 +483,9 @@ https://play.google.com/store/apps/details?id=eu.toldi.infinityforlemmy"</string
<string name="multi_reddit_description_hint">"Descrição"</string> <string name="multi_reddit_description_hint">"Descrição"</string>
<string name="private_multi_reddit">"Privado"</string> <string name="private_multi_reddit">"Privado"</string>
<string name="no_multi_reddit_name">"Onde está o nome?"</string> <string name="no_multi_reddit_name">"Onde está o nome?"</string>
<string name="create_multi_reddit_failed">"Não é possível criar esta multicomunidade"</string> <string name="create_multi_reddit_failed">"Não é possível criar este multireddit"</string>
<string name="duplicate_multi_reddit">"Esta multicomunidade já existe"</string> <string name="duplicate_multi_reddit">"Este multireddit já existe"</string>
<string name="edit_multi_reddit_failed">"Não é possível editar esta multicomunidade"</string> <string name="edit_multi_reddit_failed">"Não é possível editar este multireddit"</string>
<string name="delete_multi_reddit_success">"Eliminado com sucesso"</string> <string name="delete_multi_reddit_success">"Eliminado com sucesso"</string>
<string name="delete_multi_reddit_failed">"Falha ao eliminar"</string> <string name="delete_multi_reddit_failed">"Falha ao eliminar"</string>
<string name="delete_multi_reddit_dialog_message">"Tem a certeza?"</string> <string name="delete_multi_reddit_dialog_message">"Tem a certeza?"</string>
@ -688,7 +688,7 @@ com base no Tema Indigo Amoled"</string>
<string name="delete_all_front_page_scrolled_positions_success">"Eliminação das posições de deslizamento com sucesso"</string> <string name="delete_all_front_page_scrolled_positions_success">"Eliminação das posições de deslizamento com sucesso"</string>
<string name="reset_all_settings_success">"Todas as definições repostas com sucesso"</string> <string name="reset_all_settings_success">"Todas as definições repostas com sucesso"</string>
<string name="username_preview">"u/Hostilenemy"</string> <string name="username_preview">"u/Hostilenemy"</string>
<string name="community_preview">"c/infinityforlemmy"</string> <string name="community_preview">"r/Infinity_For_Reddit"</string>
<string name="primary_text_preview">"Texto Principal"</string> <string name="primary_text_preview">"Texto Principal"</string>
<string name="secondary_text_preview">"Texto Secundário"</string> <string name="secondary_text_preview">"Texto Secundário"</string>
<string name="post_title_preview">"Isto é uma publicação"</string> <string name="post_title_preview">"Isto é uma publicação"</string>
@ -699,8 +699,8 @@ com base no Tema Indigo Amoled"</string>
<string name="author_flair_preview">"Flair do Autor"</string> <string name="author_flair_preview">"Flair do Autor"</string>
<string name="comment_content_preview">"Arranjei um cartão a desejar as \"Melhoras\" à minha namorada. <string name="comment_content_preview">"Arranjei um cartão a desejar as \"Melhoras\" à minha namorada.
Ela não está doente nem nada, mas certamente poderá melhorar."</string> Ela não está doente nem nada, mas certamente poderá melhorar."</string>
<string name="edit_multi_reddit">"Editar Multicomunidade"</string> <string name="edit_multi_reddit">"Editar Multireddit"</string>
<string name="delete_multi_reddit">"Eliminar Multicomunidade"</string> <string name="delete_multi_reddit">"Eliminar Multireddit"</string>
<string name="n_awards">"%1$d Prémios"</string> <string name="n_awards">"%1$d Prémios"</string>
<string name="one_award">"1 Prémio"</string> <string name="one_award">"1 Prémio"</string>
<string name="report">"Denunciar"</string> <string name="report">"Denunciar"</string>
@ -713,7 +713,7 @@ Ela não está doente nem nada, mas certamente poderá melhorar."</string>
<string name="report_reason_general_child_pornography">"Contém Pornografia Infantil"</string> <string name="report_reason_general_child_pornography">"Contém Pornografia Infantil"</string>
<string name="report_reason_general_abusive_content">"Contém Conteúdo Abusivo"</string> <string name="report_reason_general_abusive_content">"Contém Conteúdo Abusivo"</string>
<string name="home">"Início"</string> <string name="home">"Início"</string>
<string name="local">"Local"</string> <string name="local">"Popular"</string>
<string name="notifications">"Notificações"</string> <string name="notifications">"Notificações"</string>
<string name="messages">"Mensagens"</string> <string name="messages">"Mensagens"</string>
<string name="message">"Mensagem"</string> <string name="message">"Mensagem"</string>
@ -787,7 +787,7 @@ Os separadores poderão perder todo o conteúdo após alternar entre outros. É
<string name="settings_data_saving_mode">"Modo de Poupança de Dados"</string> <string name="settings_data_saving_mode">"Modo de Poupança de Dados"</string>
<string name="settings_data_saving_mode_info_summary">"No modo de poupança de dados: <string name="settings_data_saving_mode_info_summary">"No modo de poupança de dados:
Pré-visualização de imagens em baixa resolução. Pré-visualização de imagens em baixa resolução.
Vídeos do Lemmy em baixa resolução. Vídeos do Reddit em baixa resolução.
Reprodução automática de vídeos desativada."</string> Reprodução automática de vídeos desativada."</string>
<string name="settings_translation_title">"Tradução"</string> <string name="settings_translation_title">"Tradução"</string>
<string name="settings_translation_summary">"Traduzir esta aplicação no POEditor. Obrigado a todos os colaboradores."</string> <string name="settings_translation_summary">"Traduzir esta aplicação no POEditor. Obrigado a todos os colaboradores."</string>
@ -855,10 +855,10 @@ Mensagem: %2$s"</string>
<string name="filtered_posts_activity_subtitle">"Publicações Filtradas"</string> <string name="filtered_posts_activity_subtitle">"Publicações Filtradas"</string>
<string name="post_filter_preference_activity_label">"Filtro de Publicações"</string> <string name="post_filter_preference_activity_label">"Filtro de Publicações"</string>
<string name="search_users_result_activity_label">"Utilizadores"</string> <string name="search_users_result_activity_label">"Utilizadores"</string>
<string name="multireddit_selection_activity_label">"Escolher uma Multicomunidade"</string> <string name="multireddit_selection_activity_label">"Escolher um Multireddit"</string>
<string name="action_save_to_database">"Guardar na Base de Dados"</string> <string name="action_save_to_database">"Guardar na Base de Dados"</string>
<string name="action_read_all_messages">"Ler Todas as Mensagens"</string> <string name="action_read_all_messages">"Ler Todas as Mensagens"</string>
<string name="action_add_to_multireddit">"Adicionar à Multicomunidade"</string> <string name="action_add_to_multireddit">"Adicionar ao Multireddit"</string>
<string name="search_only_communities_hint">"Pesquisar comunidades"</string> <string name="search_only_communities_hint">"Pesquisar comunidades"</string>
<string name="search_only_users_hint">"Pesquisar utilizadores"</string> <string name="search_only_users_hint">"Pesquisar utilizadores"</string>
<string name="post_type_gif">"Gif"</string> <string name="post_type_gif">"Gif"</string>
@ -895,7 +895,7 @@ Mensagem: %2$s"</string>
<string name="only_spoiler">"Apenas Spoiler"</string> <string name="only_spoiler">"Apenas Spoiler"</string>
<string name="title_excludes_strings_hint">"Título: excluir palavras-chave (palavra1,palavra2)"</string> <string name="title_excludes_strings_hint">"Título: excluir palavras-chave (palavra1,palavra2)"</string>
<string name="title_excludes_regex_hint">"Título: excluir expressões regulares"</string> <string name="title_excludes_regex_hint">"Título: excluir expressões regulares"</string>
<string name="exclude_communities_hint">"Excluir comunidades (ex.: funny,Asklemmy)"</string> <string name="exclude_communities_hint">"Excluir comunidades (ex.: funny,AskReddit)"</string>
<string name="exclude_users_hint">"Excluir utilizadores (ex.: Hostilenemy,random)"</string> <string name="exclude_users_hint">"Excluir utilizadores (ex.: Hostilenemy,random)"</string>
<string name="exclude_flairs_hint">"Excluir flairs (ex.: flair1, flair2)"</string> <string name="exclude_flairs_hint">"Excluir flairs (ex.: flair1, flair2)"</string>
<string name="contain_flairs_hint">"Contém flairs (ex.: flair1, flair2)"</string> <string name="contain_flairs_hint">"Contém flairs (ex.: flair1, flair2)"</string>
@ -915,17 +915,17 @@ Mensagem: %2$s"</string>
<string name="post_filter_usage_community_all">"Comunidade"</string> <string name="post_filter_usage_community_all">"Comunidade"</string>
<string name="post_filter_usage_user">"Utilizador: %1$s"</string> <string name="post_filter_usage_user">"Utilizador: %1$s"</string>
<string name="post_filter_usage_user_all">"Utilizador"</string> <string name="post_filter_usage_user_all">"Utilizador"</string>
<string name="post_filter_usage_multireddit">"MultiComunidade: %1$s"</string> <string name="post_filter_usage_multireddit">"MultiReddit: %1$s"</string>
<string name="post_filter_usage_multireddit_all">"MultiComunidade"</string> <string name="post_filter_usage_multireddit_all">"MultiReddit"</string>
<string name="post_filter_usage_search">"Pesquisar"</string> <string name="post_filter_usage_search">"Pesquisar"</string>
<string name="community">"Comunidade"</string> <string name="community">"Comunidade"</string>
<string name="user">"Utilizador"</string> <string name="user">"Utilizador"</string>
<string name="edit_post_filter_name_of_usage_info">"Deixar em branco para aplicar este filtro de publicação a todos os utilizadores / comunidades / multilemmy"</string> <string name="edit_post_filter_name_of_usage_info">"Deixar em branco para aplicar este filtro de publicação a todos os utilizadores / comunidades / multireddit"</string>
<string name="read_all_messages_time_limit">"Está a repetir esta ação com demasiada frequência. Tente novamente mais tarde. Este é o valor limite da API do Lemmy."</string> <string name="read_all_messages_time_limit">"Está a repetir esta ação com demasiada frequência. Tente novamente mais tarde. Este é o valor limite da API do Reddit."</string>
<string name="read_all_messages_success">"Todas as mensagens lidas com sucesso"</string> <string name="read_all_messages_success">"Todas as mensagens lidas com sucesso"</string>
<string name="read_all_messages_failed">"Não é possível ler todas as mensagens"</string> <string name="read_all_messages_failed">"Não é possível ler todas as mensagens"</string>
<string name="add_community_or_user_to_multireddit_success">"%1$s foi adicionado à multicomunidade %2$s"</string> <string name="add_community_or_user_to_multireddit_success">"%1$s foi adicionado ao multireddit %2$s"</string>
<string name="add_community_or_user_to_multireddit_failed">"Não é possível adicionar %1$s à multicomunidade %2$s"</string> <string name="add_community_or_user_to_multireddit_failed">"Não é possível adicionar %1$s ao multireddit %2$s"</string>
<string name="choose_a_user">"Escolher um utilizador"</string> <string name="choose_a_user">"Escolher um utilizador"</string>
<string name="settings_click_to_show_media_in_gallery_layout">"Clicar para Mostrar Média na Visualização Galeria"</string> <string name="settings_click_to_show_media_in_gallery_layout">"Clicar para Mostrar Média na Visualização Galeria"</string>
<string name="settings_hide_post_type">"Esconder Tipo de Publicação"</string> <string name="settings_hide_post_type">"Esconder Tipo de Publicação"</string>
@ -1013,8 +1013,8 @@ Mensagem: %2$s"</string>
<string name="settings_show_only_one_comment_level_indicator">"Mostrar Apenas Um Indicador do Nível de Comentário"</string> <string name="settings_show_only_one_comment_level_indicator">"Mostrar Apenas Um Indicador do Nível de Comentário"</string>
<string name="save_comment">"Guardar"</string> <string name="save_comment">"Guardar"</string>
<string name="unsave_comment">"Esquecer"</string> <string name="unsave_comment">"Esquecer"</string>
<string name="copy_multi_reddit_path">"Copiar Caminho da Multicomunidade"</string> <string name="copy_multi_reddit_path">"Copiar Caminho do Multireddit"</string>
<string name="copy_multi_reddit_path_failed">"Não é possível copiar o caminho da multicomunidade"</string> <string name="copy_multi_reddit_path_failed">"Não é possível copiar o caminho do multireddit"</string>
<string name="crash_reports_deleted">"Os relatórios de erros eliminados"</string> <string name="crash_reports_deleted">"Os relatórios de erros eliminados"</string>
<string name="disable_nsfw_forever_message">"Uma vez ativo, todo o conteúdo impróprio será desativado permanentemente, quer a definição de conteúdo 18+ esteja ativa ou não. Esta configuração é irreversível e a única maneira de reativar conteúdo 18+ é limpando os dados da aplicação. <string name="disable_nsfw_forever_message">"Uma vez ativo, todo o conteúdo impróprio será desativado permanentemente, quer a definição de conteúdo 18+ esteja ativa ou não. Esta configuração é irreversível e a única maneira de reativar conteúdo 18+ é limpando os dados da aplicação.
@ -1027,7 +1027,7 @@ Ainda deseja ativar esta opção?"</string>
<string name="receive_post_reply_notifications">"Receber notificações de respostas de publicações"</string> <string name="receive_post_reply_notifications">"Receber notificações de respostas de publicações"</string>
<string name="bottom_sheet_post_gallery">"Galeria"</string> <string name="bottom_sheet_post_gallery">"Galeria"</string>
<string name="posting_gallery">"A Publicar Galeria"</string> <string name="posting_gallery">"A Publicar Galeria"</string>
<string name="label_reddit">"Lemmy"</string> <string name="label_reddit">"Reddit"</string>
<string name="settings_default_link_post_layout">"Disposição predefinida de Publicações de Ligação"</string> <string name="settings_default_link_post_layout">"Disposição predefinida de Publicações de Ligação"</string>
<string name="settings_category_material_you_title">"Material You"</string> <string name="settings_category_material_you_title">"Material You"</string>
<string name="settings_enable_material_you_warning_summary">"Assegure-se de que não tem temas com nome <string name="settings_enable_material_you_warning_summary">"Assegure-se de que não tem temas com nome
@ -1039,9 +1039,9 @@ Caso contrário, altere o nome antes de ativar Material You"</string>
<string name="settings_enable_material_you_summary">"Personalizar Infinity baseado na imagem de fundo"</string> <string name="settings_enable_material_you_summary">"Personalizar Infinity baseado na imagem de fundo"</string>
<string name="settings_apply_material_you_title">"Aplicar Material You"</string> <string name="settings_apply_material_you_title">"Aplicar Material You"</string>
<string name="settings_apply_material_you_summary">"Em caso do Infinity não alterar o tema"</string> <string name="settings_apply_material_you_summary">"Em caso do Infinity não alterar o tema"</string>
<string name="settings_more_tabs_show_favorite_multireddits_title">"Mostrar MultiComunidade Favorita"</string> <string name="settings_more_tabs_show_favorite_multireddits_title">"Mostrar MultiReddit Favorito"</string>
<string name="settings_more_tabs_show_multireddits_title">"Mostrar MultiComunidade"</string> <string name="settings_more_tabs_show_multireddits_title">"Mostrar MultiReddit"</string>
<string name="settings_collapse_reddit_section_title">"Recolher Secção do Lemmy"</string> <string name="settings_collapse_reddit_section_title">"Recolher Secção do Reddit"</string>
<string name="settings_video_player_automatic_landscape_orientation">"Alterar para Orientação Paisagem automaticamente no Reprodutor de Vídeo"</string> <string name="settings_video_player_automatic_landscape_orientation">"Alterar para Orientação Paisagem automaticamente no Reprodutor de Vídeo"</string>
<string name="settings_remember_muting_option_in_post_feed">"Lembrar opção sem som no Feed de Publicações"</string> <string name="settings_remember_muting_option_in_post_feed">"Lembrar opção sem som no Feed de Publicações"</string>
<string name="link_post_layout_auto">"Auto"</string> <string name="link_post_layout_auto">"Auto"</string>
@ -1064,7 +1064,7 @@ Toque para tentar novamente."</string>
<string name="settings_post_details_title">"Detalhes do Post"</string> <string name="settings_post_details_title">"Detalhes do Post"</string>
<string name="settings_secure_mode_title">"Modo Seguro"</string> <string name="settings_secure_mode_title">"Modo Seguro"</string>
<string name="error_loading_wiki">"Erro a carregar a Wiki"</string> <string name="error_loading_wiki">"Erro a carregar a Wiki"</string>
<string name="no_wiki">"Esta comunidade não tem wiki"</string> <string name="no_wiki">"Este subreddit não tem wiki"</string>
<string name="material_you_notification_title">"Aplicando Material You"</string> <string name="material_you_notification_title">"Aplicando Material You"</string>
<string name="action_go_to_wiki">"Ir para a Wiki"</string> <string name="action_go_to_wiki">"Ir para a Wiki"</string>
<string name="about">"Sobre"</string> <string name="about">"Sobre"</string>
@ -1074,7 +1074,7 @@ Toque para tentar novamente."</string>
<string name="go_to_top">"Ir para Cima"</string> <string name="go_to_top">"Ir para Cima"</string>
<string name="title_contains_regex_hint">"Título: contém regex"</string> <string name="title_contains_regex_hint">"Título: contém regex"</string>
<string name="contain_domains_hint">"Contém domínios"</string> <string name="contain_domains_hint">"Contém domínios"</string>
<string name="anonymous_multireddit_no_community">"Esta multicomunidade não tem nenhuma comunidade!"</string> <string name="anonymous_multireddit_no_community">"Este multireddit não tem nenhum subreddit!"</string>
<string name="contain_domain">"Contém este domínio"</string> <string name="contain_domain">"Contém este domínio"</string>
<string name="app_lock_timeout_immediately">"Imediatamente"</string> <string name="app_lock_timeout_immediately">"Imediatamente"</string>
<string name="app_lock_timeout_1_min">"1 minuto"</string> <string name="app_lock_timeout_1_min">"1 minuto"</string>

View File

@ -46,6 +46,11 @@
app:key="show_author_avatar" app:key="show_author_avatar"
android:title="@string/settings_show_author_avatar_title" /> android:title="@string/settings_show_author_avatar_title" />
<eu.toldi.infinityforlemmy.customviews.CustomFontSwitchPreference
app:defaultValue="false"
app:key="hide_comment_awards"
android:title="@string/settings_hide_comment_awards_title" />
<eu.toldi.infinityforlemmy.customviews.CustomFontSwitchPreference <eu.toldi.infinityforlemmy.customviews.CustomFontSwitchPreference
app:defaultValue="false" app:defaultValue="false"
app:key="always_show_child_comment_count" app:key="always_show_child_comment_count"

View File

@ -27,6 +27,15 @@
app:key="hide_post_type" app:key="hide_post_type"
app:title="@string/settings_hide_post_type" /> app:title="@string/settings_hide_post_type" />
<eu.toldi.infinityforlemmy.customviews.CustomFontSwitchPreference
app:defaultValue="false"
app:key="hide_post_flair"
app:title="@string/settings_hide_post_flair" />
<eu.toldi.infinityforlemmy.customviews.CustomFontSwitchPreference
app:defaultValue="false"
app:key="hide_the_number_of_awards"
app:title="@string/settings_hide_the_number_of_awards" />
<eu.toldi.infinityforlemmy.customviews.CustomFontSwitchPreference <eu.toldi.infinityforlemmy.customviews.CustomFontSwitchPreference
app:defaultValue="false" app:defaultValue="false"