feat: readd prereply sheets from upstream back into the code
This commit is contained in:
parent
75e8d738a4
commit
e9b6acb92d
|
@ -87,6 +87,11 @@ public class GlobalUserPreferences{
|
||||||
return MastodonApp.context.getSharedPreferences("global", Context.MODE_PRIVATE);
|
return MastodonApp.context.getSharedPreferences("global", Context.MODE_PRIVATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static SharedPreferences getPreReplyPrefs(){
|
||||||
|
return MastodonApp.context.getSharedPreferences("pre_reply_sheets", Context.MODE_PRIVATE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static <T> T fromJson(String json, Type type, T orElse){
|
public static <T> T fromJson(String json, Type type, T orElse){
|
||||||
if(json==null) return orElse;
|
if(json==null) return orElse;
|
||||||
try{
|
try{
|
||||||
|
@ -239,12 +244,41 @@ public class GlobalUserPreferences{
|
||||||
.apply();
|
.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isOptedOutOfPreReplySheet(PreReplySheetType type, Account account, String accountID){
|
||||||
|
if(getPreReplyPrefs().getBoolean("opt_out_"+type, false))
|
||||||
|
return true;
|
||||||
|
if(account==null)
|
||||||
|
return false;
|
||||||
|
String accountKey=account.acct;
|
||||||
|
if(!accountKey.contains("@"))
|
||||||
|
accountKey+="@"+AccountSessionManager.get(accountID).domain;
|
||||||
|
return getPreReplyPrefs().getBoolean("opt_out_"+type+"_"+accountKey.toLowerCase(), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void optOutOfPreReplySheet(PreReplySheetType type, Account account, String accountID){
|
||||||
|
String key;
|
||||||
|
if(account==null){
|
||||||
|
key="opt_out_"+type;
|
||||||
|
}else{
|
||||||
|
String accountKey=account.acct;
|
||||||
|
if(!accountKey.contains("@"))
|
||||||
|
accountKey+="@"+AccountSessionManager.get(accountID).domain;
|
||||||
|
key="opt_out_"+type+"_"+accountKey.toLowerCase();
|
||||||
|
}
|
||||||
|
getPreReplyPrefs().edit().putBoolean(key, true).apply();
|
||||||
|
}
|
||||||
|
|
||||||
public enum ThemePreference{
|
public enum ThemePreference{
|
||||||
AUTO,
|
AUTO,
|
||||||
LIGHT,
|
LIGHT,
|
||||||
DARK
|
DARK
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum PreReplySheetType{
|
||||||
|
OLD_POST,
|
||||||
|
NON_MUTUAL
|
||||||
|
}
|
||||||
|
|
||||||
public enum AutoRevealMode {
|
public enum AutoRevealMode {
|
||||||
NEVER,
|
NEVER,
|
||||||
THREADS,
|
THREADS,
|
||||||
|
@ -309,5 +343,4 @@ public class GlobalUserPreferences{
|
||||||
}
|
}
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -174,9 +174,4 @@ public class AccountLocalPreferences{
|
||||||
ONLY_OPENED,
|
ONLY_OPENED,
|
||||||
ALWAYS
|
ALWAYS
|
||||||
}
|
}
|
||||||
|
|
||||||
// public enum PreReplySheetType{
|
|
||||||
// OLD_POST,
|
|
||||||
// NON_MUTUAL
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.joinmastodon.android.api.requests.accounts.GetAccountRelationships;
|
||||||
import org.joinmastodon.android.api.requests.polls.SubmitPollVote;
|
import org.joinmastodon.android.api.requests.polls.SubmitPollVote;
|
||||||
import org.joinmastodon.android.api.requests.statuses.AkkomaTranslateStatus;
|
import org.joinmastodon.android.api.requests.statuses.AkkomaTranslateStatus;
|
||||||
import org.joinmastodon.android.api.requests.statuses.TranslateStatus;
|
import org.joinmastodon.android.api.requests.statuses.TranslateStatus;
|
||||||
|
import org.joinmastodon.android.api.session.AccountLocalPreferences;
|
||||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||||
|
@ -1079,27 +1080,23 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
|
||||||
}
|
}
|
||||||
|
|
||||||
public void maybeShowPreReplySheet(Status status, Runnable proceed){
|
public void maybeShowPreReplySheet(Status status, Runnable proceed){
|
||||||
// TODO: figure this stuff out
|
Relationship rel=getRelationship(status.account.id);
|
||||||
// Relationship rel=getRelationship(status.account.id);
|
if(!GlobalUserPreferences.isOptedOutOfPreReplySheet(GlobalUserPreferences.PreReplySheetType.NON_MUTUAL, status.account, accountID) &&
|
||||||
// if(!GlobalUserPreferences.isOptedOutOfPreReplySheet(GlobalUserPreferences.PreReplySheetType.NON_MUTUAL, status.account, accountID) &&
|
!status.account.id.equals(AccountSessionManager.get(accountID).self.id) && rel!=null && !rel.followedBy && status.account.followingCount>=1){
|
||||||
// !status.account.id.equals(AccountSessionManager.get(accountID).self.id) && rel!=null && !rel.followedBy && status.account.followingCount>=1){
|
new NonMutualPreReplySheet(getActivity(), notAgain->{
|
||||||
// new NonMutualPreReplySheet(getActivity(), notAgain->{
|
GlobalUserPreferences.optOutOfPreReplySheet(GlobalUserPreferences.PreReplySheetType.NON_MUTUAL, notAgain ? null : status.account, accountID);
|
||||||
// GlobalUserPreferences.optOutOfPreReplySheet(GlobalUserPreferences.PreReplySheetType.NON_MUTUAL, notAgain ? null : status.account, accountID);
|
|
||||||
// proceed.run();
|
|
||||||
// }, status.account, accountID).show();
|
|
||||||
// }else if(!GlobalUserPreferences.isOptedOutOfPreReplySheet(GlobalUserPreferences.PreReplySheetType.OLD_POST, null, null) &&
|
|
||||||
// status.createdAt.isBefore(Instant.now().minus(90, ChronoUnit.DAYS))){
|
|
||||||
// new OldPostPreReplySheet(getActivity(), notAgain->{
|
|
||||||
// if(notAgain)
|
|
||||||
// GlobalUserPreferences.optOutOfPreReplySheet(GlobalUserPreferences.PreReplySheetType.OLD_POST, null, null);
|
|
||||||
// proceed.run();
|
|
||||||
// }, status).show();
|
|
||||||
// }else{
|
|
||||||
// proceed.run();
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
proceed.run();
|
proceed.run();
|
||||||
|
}, status.account, accountID).show();
|
||||||
|
}else if(!GlobalUserPreferences.isOptedOutOfPreReplySheet(GlobalUserPreferences.PreReplySheetType.OLD_POST, null, null) &&
|
||||||
|
status.createdAt.isBefore(Instant.now().minus(90, ChronoUnit.DAYS))){
|
||||||
|
new OldPostPreReplySheet(getActivity(), notAgain->{
|
||||||
|
if(notAgain)
|
||||||
|
GlobalUserPreferences.optOutOfPreReplySheet(GlobalUserPreferences.PreReplySheetType.OLD_POST, null, null);
|
||||||
|
proceed.run();
|
||||||
|
}, status).show();
|
||||||
|
}else{
|
||||||
|
proceed.run();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void onModifyItemViewHolder(BindableViewHolder<StatusDisplayItem> holder){}
|
protected void onModifyItemViewHolder(BindableViewHolder<StatusDisplayItem> holder){}
|
||||||
|
|
Loading…
Reference in New Issue