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