android: Remove DividerItemDecoration
Removed in favor of material components version
This commit is contained in:
		| @@ -1,130 +0,0 @@ | ||||
| package org.yuzu.yuzu_emu.ui; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.content.res.TypedArray; | ||||
| import android.graphics.Canvas; | ||||
| import android.graphics.Rect; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.util.AttributeSet; | ||||
| import android.view.View; | ||||
|  | ||||
| import androidx.annotation.NonNull; | ||||
| import androidx.recyclerview.widget.LinearLayoutManager; | ||||
| import androidx.recyclerview.widget.RecyclerView; | ||||
|  | ||||
| /** | ||||
|  * Implementation from: | ||||
|  * https://gist.github.com/lapastillaroja/858caf1a82791b6c1a36 | ||||
|  */ | ||||
| public class DividerItemDecoration extends RecyclerView.ItemDecoration { | ||||
|  | ||||
|     private Drawable mDivider; | ||||
|     private boolean mShowFirstDivider = false; | ||||
|     private boolean mShowLastDivider = false; | ||||
|  | ||||
|     public DividerItemDecoration(Context context, AttributeSet attrs) { | ||||
|         final TypedArray a = context | ||||
|                 .obtainStyledAttributes(attrs, new int[]{android.R.attr.listDivider}); | ||||
|         mDivider = a.getDrawable(0); | ||||
|         a.recycle(); | ||||
|     } | ||||
|  | ||||
|     public DividerItemDecoration(Context context, AttributeSet attrs, boolean showFirstDivider, | ||||
|                                  boolean showLastDivider) { | ||||
|         this(context, attrs); | ||||
|         mShowFirstDivider = showFirstDivider; | ||||
|         mShowLastDivider = showLastDivider; | ||||
|     } | ||||
|  | ||||
|     public DividerItemDecoration(Drawable divider) { | ||||
|         mDivider = divider; | ||||
|     } | ||||
|  | ||||
|     public DividerItemDecoration(Drawable divider, boolean showFirstDivider, | ||||
|                                  boolean showLastDivider) { | ||||
|         this(divider); | ||||
|         mShowFirstDivider = showFirstDivider; | ||||
|         mShowLastDivider = showLastDivider; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, | ||||
|                                @NonNull RecyclerView.State state) { | ||||
|         super.getItemOffsets(outRect, view, parent, state); | ||||
|         if (mDivider == null) { | ||||
|             return; | ||||
|         } | ||||
|         if (parent.getChildAdapterPosition(view) < 1) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if (getOrientation(parent) == LinearLayoutManager.VERTICAL) { | ||||
|             outRect.top = mDivider.getIntrinsicHeight(); | ||||
|         } else { | ||||
|             outRect.left = mDivider.getIntrinsicWidth(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onDrawOver(@NonNull Canvas c, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { | ||||
|         if (mDivider == null) { | ||||
|             super.onDrawOver(c, parent, state); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         // Initialization needed to avoid compiler warning | ||||
|         int left = 0, right = 0, top = 0, bottom = 0, size; | ||||
|         int orientation = getOrientation(parent); | ||||
|         int childCount = parent.getChildCount(); | ||||
|  | ||||
|         if (orientation == LinearLayoutManager.VERTICAL) { | ||||
|             size = mDivider.getIntrinsicHeight(); | ||||
|             left = parent.getPaddingLeft(); | ||||
|             right = parent.getWidth() - parent.getPaddingRight(); | ||||
|         } else { //horizontal | ||||
|             size = mDivider.getIntrinsicWidth(); | ||||
|             top = parent.getPaddingTop(); | ||||
|             bottom = parent.getHeight() - parent.getPaddingBottom(); | ||||
|         } | ||||
|  | ||||
|         for (int i = mShowFirstDivider ? 0 : 1; i < childCount; i++) { | ||||
|             View child = parent.getChildAt(i); | ||||
|             RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams(); | ||||
|  | ||||
|             if (orientation == LinearLayoutManager.VERTICAL) { | ||||
|                 top = child.getTop() - params.topMargin; | ||||
|                 bottom = top + size; | ||||
|             } else { //horizontal | ||||
|                 left = child.getLeft() - params.leftMargin; | ||||
|                 right = left + size; | ||||
|             } | ||||
|             mDivider.setBounds(left, top, right, bottom); | ||||
|             mDivider.draw(c); | ||||
|         } | ||||
|  | ||||
|         // show last divider | ||||
|         if (mShowLastDivider && childCount > 0) { | ||||
|             View child = parent.getChildAt(childCount - 1); | ||||
|             RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams(); | ||||
|             if (orientation == LinearLayoutManager.VERTICAL) { | ||||
|                 top = child.getBottom() + params.bottomMargin; | ||||
|                 bottom = top + size; | ||||
|             } else { // horizontal | ||||
|                 left = child.getRight() + params.rightMargin; | ||||
|                 right = left + size; | ||||
|             } | ||||
|             mDivider.setBounds(left, top, right, bottom); | ||||
|             mDivider.draw(c); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private int getOrientation(RecyclerView parent) { | ||||
|         if (parent.getLayoutManager() instanceof LinearLayoutManager) { | ||||
|             LinearLayoutManager layoutManager = (LinearLayoutManager) parent.getLayoutManager(); | ||||
|             return layoutManager.getOrientation(); | ||||
|         } else { | ||||
|             throw new IllegalStateException( | ||||
|                     "DividerItemDecoration can only be used with a LinearLayoutManager."); | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Charles Lombardo
					Charles Lombardo