Legacy group learn more badge and info bottom sheet.
parent
93f587b851
commit
96ce42ae91
|
@ -39,6 +39,7 @@ import org.thoughtcrime.securesms.groups.ui.GroupMemberListView;
|
|||
import org.thoughtcrime.securesms.groups.ui.LeaveGroupDialog;
|
||||
import org.thoughtcrime.securesms.groups.ui.managegroup.dialogs.GroupInviteSentDialog;
|
||||
import org.thoughtcrime.securesms.groups.ui.managegroup.dialogs.GroupRightsDialog;
|
||||
import org.thoughtcrime.securesms.groups.ui.managegroup.dialogs.GroupsLearnMoreBottomSheetDialogFragment;
|
||||
import org.thoughtcrime.securesms.groups.ui.pendingmemberinvites.PendingMemberInvitesActivity;
|
||||
import org.thoughtcrime.securesms.logging.Log;
|
||||
import org.thoughtcrime.securesms.mediaoverview.MediaOverviewActivity;
|
||||
|
@ -51,6 +52,7 @@ import org.thoughtcrime.securesms.recipients.ui.bottomsheet.RecipientBottomSheet
|
|||
import org.thoughtcrime.securesms.recipients.ui.notifications.CustomNotificationsDialogFragment;
|
||||
import org.thoughtcrime.securesms.util.DateUtils;
|
||||
import org.thoughtcrime.securesms.util.LifecycleCursorWrapper;
|
||||
import org.thoughtcrime.securesms.util.views.LearnMoreTextView;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
@ -70,6 +72,7 @@ public class ManageGroupFragment extends LoggingFragment {
|
|||
private TextView pendingMembersCount;
|
||||
private Toolbar toolbar;
|
||||
private TextView groupName;
|
||||
private LearnMoreTextView groupV1Indicator;
|
||||
private TextView memberCountUnderAvatar;
|
||||
private TextView memberCountAboveList;
|
||||
private AvatarImageView avatar;
|
||||
|
@ -125,6 +128,7 @@ public class ManageGroupFragment extends LoggingFragment {
|
|||
avatar = view.findViewById(R.id.group_avatar);
|
||||
toolbar = view.findViewById(R.id.toolbar);
|
||||
groupName = view.findViewById(R.id.name);
|
||||
groupV1Indicator = view.findViewById(R.id.manage_group_group_v1_indicator);
|
||||
memberCountUnderAvatar = view.findViewById(R.id.member_count);
|
||||
memberCountAboveList = view.findViewById(R.id.member_count_2);
|
||||
groupMemberList = view.findViewById(R.id.group_members);
|
||||
|
@ -154,6 +158,9 @@ public class ManageGroupFragment extends LoggingFragment {
|
|||
customNotificationsRow = view.findViewById(R.id.group_custom_notifications_row);
|
||||
toggleAllMembers = view.findViewById(R.id.toggle_all_members);
|
||||
|
||||
groupV1Indicator.setOnLinkClickListener(v -> GroupsLearnMoreBottomSheetDialogFragment.show(requireFragmentManager()));
|
||||
groupV1Indicator.setLearnMoreVisible(true);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
|
@ -208,6 +215,7 @@ public class ManageGroupFragment extends LoggingFragment {
|
|||
|
||||
viewModel.getTitle().observe(getViewLifecycleOwner(), groupName::setText);
|
||||
viewModel.getMemberCountSummary().observe(getViewLifecycleOwner(), memberCountUnderAvatar::setText);
|
||||
viewModel.getShowLegacyIndicator().observe(getViewLifecycleOwner(), showLegacyIndicators -> groupV1Indicator.setVisibility(showLegacyIndicators ? View.VISIBLE : View.GONE));
|
||||
viewModel.getFullMemberCountSummary().observe(getViewLifecycleOwner(), memberCountAboveList::setText);
|
||||
viewModel.getGroupRecipient().observe(getViewLifecycleOwner(), groupRecipient -> {
|
||||
avatar.setRecipient(groupRecipient);
|
||||
|
|
|
@ -37,6 +37,7 @@ import org.thoughtcrime.securesms.recipients.RecipientId;
|
|||
import org.thoughtcrime.securesms.recipients.RecipientUtil;
|
||||
import org.thoughtcrime.securesms.util.DefaultValueLiveData;
|
||||
import org.thoughtcrime.securesms.util.ExpirationUtil;
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags;
|
||||
import org.thoughtcrime.securesms.util.SingleLiveEvent;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;
|
||||
|
@ -72,6 +73,7 @@ public class ManageGroupViewModel extends ViewModel {
|
|||
private final DefaultValueLiveData<CollapseState> memberListCollapseState = new DefaultValueLiveData<>(CollapseState.COLLAPSED);
|
||||
private final LiveData<Boolean> canLeaveGroup;
|
||||
private final LiveData<Boolean> canBlockGroup;
|
||||
private final LiveData<Boolean> showLegacyIndicator;
|
||||
|
||||
private ManageGroupViewModel(@NonNull Context context, @NonNull ManageGroupRepository manageGroupRepository) {
|
||||
this.context = context;
|
||||
|
@ -79,7 +81,8 @@ public class ManageGroupViewModel extends ViewModel {
|
|||
|
||||
manageGroupRepository.getGroupState(this::groupStateLoaded);
|
||||
|
||||
LiveGroup liveGroup = new LiveGroup(manageGroupRepository.getGroupId());
|
||||
GroupId groupId = manageGroupRepository.getGroupId();
|
||||
LiveGroup liveGroup = new LiveGroup(groupId);
|
||||
|
||||
this.title = Transformations.map(liveGroup.getTitle(),
|
||||
title -> TextUtils.isEmpty(title) ? context.getString(R.string.Recipient_unknown)
|
||||
|
@ -92,7 +95,11 @@ public class ManageGroupViewModel extends ViewModel {
|
|||
memberListCollapseState,
|
||||
ManageGroupViewModel::filterMemberList);
|
||||
this.pendingMemberCount = liveGroup.getPendingMemberCount();
|
||||
this.memberCountSummary = liveGroup.getMembershipCountDescription(context.getResources());
|
||||
this.showLegacyIndicator = new MutableLiveData<>(groupId.isV1() && FeatureFlags.groupsV2create());
|
||||
this.memberCountSummary = LiveDataUtil.combineLatest(liveGroup.getMembershipCountDescription(context.getResources()),
|
||||
this.showLegacyIndicator,
|
||||
(description, legacy) -> legacy ? String.format("%s · %s", description, context.getString(R.string.ManageGroupActivity_legacy_group))
|
||||
: description);
|
||||
this.fullMemberCountSummary = liveGroup.getFullMembershipCountDescription(context.getResources());
|
||||
this.editMembershipRights = liveGroup.getMembershipAdditionAccessControl();
|
||||
this.editGroupAttributesRights = liveGroup.getAttributesAccessControl();
|
||||
|
@ -131,7 +138,11 @@ public class ManageGroupViewModel extends ViewModel {
|
|||
return fullMemberCountSummary;
|
||||
}
|
||||
|
||||
public LiveData<Recipient> getGroupRecipient() {
|
||||
LiveData<Boolean> getShowLegacyIndicator() {
|
||||
return showLegacyIndicator;
|
||||
}
|
||||
|
||||
LiveData<Recipient> getGroupRecipient() {
|
||||
return groupRecipient;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
package org.thoughtcrime.securesms.groups.ui.managegroup.dialogs;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.util.BottomSheetUtil;
|
||||
import org.thoughtcrime.securesms.util.ThemeUtil;
|
||||
|
||||
public final class GroupsLearnMoreBottomSheetDialogFragment extends BottomSheetDialogFragment {
|
||||
|
||||
public static void show(@NonNull FragmentManager manager) {
|
||||
new GroupsLearnMoreBottomSheetDialogFragment().show(manager, BottomSheetUtil.STANDARD_BOTTOM_SHEET_FRAGMENT_TAG);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
setStyle(DialogFragment.STYLE_NORMAL,
|
||||
ThemeUtil.isDarkTheme(requireContext()) ? R.style.Theme_Signal_RoundedBottomSheet
|
||||
: R.style.Theme_Signal_RoundedBottomSheet_Light);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.groups_learn_more_bottom_sheet, container, false);
|
||||
|
||||
view.findViewById(R.id.lbs_ok_button).setOnClickListener(v -> dismiss());
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show(@NonNull FragmentManager manager, @Nullable String tag) {
|
||||
BottomSheetUtil.show(manager, tag, this);
|
||||
}
|
||||
}
|
|
@ -19,7 +19,6 @@ import androidx.core.content.ContextCompat;
|
|||
import androidx.core.widget.TextViewCompat;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.lifecycle.ViewModelProviders;
|
||||
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
||||
|
@ -32,6 +31,7 @@ import org.thoughtcrime.securesms.groups.GroupId;
|
|||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientExporter;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||
import org.thoughtcrime.securesms.util.BottomSheetUtil;
|
||||
import org.thoughtcrime.securesms.util.ServiceUtil;
|
||||
import org.thoughtcrime.securesms.util.ThemeUtil;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
|
@ -88,8 +88,8 @@ public final class RecipientBottomSheetDialogFragment extends BottomSheetDialogF
|
|||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
setStyle(DialogFragment.STYLE_NORMAL,
|
||||
ThemeUtil.isDarkTheme(requireContext()) ? R.style.Theme_Signal_RecipientBottomSheet
|
||||
: R.style.Theme_Signal_RecipientBottomSheet_Light);
|
||||
ThemeUtil.isDarkTheme(requireContext()) ? R.style.Theme_Signal_RoundedBottomSheet
|
||||
: R.style.Theme_Signal_RoundedBottomSheet_Light);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
@ -256,8 +256,6 @@ public final class RecipientBottomSheetDialogFragment extends BottomSheetDialogF
|
|||
|
||||
@Override
|
||||
public void show(@NonNull FragmentManager manager, @Nullable String tag) {
|
||||
FragmentTransaction transaction = manager.beginTransaction();
|
||||
transaction.add(this, tag);
|
||||
transaction.commitAllowingStateLoss();
|
||||
BottomSheetUtil.show(manager, tag, this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
package org.thoughtcrime.securesms.util;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
||||
|
||||
public final class BottomSheetUtil {
|
||||
|
||||
public static final String STANDARD_BOTTOM_SHEET_FRAGMENT_TAG = "BOTTOM";
|
||||
|
||||
private BottomSheetUtil() {}
|
||||
|
||||
/**
|
||||
* Show preventing a possible IllegalStateException.
|
||||
*/
|
||||
public static void show(@NonNull FragmentManager manager,
|
||||
@Nullable String tag,
|
||||
@NonNull BottomSheetDialogFragment dialog)
|
||||
{
|
||||
FragmentTransaction transaction = manager.beginTransaction();
|
||||
transaction.add(dialog, tag);
|
||||
transaction.commitAllowingStateLoss();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<corners android:radius="4dp" />
|
||||
<solid android:color="@color/core_grey_90" />
|
||||
</shape>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<corners android:radius="4dp" />
|
||||
<solid android:color="@color/core_grey_02" />
|
||||
</shape>
|
|
@ -53,6 +53,25 @@
|
|||
android:textAppearance="@style/Signal.Text.Body"
|
||||
android:textColor="?title_text_color_secondary"
|
||||
tools:text="12 members (4 invited)" />
|
||||
|
||||
<org.thoughtcrime.securesms.util.views.LearnMoreTextView
|
||||
android:id="@+id/manage_group_group_v1_indicator"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:background="?secondary_background_bubble"
|
||||
android:paddingStart="12dp"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingEnd="12dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:text="@string/ManageGroupActivity_legacy_group_learn_more"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Caption"
|
||||
android:textColor="?title_text_color_secondary"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
|
|
|
@ -0,0 +1,119 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:theme="@style/Theme.Signal.RoundedBottomSheet.Light">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/lbs_title"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:text="@string/GroupsLearnMore_legacy_vs_new_groups"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Title2"
|
||||
android:textColor="?title_text_color_primary"
|
||||
app:layout_constraintBottom_toTopOf="@+id/lbs_paragraph_1_header"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/lbs_paragraph_1_header"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:text="@string/GroupsLearnMore_what_are_legacy_groups"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Body2.Bold"
|
||||
android:textColor="?title_text_color_primary"
|
||||
app:layout_constraintBottom_toTopOf="@+id/lbs_paragraph_1"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/lbs_title" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/lbs_paragraph_1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:text="@string/GroupsLearnMore_paragraph_1"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Body2"
|
||||
android:textColor="?title_text_color_secondary"
|
||||
app:layout_constraintBottom_toTopOf="@+id/lbs_paragraph_2_header"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/lbs_paragraph_1_header" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/lbs_paragraph_2_header"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:text="@string/GroupsLearnMore_how_do_i_use_new_groups"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Body2.Bold"
|
||||
android:textColor="?title_text_color_primary"
|
||||
app:layout_constraintBottom_toTopOf="@+id/lbs_paragraph_2_a"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/lbs_paragraph_1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/lbs_paragraph_2_a"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:text="@string/GroupsLearnMore_paragraph_2"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Body2"
|
||||
android:textColor="?title_text_color_secondary"
|
||||
app:layout_constraintBottom_toTopOf="@+id/lbs_paragraph_2_b"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/lbs_paragraph_2_header" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/lbs_paragraph_2_b"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:text="@string/GroupsLearnMore_paragraph_3"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Body2.Bold"
|
||||
android:textColor="?title_text_color_secondary"
|
||||
app:layout_constraintBottom_toTopOf="@+id/lbs_paragraph_1"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/lbs_paragraph_2_a" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/lbs_ok_button"
|
||||
style="@style/Button.Primary"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="64dp"
|
||||
android:layout_marginStart="32dp"
|
||||
android:layout_marginTop="48dp"
|
||||
android:layout_marginEnd="32dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:text="@android:string/ok"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/lbs_paragraph_2_b"
|
||||
app:layout_constraintVertical_bias="0" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -4,7 +4,7 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:theme="@style/Theme.Signal.RecipientBottomSheet.Light">
|
||||
tools:theme="@style/Theme.Signal.RoundedBottomSheet.Light">
|
||||
|
||||
<org.thoughtcrime.securesms.components.AvatarImageView
|
||||
android:id="@+id/rbs_recipient_avatar"
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
<attr name="attachment_keyboard_button_foreground" format="color" />
|
||||
|
||||
<attr name="secondary_background" format="reference" />
|
||||
<attr name="secondary_background_bubble" format="reference" />
|
||||
|
||||
<attr name="conversation_list_item_background" format="reference"/>
|
||||
<attr name="conversation_list_item_contact_color" format="reference|color"/>
|
||||
|
|
|
@ -557,6 +557,8 @@
|
|||
<string name="ManageGroupActivity_failed_to_update_the_group_due_to_a_network_error_please_retry_later">Failed to update the group due to a network error, please retry later</string>
|
||||
|
||||
<string name="ManageGroupActivity_edit_name_and_picture">Edit name and picture</string>
|
||||
<string name="ManageGroupActivity_legacy_group">Legacy Group</string>
|
||||
<string name="ManageGroupActivity_legacy_group_learn_more">This is a Legacy Group. To access features like group admins, create a New Group.</string>
|
||||
|
||||
<string name="GroupManagement_choose_who_can_add_or_invite_new_members">Choose who can add or invite new members</string>
|
||||
<string name="GroupManagement_choose_who_can_change_the_group_name_and_photo">Choose who can change the group name and photo</string>
|
||||
|
@ -2427,6 +2429,15 @@
|
|||
|
||||
<string name="GroupRecipientListItem_admin">Admin</string>
|
||||
|
||||
|
||||
<!-- GroupsLearnMoreBottomSheetDialogFragment -->
|
||||
<string name="GroupsLearnMore_legacy_vs_new_groups">Legacy vs. New Groups</string>
|
||||
<string name="GroupsLearnMore_what_are_legacy_groups">What are Legacy Groups?</string>
|
||||
<string name="GroupsLearnMore_paragraph_1">Legacy Groups are groups that are not compatible with New Group features like admins and more descriptive group updates.</string>
|
||||
<string name="GroupsLearnMore_how_do_i_use_new_groups">How do I use New Groups?</string>
|
||||
<string name="GroupsLearnMore_paragraph_2">Legacy Groups can’t be converted into New Groups, but you can create a New Group with the same members.</string>
|
||||
<string name="GroupsLearnMore_paragraph_3">To create a New Group, all members should update to the latest version of Signal.</string>
|
||||
|
||||
<!-- EOF -->
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -107,6 +107,10 @@
|
|||
<item name="fontFamily">sans-serif</item>
|
||||
</style>
|
||||
|
||||
<style name="TextAppearance.Signal.Body2.Bold">
|
||||
<item name="android:textStyle">bold</item>
|
||||
</style>
|
||||
|
||||
<style name="TextAppearance.Signal.Body1.Bold">
|
||||
<item name="fontFamily">sans-serif-medium</item>
|
||||
</style>
|
||||
|
|
|
@ -190,6 +190,7 @@
|
|||
<item name="android:windowBackground">@color/white</item>
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="secondary_background">@color/core_grey_02</item>
|
||||
<item name="secondary_background_bubble">@drawable/round_background_light</item>
|
||||
<item name="alertDialogTheme">@style/AppCompatAlertDialogStyleLight</item>
|
||||
<item name="android:alertDialogTheme">@style/AppCompatDialogStyleLight</item>
|
||||
<item name="homeAsUpIndicator">@drawable/ic_arrow_left_24</item>
|
||||
|
@ -495,6 +496,7 @@
|
|||
<item name="android:windowBackground">@color/core_grey_95</item>
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="secondary_background">@color/core_grey_90</item>
|
||||
<item name="secondary_background_bubble">@drawable/round_background_dark</item>
|
||||
<item name="alertDialogTheme">@style/AppCompatAlertDialogStyleDark</item>
|
||||
<item name="android:alertDialogTheme">@style/AppCompatDialogStyleDark</item>
|
||||
<item name="homeAsUpIndicator">@drawable/ic_arrow_left_24</item>
|
||||
|
@ -882,7 +884,7 @@
|
|||
<item name="backgroundTint">@color/white</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Signal.RecipientBottomSheet.Light">
|
||||
<style name="Theme.Signal.RoundedBottomSheet.Light">
|
||||
<item name="bottomSheetStyle">@style/Widget.Signal.BottomSheet.Rounded.Light</item>
|
||||
<item name="icon_tint">@color/core_grey_75</item>
|
||||
|
||||
|
@ -890,6 +892,8 @@
|
|||
<item name="title_text_color_primary">@color/core_grey_90</item>
|
||||
<item name="title_text_color_secondary">@color/core_grey_60</item>
|
||||
|
||||
<item name="colorAccent">@color/core_ultramarine</item>
|
||||
|
||||
<item name="android:navigationBarColor" tools:ignore="NewApi">@color/white</item>
|
||||
<item name="android:windowLightNavigationBar" tools:ignore="NewApi">true</item>
|
||||
|
||||
|
@ -902,7 +906,7 @@
|
|||
<item name="recipient_remove_icon">@drawable/ic_leave_tinted_24</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Signal.RecipientBottomSheet" parent="Theme.MaterialComponents.BottomSheetDialog">
|
||||
<style name="Theme.Signal.RoundedBottomSheet" parent="Theme.MaterialComponents.BottomSheetDialog">
|
||||
<item name="android:windowIsFloating">false</item>
|
||||
<item name="bottomSheetStyle">@style/Widget.Signal.BottomSheet.Rounded</item>
|
||||
<item name="icon_tint">@color/core_grey_15</item>
|
||||
|
@ -911,6 +915,8 @@
|
|||
<item name="title_text_color_primary">@color/core_grey_05</item>
|
||||
<item name="title_text_color_secondary">@color/core_grey_25</item>
|
||||
|
||||
<item name="colorAccent">@color/core_ultramarine_light</item>
|
||||
|
||||
<item name="android:navigationBarColor" tools:ignore="NewApi">@color/core_grey_75</item>
|
||||
<item name="android:windowLightNavigationBar" tools:ignore="NewApi">false</item>
|
||||
<item name="android:statusBarColor" tools:ignore="NewApi">@color/transparent</item>
|
||||
|
|
Loading…
Reference in New Issue