From 3619f1417dd49046bec853e6c50735758379e645 Mon Sep 17 00:00:00 2001 From: Sawyer Blatz Date: Fri, 17 May 2019 16:26:20 -0700 Subject: [PATCH] For #1574: Cleans up unused code and refactors --- .../org/mozilla/fenix/home/HomeFragment.kt | 1 - .../viewholders/CollectionViewHolder.kt | 73 +++++++------------ .../layout/component_collection_creation.xml | 4 - ...nt_collection_creation_name_collection.xml | 8 +- ..._collection_creation_select_collection.xml | 5 +- app/src/main/res/values/preference_keys.xml | 2 - 6 files changed, 33 insertions(+), 60 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index e45fe3b9d..ee5911213 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -395,7 +395,6 @@ class HomeFragment : Fragment(), CoroutineScope { private fun subscribeToTabCollections(): Observer> { val observer = Observer> { - // TODO is it bad to be caching like this? requireComponents.core.tabCollectionStorage.cachedTabCollections = it getManagedEmitter().onNext(SessionControlChange.CollectionsChange(it)) } diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/CollectionViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/CollectionViewHolder.kt index f40bb8259..3c08a17d3 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/CollectionViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/CollectionViewHolder.kt @@ -26,7 +26,6 @@ import org.mozilla.fenix.home.sessioncontrol.CollectionAction import org.mozilla.fenix.home.sessioncontrol.SessionControlAction import org.mozilla.fenix.home.sessioncontrol.TabCollection import org.mozilla.fenix.home.sessioncontrol.onNext -import org.mozilla.fenix.utils.Settings import kotlin.coroutines.CoroutineContext class CollectionViewHolder( @@ -42,7 +41,6 @@ class CollectionViewHolder( private lateinit var collection: TabCollection private var expanded = false - private var state = CollectionState.Collapsed private var collectionMenu: CollectionItemMenu init { @@ -70,20 +68,17 @@ class CollectionViewHolder( } view.setOnClickListener { - updateState() + handleExpansion(expanded) } - - view.collection_icon.setColorFilter(ContextCompat.getColor( - view.context, - getNextIconColor()), - android.graphics.PorterDuff.Mode.SRC_IN - ) } fun bindSession(collection: TabCollection, expanded: Boolean) { this.collection = collection this.expanded = expanded updateCollectionUI() + + // See #2625 for why we're invalidating + view.invalidate() } private fun updateCollectionUI() { @@ -104,7 +99,8 @@ class CollectionViewHolder( var tabsDisplayed = 0 val tabTitlesList = hostNameList.joinToString(", ") { if (it.length > maxTitleLength) { - it.substring(0, + it.substring( + 0, maxTitleLength ) + "..." } else { @@ -127,56 +123,43 @@ class CollectionViewHolder( view.collection_description.visibility = View.VISIBLE view.expand_button.setImageDrawable(ContextCompat.getDrawable(view.context, R.drawable.ic_chevron_down)) } + + view.collection_icon.setColorFilter( + ContextCompat.getColor( + view.context, + getIconColor(collection.id) + ), + android.graphics.PorterDuff.Mode.SRC_IN + ) } - private fun updateState() { - state = when (state) { - CollectionState.Expanded -> { - actionEmitter.onNext(CollectionAction.Collapse(collection)) - CollectionState.Collapsed - } - CollectionState.Collapsed -> { - actionEmitter.onNext(CollectionAction.Expand(collection)) - CollectionState.Expanded - } + private fun handleExpansion(isExpanded: Boolean) { + if (isExpanded) { + actionEmitter.onNext(CollectionAction.Collapse(collection)) + } else { + actionEmitter.onNext(CollectionAction.Expand(collection)) } } @Suppress("ComplexMethod", "MagicNumber") - private fun getNextIconColor(): Int { - with(view.context) { - var sessionColorIndex = Settings.getInstance(this).preferences - .getInt(getString(R.string.pref_key_collection_color), 0) - - val iconResource = when (sessionColorIndex) { - 0 -> R.color.collection_icon_color_violet - 1 -> R.color.collection_icon_color_blue - 2 -> R.color.collection_icon_color_pink - 3 -> R.color.collection_icon_color_green - 4 -> R.color.collection_icon_color_yellow - else -> R.color.white_color - } - - if (sessionColorIndex >= MAX_COLOR_INDEX) { sessionColorIndex = 0 } else { sessionColorIndex += 1 } - - Settings.getInstance(this).preferences.edit() - .putInt(getString(R.string.pref_key_collection_color), sessionColorIndex).apply() - - return iconResource + private fun getIconColor(id: Long): Int { + val sessionColorIndex = (id % 4).toInt() + return when (sessionColorIndex) { + 0 -> R.color.collection_icon_color_violet + 1 -> R.color.collection_icon_color_blue + 2 -> R.color.collection_icon_color_pink + 3 -> R.color.collection_icon_color_green + 4 -> R.color.collection_icon_color_yellow + else -> R.color.white_color } } companion object { - const val MAX_COLOR_INDEX = 4 const val EXPANDED_PADDING = 60 const val COLLAPSED_MARGIN = 12 const val LAYOUT_ID = R.layout.collection_home_list_row const val maxTitleLength = 20 } - - enum class CollectionState { - Expanded, Collapsed - } } class CollectionItemMenu( diff --git a/app/src/main/res/layout/component_collection_creation.xml b/app/src/main/res/layout/component_collection_creation.xml index dadab7900..ac08054f7 100644 --- a/app/src/main/res/layout/component_collection_creation.xml +++ b/app/src/main/res/layout/component_collection_creation.xml @@ -43,7 +43,6 @@ android:id="@+id/collections_list" android:layout_width="match_parent" android:layout_height="wrap_content" - android:elevation="5dp" android:visibility="gone" app:layout_constraintBottom_toTopOf="@id/add_collection_button" app:layout_constraintEnd_toEndOf="parent" @@ -54,7 +53,6 @@ android:id="@+id/add_collection_button" android:layout_width="match_parent" android:layout_height="wrap_content" - android:elevation="5dp" android:background="?foundation" android:drawableStart="@drawable/ic_new" android:drawablePadding="14dp" @@ -103,11 +101,9 @@ android:id="@+id/tab_list" android:layout_width="0dp" android:layout_height="0dp" - android:elevation="0dp" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:layout_marginEnd="16dp" - android:requiresFadingEdge="vertical" app:layout_constraintBottom_toTopOf="@id/add_tabs_layout" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/component_collection_creation_name_collection.xml b/app/src/main/res/layout/component_collection_creation_name_collection.xml index ce9f14d4f..9e42f3f65 100644 --- a/app/src/main/res/layout/component_collection_creation_name_collection.xml +++ b/app/src/main/res/layout/component_collection_creation_name_collection.xml @@ -45,8 +45,8 @@ android:id="@+id/collections_list" android:layout_width="match_parent" android:layout_height="0dp" - app:layout_constraintTop_toBottomOf="parent" - app:layout_constraintBottom_toBottomOf="parent" /> + android:visibility="gone" + app:layout_constraintBottom_toTopOf="@+id/add_collection_button" /> diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index a11921aed..06ba0017f 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -67,6 +67,4 @@ pref_key_tracking_protection_settings pref_key_tracking_protection pref_key_tracking_protection_exceptions - - pref_key_collection_color