Skip to content

Commit

Permalink
feat: readd prereply sheets from upstream back into the code
Browse files Browse the repository at this point in the history
  • Loading branch information
LucasGGamerM committed Mar 5, 2024
1 parent 75e8d73 commit e9b6acb
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,11 @@ public static SharedPreferences getPrefs(){
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){
if(json==null) return orElse;
try{
Expand Down Expand Up @@ -239,12 +244,41 @@ public static void save(){
.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{
AUTO,
LIGHT,
DARK
}

public enum PreReplySheetType{
OLD_POST,
NON_MUTUAL
}

public enum AutoRevealMode {
NEVER,
THREADS,
Expand Down Expand Up @@ -309,5 +343,4 @@ private static void migrateToUpstreamVersion61(){
}

//endregion

}
Original file line number Diff line number Diff line change
Expand Up @@ -174,9 +174,4 @@ public enum ShowEmojiReactions{
ONLY_OPENED,
ALWAYS
}

// public enum PreReplySheetType{
// OLD_POST,
// NON_MUTUAL
// }
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.joinmastodon.android.api.requests.polls.SubmitPollVote;
import org.joinmastodon.android.api.requests.statuses.AkkomaTranslateStatus;
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;
Expand Down Expand Up @@ -1079,27 +1080,23 @@ public void rebuildAllDisplayItems(){
}

public void maybeShowPreReplySheet(Status status, Runnable proceed){
// TODO: figure this stuff out
// Relationship rel=getRelationship(status.account.id);
// 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){
// new NonMutualPreReplySheet(getActivity(), notAgain->{
// 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();
Relationship rel=getRelationship(status.account.id);
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){
new NonMutualPreReplySheet(getActivity(), notAgain->{
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();
}
}

protected void onModifyItemViewHolder(BindableViewHolder<StatusDisplayItem> holder){}
Expand Down

0 comments on commit e9b6acb

Please sign in to comment.