New internal testing flag and V1 group creation button. All menus create GV1.
parent
9b32eaeb8a
commit
b9f11dafff
|
@ -251,7 +251,11 @@ public final class ContactSelectionListFragment extends Fragment
|
|||
RecyclerViewConcatenateAdapterStickyHeader concatenateAdapter = new RecyclerViewConcatenateAdapterStickyHeader();
|
||||
|
||||
if (listCallback != null && FeatureFlags.newGroupUI()) {
|
||||
headerAdapter = new FixedViewsAdapter(createNewGroupItem(listCallback));
|
||||
if (FeatureFlags.groupsV2create() && FeatureFlags.groupsV2internalTest()) {
|
||||
headerAdapter = new FixedViewsAdapter(createNewGroupItem(listCallback), createNewGroupsV1GroupItem(listCallback));
|
||||
} else {
|
||||
headerAdapter = new FixedViewsAdapter(createNewGroupItem(listCallback));
|
||||
}
|
||||
headerAdapter.hide();
|
||||
concatenateAdapter.addAdapter(headerAdapter);
|
||||
}
|
||||
|
@ -288,7 +292,14 @@ public final class ContactSelectionListFragment extends Fragment
|
|||
private View createNewGroupItem(@NonNull ListCallback listCallback) {
|
||||
View view = LayoutInflater.from(requireContext())
|
||||
.inflate(R.layout.contact_selection_new_group_item, (ViewGroup) requireView(), false);
|
||||
view.setOnClickListener(v -> listCallback.onNewGroup());
|
||||
view.setOnClickListener(v -> listCallback.onNewGroup(false));
|
||||
return view;
|
||||
}
|
||||
|
||||
private View createNewGroupsV1GroupItem(@NonNull ListCallback listCallback) {
|
||||
View view = LayoutInflater.from(requireContext())
|
||||
.inflate(R.layout.contact_selection_new_group_v1_item, (ViewGroup) requireView(), false);
|
||||
view.setOnClickListener(v -> listCallback.onNewGroup(true));
|
||||
return view;
|
||||
}
|
||||
|
||||
|
@ -592,7 +603,7 @@ public final class ContactSelectionListFragment extends Fragment
|
|||
|
||||
public interface ListCallback {
|
||||
void onInvite();
|
||||
void onNewGroup();
|
||||
void onNewGroup(boolean forceV1);
|
||||
}
|
||||
|
||||
public interface ScrollCallback {
|
||||
|
|
|
@ -78,7 +78,7 @@ public class MainNavigator {
|
|||
}
|
||||
|
||||
public void goToGroupCreation() {
|
||||
activity.startActivity(CreateGroupActivity.newIntent(activity));
|
||||
activity.startActivity(CreateGroupActivity.newIntent(activity, true));
|
||||
}
|
||||
|
||||
public void goToInvite() {
|
||||
|
|
|
@ -83,10 +83,10 @@ public class NewConversationActivity extends ContactSelectionActivity
|
|||
super.onOptionsItemSelected(item);
|
||||
|
||||
switch (item.getItemId()) {
|
||||
case android.R.id.home: super.onBackPressed(); return true;
|
||||
case R.id.menu_refresh: handleManualRefresh(); return true;
|
||||
case R.id.menu_new_group: handleCreateGroup(); return true;
|
||||
case R.id.menu_invite: handleInvite(); return true;
|
||||
case android.R.id.home: super.onBackPressed(); return true;
|
||||
case R.id.menu_refresh: handleManualRefresh(); return true;
|
||||
case R.id.menu_new_group: handleCreateGroup(true); return true;
|
||||
case R.id.menu_invite: handleInvite(); return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -97,8 +97,8 @@ public class NewConversationActivity extends ContactSelectionActivity
|
|||
onRefresh();
|
||||
}
|
||||
|
||||
private void handleCreateGroup() {
|
||||
startActivity(CreateGroupActivity.newIntent(this));
|
||||
private void handleCreateGroup(boolean forceV1) {
|
||||
startActivity(CreateGroupActivity.newIntent(this, forceV1));
|
||||
}
|
||||
|
||||
private void handleInvite() {
|
||||
|
@ -121,8 +121,8 @@ public class NewConversationActivity extends ContactSelectionActivity
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onNewGroup() {
|
||||
handleCreateGroup();
|
||||
public void onNewGroup(boolean forceV1) {
|
||||
handleCreateGroup(forceV1);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,8 +29,8 @@ public class CreateGroupActivity extends ContactSelectionActivity {
|
|||
|
||||
private View next;
|
||||
|
||||
public static Intent newIntent(@NonNull Context context) {
|
||||
if (!FeatureFlags.newGroupUI() || !FeatureFlags.groupsV2create()) {
|
||||
public static Intent newIntent(@NonNull Context context, boolean forceV1) {
|
||||
if (forceV1 || !FeatureFlags.newGroupUI() || !FeatureFlags.groupsV2create()) {
|
||||
return new Intent(context, GroupCreateActivity.class);
|
||||
}
|
||||
|
||||
|
|
|
@ -66,6 +66,7 @@ public final class FeatureFlags {
|
|||
private static final String GROUPS_V2 = "android.groupsv2";
|
||||
private static final String GROUPS_V2_CREATE = "android.groupsv2.create";
|
||||
private static final String GROUPS_V2_CAPACITY = "android.groupsv2.capacity";
|
||||
private static final String GROUPS_V2_INTERNAL_TEST = "android.groupsv2.internalTest";
|
||||
|
||||
/**
|
||||
* We will only store remote values for flags in this set. If you want a flag to be controllable
|
||||
|
@ -89,7 +90,8 @@ public final class FeatureFlags {
|
|||
GROUPS_V2,
|
||||
GROUPS_V2_CREATE,
|
||||
GROUPS_V2_CAPACITY,
|
||||
NEW_GROUP_UI
|
||||
NEW_GROUP_UI,
|
||||
GROUPS_V2_INTERNAL_TEST
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -292,6 +294,11 @@ public final class FeatureFlags {
|
|||
return getInteger(GROUPS_V2_CAPACITY, 100);
|
||||
}
|
||||
|
||||
/** Groups v2 UI for internal testing. */
|
||||
public static boolean groupsV2internalTest() {
|
||||
return groupsV2() && getBoolean(GROUPS_V2_INTERNAL_TEST, false);
|
||||
}
|
||||
|
||||
/** Only for rendering debug info. */
|
||||
public static synchronized @NonNull Map<String, Object> getMemoryValues() {
|
||||
return new TreeMap<>(REMOTE_VALUES);
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextView 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"
|
||||
style="@style/Signal.Text.Body"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/contact_selection_item_height"
|
||||
android:drawablePadding="16dp"
|
||||
android:ellipsize="marquee"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:gravity="center_vertical|start"
|
||||
android:labelFor="@id/action_icon"
|
||||
android:paddingStart="@dimen/selection_item_header_width"
|
||||
android:singleLine="true"
|
||||
android:text="@string/contact_selection_activity__new_gv1_group"
|
||||
android:textAlignment="viewStart"
|
||||
app:drawableStartCompat="?attr/contact_selection_new_group_icon"
|
||||
tools:ignore="RtlSymmetry" />
|
|
@ -1353,6 +1353,8 @@
|
|||
<string name="contact_selection_activity__enter_name_or_number">Enter name or number</string>
|
||||
<string name="contact_selection_activity__invite_to_signal">Invite to Signal</string>
|
||||
<string name="contact_selection_activity__new_group">New group</string>
|
||||
<!-- temporary for internal testing -->
|
||||
<string name="contact_selection_activity__new_gv1_group" translatable="false">New old style group (GV1)</string>
|
||||
|
||||
<!-- contact_filter_toolbar -->
|
||||
<string name="contact_filter_toolbar__clear_entered_text_description">Clear entered text</string>
|
||||
|
|
Loading…
Reference in New Issue