Revert "Add unread mention badging to conversation list."

This reverts commit e876f71a27.
devel
Evan Perry Grove 2023-01-31 15:56:20 -06:00
rodzic a7ae6e62a3
commit 842130a60e
15 zmienionych plików z 127 dodań i 194 usunięć

Wyświetl plik

@ -36,7 +36,7 @@ public final class ConversationScrollToView extends FrameLayout {
unreadCount = findViewById(R.id.conversation_scroll_to_count);
scrollButton = findViewById(R.id.conversation_scroll_to_button);
if (attrs != null && !isInEditMode()) {
if (attrs != null) {
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.ConversationScrollToView);
int srcId = array.getResourceId(R.styleable.ConversationScrollToView_cstv_scroll_button_src, 0);

Wyświetl plik

@ -18,7 +18,7 @@ open class SimpleEmojiTextView @JvmOverloads constructor(
private val sizeChangeDebouncer: ThrottledDebouncer = ThrottledDebouncer(200)
init {
isEmojiCompatEnabled = isInEditMode || SignalStore.settings().isPreferSystemEmoji
isEmojiCompatEnabled = SignalStore.settings().isPreferSystemEmoji
}
override fun setText(text: CharSequence?, type: BufferType?) {

Wyświetl plik

@ -357,9 +357,9 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
giphyMp4ProjectionRecycler = initializeGiphyMp4();
this.groupViewModel = new ViewModelProvider(getParentFragment(), (ViewModelProvider.Factory) new ConversationGroupViewModel.Factory()).get(ConversationGroupViewModel.class);
this.groupViewModel = new ViewModelProvider(getParentFragment(), new ConversationGroupViewModel.Factory()).get(ConversationGroupViewModel.class);
this.messageCountsViewModel = new ViewModelProvider(getParentFragment()).get(MessageCountsViewModel.class);
this.conversationViewModel = new ViewModelProvider(getParentFragment(), (ViewModelProvider.Factory) new ConversationViewModel.Factory()).get(ConversationViewModel.class);
this.conversationViewModel = new ViewModelProvider(getParentFragment(), new ConversationViewModel.Factory()).get(ConversationViewModel.class);
disposables.add(conversationViewModel.getChatColors().subscribe(chatColors -> {
recyclerViewColorizer.setChatColors(chatColors);

Wyświetl plik

@ -124,7 +124,7 @@ public class ConversationListArchiveFragment extends ConversationListFragment im
@SuppressLint("StaticFieldLeak")
@Override
protected void onItemSwiped(long threadId, int unreadCount, int unreadSelfMentionsCount) {
protected void onItemSwiped(long threadId, int unreadCount) {
archiveDecoration.onArchiveStarted();
itemAnimator.enable();

Wyświetl plik

@ -40,6 +40,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@ -75,7 +76,6 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import org.signal.core.util.DimensionUnit;
import org.signal.core.util.Stopwatch;
import org.signal.core.util.concurrent.SignalExecutors;
import org.signal.core.util.concurrent.SimpleTask;
import org.signal.core.util.logging.Log;
@ -156,6 +156,7 @@ import org.thoughtcrime.securesms.util.SignalLocalMetrics;
import org.thoughtcrime.securesms.util.SignalProxyUtil;
import org.thoughtcrime.securesms.util.SnapToTopDataObserver;
import org.thoughtcrime.securesms.util.StickyHeaderDecoration;
import org.signal.core.util.Stopwatch;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.Util;
import org.thoughtcrime.securesms.util.ViewUtil;
@ -1393,7 +1394,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode
}
@SuppressLint("StaticFieldLeak")
protected void onItemSwiped(long threadId, int unreadCount, int unreadSelfMentionsCount) {
protected void onItemSwiped(long threadId, int unreadCount) {
archiveDecoration.onArchiveStarted();
itemAnimator.enable();
@ -1433,7 +1434,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode
threadDatabase.restorePins(pinnedThreadIds);
if (unreadCount > 0) {
threadDatabase.incrementUnread(threadId, unreadCount, unreadSelfMentionsCount);
threadDatabase.incrementUnread(threadId, unreadCount);
ApplicationDependencies.getMessageNotifier().updateNotification(context);
}
@ -1557,9 +1558,10 @@ public class ConversationListFragment extends MainFragment implements ActionMode
}
private void onTrueSwipe(RecyclerView.ViewHolder viewHolder) {
ThreadRecord thread = ((ConversationListItem) viewHolder.itemView).getThread();
final long threadId = ((ConversationListItem) viewHolder.itemView).getThreadId();
final int unreadCount = ((ConversationListItem) viewHolder.itemView).getUnreadCount();
onItemSwiped(thread.getThreadId(), thread.getUnreadCount(), thread.getUnreadSelfMentionsCount());
onItemSwiped(threadId, unreadCount);
}
@Override

Wyświetl plik

@ -117,7 +117,6 @@ public final class ConversationListItem extends ConstraintLayout implements Bind
private View checkContainer;
private View uncheckedView;
private View checkedView;
private View unreadMentions;
private int thumbSize;
private GlideLiveDataTarget thumbTarget;
@ -150,7 +149,6 @@ public final class ConversationListItem extends ConstraintLayout implements Bind
this.checkContainer = findViewById(R.id.conversation_list_item_check_container);
this.uncheckedView = findViewById(R.id.conversation_list_item_unchecked);
this.checkedView = findViewById(R.id.conversation_list_item_checked);
this.unreadMentions = findViewById(R.id.conversation_list_item_unread_mentions_indicator);
this.thumbSize = (int) DimensionUnit.SP.toPixels(16f);
this.thumbTarget = new GlideLiveDataTarget(thumbSize, thumbSize);
@ -279,7 +277,6 @@ public final class ConversationListItem extends ConstraintLayout implements Bind
dateView.setText("");
archivedView.setVisibility(GONE);
unreadIndicator.setVisibility(GONE);
unreadMentions.setVisibility(GONE);
deliveryStatusIndicator.setNone();
alertView.setNone();
@ -307,7 +304,6 @@ public final class ConversationListItem extends ConstraintLayout implements Bind
dateView.setText(DateUtils.getBriefRelativeTimeSpanString(getContext(), locale, messageResult.getReceivedTimestampMs()));
archivedView.setVisibility(GONE);
unreadIndicator.setVisibility(GONE);
unreadMentions.setVisibility(GONE);
deliveryStatusIndicator.setNone();
alertView.setNone();
@ -468,19 +464,11 @@ public final class ConversationListItem extends ConstraintLayout implements Bind
private void setUnreadIndicator(ThreadRecord thread) {
if (thread.isRead()) {
unreadIndicator.setVisibility(View.GONE);
unreadMentions.setVisibility(View.GONE);
return;
}
if (thread.getUnreadSelfMentionsCount() > 0) {
unreadMentions.setVisibility(View.VISIBLE);
unreadIndicator.setVisibility(thread.getUnreadCount() == 1 ? View.GONE : View.VISIBLE);
} else {
unreadMentions.setVisibility(View.GONE);
unreadIndicator.setVisibility(View.VISIBLE);
}
unreadIndicator.setText(unreadCount > 0 ? String.valueOf(unreadCount) : " ");
unreadIndicator.setVisibility(View.VISIBLE);
}
private void onRecipientChanged(@NonNull Recipient recipient) {

Wyświetl plik

@ -1988,8 +1988,7 @@ public class MmsDatabase extends MessageDatabase {
boolean isNotStoryGroupReply = retrieved.getParentStoryId() == null || !retrieved.getParentStoryId().isGroupReply();
if (!Types.isExpirationTimerUpdate(mailbox) && !retrieved.getStoryType().isStory() && isNotStoryGroupReply) {
boolean incrementUnreadMentions = !retrieved.getMentions().isEmpty() && retrieved.getMentions().stream().anyMatch(m -> m.getRecipientId().equals(Recipient.self().getId()));
SignalDatabase.threads().incrementUnread(threadId, 1, incrementUnreadMentions ? 1 : 0);
SignalDatabase.threads().incrementUnread(threadId, 1);
SignalDatabase.threads().update(threadId, true);
}
@ -2099,7 +2098,7 @@ public class MmsDatabase extends MessageDatabase {
notifyConversationListeners(threadId);
if (org.thoughtcrime.securesms.util.Util.isDefaultSmsProvider(context)) {
SignalDatabase.threads().incrementUnread(threadId, 1, 0);
SignalDatabase.threads().incrementUnread(threadId, 1);
}
SignalDatabase.threads().update(threadId, true);

Wyświetl plik

@ -741,7 +741,7 @@ public class SmsDatabase extends MessageDatabase {
db.insert(TABLE_NAME, null, values);
SignalDatabase.threads().incrementUnread(threadId, 1, 0);
SignalDatabase.threads().incrementUnread(threadId, 1);
}
SignalDatabase.threads().update(threadId, true);
@ -818,7 +818,7 @@ public class SmsDatabase extends MessageDatabase {
db.insert(TABLE_NAME, null, values);
SignalDatabase.threads().incrementUnread(threadId, 1, 0);
SignalDatabase.threads().incrementUnread(threadId, 1);
}
SignalDatabase.threads().update(threadId, true);
@ -890,7 +890,7 @@ public class SmsDatabase extends MessageDatabase {
long messageId = db.insert(TABLE_NAME, null, values);
if (unread) {
SignalDatabase.threads().incrementUnread(threadId, 1, 0);
SignalDatabase.threads().incrementUnread(threadId, 1);
}
SignalDatabase.threads().update(threadId, true);
@ -1278,7 +1278,7 @@ public class SmsDatabase extends MessageDatabase {
long messageId = db.insert(TABLE_NAME, null, values);
if (unread) {
SignalDatabase.threads().incrementUnread(threadId, 1, 0);
SignalDatabase.threads().incrementUnread(threadId, 1);
}
if (!silent) {
@ -1324,7 +1324,7 @@ public class SmsDatabase extends MessageDatabase {
long messageId = db.insert(TABLE_NAME, null, values);
SignalDatabase.threads().incrementUnread(threadId, 1, 0);
SignalDatabase.threads().incrementUnread(threadId, 1);
SignalDatabase.threads().update(threadId, true);
notifyConversationListeners(threadId);
@ -1348,7 +1348,7 @@ public class SmsDatabase extends MessageDatabase {
databaseHelper.getSignalWritableDatabase().insert(TABLE_NAME, null, values);
SignalDatabase.threads().incrementUnread(threadId, 1, 0);
SignalDatabase.threads().incrementUnread(threadId, 1);
SignalDatabase.threads().update(threadId, true);
notifyConversationListeners(threadId);

Wyświetl plik

@ -94,56 +94,54 @@ public class ThreadDatabase extends Database {
public static final long NO_TRIM_BEFORE_DATE_SET = 0;
public static final int NO_TRIM_MESSAGE_COUNT_SET = Integer.MAX_VALUE;
public static final String TABLE_NAME = "thread";
public static final String ID = "_id";
public static final String DATE = "date";
public static final String MEANINGFUL_MESSAGES = "message_count";
public static final String RECIPIENT_ID = "thread_recipient_id";
public static final String SNIPPET = "snippet";
private static final String SNIPPET_CHARSET = "snippet_charset";
public static final String READ = "read";
public static final String UNREAD_COUNT = "unread_count";
public static final String TYPE = "type";
private static final String ERROR = "error";
public static final String SNIPPET_TYPE = "snippet_type";
public static final String SNIPPET_URI = "snippet_uri";
public static final String SNIPPET_CONTENT_TYPE = "snippet_content_type";
public static final String SNIPPET_EXTRAS = "snippet_extras";
public static final String ARCHIVED = "archived";
public static final String STATUS = "status";
public static final String DELIVERY_RECEIPT_COUNT = "delivery_receipt_count";
public static final String READ_RECEIPT_COUNT = "read_receipt_count";
public static final String EXPIRES_IN = "expires_in";
public static final String LAST_SEEN = "last_seen";
public static final String HAS_SENT = "has_sent";
private static final String LAST_SCROLLED = "last_scrolled";
static final String PINNED = "pinned";
private static final String UNREAD_SELF_MENTION_COUNT = "unread_self_mention_count";
public static final String TABLE_NAME = "thread";
public static final String ID = "_id";
public static final String DATE = "date";
public static final String MEANINGFUL_MESSAGES = "message_count";
public static final String RECIPIENT_ID = "thread_recipient_id";
public static final String SNIPPET = "snippet";
private static final String SNIPPET_CHARSET = "snippet_charset";
public static final String READ = "read";
public static final String UNREAD_COUNT = "unread_count";
public static final String TYPE = "type";
private static final String ERROR = "error";
public static final String SNIPPET_TYPE = "snippet_type";
public static final String SNIPPET_URI = "snippet_uri";
public static final String SNIPPET_CONTENT_TYPE = "snippet_content_type";
public static final String SNIPPET_EXTRAS = "snippet_extras";
public static final String ARCHIVED = "archived";
public static final String STATUS = "status";
public static final String DELIVERY_RECEIPT_COUNT = "delivery_receipt_count";
public static final String READ_RECEIPT_COUNT = "read_receipt_count";
public static final String EXPIRES_IN = "expires_in";
public static final String LAST_SEEN = "last_seen";
public static final String HAS_SENT = "has_sent";
private static final String LAST_SCROLLED = "last_scrolled";
static final String PINNED = "pinned";
public static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
DATE + " INTEGER DEFAULT 0, " +
MEANINGFUL_MESSAGES + " INTEGER DEFAULT 0, " +
RECIPIENT_ID + " INTEGER, " +
SNIPPET + " TEXT, " +
SNIPPET_CHARSET + " INTEGER DEFAULT 0, " +
READ + " INTEGER DEFAULT " + ReadStatus.READ.serialize() + ", " +
TYPE + " INTEGER DEFAULT 0, " +
ERROR + " INTEGER DEFAULT 0, " +
SNIPPET_TYPE + " INTEGER DEFAULT 0, " +
SNIPPET_URI + " TEXT DEFAULT NULL, " +
SNIPPET_CONTENT_TYPE + " TEXT DEFAULT NULL, " +
SNIPPET_EXTRAS + " TEXT DEFAULT NULL, " +
ARCHIVED + " INTEGER DEFAULT 0, " +
STATUS + " INTEGER DEFAULT 0, " +
DELIVERY_RECEIPT_COUNT + " INTEGER DEFAULT 0, " +
EXPIRES_IN + " INTEGER DEFAULT 0, " +
LAST_SEEN + " INTEGER DEFAULT 0, " +
HAS_SENT + " INTEGER DEFAULT 0, " +
READ_RECEIPT_COUNT + " INTEGER DEFAULT 0, " +
UNREAD_COUNT + " INTEGER DEFAULT 0, " +
LAST_SCROLLED + " INTEGER DEFAULT 0, " +
PINNED + " INTEGER DEFAULT 0, " +
UNREAD_SELF_MENTION_COUNT + " INTEGER DEFAULT 0);";
public static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
DATE + " INTEGER DEFAULT 0, " +
MEANINGFUL_MESSAGES + " INTEGER DEFAULT 0, " +
RECIPIENT_ID + " INTEGER, " +
SNIPPET + " TEXT, " +
SNIPPET_CHARSET + " INTEGER DEFAULT 0, " +
READ + " INTEGER DEFAULT " + ReadStatus.READ.serialize() + ", " +
TYPE + " INTEGER DEFAULT 0, " +
ERROR + " INTEGER DEFAULT 0, " +
SNIPPET_TYPE + " INTEGER DEFAULT 0, " +
SNIPPET_URI + " TEXT DEFAULT NULL, " +
SNIPPET_CONTENT_TYPE + " TEXT DEFAULT NULL, " +
SNIPPET_EXTRAS + " TEXT DEFAULT NULL, " +
ARCHIVED + " INTEGER DEFAULT 0, " +
STATUS + " INTEGER DEFAULT 0, " +
DELIVERY_RECEIPT_COUNT + " INTEGER DEFAULT 0, " +
EXPIRES_IN + " INTEGER DEFAULT 0, " +
LAST_SEEN + " INTEGER DEFAULT 0, " +
HAS_SENT + " INTEGER DEFAULT 0, " +
READ_RECEIPT_COUNT + " INTEGER DEFAULT 0, " +
UNREAD_COUNT + " INTEGER DEFAULT 0, " +
LAST_SCROLLED + " INTEGER DEFAULT 0, " +
PINNED + " INTEGER DEFAULT 0);";
public static final String[] CREATE_INDEXS = {
"CREATE INDEX IF NOT EXISTS thread_recipient_id_index ON " + TABLE_NAME + " (" + RECIPIENT_ID + ");",
@ -153,8 +151,7 @@ public class ThreadDatabase extends Database {
private static final String[] THREAD_PROJECTION = {
ID, DATE, MEANINGFUL_MESSAGES, RECIPIENT_ID, SNIPPET, SNIPPET_CHARSET, READ, UNREAD_COUNT, TYPE, ERROR, SNIPPET_TYPE,
SNIPPET_URI, SNIPPET_CONTENT_TYPE, SNIPPET_EXTRAS, ARCHIVED, STATUS, DELIVERY_RECEIPT_COUNT, EXPIRES_IN, LAST_SEEN,
READ_RECEIPT_COUNT, LAST_SCROLLED, PINNED, UNREAD_SELF_MENTION_COUNT
SNIPPET_URI, SNIPPET_CONTENT_TYPE, SNIPPET_EXTRAS, ARCHIVED, STATUS, DELIVERY_RECEIPT_COUNT, EXPIRES_IN, LAST_SEEN, READ_RECEIPT_COUNT, LAST_SCROLLED, PINNED
};
private static final List<String> TYPED_THREAD_PROJECTION = Stream.of(THREAD_PROJECTION)
@ -374,7 +371,6 @@ public class ThreadDatabase extends Database {
ContentValues contentValues = new ContentValues(1);
contentValues.put(READ, ReadStatus.READ.serialize());
contentValues.put(UNREAD_COUNT, 0);
contentValues.put(UNREAD_SELF_MENTION_COUNT, 0);
db.update(TABLE_NAME, contentValues, null, null);
@ -468,10 +464,8 @@ public class ThreadDatabase extends Database {
SignalDatabase.mms().setReactionsSeen(threadId, sinceTimestamp);
int unreadCount = SignalDatabase.mmsSms().getUnreadCount(threadId);
contentValues.put(UNREAD_COUNT, unreadCount);
int unreadMentionsCount = SignalDatabase.mms().getUnreadMentionCount(threadId);
contentValues.put(UNREAD_SELF_MENTION_COUNT, unreadMentionsCount);
contentValues.put(UNREAD_COUNT, unreadCount);
db.update(TABLE_NAME, contentValues, ID_WHERE, SqlUtil.buildArgs(threadId));
@ -555,15 +549,14 @@ public class ThreadDatabase extends Database {
}
}
public void incrementUnread(long threadId, int unreadAmount, int unreadSelfMentionAmount) {
public void incrementUnread(long threadId, int amount) {
SQLiteDatabase db = databaseHelper.getSignalWritableDatabase();
db.execSQL("UPDATE " + TABLE_NAME + " SET " +
READ + " = " + ReadStatus.UNREAD.serialize() + ", " +
UNREAD_COUNT + " = " + UNREAD_COUNT + " + ?, " +
UNREAD_SELF_MENTION_COUNT + " = " + UNREAD_SELF_MENTION_COUNT + " + ?, " +
LAST_SCROLLED + " = ? " +
"WHERE " + ID + " = ?",
SqlUtil.buildArgs(unreadAmount, unreadSelfMentionAmount, 0, threadId));
SqlUtil.buildArgs(amount, 0, threadId));
}
public void setDistributionType(long threadId, int distributionType) {
@ -1230,14 +1223,12 @@ public class ThreadDatabase extends Database {
}
void updateReadState(long threadId) {
ThreadRecord previous = getThreadRecord(threadId);
int unreadCount = SignalDatabase.mmsSms().getUnreadCount(threadId);
int unreadMentionsCount = SignalDatabase.mms().getUnreadMentionCount(threadId);
ThreadRecord previous = getThreadRecord(threadId);
int unreadCount = SignalDatabase.mmsSms().getUnreadCount(threadId);
ContentValues contentValues = new ContentValues();
contentValues.put(READ, unreadCount == 0 ? ReadStatus.READ.serialize() : ReadStatus.UNREAD.serialize());
contentValues.put(UNREAD_COUNT, unreadCount);
contentValues.put(UNREAD_SELF_MENTION_COUNT, unreadMentionsCount);
databaseHelper.getSignalWritableDatabase().update(TABLE_NAME, contentValues, ID_WHERE, SqlUtil.buildArgs(threadId));
@ -1325,12 +1316,10 @@ public class ThreadDatabase extends Database {
values.put(READ, ReadStatus.FORCED_UNREAD.serialize());
} else {
if (threadId != null) {
int unreadCount = SignalDatabase.mmsSms().getUnreadCount(threadId);
int unreadMentionsCount = SignalDatabase.mms().getUnreadMentionCount(threadId);
int unreadCount = SignalDatabase.mmsSms().getUnreadCount(threadId);
values.put(READ, unreadCount == 0 ? ReadStatus.READ.serialize() : ReadStatus.UNREAD.serialize());
values.put(UNREAD_COUNT, unreadCount);
values.put(UNREAD_SELF_MENTION_COUNT, unreadMentionsCount);
}
}
@ -1734,7 +1723,6 @@ public class ThreadDatabase extends Database {
.setUnreadCount(cursor.getInt(cursor.getColumnIndexOrThrow(ThreadDatabase.UNREAD_COUNT)))
.setForcedUnread(cursor.getInt(cursor.getColumnIndexOrThrow(ThreadDatabase.READ)) == ReadStatus.FORCED_UNREAD.serialize())
.setPinned(CursorUtil.requireBoolean(cursor, ThreadDatabase.PINNED))
.setUnreadSelfMentionsCount(CursorUtil.requireInt(cursor, ThreadDatabase.UNREAD_SELF_MENTION_COUNT))
.setExtra(extra)
.build();
}

Wyświetl plik

@ -56,29 +56,27 @@ public final class ThreadRecord {
private final long expiresIn;
private final long lastSeen;
private final boolean isPinned;
private final int unreadSelfMentionsCount;
private ThreadRecord(@NonNull Builder builder) {
this.threadId = builder.threadId;
this.body = builder.body;
this.recipient = builder.recipient;
this.date = builder.date;
this.type = builder.type;
this.deliveryStatus = builder.deliveryStatus;
this.deliveryReceiptCount = builder.deliveryReceiptCount;
this.readReceiptCount = builder.readReceiptCount;
this.snippetUri = builder.snippetUri;
this.contentType = builder.contentType;
this.extra = builder.extra;
this.meaningfulMessages = builder.meaningfulMessages;
this.unreadCount = builder.unreadCount;
this.forcedUnread = builder.forcedUnread;
this.distributionType = builder.distributionType;
this.archived = builder.archived;
this.expiresIn = builder.expiresIn;
this.lastSeen = builder.lastSeen;
this.isPinned = builder.isPinned;
this.unreadSelfMentionsCount = builder.unreadSelfMentionsCount;
this.threadId = builder.threadId;
this.body = builder.body;
this.recipient = builder.recipient;
this.date = builder.date;
this.type = builder.type;
this.deliveryStatus = builder.deliveryStatus;
this.deliveryReceiptCount = builder.deliveryReceiptCount;
this.readReceiptCount = builder.readReceiptCount;
this.snippetUri = builder.snippetUri;
this.contentType = builder.contentType;
this.extra = builder.extra;
this.meaningfulMessages = builder.meaningfulMessages;
this.unreadCount = builder.unreadCount;
this.forcedUnread = builder.forcedUnread;
this.distributionType = builder.distributionType;
this.archived = builder.archived;
this.expiresIn = builder.expiresIn;
this.lastSeen = builder.lastSeen;
this.isPinned = builder.isPinned;
}
public long getThreadId() {
@ -105,6 +103,10 @@ public final class ThreadRecord {
return contentType;
}
public boolean hasMeaningfulMessages() {
return meaningfulMessages;
}
public int getUnreadCount() {
return unreadCount;
}
@ -205,6 +207,10 @@ public final class ThreadRecord {
}
}
public boolean isGv2Invite() {
return extra != null && extra.isGv2Invite();
}
public boolean isMessageRequestAccepted() {
if (extra != null) return extra.isMessageRequestAccepted();
else return true;
@ -214,34 +220,29 @@ public final class ThreadRecord {
return isPinned;
}
public int getUnreadSelfMentionsCount() {
return unreadSelfMentionsCount;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ThreadRecord that = (ThreadRecord) o;
return threadId == that.threadId &&
type == that.type &&
date == that.date &&
deliveryStatus == that.deliveryStatus &&
return threadId == that.threadId &&
type == that.type &&
date == that.date &&
deliveryStatus == that.deliveryStatus &&
deliveryReceiptCount == that.deliveryReceiptCount &&
readReceiptCount == that.readReceiptCount &&
meaningfulMessages == that.meaningfulMessages &&
unreadCount == that.unreadCount &&
forcedUnread == that.forcedUnread &&
distributionType == that.distributionType &&
archived == that.archived &&
expiresIn == that.expiresIn &&
lastSeen == that.lastSeen &&
isPinned == that.isPinned &&
body.equals(that.body) &&
recipient.equals(that.recipient) &&
unreadSelfMentionsCount == that.unreadSelfMentionsCount &&
Objects.equals(snippetUri, that.snippetUri) &&
Objects.equals(contentType, that.contentType) &&
readReceiptCount == that.readReceiptCount &&
meaningfulMessages == that.meaningfulMessages &&
unreadCount == that.unreadCount &&
forcedUnread == that.forcedUnread &&
distributionType == that.distributionType &&
archived == that.archived &&
expiresIn == that.expiresIn &&
lastSeen == that.lastSeen &&
isPinned == that.isPinned &&
body.equals(that.body) &&
recipient.equals(that.recipient) &&
Objects.equals(snippetUri, that.snippetUri) &&
Objects.equals(contentType, that.contentType) &&
Objects.equals(extra, that.extra);
}
@ -265,8 +266,7 @@ public final class ThreadRecord {
archived,
expiresIn,
lastSeen,
isPinned,
unreadSelfMentionsCount);
isPinned);
}
public static class Builder {
@ -289,7 +289,6 @@ public final class ThreadRecord {
private long expiresIn;
private long lastSeen;
private boolean isPinned;
private int unreadSelfMentionsCount;
public Builder(long threadId) {
this.threadId = threadId;
@ -390,11 +389,6 @@ public final class ThreadRecord {
return this;
}
public Builder setUnreadSelfMentionsCount(int unreadSelfMentionsCount) {
this.unreadSelfMentionsCount = unreadSelfMentionsCount;
return this;
}
public ThreadRecord build() {
if (distributionType == ThreadDatabase.DistributionTypes.CONVERSATION) {
Preconditions.checkArgument(threadId > 0);

Wyświetl plik

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="12dp"
android:height="12dp"
android:viewportWidth="12"
android:viewportHeight="12">
<path
android:fillColor="#FF000000"
android:pathData="M11,5.44c0,1.96 -0.87,3.27 -2.31,3.27 -0.7,0 -1.3,-0.42 -1.38,-1.03h-0.05c-0.26,0.62 -0.84,0.98 -1.56,0.98 -1.28,0 -2.14,-1.05 -2.14,-2.61s0.88,-2.54 2.14,-2.54c0.66,0 1.25,0.34 1.49,0.87h0.05v-0.75h0.93v3.6c0,0.4 0.22,0.68 0.69,0.68 0.73,0 1.27,-0.9 1.27,-2.49 0,-2.23 -1.69,-3.73 -4.14,-3.73S1.88,3.51 1.88,6.08c0,2.78 1.85,4.31 4.32,4.31 0.82,0 1.66,-0.12 2.06,-0.29v0.77c-0.54,0.19 -1.28,0.3 -2.07,0.3 -3,0 -5.18,-1.82 -5.18,-5.13C1.01,2.98 3.1,0.92 6.08,0.92s4.92,1.81 4.92,4.52ZM4.55,6.07c0,1.07 0.49,1.72 1.3,1.72s1.38,-0.67 1.38,-1.72 -0.53,-1.71 -1.37,-1.71 -1.31,0.64 -1.31,1.71Z"/>
</vector>

Wyświetl plik

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:fillColor="#FF000000"
android:pathData="M18.33,9.07c0,3.27 -1.45,5.45 -3.85,5.45 -1.17,0 -2.17,-0.7 -2.29,-1.72h-0.08c-0.44,1.03 -1.39,1.63 -2.6,1.63 -2.13,0 -3.56,-1.75 -3.56,-4.35s1.46,-4.23 3.56,-4.23c1.1,0 2.09,0.57 2.48,1.44h0.08v-1.25h1.55v6.01c0,0.67 0.37,1.14 1.16,1.14 1.22,0 2.12,-1.49 2.12,-4.14 0,-3.71 -2.82,-6.22 -6.9,-6.22S3.12,5.86 3.12,10.13c0,4.64 3.09,7.18 7.2,7.18 1.37,0 2.76,-0.19 3.43,-0.49v1.29c-0.9,0.32 -2.13,0.5 -3.45,0.5 -4.99,0 -8.63,-3.04 -8.63,-8.54C1.67,4.97 5.15,1.54 10.13,1.54s8.21,3.02 8.21,7.53ZM7.59,10.12c0,1.78 0.82,2.87 2.16,2.87s2.3,-1.12 2.3,-2.87 -0.89,-2.85 -2.28,-2.85 -2.18,1.06 -2.18,2.85Z"/>
</vector>

Wyświetl plik

@ -73,11 +73,10 @@
android:layout_marginEnd="10dp"
android:layout_marginBottom="12dp"
android:visibility="invisible"
app:cstv_scroll_button_src="@drawable/ic_at_20"
app:cstv_scroll_button_src="@drawable/ic_at_24"
app:layout_constraintBottom_toTopOf="@id/scroll_to_bottom"
app:layout_constraintEnd_toEndOf="parent"
app:layout_goneMarginBottom="20dp"
tools:visibility="visible" />
app:layout_goneMarginBottom="20dp" />
<org.thoughtcrime.securesms.components.ConversationScrollToView
android:id="@+id/scroll_to_bottom"
@ -88,8 +87,7 @@
android:visibility="invisible"
app:cstv_scroll_button_src="@drawable/ic_chevron_down_20"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:visibility="visible" />
app:layout_constraintEnd_toEndOf="parent" />
<org.thoughtcrime.securesms.components.menu.SignalBottomActionBar
android:id="@+id/conversation_bottom_action_bar"

Wyświetl plik

@ -137,7 +137,6 @@
android:layout_marginStart="12dp"
android:layout_marginTop="6dp"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/conversation_list_item_date">
@ -148,27 +147,12 @@
android:layout_gravity="center_vertical"
app:iconColor="@color/signal_colorOnSurfaceVariant" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/conversation_list_item_unread_mentions_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:background="@drawable/unread_count_background_new"
android:includeFontPadding="false"
android:minWidth="18dp"
android:minHeight="18dp"
android:padding="3dp"
android:visibility="gone"
app:srcCompat="@drawable/ic_at_12"
app:tint="@color/signal_colorOnPrimary"
tools:visibility="visible" />
<TextView
android:id="@+id/conversation_list_item_unread_indicator"
style="@style/Signal.Text.LabelMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginStart="12dp"
android:background="@drawable/unread_count_background_new"
android:includeFontPadding="false"
android:minWidth="18dp"

Wyświetl plik

@ -9,10 +9,9 @@
<ImageButton
android:id="@+id/conversation_scroll_to_button"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="bottom|center"
android:layout_marginTop="9dp"
android:layout_marginBottom="4dp"
android:background="@drawable/scroll_to_bottom_background_normal"
android:contentDescription="@string/conversation_fragment__scroll_to_the_bottom_content_description"
@ -25,13 +24,12 @@
android:id="@+id/conversation_scroll_to_count"
style="@style/Signal.Text.Caption"
android:layout_width="wrap_content"
android:layout_height="18dp"
android:layout_height="16dp"
android:layout_gravity="top|center"
android:layout_marginBottom="26dp"
android:background="@drawable/unread_count_background"
android:elevation="1dp"
android:gravity="center"
android:minWidth="18dp"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:textColor="@color/core_white"