Add support for manual initiation of GV1->GV2 migrations.

This commit is contained in:
Greyson Parrelli
2020-11-12 09:52:21 -05:00
committed by GitHub
parent 4eaa6ebb47
commit 7e347f5cce
27 changed files with 1161 additions and 424 deletions

View File

@@ -0,0 +1,182 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="14dp"
android:paddingEnd="14dp"
android:orientation="vertical"
tools:theme="@style/Theme.Signal.RoundedBottomSheet.Light">
<TextView
android:id="@+id/gv1_migrate_title"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_marginStart="20dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="20dp"
android:text="@string/GroupsV1MigrationInitiation_upgrade_to_new_group"
android:textAppearance="@style/TextAppearance.Signal.Title1"
android:textColor="@color/signal_text_primary"
android:gravity="center" />
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="23dp"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:src="@drawable/paragraph_marker" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="14dp"
android:text="@string/GroupsV1MigrationInitiation_new_groups_have_features_like_mentions"
android:textAppearance="@style/TextAppearance.Signal.Body1"
android:textColor="@color/signal_text_primary" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="23dp"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:src="@drawable/paragraph_marker" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="14dp"
android:text="@string/GroupsV1MigrationInitiation_all_message_history_and_media_will_be_kept"
android:textAppearance="@style/TextAppearance.Signal.Body1"
android:textColor="@color/signal_text_primary" />
</LinearLayout>
<LinearLayout
android:id="@+id/gv1_migrate_invite_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="23dp"
android:orientation="horizontal"
android:visibility="gone"
tools:visibility="visible">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:src="@drawable/paragraph_marker" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="14dp"
android:orientation="vertical">
<TextView
android:id="@+id/gv1_migrate_invite_title"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textAppearance="@style/TextAppearance.Signal.Body1"
android:textColor="@color/signal_text_primary"
tools:text="Plurized string for invited members." />
<org.thoughtcrime.securesms.groups.ui.GroupMemberListView
android:id="@+id/gv1_migrate_invite_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="-12dp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/gv1_migrate_ineligible_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="23dp"
android:orientation="horizontal"
android:visibility="gone"
tools:visibility="visible">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:src="@drawable/paragraph_marker" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="14dp"
android:orientation="vertical">
<TextView
android:id="@+id/gv1_migrate_ineligible_title"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textAppearance="@style/TextAppearance.Signal.Body1"
android:textColor="@color/signal_text_primary"
tools:text="Plurized string for ineligible members." />
<org.thoughtcrime.securesms.groups.ui.GroupMemberListView
android:id="@+id/gv1_migrate_ineligible_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="-12dp" />
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/gv1_migrate_upgrade_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
style="@style/Button.Primary"
android:text="@string/GroupsV1MigrationInitiation_upgrade_this_group" />
<Button
android:id="@+id/gv1_migrate_cancel_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
style="@style/Button.Borderless"
android:text="@android:string/cancel" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>

View File

@@ -22,89 +22,112 @@
android:textColor="@color/signal_text_primary"
android:gravity="center" />
<LinearLayout
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="23dp"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:src="@drawable/paragraph_marker" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="14dp"
android:text="@string/GroupsV1MigrationLearnMore_new_groups_have_features_like_mentions"
android:textAppearance="@style/TextAppearance.Signal.Body1"
android:textColor="@color/signal_text_primary" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="23dp"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:src="@drawable/paragraph_marker" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="14dp"
android:text="@string/GroupsV1MigrationLearnMore_all_message_history_and_media_has_been_kept"
android:textAppearance="@style/TextAppearance.Signal.Body1"
android:textColor="@color/signal_text_primary" />
</LinearLayout>
<LinearLayout
android:id="@+id/gv1_learn_more_pending_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="23dp"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:src="@drawable/paragraph_marker" />
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="14dp"
android:orientation="vertical">
<TextView
android:id="@+id/gv1_learn_more_pending_title"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textAppearance="@style/TextAppearance.Signal.Body1"
android:textColor="@color/signal_text_primary"
tools:text="Plurized string for pending members." />
<org.thoughtcrime.securesms.groups.ui.GroupMemberListView
android:id="@+id/gv1_learn_more_pending_list"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="-12dp"/>
android:layout_marginTop="23dp"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:src="@drawable/paragraph_marker" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="14dp"
android:text="@string/GroupsV1MigrationLearnMore_new_groups_have_features_like_mentions"
android:textAppearance="@style/TextAppearance.Signal.Body1"
android:textColor="@color/signal_text_primary" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="23dp"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:src="@drawable/paragraph_marker" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="14dp"
android:text="@string/GroupsV1MigrationLearnMore_all_message_history_and_media_has_been_kept"
android:textAppearance="@style/TextAppearance.Signal.Body1"
android:textColor="@color/signal_text_primary" />
</LinearLayout>
<LinearLayout
android:id="@+id/gv1_learn_more_pending_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="23dp"
android:orientation="horizontal"
android:visibility="gone"
tools:visibility="visible">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:src="@drawable/paragraph_marker" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="14dp"
android:orientation="vertical">
<TextView
android:id="@+id/gv1_learn_more_pending_title"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textAppearance="@style/TextAppearance.Signal.Body1"
android:textColor="@color/signal_text_primary"
tools:text="Plurized string for pending members." />
<org.thoughtcrime.securesms.groups.ui.GroupMemberListView
android:id="@+id/gv1_learn_more_pending_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="-12dp"/>
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/gv1_learn_more_ok_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
style="@style/Button.Primary"
android:text="@android:string/ok" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>

View File

@@ -11,4 +11,7 @@
<item name="reminder_action_gv1_suggestion_not_now" type="id" />
<item name="reminder_action_gv1_suggestion_add_members" type="id" />
<item name="reminder_action_gv1_initiation_not_now" type="id" />
<item name="reminder_action_gv1_initiation_update_group" type="id" />
</resources>

View File

@@ -561,10 +561,27 @@
<item quantity="one">This member will need to accept an invite to join this group again and will not receive group messages until they accept:</item>
<item quantity="other">These members will need to accept an invite to join this group again and will not receive group messages until they accept:</item>
</plurals>
<plurals name="GroupsV1MigrationLearnMore_these_members_are_not_capable_of_joining_new_groups">
<item quantity="one">This member is not capable of joining New Groups, and has been removed from the group:</item>
<item quantity="other">These members are not capable of joining New Groups, and have been removed from the group:</item>
<!-- GroupsV1MigrationInitiationBottomSheetDialogFragment -->
<string name="GroupsV1MigrationInitiation_upgrade_to_new_group">Upgrade to New Group</string>
<string name="GroupsV1MigrationInitiation_upgrade_this_group">Upgrade this group</string>
<string name="GroupsV1MigrationInitiation_new_groups_have_features_like_mentions">New Groups have features like @mentions and group admins, and will support more features in the future.</string>
<string name="GroupsV1MigrationInitiation_all_message_history_and_media_will_be_kept">All message history and media will be kept from before the upgrade.</string>
<string name="GroupsV1MigrationInitiation_encountered_a_network_error">Encountered a network error. Try again later.</string>
<string name="GroupsV1MigrationInitiation_failed_to_upgrade">Failed to upgrade.</string>
<plurals name="GroupsV1MigrationInitiation_these_members_will_need_to_accept_an_invite">
<item quantity="one">This member will need to accept an invite to join this group again and will not receive group messages until they accept:</item>
<item quantity="other">These members will need to accept an invite to join this group again and will not receive group messages until they accept:</item>
</plurals>
<plurals name="GroupsV1MigrationInitiation_these_members_are_not_capable_of_joining_new_groups">
<item quantity="one">This member is not capable of joining New Groups, and will be removed from the group:</item>
<item quantity="other">These members are not capable of joining New Groups, and will be removed from the group:</item>
</plurals>
<!-- GroupsV1MigrationInitiationReminder -->
<string name="GroupsV1MigrationInitiationReminder_to_access_new_features_like_mentions">To access new features like @mentions and admins, upgrade this group.</string>
<string name="GroupsV1MigrationInitiationReminder_not_now">Not now</string>
<string name="GroupsV1MigrationInitiationReminder_update_group">Update group</string>
<!-- GroupsV1MigrationSuggestionsReminder -->
<plurals name="GroupsV1MigrationSuggestionsReminder_members_couldnt_be_added_to_the_new_group">
@@ -731,6 +748,9 @@
<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. Features like group admins are only available for New Groups.</string>
<string name="ManageGroupActivity_legacy_group_upgrade">This is a Legacy Group. To access new features like @mentions and admins,</string>
<string name="ManageGroupActivity_legacy_group_too_large">This Legacy Group cant be upgraded to a New Group because it is too large. The maximum group size is %1$d.</string>
<string name="ManageGroupActivity_upgrade_this_group">upgrade this group.</string>
<string name="ManageGroupActivity_this_is_an_insecure_mms_group">This is an insecure MMS Group. To chat privately and access features like group names, invite your contacts to Signal.</string>
<string name="ManageGroupActivity_invite_now">Invite now</string>