1 /* 2 * Copyright (C) 2022 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.android.systemui.util.recycler 17 18 import android.graphics.Rect 19 import android.view.View 20 import androidx.annotation.Dimension 21 import androidx.recyclerview.widget.RecyclerView 22 23 /** 24 * RecyclerView ItemDecorator that adds a horizontal space of the given size between items 25 * and double that space on the ends. 26 */ 27 class HorizontalSpacerItemDecoration(@Dimension private val offset: Int) : 28 RecyclerView.ItemDecoration() { 29 getItemOffsetsnull30 override fun getItemOffsets( 31 outRect: Rect, 32 view: View, 33 parent: RecyclerView, 34 state: RecyclerView.State 35 ) { 36 val position: Int = parent.getChildAdapterPosition(view) 37 val itemCount = parent.adapter?.itemCount ?: 0 38 39 val left = if (position == 0) offset * 2 else offset 40 val right = if (position == itemCount - 1) offset * 2 else offset 41 42 outRect.set(left, 0, right, 0) 43 } 44 } 45