Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/news-android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid-Development <david-dev@live.de>2021-04-07 18:55:09 +0300
committerDavid Luhmer <david-dev@live.de>2021-04-07 18:55:09 +0300
commit23a053579b5db10ca8b3aa6f7f46be6cdeafbfae (patch)
tree08ef758342b2eb9736151e1e6d840060c7539b6a /News-Android-App/src/main/java
parent849cc3b6a484f2fbc1417ffbaef8b8cd08e57026 (diff)
Fix broken fontsize setting
Signed-off-by: David Luhmer <david-dev@live.de>
Diffstat (limited to 'News-Android-App/src/main/java')
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemCardViewHolder.java5
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemHeadlineThumbnailViewHolder.java9
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemHeadlineViewHolder.java9
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemTextViewHolder.java9
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemThumbnailViewHolder.java9
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemViewHolder.java48
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemWebViewHolder.java10
7 files changed, 53 insertions, 46 deletions
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemCardViewHolder.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemCardViewHolder.java
index 3bc64691..5ec7cd0d 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemCardViewHolder.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemCardViewHolder.java
@@ -13,12 +13,11 @@ import androidx.annotation.NonNull;
import de.luhmer.owncloudnewsreader.database.model.RssItem;
import de.luhmer.owncloudnewsreader.databinding.SubscriptionDetailListItemCardViewBinding;
-public class RssItemCardViewHolder extends RssItemViewHolder {
+public class RssItemCardViewHolder extends RssItemViewHolder<SubscriptionDetailListItemCardViewBinding> {
SubscriptionDetailListItemCardViewBinding binding;
RssItemCardViewHolder(@NonNull SubscriptionDetailListItemCardViewBinding binding, SharedPreferences sharedPreferences) {
- super(binding.getRoot(), sharedPreferences);
- this.binding = binding;
+ super(binding, sharedPreferences);
}
@Override
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemHeadlineThumbnailViewHolder.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemHeadlineThumbnailViewHolder.java
index 693a3c23..cba4cf66 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemHeadlineThumbnailViewHolder.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemHeadlineThumbnailViewHolder.java
@@ -19,19 +19,14 @@ import de.luhmer.owncloudnewsreader.R;
import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm;
import de.luhmer.owncloudnewsreader.database.model.RssItem;
import de.luhmer.owncloudnewsreader.databinding.SubscriptionDetailListItemHeadlineThumbnailBinding;
-import de.luhmer.owncloudnewsreader.helper.FavIconHandler;
import de.luhmer.owncloudnewsreader.helper.SquareRoundedBitmapDisplayer;
-import static android.view.View.GONE;
-
-public class RssItemHeadlineThumbnailViewHolder extends RssItemViewHolder {
+public class RssItemHeadlineThumbnailViewHolder extends RssItemViewHolder<SubscriptionDetailListItemHeadlineThumbnailBinding> {
private final DisplayImageOptions displayImageOptionsThumbnail;
- private final SubscriptionDetailListItemHeadlineThumbnailBinding binding;
RssItemHeadlineThumbnailViewHolder(@NonNull SubscriptionDetailListItemHeadlineThumbnailBinding binding, SharedPreferences sharedPreferences) {
- super(binding.getRoot(), sharedPreferences);
- this.binding = binding;
+ super(binding, sharedPreferences);
Drawable feedIcon = VectorDrawableCompat.create(itemView.getResources(), R.drawable.feed_icon, null);
int widthThumbnail = Math.round(88f * binding.imgViewThumbnail.getContext().getResources().getDisplayMetrics().density);
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemHeadlineViewHolder.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemHeadlineViewHolder.java
index 56888c85..66f3cb5a 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemHeadlineViewHolder.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemHeadlineViewHolder.java
@@ -9,16 +9,15 @@ import android.widget.TextView;
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
+import androidx.viewbinding.ViewBinding;
import de.luhmer.owncloudnewsreader.database.model.RssItem;
import de.luhmer.owncloudnewsreader.databinding.SubscriptionDetailListItemHeadlineBinding;
-public class RssItemHeadlineViewHolder extends RssItemViewHolder {
- SubscriptionDetailListItemHeadlineBinding binding;
+public class RssItemHeadlineViewHolder extends RssItemViewHolder<SubscriptionDetailListItemHeadlineBinding> {
- RssItemHeadlineViewHolder(@NonNull SubscriptionDetailListItemHeadlineBinding binding, SharedPreferences sharedPreferences) {
- super(binding.getRoot(), sharedPreferences);
- this.binding = binding;
+ RssItemHeadlineViewHolder(@NonNull ViewBinding binding, SharedPreferences sharedPreferences) {
+ super(binding, sharedPreferences);
}
@Override
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemTextViewHolder.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemTextViewHolder.java
index 6623c332..d3e5a61a 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemTextViewHolder.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemTextViewHolder.java
@@ -9,16 +9,15 @@ import android.widget.TextView;
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
+import androidx.viewbinding.ViewBinding;
import de.luhmer.owncloudnewsreader.database.model.RssItem;
import de.luhmer.owncloudnewsreader.databinding.SubscriptionDetailListItemTextBinding;
-public class RssItemTextViewHolder extends RssItemViewHolder {
- SubscriptionDetailListItemTextBinding binding;
+public class RssItemTextViewHolder extends RssItemViewHolder<SubscriptionDetailListItemTextBinding> {
- RssItemTextViewHolder(@NonNull SubscriptionDetailListItemTextBinding binding, SharedPreferences sharedPreferences) {
- super(binding.getRoot(), sharedPreferences);
- this.binding = binding;
+ RssItemTextViewHolder(@NonNull ViewBinding binding, SharedPreferences sharedPreferences) {
+ super(binding, sharedPreferences);
}
@Override
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemThumbnailViewHolder.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemThumbnailViewHolder.java
index 95752dea..0185e977 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemThumbnailViewHolder.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemThumbnailViewHolder.java
@@ -2,7 +2,6 @@ package de.luhmer.owncloudnewsreader.adapter;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
-import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
@@ -24,19 +23,17 @@ import de.luhmer.owncloudnewsreader.helper.SquareRoundedBitmapDisplayer;
import static android.view.View.GONE;
-public class RssItemThumbnailViewHolder extends RssItemViewHolder {
+public class RssItemThumbnailViewHolder extends RssItemViewHolder<SubscriptionDetailListItemThumbnailBinding> {
private final DisplayImageOptions displayImageOptionsThumbnail;
- private final SubscriptionDetailListItemThumbnailBinding binding;
RssItemThumbnailViewHolder(@NonNull SubscriptionDetailListItemThumbnailBinding binding, SharedPreferences sharedPreferences) {
- super(binding.getRoot(), sharedPreferences);
- this.binding = binding;
+ super(binding, sharedPreferences);
Drawable feedIcon = VectorDrawableCompat.create(itemView.getResources(), R.drawable.feed_icon, null);
int width = Math.round(88f * binding.imgViewThumbnail.getContext().getResources().getDisplayMetrics().density);
displayImageOptionsThumbnail = new DisplayImageOptions.Builder()
.resetViewBeforeLoading(true)
- .preProcessor(new SquareRoundedBitmapDisplayer(30, 0,width))
+ .preProcessor(new SquareRoundedBitmapDisplayer(30, 0, width))
.showImageOnLoading(feedIcon)
.showImageForEmptyUri(feedIcon)
.showImageOnFail(feedIcon)
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemViewHolder.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemViewHolder.java
index 72888275..c4b6e401 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemViewHolder.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemViewHolder.java
@@ -7,7 +7,6 @@ import android.graphics.Typeface;
import android.text.Html;
import android.text.Spannable;
import android.text.SpannableString;
-import android.text.format.DateUtils;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.util.SparseIntArray;
@@ -22,6 +21,7 @@ import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
+import androidx.viewbinding.ViewBinding;
import org.greenrobot.eventbus.Subscribe;
@@ -35,9 +35,10 @@ import de.luhmer.owncloudnewsreader.helper.DateTimeFormatter;
import de.luhmer.owncloudnewsreader.helper.FavIconHandler;
import de.luhmer.owncloudnewsreader.services.PodcastDownloadService;
-public abstract class RssItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
+public abstract class RssItemViewHolder<T extends ViewBinding> extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
private final static String TAG = RssItemViewHolder.class.getCanonicalName();
+ protected T binding;
private static final SparseIntArray downloadProgressList = new SparseIntArray();
private static FavIconHandler favIconHandler = null;
protected final SharedPreferences mPrefs;
@@ -50,9 +51,11 @@ public abstract class RssItemViewHolder extends RecyclerView.ViewHolder implemen
private int starColor;
private int inactiveStarColor;
+ private SparseIntArray initalFontSizes = new SparseIntArray();
- RssItemViewHolder(@NonNull View itemView, SharedPreferences sharedPreferences) {
- super(itemView);
+ RssItemViewHolder(@NonNull ViewBinding binding, SharedPreferences sharedPreferences) {
+ super(binding.getRoot());
+ this.binding = (T) binding;
this.mPrefs = sharedPreferences;
bodyForegroundColor = new ForegroundColorSpan(ContextCompat.getColor(itemView.getContext(), android.R.color.secondary_text_dark));
@@ -63,6 +66,18 @@ public abstract class RssItemViewHolder extends RecyclerView.ViewHolder implemen
itemView.setOnClickListener(this);
itemView.setOnLongClickListener(this);
+
+ extractInitialFontSize(getTextViewBody());
+ extractInitialFontSize(getTextViewTitle());
+ extractInitialFontSize(getTextViewSummary());
+ extractInitialFontSize(getTextViewBody());
+ extractInitialFontSize(getTextViewItemDate());
+ }
+
+ private void extractInitialFontSize(TextView tv) {
+ if (tv != null) {
+ initalFontSizes.append(tv.getId(), Math.round(tv.getTextSize()));
+ }
}
/**
@@ -72,18 +87,21 @@ public abstract class RssItemViewHolder extends RecyclerView.ViewHolder implemen
* @param initialTvSize app layout definition default size of TextView element
* @param halfScale if set to true, will only apply half of the scaling factor
*/
- private static void scaleTextSize(TextView tv, int initialTvSize, boolean halfScale, SharedPreferences mPrefs) {
+ private void scaleTextSize(TextView tv, int initialTvSize, boolean halfScale, SharedPreferences mPrefs) {
float scalingFactor = Float.parseFloat(mPrefs.getString(SettingsActivity.SP_FONT_SIZE, "1.0"));
if (halfScale) {
scalingFactor = scalingFactor + (1 - scalingFactor) / 2;
}
- int initialSize = initialTvSize;
- if (initialSize < 0) {
- initialSize = Math.round(tv.getTextSize());
+ if (initialTvSize < 0) {
+ initialTvSize = Math.round(tv.getTextSize());
}
// float sp = initialSize / tv.getContext().getResources().getDisplayMetrics().scaledDensity; // transform scaled pixels, device pixels
- tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, Math.round(initialSize * scalingFactor));
+ int newSize = Math.round(initialTvSize * scalingFactor);
+
+ // String name = tv.getResources().getResourceEntryName(tv.getId());
+ // Log.d(TAG, name + " scale textsize from " + initialTvSize + " to " + newSize);
+ tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, newSize);
}
/**
@@ -151,7 +169,7 @@ public abstract class RssItemViewHolder extends RecyclerView.ViewHolder implemen
TextView textViewSummary = getTextViewSummary();
if (textViewSummary != null) {
try {
- int textSizeSummary = Math.round(getTextViewSummary().getTextSize());
+ int textSizeSummary = initalFontSizes.get(getTextViewSummary().getId());
textViewSummary.setText(Html.fromHtml(rssItem.getTitle()));
scaleTextSize(textViewSummary, textSizeSummary, false, mPrefs);
} catch (Exception e) {
@@ -169,10 +187,10 @@ public abstract class RssItemViewHolder extends RecyclerView.ViewHolder implemen
textViewTitle.setText(Html.fromHtml(title));
} else {
// append date to title
- textViewTitle.setText(Html.fromHtml(title) + " · " + DateTimeFormatter.getTimeAgo(rssItem.getPubDate()));
+ textViewTitle.setText(String.format("%s · %s", Html.fromHtml(title), DateTimeFormatter.getTimeAgo(rssItem.getPubDate())));
}
- int textSizeTitle = Math.round(textViewTitle.getTextSize());
+ int textSizeTitle = initalFontSizes.get(textViewTitle.getId());
scaleTextSize(textViewTitle, textSizeTitle, true, mPrefs);
sizeOfFavIcon = textSizeTitle;
@@ -181,7 +199,7 @@ public abstract class RssItemViewHolder extends RecyclerView.ViewHolder implemen
if (textViewItemDate != null) {
- int textSizeItemDate = Math.round(getTextViewItemDate().getTextSize());
+ int textSizeItemDate = initalFontSizes.get(getTextViewItemDate().getId());
//textViewItemDate.setText(DateUtils.getRelativeTimeSpanString(rssItem.getPubDate().getTime()));
textViewItemDate.setText(DateTimeFormatter.getTimeAgo(rssItem.getPubDate()));
scaleTextSize(textViewItemDate, textSizeItemDate, true, mPrefs);
@@ -194,11 +212,11 @@ public abstract class RssItemViewHolder extends RecyclerView.ViewHolder implemen
ImageView imgViewFavIcon = getImageViewFavIcon();
if (imgViewFavIcon != null) {
- favIconHandler.loadFavIconForFeed(favIconUrl, imgViewFavIcon, Math.round((marginFavIcon - sizeOfFavIcon) / 2));
+ favIconHandler.loadFavIconForFeed(favIconUrl, imgViewFavIcon, Math.round((marginFavIcon - sizeOfFavIcon) / 2f));
}
if (textViewBody != null) {
- int textSizeBody = Math.round(textViewBody.getTextSize());
+ int textSizeBody = initalFontSizes.get(textViewBody.getId());
String body = rssItem.getMediaDescription();
if (body == null || body.isEmpty()) {
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemWebViewHolder.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemWebViewHolder.java
index b187face..6e792f0b 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemWebViewHolder.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemWebViewHolder.java
@@ -8,17 +8,17 @@ import android.widget.TextView;
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
+import androidx.viewbinding.ViewBinding;
import de.luhmer.owncloudnewsreader.async_tasks.RssItemToHtmlTask;
import de.luhmer.owncloudnewsreader.database.model.RssItem;
import de.luhmer.owncloudnewsreader.databinding.SubscriptionDetailListItemWebLayoutBinding;
-public class RssItemWebViewHolder extends RssItemViewHolder {
- SubscriptionDetailListItemWebLayoutBinding binding;
+public class RssItemWebViewHolder extends RssItemViewHolder<SubscriptionDetailListItemWebLayoutBinding> {
- RssItemWebViewHolder(@NonNull SubscriptionDetailListItemWebLayoutBinding binding, SharedPreferences sharedPreferences) {
- super(binding.getRoot(), sharedPreferences);
- this.binding = binding;
+
+ public RssItemWebViewHolder(@NonNull ViewBinding binding, SharedPreferences sharedPreferences) {
+ super(binding, sharedPreferences);
}
@Override