diff options
author | Thomas <tschneider.ac@gmail.com> | 2023-03-09 14:31:02 +0100 |
---|---|---|
committer | Thomas <tschneider.ac@gmail.com> | 2023-03-09 14:31:02 +0100 |
commit | 68d9abea679f71a84de6a772b749ecf0b09a0636 (patch) | |
tree | 71448c8ada037ee761eae6dfc4ea401f4d60df50 | |
parent | 8c7434384350d93714997b1f0ae09770fe406966 (diff) |
settings to automatically fetch remote media when it fails (default: disabled)
5 files changed, 44 insertions, 8 deletions
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java index 14461db42..9c7896989 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java @@ -186,14 +186,24 @@ public class FragmentMedia extends Fragment { @Override public void onLoadFailed(@Nullable Drawable errorDrawable) { scheduleStartPostponedTransition(binding.mediaPicture); - Toasty.error(requireActivity(), getString(R.string.toast_error_media), Toasty.LENGTH_SHORT).show(); - binding.loadRemote.setVisibility(View.VISIBLE); - binding.loadRemote.setOnClickListener(v -> { + SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); + boolean autofetch = sharedpreferences.getBoolean(getString(R.string.SET_FETCH_REMOTE_MEDIA), false); + if (autofetch) { binding.loadRemote.setVisibility(View.GONE); binding.loader.setVisibility(View.GONE); Glide.with(requireActivity()) .load(attachment.remote_url).into(binding.mediaPicture); - }); + } else { + Toasty.error(requireActivity(), getString(R.string.toast_error_media), Toasty.LENGTH_SHORT).show(); + binding.loadRemote.setVisibility(View.VISIBLE); + binding.loadRemote.setOnClickListener(v -> { + binding.loadRemote.setVisibility(View.GONE); + binding.loader.setVisibility(View.GONE); + Glide.with(requireActivity()) + .load(attachment.remote_url).into(binding.mediaPicture); + }); + } + } @Override @@ -259,13 +269,21 @@ public class FragmentMedia extends Fragment { @Override public void onPlayerError(@NonNull PlaybackException error) { Player.Listener.super.onPlayerError(error); - Toasty.error(requireActivity(), getString(R.string.toast_error_media), Toasty.LENGTH_SHORT).show(); - binding.loadRemote.setVisibility(View.VISIBLE); - binding.loadRemote.setOnClickListener(v -> { + SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); + boolean autofetch = sharedpreferences.getBoolean(getString(R.string.SET_FETCH_REMOTE_MEDIA), false); + if (autofetch) { binding.loadRemote.setVisibility(View.GONE); binding.loader.setVisibility(View.GONE); loadVideo(attachment.remote_url, type); - }); + } else { + Toasty.error(requireActivity(), getString(R.string.toast_error_media), Toasty.LENGTH_SHORT).show(); + binding.loadRemote.setVisibility(View.VISIBLE); + binding.loadRemote.setOnClickListener(v -> { + binding.loadRemote.setVisibility(View.GONE); + binding.loader.setVisibility(View.GONE); + loadVideo(attachment.remote_url, type); + }); + } } }); diff --git a/app/src/main/res/layouts/mastodon/values/strings.xml b/app/src/main/res/layouts/mastodon/values/strings.xml index 78554f9eb..714050d20 100644 --- a/app/src/main/res/layouts/mastodon/values/strings.xml +++ b/app/src/main/res/layouts/mastodon/values/strings.xml @@ -2,4 +2,5 @@ <resources> + <string name="fetch_remote_media">Automatically fetch remote media when they are not available</string> </resources>
\ 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 ba9663138..6acb19fba 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1127,6 +1127,8 @@ <string name="SET_DISPLAY_ALL_NOTIFICATIONS_TYPE" translatable="false">SET_DISPLAY_ALL_NOTIFICATIONS_TYPE</string> <string name="SET_EXCLUDED_NOTIFICATIONS_TYPE" translatable="false">SET_EXCLUDED_NOTIFICATIONS_TYPE</string> <string name="SET_EXPAND_MEDIA" translatable="false">SET_EXPAND_MEDIA</string> + <string name="SET_FETCH_REMOTE_MEDIA" translatable="false">SET_FETCH_REMOTE_MEDIA</string> + <string name="SET_GROUP_REBLOGS" translatable="false">SET_GROUP_REBLOGS</string> <string name="SET_BOOST_ORIGINAL_DATE" translatable="false">SET_BOOST_ORIGINAL_DATE</string> <string name="SET_TRUNCATE_LINKS" translatable="false">SET_TRUNCATE_LINKS</string> diff --git a/app/src/main/res/xml/pref_timelines.xml b/app/src/main/res/xml/pref_timelines.xml index d205ddaad..9ebc9db5c 100644 --- a/app/src/main/res/xml/pref_timelines.xml +++ b/app/src/main/res/xml/pref_timelines.xml @@ -26,6 +26,12 @@ app:singleLineTitle="false" app:title="@string/expand_image" /> <SwitchPreferenceCompat + android:defaultValue="false" + app:iconSpaceReserved="false" + app:key="@string/SET_FETCH_REMOTE_MEDIA" + app:singleLineTitle="false" + app:title="@string/fetch_remote_media" /> + <SwitchPreferenceCompat android:defaultValue="true" app:iconSpaceReserved="false" app:key="@string/SET_GROUP_REBLOGS" diff --git a/src/fdroid/fastlane/metadata/android/en/changelogs/484.txt b/src/fdroid/fastlane/metadata/android/en/changelogs/484.txt new file mode 100644 index 000000000..bca713600 --- /dev/null +++ b/src/fdroid/fastlane/metadata/android/en/changelogs/484.txt @@ -0,0 +1,9 @@ +Added: +- Add a button to fetch remote media when it fails +- Add a settings to automatically fetch remote media when it fails (default: disabled) + +Changed: + + +Fixed: +- Some settings not properly restored (multiple choices)
\ No newline at end of file |