9 Commits

Author SHA1 Message Date
Balazs Toldi
5fdf1208a7 Better image loading in Markdown
This commit potentially solves issues with slow scrolling on posts and some crashes due to too large files
2024-07-19 20:55:08 +02:00
Balazs Toldi
6708b72fd8 Removed commit log file 2024-07-19 19:15:05 +02:00
Balazs Toldi
327b874fd6 Update strings
Removed anonymous_homepage_not_implemented string from every language file
2024-07-19 19:12:46 +02:00
Balazs Toldi
cafd3c6025 Add option to disable automatic post hide
This commit adds two new options:
- Do not hide saved posts automatically: When enabled, read posts will also be visible on the saved posts page
- Do not hide your own posts: When enabled, your own posts will be visible, even if it's read

Closes #219
Closes #125
2024-07-19 17:02:58 +02:00
Balazs Toldi
9ecbaba3d4 Minor change to distinguish moderators/admins 2024-07-19 17:02:58 +02:00
Balazs Toldi
4741198c78 Show new icon as error image as well
Closes #223
2024-07-19 17:02:58 +02:00
Balazs Toldi
577d5b8e6f Removed Anonymous page not implemented error
No longer needed as it's there now.
2024-07-19 17:02:58 +02:00
SomeTr
307036bca0 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1321 of 1321 strings)

Translation: Eternity/App
Translate-URL: https://translate.codeberg.org/projects/infinity-for-lemmy/app/uk/
2024-07-19 13:18:24 +00:00
Fjuro
ec4c79eb69 Translated using Weblate (Czech)
Currently translated at 100.0% (1321 of 1321 strings)

Translation: Eternity/App
Translate-URL: https://translate.codeberg.org/projects/infinity-for-lemmy/app/cs/
2024-07-19 13:18:24 +00:00
58 changed files with 226 additions and 80 deletions

View File

@@ -286,7 +286,7 @@ public class AccountSavedThingActivity extends BaseActivity implements ActivityT
bundle.putString(PostFragment.EXTRA_USER_NAME, mAccountQualifiedName);
bundle.putString(PostFragment.EXTRA_USER_WHERE, PostPagingSource.USER_WHERE_SAVED);
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountQualifiedName);
bundle.putBoolean(PostFragment.EXTRA_DISABLE_READ_POSTS, true);
fragment.setArguments(bundle);
return fragment;

View File

@@ -205,7 +205,7 @@ public class CommentActivity extends BaseActivity implements UploadImageEnabledA
}
};
Markwon postBodyMarkwon = MarkdownUtils.createFullRedditMarkwon(this,
miscPlugin, parentTextColor, parentSpoilerBackgroundColor, null, mSharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
miscPlugin, parentTextColor, parentSpoilerBackgroundColor, mGlide, null, mSharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
MarkwonAdapter markwonAdapter = MarkdownUtils.createTablesAdapter();
binding.commentContentMarkdownView.setLayoutManager(new LinearLayoutManagerBugFixed(this));
binding.commentContentMarkdownView.setAdapter(markwonAdapter);

View File

@@ -317,7 +317,7 @@ public class FilteredPostsActivity extends BaseActivity implements SortTypeSelec
bundle.putInt(PostFragment.EXTRA_POST_TYPE, postType);
bundle.putParcelable(PostFragment.EXTRA_FILTER, postFilter);
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountQualifiedName);
if (postType == PostPagingSource.TYPE_USER) {
bundle.putString(PostFragment.EXTRA_USER_NAME, name);
bundle.putString(PostFragment.EXTRA_USER_WHERE, userWhere);

View File

@@ -18,6 +18,7 @@ import androidx.appcompat.widget.Toolbar;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
@@ -139,7 +140,7 @@ public class FullMarkdownActivity extends BaseActivity {
}
};
Markwon markwon = MarkdownUtils.createFullRedditMarkwon(this,
miscPlugin, markdownColor, spoilerBackgroundColor, null, mSharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
miscPlugin, markdownColor, spoilerBackgroundColor, Glide.with(getApplication()), null, mSharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
MarkwonAdapter markwonAdapter = MarkdownUtils.createTablesAdapter();
LinearLayoutManagerBugFixed linearLayoutManager = new SwipeLockLinearLayoutManager(this, new SwipeLockInterface() {

View File

@@ -23,6 +23,7 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.card.MaterialCardView;
import com.google.android.material.snackbar.Snackbar;
@@ -190,7 +191,7 @@ public class InstanceInfoActivity extends BaseActivity {
};
mPostDetailMarkwon = MarkdownUtils.createFullRedditMarkwon(this,
miscPlugin, markdownColor, postSpoilerBackgroundColor, null, mSharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
miscPlugin, markdownColor, postSpoilerBackgroundColor, Glide.with(getApplication()), null, mSharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
mMarkwonAdapter = MarkdownUtils.createTablesAdapter();
mContentMarkdownView.setAdapter(mMarkwonAdapter);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);

View File

@@ -1840,7 +1840,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
Bundle bundle = new Bundle();
bundle.putInt(PostFragment.EXTRA_POST_TYPE, mAccessToken == null ? PostPagingSource.TYPE_ANONYMOUS_FRONT_PAGE : PostPagingSource.TYPE_FRONT_PAGE);
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountQualifiedName);
fragment.setArguments(bundle);
return fragment;
} else if (postType == SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_ALL) {
@@ -1849,7 +1849,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostPagingSource.TYPE_FRONT_PAGE);
bundle.putString(PostFragment.EXTRA_NAME, "all");
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountQualifiedName);
fragment.setArguments(bundle);
return fragment;
} else if (postType == SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_SUBREDDIT) {
@@ -1858,7 +1858,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostPagingSource.TYPE_SUBREDDIT);
bundle.putString(PostFragment.EXTRA_NAME, name);
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountQualifiedName);
fragment.setArguments(bundle);
return fragment;
} else if (postType == SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_MULTIREDDIT) {
@@ -1867,7 +1867,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
bundle.putString(PostFragment.EXTRA_NAME, name);
bundle.putInt(PostFragment.EXTRA_POST_TYPE, mAccessToken == null ? PostPagingSource.TYPE_ANONYMOUS_MULTIREDDIT : PostPagingSource.TYPE_MULTI_REDDIT);
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountQualifiedName);
fragment.setArguments(bundle);
return fragment;
} else if (postType == SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_USER) {
@@ -1877,7 +1877,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
bundle.putString(PostFragment.EXTRA_USER_NAME, name);
bundle.putString(PostFragment.EXTRA_USER_WHERE, PostPagingSource.USER_WHERE_SUBMITTED);
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountQualifiedName);
fragment.setArguments(bundle);
return fragment;
} else if (postType == SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_UPVOTED
@@ -1890,7 +1890,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostPagingSource.TYPE_USER);
bundle.putString(PostFragment.EXTRA_USER_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountQualifiedName);
bundle.putBoolean(PostFragment.EXTRA_DISABLE_READ_POSTS, true);
if (postType == SharedPreferencesUtils.MAIN_PAGE_TAB_POST_TYPE_UPVOTED) {
@@ -1913,7 +1913,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostPagingSource.TYPE_FRONT_PAGE);
bundle.putString(PostFragment.EXTRA_NAME, "local");
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountQualifiedName);
fragment.setArguments(bundle);
return fragment;
}

View File

@@ -59,8 +59,6 @@ import eu.toldi.infinityforlemmy.bottomsheetfragments.FABMoreOptionsBottomSheetF
import eu.toldi.infinityforlemmy.bottomsheetfragments.PostLayoutBottomSheetFragment;
import eu.toldi.infinityforlemmy.bottomsheetfragments.PostTypeBottomSheetFragment;
import eu.toldi.infinityforlemmy.bottomsheetfragments.RandomBottomSheetFragment;
import eu.toldi.infinityforlemmy.bottomsheetfragments.SearchPostSortTypeBottomSheetFragment;
import eu.toldi.infinityforlemmy.bottomsheetfragments.SearchUserAndSubredditSortTypeBottomSheetFragment;
import eu.toldi.infinityforlemmy.bottomsheetfragments.SortTimeBottomSheetFragment;
import eu.toldi.infinityforlemmy.bottomsheetfragments.SortTypeBottomSheetFragment;
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
@@ -781,7 +779,7 @@ public class SearchResultActivity extends BaseActivity implements SortTypeSelect
bundle.putString(PostFragment.EXTRA_QUERY, mQuery);
bundle.putString(PostFragment.EXTRA_TRENDING_SOURCE, getIntent().getStringExtra(EXTRA_TRENDING_SOURCE));
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountQualifiedName);
mFragment.setArguments(bundle);
return mFragment;
}

View File

@@ -81,7 +81,7 @@ public class SettingsActivity extends BaseActivity implements
setSupportActionBar(binding.toolbarSettingsActivity);
mAccountName = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCOUNT_NAME, null);
mAccountName = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCOUNT_QUALIFIED_NAME, null);
if (savedInstanceState == null) {
getSupportFragmentManager()

View File

@@ -151,7 +151,7 @@ public class SubredditMultiselectionActivity extends BaseActivity implements Act
if (subscribedSubredditData == null || subscribedSubredditData.size() == 0) {
mRecyclerView.setVisibility(View.GONE);
mLinearLayout.setVisibility(View.VISIBLE);
mGlide.load(R.drawable.error_image).into(mImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(mImageView);
} else {
mLinearLayout.setVisibility(View.GONE);
mRecyclerView.setVisibility(View.VISIBLE);

View File

@@ -278,7 +278,7 @@ public class TrendingActivity extends BaseActivity {
private void showErrorView(int stringId) {
errorLinearLayout.setVisibility(View.VISIBLE);
mGlide.load(R.drawable.error_image).into(errorImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(errorImageView);
errorTextView.setText(stringId);
}

View File

@@ -428,7 +428,7 @@ public class ViewMultiRedditDetailActivity extends BaseActivity implements SortT
bundle.putString(PostFragment.EXTRA_NAME, multiPath);
bundle.putInt(PostFragment.EXTRA_POST_TYPE, mAccessToken == null ? PostPagingSource.TYPE_ANONYMOUS_MULTIREDDIT : PostPagingSource.TYPE_MULTI_REDDIT);
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountQualifiedName);
mFragment.setArguments(bundle);
getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout_view_multi_reddit_detail_activity, mFragment).commit();
}

View File

@@ -1751,7 +1751,7 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp
bundle.putString(PostFragment.EXTRA_NAME, qualifiedName);
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostPagingSource.TYPE_SUBREDDIT);
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountQualifiedName);
fragment.setArguments(bundle);
return fragment;
}

View File

@@ -1765,7 +1765,7 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
bundle.putString(PostFragment.EXTRA_USER_NAME, qualifiedName);
bundle.putString(PostFragment.EXTRA_USER_WHERE, PostPagingSource.USER_WHERE_SUBMITTED);
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountQualifiedName);
fragment.setArguments(bundle);
return fragment;
}

View File

@@ -176,7 +176,7 @@ public class WikiActivity extends BaseActivity {
return true;
};
markwon = MarkdownUtils.createFullRedditMarkwon(this,
miscPlugin, markdownColor, spoilerBackgroundColor, onLinkLongClickListener, mSharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
miscPlugin, markdownColor, spoilerBackgroundColor, mGlide, onLinkLongClickListener, mSharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
markwonAdapter = MarkdownUtils.createTablesAdapter();
LinearLayoutManagerBugFixed linearLayoutManager = new SwipeLockLinearLayoutManager(this, new SwipeLockInterface() {
@@ -259,7 +259,7 @@ public class WikiActivity extends BaseActivity {
swipeRefreshLayout.setRefreshing(false);
mFetchWikiInfoLinearLayout.setVisibility(View.VISIBLE);
mFetchWikiInfoTextView.setText(stringResId);
mGlide.load(R.drawable.error_image).into(mFetchWikiInfoImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(mFetchWikiInfoImageView);
}
@Override

View File

@@ -24,6 +24,7 @@ import androidx.recyclerview.widget.DiffUtil;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.google.android.material.button.MaterialButton;
import java.util.Locale;
@@ -170,7 +171,7 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
return true;
};
mMarkwon = MarkdownUtils.createFullRedditMarkwon(mActivity,
miscPlugin, mCommentColor, commentSpoilerBackgroundColor, onLinkLongClickListener, sharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
miscPlugin, mCommentColor, commentSpoilerBackgroundColor, Glide.with(mActivity.getApplication()), onLinkLongClickListener, sharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
recycledViewPool = new RecyclerView.RecycledViewPool();
}

View File

@@ -221,7 +221,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
return true;
};
mCommentMarkwon = MarkdownUtils.createFullRedditMarkwon(mActivity,
miscPlugin, mCommentTextColor, commentSpoilerBackgroundColor, onLinkLongClickListener, sharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
miscPlugin, mCommentTextColor, commentSpoilerBackgroundColor, mGlide, onLinkLongClickListener, sharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
recycledViewPool = new RecyclerView.RecycledViewPool();
mAccessToken = accessToken;
mAccountQualifiedName = accountName;

View File

@@ -295,7 +295,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
return true;
};
mPostDetailMarkwon = MarkdownUtils.createFullRedditMarkwon(mActivity,
miscPlugin, markdownColor, postSpoilerBackgroundColor, onLinkLongClickListener, sharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
miscPlugin, markdownColor, postSpoilerBackgroundColor, mGlide, onLinkLongClickListener, sharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_IMAGE_PREVIEW, false));
mMarkwonAdapter = MarkdownUtils.createTablesAdapter();
mSeparatePostAndComments = separatePostAndComments;
@@ -677,7 +677,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
((PostDetailBaseVideoAutoplayViewHolder) holder).previewImageView.setVisibility(View.VISIBLE);
Post.Preview preview = getSuitablePreview(mPost.getPreviews());
if (preview != null) {
mGlide.load(preview.getPreviewUrl()).centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(new CustomTarget<Drawable>() {
mGlide.load(preview.getPreviewUrl()).centerInside().thumbnail(0.1f).downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(new CustomTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
int width = resource.getIntrinsicWidth();
@@ -896,7 +896,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
});
if (blurImage) {
imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10))).into(new CustomTarget<Drawable>() {
imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10))).thumbnail(0.1f).into(new CustomTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
int width = resource.getIntrinsicWidth();
@@ -916,7 +916,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
}
});
} else {
imageRequestBuilder.centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(new CustomTarget<Drawable>() {
imageRequestBuilder.centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).thumbnail(0.1f).into(new CustomTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
int width = resource.getIntrinsicWidth();

View File

@@ -18,17 +18,18 @@ import com.bumptech.glide.RequestBuilder;
import com.bumptech.glide.RequestManager;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.load.resource.bitmap.DownsampleStrategy;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.Target;
import java.util.ArrayList;
import io.noties.markwon.Markwon;
import jp.wasabeef.glide.transformations.BlurTransformation;
import eu.toldi.infinityforlemmy.SaveMemoryCenterInisdeDownsampleStrategy;
import eu.toldi.infinityforlemmy.databinding.ItemGalleryImageInPostFeedBinding;
import eu.toldi.infinityforlemmy.post.Post;
import io.noties.markwon.Markwon;
import jp.wasabeef.glide.transformations.BlurTransformation;
public class PostGalleryTypeImageRecyclerViewAdapter extends RecyclerView.Adapter<PostGalleryTypeImageRecyclerViewAdapter.ImageViewHolder> {
private RequestManager glide;
@@ -128,7 +129,7 @@ public class PostGalleryTypeImageRecyclerViewAdapter extends RecyclerView.Adapte
return;
}
RequestBuilder<Drawable> imageRequestBuilder = glide.load(galleryImages.get(index).url).listener(new RequestListener<>() {
RequestBuilder<Drawable> imageRequestBuilder = glide.load(galleryImages.get(index).url).override(1024).listener(new RequestListener<>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
holder.binding.progressBarItemGalleryImageInPostFeed.setVisibility(View.GONE);
@@ -144,10 +145,10 @@ public class PostGalleryTypeImageRecyclerViewAdapter extends RecyclerView.Adapte
}
});
if (blurImage) {
imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10)))
imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10))).thumbnail(0.1f).downsample(DownsampleStrategy.CENTER_INSIDE).override(1024)
.into(holder.binding.imageViewItemGalleryImageInPostFeed);
} else {
imageRequestBuilder.centerInside().downsample(saveMemoryCenterInisdeDownsampleStrategy).into(holder.binding.imageViewItemGalleryImageInPostFeed);
imageRequestBuilder.centerInside().downsample(saveMemoryCenterInisdeDownsampleStrategy).override(1024).thumbnail(0.1f).downsample(DownsampleStrategy.CENTER_INSIDE).into(holder.binding.imageViewItemGalleryImageInPostFeed);
}
}

View File

@@ -12,6 +12,8 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import java.util.ArrayList;
import butterknife.BindView;
@@ -84,7 +86,7 @@ public class RulesRecyclerViewAdapter extends RecyclerView.Adapter<RulesRecycler
return true;
};
markwon = MarkdownUtils.createFullRedditMarkwon(activity,
miscPlugin, mPrimaryTextColor, spoilerBackgroundColor, onLinkLongClickListener, mDisableImagePreview);
miscPlugin, mPrimaryTextColor, spoilerBackgroundColor, Glide.with(activity.getApplication()), onLinkLongClickListener, mDisableImagePreview);
}
@NonNull

View File

@@ -292,6 +292,9 @@ public class ParseComment {
JSONObject postObj = jsonObject.getJSONObject("post");
JSONObject communityObj = jsonObject.getJSONObject("community");
JSONObject countsObj = jsonObject.getJSONObject("counts");
boolean isModerator = jsonObject.optBoolean("creator_is_moderator");
boolean isAdmin = jsonObject.optBoolean("creator_is_admin");
int id = commentObj.getInt("id");
int postID = postObj.getInt("id");
@@ -342,7 +345,7 @@ public class ParseComment {
}
}
boolean isSubmitter = creatorObj.getInt("id") == postObj.getInt("creator_id");
String distinguished = commentObj.getString("distinguished");
String distinguished = isModerator ? "moderator" : (isAdmin ? "admin" : "");
String permalink = commentObj.getString("ap_id");
String[] path = commentObj.getString("path").split(Pattern.quote("."));

View File

@@ -137,7 +137,7 @@ public class BlockedCommunitiesListingFragment extends Fragment implements Fragm
if (subscribedSubredditData == null || subscribedSubredditData.size() == 0) {
mRecyclerView.setVisibility(View.GONE);
mLinearLayout.setVisibility(View.VISIBLE);
mGlide.load(R.drawable.error_image).into(mImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(mImageView);
} else {
mLinearLayout.setVisibility(View.GONE);
mRecyclerView.setVisibility(View.VISIBLE);

View File

@@ -122,7 +122,7 @@ public class BlockedInstancesListingFragment extends Fragment implements Fragmen
if (blockedInstanceData == null || blockedInstanceData.size() == 0) {
mRecyclerView.setVisibility(View.GONE);
mLinearLayout.setVisibility(View.VISIBLE);
mGlide.load(R.drawable.error_image).into(mImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(mImageView);
mErrorTextView.setText(R.string.no_blocked_instances);
} else {
mLinearLayout.setVisibility(View.GONE);

View File

@@ -122,7 +122,7 @@ public class BlockedUsersListingFragment extends Fragment implements FragmentCom
if (subscribedUserData == null || subscribedUserData.size() == 0) {
mRecyclerView.setVisibility(View.GONE);
mLinearLayout.setVisibility(View.VISIBLE);
mGlide.load(R.drawable.error_image).into(mImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(mImageView);
} else {
mLinearLayout.setVisibility(View.GONE);
mRecyclerView.setVisibility(View.VISIBLE);

View File

@@ -382,7 +382,7 @@ public class CommentsListingFragment extends Fragment implements FragmentCommuni
mSwipeRefreshLayout.setRefreshing(false);
mFetchCommentInfoLinearLayout.setVisibility(View.VISIBLE);
mFetchCommentInfoTextView.setText(stringResId);
mGlide.load(R.drawable.error_image).into(mFetchCommentInfoImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(mFetchCommentInfoImageView);
}
}

View File

@@ -29,7 +29,6 @@ import javax.inject.Named;
import butterknife.BindView;
import butterknife.ButterKnife;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
import eu.toldi.infinityforlemmy.FragmentCommunicator;
import eu.toldi.infinityforlemmy.Infinity;
import eu.toldi.infinityforlemmy.R;
@@ -41,6 +40,7 @@ import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
import eu.toldi.infinityforlemmy.customviews.LinearLayoutManagerBugFixed;
import eu.toldi.infinityforlemmy.subscribeduser.SubscribedUserViewModel;
import eu.toldi.infinityforlemmy.utils.SharedPreferencesUtils;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
import retrofit2.Retrofit;
@@ -128,7 +128,7 @@ public class FollowedUsersListingFragment extends Fragment implements FragmentCo
if (subscribedUserData == null || subscribedUserData.size() == 0) {
mRecyclerView.setVisibility(View.GONE);
mLinearLayout.setVisibility(View.VISIBLE);
mGlide.load(R.drawable.error_image).into(mImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(mImageView);
} else {
mLinearLayout.setVisibility(View.GONE);
mRecyclerView.setVisibility(View.VISIBLE);

View File

@@ -171,7 +171,7 @@ public class InboxFragment extends Fragment implements FragmentCommunicator {
mSwipeRefreshLayout.setRefreshing(false);
mFetchMessageInfoLinearLayout.setVisibility(View.VISIBLE);
mFetchMessageInfoTextView.setText(stringResId);
mGlide.load(R.drawable.error_image).into(mFetchMessageInfoImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(mFetchMessageInfoImageView);
}
@Override

View File

@@ -164,7 +164,7 @@ public class MultiRedditListingFragment extends Fragment implements FragmentComm
if (subscribedUserData == null || subscribedUserData.size() == 0) {
mRecyclerView.setVisibility(View.GONE);
mErrorLinearLayout.setVisibility(View.VISIBLE);
mGlide.load(R.drawable.error_image).into(mErrorImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(mErrorImageView);
} else {
mErrorLinearLayout.setVisibility(View.GONE);
mRecyclerView.setVisibility(View.VISIBLE);

View File

@@ -1354,12 +1354,8 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
}
mFetchPostInfoLinearLayout.setOnClickListener(null);
if (accessToken != null) {
showErrorView(R.string.no_posts);
} else {
showErrorView(R.string.anonymous_homepage_not_implemented);
}
showErrorView(R.string.no_posts);
}
public void changeSortType(SortType sortType) {
@@ -1503,7 +1499,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
mSwipeRefreshLayout.setRefreshing(false);
mFetchPostInfoLinearLayout.setVisibility(View.VISIBLE);
mFetchPostInfoTextView.setText(stringResId);
mGlide.load(R.drawable.error_image).into(mFetchPostInfoImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(mFetchPostInfoImageView);
}
}

View File

@@ -162,7 +162,7 @@ public class PrivateMessageFragment extends Fragment implements FragmentCommunic
mSwipeRefreshLayout.setRefreshing(false);
mFetchMessageInfoLinearLayout.setVisibility(View.VISIBLE);
mFetchMessageInfoTextView.setText(stringResId);
mGlide.load(R.drawable.error_image).into(mFetchMessageInfoImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(mFetchMessageInfoImageView);
}
@Override

View File

@@ -21,6 +21,7 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.bumptech.glide.Glide;
import com.evernote.android.state.State;
import com.google.android.material.card.MaterialCardView;
@@ -232,7 +233,7 @@ public class SidebarFragment extends Fragment {
return true;
};
markwon = MarkdownUtils.createFullRedditMarkwon(activity,
miscPlugin, markdownColor, spoilerBackgroundColor, onLinkLongClickListener, mDisableImagePreview);
miscPlugin, markdownColor, spoilerBackgroundColor, Glide.with(activity.getApplication()), onLinkLongClickListener, mDisableImagePreview);
markwonAdapter = MarkdownUtils.createTablesAdapter();
linearLayoutManager = new LinearLayoutManagerBugFixed(activity);

View File

@@ -234,7 +234,7 @@ public class SubredditListingFragment extends Fragment implements FragmentCommun
mSwipeRefreshLayout.setRefreshing(false);
mFetchSubredditListingInfoLinearLayout.setVisibility(View.VISIBLE);
mFetchSubredditListingInfoTextView.setText(stringResId);
Glide.with(this).load(R.drawable.error_image).into(mFetchSubredditListingInfoImageView);
Glide.with(this).load(R.mipmap.ic_launcher_round).into(mFetchSubredditListingInfoImageView);
}
}

View File

@@ -144,7 +144,7 @@ public class SubscribedSubredditsListingFragment extends Fragment implements Fra
if (subscribedSubredditData == null || subscribedSubredditData.size() == 0) {
mRecyclerView.setVisibility(View.GONE);
mLinearLayout.setVisibility(View.VISIBLE);
mGlide.load(R.drawable.error_image).into(mImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(mImageView);
} else {
mLinearLayout.setVisibility(View.GONE);
mRecyclerView.setVisibility(View.VISIBLE);

View File

@@ -237,7 +237,7 @@ public class UserListingFragment extends Fragment implements FragmentCommunicato
mSwipeRefreshLayout.setRefreshing(false);
mFetchUserListingInfoLinearLayout.setVisibility(View.VISIBLE);
mFetchUserListingInfoTextView.setText(stringResId);
Glide.with(this).load(R.drawable.error_image).into(mFetchUserListingInfoImageView);
Glide.with(this).load(R.mipmap.ic_launcher_round).into(mFetchUserListingInfoImageView);
}
}

View File

@@ -1595,7 +1595,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
mFetchPostInfoLinearLayout.setVisibility(View.VISIBLE);
mFetchPostInfoLinearLayout.setOnClickListener(view -> fetchPostAndCommentsById(subredditId));
mFetchPostInfoTextView.setText(R.string.load_post_error);
mGlide.load(R.drawable.error_image).into(mFetchPostInfoImageView);
mGlide.load(R.mipmap.ic_launcher_round).into(mFetchPostInfoImageView);
}
private void showMessage(int resId) {

View File

@@ -7,6 +7,8 @@ import android.text.util.Linkify;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.bumptech.glide.RequestManager;
import org.commonmark.ext.gfm.tables.TableBlock;
import java.util.regex.Pattern;
@@ -37,7 +39,7 @@ public class MarkdownUtils {
public static Markwon createFullRedditMarkwon(@NonNull Activity context,
@NonNull MarkwonPlugin miscPlugin,
int markdownColor,
int spoilerBackgroundColor,
int spoilerBackgroundColor, RequestManager mGlide,
@Nullable BetterLinkMovementMethod.OnLinkLongClickListener onLinkLongClickListener, boolean dataSaverEnabled) {
Markwon result;
if (dataSaverEnabled) {
@@ -58,7 +60,7 @@ public class MarkdownUtils {
.build();
} else {
result = Markwon.builder(context)
.usePlugin(GlideImagesPlugin.create(context.getApplicationContext()))
.usePlugin(GlideImagesPlugin.create(new GlideMarkdownLoader(mGlide)))
.usePlugin(MarkwonInlineParserPlugin.create(plugin -> {
plugin.excludeInlineProcessor(HtmlInlineProcessor.class);
}))

View File

@@ -142,6 +142,8 @@ public class ParsePost {
JSONObject creator = data.getJSONObject("creator");
JSONObject community = data.getJSONObject("community");
JSONObject counts = data.getJSONObject("counts");
boolean isModerator = data.getBoolean("creator_is_moderator");
boolean isAdmin = creator.optBoolean("admin") || data.optBoolean("creator_is_admin");
int id = post.getInt("id");
String fullName = post.getString("name");
@@ -182,7 +184,7 @@ public class ParsePost {
boolean locked = post.getBoolean("locked");
boolean saved = data.getBoolean("saved");
boolean deleted = post.getBoolean("deleted");
String distinguished = creator.optBoolean("admin") ? "admin" : "";
String distinguished = (isModerator) ? "moderator" : (isAdmin) ? "admin" : "";
String suggestedSort = "";
ArrayList<Post.Preview> previews = new ArrayList<>();
if (!post.isNull("thumbnail_url")) {
@@ -642,6 +644,19 @@ public class ParsePost {
return post;
}
private boolean isModerator(JSONArray moderators, String username) {
for (int i = 0; i < moderators.length(); i++) {
try {
if (moderators.getJSONObject(i).getString("name").equals(username)) {
return true;
}
} catch (JSONException e) {
e.printStackTrace();
}
}
return false;
}
public interface ParsePostsListingListener {
void onParsePostsListingSuccess(LinkedHashSet<Post> newPostData, String lastItem);
void onParsePostsListingFail();

View File

@@ -178,9 +178,10 @@ public class PostViewModel extends ViewModel {
postPagingData -> PagingDataTransforms.filter(
postPagingData, executor,
post -> !post.isRead() || !currentlyReadPostIdsLiveData.getValue()))), ViewModelKt.getViewModelScope(this));
boolean dontHideSaved = postHistorySharedPreferences != null && postHistorySharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.DONT_HIDE_SAVED_READ_POSTS, false) && userWhere.equals(PostPagingSource.USER_WHERE_SAVED);
boolean dontHideOwn = postHistorySharedPreferences != null && postHistorySharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.DONT_HIDE_OWN_READ_POSTS, false) && name.equals(accountName);
currentlyReadPostIdsLiveData.setValue(postHistorySharedPreferences != null
&& postHistorySharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.HIDE_READ_POSTS_AUTOMATICALLY_BASE, false) && !userWhere.equals(PostPagingSource.USER_WHERE_SAVED));
&& postHistorySharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.HIDE_READ_POSTS_AUTOMATICALLY_BASE, false) && !dontHideSaved && !dontHideOwn);
}
public PostViewModel(Executor executor, RetrofitHolder retrofit, String accessToken, String accountName,

View File

@@ -56,6 +56,18 @@ public class PostHistoryFragment extends Fragment {
TextView hideReadPostsAutomaticallyTextView;
@BindView(R.id.hide_read_posts_automatically_switch_post_history_fragment)
MaterialSwitch hideReadPostsAutomaticallySwitch;
@BindView(R.id.dont_hide_saved_read_posts_automatically_linear_layout_post_history_fragment)
LinearLayout dontHideSavedReadPostsAutomaticallyLinearLayout;
@BindView(R.id.dont_hide_saved_read_posts_automatically_text_view_post_history_fragment)
TextView dontHideSavedReadPostsAutomaticallyTextView;
@BindView(R.id.dont_hide_saved_read_posts_automatically_switch_post_history_fragment)
MaterialSwitch dontHideSavedReadPostsAutomaticallySwitch;
@BindView(R.id.dont_hide_own_read_posts_automatically_linear_layout_post_history_fragment)
LinearLayout dontHideOwnReadPostsAutomaticallyLinearLayout;
@BindView(R.id.dont_hide_own_read_posts_automatically_text_view_post_history_fragment)
TextView dontHideOwnReadPostsAutomaticallyTextView;
@BindView(R.id.dont_hide_own_read_posts_automatically_switch_post_history_fragment)
MaterialSwitch dontHideOwnReadPostsAutomaticallySwitch;
@Inject
@Named("post_history")
SharedPreferences postHistorySharedPreferences;
@@ -100,6 +112,18 @@ public class PostHistoryFragment extends Fragment {
accountName + SharedPreferencesUtils.MARK_POSTS_AS_READ_ON_SCROLL_BASE, false));
hideReadPostsAutomaticallySwitch.setChecked(postHistorySharedPreferences.getBoolean(
accountName + SharedPreferencesUtils.HIDE_READ_POSTS_AUTOMATICALLY_BASE, false));
dontHideSavedReadPostsAutomaticallySwitch.setChecked(postHistorySharedPreferences.getBoolean(
accountName + SharedPreferencesUtils.DONT_HIDE_SAVED_READ_POSTS, false));
dontHideOwnReadPostsAutomaticallySwitch.setChecked(postHistorySharedPreferences.getBoolean(
accountName + SharedPreferencesUtils.DONT_HIDE_OWN_READ_POSTS, false));
if (hideReadPostsAutomaticallySwitch.isChecked()) {
dontHideSavedReadPostsAutomaticallyLinearLayout.setVisibility(View.VISIBLE);
dontHideOwnReadPostsAutomaticallyLinearLayout.setVisibility(View.VISIBLE);
} else {
dontHideSavedReadPostsAutomaticallyLinearLayout.setVisibility(View.GONE);
dontHideOwnReadPostsAutomaticallyLinearLayout.setVisibility(View.GONE);
}
markPostsAsReadLinearLayout.setOnClickListener(view -> {
markPostsAsReadSwitch.performClick();
@@ -119,7 +143,24 @@ public class PostHistoryFragment extends Fragment {
hideReadPostsAutomaticallyLinearLayout.setOnClickListener(view -> hideReadPostsAutomaticallySwitch.performClick());
hideReadPostsAutomaticallySwitch.setOnCheckedChangeListener((compoundButton, b) -> postHistorySharedPreferences.edit().putBoolean(accountName + SharedPreferencesUtils.HIDE_READ_POSTS_AUTOMATICALLY_BASE, b).apply());
hideReadPostsAutomaticallySwitch.setOnCheckedChangeListener((compoundButton, b) -> {
postHistorySharedPreferences.edit().putBoolean(accountName + SharedPreferencesUtils.HIDE_READ_POSTS_AUTOMATICALLY_BASE, b).apply();
if (b) {
dontHideSavedReadPostsAutomaticallyLinearLayout.setVisibility(View.VISIBLE);
dontHideOwnReadPostsAutomaticallyLinearLayout.setVisibility(View.VISIBLE);
} else {
dontHideSavedReadPostsAutomaticallyLinearLayout.setVisibility(View.GONE);
dontHideOwnReadPostsAutomaticallyLinearLayout.setVisibility(View.GONE);
}
});
dontHideSavedReadPostsAutomaticallyLinearLayout.setOnClickListener(view -> dontHideSavedReadPostsAutomaticallySwitch.performClick());
dontHideSavedReadPostsAutomaticallySwitch.setOnCheckedChangeListener((compoundButton, b) -> postHistorySharedPreferences.edit().putBoolean(accountName + SharedPreferencesUtils.DONT_HIDE_SAVED_READ_POSTS, b).apply());
dontHideOwnReadPostsAutomaticallyLinearLayout.setOnClickListener(view -> dontHideOwnReadPostsAutomaticallySwitch.performClick());
dontHideOwnReadPostsAutomaticallySwitch.setOnCheckedChangeListener((compoundButton, b) -> postHistorySharedPreferences.edit().putBoolean(accountName + SharedPreferencesUtils.DONT_HIDE_OWN_READ_POSTS, b).apply());
return rootView;
}
@@ -133,6 +174,8 @@ public class PostHistoryFragment extends Fragment {
markPostsAsReadAfterVotingTextView.setTextColor(primaryTextColor);
markPostsAsReadOnScrollTextView.setTextColor(primaryTextColor);
hideReadPostsAutomaticallyTextView.setTextColor(primaryTextColor);
dontHideSavedReadPostsAutomaticallyTextView.setTextColor(primaryTextColor);
dontHideOwnReadPostsAutomaticallyTextView.setTextColor(primaryTextColor);
}
@Override

View File

@@ -358,6 +358,8 @@ public class SharedPreferencesUtils {
public static final String MARK_POSTS_AS_READ_AFTER_VOTING_BASE = "_mark_posts_as_read_after_voting";
public static final String MARK_POSTS_AS_READ_ON_SCROLL_BASE = "_mark_posts_as_read_on_scroll";
public static final String HIDE_READ_POSTS_AUTOMATICALLY_BASE = "_hide_read_posts_automatically";
public static final String DONT_HIDE_SAVED_READ_POSTS = "dont_hide_saved_posts";
public static final String DONT_HIDE_OWN_READ_POSTS = "dont_hide_own_posts";
public static final String CURRENT_ACCOUNT_SHARED_PREFERENCES_FILE = "eu.toldi.infinityforlemmy.current_account";
public static final String ACCOUNT_NAME = "account_name";

View File

@@ -0,0 +1,20 @@
package eu.toldi.infinityforlemmy.markdown
import android.graphics.drawable.Drawable
import com.bumptech.glide.RequestBuilder
import com.bumptech.glide.RequestManager
import com.bumptech.glide.load.resource.bitmap.DownsampleStrategy
import com.bumptech.glide.request.target.Target
import io.noties.markwon.image.AsyncDrawable
import io.noties.markwon.image.glide.GlideImagesPlugin.GlideStore
class GlideMarkdownLoader(val requestManager: RequestManager) : GlideStore {
override fun load(drawable: AsyncDrawable): RequestBuilder<Drawable> {
return requestManager.load(drawable.destination).override(2048)
.downsample(DownsampleStrategy.CENTER_INSIDE)
}
override fun cancel(target: Target<*>) {
requestManager.clear(target);
}
}

View File

@@ -3,7 +3,6 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".settings.PostHistoryFragment">
<LinearLayout
@@ -156,6 +155,70 @@
</LinearLayout>
<LinearLayout
android:id="@+id/dont_hide_saved_read_posts_automatically_linear_layout_post_history_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:paddingStart="72dp"
android:paddingEnd="16dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground">
<TextView
android:id="@+id/dont_hide_saved_read_posts_automatically_text_view_post_history_fragment"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="16dp"
android:layout_gravity="center_vertical"
android:text="@string/settings_dont_hide_saved_read_posts_automatically"
android:textColor="?attr/primaryTextColor"
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/dont_hide_saved_read_posts_automatically_switch_post_history_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />
</LinearLayout>
<LinearLayout
android:id="@+id/dont_hide_own_read_posts_automatically_linear_layout_post_history_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:paddingStart="72dp"
android:paddingEnd="16dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground">
<TextView
android:id="@+id/dont_hide_own_read_posts_automatically_text_view_post_history_fragment"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="16dp"
android:layout_gravity="center_vertical"
android:text="@string/settings_dont_hide_your_own_read_posts_automatically"
android:textColor="?attr/primaryTextColor"
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/dont_hide_own_read_posts_automatically_switch_post_history_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@@ -1179,7 +1179,6 @@
<string name="history_activity_label">Historie</string>
<string name="action_open_external_browser">Otevřít v prohlížeči</string>
<string name="action_more_options">Další možnosti</string>
<string name="anonymous_homepage_not_implemented">Anonymní domovská stránka zatím není implementována</string>
<string name="history">Historie</string>
<string name="block_user">Zablokovat uživatele</string>
<string name="settings_show_display_name_instead_of_user_name">Skrýt zobrazovaná jména komunity a uživatelů</string>
@@ -1354,4 +1353,10 @@
<string name="sort_most_comments">Nejvíce komentářů</string>
<string name="no_blocked_instances">Žádné blokované instance</string>
<string name="instances">Instance</string>
<string name="view_instance">Zobrazit instanci</string>
<string name="action_block_instance">Zablokovat instanci</string>
<string name="action_unblock_instance">Odblokovat instanci</string>
<string name="block_instance_failed">Nepodařilo se zablokovat instanci</string>
<string name="block_instance_success">Instance zablokována!</string>
<string name="unblock_instance_success">Instance odblokována!</string>
</resources>

View File

@@ -1227,7 +1227,6 @@
<string name="comment_karma">Kommentarkarma:</string>
<string name="awarder_karma">Auszeichnungskarma:</string>
<string name="awardee_karma">Ausgezeichnetenkarma:</string>
<string name="anonymous_homepage_not_implemented">Anonyme Homepage ist noch nicht implementiert</string>
<string name="action_create_github_issue">Codeberg Issue erstellen</string>
<string name="action_more_options">Erweiterte Optionen</string>
<string name="invalid_response">Ungültige Antwort vom Server erhalten</string>

View File

@@ -1206,7 +1206,6 @@
<string name="search_communities_error">Σφάλμα αναζήτησης κοινοτήτων.
\nΠάτα για επανάληψη.</string>
<string name="no_communities">Δε βρέθηκαν κοινότητες</string>
<string name="anonymous_homepage_not_implemented">Η ανώνυμη αρχική δεν έχει υλοποιηθεί ακόμα</string>
<string name="active_users_number_detail">%1$,d Ενεργοί Χρήστες</string>
<string name="comment_count_detail">%1$,d Σχόλια</string>
<string name="user_number_detail">%1$,d Χρήστες</string>

View File

@@ -1178,7 +1178,6 @@ https://s3.eu-west-1.amazonaws.com/po-pub/i/hJAe7sMhrfJzqjhp9VkDQOVC.PNG -->
<string name="settings_custom_content_font_family_title">Fuente Personalizada para el Contenido</string>
<string name="post_poll_activity_label">Publicar Encuesta</string>
<string name="action_create_github_issue">Abrir conflicto en Codeberg</string>
<string name="anonymous_homepage_not_implemented">Pantalla de Inicio Anónima aún no ha sido implementada</string>
<string name="invalid_response">Respuesta invalida del servidor</string>
<string name="invalid_username_or_password">Usuario o Contraseña invalido</string>
<string name="voting_length">Tiempo de votación: %1$d dias</string>

View File

@@ -429,7 +429,6 @@
<string name="action_contact_mods">Ota yhteys modeihin</string>
<string name="primary_text_preview">Ensisijainen teksti</string>
<string name="theme_item_is_light_theme">Aseta vaaleaksi teemaksi</string>
<string name="anonymous_homepage_not_implemented">Anonyymia kotisivua ei ole vielä toteutettu</string>
<string name="load_post_error">Virhe ladatessa tätä viestiä.
\nNapauta yrittääksesi uudelleen.</string>
<string name="message_subject_required">Viestillä tulee olla aihe</string>

View File

@@ -1138,7 +1138,6 @@ https://s3.eu-west-1.amazonaws.com/po-pub/i/dFZKKms9HbrDGOlcgW9QTcwF.jpg -->
<string name="action_playback_speed">Vitesse de lecture</string>
<string name="action_contact_mods">Contacter les modérateurs</string>
<string name="action_more_options">Plus doptions</string>
<string name="anonymous_homepage_not_implemented">La page d\'accueil anonyme n\'est pas encore disponible</string>
<string name="history">Historique</string>
<string name="invalid_response">Réponse invalide du serveur</string>
<string name="two_options_required">Un bon sondage a besoin de deux options ou plus !</string>

View File

@@ -985,7 +985,6 @@
<string name="action_share_post_link">Poszt link megosztása</string>
<string name="action_playback_speed">Lejátszási sebesség</string>
<string name="action_more_options">További műveletek</string>
<string name="anonymous_homepage_not_implemented">Az Anonymous főoldal még nincs implementálva</string>
<string name="history">Előzmények</string>
<string name="inbox_with_count">Bejövő üzenetek (%1$,d)</string>
<string name="trending">Felkapott</string>

View File

@@ -1150,7 +1150,6 @@
<string name="settings_fixed_height_preview_in_card_title">Altezza della card fissa</string>
<string name="settings_hide_text_post_content">Nascondi contenuto dei post di testo</string>
<string name="settings_hide_comment_awards_title">Nascondi premi dei commenti</string>
<string name="anonymous_homepage_not_implemented">La pagina principale per gli utenti anonimi non è ancora stata implementata</string>
<string name="two_options_required">Un sondaggio richiede almeno due o più opzioni!</string>
<string name="no_activity_found_for_external_browser">Non ci sono app che possono gestire l\'azione di apertura in app esterna</string>
<string name="settings_backup_settings_summary">La password del file di backup è \"123321\".</string>

View File

@@ -1044,7 +1044,6 @@ not: "5 uren" -->
<string name="action_playback_speed">Afspeelsnelheid</string>
<string name="action_contact_mods">Contacteer moderators</string>
<string name="action_more_options">Meer Opties</string>
<string name="anonymous_homepage_not_implemented">Anonieme homepagina is nog niet geïmplementeerd</string>
<string name="invalid_response">Ongeldig antwoord van server ontvangen</string>
<string name="voting_length">Tijd om te stemmen: %1$d days</string>
<string name="two_options_required">Een goede peiling heeft twee of meer opties!</string>

View File

@@ -1138,7 +1138,6 @@
<string name="invalid_response">Nieprawidłowa odpowiedź serwera</string>
<string name="user_number_detail">%1$,d użytkowników</string>
<string name="settings_save_nsfw_media_in_different_folder_title">Zapisuj treści NSFW w innej lokacji</string>
<string name="anonymous_homepage_not_implemented">Anonimowe strony główne nie są jeszcze zaimplementowane</string>
<string name="settings_enable_material_you_warning_summary">Upewnij się, że żaden z motywów nie jest nazwany
\n\"Material You\",
\n\"Material You Dark\" lub

View File

@@ -1246,7 +1246,6 @@
<string name="action_block_user">Bloquear usuário</string>
<string name="action_create_github_issue">Reportar problema no Codeberg</string>
<string name="action_more_options">Mais opções</string>
<string name="anonymous_homepage_not_implemented">A página inicial anônima ainda não foi implementada</string>
<string name="history">História</string>
<string name="invalid_response">Resposta inválida do servidor</string>
<string name="invalid_username_or_password">Nome de usuário ou senha inválidos</string>

View File

@@ -1081,7 +1081,6 @@
<string name="history_activity_label">História</string>
<string name="action_block_user">Bloquear o utilizador</string>
<string name="action_playback_speed">Velocidade de reprodução</string>
<string name="anonymous_homepage_not_implemented">Página inicial anónima ainda não está implementada</string>
<string name="action_open_external_browser">Abrir no navegador</string>
<string name="invalid_response">Resposta inválida do servidor</string>
<string name="action_contact_mods">Contactar Moderadores</string>

View File

@@ -1271,7 +1271,6 @@
<string name="block_community_success">Comunitate blocată!</string>
<string name="separate_down_and_up_votes">Voturi separate pentru Jos și Sus</string>
<string name="history">Istoric</string>
<string name="anonymous_homepage_not_implemented">Pagina anonimă de acasă nu este încă implementată</string>
<string name="share_links_on_your_local_instance">Partajați link-uri pe instanța dvs. locală</string>
<string name="error_unsupported_video">Media include piste video, dar niciuna nu pot fi redată de acest dispozitiv</string>
<string name="settings_show_display_name_instead_of_user_name">Afișați comunitate și numele afișat de utilizator</string>

View File

@@ -1195,7 +1195,6 @@
<string name="history_activity_label">История</string>
<string name="action_block_user">Заблокировать пользователя</string>
<string name="action_more_options">Больше настроек</string>
<string name="anonymous_homepage_not_implemented">Анонимная домашняя страница пока не реализована</string>
<string name="history">История</string>
<string name="invalid_response">Неправильный ответ от сервера</string>
<string name="invalid_username_or_password">Неправильный логин или пароль</string>

View File

@@ -1204,7 +1204,6 @@
<string name="action_create_github_issue">Створити задачу на Codeberg</string>
<string name="action_more_options">Більше налаштувань</string>
<string name="history">Історія</string>
<string name="anonymous_homepage_not_implemented">Анонімну домашню сторінку ще не реалізовано</string>
<string name="user_username">Ім\'я користувача або email</string>
<string name="upload_image">Завантажити зображення</string>
<string name="settings_hide_community_and_user_instance">Ховати спільноту і сервер користувача</string>
@@ -1351,4 +1350,9 @@
<string name="instances">Сервери</string>
<string name="no_blocked_instances">Немає заблокованих серверів</string>
<string name="view_instance">Перегляд сервера</string>
<string name="block_instance_failed">Не вдалося заблокувати сервер</string>
<string name="block_instance_success">Сервер заблоковано!</string>
<string name="unblock_instance_success">Сервер розблоковано!</string>
<string name="action_block_instance">Заблокувати сервер</string>
<string name="action_unblock_instance">Розблокувати сервер</string>
</resources>

View File

@@ -1244,7 +1244,6 @@
<string name="invalid_username_or_password">用户名或密码错误</string>
<string name="active_users_number_detail">%1$,d 位活跃用户</string>
<string name="post_count_detail">%1$,d 个帖子</string>
<string name="anonymous_homepage_not_implemented">匿名主页暂未实现</string>
<string name="bottom_sheet_post_poll">投票</string>
<string name="customize_comment_filter_activity_label">自定义评论过滤器</string>
<string name="settings_fixed_height_preview_in_card_title">在卡片中固定高度</string>

View File

@@ -117,7 +117,6 @@
<string name="no_users">No users found</string>
<string name="no_multi_reddits">No Multicommunities found</string>
<string name="no_storage_permission">No storage permission to save this file</string>
<string name="anonymous_homepage_not_implemented">Anonymous homepage is not implemented yet</string>
<string name="load_comments_failed">Error loading comments.\nTap to retry.</string>
<string name="retry">Retry</string>
<string name="no_comments_yet">No comments yet. Write a comment?</string>
@@ -1331,4 +1330,6 @@
<string name="block_instance_failed">Failed to block instance</string>
<string name="block_instance_success">Instance Blocked!</string>
<string name="unblock_instance_success">Instance unblocked!</string>
<string name="settings_dont_hide_saved_read_posts_automatically">Don\'t hide saved read posts automatically</string>
<string name="settings_dont_hide_your_own_read_posts_automatically">Don\'t hide your own read posts automatically</string>
</resources>