From ae87d230034fe2678925cbb377a49b62e1684d48 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 2 Jun 2020 16:09:48 -0300 Subject: [PATCH] Always use the new group settings screen if the flag is enabled. --- .../securesms/color/MaterialColor.java | 1 + .../conversation/ConversationActivity.java | 7 ++++ .../ui/managegroup/ManageGroupFragment.java | 32 +++++++++++++------ .../securesms/util/ThemeUtil.java | 3 +- .../group_resource_placeholder_80.xml | 16 ++++++++++ .../main/res/layout/group_manage_fragment.xml | 4 ++- app/src/main/res/values/attrs.xml | 4 +++ .../main/res/values/conversation_colors.xml | 1 + app/src/main/res/values/themes.xml | 8 +++++ 9 files changed, 65 insertions(+), 11 deletions(-) create mode 100644 app/src/main/res/drawable/group_resource_placeholder_80.xml diff --git a/app/src/main/java/org/thoughtcrime/securesms/color/MaterialColor.java b/app/src/main/java/org/thoughtcrime/securesms/color/MaterialColor.java index ee8e5af84b..356fd4e76e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/color/MaterialColor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/color/MaterialColor.java @@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.color; import android.content.Context; import android.graphics.Color; + import androidx.annotation.ColorInt; import androidx.annotation.ColorRes; import androidx.annotation.NonNull; 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 fcccc2dfda..812b8d26e7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -1017,6 +1017,13 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } private void handleConversationSettings() { + if (FeatureFlags.newGroupUI() && isGroupConversation()) { + startActivitySceneTransition(ManageGroupActivity.newIntent(this, getRecipient().requireGroupId()), + titleView.findViewById(R.id.contact_photo_image), + "avatar"); + return; + } + if (isInMessageRequest()) return; Intent intent = RecipientPreferenceActivity.getLaunchIntent(this, recipient.getId()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupFragment.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupFragment.java index 7dd77da01e..4800a7c6b3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupFragment.java @@ -3,10 +3,9 @@ package org.thoughtcrime.securesms.groups.ui.managegroup; import android.content.Context; import android.content.Intent; import android.database.Cursor; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; @@ -30,7 +29,6 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.AvatarImageView; import org.thoughtcrime.securesms.components.ThreadPhotoRailView; import org.thoughtcrime.securesms.contacts.avatars.FallbackContactPhoto; -import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.groups.ui.GroupMemberListView; import org.thoughtcrime.securesms.groups.ui.LeaveGroupDialog; @@ -46,6 +44,7 @@ import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.recipients.ui.bottomsheet.RecipientBottomSheetDialogFragment; import org.thoughtcrime.securesms.util.DateUtils; +import org.thoughtcrime.securesms.util.ThemeUtil; import java.util.List; import java.util.Locale; @@ -93,7 +92,27 @@ public class ManageGroupFragment extends Fragment { private final Recipient.FallbackPhotoProvider fallbackPhotoProvider = new Recipient.FallbackPhotoProvider() { @Override public @NonNull FallbackContactPhoto getPhotoForGroup() { - return new ResourceContactPhoto(R.drawable.ic_group_80); + return new FallbackContactPhoto() { + @Override + public Drawable asDrawable(Context context, int color) { + return ThemeUtil.getThemedDrawable(context, R.attr.group_resource_placeholder_80); + } + + @Override + public Drawable asDrawable(Context context, int color, boolean inverted) { + return asDrawable(context, color); + } + + @Override + public Drawable asSmallDrawable(Context context, int color, boolean inverted) { + throw new UnsupportedOperationException(); + } + + @Override + public Drawable asCallCard(Context context) { + throw new UnsupportedOperationException(); + } + }; } }; @@ -305,11 +324,6 @@ public class ManageGroupFragment extends Fragment { } } - @Override - public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) { - - } - public boolean onMenuItemSelected(@NonNull MenuItem item) { if (item.getItemId() == R.id.action_edit) { startActivity(EditProfileActivity.getIntentForGroupProfile(requireActivity(), getPushGroupId())); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/ThemeUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/ThemeUtil.java index 2f88eaa7ea..f6c9fbc75b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/ThemeUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/ThemeUtil.java @@ -8,6 +8,7 @@ import androidx.annotation.DimenRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StyleRes; +import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.view.ContextThemeWrapper; import androidx.core.content.ContextCompat; @@ -49,7 +50,7 @@ public class ThemeUtil { Resources.Theme theme = context.getTheme(); if (theme.resolveAttribute(attr, typedValue, true)) { - return ContextCompat.getDrawable(context, typedValue.resourceId); + return AppCompatResources.getDrawable(context, typedValue.resourceId); } return null; diff --git a/app/src/main/res/drawable/group_resource_placeholder_80.xml b/app/src/main/res/drawable/group_resource_placeholder_80.xml new file mode 100644 index 0000000000..5819d71f95 --- /dev/null +++ b/app/src/main/res/drawable/group_resource_placeholder_80.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/group_manage_fragment.xml b/app/src/main/res/layout/group_manage_fragment.xml index 81056ec7cb..2e9c6670ef 100644 --- a/app/src/main/res/layout/group_manage_fragment.xml +++ b/app/src/main/res/layout/group_manage_fragment.xml @@ -92,6 +92,7 @@ android:layout_gravity="center_horizontal" android:layout_marginTop="16dp" android:elevation="8dp" + android:transitionName="avatar" app:layout_behavior=".groups.ui.creategroup.GroupSettingsCoordinatorLayoutBehavior" /> + app:layout_constraintTop_toBottomOf="@id/group_disappearing_messages_card" + app:layout_goneMarginTop="0dp"> + + + + diff --git a/app/src/main/res/values/conversation_colors.xml b/app/src/main/res/values/conversation_colors.xml index a86e4eee90..ded0288f7c 100644 --- a/app/src/main/res/values/conversation_colors.xml +++ b/app/src/main/res/values/conversation_colors.xml @@ -55,4 +55,5 @@ @color/core_ultramarine #b0c8f9 #1851b4 + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 06b8626c5f..c480575a1d 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -162,6 +162,10 @@ @color/core_grey_02 @color/core_grey_15 + @drawable/group_resource_placeholder_80 + @drawable/avatar_gradient_light + @color/core_ultramarine + @style/Signal.SearchView @style/Signal.SearchView.Dark @@ -449,6 +453,10 @@ @color/core_grey_60 @color/core_grey_80 + @drawable/group_resource_placeholder_80 + @drawable/avatar_gradient_dark + @color/core_ultramarine + @style/Signal.SearchView @style/Signal.SearchView.Dark