Use internal contact viewer for avatar clicks.

This commit is contained in:
Greyson Parrelli 2020-03-02 08:33:25 -05:00
parent b06152ba58
commit fd2a464bae
3 changed files with 14 additions and 21 deletions

View file

@ -48,6 +48,7 @@ import org.thoughtcrime.securesms.contacts.avatars.ContactPhoto;
import org.thoughtcrime.securesms.contacts.avatars.FallbackContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.FallbackContactPhoto;
import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto;
import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto;
import org.thoughtcrime.securesms.conversation.ConversationActivity;
import org.thoughtcrime.securesms.crypto.IdentityKeyParcelable; import org.thoughtcrime.securesms.crypto.IdentityKeyParcelable;
import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.IdentityDatabase; import org.thoughtcrime.securesms.database.IdentityDatabase;
@ -95,8 +96,7 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
{ {
private static final String TAG = RecipientPreferenceActivity.class.getSimpleName(); private static final String TAG = RecipientPreferenceActivity.class.getSimpleName();
public static final String RECIPIENT_ID = "recipient_address"; public static final String RECIPIENT_ID = "recipient";
public static final String CAN_HAVE_SAFETY_NUMBER_EXTRA = "can_have_safety_number";
private static final String PREFERENCE_MUTED = "pref_key_recipient_mute"; private static final String PREFERENCE_MUTED = "pref_key_recipient_mute";
private static final String PREFERENCE_MESSAGE_TONE = "pref_key_recipient_ringtone"; private static final String PREFERENCE_MESSAGE_TONE = "pref_key_recipient_ringtone";
@ -119,6 +119,13 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
private ThreadPhotoRailView threadPhotoRailView; private ThreadPhotoRailView threadPhotoRailView;
private CollapsingToolbarLayout toolbarLayout; private CollapsingToolbarLayout toolbarLayout;
public static @NonNull Intent getLaunchIntent(@NonNull Context context, @NonNull RecipientId id) {
Intent intent = new Intent(context, RecipientPreferenceActivity.class);
intent.putExtra(RecipientPreferenceActivity.RECIPIENT_ID, id);
return intent;
}
@Override @Override
public void onPreCreate() { public void onPreCreate() {
dynamicTheme.onCreate(this); dynamicTheme.onCreate(this);
@ -166,12 +173,6 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
return false; return false;
} }
@Override
public void onBackPressed() {
finish();
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
private void initializeToolbar() { private void initializeToolbar() {
this.toolbarLayout = ViewUtil.findById(this, R.id.collapsing_toolbar); this.toolbarLayout = ViewUtil.findById(this, R.id.collapsing_toolbar);
this.avatar = ViewUtil.findById(this, R.id.avatar); this.avatar = ViewUtil.findById(this, R.id.avatar);
@ -284,8 +285,7 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
initializeRecipients(); initializeRecipients();
this.canHaveSafetyNumber = getActivity().getIntent() this.canHaveSafetyNumber = recipient.get().isRegistered() && !recipient.get().isLocalNumber();
.getBooleanExtra(RecipientPreferenceActivity.CAN_HAVE_SAFETY_NUMBER_EXTRA, false);
Preference customNotificationsPref = this.findPreference(PREFERENCE_CUSTOM_NOTIFICATIONS); Preference customNotificationsPref = this.findPreference(PREFERENCE_CUSTOM_NOTIFICATIONS);

View file

@ -16,6 +16,7 @@ import androidx.appcompat.widget.AppCompatImageView;
import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.engine.DiskCacheStrategy;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.RecipientPreferenceActivity;
import org.thoughtcrime.securesms.color.MaterialColor; import org.thoughtcrime.securesms.color.MaterialColor;
import org.thoughtcrime.securesms.contacts.avatars.ContactColors; import org.thoughtcrime.securesms.contacts.avatars.ContactColors;
import org.thoughtcrime.securesms.contacts.avatars.ContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.ContactPhoto;
@ -149,12 +150,8 @@ public final class AvatarImageView extends AppCompatImageView {
private void setAvatarClickHandler(final Recipient recipient, boolean quickContactEnabled) { private void setAvatarClickHandler(final Recipient recipient, boolean quickContactEnabled) {
super.setOnClickListener(v -> { super.setOnClickListener(v -> {
if (!recipient.isGroup() && quickContactEnabled) { if (quickContactEnabled) {
if (recipient.getContactUri() != null) { getContext().startActivity(RecipientPreferenceActivity.getLaunchIntent(getContext(), recipient.getId()));
ContactsContract.QuickContact.showQuickContact(getContext(), AvatarImageView.this, recipient.getContactUri(), ContactsContract.QuickContact.MODE_LARGE, null);
} else {
getContext().startActivity(RecipientExporter.export(recipient).asAddContactIntent());
}
} else if (listener != null) { } else if (listener != null) {
listener.onClick(v); listener.onClick(v);
} }

View file

@ -951,11 +951,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
private void handleConversationSettings() { private void handleConversationSettings() {
if (isInMessageRequest()) return; if (isInMessageRequest()) return;
Intent intent = new Intent(ConversationActivity.this, RecipientPreferenceActivity.class); Intent intent = RecipientPreferenceActivity.getLaunchIntent(this, recipient.getId());
intent.putExtra(RecipientPreferenceActivity.RECIPIENT_ID, recipient.getId());
intent.putExtra(RecipientPreferenceActivity.CAN_HAVE_SAFETY_NUMBER_EXTRA,
isSecureText && !isSelfConversation());
startActivitySceneTransition(intent, titleView.findViewById(R.id.contact_photo_image), "avatar"); startActivitySceneTransition(intent, titleView.findViewById(R.id.contact_photo_image), "avatar");
} }