mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-09 14:28:34 +00:00
Fix issues with blocking and MMS groups.
Fixes #9218. Note that this removes MMS group blocking for now, just because it never really worked, and I don't want to hotfix in a feature.
This commit is contained in:
parent
77c687efcf
commit
c7b7242eff
@ -75,6 +75,7 @@ import org.thoughtcrime.securesms.preferences.widgets.ContactPreference;
|
|||||||
import org.thoughtcrime.securesms.recipients.LiveRecipient;
|
import org.thoughtcrime.securesms.recipients.LiveRecipient;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||||
|
import org.thoughtcrime.securesms.recipients.RecipientUtil;
|
||||||
import org.thoughtcrime.securesms.sms.MessageSender;
|
import org.thoughtcrime.securesms.sms.MessageSender;
|
||||||
import org.thoughtcrime.securesms.util.CommunicationActions;
|
import org.thoughtcrime.securesms.util.CommunicationActions;
|
||||||
import org.thoughtcrime.securesms.util.Dialogs;
|
import org.thoughtcrime.securesms.util.Dialogs;
|
||||||
@ -400,6 +401,10 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
|
|||||||
vibrateCallPreference.setSummary(vibrateCallSummary.first);
|
vibrateCallPreference.setSummary(vibrateCallSummary.first);
|
||||||
vibrateCallPreference.setValueIndex(vibrateCallSummary.second);
|
vibrateCallPreference.setValueIndex(vibrateCallSummary.second);
|
||||||
|
|
||||||
|
blockPreference.setVisible(RecipientUtil.isBlockable(recipient));
|
||||||
|
if (recipient.isBlocked()) blockPreference.setTitle(R.string.RecipientPreferenceActivity_unblock);
|
||||||
|
else blockPreference.setTitle(R.string.RecipientPreferenceActivity_block);
|
||||||
|
|
||||||
if (recipient.isLocalNumber()) {
|
if (recipient.isLocalNumber()) {
|
||||||
mutePreference.setVisible(false);
|
mutePreference.setVisible(false);
|
||||||
customPreference.setVisible(false);
|
customPreference.setVisible(false);
|
||||||
@ -412,7 +417,7 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
|
|||||||
if (privacyCategory != null) privacyCategory.setVisible(false);
|
if (privacyCategory != null) privacyCategory.setVisible(false);
|
||||||
if (divider != null) divider.setVisible(false);
|
if (divider != null) divider.setVisible(false);
|
||||||
if (callCategory != null) callCategory.setVisible(false);
|
if (callCategory != null) callCategory.setVisible(false);
|
||||||
} if (recipient.isGroup()) {
|
} else if (recipient.isGroup()) {
|
||||||
if (colorPreference != null) colorPreference.setVisible(false);
|
if (colorPreference != null) colorPreference.setVisible(false);
|
||||||
if (identityPreference != null) identityPreference.setVisible(false);
|
if (identityPreference != null) identityPreference.setVisible(false);
|
||||||
if (callCategory != null) callCategory.setVisible(false);
|
if (callCategory != null) callCategory.setVisible(false);
|
||||||
@ -433,9 +438,6 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
|
|||||||
|
|
||||||
aboutPreference.setSecure(recipient.getRegistered() == RecipientDatabase.RegisteredState.REGISTERED);
|
aboutPreference.setSecure(recipient.getRegistered() == RecipientDatabase.RegisteredState.REGISTERED);
|
||||||
|
|
||||||
if (recipient.isBlocked()) blockPreference.setTitle(R.string.RecipientPreferenceActivity_unblock);
|
|
||||||
else blockPreference.setTitle(R.string.RecipientPreferenceActivity_block);
|
|
||||||
|
|
||||||
IdentityUtil.getRemoteIdentityKey(getActivity(), recipient).addListener(new ListenableFuture.Listener<Optional<IdentityRecord>>() {
|
IdentityUtil.getRemoteIdentityKey(getActivity(), recipient).addListener(new ListenableFuture.Listener<Optional<IdentityRecord>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Optional<IdentityRecord> result) {
|
public void onSuccess(Optional<IdentityRecord> result) {
|
||||||
@ -456,6 +458,10 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (recipient.isMmsGroup() && privacyCategory != null) {
|
||||||
|
privacyCategory.setVisible(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private @NonNull String formatRecipient(@NonNull Recipient recipient) {
|
private @NonNull String formatRecipient(@NonNull Recipient recipient) {
|
||||||
|
@ -75,9 +75,9 @@ public class MultiDeviceBlockedUpdateJob extends BaseJob {
|
|||||||
Recipient recipient;
|
Recipient recipient;
|
||||||
|
|
||||||
while ((recipient = reader.getNext()) != null) {
|
while ((recipient = reader.getNext()) != null) {
|
||||||
if (recipient.isGroup()) {
|
if (recipient.isPushGroup()) {
|
||||||
blockedGroups.add(GroupUtil.getDecodedId(recipient.requireGroupId()));
|
blockedGroups.add(GroupUtil.getDecodedId(recipient.requireGroupId()));
|
||||||
} else {
|
} else if (recipient.hasServiceIdentifier()) {
|
||||||
blockedIndividuals.add(RecipientUtil.toSignalServiceAddress(context, recipient));
|
blockedIndividuals.add(RecipientUtil.toSignalServiceAddress(context, recipient));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,4 +49,9 @@ public class RecipientUtil {
|
|||||||
|
|
||||||
return new SignalServiceAddress(Optional.fromNullable(recipient.getUuid().orNull()), Optional.fromNullable(recipient.resolve().getE164().orNull()));
|
return new SignalServiceAddress(Optional.fromNullable(recipient.getUuid().orNull()), Optional.fromNullable(recipient.resolve().getE164().orNull()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isBlockable(@NonNull Recipient recipient) {
|
||||||
|
Recipient resolved = recipient.resolve();
|
||||||
|
return resolved.isPushGroup() || resolved.hasServiceIdentifier();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user