add option to always expand content warnings (#1422)

This commit is contained in:
Konrad Pozniak 2019-07-28 19:59:52 +02:00 committed by GitHub
commit 8834c22120
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 742 additions and 210 deletions

View file

@ -162,6 +162,7 @@ public class NotificationsFragment extends SFragment implements
private boolean bottomLoading;
private String bottomId;
private boolean alwaysShowSensitiveMedia;
private boolean alwaysOpenSpoiler;
private boolean showNotificationsFilter;
// Each element is either a Notification for loading data or a Placeholder
@ -173,7 +174,8 @@ public class NotificationsFragment extends SFragment implements
Notification notification = input.asRight();
return ViewDataUtils.notificationToViewData(
notification,
alwaysShowSensitiveMedia
alwaysShowSensitiveMedia,
alwaysOpenSpoiler
);
} else {
return new NotificationViewData.Placeholder(input.asLeft().id, false);
@ -236,6 +238,7 @@ public class NotificationsFragment extends SFragment implements
adapter = new NotificationsAdapter(accountManager.getActiveAccount().getAccountId(),
dataSource, this, this);
alwaysShowSensitiveMedia = accountManager.getActiveAccount().getAlwaysShowSensitiveMedia();
alwaysOpenSpoiler = accountManager.getActiveAccount().getAlwaysOpenSpoiler();
boolean mediaPreviewEnabled = accountManager.getActiveAccount().getMediaPreviewEnabled();
adapter.setMediaPreviewEnabled(mediaPreviewEnabled);
boolean useAbsoluteTime = preferences.getBoolean("absoluteTimeView", false);

View file

@ -166,6 +166,7 @@ public class TimelineFragment extends SFragment implements
private boolean didLoadEverythingBottom;
private boolean alwaysShowSensitiveMedia;
private boolean alwaysOpenSpoiler;
private boolean initialUpdateFailed = false;
private PairedList<Either<Placeholder, Status>, StatusViewData> statuses =
@ -176,7 +177,8 @@ public class TimelineFragment extends SFragment implements
if (status != null) {
return ViewDataUtils.statusToViewData(
status,
alwaysShowSensitiveMedia
alwaysShowSensitiveMedia,
alwaysOpenSpoiler
);
} else {
Placeholder placeholder = input.asLeft();
@ -340,6 +342,7 @@ public class TimelineFragment extends SFragment implements
private void setupTimelinePreferences() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
alwaysShowSensitiveMedia = accountManager.getActiveAccount().getAlwaysShowSensitiveMedia();
alwaysOpenSpoiler = accountManager.getActiveAccount().getAlwaysOpenSpoiler();
boolean mediaPreviewEnabled = accountManager.getActiveAccount().getMediaPreviewEnabled();
adapter.setMediaPreviewEnabled(mediaPreviewEnabled);
boolean useAbsoluteTime = preferences.getBoolean("absoluteTimeView", false);

View file

@ -92,6 +92,7 @@ public final class ViewThreadFragment extends SFragment implements
private ThreadAdapter adapter;
private String thisThreadsStatusId;
private boolean alwaysShowSensitiveMedia;
private boolean alwaysOpenSpoiler;
private int statusIndex = 0;
@ -101,7 +102,8 @@ public final class ViewThreadFragment extends SFragment implements
public StatusViewData.Concrete apply(Status input) {
return ViewDataUtils.statusToViewData(
input,
alwaysShowSensitiveMedia
alwaysShowSensitiveMedia,
alwaysOpenSpoiler
);
}
});
@ -149,6 +151,7 @@ public final class ViewThreadFragment extends SFragment implements
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(
getActivity());
alwaysShowSensitiveMedia = accountManager.getActiveAccount().getAlwaysShowSensitiveMedia();
alwaysOpenSpoiler = accountManager.getActiveAccount().getAlwaysOpenSpoiler();
boolean mediaPreviewEnabled = accountManager.getActiveAccount().getMediaPreviewEnabled();
adapter.setMediaPreviewEnabled(mediaPreviewEnabled);
boolean useAbsoluteTime = preferences.getBoolean("absoluteTimeView", false);

View file

@ -65,6 +65,7 @@ class AccountPreferencesFragment : PreferenceFragmentCompat(),
private lateinit var defaultPostPrivacyPreference: ListPreference
private lateinit var defaultMediaSensitivityPreference: SwitchPreferenceCompat
private lateinit var alwaysShowSensitiveMediaPreference: SwitchPreferenceCompat
private lateinit var alwaysOpenSpoilerPreference: SwitchPreferenceCompat
private lateinit var mediaPreviewEnabledPreference: SwitchPreferenceCompat
private lateinit var homeFiltersPreference: Preference
private lateinit var notificationFiltersPreference: Preference
@ -85,6 +86,7 @@ class AccountPreferencesFragment : PreferenceFragmentCompat(),
defaultMediaSensitivityPreference = requirePreference("defaultMediaSensitivity") as SwitchPreferenceCompat
mediaPreviewEnabledPreference = requirePreference("mediaPreviewEnabled") as SwitchPreferenceCompat
alwaysShowSensitiveMediaPreference = requirePreference("alwaysShowSensitiveMedia") as SwitchPreferenceCompat
alwaysOpenSpoilerPreference = requirePreference("alwaysOpenSpoiler") as SwitchPreferenceCompat
homeFiltersPreference = requirePreference("homeFilters")
notificationFiltersPreference = requirePreference("notificationFilters")
publicFiltersPreference = requirePreference("publicFilters")
@ -109,6 +111,7 @@ class AccountPreferencesFragment : PreferenceFragmentCompat(),
defaultMediaSensitivityPreference.onPreferenceChangeListener = this
mediaPreviewEnabledPreference.onPreferenceChangeListener = this
alwaysShowSensitiveMediaPreference.onPreferenceChangeListener = this
alwaysOpenSpoilerPreference.onPreferenceChangeListener = this
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@ -124,6 +127,7 @@ class AccountPreferencesFragment : PreferenceFragmentCompat(),
mediaPreviewEnabledPreference.isChecked = it.mediaPreviewEnabled
alwaysShowSensitiveMediaPreference.isChecked = it.alwaysShowSensitiveMedia
alwaysOpenSpoilerPreference.isChecked = it.alwaysOpenSpoiler
}
}
@ -150,6 +154,12 @@ class AccountPreferencesFragment : PreferenceFragmentCompat(),
accountManager.saveAccount(it)
}
}
alwaysOpenSpoilerPreference -> {
accountManager.activeAccount?.let {
it.alwaysOpenSpoiler = newValue as Boolean
accountManager.saveAccount(it)
}
}
}
eventHub.dispatch(PreferenceChangedEvent(preference.key))