Skip to content

Commit

Permalink
Fix some more UX issues with blocked users.
Browse files Browse the repository at this point in the history
  • Loading branch information
greyson-signal committed Apr 23, 2020
1 parent 8c6001f commit 4bdcaa7
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,7 @@ private void setSummaries(Recipient recipient) {
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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -770,9 +770,19 @@ public boolean onPrepareOptionsMenu(Menu menu) {
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);
Expand Down Expand Up @@ -983,24 +993,11 @@ protected Void doInBackground(Void... params) {
}

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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -55,15 +56,16 @@ public void onBindViewHolder(PreferenceViewHolder view) {
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;

Expand Down

0 comments on commit 4bdcaa7

Please sign in to comment.