Fix some more UX issues with blocked users.

This commit is contained in:
Greyson Parrelli 2020-04-23 11:06:52 -04:00
parent 8c6001fa5a
commit 4bdcaa72cd
3 changed files with 23 additions and 24 deletions

View file

@ -429,7 +429,7 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
aboutPreference.setSummary(recipient.getCustomLabel());
}
aboutPreference.setSecure(recipient.getRegistered() == RecipientDatabase.RegisteredState.REGISTERED);
aboutPreference.setState(recipient.getRegistered() == RecipientDatabase.RegisteredState.REGISTERED, recipient.isBlocked());
IdentityUtil.getRemoteIdentityKey(getActivity(), recipient).addListener(new ListenableFuture.Listener<Optional<IdentityRecord>>() {
@Override

View file

@ -770,9 +770,19 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
if (isSecureText) {
menu.findItem(R.id.menu_call_secure).setVisible(false);
menu.findItem(R.id.menu_video_secure).setVisible(false);
if (menu.findItem(R.id.menu_expiring_messages) != null) {
menu.findItem(R.id.menu_expiring_messages).setVisible(false);
}
if (menu.findItem(R.id.menu_expiring_messages_off) != null) {
menu.findItem(R.id.menu_expiring_messages_off).setVisible(false);
}
} else {
menu.findItem(R.id.menu_call_insecure).setVisible(false);
}
menu.findItem(R.id.menu_mute_notifications).setVisible(false);
}
searchViewItem = menu.findItem(R.id.menu_search);
@ -983,24 +993,11 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
}
private void handleUnblock() {
int titleRes = R.string.ConversationActivity_unblock_this_contact_question;
int bodyRes = R.string.ConversationActivity_you_will_once_again_be_able_to_receive_messages_and_calls_from_this_contact;
if (recipient.get().isGroup()) {
titleRes = R.string.ConversationActivity_unblock_this_group_question;
bodyRes = R.string.ConversationActivity_unblock_this_group_description;
}
//noinspection CodeBlock2Expr
new AlertDialog.Builder(this)
.setTitle(titleRes)
.setMessage(bodyRes)
.setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(R.string.ConversationActivity_unblock, (dialog, which) -> {
SignalExecutors.BOUNDED.execute(() -> {
RecipientUtil.unblock(ConversationActivity.this, recipient.get());
});
}).show();
BlockUnblockDialog.showUnblockFor(this, getLifecycle(), recipient.get(), () -> {
SignalExecutors.BOUNDED.execute(() -> {
RecipientUtil.unblock(ConversationActivity.this, recipient.get());
});
});
}
@TargetApi(Build.VERSION_CODES.KITKAT)

View file

@ -20,6 +20,7 @@ public class ContactPreference extends Preference {
private Listener listener;
private boolean secure;
private boolean blocked;
public ContactPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
@ -55,15 +56,16 @@ public class ContactPreference extends Preference {
this.secureVideoButton = (ImageView) view.findViewById(R.id.secure_video);
if (listener != null) setListener(listener);
setSecure(secure);
setState(secure, blocked);
}
public void setSecure(boolean secure) {
public void setState(boolean secure, boolean blocked) {
this.secure = secure;
if (secureCallButton != null) secureCallButton.setVisibility(secure ? View.VISIBLE : View.GONE);
if (secureVideoButton != null) secureVideoButton.setVisibility(secure ? View.VISIBLE : View.GONE);
if (callButton != null) callButton.setVisibility(secure ? View.GONE : View.VISIBLE);
if (secureCallButton != null) secureCallButton.setVisibility(secure && !blocked ? View.VISIBLE : View.GONE);
if (secureVideoButton != null) secureVideoButton.setVisibility(secure && !blocked ? View.VISIBLE : View.GONE);
if (callButton != null) callButton.setVisibility(secure || blocked ? View.GONE : View.VISIBLE);
if (messageButton != null) messageButton.setVisibility(blocked ? View.GONE : View.VISIBLE);
int color;