2020-06-23 17:18:41 +02:00
|
|
|
package com.keylesspalace.tusky.view
|
|
|
|
|
|
|
|
import android.view.*
|
|
|
|
import android.content.*
|
|
|
|
import android.util.*
|
|
|
|
import android.widget.*
|
|
|
|
import android.app.*
|
|
|
|
import android.text.*
|
|
|
|
import com.google.android.material.tabs.TabLayout
|
|
|
|
import com.google.android.material.tabs.TabLayoutMediator
|
|
|
|
|
|
|
|
import androidx.constraintlayout.widget.ConstraintLayout
|
|
|
|
import androidx.preference.PreferenceManager
|
|
|
|
|
|
|
|
import com.keylesspalace.tusky.adapter.StatusViewHolder
|
|
|
|
import com.keylesspalace.tusky.entity.Status
|
|
|
|
import com.keylesspalace.tusky.interfaces.StatusActionListener
|
|
|
|
import com.keylesspalace.tusky.util.CardViewMode
|
|
|
|
import com.keylesspalace.tusky.util.ViewDataUtils
|
|
|
|
import com.keylesspalace.tusky.util.StatusDisplayOptions
|
|
|
|
import com.keylesspalace.tusky.R
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
class StatusView @JvmOverloads constructor(
|
|
|
|
context: Context,
|
|
|
|
attrs: AttributeSet? = null,
|
|
|
|
defStyleAttr: Int = 0)
|
|
|
|
: ConstraintLayout(context, attrs, defStyleAttr) {
|
|
|
|
|
|
|
|
private var viewHolder : StatusViewHolder
|
|
|
|
private var statusDisplayOptions : StatusDisplayOptions
|
|
|
|
init {
|
|
|
|
View.inflate(context, R.layout.item_status, this)
|
|
|
|
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
|
|
|
|
statusDisplayOptions = StatusDisplayOptions(
|
|
|
|
animateAvatars = preferences.getBoolean("animateGifAvatars", false),
|
|
|
|
mediaPreviewEnabled = true,
|
|
|
|
useAbsoluteTime = preferences.getBoolean("absoluteTimeView", false),
|
|
|
|
showBotOverlay = false,
|
|
|
|
useBlurhash = preferences.getBoolean("useBlurhash", true),
|
|
|
|
cardViewMode = CardViewMode.NONE,
|
|
|
|
confirmReblogs = preferences.getBoolean("confirmReblogs", true)
|
|
|
|
)
|
|
|
|
viewHolder = StatusViewHolder(this)
|
|
|
|
}
|
|
|
|
|
|
|
|
fun setupWithStatus(status: Status) {
|
|
|
|
val concrete = ViewDataUtils.statusToViewData(status, false, false)
|
|
|
|
viewHolder.setupWithStatus(concrete, DummyStatusActionListener(), statusDisplayOptions)
|
|
|
|
}
|
|
|
|
|
|
|
|
class DummyStatusActionListener: StatusActionListener {
|
|
|
|
override fun onReply(position: Int) { }
|
|
|
|
override fun onReblog(reblog: Boolean, position: Int) { }
|
|
|
|
override fun onFavourite(favourite: Boolean, position: Int) { }
|
|
|
|
override fun onBookmark(bookmark: Boolean, position: Int) { }
|
|
|
|
override fun onMore(view: View, position: Int) { }
|
|
|
|
override fun onViewMedia(position: Int, attachmentIndex: Int, view: View?) { }
|
|
|
|
override fun onViewThread(position: Int) { }
|
2020-10-02 23:00:15 +02:00
|
|
|
override fun onViewReplyTo(position: Int) { }
|
2020-06-23 17:18:41 +02:00
|
|
|
override fun onOpenReblog(position: Int) { }
|
|
|
|
override fun onExpandedChange(expanded: Boolean, position: Int) { }
|
|
|
|
override fun onContentHiddenChange(isShowing: Boolean, position: Int) { }
|
|
|
|
override fun onLoadMore(position: Int) { }
|
|
|
|
override fun onContentCollapsedChange(isCollapsed: Boolean, position: Int) { }
|
|
|
|
override fun onVoteInPoll(position: Int, choices: MutableList<Int>) { }
|
|
|
|
override fun onViewAccount(id: String) { }
|
|
|
|
override fun onViewTag(id: String) { }
|
|
|
|
override fun onViewUrl(id: String) { }
|
|
|
|
}
|
|
|
|
}
|