From 548a672b1ea43ff321c8e87de871fe4fc1520dd0 Mon Sep 17 00:00:00 2001 From: nuclearfog Date: Fri, 9 Sep 2022 12:58:17 +0200 Subject: [PATCH] added new option to enable/disable additional tweet icons --- .../twidda/adapter/TweetAdapter.java | 37 +++++++++++-------- .../twidda/adapter/holder/TweetHolder.java | 4 +- .../twidda/database/GlobalSettings.java | 23 ++++++++++++ .../ui/activities/SettingsActivity.java | 7 ++++ app/src/main/res/layout/page_settings.xml | 32 +++++++++++++--- app/src/main/res/values-de-rDE/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 7 files changed, 82 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/org/nuclearfog/twidda/adapter/TweetAdapter.java b/app/src/main/java/org/nuclearfog/twidda/adapter/TweetAdapter.java index 11e41eb4..8f7bc5ba 100644 --- a/app/src/main/java/org/nuclearfog/twidda/adapter/TweetAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/adapter/TweetAdapter.java @@ -326,30 +326,35 @@ public class TweetAdapter extends Adapter { } else { tweetItem.profile.setImageResource(0); } - if (tweet.getLocationName() != null && !tweet.getLocationName().isEmpty()) { - tweetItem.location.setVisibility(VISIBLE); - } else { - tweetItem.location.setVisibility(GONE); - } if (tweet.getRepliedTweetId() > 0) { - tweetItem.reply.setVisibility(VISIBLE); + tweetItem.replyIcon.setVisibility(VISIBLE); tweetItem.replyname.setVisibility(VISIBLE); tweetItem.replyname.setText(tweet.getReplyName()); } else { - tweetItem.reply.setVisibility(GONE); + tweetItem.replyIcon.setVisibility(GONE); tweetItem.replyname.setVisibility(GONE); } - if (tweet.getMediaType() != Tweet.MEDIA_NONE) { - if (tweet.getMediaType() == Tweet.MEDIA_PHOTO) { - tweetItem.media.setImageResource(R.drawable.image); - } else if (tweet.getMediaType() == Tweet.MEDIA_VIDEO) { - tweetItem.media.setImageResource(R.drawable.video); - } else if (tweet.getMediaType() == Tweet.MEDIA_GIF) { - tweetItem.media.setImageResource(R.drawable.gif); + if (settings.tweetIndicatorsEnabled()) { + if (tweet.getLocationName() != null && !tweet.getLocationName().isEmpty()) { + tweetItem.location.setVisibility(VISIBLE); + } else { + tweetItem.location.setVisibility(GONE); + } + if (tweet.getMediaType() != Tweet.MEDIA_NONE) { + if (tweet.getMediaType() == Tweet.MEDIA_PHOTO) { + tweetItem.media.setImageResource(R.drawable.image); + } else if (tweet.getMediaType() == Tweet.MEDIA_VIDEO) { + tweetItem.media.setImageResource(R.drawable.video); + } else if (tweet.getMediaType() == Tweet.MEDIA_GIF) { + tweetItem.media.setImageResource(R.drawable.gif); + } + tweetItem.media.setColorFilter(settings.getIconColor()); + tweetItem.media.setVisibility(VISIBLE); + } else { + tweetItem.media.setVisibility(GONE); } - tweetItem.media.setColorFilter(settings.getIconColor()); - tweetItem.media.setVisibility(VISIBLE); } else { + tweetItem.location.setVisibility(GONE); tweetItem.media.setVisibility(GONE); } } diff --git a/app/src/main/java/org/nuclearfog/twidda/adapter/holder/TweetHolder.java b/app/src/main/java/org/nuclearfog/twidda/adapter/holder/TweetHolder.java index 44ec1329..f47ee0f7 100644 --- a/app/src/main/java/org/nuclearfog/twidda/adapter/holder/TweetHolder.java +++ b/app/src/main/java/org/nuclearfog/twidda/adapter/holder/TweetHolder.java @@ -20,7 +20,7 @@ import org.nuclearfog.twidda.database.GlobalSettings; */ public class TweetHolder extends ViewHolder { - public final ImageView profile, rtUser, verifiedIcon, lockedIcon, rtIcon, favIcon, media, location, reply; + public final ImageView profile, rtUser, verifiedIcon, lockedIcon, rtIcon, favIcon, media, location, replyIcon; public final TextView username, screenname, tweettext, retweet, favorite, retweeter, created, replyname; /** @@ -39,7 +39,7 @@ public class TweetHolder extends ViewHolder { favIcon = itemView.findViewById(R.id.item_tweet_favorite_icon); media = itemView.findViewById(R.id.item_tweet_media); location = itemView.findViewById(R.id.item_tweet_location); - reply = itemView.findViewById(R.id.item_tweet_reply); + replyIcon = itemView.findViewById(R.id.item_tweet_reply); username = itemView.findViewById(R.id.item_tweet_author_username); screenname = itemView.findViewById(R.id.item_tweet_author_screenname); tweettext = itemView.findViewById(R.id.item_tweet_text); diff --git a/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java b/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java index 13309dd8..e0b48151 100644 --- a/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java +++ b/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java @@ -97,6 +97,7 @@ public class GlobalSettings { private static final String IMAGE_LOAD = "image_load"; private static final String IMAGE_QUALITY = "image_hq"; private static final String ANSWER_LOAD = "answer_load"; + private static final String TWEET_INDICATOR = "tweet_indicator"; private static final String PROFILE_OVERLAP = "profile_toolbar_overlap"; private static final String PROXY_SET = "proxy_enabled"; private static final String AUTH_SET = "proxy_auth_set"; @@ -158,6 +159,7 @@ public class GlobalSettings { private boolean customAPIKey; private boolean toolbarOverlap; private boolean linkPreview; + private boolean tweetIndicators; private boolean filterResults; private boolean enableLike; private boolean twitterAlt; @@ -581,6 +583,26 @@ public class GlobalSettings { edit.apply(); } + /** + * @return true if tweet indicators enabled + */ + public boolean tweetIndicatorsEnabled() { + return tweetIndicators; + } + + /** + * enable/disable tweet indicators + * + * @param enable true to enable tweet indicators + */ + public void enableTweetIndicators(boolean enable) { + tweetIndicators = enable; + + Editor edit = settings.edit(); + edit.putBoolean(TWEET_INDICATOR, enable); + edit.apply(); + } + /** * get selected location information * @@ -1120,6 +1142,7 @@ public class GlobalSettings { loggedIn = settings.getBoolean(LOGGED_IN, false); loadImage = settings.getBoolean(IMAGE_LOAD, true); loadAnswer = settings.getBoolean(ANSWER_LOAD, false); + tweetIndicators = settings.getBoolean(TWEET_INDICATOR, true); hqImages = settings.getBoolean(IMAGE_QUALITY, false); toolbarOverlap = settings.getBoolean(PROFILE_OVERLAP, true); linkPreview = settings.getBoolean(LINK_PREVIEW, false); diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/activities/SettingsActivity.java b/app/src/main/java/org/nuclearfog/twidda/ui/activities/SettingsActivity.java index 645062c2..cedd2772 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ui/activities/SettingsActivity.java +++ b/app/src/main/java/org/nuclearfog/twidda/ui/activities/SettingsActivity.java @@ -135,6 +135,7 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen SwitchButton enablePreview = findViewById(R.id.settings_enable_prev); SwitchButton enableLike = findViewById(R.id.enable_like); SwitchButton enableTwitterAlt = findViewById(R.id.settings_enable_twitter_alt); + SwitchButton enableTweetIcons = findViewById(R.id.enable_tweet_indicators); SeekBar listSizeSelector = findViewById(R.id.settings_list_seek); Spinner fontSelector = findViewById(R.id.spinner_font); Spinner scaleSelector = findViewById(R.id.spinner_scale); @@ -224,6 +225,7 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen toolbarOverlap.setCheckedImmediately(settings.toolbarOverlapEnabled()); enableLike.setCheckedImmediately(settings.likeEnabled()); enableTwitterAlt.setCheckedImmediately(settings.twitterAltSet()); + enableTweetIcons.setCheckedImmediately(settings.tweetIndicatorsEnabled()); enableAPI.setCheckedImmediately(settings.isCustomApiSet()); enableProxy.setCheckedImmediately(settings.isProxyEnabled()); enableAuth.setCheckedImmediately(settings.isProxyAuthSet()); @@ -248,6 +250,7 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen enableAPI.setOnCheckedChangeListener(this); enableLike.setOnCheckedChangeListener(this); enableTwitterAlt.setOnCheckedChangeListener(this); + enableTweetIcons.setOnCheckedChangeListener(this); enablePreview.setOnCheckedChangeListener(this); enableProxy.setOnCheckedChangeListener(this); enableAuth.setOnCheckedChangeListener(this); @@ -520,6 +523,10 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen else if (c.getId() == R.id.settings_enable_twitter_alt) { settings.setTwitterAlt(checked); } + // enable tweet indicators + else if (c.getId() == R.id.enable_tweet_indicators) { + settings.enableTweetIndicators(checked); + } // enable link preview else if (c.getId() == R.id.settings_enable_prev) { settings.setLinkPreview(checked); diff --git a/app/src/main/res/layout/page_settings.xml b/app/src/main/res/layout/page_settings.xml index 815be9a0..15efbcc6 100644 --- a/app/src/main/res/layout/page_settings.xml +++ b/app/src/main/res/layout/page_settings.xml @@ -234,7 +234,7 @@ android:layout_marginEnd="@dimen/settings_switch_margin" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/settings_toolbar_ov" - app:layout_constraintBottom_toTopOf="@id/spinner_font" + app:layout_constraintBottom_toTopOf="@id/enable_tweet_indicators" app:layout_constraintEnd_toStartOf="@id/enable_like_descr" /> + + + + diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 2da30ab5..d24eaa08 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -247,4 +247,5 @@ Standortkoordinaten kopiert Tweet Metriken Metriken + zeige zusätzliche Tweet Informationen an \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 18f0abf7..3da68eb0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -168,6 +168,7 @@ Icons Like Favorite + show additional Tweet information Highlight • changing API Keys requires re-login List size