Implement new Multiselect UX and groundwork for Multiforward.

This commit is contained in:
Alex Hart
2021-08-11 13:18:38 -03:00
committed by Cody Henthorne
parent 655e43a079
commit 28abc1e4ff
19 changed files with 625 additions and 79 deletions

View File

@@ -82,6 +82,7 @@ public final class FeatureFlags {
private static final String RETRY_RECEIPTS = "android.retryReceipts";
private static final String SUGGEST_SMS_BLACKLIST = "android.suggestSmsBlacklist";
private static final String ANNOUNCEMENT_GROUPS = "android.announcementGroups";
private static final String FORWARD_MULTIPLE_MESSAGES = "android.forward.multiple.messages";
/**
* We will only store remote values for flags in this set. If you want a flag to be controllable
@@ -122,7 +123,8 @@ public final class FeatureFlags {
@VisibleForTesting
static final Set<String> NOT_REMOTE_CAPABLE = SetUtil.newHashSet(
PHONE_NUMBER_PRIVACY_VERSION
PHONE_NUMBER_PRIVACY_VERSION,
FORWARD_MULTIPLE_MESSAGES
);
/**
@@ -383,6 +385,11 @@ public final class FeatureFlags {
return getString(SUGGEST_SMS_BLACKLIST, "");
}
/** Whether the user is able to forward multiple messages at once */
public static boolean forwardMultipleMessages() {
return getBoolean(FORWARD_MULTIPLE_MESSAGES, false);
}
/** Only for rendering debug info. */
public static synchronized @NonNull Map<String, Object> getMemoryValues() {
return new TreeMap<>(REMOTE_VALUES);

View File

@@ -140,7 +140,7 @@ public class StickyHeaderDecoration extends RecyclerView.ItemDecoration {
if (adapterPos != RecyclerView.NO_POSITION && ((layoutPos == start && sticky) || hasHeader(parent, adapter, adapterPos))) {
View header = getHeader(parent, adapter, adapterPos).itemView;
c.save();
final int left = child.getLeft();
final int left = parent.getLeft();
final int top = getHeaderTop(parent, child, header, adapterPos, layoutPos);
c.translate(left, top);
header.draw(c);