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 ee8e5af84b7..356fd4e76e7 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 @@ 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 fcccc2dfda1..812b8d26e7f 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 @@ protected Void doInBackground(Void... params) { } 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 7dd77da01ef..4800a7c6b33 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 @@ 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.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.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 void onActivityCreated(@Nullable Bundle savedInstanceState) { } } - @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 2f88eaa7ea6..f6c9fbc75bb 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.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 static int getThemedColor(@NonNull Context context, @AttrRes int attr) { 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 00000000000..5819d71f957 --- /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 81056ec7cb1..2e9c6670ef0 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 a86e4eee905..ded0288f7cf 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 06b8626c5fb..c480575a1d4 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