From aac39f97f2598c6776bf8289ab7b3a8dcf7fcd00 Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Fri, 8 Feb 2019 16:49:14 -0800 Subject: [PATCH] For #355 - Creates ViewHolder for HistoryItem --- .../fenix/library/history/HistoryComponent.kt | 14 +++++- .../fenix/library/history/HistoryUIView.kt | 43 ++++++++++++------- app/src/main/res/layout/history_list_item.xml | 35 ++++++++++++--- app/src/main/res/values/colors.xml | 3 ++ 4 files changed, 72 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryComponent.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryComponent.kt index 90566d9d9..34501cf4e 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryComponent.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryComponent.kt @@ -9,8 +9,20 @@ import org.mozilla.fenix.mvi.ActionBusFactory import org.mozilla.fenix.mvi.Change import org.mozilla.fenix.mvi.UIComponent import org.mozilla.fenix.mvi.ViewState +import java.net.URL -data class HistoryItem(val url: String) +data class HistoryItem(val url: String) { + val title: String + get() = siteTitle() + + private fun siteTitle(): String { + return try { + URL(url).host + } catch (e: Exception) { + url + } + } +} class HistoryComponent( private val container: ViewGroup, diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryUIView.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryUIView.kt index b7b715105..f1dde63fb 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryUIView.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryUIView.kt @@ -9,10 +9,12 @@ import android.content.Context import android.graphics.Color import android.os.Build import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup import android.widget.RelativeLayout import android.widget.TextView import androidx.annotation.RequiresApi +import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import io.reactivex.Observable @@ -44,8 +46,20 @@ class HistoryUIView( } } -private class HistoryAdapter(val context: Context) : RecyclerView.Adapter() { - class ViewHolder(val textView: TextView) : RecyclerView.ViewHolder(textView) +private class HistoryAdapter(val context: Context) : RecyclerView.Adapter() { + class HistoryListItemViewHolder(val view: View) : RecyclerView.ViewHolder(view) { + private var title = view.findViewById(R.id.history_title) + private var url = view.findViewById(R.id.history_url) + + fun bind(item: HistoryItem) { + title.text = item.title + url.text = item.url + } + + companion object { + const val LAYOUT_ID = R.layout.history_list_item + } + } private var items: List = emptyList() @@ -54,23 +68,20 @@ private class HistoryAdapter(val context: Context) : RecyclerView.Adapter - + android:layout_height="wrap_content" + android:padding="4dp" + android:paddingStart="20dp" + xmlns:app="http://schemas.android.com/apk/res-auto"> - \ No newline at end of file + android:layout_marginTop="8dp" + android:textColor="@color/history_title" + android:textSize="18sp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 506ff91e3..d2dacc570 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -50,4 +50,7 @@ #FFF4C3 #C13905 + + #000000 + #696A6A