2016-06-29 15:47:52 +02:00
|
|
|
package org.mariotaku.twidere.adapter
|
|
|
|
|
|
|
|
import android.content.Context
|
2017-04-17 15:10:14 +02:00
|
|
|
import android.content.SharedPreferences
|
2016-06-29 15:47:52 +02:00
|
|
|
import android.support.v4.text.BidiFormatter
|
|
|
|
import android.support.v7.widget.RecyclerView
|
2017-03-01 15:12:25 +01:00
|
|
|
import com.bumptech.glide.RequestManager
|
2017-01-16 17:38:50 +01:00
|
|
|
import org.mariotaku.kpreferences.get
|
2017-03-21 11:55:03 +01:00
|
|
|
import org.mariotaku.twidere.R
|
2017-01-07 07:16:02 +01:00
|
|
|
import org.mariotaku.twidere.adapter.iface.IGapSupportedAdapter
|
|
|
|
import org.mariotaku.twidere.adapter.iface.IStatusesAdapter
|
|
|
|
import org.mariotaku.twidere.adapter.iface.IUserListsAdapter
|
|
|
|
import org.mariotaku.twidere.adapter.iface.IUsersAdapter
|
2017-01-16 17:38:50 +01:00
|
|
|
import org.mariotaku.twidere.constant.*
|
2016-12-06 04:08:56 +01:00
|
|
|
import org.mariotaku.twidere.model.*
|
2017-04-28 15:44:45 +02:00
|
|
|
import org.mariotaku.twidere.model.util.activityStatus
|
2017-03-10 09:37:35 +01:00
|
|
|
import org.mariotaku.twidere.util.AsyncTwitterWrapper
|
|
|
|
import org.mariotaku.twidere.util.TwidereLinkify
|
|
|
|
import org.mariotaku.twidere.util.UserColorNameManager
|
2017-04-16 15:09:56 +02:00
|
|
|
import org.mariotaku.twidere.util.dagger.GeneralComponent
|
2016-06-29 15:47:52 +02:00
|
|
|
import org.mariotaku.twidere.view.holder.iface.IStatusViewHolder
|
|
|
|
import javax.inject.Inject
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Created by mariotaku on 16/1/22.
|
|
|
|
*/
|
2017-03-01 15:12:25 +01:00
|
|
|
class DummyItemAdapter(
|
2017-01-07 07:16:02 +01:00
|
|
|
val context: Context,
|
2016-06-29 15:47:52 +02:00
|
|
|
override val twidereLinkify: TwidereLinkify = TwidereLinkify(null),
|
2017-03-01 15:12:25 +01:00
|
|
|
private val adapter: RecyclerView.Adapter<out RecyclerView.ViewHolder>? = null,
|
2017-03-02 07:59:19 +01:00
|
|
|
override val requestManager: RequestManager
|
2017-01-07 07:16:02 +01:00
|
|
|
) : IStatusesAdapter<Any>, IUsersAdapter<Any>, IUserListsAdapter<Any> {
|
2016-06-29 15:47:52 +02:00
|
|
|
|
2017-01-07 07:16:02 +01:00
|
|
|
@Inject
|
2017-04-17 15:10:14 +02:00
|
|
|
lateinit var preferences: SharedPreferences
|
2016-06-29 15:47:52 +02:00
|
|
|
@Inject
|
|
|
|
override lateinit var twitterWrapper: AsyncTwitterWrapper
|
|
|
|
@Inject
|
|
|
|
override lateinit var userColorNameManager: UserColorNameManager
|
|
|
|
@Inject
|
|
|
|
override lateinit var bidiFormatter: BidiFormatter
|
|
|
|
|
2017-03-21 11:55:03 +01:00
|
|
|
override var profileImageSize: String = context.getString(R.string.profile_image_size)
|
2016-06-29 15:47:52 +02:00
|
|
|
override var profileImageStyle: Int = 0
|
|
|
|
override var mediaPreviewStyle: Int = 0
|
|
|
|
override var textSize: Float = 0f
|
|
|
|
override var linkHighlightingStyle: Int = 0
|
|
|
|
override var nameFirst: Boolean = false
|
2017-01-28 08:15:35 +01:00
|
|
|
override var lightFont: Boolean = false
|
2016-06-29 15:47:52 +02:00
|
|
|
override var profileImageEnabled: Boolean = false
|
|
|
|
override var sensitiveContentEnabled: Boolean = false
|
|
|
|
override var mediaPreviewEnabled: Boolean = false
|
2017-01-19 03:58:52 +01:00
|
|
|
override var showAbsoluteTime: Boolean = false
|
2016-12-26 15:11:20 +01:00
|
|
|
override var friendshipClickListener: IUsersAdapter.FriendshipClickListener? = null
|
2016-06-29 15:47:52 +02:00
|
|
|
override var requestClickListener: IUsersAdapter.RequestClickListener? = null
|
|
|
|
override var statusClickListener: IStatusViewHolder.StatusClickListener? = null
|
|
|
|
override var userClickListener: IUsersAdapter.UserClickListener? = null
|
|
|
|
override var showAccountsColor: Boolean = false
|
|
|
|
override var useStarsForLikes: Boolean = false
|
2016-12-11 08:38:33 +01:00
|
|
|
override var simpleLayout: Boolean = false
|
2017-04-07 08:09:00 +02:00
|
|
|
override var showFollow: Boolean = true
|
2016-06-29 15:47:52 +02:00
|
|
|
|
2017-04-13 18:57:14 +02:00
|
|
|
var showCardActions: Boolean = false
|
|
|
|
|
2016-06-29 15:47:52 +02:00
|
|
|
private var showingActionCardPosition = RecyclerView.NO_POSITION
|
|
|
|
|
|
|
|
init {
|
2017-04-16 15:09:56 +02:00
|
|
|
GeneralComponent.get(context).inject(this)
|
2016-06-29 15:47:52 +02:00
|
|
|
updateOptions()
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun getItemCount(): Int {
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2017-03-10 09:37:35 +01:00
|
|
|
override fun getStatus(position: Int, raw: Boolean): ParcelableStatus {
|
2016-06-29 15:47:52 +02:00
|
|
|
if (adapter is ParcelableStatusesAdapter) {
|
2017-03-10 09:37:35 +01:00
|
|
|
return adapter.getStatus(position, raw)
|
2016-06-29 15:47:52 +02:00
|
|
|
} else if (adapter is VariousItemsAdapter) {
|
|
|
|
return adapter.getItem(position) as ParcelableStatus
|
2016-08-27 07:36:38 +02:00
|
|
|
} else if (adapter is ParcelableActivitiesAdapter) {
|
2017-04-28 15:44:45 +02:00
|
|
|
return adapter.getActivity(position).activityStatus!!
|
2016-06-29 15:47:52 +02:00
|
|
|
}
|
2017-03-10 09:37:35 +01:00
|
|
|
throw IndexOutOfBoundsException()
|
2016-06-29 15:47:52 +02:00
|
|
|
}
|
|
|
|
|
2017-03-10 09:37:35 +01:00
|
|
|
override fun getStatusCount(raw: Boolean) = 0
|
2016-06-29 15:47:52 +02:00
|
|
|
|
2017-03-10 09:37:35 +01:00
|
|
|
override fun getStatusId(position: Int, raw: Boolean) = ""
|
2016-06-29 15:47:52 +02:00
|
|
|
|
2017-03-10 09:37:35 +01:00
|
|
|
override fun getStatusTimestamp(position: Int, raw: Boolean) = -1L
|
2016-06-29 15:47:52 +02:00
|
|
|
|
2017-03-10 09:37:35 +01:00
|
|
|
override fun getStatusPositionKey(position: Int, raw: Boolean) = -1L
|
2016-06-29 15:47:52 +02:00
|
|
|
|
2017-03-10 09:37:35 +01:00
|
|
|
override fun getAccountKey(position: Int, raw: Boolean) = UserKey.INVALID
|
2016-06-29 15:47:52 +02:00
|
|
|
|
2017-03-10 09:37:35 +01:00
|
|
|
override fun findStatusById(accountKey: UserKey, statusId: String) = null
|
2016-06-29 15:47:52 +02:00
|
|
|
|
|
|
|
override fun isCardActionsShown(position: Int): Boolean {
|
|
|
|
if (position == RecyclerView.NO_POSITION) return showCardActions
|
|
|
|
return showCardActions || showingActionCardPosition == position
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun showCardActions(position: Int) {
|
|
|
|
if (showingActionCardPosition != RecyclerView.NO_POSITION && adapter != null) {
|
|
|
|
adapter.notifyItemChanged(showingActionCardPosition)
|
|
|
|
}
|
|
|
|
showingActionCardPosition = position
|
|
|
|
if (position != RecyclerView.NO_POSITION && adapter != null) {
|
|
|
|
adapter.notifyItemChanged(position)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun getUser(position: Int): ParcelableUser? {
|
|
|
|
if (adapter is ParcelableUsersAdapter) {
|
|
|
|
return adapter.getUser(position)
|
|
|
|
} else if (adapter is VariousItemsAdapter) {
|
|
|
|
return adapter.getItem(position) as ParcelableUser
|
|
|
|
}
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
|
|
|
|
override val userCount: Int
|
|
|
|
get() = 0
|
|
|
|
|
|
|
|
override val userListsCount: Int
|
|
|
|
get() = 0
|
|
|
|
|
|
|
|
override val gapClickListener: IGapSupportedAdapter.GapClickListener?
|
|
|
|
get() = null
|
|
|
|
override val userListClickListener: IUserListsAdapter.UserListClickListener?
|
|
|
|
get() = null
|
|
|
|
|
|
|
|
override fun getUserId(position: Int): String? {
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun getUserList(position: Int): ParcelableUserList? {
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun getUserListId(position: Int): String? {
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun setData(data: Any?): Boolean {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun isGapItem(position: Int): Boolean {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
2016-12-06 04:08:56 +01:00
|
|
|
override fun addGapLoadingId(id: ObjectId) {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun removeGapLoadingId(id: ObjectId) {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2016-06-29 15:47:52 +02:00
|
|
|
fun updateOptions() {
|
2017-01-16 17:38:50 +01:00
|
|
|
profileImageStyle = preferences[profileImageStyleKey]
|
|
|
|
mediaPreviewStyle = preferences[mediaPreviewStyleKey]
|
|
|
|
textSize = preferences[textSizeKey].toFloat()
|
|
|
|
nameFirst = preferences[nameFirstKey]
|
|
|
|
profileImageEnabled = preferences[displayProfileImageKey]
|
|
|
|
mediaPreviewEnabled = preferences[mediaPreviewKey]
|
|
|
|
sensitiveContentEnabled = preferences[displaySensitiveContentsKey]
|
|
|
|
showCardActions = !preferences[hideCardActionsKey]
|
|
|
|
linkHighlightingStyle = preferences[linkHighlightOptionKey]
|
2017-01-28 08:15:35 +01:00
|
|
|
lightFont = preferences[lightFontKey]
|
2017-01-16 17:38:50 +01:00
|
|
|
useStarsForLikes = preferences[iWantMyStarsBackKey]
|
2017-01-19 03:58:52 +01:00
|
|
|
showAbsoluteTime = preferences[showAbsoluteTimeKey]
|
2016-06-29 15:47:52 +02:00
|
|
|
}
|
|
|
|
}
|