setting for "re:" reply CW prefix always or only to others
re: sk22#567
This commit is contained in:
parent
acb1369e88
commit
44154a987d
|
@ -40,7 +40,7 @@ public class GlobalUserPreferences{
|
||||||
public static boolean showAltIndicator;
|
public static boolean showAltIndicator;
|
||||||
public static boolean showNoAltIndicator;
|
public static boolean showNoAltIndicator;
|
||||||
public static boolean enablePreReleases;
|
public static boolean enablePreReleases;
|
||||||
public static boolean prefixRepliesWithRe;
|
public static PrefixRepliesMode prefixReplies;
|
||||||
public static boolean bottomEncoding;
|
public static boolean bottomEncoding;
|
||||||
public static boolean collapseLongPosts;
|
public static boolean collapseLongPosts;
|
||||||
public static boolean spectatorMode;
|
public static boolean spectatorMode;
|
||||||
|
@ -112,7 +112,7 @@ public class GlobalUserPreferences{
|
||||||
showAltIndicator=prefs.getBoolean("showAltIndicator", true);
|
showAltIndicator=prefs.getBoolean("showAltIndicator", true);
|
||||||
showNoAltIndicator=prefs.getBoolean("showNoAltIndicator", true);
|
showNoAltIndicator=prefs.getBoolean("showNoAltIndicator", true);
|
||||||
enablePreReleases=prefs.getBoolean("enablePreReleases", false);
|
enablePreReleases=prefs.getBoolean("enablePreReleases", false);
|
||||||
prefixRepliesWithRe=prefs.getBoolean("prefixRepliesWithRe", false);
|
prefixReplies=PrefixRepliesMode.valueOf(prefs.getString("prefixReplies", PrefixRepliesMode.NEVER.name()));
|
||||||
bottomEncoding=prefs.getBoolean("bottomEncoding", false);
|
bottomEncoding=prefs.getBoolean("bottomEncoding", false);
|
||||||
collapseLongPosts=prefs.getBoolean("collapseLongPosts", true);
|
collapseLongPosts=prefs.getBoolean("collapseLongPosts", true);
|
||||||
spectatorMode=prefs.getBoolean("spectatorMode", false);
|
spectatorMode=prefs.getBoolean("spectatorMode", false);
|
||||||
|
@ -132,6 +132,15 @@ public class GlobalUserPreferences{
|
||||||
allowRemoteLoading=prefs.getBoolean("allowRemoteLoading", true);
|
allowRemoteLoading=prefs.getBoolean("allowRemoteLoading", true);
|
||||||
autoRevealEqualSpoilers=AutoRevealMode.valueOf(prefs.getString("autoRevealEqualSpoilers", AutoRevealMode.THREADS.name()));
|
autoRevealEqualSpoilers=AutoRevealMode.valueOf(prefs.getString("autoRevealEqualSpoilers", AutoRevealMode.THREADS.name()));
|
||||||
|
|
||||||
|
if (prefs.contains("prefixRepliesWithRe")) {
|
||||||
|
prefixReplies = prefs.getBoolean("prefixRepliesWithRe", false)
|
||||||
|
? PrefixRepliesMode.TO_OTHERS : PrefixRepliesMode.NEVER;
|
||||||
|
prefs.edit()
|
||||||
|
.putString("prefixReplies", prefixReplies.name())
|
||||||
|
.remove("prefixRepliesWithRe")
|
||||||
|
.apply();
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
color=ColorPreference.valueOf(prefs.getString("color", ColorPreference.PINK.name()));
|
color=ColorPreference.valueOf(prefs.getString("color", ColorPreference.PINK.name()));
|
||||||
} catch (IllegalArgumentException|ClassCastException ignored) {
|
} catch (IllegalArgumentException|ClassCastException ignored) {
|
||||||
|
@ -162,7 +171,7 @@ public class GlobalUserPreferences{
|
||||||
.putBoolean("showAltIndicator", showAltIndicator)
|
.putBoolean("showAltIndicator", showAltIndicator)
|
||||||
.putBoolean("showNoAltIndicator", showNoAltIndicator)
|
.putBoolean("showNoAltIndicator", showNoAltIndicator)
|
||||||
.putBoolean("enablePreReleases", enablePreReleases)
|
.putBoolean("enablePreReleases", enablePreReleases)
|
||||||
.putBoolean("prefixRepliesWithRe", prefixRepliesWithRe)
|
.putString("prefixReplies", prefixReplies.name())
|
||||||
.putBoolean("collapseLongPosts", collapseLongPosts)
|
.putBoolean("collapseLongPosts", collapseLongPosts)
|
||||||
.putBoolean("spectatorMode", spectatorMode)
|
.putBoolean("spectatorMode", spectatorMode)
|
||||||
.putBoolean("autoHideFab", autoHideFab)
|
.putBoolean("autoHideFab", autoHideFab)
|
||||||
|
@ -207,4 +216,10 @@ public class GlobalUserPreferences{
|
||||||
THREADS,
|
THREADS,
|
||||||
DISCUSSIONS
|
DISCUSSIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum PrefixRepliesMode {
|
||||||
|
NEVER,
|
||||||
|
ALWAYS,
|
||||||
|
TO_OTHERS
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package org.joinmastodon.android;
|
package org.joinmastodon.android;
|
||||||
|
|
||||||
|
import static org.joinmastodon.android.GlobalUserPreferences.PrefixRepliesMode.*;
|
||||||
|
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.app.NotificationChannel;
|
import android.app.NotificationChannel;
|
||||||
import android.app.NotificationChannelGroup;
|
import android.app.NotificationChannelGroup;
|
||||||
|
@ -295,7 +297,11 @@ public class PushNotificationReceiver extends BroadcastReceiver{
|
||||||
req.language = preferences.postingDefaultLanguage;
|
req.language = preferences.postingDefaultLanguage;
|
||||||
req.visibility = preferences.postingDefaultVisibility;
|
req.visibility = preferences.postingDefaultVisibility;
|
||||||
req.inReplyToId = notification.status.id;
|
req.inReplyToId = notification.status.id;
|
||||||
if(!notification.status.spoilerText.isEmpty() && GlobalUserPreferences.prefixRepliesWithRe && !notification.status.spoilerText.startsWith("re: ")){
|
|
||||||
|
if (!notification.status.spoilerText.isEmpty() &&
|
||||||
|
(GlobalUserPreferences.prefixReplies == ALWAYS
|
||||||
|
|| (GlobalUserPreferences.prefixReplies == TO_OTHERS && !ownID.equals(notification.status.account.id)))
|
||||||
|
&& !notification.status.spoilerText.startsWith("re: ")) {
|
||||||
req.spoilerText = "re: " + notification.status.spoilerText;
|
req.spoilerText = "re: " + notification.status.spoilerText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.joinmastodon.android.fragments;
|
package org.joinmastodon.android.fragments;
|
||||||
|
|
||||||
|
import static org.joinmastodon.android.GlobalUserPreferences.PrefixRepliesMode.*;
|
||||||
import static org.joinmastodon.android.GlobalUserPreferences.recentLanguages;
|
import static org.joinmastodon.android.GlobalUserPreferences.recentLanguages;
|
||||||
import static org.joinmastodon.android.api.requests.statuses.CreateStatus.DRAFTS_AFTER_INSTANT;
|
import static org.joinmastodon.android.api.requests.statuses.CreateStatus.DRAFTS_AFTER_INSTANT;
|
||||||
import static org.joinmastodon.android.api.requests.statuses.CreateStatus.getDraftInstant;
|
import static org.joinmastodon.android.api.requests.statuses.CreateStatus.getDraftInstant;
|
||||||
|
@ -746,7 +747,9 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
||||||
if(!TextUtils.isEmpty(status.spoilerText)){
|
if(!TextUtils.isEmpty(status.spoilerText)){
|
||||||
hasSpoiler=true;
|
hasSpoiler=true;
|
||||||
spoilerEdit.setVisibility(View.VISIBLE);
|
spoilerEdit.setVisibility(View.VISIBLE);
|
||||||
if(GlobalUserPreferences.prefixRepliesWithRe && !status.spoilerText.startsWith("re: ")){
|
if ((GlobalUserPreferences.prefixReplies == ALWAYS
|
||||||
|
|| (GlobalUserPreferences.prefixReplies == TO_OTHERS && !ownID.equals(status.account.id)))
|
||||||
|
&& !status.spoilerText.startsWith("re: ")) {
|
||||||
spoilerEdit.setText("re: " + status.spoilerText);
|
spoilerEdit.setText("re: " + status.spoilerText);
|
||||||
} else {
|
} else {
|
||||||
spoilerEdit.setText(status.spoilerText);
|
spoilerEdit.setText(status.spoilerText);
|
||||||
|
|
|
@ -39,6 +39,7 @@ import org.joinmastodon.android.E;
|
||||||
import org.joinmastodon.android.GlobalUserPreferences;
|
import org.joinmastodon.android.GlobalUserPreferences;
|
||||||
import org.joinmastodon.android.GlobalUserPreferences.AutoRevealMode;
|
import org.joinmastodon.android.GlobalUserPreferences.AutoRevealMode;
|
||||||
import org.joinmastodon.android.GlobalUserPreferences.ColorPreference;
|
import org.joinmastodon.android.GlobalUserPreferences.ColorPreference;
|
||||||
|
import org.joinmastodon.android.GlobalUserPreferences.PrefixRepliesMode;
|
||||||
import org.joinmastodon.android.MainActivity;
|
import org.joinmastodon.android.MainActivity;
|
||||||
import org.joinmastodon.android.MastodonApp;
|
import org.joinmastodon.android.MastodonApp;
|
||||||
import org.joinmastodon.android.R;
|
import org.joinmastodon.android.R;
|
||||||
|
@ -221,8 +222,17 @@ public class SettingsFragment extends MastodonToolbarFragment implements Provide
|
||||||
GlobalUserPreferences.keepOnlyLatestNotification=i.checked;
|
GlobalUserPreferences.keepOnlyLatestNotification=i.checked;
|
||||||
GlobalUserPreferences.save();
|
GlobalUserPreferences.save();
|
||||||
}));
|
}));
|
||||||
items.add(new SwitchItem(R.string.sk_settings_prefix_reply_cw_with_re, R.drawable.ic_fluent_arrow_reply_24_regular, GlobalUserPreferences.prefixRepliesWithRe, i->{
|
items.add(new ButtonItem(R.string.sk_settings_prefix_reply_cw_with_re, R.drawable.ic_fluent_arrow_reply_24_regular, b->{
|
||||||
GlobalUserPreferences.prefixRepliesWithRe=i.checked;
|
PopupMenu popupMenu=new PopupMenu(getActivity(), b, Gravity.CENTER_HORIZONTAL);
|
||||||
|
popupMenu.inflate(R.menu.settings_prefix_reply_mode);
|
||||||
|
popupMenu.setOnMenuItemClickListener(i -> onPrefixRepliesClick(i, b));
|
||||||
|
b.setOnTouchListener(popupMenu.getDragToOpenListener());
|
||||||
|
b.setOnClickListener(v->popupMenu.show());
|
||||||
|
b.setText(switch(GlobalUserPreferences.prefixReplies){
|
||||||
|
case TO_OTHERS -> R.string.sk_settings_prefix_replies_to_others;
|
||||||
|
case ALWAYS -> R.string.sk_settings_prefix_replies_always;
|
||||||
|
default -> R.string.sk_settings_prefix_replies_never;
|
||||||
|
});
|
||||||
GlobalUserPreferences.save();
|
GlobalUserPreferences.save();
|
||||||
}));
|
}));
|
||||||
items.add(new SwitchItem(R.string.sk_settings_confirm_before_reblog, R.drawable.ic_fluent_checkmark_circle_24_regular, GlobalUserPreferences.confirmBeforeReblog, i->{
|
items.add(new SwitchItem(R.string.sk_settings_confirm_before_reblog, R.drawable.ic_fluent_checkmark_circle_24_regular, GlobalUserPreferences.confirmBeforeReblog, i->{
|
||||||
|
@ -541,6 +551,22 @@ public class SettingsFragment extends MastodonToolbarFragment implements Provide
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean onPrefixRepliesClick(MenuItem item, Button btn) {
|
||||||
|
int id = item.getItemId();
|
||||||
|
PrefixRepliesMode mode = PrefixRepliesMode.NEVER;
|
||||||
|
if (id == R.id.prefix_replies_always) mode = PrefixRepliesMode.ALWAYS;
|
||||||
|
else if (id == R.id.prefix_replies_to_others) mode = PrefixRepliesMode.TO_OTHERS;
|
||||||
|
GlobalUserPreferences.prefixReplies = mode;
|
||||||
|
|
||||||
|
btn.setText(switch(GlobalUserPreferences.prefixReplies){
|
||||||
|
case TO_OTHERS -> R.string.sk_settings_prefix_replies_to_others;
|
||||||
|
case ALWAYS -> R.string.sk_settings_prefix_replies_always;
|
||||||
|
default -> R.string.sk_settings_prefix_replies_never;
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private boolean onAutoRevealSpoilerClick(MenuItem item, Button btn) {
|
private boolean onAutoRevealSpoilerClick(MenuItem item, Button btn) {
|
||||||
int id = item.getItemId();
|
int id = item.getItemId();
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:id="@+id/prefix_replies_never" android:title="@string/sk_settings_prefix_replies_never" />
|
||||||
|
<item android:id="@+id/prefix_replies_to_others" android:title="@string/sk_settings_prefix_replies_to_others" />
|
||||||
|
<item android:id="@+id/prefix_replies_always" android:title="@string/sk_settings_prefix_replies_always" />
|
||||||
|
</menu>
|
|
@ -260,7 +260,7 @@
|
||||||
<string name="sk_new_reports">New reports</string>
|
<string name="sk_new_reports">New reports</string>
|
||||||
<string name="sk_settings_server_version">Server version: %s</string>
|
<string name="sk_settings_server_version">Server version: %s</string>
|
||||||
<string name="sk_notify_poll_results">Poll results</string>
|
<string name="sk_notify_poll_results">Poll results</string>
|
||||||
<string name="sk_settings_prefix_reply_cw_with_re">Prefix reply CW with “re:”</string>
|
<string name="sk_settings_prefix_reply_cw_with_re">Prefix CW with “re:” on replies to</string>
|
||||||
<string name="sk_filtered">Filtered: %s</string>
|
<string name="sk_filtered">Filtered: %s</string>
|
||||||
<string name="sk_expand">Expand</string>
|
<string name="sk_expand">Expand</string>
|
||||||
<string name="sk_collapse">Collapse</string>
|
<string name="sk_collapse">Collapse</string>
|
||||||
|
@ -301,4 +301,7 @@
|
||||||
<string name="sk_settings_auto_reveal_nobody">nobody</string>
|
<string name="sk_settings_auto_reveal_nobody">nobody</string>
|
||||||
<string name="sk_settings_auto_reveal_author">author</string>
|
<string name="sk_settings_auto_reveal_author">author</string>
|
||||||
<string name="sk_settings_auto_reveal_anyone">everyone</string>
|
<string name="sk_settings_auto_reveal_anyone">everyone</string>
|
||||||
|
<string name="sk_settings_prefix_replies_always">everyone</string>
|
||||||
|
<string name="sk_settings_prefix_replies_never">nobody</string>
|
||||||
|
<string name="sk_settings_prefix_replies_to_others">others</string>
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue