diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryAdapter.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryAdapter.kt index 3f45b275b..8109b1e1b 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryAdapter.kt @@ -14,6 +14,7 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import io.reactivex.Observer import org.mozilla.fenix.R +import androidx.core.content.ContextCompat class HistoryAdapter( private val actionEmitter: Observer @@ -111,6 +112,24 @@ class HistoryAdapter( } } + class HistoryDeleteViewHolder( + view: View + ) : RecyclerView.ViewHolder(view) { + private val button = view.findViewById(R.id.delete_history_button) + private val text = view.findViewById(R.id.delete_history_button_text).apply { + val color = ContextCompat.getColor(context, R.color.photonRed60) + val drawable = ContextCompat.getDrawable(context, R.drawable.ic_delete) + drawable?.setTint(color) + this.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null) + } + + fun bind() { } + + companion object { + const val LAYOUT_ID = R.layout.history_delete + } + } + private var items: List = emptyList() private var mode: HistoryState.Mode = HistoryState.Mode.Normal @@ -124,6 +143,7 @@ class HistoryAdapter( val view = LayoutInflater.from(parent.context).inflate(viewType, parent, false) return when (viewType) { + HistoryDeleteViewHolder.LAYOUT_ID -> HistoryDeleteViewHolder(view) HistoryHeaderViewHolder.LAYOUT_ID -> HistoryHeaderViewHolder(view) HistoryListItemViewHolder.LAYOUT_ID -> HistoryListItemViewHolder(view, actionEmitter) else -> throw IllegalStateException("viewType $viewType does not match to a ViewHolder") @@ -132,7 +152,8 @@ class HistoryAdapter( override fun getItemViewType(position: Int): Int { return when (position) { - 0 -> HistoryHeaderViewHolder.LAYOUT_ID + 0 -> HistoryDeleteViewHolder.LAYOUT_ID + 1 -> HistoryHeaderViewHolder.LAYOUT_ID else -> HistoryListItemViewHolder.LAYOUT_ID } } @@ -147,6 +168,6 @@ class HistoryAdapter( } companion object { - private const val NUMBER_OF_SECTIONS = 1 + private const val NUMBER_OF_SECTIONS = 2 } } 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 46061d62e..d9368a553 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 @@ -78,7 +78,7 @@ data class HistoryState(val items: List, val mode: Mode) : ViewStat sealed class HistoryAction : Action { data class Select(val item: HistoryItem) : HistoryAction() data class EnterEditMode(val item: HistoryItem) : HistoryAction() - object onBackPressed : HistoryAction() + object BackPressed : HistoryAction() data class AddItemForRemoval(val item: HistoryItem) : HistoryAction() data class RemoveItemForRemoval(val item: HistoryItem) : HistoryAction() } diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt index 972768a19..d03953f6a 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt @@ -67,7 +67,7 @@ class HistoryFragment : Fragment(), CoroutineScope, BackHandler { .onNext(HistoryChange.AddItemForRemoval(it.item)) is HistoryAction.RemoveItemForRemoval -> getManagedEmitter() .onNext(HistoryChange.RemoveItemForRemoval(it.item)) - is HistoryAction.onBackPressed -> getManagedEmitter() + is HistoryAction.BackPressed -> getManagedEmitter() .onNext(HistoryChange.ExitEditMode) } } @@ -125,7 +125,7 @@ class HistoryFragment : Fragment(), CoroutineScope, BackHandler { } override fun onBackPressed(): Boolean { - if((historyComponent.uiView as HistoryUIView).onBackPressed()) { return true } + if ((historyComponent.uiView as HistoryUIView).onBackPressed()) { return true } return false } } 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 191a07bce..502f4f298 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 @@ -44,7 +44,7 @@ class HistoryUIView( override fun onBackPressed(): Boolean { if (mode is HistoryState.Mode.Editing) { - actionEmitter.onNext(HistoryAction.onBackPressed) + actionEmitter.onNext(HistoryAction.BackPressed) return true } diff --git a/app/src/main/res/drawable/delete_history_background.xml b/app/src/main/res/drawable/delete_history_background.xml new file mode 100644 index 000000000..79c99d183 --- /dev/null +++ b/app/src/main/res/drawable/delete_history_background.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/history_delete.xml b/app/src/main/res/layout/history_delete.xml new file mode 100644 index 000000000..715fdc2a3 --- /dev/null +++ b/app/src/main/res/layout/history_delete.xml @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/history_list_item.xml b/app/src/main/res/layout/history_list_item.xml index 48269c011..c52978e7f 100644 --- a/app/src/main/res/layout/history_list_item.xml +++ b/app/src/main/res/layout/history_list_item.xml @@ -27,7 +27,7 @@ #202340 #D81B60 + #F2F2F5 + #212121 #6b6b6b #F2F2F5