Skip to content

Commit

Permalink
Remove extensions for base
Browse files Browse the repository at this point in the history
  • Loading branch information
michaldrabik committed Jul 16, 2023
1 parent 07fa08c commit c726c4b
Show file tree
Hide file tree
Showing 20 changed files with 220 additions and 236 deletions.
2 changes: 1 addition & 1 deletion ui-base/build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-parcelize'
apply plugin: 'dagger.hilt.android.plugin'
apply from: '../versions.gradle'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,27 @@ package com.michaldrabik.ui_base.common.sheets.links.views

import android.content.Context
import android.util.AttributeSet
import android.view.ViewGroup
import android.view.LayoutInflater
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
import android.widget.FrameLayout
import com.michaldrabik.ui_base.R
import kotlinx.android.synthetic.main.view_links_item.view.*
import com.michaldrabik.ui_base.databinding.ViewLinksItemBinding

class LinkItemView : FrameLayout {

constructor(context: Context) : this(context, null)
private val binding = ViewLinksItemBinding.inflate(LayoutInflater.from(context), this)

constructor(context: Context) : this(context, null)
constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)

constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
inflate(context, R.layout.view_links_item, this)
layoutParams = LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)

layoutParams = LayoutParams(MATCH_PARENT, WRAP_CONTENT)
context.theme.obtainStyledAttributes(attrs, R.styleable.LinkItem, 0, 0).apply {
try {
viewLinkItemName.text = getString(R.styleable.LinkItem_text)
viewLinkItemImage.setImageResource(getResourceId(R.styleable.LinkItem_icon, -1))
with(binding) {
viewLinkItemName.text = getString(R.styleable.LinkItem_text)
viewLinkItemImage.setImageResource(getResourceId(R.styleable.LinkItem_icon, -1))
}
} finally {
recycle()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import com.michaldrabik.ui_model.IdTrakt
import com.michaldrabik.ui_model.TraktRating
import com.michaldrabik.ui_navigation.java.NavigationArgs
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.android.parcel.Parcelize
import kotlinx.parcelize.Parcelize

@AndroidEntryPoint
class RatingsBottomSheet : BaseBottomSheetFragment(R.layout.view_rate_sheet) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,35 @@ package com.michaldrabik.ui_base.common.sheets.sort_order.views
import android.content.Context
import android.graphics.Typeface
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
import androidx.constraintlayout.widget.ConstraintLayout
import com.michaldrabik.ui_base.R
import com.michaldrabik.ui_base.databinding.ViewSortOrderItemBinding
import com.michaldrabik.ui_base.utilities.extensions.addRipple
import com.michaldrabik.ui_base.utilities.extensions.colorFromAttr
import com.michaldrabik.ui_base.utilities.extensions.dimenToPx
import com.michaldrabik.ui_base.utilities.extensions.onClick
import com.michaldrabik.ui_base.utilities.extensions.visibleIf
import com.michaldrabik.ui_model.SortOrder
import com.michaldrabik.ui_model.SortType
import kotlinx.android.synthetic.main.view_sort_order_item.view.*

class SortOrderItemView : ConstraintLayout {

constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)

private val binding = ViewSortOrderItemBinding.inflate(LayoutInflater.from(context), this)

var onItemClickListener: ((SortOrder, SortType) -> Unit)? = null

lateinit var sortOrder: SortOrder
lateinit var sortType: SortType
var isChecked: Boolean = false

init {
inflate(context, R.layout.view_sort_order_item, this)
layoutParams = LayoutParams(MATCH_PARENT, WRAP_CONTENT)
val paddingHorizontal = context.dimenToPx(R.dimen.spaceNormal)
setPadding(paddingHorizontal, 0, paddingHorizontal, 0)
Expand All @@ -47,21 +49,23 @@ class SortOrderItemView : ConstraintLayout {
this.sortType = sortType
this.isChecked = isChecked

viewSortOrderItemBadge.visibleIf(isChecked)
with(binding) {
viewSortOrderItemBadge.visibleIf(isChecked)

with(viewSortOrderItemTitle) {
val color = if (isChecked) android.R.attr.textColorPrimary else android.R.attr.textColorSecondary
val typeface = if (isChecked) Typeface.DEFAULT_BOLD else Typeface.DEFAULT
setTextColor(context.colorFromAttr(color))
setTypeface(typeface)
text = context.getString(sortOrder.displayString)
}
with(viewSortOrderItemTitle) {
val color = if (isChecked) android.R.attr.textColorPrimary else android.R.attr.textColorSecondary
val typeface = if (isChecked) Typeface.DEFAULT_BOLD else Typeface.DEFAULT
setTextColor(context.colorFromAttr(color))
setTypeface(typeface)
text = context.getString(sortOrder.displayString)
}

with(viewSortOrderItemAscDesc) {
visibleIf(isChecked)
val rotation = if (sortType == SortType.ASCENDING) -90F else 90F
val duration = if (animate) 200L else 0
animate().rotation(rotation).setDuration(duration).start()
with(viewSortOrderItemAscDesc) {
visibleIf(isChecked)
val rotation = if (sortType == SortType.ASCENDING) -90F else 90F
val duration = if (animate) 200L else 0
animate().rotation(rotation).setDuration(duration).start()
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,65 +2,79 @@ package com.michaldrabik.ui_base.common.views

import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
import android.widget.LinearLayout
import com.michaldrabik.common.Mode
import com.michaldrabik.common.Mode.MOVIES
import com.michaldrabik.common.Mode.SHOWS
import com.michaldrabik.ui_base.R
import com.michaldrabik.ui_base.databinding.ViewModeTabsBinding
import com.michaldrabik.ui_base.utilities.extensions.colorFromAttr
import com.michaldrabik.ui_base.utilities.extensions.onClick
import com.michaldrabik.ui_base.utilities.extensions.visibleIf
import kotlinx.android.synthetic.main.view_mode_tabs.view.*

class ModeTabsView : LinearLayout {

constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)

private val binding = ViewModeTabsBinding.inflate(LayoutInflater.from(context), this)

init {
inflate(context, R.layout.view_mode_tabs, this)
layoutParams = LayoutParams(MATCH_PARENT, WRAP_CONTENT)
orientation = HORIZONTAL

viewMovies.onClick { onModeSelected?.invoke(MOVIES) }
viewShows.onClick { onModeSelected?.invoke(SHOWS) }
viewLists.onClick { onListsSelected?.invoke() }
with(binding) {
viewMovies.onClick { onModeSelected?.invoke(MOVIES) }
viewShows.onClick { onModeSelected?.invoke(SHOWS) }
viewLists.onClick { onListsSelected?.invoke() }
}
}

var onModeSelected: ((Mode) -> Unit)? = null
var onListsSelected: (() -> Unit)? = null

fun selectShows() {
viewShows.setTextColor(context.colorFromAttr(R.attr.textColorTabSelected))
viewMovies.setTextColor(context.colorFromAttr(R.attr.textColorTab))
viewLists.setTextColor(context.colorFromAttr(R.attr.textColorTab))
with(binding) {
viewShows.setTextColor(context.colorFromAttr(R.attr.textColorTabSelected))
viewMovies.setTextColor(context.colorFromAttr(R.attr.textColorTab))
viewLists.setTextColor(context.colorFromAttr(R.attr.textColorTab))
}
}

fun selectMovies() {
viewShows.setTextColor(context.colorFromAttr(R.attr.textColorTab))
viewMovies.setTextColor(context.colorFromAttr(R.attr.textColorTabSelected))
viewLists.setTextColor(context.colorFromAttr(R.attr.textColorTab))
with(binding) {
viewShows.setTextColor(context.colorFromAttr(R.attr.textColorTab))
viewMovies.setTextColor(context.colorFromAttr(R.attr.textColorTabSelected))
viewLists.setTextColor(context.colorFromAttr(R.attr.textColorTab))
}
}

fun selectLists() {
viewShows.setTextColor(context.colorFromAttr(R.attr.textColorTab))
viewMovies.setTextColor(context.colorFromAttr(R.attr.textColorTab))
viewLists.setTextColor(context.colorFromAttr(R.attr.textColorTabSelected))
with(binding) {
viewShows.setTextColor(context.colorFromAttr(R.attr.textColorTab))
viewMovies.setTextColor(context.colorFromAttr(R.attr.textColorTab))
viewLists.setTextColor(context.colorFromAttr(R.attr.textColorTabSelected))
}
}

fun showMovies(show: Boolean) = viewMovies.visibleIf(show)
fun showMovies(show: Boolean) = binding.viewMovies.visibleIf(show)

fun showLists(show: Boolean, anchorEnd: Boolean = true) {
viewLists.visibleIf(show)
viewSpacer.visibleIf(anchorEnd)
with(binding) {
viewLists.visibleIf(show)
viewSpacer.visibleIf(anchorEnd)
}
}

override fun setEnabled(enabled: Boolean) {
viewShows.isEnabled = enabled
viewMovies.isEnabled = enabled
viewLists.isEnabled = enabled
with(binding) {
viewShows.isEnabled = enabled
viewMovies.isEnabled = enabled
viewLists.isEnabled = enabled
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,50 +2,55 @@ package com.michaldrabik.ui_base.common.views

import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.widget.FrameLayout
import com.michaldrabik.ui_base.R
import kotlinx.android.synthetic.main.view_rate_value.view.*
import com.michaldrabik.ui_base.databinding.ViewRateValueBinding

class RateValueView : FrameLayout {

constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)

private val binding = ViewRateValueBinding.inflate(LayoutInflater.from(context), this)

private val translation by lazy { resources.getDimensionPixelSize(R.dimen.rateValueTranslation).toFloat() }

init {
inflate(context, R.layout.view_rate_value, this)
layoutParams = LayoutParams(MATCH_PARENT, MATCH_PARENT)
}

fun setValue(value: String) {
viewRateValueText1.text = value
viewRateValueText1.alpha = 1F
viewRateValueText2.text = ""
viewRateValueText2.alpha = 0F
with(binding) {
viewRateValueText1.text = value
viewRateValueText1.alpha = 1F
viewRateValueText2.text = ""
viewRateValueText2.alpha = 0F
}
}

fun setValueAnimated(value: String, direction: Direction = Direction.LEFT) {
val translation = when (direction) {
Direction.LEFT -> -translation
Direction.RIGHT -> translation
}

viewRateValueText2.alpha = 0F
viewRateValueText2.text = value
viewRateValueText2.translationX = -translation
viewRateValueText2.animate().translationX(0F).alpha(1F).setDuration(175L).start()

viewRateValueText1.animate().translationX(translation).setDuration(175L).alpha(0F)
.withEndAction {
viewRateValueText2.alpha = 0F
viewRateValueText1.translationX = 0F
viewRateValueText1.alpha = 1F
viewRateValueText1.text = value
}
.start()
with(binding) {
viewRateValueText2.alpha = 0F
viewRateValueText2.text = value
viewRateValueText2.translationX = -translation
viewRateValueText2.animate().translationX(0F).alpha(1F).setDuration(175L).start()

viewRateValueText1.animate().translationX(translation).setDuration(175L).alpha(0F)
.withEndAction {
viewRateValueText2.alpha = 0F
viewRateValueText1.translationX = 0F
viewRateValueText1.alpha = 1F
viewRateValueText1.text = value
}
.start()
}
}

enum class Direction {
Expand Down
Loading

0 comments on commit c726c4b

Please sign in to comment.