package net.lacolaco.smileessence.view import android.annotation.TargetApi import android.content.Context import android.os.Build import android.util.AttributeSet import android.widget.FrameLayout import net.lacolaco.smileessence.R class TweetStateFrameLayout : FrameLayout { @TargetApi(Build.VERSION_CODES.LOLLIPOP) constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : super(context, attrs, defStyleAttr) var isDirectMessage = false set(value) { val current = field field = value if (current != value) refreshDrawableState() } var isMention = false set(value) { val current = field field = value if (current != value) refreshDrawableState() } var isRetweet = false set(value) { val current = field field = value if (current != value) refreshDrawableState() } var isMine = false set(value) { val current = field field = value if (current != value) refreshDrawableState() } override fun onCreateDrawableState(extraSpace: Int): IntArray { val add = mutableListOf() if (isDirectMessage) add += R.attr.state_tweet_direct_message if (isRetweet) add += R.attr.state_tweet_retweet if (isMention) add += R.attr.state_tweet_mention if (isMine) add += R.attr.state_tweet_mine val state = super.onCreateDrawableState(extraSpace + add.size) return mergeDrawableStates(state, add.toIntArray()) } }