summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2023-03-09 14:31:02 +0100
committerThomas <tschneider.ac@gmail.com>2023-03-09 14:31:02 +0100
commit68d9abea679f71a84de6a772b749ecf0b09a0636 (patch)
tree71448c8ada037ee761eae6dfc4ea401f4d60df50
parent8c7434384350d93714997b1f0ae09770fe406966 (diff)
settings to automatically fetch remote media when it fails (default: disabled)
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java34
-rw-r--r--app/src/main/res/layouts/mastodon/values/strings.xml1
-rw-r--r--app/src/main/res/values/strings.xml2
-rw-r--r--app/src/main/res/xml/pref_timelines.xml6
-rw-r--r--src/fdroid/fastlane/metadata/android/en/changelogs/484.txt9
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