mirror of
https://github.com/oxen-io/session-android.git
synced 2025-12-31 00:16:19 +00:00
New internal testing flag and V1 group creation button. All menus create GV1.
This commit is contained in:
committed by
Greyson Parrelli
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);
|
||||
|
||||
Reference in New Issue
Block a user