mirror of
https://github.com/fork-maintainers/iceraven-browser
synced 2024-11-11 13:11:01 +00:00
For #14145 - Add pinned badge for pinned sites
This commit is contained in:
parent
75aa2d413a
commit
05857ba55d
@ -16,6 +16,7 @@ import mozilla.components.browser.menu.item.SimpleBrowserMenuItem
|
|||||||
import mozilla.components.feature.top.sites.TopSite
|
import mozilla.components.feature.top.sites.TopSite
|
||||||
import mozilla.components.feature.top.sites.TopSite.Type.DEFAULT
|
import mozilla.components.feature.top.sites.TopSite.Type.DEFAULT
|
||||||
import mozilla.components.feature.top.sites.TopSite.Type.FRECENT
|
import mozilla.components.feature.top.sites.TopSite.Type.FRECENT
|
||||||
|
import mozilla.components.feature.top.sites.TopSite.Type.PINNED
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.ext.components
|
import org.mozilla.fenix.ext.components
|
||||||
import org.mozilla.fenix.ext.loadIntoView
|
import org.mozilla.fenix.ext.loadIntoView
|
||||||
@ -54,8 +55,14 @@ class TopSiteItemViewHolder(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun bind(topSite: TopSite) {
|
fun bind(topSite: TopSite) {
|
||||||
this.topSite = topSite
|
|
||||||
top_site_title.text = topSite.title
|
top_site_title.text = topSite.title
|
||||||
|
|
||||||
|
pin_indicator.visibility = if (topSite.type == PINNED) {
|
||||||
|
View.VISIBLE
|
||||||
|
} else {
|
||||||
|
View.GONE
|
||||||
|
}
|
||||||
|
|
||||||
when (topSite.url) {
|
when (topSite.url) {
|
||||||
SupportUtils.POCKET_TRENDING_URL -> {
|
SupportUtils.POCKET_TRENDING_URL -> {
|
||||||
favicon_image.setImageDrawable(getDrawable(itemView.context, R.drawable.ic_pocket))
|
favicon_image.setImageDrawable(getDrawable(itemView.context, R.drawable.ic_pocket))
|
||||||
@ -64,6 +71,8 @@ class TopSiteItemViewHolder(
|
|||||||
itemView.context.components.core.icons.loadIntoView(favicon_image, topSite.url)
|
itemView.context.components.core.icons.loadIntoView(favicon_image, topSite.url)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.topSite = topSite
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun onTouchEvent(
|
private fun onTouchEvent(
|
||||||
|
13
app/src/main/res/drawable/ic_pin.xml
Normal file
13
app/src/main/res/drawable/ic_pin.xml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:pathData="M20.207 18.793L15.914 14.5l3.043-3.043a1 1 0 0 0 0-1.414A5.234 5.234 0 0 0 15.232 8.5h-0.214a3.269 3.269 0 0 1-3.268-3.268V4.5a1 1 0 0 0-1.707-0.707l-6.25 6.25A1 1 0 0 0 4.5 11.75h0.732A3.269 3.269 0 0 1 8.5 15.018v0.211A4.8 4.8 0 0 0 10.087 19a1 1 0 0 0 1.37-0.041l3.043-3.045 4.293 4.293a1 1 0 0 0 1.414-1.414z"
|
||||||
|
android:fillColor="?mozac_widget_favicon_border_color"/>
|
||||||
|
</vector>
|
@ -2,30 +2,57 @@
|
|||||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
<LinearLayout
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/top_site_item"
|
android:id="@+id/top_site_item"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/top_sites_item_size"
|
android:layout_height="@dimen/top_sites_item_size"
|
||||||
android:layout_marginBottom="@dimen/top_sites_item_margin_top"
|
android:layout_marginTop="@dimen/top_sites_item_margin_top"
|
||||||
|
android:layout_marginBottom="@dimen/top_sites_item_margin_bottom"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/favicon_image"
|
android:id="@+id/favicon_image"
|
||||||
style="@style/TopSite.Favicon"
|
style="@style/TopSite.Favicon"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:importantForAccessibility="no" />
|
android:importantForAccessibility="no"
|
||||||
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
|
app:layout_constraintRight_toRightOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/top_site_title"
|
android:id="@+id/top_site_title"
|
||||||
android:layout_width="64dp"
|
android:layout_width="64dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:layout_marginTop="@dimen/top_sites_text_margin_top"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:textColor="@color/top_site_title_text"
|
android:textColor="@color/top_site_title_text"
|
||||||
android:textSize="10sp"
|
android:textSize="10sp"
|
||||||
android:layout_marginTop="@dimen/top_sites_text_margin_top" />
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
|
app:layout_constraintRight_toRightOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/favicon_image"
|
||||||
|
tools:ignore="SmallSp" />
|
||||||
|
|
||||||
</LinearLayout>
|
<FrameLayout
|
||||||
|
android:id="@+id/pin_indicator"
|
||||||
|
android:layout_width="16dp"
|
||||||
|
android:layout_height="16dp"
|
||||||
|
android:elevation="5dp"
|
||||||
|
android:translationX="8dp"
|
||||||
|
android:translationY="-8dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintRight_toLeftOf="@id/favicon_image"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/favicon_image">
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/pin_icon"
|
||||||
|
android:layout_width="16dp"
|
||||||
|
android:layout_height="16dp"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:background="@drawable/ic_pin" />
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
@ -174,7 +174,8 @@
|
|||||||
<dimen name="top_sites_favicon_size">40dp</dimen>
|
<dimen name="top_sites_favicon_size">40dp</dimen>
|
||||||
<dimen name="top_sites_favicon_padding">4dp</dimen>
|
<dimen name="top_sites_favicon_padding">4dp</dimen>
|
||||||
<dimen name="top_sites_item_size">64dp</dimen>
|
<dimen name="top_sites_item_size">64dp</dimen>
|
||||||
<dimen name="top_sites_item_margin_top">12dp</dimen>
|
<dimen name="top_sites_item_margin_top">8dp</dimen>
|
||||||
|
<dimen name="top_sites_item_margin_bottom">12dp</dimen>
|
||||||
<dimen name="top_sites_text_margin_top">8dp</dimen>
|
<dimen name="top_sites_text_margin_top">8dp</dimen>
|
||||||
|
|
||||||
<!-- a11y -->
|
<!-- a11y -->
|
||||||
|
Loading…
Reference in New Issue
Block a user