diff --git a/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java b/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java index c1285dc576..62306d4181 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java @@ -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>() { @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java index dd4e7b60b6..b746064e8e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -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) diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/widgets/ContactPreference.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/widgets/ContactPreference.java index 121ea1de94..5b1eda7140 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/widgets/ContactPreference.java +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/widgets/ContactPreference.java @@ -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;