diff --git a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java index 9727b907d276859b8528e5fe5425c5c1364a0e7a..fb621578e783237940468004da08a50a33d94703 100644 --- a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java +++ b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java @@ -327,8 +327,7 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements ((JamiApplication) requireActivity().getApplication()).getInjectionComponent().inject(this); binding = DataBindingUtil.inflate(inflater, R.layout.frag_call, container, false); binding.setPresenter(this); - rp = new RecyclerPicker(requireActivity(), - binding.recyclerPicker, + rp = new RecyclerPicker(binding.recyclerPicker, R.layout.item_picker, LinearLayout.HORIZONTAL, this); rp.setFirstLastElementsWidths(112, 112); @@ -1274,13 +1273,7 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements } private void stopShareScreen() { - if(choosePluginMode) - { - binding.previewSurface.setVisibility(View.VISIBLE); - } - else { - binding.previewSurface.setVisibility(View.VISIBLE); - } + binding.previewSurface.setVisibility(View.VISIBLE); presenter.stopScreenShare(); } @@ -1357,7 +1350,6 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements // Reset the padding of the RecyclerPicker on each rp.setFirstLastElementsWidths(112, 112); binding.recyclerPicker.setVisibility(View.GONE); - Log.i("ZZZ", "Height: " + binding.recyclerPicker.getHeight()); if (choosePluginMode) { displayHangupButton(false); binding.recyclerPicker.setVisibility(View.VISIBLE); diff --git a/ring-android/app/src/main/java/cx/ring/plugins/RecyclerPicker/RecyclerPicker.java b/ring-android/app/src/main/java/cx/ring/plugins/RecyclerPicker/RecyclerPicker.java index fd1a83b1e72e544242b01c6f92548aa3af3a7dc7..d9557859789aec6759154857e982116f5d48f460 100644 --- a/ring-android/app/src/main/java/cx/ring/plugins/RecyclerPicker/RecyclerPicker.java +++ b/ring-android/app/src/main/java/cx/ring/plugins/RecyclerPicker/RecyclerPicker.java @@ -1,6 +1,5 @@ package cx.ring.plugins.RecyclerPicker; - import android.content.Context; import android.graphics.drawable.Drawable; import android.view.View; @@ -11,7 +10,6 @@ import androidx.recyclerview.widget.RecyclerView; import java.util.List; public class RecyclerPicker implements RecyclerPickerAdapter.ItemClickListener{ - private Context mContext; private RecyclerView mRecyclerView; private int mItemLayoutResource; private RecyclerPickerAdapter mAdapter; @@ -21,14 +19,13 @@ public class RecyclerPicker implements RecyclerPickerAdapter.ItemClickListener{ private int paddingLeft; private int paddingRight; - public RecyclerPicker(Context context, RecyclerView recyclerView, + public RecyclerPicker(RecyclerView recyclerView, @LayoutRes int recyclerItemLayout, int orientation, RecyclerPickerLayoutManager.ItemSelectedListener listener) { - this.mContext = context; - this.mRecyclerView = recyclerView; - this.mItemLayoutResource = recyclerItemLayout; - this.mOrientation = orientation; - this.mItemSelectedListener = listener; + mRecyclerView = recyclerView; + mItemLayoutResource = recyclerItemLayout; + mOrientation = orientation; + mItemSelectedListener = listener; init(); } @@ -37,12 +34,12 @@ public class RecyclerPicker implements RecyclerPickerAdapter.ItemClickListener{ // in content do not change the layout size of the RecyclerView mRecyclerView.setHasFixedSize(true); // use a linear layout manager - mLayoutManager = new RecyclerPickerLayoutManager(mContext, mOrientation,false, + mLayoutManager = new RecyclerPickerLayoutManager(mRecyclerView.getContext(), mOrientation,false, mItemSelectedListener); mRecyclerView.setLayoutManager(mLayoutManager); // specify an adapter (see also next example) - mAdapter = new RecyclerPickerAdapter(mItemLayoutResource, this); + mAdapter = new RecyclerPickerAdapter(mRecyclerView.getContext(), mItemLayoutResource, this); mRecyclerView.setAdapter(mAdapter); setRecyclerViewPadding(); } @@ -55,26 +52,23 @@ public class RecyclerPicker implements RecyclerPickerAdapter.ItemClickListener{ public void onItemClicked(View view) { int position = mRecyclerView.getChildLayoutPosition(view); int currentPos = mLayoutManager.findFirstVisibleItemPosition(); - if(position != currentPos) { + if (position != currentPos) { mRecyclerView.smoothScrollToPosition(position); mItemSelectedListener.onItemSelected(position); } else { mItemSelectedListener.onItemClicked(position); } - } public void setFirstLastElementsWidths(int first, int last){ - paddingLeft = RecyclerPickerUtils.getScreenWidth(mContext)/2 - RecyclerPickerUtils. - dpToPx(mContext, first/2); - paddingRight = RecyclerPickerUtils.getScreenWidth(mContext)/2 - RecyclerPickerUtils. - dpToPx(mContext, last/2); + paddingLeft = RecyclerPickerUtils.getScreenWidth(mRecyclerView.getContext())/2 - RecyclerPickerUtils.dpToPx(mRecyclerView.getContext(), first/2); + paddingRight = RecyclerPickerUtils.getScreenWidth(mRecyclerView.getContext())/2 - RecyclerPickerUtils.dpToPx(mRecyclerView.getContext(), last/2); updateRecyclerViewPadding(); } private void setRecyclerViewPadding() { - paddingLeft = RecyclerPickerUtils.getScreenWidth(mContext)/2; - paddingRight = RecyclerPickerUtils.getScreenWidth(mContext)/2; + paddingLeft = RecyclerPickerUtils.getScreenWidth(mRecyclerView.getContext())/2; + paddingRight = RecyclerPickerUtils.getScreenWidth(mRecyclerView.getContext())/2; updateRecyclerViewPadding(); } diff --git a/ring-android/app/src/main/java/cx/ring/plugins/RecyclerPicker/RecyclerPickerAdapter.java b/ring-android/app/src/main/java/cx/ring/plugins/RecyclerPicker/RecyclerPickerAdapter.java index d32453bac8781b59c6e8662d98bf01548fad1993..bc68a09e9e5b45c545a48c7a50fee4437015ff8f 100644 --- a/ring-android/app/src/main/java/cx/ring/plugins/RecyclerPicker/RecyclerPickerAdapter.java +++ b/ring-android/app/src/main/java/cx/ring/plugins/RecyclerPicker/RecyclerPickerAdapter.java @@ -1,5 +1,6 @@ package cx.ring.plugins.RecyclerPicker; +import android.content.Context; import android.graphics.drawable.Drawable; import android.view.LayoutInflater; import android.view.View; @@ -18,23 +19,19 @@ public class RecyclerPickerAdapter extends RecyclerView.Adapter<RecyclerPickerAd private List<Drawable> mList; private ItemClickListener mItemClickListener; private int mItemLayoutResource; + private final LayoutInflater mInflater; - public RecyclerPickerAdapter(@LayoutRes int recyclerItemLayout, ItemClickListener itemClickListener) { + public RecyclerPickerAdapter(Context ctx, @LayoutRes int recyclerItemLayout, ItemClickListener itemClickListener) { this.mItemLayoutResource = recyclerItemLayout; this.mItemClickListener = itemClickListener; + mInflater = LayoutInflater.from(ctx); } @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = LayoutInflater.from(parent.getContext()) - .inflate(mItemLayoutResource, parent, false); - view.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - mItemClickListener.onItemClicked(v); - } - }); + View view = mInflater.inflate(mItemLayoutResource, parent, false); + view.setOnClickListener(v -> mItemClickListener.onItemClicked(v)); return new ItemViewHolder(view); } diff --git a/ring-android/app/src/main/res/layout/frag_call.xml b/ring-android/app/src/main/res/layout/frag_call.xml index b5150977ec7e7fb6f79ba88cab74e06aea5c9d28..c313376bd7a282c4ce84c3047fb9a388dbe657c7 100644 --- a/ring-android/app/src/main/res/layout/frag_call.xml +++ b/ring-android/app/src/main/res/layout/frag_call.xml @@ -370,20 +370,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. app:useCompatPadding="true" /> </RelativeLayout> - <androidx.constraintlayout.widget.ConstraintLayout - android:layout_width="match_parent" - android:layout_height="match_parent"> - <androidx.recyclerview.widget.RecyclerView - android:id="@+id/recycler_picker" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:visibility="gone" - android:layout_marginBottom="16dp" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintStart_toStartOf="parent" - android:clipToPadding="false" - tools:listitem="@layout/item_picker"/> - </androidx.constraintlayout.widget.ConstraintLayout> + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/recycler_picker" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:visibility="gone" + android:layout_marginBottom="16dp" + android:layout_gravity="bottom" + android:clipToPadding="false" + tools:listitem="@layout/item_picker" + android:orientation="horizontal" + app:layoutManager="LinearLayoutManager"/> </FrameLayout> </layout> \ No newline at end of file