From bc274c9d4a1c47038df5e6d996f9701f05b0bef8 Mon Sep 17 00:00:00 2001 From: nuclearfog Date: Wed, 28 Oct 2020 16:15:02 +0100 Subject: [PATCH] added option to set image quality, layout fix --- .../twidda/activity/AppSettings.java | 11 ++- .../twidda/activity/TweetActivity.java | 2 +- .../twidda/adapter/ListAdapter.java | 2 +- .../twidda/adapter/MessageAdapter.java | 2 +- .../twidda/adapter/TweetAdapter.java | 2 +- .../twidda/adapter/UserAdapter.java | 2 +- .../twidda/database/GlobalSettings.java | 43 ++++++++++-- app/src/main/res/layout/dialog_app_info.xml | 8 ++- app/src/main/res/layout/page_settings.xml | 67 ++++++++++++++----- app/src/main/res/values-de-rDE/strings.xml | 3 +- app/src/main/res/values/dimens.xml | 1 + app/src/main/res/values/strings.xml | 3 +- 12 files changed, 116 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/org/nuclearfog/twidda/activity/AppSettings.java b/app/src/main/java/org/nuclearfog/twidda/activity/AppSettings.java index 3e508204..bbb13149 100644 --- a/app/src/main/java/org/nuclearfog/twidda/activity/AppSettings.java +++ b/app/src/main/java/org/nuclearfog/twidda/activity/AppSettings.java @@ -75,7 +75,7 @@ public class AppSettings extends AppCompatActivity implements OnClickListener, O private Button colorButton1, colorButton2, colorButton3, colorButton4; private EditText proxyAddr, proxyPort, proxyUser, proxyPass; private NumberPicker load_picker; - private CompoundButton enableProxy, enableAuth; + private CompoundButton enableProxy, enableAuth, hqImage; private Spinner locationSpinner; private LocationAdapter locationAdapter; private View root, colorButton1_edge; @@ -97,6 +97,7 @@ public class AppSettings extends AppCompatActivity implements OnClickListener, O Spinner fontSpinner = findViewById(R.id.spinner_font); enableProxy = findViewById(R.id.settings_enable_proxy); enableAuth = findViewById(R.id.settings_enable_auth); + hqImage = findViewById(R.id.settings_image_hq); locationSpinner = findViewById(R.id.spinner_woeid); colorButton1_edge = findViewById(R.id.color_background_edge); colorButton1 = findViewById(R.id.color_background); @@ -151,6 +152,8 @@ public class AppSettings extends AppCompatActivity implements OnClickListener, O load_picker.setValue((settings.getListSize()) / 10); enableProxy.setChecked(settings.isProxyEnabled()); enableAuth.setChecked(settings.isProxyAuthSet()); + hqImage.setEnabled(settings.getImageLoad()); + hqImage.setChecked(settings.getImageQuality()); setProxySetupVisibility(settings.isProxyEnabled(), settings.isProxyAuthSet()); proxyDialog = DialogBuilder.create(this, WRONG_PROXY, this); @@ -168,6 +171,7 @@ public class AppSettings extends AppCompatActivity implements OnClickListener, O toggleAns.setOnCheckedChangeListener(this); enableProxy.setOnCheckedChangeListener(this); enableAuth.setOnCheckedChangeListener(this); + hqImage.setOnCheckedChangeListener(this); fontSpinner.setOnItemSelectedListener(this); locationSpinner.setOnItemSelectedListener(this); load_dialog_selector.setOnDismissListener(this); @@ -344,6 +348,7 @@ public class AppSettings extends AppCompatActivity implements OnClickListener, O switch (c.getId()) { case R.id.toggleImg: settings.setImageLoad(checked); + hqImage.setEnabled(checked); break; case R.id.toggleAns: @@ -357,6 +362,10 @@ public class AppSettings extends AppCompatActivity implements OnClickListener, O case R.id.settings_enable_auth: setProxySetupVisibility(true, checked); break; + + case R.id.settings_image_hq: + settings.setHighQualityImage(checked); + break; } } diff --git a/app/src/main/java/org/nuclearfog/twidda/activity/TweetActivity.java b/app/src/main/java/org/nuclearfog/twidda/activity/TweetActivity.java index b55e789e..9b673347 100644 --- a/app/src/main/java/org/nuclearfog/twidda/activity/TweetActivity.java +++ b/app/src/main/java/org/nuclearfog/twidda/activity/TweetActivity.java @@ -432,7 +432,7 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener, if (settings.getImageLoad()) { String pbLink = tweet.getUser().getImageLink(); if (!tweet.getUser().hasDefaultProfileImage()) - pbLink += "_bigger"; + pbLink += settings.getImageSuffix(); Picasso.get().load(pbLink).error(R.drawable.no_image).into(profile_img); } String placeName = tweet.getLocationName(); diff --git a/app/src/main/java/org/nuclearfog/twidda/adapter/ListAdapter.java b/app/src/main/java/org/nuclearfog/twidda/adapter/ListAdapter.java index b79b9efb..48176a41 100644 --- a/app/src/main/java/org/nuclearfog/twidda/adapter/ListAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/adapter/ListAdapter.java @@ -220,7 +220,7 @@ public class ListAdapter extends Adapter { if (settings.getImageLoad()) { String pbLink = owner.getImageLink(); if (!owner.hasDefaultProfileImage()) { - pbLink += "_mini"; + pbLink += settings.getImageSuffix(); } Picasso.get().load(pbLink).error(R.drawable.no_image).into(vh.pb_image); } diff --git a/app/src/main/java/org/nuclearfog/twidda/adapter/MessageAdapter.java b/app/src/main/java/org/nuclearfog/twidda/adapter/MessageAdapter.java index d07d7188..980496e4 100644 --- a/app/src/main/java/org/nuclearfog/twidda/adapter/MessageAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/adapter/MessageAdapter.java @@ -153,7 +153,7 @@ public class MessageAdapter extends Adapter { if (settings.getImageLoad()) { String pbLink = sender.getImageLink(); if (!sender.hasDefaultProfileImage()) { - pbLink += "_mini"; + pbLink += settings.getImageSuffix(); } Picasso.get().load(pbLink).error(R.drawable.no_image).into(holder.profile_img); } 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 5ae1e69f..ae840269 100644 --- a/app/src/main/java/org/nuclearfog/twidda/adapter/TweetAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/adapter/TweetAdapter.java @@ -248,7 +248,7 @@ public class TweetAdapter extends Adapter { if (settings.getImageLoad()) { String pbLink = user.getImageLink(); if (!user.hasDefaultProfileImage()) - pbLink += "_mini"; + pbLink += settings.getImageSuffix(); Picasso.get().load(pbLink).error(R.drawable.no_image).into(vh.profile); } else { vh.profile.setImageResource(0); diff --git a/app/src/main/java/org/nuclearfog/twidda/adapter/UserAdapter.java b/app/src/main/java/org/nuclearfog/twidda/adapter/UserAdapter.java index cdb63924..2ba74423 100644 --- a/app/src/main/java/org/nuclearfog/twidda/adapter/UserAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/adapter/UserAdapter.java @@ -192,7 +192,7 @@ public class UserAdapter extends Adapter { if (settings.getImageLoad()) { String pbLink = user.getImageLink(); if (!user.hasDefaultProfileImage()) { - pbLink += "_mini"; + pbLink += settings.getImageSuffix(); } Picasso.get().load(pbLink).error(R.drawable.no_image).into(vh.profileImg); } 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 0412dfe0..15a26291 100644 --- a/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java +++ b/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java @@ -30,6 +30,7 @@ public class GlobalSettings { private static final String INDEX_FONT = "index_font"; private static final String LIST_SIZE = "preload"; 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 LOGGED_IN = "login"; private static final String AUTH_KEY1 = "key1"; @@ -64,6 +65,7 @@ public class GlobalSettings { private TrendLocation location; private String key1, key2; private boolean loadImage; + private boolean hqImages; private boolean loadAnswer; private boolean loggedIn; private boolean isProxyEnabled; @@ -196,13 +198,45 @@ public class GlobalSettings { /** * enable/disable image load load * - * @param image true if enabled + * @param enable true if enabled */ - public void setImageLoad(boolean image) { - loadImage = image; + public void setImageLoad(boolean enable) { + loadImage = enable; Editor edit = settings.edit(); - edit.putBoolean(IMAGE_LOAD, image); + edit.putBoolean(IMAGE_LOAD, enable); + edit.apply(); + } + + /** + * sets image quality + * + * @return true if thumbnails should be in high resolution + */ + public boolean getImageQuality() { + return hqImages; + } + + /** + * returns the twitter image suffix depending on the resolution + * + * @return suffix string + */ + public String getImageSuffix() { + if (hqImages) + return "_bigger"; + return "_mini"; + } + + /** + * sets the image quality + * + * @param enable true if small thumbnails should be in high resolution + */ + public void setHighQualityImage(boolean enable) { + hqImages = enable; + Editor edit = settings.edit(); + edit.putBoolean(IMAGE_QUALITY, enable); edit.apply(); } @@ -518,6 +552,7 @@ public class GlobalSettings { listSize = settings.getInt(LIST_SIZE, DEFAULT_LIST_SIZE); loadImage = settings.getBoolean(IMAGE_LOAD, DEFAULT_DATA_USAGE); loadAnswer = settings.getBoolean(ANSWER_LOAD, DEFAULT_DATA_USAGE); + hqImages = settings.getBoolean(IMAGE_QUALITY, DEFAULT_DATA_USAGE); loggedIn = settings.getBoolean(LOGGED_IN, false); key1 = settings.getString(AUTH_KEY1, ""); key2 = settings.getString(AUTH_KEY2, ""); diff --git a/app/src/main/res/layout/dialog_app_info.xml b/app/src/main/res/layout/dialog_app_info.xml index e64e444a..1fdbee48 100644 --- a/app/src/main/res/layout/dialog_app_info.xml +++ b/app/src/main/res/layout/dialog_app_info.xml @@ -1,8 +1,10 @@ + android:contentDescription="@string/badge_twitter4j" + app:srcCompat="@drawable/twitter4j_badge" /> + android:orientation="horizontal" + android:paddingLeft="@dimen/settings_layout_padding" + android:paddingRight="@dimen/settings_layout_padding"> + + + android:textSize="@dimen/settings_checkbox_textsize" /> + + + android:text="@string/settings_enable_hq_img" + android:textSize="@dimen/settings_checkbox_textsize" /> + + + +