diff --git a/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java
index 25595adc7b..0ee0f3c518 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java
@@ -114,6 +114,8 @@ public final class ContactSelectionListFragment extends LoggingFragment
public static final String HIDE_COUNT = "hide_count";
public static final String CAN_SELECT_SELF = "can_select_self";
public static final String DISPLAY_CHIPS = "display_chips";
+ public static final String RV_PADDING_BOTTOM = "recycler_view_padding_bottom";
+ public static final String RV_CLIP = "recycler_view_clipping";
private ConstraintLayout constraintLayout;
private TextView emptyText;
@@ -245,6 +247,15 @@ public final class ContactSelectionListFragment extends LoggingFragment
Intent intent = requireActivity().getIntent();
Bundle arguments = safeArguments();
+ int recyclerViewPadBottom = arguments.getInt(RV_PADDING_BOTTOM, intent.getIntExtra(RV_PADDING_BOTTOM, -1));
+ boolean recyclerViewClipping = arguments.getBoolean(RV_CLIP, intent.getBooleanExtra(RV_CLIP, true));
+
+ if (recyclerViewPadBottom != -1) {
+ ViewUtil.setPaddingBottom(recyclerView, recyclerViewPadBottom);
+ }
+
+ recyclerView.setClipToPadding(recyclerViewClipping);
+
swipeRefresh.setEnabled(arguments.getBoolean(REFRESHABLE, intent.getBooleanExtra(REFRESHABLE, true)));
hideCount = arguments.getBoolean(HIDE_COUNT, intent.getBooleanExtra(HIDE_COUNT, false));
diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/ShareActivity.java b/app/src/main/java/org/thoughtcrime/securesms/sharing/ShareActivity.java
index 1b8f0a372f..ddbb564717 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/sharing/ShareActivity.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/ShareActivity.java
@@ -32,11 +32,9 @@ import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.constraintlayout.widget.ConstraintLayout;
-import androidx.constraintlayout.widget.ConstraintSet;
import androidx.core.util.Consumer;
import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.RecyclerView;
-import androidx.transition.TransitionManager;
import com.annimon.stream.Collectors;
import com.annimon.stream.Stream;
@@ -59,6 +57,7 @@ import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
import org.thoughtcrime.securesms.util.DynamicTheme;
import org.thoughtcrime.securesms.util.FeatureFlags;
import org.thoughtcrime.securesms.util.Util;
+import org.thoughtcrime.securesms.util.ViewUtil;
import org.thoughtcrime.securesms.util.concurrent.SimpleTask;
import org.thoughtcrime.securesms.util.views.SimpleProgressDialog;
import org.whispersystems.libsignal.util.guava.Optional;
@@ -97,6 +96,8 @@ public class ShareActivity extends PassphraseRequiredActivity
private SearchToolbar searchToolbar;
private ImageView searchAction;
private View shareConfirm;
+ private RecyclerView contactsRecycler;
+ private View contactsRecyclerDivider;
private ShareSelectionAdapter adapter;
private boolean disallowMultiShare;
@@ -190,23 +191,21 @@ public class ShareActivity extends PassphraseRequiredActivity
}
private void animateInSelection() {
- TransitionManager.endTransitions(shareContainer);
- TransitionManager.beginDelayedTransition(shareContainer);
-
- ConstraintSet constraintSet = new ConstraintSet();
- constraintSet.clone(shareContainer);
- constraintSet.setVisibility(R.id.selection_group, ConstraintSet.VISIBLE);
- constraintSet.applyTo(shareContainer);
+ contactsRecyclerDivider.animate()
+ .alpha(1f)
+ .translationY(0);
+ contactsRecycler.animate()
+ .alpha(1f)
+ .translationY(0);
}
private void animateOutSelection() {
- TransitionManager.endTransitions(shareContainer);
- TransitionManager.beginDelayedTransition(shareContainer);
-
- ConstraintSet constraintSet = new ConstraintSet();
- constraintSet.clone(shareContainer);
- constraintSet.setVisibility(R.id.selection_group, ConstraintSet.GONE);
- constraintSet.applyTo(shareContainer);
+ contactsRecyclerDivider.animate()
+ .alpha(0f)
+ .translationY(ViewUtil.dpToPx(48));
+ contactsRecycler.animate()
+ .alpha(0f)
+ .translationY(ViewUtil.dpToPx(48));
}
private void initializeIntent() {
@@ -228,6 +227,8 @@ public class ShareActivity extends PassphraseRequiredActivity
getIntent().putExtra(ContactSelectionListFragment.HIDE_COUNT, true);
getIntent().putExtra(ContactSelectionListFragment.DISPLAY_CHIPS, false);
getIntent().putExtra(ContactSelectionListFragment.CAN_SELECT_SELF, true);
+ getIntent().putExtra(ContactSelectionListFragment.RV_CLIP, false);
+ getIntent().putExtra(ContactSelectionListFragment.RV_PADDING_BOTTOM, ViewUtil.dpToPx(48));
}
private void initializeToolbar() {
@@ -242,14 +243,15 @@ public class ShareActivity extends PassphraseRequiredActivity
}
private void initializeResources() {
- searchToolbar = findViewById(R.id.search_toolbar);
- searchAction = findViewById(R.id.search_action);
- shareConfirm = findViewById(R.id.share_confirm);
- shareContainer = findViewById(R.id.container);
- contactsFragment = new ContactSelectionListFragment();
- adapter = new ShareSelectionAdapter();
+ searchToolbar = findViewById(R.id.search_toolbar);
+ searchAction = findViewById(R.id.search_action);
+ shareConfirm = findViewById(R.id.share_confirm);
+ shareContainer = findViewById(R.id.container);
+ contactsFragment = new ContactSelectionListFragment();
+ adapter = new ShareSelectionAdapter();
+ contactsRecycler = findViewById(R.id.selected_list);
+ contactsRecyclerDivider = findViewById(R.id.divider);
- RecyclerView contactsRecycler = findViewById(R.id.selected_list);
contactsRecycler.setAdapter(adapter);
RecyclerView.ItemAnimator itemAnimator = Objects.requireNonNull(contactsRecycler.getItemAnimator());
diff --git a/app/src/main/res/layout/share_activity.xml b/app/src/main/res/layout/share_activity.xml
index cb5b95eaa7..952bcff3d5 100644
--- a/app/src/main/res/layout/share_activity.xml
+++ b/app/src/main/res/layout/share_activity.xml
@@ -42,13 +42,12 @@
-
-
-