feat: readd prereply sheets from upstream back into the code

This commit is contained in:
LucasGGamerM 2024-03-04 21:00:30 -03:00
parent 75e8d738a4
commit e9b6acb92d
3 changed files with 52 additions and 27 deletions

View File

@ -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
} }

View File

@ -174,9 +174,4 @@ public class AccountLocalPreferences{
ONLY_OPENED, ONLY_OPENED,
ALWAYS ALWAYS
} }
// public enum PreReplySheetType{
// OLD_POST,
// NON_MUTUAL
// }
} }

View File

@ -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();
// proceed.run(); }, status.account, accountID).show();
// }, status.account, accountID).show(); }else if(!GlobalUserPreferences.isOptedOutOfPreReplySheet(GlobalUserPreferences.PreReplySheetType.OLD_POST, null, null) &&
// }else if(!GlobalUserPreferences.isOptedOutOfPreReplySheet(GlobalUserPreferences.PreReplySheetType.OLD_POST, null, null) && status.createdAt.isBefore(Instant.now().minus(90, ChronoUnit.DAYS))){
// status.createdAt.isBefore(Instant.now().minus(90, ChronoUnit.DAYS))){ new OldPostPreReplySheet(getActivity(), notAgain->{
// new OldPostPreReplySheet(getActivity(), notAgain->{ if(notAgain)
// if(notAgain) GlobalUserPreferences.optOutOfPreReplySheet(GlobalUserPreferences.PreReplySheetType.OLD_POST, null, null);
// GlobalUserPreferences.optOutOfPreReplySheet(GlobalUserPreferences.PreReplySheetType.OLD_POST, null, null); proceed.run();
// proceed.run(); }, status).show();
// }, status).show(); }else{
// }else{ proceed.run();
// proceed.run(); }
// }
proceed.run();
} }
protected void onModifyItemViewHolder(BindableViewHolder<StatusDisplayItem> holder){} protected void onModifyItemViewHolder(BindableViewHolder<StatusDisplayItem> holder){}