2016-06-29 15:47:52 +02:00
|
|
|
package org.mariotaku.twidere.adapter
|
|
|
|
|
|
|
|
import android.content.Context
|
|
|
|
import android.support.v4.text.BidiFormatter
|
|
|
|
import android.support.v7.widget.RecyclerView
|
|
|
|
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
|
2016-06-29 15:47:52 +02:00
|
|
|
import org.mariotaku.twidere.constant.SharedPreferenceConstants
|
2016-12-06 04:08:56 +01:00
|
|
|
import org.mariotaku.twidere.model.*
|
2016-08-27 07:36:38 +02:00
|
|
|
import org.mariotaku.twidere.model.util.getActivityStatus
|
2016-06-29 15:47:52 +02:00
|
|
|
import org.mariotaku.twidere.util.*
|
|
|
|
import org.mariotaku.twidere.util.dagger.GeneralComponentHelper
|
|
|
|
import org.mariotaku.twidere.view.holder.iface.IStatusViewHolder
|
|
|
|
import javax.inject.Inject
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Created by mariotaku on 16/1/22.
|
|
|
|
*/
|
|
|
|
class DummyItemAdapter @JvmOverloads constructor(
|
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),
|
|
|
|
private val adapter: RecyclerView.Adapter<out RecyclerView.ViewHolder>? = null
|
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
|
|
|
|
lateinit var preferences: SharedPreferencesWrapper
|
2016-06-29 15:47:52 +02:00
|
|
|
@Inject
|
|
|
|
override lateinit var mediaLoader: MediaLoaderWrapper
|
|
|
|
@Inject
|
|
|
|
override lateinit var twitterWrapper: AsyncTwitterWrapper
|
|
|
|
@Inject
|
|
|
|
override lateinit var userColorNameManager: UserColorNameManager
|
|
|
|
@Inject
|
|
|
|
override lateinit var bidiFormatter: BidiFormatter
|
2017-01-07 07:16:02 +01:00
|
|
|
override val mediaLoadingHandler: MediaLoadingHandler = MediaLoadingHandler(R.id.media_preview_progress)
|
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
|
|
|
|
override var profileImageEnabled: Boolean = false
|
|
|
|
override var sensitiveContentEnabled: Boolean = false
|
|
|
|
override var mediaPreviewEnabled: Boolean = false
|
|
|
|
override var isShowAbsoluteTime: 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
|
2016-06-29 15:47:52 +02:00
|
|
|
|
|
|
|
private var showCardActions: Boolean = false
|
|
|
|
private var showingActionCardPosition = RecyclerView.NO_POSITION
|
|
|
|
|
|
|
|
init {
|
|
|
|
GeneralComponentHelper.build(context).inject(this)
|
|
|
|
updateOptions()
|
|
|
|
}
|
|
|
|
|
|
|
|
fun setShouldShowAccountsColor(shouldShowAccountsColor: Boolean) {
|
|
|
|
this.showAccountsColor = shouldShowAccountsColor
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun getItemCount(): Int {
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun getStatus(position: Int): ParcelableStatus? {
|
|
|
|
if (adapter is ParcelableStatusesAdapter) {
|
|
|
|
return adapter.getStatus(position)
|
|
|
|
} else if (adapter is VariousItemsAdapter) {
|
|
|
|
return adapter.getItem(position) as ParcelableStatus
|
2016-08-27 07:36:38 +02:00
|
|
|
} else if (adapter is ParcelableActivitiesAdapter) {
|
|
|
|
return adapter.getActivity(position)?.getActivityStatus()
|
2016-06-29 15:47:52 +02:00
|
|
|
}
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
|
|
|
|
override val statusCount: Int
|
|
|
|
get() = 0
|
|
|
|
|
|
|
|
override val rawStatusCount: Int
|
|
|
|
get() = 0
|
|
|
|
|
|
|
|
override fun getStatusId(position: Int): String? {
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun getStatusTimestamp(position: Int): Long {
|
|
|
|
return -1
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun getStatusPositionKey(position: Int): Long {
|
|
|
|
return -1
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun getAccountKey(position: Int): UserKey? {
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun findStatusById(accountKey: UserKey, statusId: String): ParcelableStatus? {
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
|
|
|
|
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() {
|
|
|
|
profileImageStyle = Utils.getProfileImageStyle(preferences.getString(SharedPreferenceConstants.KEY_PROFILE_IMAGE_STYLE, null))
|
|
|
|
mediaPreviewStyle = Utils.getMediaPreviewStyle(preferences.getString(SharedPreferenceConstants.KEY_MEDIA_PREVIEW_STYLE, null))
|
|
|
|
textSize = preferences.getInt(SharedPreferenceConstants.KEY_TEXT_SIZE, context.resources.getInteger(R.integer.default_text_size)).toFloat()
|
|
|
|
nameFirst = preferences.getBoolean(SharedPreferenceConstants.KEY_NAME_FIRST, true)
|
|
|
|
profileImageEnabled = preferences.getBoolean(SharedPreferenceConstants.KEY_DISPLAY_PROFILE_IMAGE, true)
|
|
|
|
mediaPreviewEnabled = preferences.getBoolean(SharedPreferenceConstants.KEY_MEDIA_PREVIEW, false)
|
|
|
|
sensitiveContentEnabled = preferences.getBoolean(SharedPreferenceConstants.KEY_DISPLAY_SENSITIVE_CONTENTS, false)
|
|
|
|
showCardActions = !preferences.getBoolean(SharedPreferenceConstants.KEY_HIDE_CARD_ACTIONS, false)
|
|
|
|
linkHighlightingStyle = Utils.getLinkHighlightingStyleInt(preferences.getString(SharedPreferenceConstants.KEY_LINK_HIGHLIGHT_OPTION, null))
|
|
|
|
useStarsForLikes = preferences.getBoolean(SharedPreferenceConstants.KEY_I_WANT_MY_STARS_BACK)
|
|
|
|
isShowAbsoluteTime = preferences.getBoolean(SharedPreferenceConstants.KEY_SHOW_ABSOLUTE_TIME)
|
|
|
|
}
|
|
|
|
}
|