diff --git a/app/src/main/java/org/mozilla/fenix/home/tabs/TabsAdapter.kt b/app/src/main/java/org/mozilla/fenix/home/tabs/TabsAdapter.kt index 5ab73e411..20753b476 100644 --- a/app/src/main/java/org/mozilla/fenix/home/tabs/TabsAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/home/tabs/TabsAdapter.kt @@ -8,6 +8,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.content.ContextCompat import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView import io.reactivex.Observer @@ -21,7 +22,7 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.launch import mozilla.components.browser.icons.BrowserIcons import mozilla.components.browser.icons.IconRequest -import org.mozilla.fenix.DefaultThemeManager +import org.jetbrains.anko.image import org.mozilla.fenix.R import org.mozilla.fenix.ext.increaseTapArea import kotlin.coroutines.CoroutineContext @@ -60,7 +61,7 @@ class TabsAdapter(private val actionEmitter: Observer) : override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { when (holder) { is TabViewHolder -> { - holder.bindSession(sessions[position]) + holder.bindSession(sessions[position], position) } } } @@ -100,8 +101,9 @@ class TabsAdapter(private val actionEmitter: Observer) : } } - fun bindSession(session: SessionViewState) { + fun bindSession(session: SessionViewState, position: Int) { this.session = session + updateTabBackground(position) updateUrl(session.url) updateSelected(session.selected) } @@ -118,10 +120,12 @@ class TabsAdapter(private val actionEmitter: Observer) : } fun updateSelected(selected: Boolean) { - if (selected) - DefaultThemeManager.resolveAttribute(R.attr.sessionBorderColor, view.context) - else - session_card.setCardBackgroundColor(view.context.getColor(android.R.color.transparent)) + selected_border.visibility = if (selected) View.VISIBLE else View.GONE + } + + fun updateTabBackground(id: Int) { + val background = availableBackgrounds[id % availableBackgrounds.size] + tab_background.image = ContextCompat.getDrawable(view.context, background) } companion object { @@ -133,6 +137,9 @@ class TabsAdapter(private val actionEmitter: Observer) : companion object { const val tab_url = "url" const val tab_selected = "selected" + private val availableBackgrounds = listOf(R.drawable.sessions_01, R.drawable.sessions_02, + R.drawable.sessions_03, R.drawable.sessions_04, R.drawable.sessions_05, R.drawable.sessions_06, + R.drawable.sessions_07, R.drawable.sessions_08) } } diff --git a/app/src/main/res/drawable-hdpi/sessions_01.png b/app/src/main/res/drawable-hdpi/sessions_01.png new file mode 100644 index 000000000..c5f8f98a0 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sessions_01.png differ diff --git a/app/src/main/res/drawable-hdpi/sessions_02.png b/app/src/main/res/drawable-hdpi/sessions_02.png new file mode 100644 index 000000000..4875fa831 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sessions_02.png differ diff --git a/app/src/main/res/drawable-hdpi/sessions_03.png b/app/src/main/res/drawable-hdpi/sessions_03.png new file mode 100644 index 000000000..9a149ce1e Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sessions_03.png differ diff --git a/app/src/main/res/drawable-hdpi/sessions_04.png b/app/src/main/res/drawable-hdpi/sessions_04.png new file mode 100644 index 000000000..fac52baf5 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sessions_04.png differ diff --git a/app/src/main/res/drawable-hdpi/sessions_05.png b/app/src/main/res/drawable-hdpi/sessions_05.png new file mode 100644 index 000000000..a06003c0e Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sessions_05.png differ diff --git a/app/src/main/res/drawable-hdpi/sessions_06.png b/app/src/main/res/drawable-hdpi/sessions_06.png new file mode 100644 index 000000000..91ccfb053 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sessions_06.png differ diff --git a/app/src/main/res/drawable-hdpi/sessions_07.png b/app/src/main/res/drawable-hdpi/sessions_07.png new file mode 100644 index 000000000..d51254e3b Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sessions_07.png differ diff --git a/app/src/main/res/drawable-hdpi/sessions_08.png b/app/src/main/res/drawable-hdpi/sessions_08.png new file mode 100644 index 000000000..4a61fc1c1 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sessions_08.png differ diff --git a/app/src/main/res/drawable-mdpi/sessions_01.png b/app/src/main/res/drawable-mdpi/sessions_01.png new file mode 100644 index 000000000..6855d48a9 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/sessions_01.png differ diff --git a/app/src/main/res/drawable-mdpi/sessions_02.png b/app/src/main/res/drawable-mdpi/sessions_02.png new file mode 100644 index 000000000..990bdea2e Binary files /dev/null and b/app/src/main/res/drawable-mdpi/sessions_02.png differ diff --git a/app/src/main/res/drawable-mdpi/sessions_03.png b/app/src/main/res/drawable-mdpi/sessions_03.png new file mode 100644 index 000000000..b7850aa06 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/sessions_03.png differ diff --git a/app/src/main/res/drawable-mdpi/sessions_04.png b/app/src/main/res/drawable-mdpi/sessions_04.png new file mode 100644 index 000000000..245816b56 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/sessions_04.png differ diff --git a/app/src/main/res/drawable-mdpi/sessions_05.png b/app/src/main/res/drawable-mdpi/sessions_05.png new file mode 100644 index 000000000..bf45dd868 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/sessions_05.png differ diff --git a/app/src/main/res/drawable-mdpi/sessions_06.png b/app/src/main/res/drawable-mdpi/sessions_06.png new file mode 100644 index 000000000..5b707f7bc Binary files /dev/null and b/app/src/main/res/drawable-mdpi/sessions_06.png differ diff --git a/app/src/main/res/drawable-mdpi/sessions_07.png b/app/src/main/res/drawable-mdpi/sessions_07.png new file mode 100644 index 000000000..0efebcef5 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/sessions_07.png differ diff --git a/app/src/main/res/drawable-mdpi/sessions_08.png b/app/src/main/res/drawable-mdpi/sessions_08.png new file mode 100644 index 000000000..76febe884 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/sessions_08.png differ diff --git a/app/src/main/res/drawable-xhdpi/sessions_01.png b/app/src/main/res/drawable-xhdpi/sessions_01.png new file mode 100644 index 000000000..3b0cef49f Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sessions_01.png differ diff --git a/app/src/main/res/drawable-xhdpi/sessions_02.png b/app/src/main/res/drawable-xhdpi/sessions_02.png new file mode 100644 index 000000000..66fa8a2ad Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sessions_02.png differ diff --git a/app/src/main/res/drawable-xhdpi/sessions_03.png b/app/src/main/res/drawable-xhdpi/sessions_03.png new file mode 100644 index 000000000..bddd18511 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sessions_03.png differ diff --git a/app/src/main/res/drawable-xhdpi/sessions_04.png b/app/src/main/res/drawable-xhdpi/sessions_04.png new file mode 100644 index 000000000..94a572318 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sessions_04.png differ diff --git a/app/src/main/res/drawable-xhdpi/sessions_05.png b/app/src/main/res/drawable-xhdpi/sessions_05.png new file mode 100644 index 000000000..23d1f1497 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sessions_05.png differ diff --git a/app/src/main/res/drawable-xhdpi/sessions_06.png b/app/src/main/res/drawable-xhdpi/sessions_06.png new file mode 100644 index 000000000..8fda297ee Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sessions_06.png differ diff --git a/app/src/main/res/drawable-xhdpi/sessions_07.png b/app/src/main/res/drawable-xhdpi/sessions_07.png new file mode 100644 index 000000000..a94102d50 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sessions_07.png differ diff --git a/app/src/main/res/drawable-xhdpi/sessions_08.png b/app/src/main/res/drawable-xhdpi/sessions_08.png new file mode 100644 index 000000000..c188c87ec Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sessions_08.png differ diff --git a/app/src/main/res/drawable-xxhdpi/sessions_01.png b/app/src/main/res/drawable-xxhdpi/sessions_01.png new file mode 100644 index 000000000..88d25138e Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sessions_01.png differ diff --git a/app/src/main/res/drawable-xxhdpi/sessions_02.png b/app/src/main/res/drawable-xxhdpi/sessions_02.png new file mode 100644 index 000000000..0a48ac9f0 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sessions_02.png differ diff --git a/app/src/main/res/drawable-xxhdpi/sessions_03.png b/app/src/main/res/drawable-xxhdpi/sessions_03.png new file mode 100644 index 000000000..e42937df9 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sessions_03.png differ diff --git a/app/src/main/res/drawable-xxhdpi/sessions_04.png b/app/src/main/res/drawable-xxhdpi/sessions_04.png new file mode 100644 index 000000000..6cc67e5ee Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sessions_04.png differ diff --git a/app/src/main/res/drawable-xxhdpi/sessions_05.png b/app/src/main/res/drawable-xxhdpi/sessions_05.png new file mode 100644 index 000000000..c46d2a280 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sessions_05.png differ diff --git a/app/src/main/res/drawable-xxhdpi/sessions_06.png b/app/src/main/res/drawable-xxhdpi/sessions_06.png new file mode 100644 index 000000000..ad88f8a46 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sessions_06.png differ diff --git a/app/src/main/res/drawable-xxhdpi/sessions_07.png b/app/src/main/res/drawable-xxhdpi/sessions_07.png new file mode 100644 index 000000000..da4dce481 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sessions_07.png differ diff --git a/app/src/main/res/drawable-xxhdpi/sessions_08.png b/app/src/main/res/drawable-xxhdpi/sessions_08.png new file mode 100644 index 000000000..005e3ea2f Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sessions_08.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/sessions_01.png b/app/src/main/res/drawable-xxxhdpi/sessions_01.png new file mode 100644 index 000000000..021240e8d Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sessions_01.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/sessions_02.png b/app/src/main/res/drawable-xxxhdpi/sessions_02.png new file mode 100644 index 000000000..4771fca7a Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sessions_02.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/sessions_03.png b/app/src/main/res/drawable-xxxhdpi/sessions_03.png new file mode 100644 index 000000000..5540b5c26 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sessions_03.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/sessions_04.png b/app/src/main/res/drawable-xxxhdpi/sessions_04.png new file mode 100644 index 000000000..47e044d4c Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sessions_04.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/sessions_05.png b/app/src/main/res/drawable-xxxhdpi/sessions_05.png new file mode 100644 index 000000000..02886a532 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sessions_05.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/sessions_06.png b/app/src/main/res/drawable-xxxhdpi/sessions_06.png new file mode 100644 index 000000000..e8e81e4db Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sessions_06.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/sessions_07.png b/app/src/main/res/drawable-xxxhdpi/sessions_07.png new file mode 100644 index 000000000..b1e1c3339 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sessions_07.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/sessions_08.png b/app/src/main/res/drawable-xxxhdpi/sessions_08.png new file mode 100644 index 000000000..8e9cb5d57 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sessions_08.png differ diff --git a/app/src/main/res/drawable/session_border.xml b/app/src/main/res/drawable/session_border.xml index e329c7c72..b6c595fd1 100644 --- a/app/src/main/res/drawable/session_border.xml +++ b/app/src/main/res/drawable/session_border.xml @@ -4,6 +4,6 @@ - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> - - + + \ No newline at end of file diff --git a/app/src/main/res/layout/component_tabs.xml b/app/src/main/res/layout/component_tabs.xml index 70f914e8d..6425640cf 100644 --- a/app/src/main/res/layout/component_tabs.xml +++ b/app/src/main/res/layout/component_tabs.xml @@ -9,7 +9,9 @@ android:id="@+id/tabs_header" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="16dp" + android:layout_marginTop="8dp" + android:layout_marginStart="16dp" + android:layout_marginEnd="8dp" android:visibility="gone"> + android:padding="16dp" + android:clipToPadding="false"/> + app:cardCornerRadius="@dimen/tab_corner_radius" + app:cardElevation="5dp"> + android:layout_height="match_parent"> @@ -39,15 +30,16 @@ android:id="@+id/text_url" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginBottom="4dp" android:ellipsize="end" android:maxLines="1" android:textColor="?attr/toolbarTextColor" android:textSize="18sp" + android:layout_marginTop="4dp" + android:layout_marginStart="10dp" app:layout_constraintEnd_toStartOf="@id/close_tab_button" app:layout_constraintHorizontal_bias="0" app:layout_constraintStart_toEndOf="@id/favicon_image" - app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="@id/favicon_image" /> + app:layout_constraintTop_toBottomOf="@id/favicon_image" /> + \ 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 f2907182e..ab5bd6bfb 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -22,7 +22,7 @@ #0C0C0D #f9f9fa #E9E9ED - #2f26c1 + @color/photonInk70 #20233E @color/off_white diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 0a8c0db82..93a25a74e 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -13,4 +13,6 @@ 8dp 40dp 16dp + 2dp + 8dp \ No newline at end of file