Remove TextDrawable

This commit is contained in:
arkon 2020-04-26 11:59:15 -04:00
parent 2c2f8f5853
commit d243ee4b4c
8 changed files with 23 additions and 73 deletions

View file

@ -216,7 +216,6 @@ dependencies {
implementation 'eu.davidea:flexible-adapter:5.1.0' implementation 'eu.davidea:flexible-adapter:5.1.0'
implementation 'eu.davidea:flexible-adapter-ui:1.0.0' implementation 'eu.davidea:flexible-adapter-ui:1.0.0'
implementation 'com.nononsenseapps:filepicker:2.5.2' implementation 'com.nononsenseapps:filepicker:2.5.2'
implementation 'com.github.Kennyc1012:TextDrawable:2.0.1'
implementation 'com.nightlynexus.viewstatepageradapter:viewstatepageradapter:1.1.0' implementation 'com.nightlynexus.viewstatepageradapter:viewstatepageradapter:1.1.0'
implementation 'com.github.mthli:Slice:v1.3' implementation 'com.github.mthli:Slice:v1.3'
implementation 'com.github.chrisbanes:PhotoView:2.3.0' implementation 'com.github.chrisbanes:PhotoView:2.3.0'

View file

@ -23,13 +23,6 @@ class CategoryAdapter(controller: CategoryController) :
(0 until itemCount).forEach { getItem(it)?.isSelected = false } (0 until itemCount).forEach { getItem(it)?.isSelected = false }
} }
/**
* Clears the active selections from the model.
*/
fun clearModelSelection() {
selectedPositions.forEach { getItem(it)?.isSelected = false }
}
/** /**
* Toggles the selection of the given position. * Toggles the selection of the given position.
* *

View file

@ -3,8 +3,6 @@ package eu.kanade.tachiyomi.ui.category
import android.view.View import android.view.View
import eu.kanade.tachiyomi.data.database.models.Category import eu.kanade.tachiyomi.data.database.models.Category
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
import eu.kanade.tachiyomi.util.view.roundTextIcon
import kotlinx.android.synthetic.main.categories_item.image
import kotlinx.android.synthetic.main.categories_item.reorder import kotlinx.android.synthetic.main.categories_item.reorder
import kotlinx.android.synthetic.main.categories_item.title import kotlinx.android.synthetic.main.categories_item.title
@ -17,12 +15,6 @@ import kotlinx.android.synthetic.main.categories_item.title
class CategoryHolder(view: View, val adapter: CategoryAdapter) : BaseFlexibleViewHolder(view, adapter) { class CategoryHolder(view: View, val adapter: CategoryAdapter) : BaseFlexibleViewHolder(view, adapter) {
init { init {
// Create round letter image onclick to simulate long click
image.setOnClickListener {
// Simulate long click on this view to enter selection mode
onLongClick(view)
}
setDragHandleView(reorder) setDragHandleView(reorder)
} }
@ -34,11 +26,6 @@ class CategoryHolder(view: View, val adapter: CategoryAdapter) : BaseFlexibleVie
fun bind(category: Category) { fun bind(category: Category) {
// Set capitalized title. // Set capitalized title.
title.text = category.name.capitalize() title.text = category.name.capitalize()
// Update circle letter image.
itemView.post {
image.roundTextIcon(category.name)
}
} }
/** /**

View file

@ -100,7 +100,7 @@ class CategoryPresenter(
/** /**
* Returns true if a category with the given name already exists. * Returns true if a category with the given name already exists.
*/ */
fun categoryExists(name: String): Boolean { private fun categoryExists(name: String): Boolean {
return categories.any { it.name.equals(name, true) } return categories.any { it.name.equals(name, true) }
} }
} }

View file

@ -6,7 +6,6 @@ import eu.kanade.tachiyomi.source.icon
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
import eu.kanade.tachiyomi.ui.base.holder.SlicedHolder import eu.kanade.tachiyomi.ui.base.holder.SlicedHolder
import eu.kanade.tachiyomi.util.view.gone import eu.kanade.tachiyomi.util.view.gone
import eu.kanade.tachiyomi.util.view.roundTextIcon
import io.github.mthli.slice.Slice import io.github.mthli.slice.Slice
import kotlinx.android.synthetic.main.source_main_controller_card_item.card import kotlinx.android.synthetic.main.source_main_controller_card_item.card
import kotlinx.android.synthetic.main.source_main_controller_card_item.image import kotlinx.android.synthetic.main.source_main_controller_card_item.image
@ -43,8 +42,9 @@ class SourceHolder(view: View, override val adapter: SourceAdapter) :
// Set circle letter image. // Set circle letter image.
itemView.post { itemView.post {
val icon = source.icon() val icon = source.icon()
if (icon != null) image.setImageDrawable(icon) if (icon != null) {
else image.roundTextIcon(source.name) image.setImageDrawable(icon)
}
} }
} }
} }

View file

@ -7,7 +7,6 @@ import eu.kanade.tachiyomi.source.icon
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
import eu.kanade.tachiyomi.ui.base.holder.SlicedHolder import eu.kanade.tachiyomi.ui.base.holder.SlicedHolder
import eu.kanade.tachiyomi.util.view.gone import eu.kanade.tachiyomi.util.view.gone
import eu.kanade.tachiyomi.util.view.roundTextIcon
import eu.kanade.tachiyomi.util.view.visible import eu.kanade.tachiyomi.util.view.visible
import io.github.mthli.slice.Slice import io.github.mthli.slice.Slice
import kotlinx.android.synthetic.main.source_main_controller_card_item.card import kotlinx.android.synthetic.main.source_main_controller_card_item.card
@ -50,7 +49,6 @@ class SourceHolder(view: View, override val adapter: SourceAdapter) :
when { when {
icon != null -> image.setImageDrawable(icon) icon != null -> image.setImageDrawable(icon)
item.source.id == LocalSource.ID -> image.setImageResource(R.mipmap.ic_local_source) item.source.id == LocalSource.ID -> image.setImageResource(R.mipmap.ic_local_source)
else -> image.roundTextIcon(source.name)
} }
} }

View file

@ -4,12 +4,10 @@ package eu.kanade.tachiyomi.util.view
import android.graphics.Color import android.graphics.Color
import android.graphics.Point import android.graphics.Point
import android.graphics.Typeface
import android.view.Gravity import android.view.Gravity
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
import android.view.View import android.view.View
import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import androidx.annotation.MenuRes import androidx.annotation.MenuRes
import androidx.appcompat.widget.PopupMenu import androidx.appcompat.widget.PopupMenu
@ -18,10 +16,7 @@ import com.google.android.material.chip.Chip
import com.google.android.material.chip.ChipGroup import com.google.android.material.chip.ChipGroup
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar
import com.kennyc.textdrawable.ColorGenerator
import com.kennyc.textdrawable.TextDrawable
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import kotlin.math.min
/** /**
* Returns coordinates of view. * Returns coordinates of view.
@ -86,28 +81,6 @@ inline fun View.toggle() {
visibleIf { visibility == View.GONE } visibleIf { visibility == View.GONE }
} }
/**
* Sets a round TextDrawable into an ImageView determined by input.
*
* @param text text of [TextDrawable]
*/
fun ImageView.roundTextIcon(text: String) {
val letter = text.take(1).toUpperCase()
val size = min(this.width, this.height)
setImageDrawable(
TextDrawable(
shape = TextDrawable.DRAWABLE_SHAPE_OVAL,
desiredWidth = size,
desiredHeight = size,
typeFace = Typeface.DEFAULT,
textColor = Color.WHITE,
text = letter,
color = ColorGenerator.MATERIAL.getColor(letter)
)
)
}
/** /**
* Shrink an ExtendedFloatingActionButton when the associated RecyclerView is scrolled down. * Shrink an ExtendedFloatingActionButton when the associated RecyclerView is scrolled down.
* *

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -7,33 +7,33 @@
android:background="@drawable/list_item_selector"> android:background="@drawable/list_item_selector">
<ImageView <ImageView
android:id="@+id/image" android:id="@+id/reorder"
android:layout_width="@dimen/material_component_lists_single_line_with_avatar_height" android:layout_width="@dimen/material_component_lists_single_line_with_avatar_height"
android:layout_height="@dimen/material_component_lists_single_line_with_avatar_height" android:layout_height="@dimen/material_component_lists_single_line_with_avatar_height"
android:clickable="true" android:scaleType="center"
android:paddingStart="@dimen/material_component_lists_icon_left_padding" app:srcCompat="@drawable/ic_reorder_grey_24dp"
android:paddingEnd="0dp" app:tint="?android:attr/textColorPrimary"
tools:src="@mipmap/ic_launcher_round" /> tools:ignore="ContentDescription" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:scaleType="center"
app:srcCompat="@drawable/ic_label_24dp"
app:tint="?android:attr/textColorPrimary"
tools:ignore="ContentDescription" />
<TextView <TextView
android:id="@+id/title" android:id="@+id/title"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/material_component_lists_text_left_padding" android:layout_marginStart="16dp"
android:layout_marginEnd="@dimen/material_component_lists_single_line_with_avatar_height" android:layout_marginEnd="16dp"
android:layout_weight="1"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" android:maxLines="1"
android:textAppearance="@style/TextAppearance.Regular.SubHeading" android:textAppearance="@style/TextAppearance.Regular.SubHeading"
tools:text="Title" /> tools:text="Title" />
<ImageView </LinearLayout>
android:id="@+id/reorder"
android:layout_width="@dimen/material_component_lists_single_line_with_avatar_height"
android:layout_height="@dimen/material_component_lists_single_line_with_avatar_height"
android:layout_gravity="end"
android:scaleType="center"
app:srcCompat="@drawable/ic_reorder_grey_24dp"
app:tint="?android:attr/textColorPrimary" />
</FrameLayout>