1
0
Fork 0

For #1574: Cleans up unused code and refactors

master
Sawyer Blatz 2019-05-17 16:26:20 -07:00
parent 7861a80715
commit 3619f1417d
6 changed files with 33 additions and 60 deletions

View File

@ -395,7 +395,6 @@ class HomeFragment : Fragment(), CoroutineScope {
private fun subscribeToTabCollections(): Observer<List<TabCollection>> { private fun subscribeToTabCollections(): Observer<List<TabCollection>> {
val observer = Observer<List<TabCollection>> { val observer = Observer<List<TabCollection>> {
// TODO is it bad to be caching like this?
requireComponents.core.tabCollectionStorage.cachedTabCollections = it requireComponents.core.tabCollectionStorage.cachedTabCollections = it
getManagedEmitter<SessionControlChange>().onNext(SessionControlChange.CollectionsChange(it)) getManagedEmitter<SessionControlChange>().onNext(SessionControlChange.CollectionsChange(it))
} }

View File

@ -26,7 +26,6 @@ import org.mozilla.fenix.home.sessioncontrol.CollectionAction
import org.mozilla.fenix.home.sessioncontrol.SessionControlAction import org.mozilla.fenix.home.sessioncontrol.SessionControlAction
import org.mozilla.fenix.home.sessioncontrol.TabCollection import org.mozilla.fenix.home.sessioncontrol.TabCollection
import org.mozilla.fenix.home.sessioncontrol.onNext import org.mozilla.fenix.home.sessioncontrol.onNext
import org.mozilla.fenix.utils.Settings
import kotlin.coroutines.CoroutineContext import kotlin.coroutines.CoroutineContext
class CollectionViewHolder( class CollectionViewHolder(
@ -42,7 +41,6 @@ class CollectionViewHolder(
private lateinit var collection: TabCollection private lateinit var collection: TabCollection
private var expanded = false private var expanded = false
private var state = CollectionState.Collapsed
private var collectionMenu: CollectionItemMenu private var collectionMenu: CollectionItemMenu
init { init {
@ -70,20 +68,17 @@ class CollectionViewHolder(
} }
view.setOnClickListener { 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) { fun bindSession(collection: TabCollection, expanded: Boolean) {
this.collection = collection this.collection = collection
this.expanded = expanded this.expanded = expanded
updateCollectionUI() updateCollectionUI()
// See #2625 for why we're invalidating
view.invalidate()
} }
private fun updateCollectionUI() { private fun updateCollectionUI() {
@ -104,7 +99,8 @@ class CollectionViewHolder(
var tabsDisplayed = 0 var tabsDisplayed = 0
val tabTitlesList = hostNameList.joinToString(", ") { val tabTitlesList = hostNameList.joinToString(", ") {
if (it.length > maxTitleLength) { if (it.length > maxTitleLength) {
it.substring(0, it.substring(
0,
maxTitleLength maxTitleLength
) + "..." ) + "..."
} else { } else {
@ -127,56 +123,43 @@ class CollectionViewHolder(
view.collection_description.visibility = View.VISIBLE view.collection_description.visibility = View.VISIBLE
view.expand_button.setImageDrawable(ContextCompat.getDrawable(view.context, R.drawable.ic_chevron_down)) 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() { private fun handleExpansion(isExpanded: Boolean) {
state = when (state) { if (isExpanded) {
CollectionState.Expanded -> { actionEmitter.onNext(CollectionAction.Collapse(collection))
actionEmitter.onNext(CollectionAction.Collapse(collection)) } else {
CollectionState.Collapsed actionEmitter.onNext(CollectionAction.Expand(collection))
}
CollectionState.Collapsed -> {
actionEmitter.onNext(CollectionAction.Expand(collection))
CollectionState.Expanded
}
} }
} }
@Suppress("ComplexMethod", "MagicNumber") @Suppress("ComplexMethod", "MagicNumber")
private fun getNextIconColor(): Int { private fun getIconColor(id: Long): Int {
with(view.context) { val sessionColorIndex = (id % 4).toInt()
var sessionColorIndex = Settings.getInstance(this).preferences return when (sessionColorIndex) {
.getInt(getString(R.string.pref_key_collection_color), 0) 0 -> R.color.collection_icon_color_violet
1 -> R.color.collection_icon_color_blue
val iconResource = when (sessionColorIndex) { 2 -> R.color.collection_icon_color_pink
0 -> R.color.collection_icon_color_violet 3 -> R.color.collection_icon_color_green
1 -> R.color.collection_icon_color_blue 4 -> R.color.collection_icon_color_yellow
2 -> R.color.collection_icon_color_pink else -> R.color.white_color
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
} }
} }
companion object { companion object {
const val MAX_COLOR_INDEX = 4
const val EXPANDED_PADDING = 60 const val EXPANDED_PADDING = 60
const val COLLAPSED_MARGIN = 12 const val COLLAPSED_MARGIN = 12
const val LAYOUT_ID = R.layout.collection_home_list_row const val LAYOUT_ID = R.layout.collection_home_list_row
const val maxTitleLength = 20 const val maxTitleLength = 20
} }
enum class CollectionState {
Expanded, Collapsed
}
} }
class CollectionItemMenu( class CollectionItemMenu(

View File

@ -43,7 +43,6 @@
android:id="@+id/collections_list" android:id="@+id/collections_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:elevation="5dp"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/add_collection_button" app:layout_constraintBottom_toTopOf="@id/add_collection_button"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -54,7 +53,6 @@
android:id="@+id/add_collection_button" android:id="@+id/add_collection_button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:elevation="5dp"
android:background="?foundation" android:background="?foundation"
android:drawableStart="@drawable/ic_new" android:drawableStart="@drawable/ic_new"
android:drawablePadding="14dp" android:drawablePadding="14dp"
@ -103,11 +101,9 @@
android:id="@+id/tab_list" android:id="@+id/tab_list"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:elevation="0dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:requiresFadingEdge="vertical"
app:layout_constraintBottom_toTopOf="@id/add_tabs_layout" app:layout_constraintBottom_toTopOf="@id/add_tabs_layout"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"

View File

@ -45,8 +45,8 @@
android:id="@+id/collections_list" android:id="@+id/collections_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="parent" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" /> app:layout_constraintBottom_toTopOf="@+id/add_collection_button" />
<TextView <TextView
android:id="@+id/add_collection_button" android:id="@+id/add_collection_button"
@ -62,8 +62,8 @@
android:text="@string/create_collection_add_new_collection" android:text="@string/create_collection_add_new_collection"
android:textColor="?primaryText" android:textColor="?primaryText"
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintTop_toBottomOf="parent" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toTopOf="@id/divider"
tools:targetApi="m" /> tools:targetApi="m" />
<View <View

View File

@ -45,7 +45,6 @@
android:id="@+id/collections_list" android:id="@+id/collections_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:elevation="5dp"
android:alpha="1" android:alpha="1"
android:background="?foundation" android:background="?foundation"
android:visibility="visible" android:visibility="visible"
@ -57,7 +56,6 @@
android:id="@+id/add_collection_button" android:id="@+id/add_collection_button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:elevation="5dp"
android:alpha="1" android:alpha="1"
android:background="?foundation" android:background="?foundation"
android:drawableStart="@drawable/ic_new" android:drawableStart="@drawable/ic_new"
@ -107,7 +105,6 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/tab_list" android:id="@+id/tab_list"
android:elevation="0dp"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
@ -115,7 +112,7 @@
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:fadingEdgeLength="30dp" android:fadingEdgeLength="30dp"
android:requiresFadingEdge="vertical" android:requiresFadingEdge="vertical"
app:layout_constraintBottom_toTopOf="@id/add_collection_button" app:layout_constraintBottom_toTopOf="@id/collections_list"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back_button" /> app:layout_constraintTop_toBottomOf="@id/back_button" />

View File

@ -67,6 +67,4 @@
<string name="pref_key_tracking_protection_settings" translatable="false">pref_key_tracking_protection_settings</string> <string name="pref_key_tracking_protection_settings" translatable="false">pref_key_tracking_protection_settings</string>
<string name="pref_key_tracking_protection" translatable="false">pref_key_tracking_protection</string> <string name="pref_key_tracking_protection" translatable="false">pref_key_tracking_protection</string>
<string name="pref_key_tracking_protection_exceptions" translatable="false">pref_key_tracking_protection_exceptions</string> <string name="pref_key_tracking_protection_exceptions" translatable="false">pref_key_tracking_protection_exceptions</string>
<string name="pref_key_collection_color" translatable="false">pref_key_collection_color</string>
</resources> </resources>