That fuck shit the fascists are using
at master 62 lines 1.9 kB view raw
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}