From 25d5b0d31c80104faefba5b4d3d7026a98371804 Mon Sep 17 00:00:00 2001 From: Jonathan Almeida Date: Tue, 14 Apr 2020 19:03:27 -0400 Subject: [PATCH] For #8422: Add spacing between migration items --- .../migration/MigrationProgressActivity.kt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/migration/MigrationProgressActivity.kt b/app/src/main/java/org/mozilla/fenix/migration/MigrationProgressActivity.kt index 18723fbb6..d7cb1f525 100644 --- a/app/src/main/java/org/mozilla/fenix/migration/MigrationProgressActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/migration/MigrationProgressActivity.kt @@ -5,10 +5,12 @@ package org.mozilla.fenix.migration import android.content.Intent +import android.graphics.Rect import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.annotation.DimenRes import androidx.core.content.ContextCompat import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.LinearLayoutManager @@ -52,6 +54,8 @@ class MigrationProgressActivity : AbstractMigrationProgressActivity() { } migration_status_list.apply { + val margin = resources.getDimensionPixelSize(R.dimen.migration_margin) + addItemDecoration(MigrationStatusItemDecoration(margin)) layoutManager = LinearLayoutManager(this@MigrationProgressActivity) adapter = statusAdapter } @@ -158,3 +162,23 @@ internal class MigrationStatusAdapter : oldItem.status == newItem.status } } + +internal class MigrationStatusItemDecoration( + @DimenRes private val spacing: Int +) : RecyclerView.ItemDecoration() { + + override fun getItemOffsets( + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State + ) { + val position = parent.getChildViewHolder(view).adapterPosition + val itemCount = state.itemCount + + outRect.left = spacing + outRect.right = spacing + outRect.top = spacing + outRect.bottom = if (position == itemCount - 1) spacing else 0 + } +}