1 package org
.asamk
.signal
.manager
.configuration
;
3 public class ConfigurationStore
{
5 private final Saver saver
;
7 private Boolean readReceipts
;
8 private Boolean unidentifiedDeliveryIndicators
;
9 private Boolean typingIndicators
;
10 private Boolean linkPreviews
;
12 public ConfigurationStore(final Saver saver
) {
16 public static ConfigurationStore
fromStorage(Storage storage
, Saver saver
) {
17 final var store
= new ConfigurationStore(saver
);
18 store
.readReceipts
= storage
.readReceipts
;
19 store
.unidentifiedDeliveryIndicators
= storage
.unidentifiedDeliveryIndicators
;
20 store
.typingIndicators
= storage
.typingIndicators
;
21 store
.linkPreviews
= storage
.linkPreviews
;
25 public Boolean
getReadReceipts() {
29 public void setReadReceipts(final boolean readReceipts
) {
30 this.readReceipts
= readReceipts
;
31 saver
.save(toStorage());
34 public Boolean
getUnidentifiedDeliveryIndicators() {
35 return unidentifiedDeliveryIndicators
;
38 public void setUnidentifiedDeliveryIndicators(final boolean unidentifiedDeliveryIndicators
) {
39 this.unidentifiedDeliveryIndicators
= unidentifiedDeliveryIndicators
;
40 saver
.save(toStorage());
43 public Boolean
getTypingIndicators() {
44 return typingIndicators
;
47 public void setTypingIndicators(final boolean typingIndicators
) {
48 this.typingIndicators
= typingIndicators
;
49 saver
.save(toStorage());
52 public Boolean
getLinkPreviews() {
56 public void setLinkPreviews(final boolean linkPreviews
) {
57 this.linkPreviews
= linkPreviews
;
58 saver
.save(toStorage());
61 private Storage
toStorage() {
62 return new Storage(readReceipts
, unidentifiedDeliveryIndicators
, typingIndicators
, linkPreviews
);
65 public static final class Storage
{
67 public Boolean readReceipts
;
68 public Boolean unidentifiedDeliveryIndicators
;
69 public Boolean typingIndicators
;
70 public Boolean linkPreviews
;
72 // For deserialization
77 final Boolean readReceipts
,
78 final Boolean unidentifiedDeliveryIndicators
,
79 final Boolean typingIndicators
,
80 final Boolean linkPreviews
82 this.readReceipts
= readReceipts
;
83 this.unidentifiedDeliveryIndicators
= unidentifiedDeliveryIndicators
;
84 this.typingIndicators
= typingIndicators
;
85 this.linkPreviews
= linkPreviews
;
89 public interface Saver
{
91 void save(Storage storage
);