Fix outdated client banner display

This commit is contained in:
charles 2022-12-21 17:47:00 +11:00
parent 2228bfc8f2
commit 18ff597811
4 changed files with 20 additions and 5 deletions

View File

@ -572,9 +572,9 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
private fun setUpOutdatedClientBanner() { private fun setUpOutdatedClientBanner() {
val recipient = viewModel.recipient ?: return val recipient = viewModel.recipient ?: return
if (viewModel.recipient?.disappearingState == DisappearingState.LEGACY && if (ExpirationConfiguration.isNewConfigEnabled && recipient.isContactRecipient &&
viewModel.expirationConfiguration?.isEnabled == true && recipient.disappearingState == DisappearingState.LEGACY &&
!ExpirationConfiguration.isNewConfigEnabled viewModel.expirationConfiguration?.isEnabled == true
) { ) {
binding?.outdatedBannerTextView?.text = binding?.outdatedBannerTextView?.text =
resources.getString(R.string.activity_conversation_outdated_client_banner_text, recipient.name) resources.getString(R.string.activity_conversation_outdated_client_banner_text, recipient.name)

View File

@ -70,7 +70,7 @@ public class RecipientDatabase extends Database {
PROFILE_KEY, SYSTEM_DISPLAY_NAME, SYSTEM_PHOTO_URI, SYSTEM_PHONE_LABEL, SYSTEM_CONTACT_URI, PROFILE_KEY, SYSTEM_DISPLAY_NAME, SYSTEM_PHOTO_URI, SYSTEM_PHONE_LABEL, SYSTEM_CONTACT_URI,
SIGNAL_PROFILE_NAME, SIGNAL_PROFILE_AVATAR, PROFILE_SHARING, NOTIFICATION_CHANNEL, SIGNAL_PROFILE_NAME, SIGNAL_PROFILE_AVATAR, PROFILE_SHARING, NOTIFICATION_CHANNEL,
UNIDENTIFIED_ACCESS_MODE, UNIDENTIFIED_ACCESS_MODE,
FORCE_SMS_SELECTION, NOTIFY_TYPE, FORCE_SMS_SELECTION, NOTIFY_TYPE, DISAPPEARING_STATE
}; };
static final List<String> TYPED_RECIPIENT_PROJECTION = Stream.of(RECIPIENT_PROJECTION) static final List<String> TYPED_RECIPIENT_PROJECTION = Stream.of(RECIPIENT_PROJECTION)
@ -182,6 +182,7 @@ public class RecipientDatabase extends Database {
boolean approvedMe = cursor.getInt(cursor.getColumnIndexOrThrow(APPROVED_ME)) == 1; boolean approvedMe = cursor.getInt(cursor.getColumnIndexOrThrow(APPROVED_ME)) == 1;
String messageRingtone = cursor.getString(cursor.getColumnIndexOrThrow(NOTIFICATION)); String messageRingtone = cursor.getString(cursor.getColumnIndexOrThrow(NOTIFICATION));
String callRingtone = cursor.getString(cursor.getColumnIndexOrThrow(CALL_RINGTONE)); String callRingtone = cursor.getString(cursor.getColumnIndexOrThrow(CALL_RINGTONE));
int disappearingState = cursor.getInt(cursor.getColumnIndexOrThrow(DISAPPEARING_STATE));
int messageVibrateState = cursor.getInt(cursor.getColumnIndexOrThrow(VIBRATE)); int messageVibrateState = cursor.getInt(cursor.getColumnIndexOrThrow(VIBRATE));
int callVibrateState = cursor.getInt(cursor.getColumnIndexOrThrow(CALL_VIBRATE)); int callVibrateState = cursor.getInt(cursor.getColumnIndexOrThrow(CALL_VIBRATE));
long muteUntil = cursor.getLong(cursor.getColumnIndexOrThrow(MUTE_UNTIL)); long muteUntil = cursor.getLong(cursor.getColumnIndexOrThrow(MUTE_UNTIL));
@ -223,6 +224,7 @@ public class RecipientDatabase extends Database {
return Optional.of(new RecipientSettings(blocked, approved, approvedMe, muteUntil, return Optional.of(new RecipientSettings(blocked, approved, approvedMe, muteUntil,
notifyType, notifyType,
Recipient.DisappearingState.fromId(disappearingState),
Recipient.VibrateState.fromId(messageVibrateState), Recipient.VibrateState.fromId(messageVibrateState),
Recipient.VibrateState.fromId(callVibrateState), Recipient.VibrateState.fromId(callVibrateState),
Util.uri(messageRingtone), Util.uri(callRingtone), Util.uri(messageRingtone), Util.uri(callRingtone),

View File

@ -86,7 +86,7 @@ public class Recipient implements RecipientModifiedListener {
private boolean blocked = false; private boolean blocked = false;
private boolean approved = false; private boolean approved = false;
private boolean approvedMe = false; private boolean approvedMe = false;
private DisappearingState disappearingState = DisappearingState.LEGACY; private DisappearingState disappearingState = null;
private VibrateState messageVibrate = VibrateState.DEFAULT; private VibrateState messageVibrate = VibrateState.DEFAULT;
private VibrateState callVibrate = VibrateState.DEFAULT; private VibrateState callVibrate = VibrateState.DEFAULT;
private int expireMessages = 0; private int expireMessages = 0;
@ -162,6 +162,7 @@ public class Recipient implements RecipientModifiedListener {
this.unidentifiedAccessMode = stale.unidentifiedAccessMode; this.unidentifiedAccessMode = stale.unidentifiedAccessMode;
this.forceSmsSelection = stale.forceSmsSelection; this.forceSmsSelection = stale.forceSmsSelection;
this.notifyType = stale.notifyType; this.notifyType = stale.notifyType;
this.disappearingState = stale.disappearingState;
this.participants.clear(); this.participants.clear();
this.participants.addAll(stale.participants); this.participants.addAll(stale.participants);
@ -192,6 +193,7 @@ public class Recipient implements RecipientModifiedListener {
this.unidentifiedAccessMode = details.get().unidentifiedAccessMode; this.unidentifiedAccessMode = details.get().unidentifiedAccessMode;
this.forceSmsSelection = details.get().forceSmsSelection; this.forceSmsSelection = details.get().forceSmsSelection;
this.notifyType = details.get().notifyType; this.notifyType = details.get().notifyType;
this.disappearingState = details.get().disappearingState;
this.participants.clear(); this.participants.clear();
this.participants.addAll(details.get().participants); this.participants.addAll(details.get().participants);
@ -228,6 +230,7 @@ public class Recipient implements RecipientModifiedListener {
Recipient.this.unidentifiedAccessMode = result.unidentifiedAccessMode; Recipient.this.unidentifiedAccessMode = result.unidentifiedAccessMode;
Recipient.this.forceSmsSelection = result.forceSmsSelection; Recipient.this.forceSmsSelection = result.forceSmsSelection;
Recipient.this.notifyType = result.notifyType; Recipient.this.notifyType = result.notifyType;
Recipient.this.disappearingState = result.disappearingState;
Recipient.this.participants.clear(); Recipient.this.participants.clear();
Recipient.this.participants.addAll(result.participants); Recipient.this.participants.addAll(result.participants);
@ -860,6 +863,7 @@ public class Recipient implements RecipientModifiedListener {
private final boolean approvedMe; private final boolean approvedMe;
private final long muteUntil; private final long muteUntil;
private final int notifyType; private final int notifyType;
private final DisappearingState disappearingState;
private final VibrateState messageVibrateState; private final VibrateState messageVibrateState;
private final VibrateState callVibrateState; private final VibrateState callVibrateState;
private final Uri messageRingtone; private final Uri messageRingtone;
@ -882,6 +886,7 @@ public class Recipient implements RecipientModifiedListener {
public RecipientSettings(boolean blocked, boolean approved, boolean approvedMe, long muteUntil, public RecipientSettings(boolean blocked, boolean approved, boolean approvedMe, long muteUntil,
int notifyType, int notifyType,
@NonNull DisappearingState disappearingState,
@NonNull VibrateState messageVibrateState, @NonNull VibrateState messageVibrateState,
@NonNull VibrateState callVibrateState, @NonNull VibrateState callVibrateState,
@Nullable Uri messageRingtone, @Nullable Uri messageRingtone,
@ -907,6 +912,7 @@ public class Recipient implements RecipientModifiedListener {
this.approvedMe = approvedMe; this.approvedMe = approvedMe;
this.muteUntil = muteUntil; this.muteUntil = muteUntil;
this.notifyType = notifyType; this.notifyType = notifyType;
this.disappearingState = disappearingState;
this.messageVibrateState = messageVibrateState; this.messageVibrateState = messageVibrateState;
this.callVibrateState = callVibrateState; this.callVibrateState = callVibrateState;
this.messageRingtone = messageRingtone; this.messageRingtone = messageRingtone;
@ -952,6 +958,10 @@ public class Recipient implements RecipientModifiedListener {
return notifyType; return notifyType;
} }
public @NonNull DisappearingState getDisappearingState() {
return disappearingState;
}
public @NonNull VibrateState getMessageVibrateState() { public @NonNull VibrateState getMessageVibrateState() {
return messageVibrateState; return messageVibrateState;
} }

View File

@ -31,6 +31,7 @@ import org.session.libsession.utilities.ListenableFutureTask;
import org.session.libsession.utilities.MaterialColor; import org.session.libsession.utilities.MaterialColor;
import org.session.libsession.utilities.TextSecurePreferences; import org.session.libsession.utilities.TextSecurePreferences;
import org.session.libsession.utilities.Util; import org.session.libsession.utilities.Util;
import org.session.libsession.utilities.recipients.Recipient.DisappearingState;
import org.session.libsession.utilities.recipients.Recipient.RecipientSettings; import org.session.libsession.utilities.recipients.Recipient.RecipientSettings;
import org.session.libsession.utilities.recipients.Recipient.RegisteredState; import org.session.libsession.utilities.recipients.Recipient.RegisteredState;
import org.session.libsession.utilities.recipients.Recipient.UnidentifiedAccessMode; import org.session.libsession.utilities.recipients.Recipient.UnidentifiedAccessMode;
@ -159,6 +160,7 @@ class RecipientProvider {
@Nullable final Uri callRingtone; @Nullable final Uri callRingtone;
final long mutedUntil; final long mutedUntil;
final int notifyType; final int notifyType;
@Nullable final DisappearingState disappearingState;
@Nullable final VibrateState messageVibrateState; @Nullable final VibrateState messageVibrateState;
@Nullable final VibrateState callVibrateState; @Nullable final VibrateState callVibrateState;
final boolean blocked; final boolean blocked;
@ -191,6 +193,7 @@ class RecipientProvider {
this.callRingtone = settings != null ? settings.getCallRingtone() : null; this.callRingtone = settings != null ? settings.getCallRingtone() : null;
this.mutedUntil = settings != null ? settings.getMuteUntil() : 0; this.mutedUntil = settings != null ? settings.getMuteUntil() : 0;
this.notifyType = settings != null ? settings.getNotifyType() : 0; this.notifyType = settings != null ? settings.getNotifyType() : 0;
this.disappearingState = settings != null ? settings.getDisappearingState() : null;
this.messageVibrateState = settings != null ? settings.getMessageVibrateState() : null; this.messageVibrateState = settings != null ? settings.getMessageVibrateState() : null;
this.callVibrateState = settings != null ? settings.getCallVibrateState() : null; this.callVibrateState = settings != null ? settings.getCallVibrateState() : null;
this.blocked = settings != null && settings.isBlocked(); this.blocked = settings != null && settings.isBlocked();