support admin notifications

This commit is contained in:
sk
2023-01-25 14:27:57 -03:00
committed by LucasGGamerM
parent 21f816860f
commit 58dee464e5
12 changed files with 123 additions and 15 deletions

View File

@@ -42,17 +42,9 @@ public class Announcement extends BaseModel implements DisplayItemsParent {
}
public Status toStatus() {
Status s = new Status();
s.id = id;
s.mediaAttachments = List.of();
Status s = Status.ofFake(id, content, publishedAt);
s.createdAt = startsAt != null ? startsAt : publishedAt;
if (updatedAt != null) s.editedAt = updatedAt;
s.content = s.text = content;
s.spoilerText = "";
s.visibility = StatusPrivacy.PUBLIC;
s.mentions = List.of();
s.tags = List.of();
s.emojis = List.of();
return s;
}

View File

@@ -18,8 +18,8 @@ public class Notification extends BaseModel implements DisplayItemsParent{
public Instant createdAt;
@RequiredField
public Account account;
public Status status;
public Report report;
@Override
public void postprocess() throws ObjectValidationException{
@@ -50,6 +50,17 @@ public class Notification extends BaseModel implements DisplayItemsParent{
@SerializedName("status")
STATUS,
@SerializedName("update")
UPDATE
UPDATE,
@SerializedName("admin.sign_up")
SIGN_UP,
@SerializedName("admin.report")
REPORT
}
@Parcel
public static class Report {
public String id;
public String comment;
public Account targetAccount;
}
}

View File

@@ -47,7 +47,11 @@ public class PushNotification extends BaseModel{
@SerializedName("status")
STATUS(R.string.sk_notification_type_status),
@SerializedName("update")
UPDATE(R.string.sk_notification_type_update);
UPDATE(R.string.sk_notification_type_update),
@SerializedName("admin.sign_up")
SIGN_UP(R.string.sk_sign_ups),
@SerializedName("admin.report")
REPORT(R.string.sk_new_reports);
@StringRes
public final int localizedName;

View File

@@ -47,6 +47,14 @@ public class PushSubscription extends BaseModel implements Cloneable{
public boolean status;
public boolean update;
// set to true here because i didn't add any items for those to the settings
// (so i don't have to determine whether the user is an admin to show the items or not, and
// admins can still disable those through the android notifications settings)
@SerializedName("admin.sign_up")
public boolean adminSignUp = true;
@SerializedName("admin.report")
public boolean adminReport = true;
public static Alerts ofAll(){
Alerts alerts=new Alerts();
alerts.follow=alerts.favourite=alerts.reblog=alerts.mention=alerts.poll=alerts.status=alerts.update=true;
@@ -63,6 +71,8 @@ public class PushSubscription extends BaseModel implements Cloneable{
", poll="+poll+
", status="+status+
", update="+update+
", adminSignUp="+adminSignUp+
", adminReport="+adminReport+
'}';
}

View File

@@ -146,4 +146,18 @@ public class Status extends BaseModel implements DisplayItemsParent{
strippedText=HtmlParser.strip(content);
return strippedText;
}
public static Status ofFake(String id, String text, Instant createdAt) {
Status s = new Status();
s.id = id;
s.mediaAttachments = List.of();
s.createdAt = createdAt;
s.content = s.text = text;
s.spoilerText = "";
s.visibility = StatusPrivacy.PUBLIC;
s.mentions = List.of();
s.tags = List.of();
s.emojis = List.of();
return s;
}
}