Skip to content

Commit

Permalink
Fix some UX issues with blocked users.
Browse files Browse the repository at this point in the history
  • Loading branch information
greyson-signal committed Apr 22, 2020
1 parent 1b5a0ab commit fd21fc1
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
private Button makeDefaultSmsButton;
private Button registerButton;
private InputAwareLayout container;
private View composePanel;
protected Stub<ReminderView> reminderView;
private Stub<UnverifiedBannerView> unverifiedBannerView;
private Stub<GroupShareProfileView> groupShareProfileView;
Expand Down Expand Up @@ -767,6 +766,15 @@ public boolean onPrepareOptionsMenu(Menu menu) {
}
}

if (recipient != null && recipient.get().isBlocked()) {
if (isSecureText) {
menu.findItem(R.id.menu_call_secure).setVisible(false);
menu.findItem(R.id.menu_video_secure).setVisible(false);
} else {
menu.findItem(R.id.menu_call_insecure).setVisible(false);
}
}

searchViewItem = menu.findItem(R.id.menu_search);

SearchView searchView = (SearchView) searchViewItem.getActionView();
Expand Down Expand Up @@ -812,6 +820,7 @@ public boolean onMenuItemActionCollapse(MenuItem item) {
searchNav.setVisibility(View.GONE);
inputPanel.setVisibility(View.VISIBLE);
fragment.onSearchQueryUpdated(null);
setBlockedUserState(recipient.get(), isSecureText, isDefaultSms);
invalidateOptionsMenu();
return true;
}
Expand Down Expand Up @@ -1623,7 +1632,6 @@ private void initializeViews() {
unblockButton = ViewUtil.findById(this, R.id.unblock_button);
makeDefaultSmsButton = ViewUtil.findById(this, R.id.make_default_sms_button);
registerButton = ViewUtil.findById(this, R.id.register_button);
composePanel = ViewUtil.findById(this, R.id.bottom_panel);
container = ViewUtil.findById(this, R.id.layout_container);
reminderView = ViewUtil.findStubById(this, R.id.reminder_stub);
unverifiedBannerView = ViewUtil.findStubById(this, R.id.unverified_banner_stub);
Expand Down Expand Up @@ -2030,21 +2038,21 @@ private void setActionBarColor(MaterialColor color) {
private void setBlockedUserState(Recipient recipient, boolean isSecureText, boolean isDefaultSms) {
if (recipient.isBlocked() && !FeatureFlags.messageRequests()) {
unblockButton.setVisibility(View.VISIBLE);
composePanel.setVisibility(View.GONE);
inputPanel.setVisibility(View.GONE);
makeDefaultSmsButton.setVisibility(View.GONE);
registerButton.setVisibility(View.GONE);
} else if (!isSecureText && isPushGroupConversation()) {
unblockButton.setVisibility(View.GONE);
composePanel.setVisibility(View.GONE);
inputPanel.setVisibility(View.GONE);
makeDefaultSmsButton.setVisibility(View.GONE);
registerButton.setVisibility(View.VISIBLE);
} else if (!isSecureText && !isDefaultSms) {
unblockButton.setVisibility(View.GONE);
composePanel.setVisibility(View.GONE);
inputPanel.setVisibility(View.GONE);
makeDefaultSmsButton.setVisibility(View.VISIBLE);
registerButton.setVisibility(View.GONE);
} else {
composePanel.setVisibility(View.VISIBLE);
inputPanel.setVisibility(View.VISIBLE);
unblockButton.setVisibility(View.GONE);
makeDefaultSmsButton.setVisibility(View.GONE);
registerButton.setVisibility(View.GONE);
Expand Down Expand Up @@ -2761,7 +2769,7 @@ private class TypingStatusTextWatcher extends SimpleTextWatcher {

@Override
public void onTextChanged(String text) {
if (enabled && threadId > 0 && isSecureText && !isSmsForced()) {
if (enabled && threadId > 0 && isSecureText && !isSmsForced() && !recipient.get().isBlocked()) {
ApplicationContext.getInstance(ConversationActivity.this).getTypingStatusSender().onTypingStarted(threadId);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,8 @@ static boolean canReplyToMessage(boolean actionMessage, @NonNull MessageRecord m
!messageRecord.isPending() &&
!messageRecord.isFailed() &&
!isDisplayingMessageRequest &&
messageRecord.isSecure();
messageRecord.isSecure() &&
!messageRecord.getRecipient().isBlocked();
}

static boolean isActionMessage(@NonNull MessageRecord messageRecord) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ public void onRun() throws Exception {
return;
}

if (recipient.isBlocked()) {
Log.w(TAG, "Not sending typing indicators to blocked recipients.");
}

List<Recipient> recipients = Collections.singletonList(recipient);
Optional<byte[]> groupId = Optional.absent();

Expand Down

0 comments on commit fd21fc1

Please sign in to comment.