That fuck shit the fascists are using
1package org.tm.archive.contacts;
2
3import androidx.annotation.NonNull;
4
5public final class ContactSelectionDisplayMode {
6 public static final int FLAG_PUSH = 1;
7 public static final int FLAG_SMS = 1 << 1;
8 public static final int FLAG_ACTIVE_GROUPS = 1 << 2;
9 public static final int FLAG_INACTIVE_GROUPS = 1 << 3;
10 public static final int FLAG_SELF = 1 << 4;
11 public static final int FLAG_BLOCK = 1 << 5;
12 public static final int FLAG_HIDE_GROUPS_V1 = 1 << 5;
13 public static final int FLAG_HIDE_NEW = 1 << 6;
14 public static final int FLAG_HIDE_RECENT_HEADER = 1 << 7;
15 public static final int FLAG_GROUPS_AFTER_CONTACTS = 1 << 8;
16
17 public static final int FLAG_GROUP_MEMBERS = 1 << 9;
18 public static final int FLAG_ALL = FLAG_PUSH | FLAG_SMS | FLAG_ACTIVE_GROUPS | FLAG_INACTIVE_GROUPS | FLAG_SELF;
19
20 public static Builder all() {
21 return new Builder(FLAG_ALL);
22 }
23
24 public static Builder none() {
25 return new Builder(0);
26 }
27
28 public static class Builder {
29 int displayMode = 0;
30
31 public Builder(int displayMode) {
32 this.displayMode = displayMode;
33 }
34
35 public @NonNull Builder withPush() {
36 displayMode = setFlag(displayMode, FLAG_PUSH);
37 return this;
38 }
39
40 public @NonNull Builder withActiveGroups() {
41 displayMode = setFlag(displayMode, FLAG_ACTIVE_GROUPS);
42 return this;
43 }
44
45 public @NonNull Builder withGroupMembers() {
46 displayMode = setFlag(displayMode, FLAG_GROUP_MEMBERS);
47 return this;
48 }
49
50 public int build() {
51 return displayMode;
52 }
53
54 private static int setFlag(int displayMode, int flag) {
55 return displayMode | flag;
56 }
57
58 private static int clearFlag(int displayMode, int flag) {
59 return displayMode & ~flag;
60 }
61 }
62}