mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 03:12:15 +00:00
Update: Make List Animation Optional (Closes #53)
This commit is contained in:
parent
84bf96e42e
commit
c458e39be7
@ -16,8 +16,17 @@ object Preferences {
|
||||
private val subject = PublishSubject.create<Key<*>>()
|
||||
|
||||
private val keys = sequenceOf(
|
||||
Key.AutoSync, Key.IncompatibleVersions, Key.ProxyHost, Key.ProxyPort, Key.ProxyType,
|
||||
Key.RootPermission, Key.SortOrder, Key.Theme, Key.UpdateNotify, Key.UpdateUnstable
|
||||
Key.AutoSync,
|
||||
Key.IncompatibleVersions,
|
||||
Key.ListAnimation,
|
||||
Key.ProxyHost,
|
||||
Key.ProxyPort,
|
||||
Key.ProxyType,
|
||||
Key.RootPermission,
|
||||
Key.SortOrder,
|
||||
Key.Theme,
|
||||
Key.UpdateNotify,
|
||||
Key.UpdateUnstable
|
||||
).map { Pair(it.name, it) }.toMap()
|
||||
|
||||
fun init(context: Context) {
|
||||
@ -117,6 +126,9 @@ object Preferences {
|
||||
object IncompatibleVersions :
|
||||
Key<Boolean>("incompatible_versions", Value.BooleanValue(false))
|
||||
|
||||
object ListAnimation :
|
||||
Key<Boolean>("list_animation", Value.BooleanValue(true))
|
||||
|
||||
object ProxyHost : Key<String>("proxy_host", Value.StringValue("localhost"))
|
||||
object ProxyPort : Key<Int>("proxy_port", Value.IntValue(9050))
|
||||
object ProxyType : Key<Preferences.ProxyType>(
|
||||
|
@ -14,6 +14,7 @@ import androidx.recyclerview.widget.RecyclerView
|
||||
import coil.transform.RoundedCornersTransformation
|
||||
import com.google.android.material.imageview.ShapeableImageView
|
||||
import com.looker.droidify.R
|
||||
import com.looker.droidify.content.Preferences
|
||||
import com.looker.droidify.database.Database
|
||||
import com.looker.droidify.entity.ProductItem
|
||||
import com.looker.droidify.entity.Repository
|
||||
@ -131,8 +132,10 @@ class ProductsAdapter(private val onClick: (ProductItem) -> Unit) :
|
||||
|
||||
override fun onViewDetachedFromWindow(holder: RecyclerView.ViewHolder) {
|
||||
super.onViewDetachedFromWindow(holder)
|
||||
if (Preferences[Preferences.Key.ListAnimation]) {
|
||||
holder.itemView.clearAnimation()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
|
||||
when (getItemEnumViewType(position)) {
|
||||
@ -197,12 +200,17 @@ class ProductsAdapter(private val onClick: (ProductItem) -> Unit) :
|
||||
holder.text.text = emptyText
|
||||
}
|
||||
}::class
|
||||
if (Preferences[Preferences.Key.ListAnimation]) {
|
||||
setAnimation(holder.itemView, holder.adapterPosition)
|
||||
}
|
||||
}
|
||||
|
||||
private fun setAnimation(itemView: View, position: Int) {
|
||||
val animation = AnimationUtils.loadAnimation(
|
||||
holder.itemView.context,
|
||||
itemView.context,
|
||||
if (position > lastPosition) R.anim.slide_up else R.anim.slide_down
|
||||
)
|
||||
holder.itemView.startAnimation(animation)
|
||||
lastPosition = holder.adapterPosition
|
||||
itemView.startAnimation(animation)
|
||||
lastPosition = position
|
||||
}
|
||||
}
|
@ -114,6 +114,10 @@ class SettingsFragment : ScreenFragment() {
|
||||
is Preferences.Theme.Amoled -> getString(R.string.amoled)
|
||||
}
|
||||
}
|
||||
addSwitch(
|
||||
Preferences.Key.ListAnimation, getString(R.string.list_animation),
|
||||
getString(R.string.list_animation_description)
|
||||
)
|
||||
}
|
||||
preferences.addCategory(getString(R.string.install_types)) {
|
||||
addSwitch(
|
||||
|
@ -75,6 +75,8 @@
|
||||
<string name="light">Claro</string>
|
||||
<string name="link_copied_to_clipboard">Link copiado al portapapeles</string>
|
||||
<string name="links">Links</string>
|
||||
<string name="list_animation">Lista de animaciones</string>
|
||||
<string name="list_animation_description">"Habilitar la animación de lista en la página principal "</string>
|
||||
<string name="merging_FORMAT">Uniendo %s</string>
|
||||
<string name="name">Nombre</string>
|
||||
<string name="network_error_DESC">Error de red.</string>
|
||||
|
@ -79,6 +79,8 @@
|
||||
<string name="light">Chiaro</string>
|
||||
<string name="link_copied_to_clipboard">Link copiato sulla clipboard</string>
|
||||
<string name="links">Links</string>
|
||||
<string name="list_animation">Elenco animazioni</string>
|
||||
<string name="list_animation_description">Abilita l\'animazione dell\'elenco nella pagina principale</string>
|
||||
<string name="merging_FORMAT">Unione %s</string>
|
||||
<string name="name">Nome</string>
|
||||
<string name="network_error_DESC">Errore di rete.</string>
|
||||
|
@ -79,6 +79,8 @@
|
||||
<string name="light">Claro</string>
|
||||
<string name="link_copied_to_clipboard">Link copiado para a área de transferência</string>
|
||||
<string name="links">Links</string>
|
||||
<string name="list_animation">Listar animações</string>
|
||||
<string name="list_animation_description">Habilitar animação de lista na página principal</string>
|
||||
<string name="merging_FORMAT">Incorporando %s</string>
|
||||
<string name="name">Nome</string>
|
||||
<string name="network_error_DESC">Erro da rede.</string>
|
||||
|
@ -79,6 +79,8 @@
|
||||
<string name="light">亮色</string>
|
||||
<string name="link_copied_to_clipboard">链接已复制到剪贴板</string>
|
||||
<string name="links">链接</string>
|
||||
<string name="list_animation">列出动画</string>
|
||||
<string name="list_animation_description">在主页上启用列表动画</string>
|
||||
<string name="merging_FORMAT">合并 %s</string>
|
||||
<string name="name">名称</string>
|
||||
<string name="network_error_DESC">网络错误.</string>
|
||||
|
@ -80,6 +80,8 @@
|
||||
<string name="light">Light</string>
|
||||
<string name="link_copied_to_clipboard">Link copied to clipboard</string>
|
||||
<string name="links">Links</string>
|
||||
<string name="list_animation">List Animations</string>
|
||||
<string name="list_animation_description">Enable List Animation on Main Page</string>
|
||||
<string name="merging_FORMAT">Merging %s</string>
|
||||
<string name="name">Name</string>
|
||||
<string name="network_error_DESC">Network error.</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user