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.master
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.Recipient;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientUtil;
|
||||
import org.thoughtcrime.securesms.sms.MessageSender;
|
||||
import org.thoughtcrime.securesms.util.CommunicationActions;
|
||||
import org.thoughtcrime.securesms.util.Dialogs;
|
||||
|
@ -400,6 +401,10 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
|
|||
vibrateCallPreference.setSummary(vibrateCallSummary.first);
|
||||
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()) {
|
||||
mutePreference.setVisible(false);
|
||||
customPreference.setVisible(false);
|
||||
|
@ -412,7 +417,7 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
|
|||
if (privacyCategory != null) privacyCategory.setVisible(false);
|
||||
if (divider != null) divider.setVisible(false);
|
||||
if (callCategory != null) callCategory.setVisible(false);
|
||||
} if (recipient.isGroup()) {
|
||||
} else if (recipient.isGroup()) {
|
||||
if (colorPreference != null) colorPreference.setVisible(false);
|
||||
if (identityPreference != null) identityPreference.setVisible(false);
|
||||
if (callCategory != null) callCategory.setVisible(false);
|
||||
|
@ -433,9 +438,6 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
|
|||
|
||||
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>>() {
|
||||
@Override
|
||||
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) {
|
||||
|
|
|
@ -75,9 +75,9 @@ public class MultiDeviceBlockedUpdateJob extends BaseJob {
|
|||
Recipient recipient;
|
||||
|
||||
while ((recipient = reader.getNext()) != null) {
|
||||
if (recipient.isGroup()) {
|
||||
if (recipient.isPushGroup()) {
|
||||
blockedGroups.add(GroupUtil.getDecodedId(recipient.requireGroupId()));
|
||||
} else {
|
||||
} else if (recipient.hasServiceIdentifier()) {
|
||||
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()));
|
||||
}
|
||||
|
||||
public static boolean isBlockable(@NonNull Recipient recipient) {
|
||||
Recipient resolved = recipient.resolve();
|
||||
return resolved.isPushGroup() || resolved.hasServiceIdentifier();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue