Remove 'UserEntity' from 'SharedItem' model

Signed-off-by: Tim Krüger <t@timkrueger.me>
This commit is contained in:
Tim Krüger 2022-05-19 17:11:47 +02:00
parent 6b9ab738cb
commit 0d65824fa6
No known key found for this signature in database
GPG Key ID: FECE3A7222C52A4E
9 changed files with 23 additions and 27 deletions

View File

@ -76,7 +76,7 @@ class SharedItemsActivity : AppCompatActivity() {
LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false) LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
} }
val adapter = SharedItemsAdapter(showGrid, userEntity.username, userEntity.token).apply { val adapter = SharedItemsAdapter(showGrid, userEntity).apply {
items = it.items items = it.items
} }
binding.imageRecycler.adapter = adapter binding.imageRecycler.adapter = adapter

View File

@ -5,12 +5,12 @@ import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.nextcloud.talk.databinding.SharedItemGridBinding import com.nextcloud.talk.databinding.SharedItemGridBinding
import com.nextcloud.talk.databinding.SharedItemListBinding import com.nextcloud.talk.databinding.SharedItemListBinding
import com.nextcloud.talk.models.database.UserEntity
import com.nextcloud.talk.shareditems.model.SharedItem import com.nextcloud.talk.shareditems.model.SharedItem
class SharedItemsAdapter( class SharedItemsAdapter(
private val showGrid: Boolean, private val showGrid: Boolean,
private val userName: String, private val userEntity: UserEntity
private val userToken: String
) : RecyclerView.Adapter<SharedItemsViewHolder>() { ) : RecyclerView.Adapter<SharedItemsViewHolder>() {
var items: List<SharedItem> = emptyList() var items: List<SharedItem> = emptyList()
@ -24,8 +24,7 @@ class SharedItemsAdapter(
parent, parent,
false false
), ),
userName, userEntity
userToken
) )
} else { } else {
SharedItemsListViewHolder( SharedItemsListViewHolder(
@ -34,8 +33,7 @@ class SharedItemsAdapter(
parent, parent,
false false
), ),
userName, userEntity
userToken
) )
} }
} }

View File

@ -4,12 +4,12 @@ import android.view.View
import android.widget.ProgressBar import android.widget.ProgressBar
import com.facebook.drawee.view.SimpleDraweeView import com.facebook.drawee.view.SimpleDraweeView
import com.nextcloud.talk.databinding.SharedItemGridBinding import com.nextcloud.talk.databinding.SharedItemGridBinding
import com.nextcloud.talk.models.database.UserEntity
class SharedItemsGridViewHolder( class SharedItemsGridViewHolder(
override val binding: SharedItemGridBinding, override val binding: SharedItemGridBinding,
userName: String, userEntity: UserEntity
userToken: String ) : SharedItemsViewHolder(binding, userEntity) {
) : SharedItemsViewHolder(binding, userName, userToken) {
override val image: SimpleDraweeView override val image: SimpleDraweeView
get() = binding.image get() = binding.image

View File

@ -5,14 +5,14 @@ import android.view.View
import android.widget.ProgressBar import android.widget.ProgressBar
import com.facebook.drawee.view.SimpleDraweeView import com.facebook.drawee.view.SimpleDraweeView
import com.nextcloud.talk.databinding.SharedItemListBinding import com.nextcloud.talk.databinding.SharedItemListBinding
import com.nextcloud.talk.models.database.UserEntity
import com.nextcloud.talk.shareditems.model.SharedItem import com.nextcloud.talk.shareditems.model.SharedItem
import com.nextcloud.talk.utils.DateUtils import com.nextcloud.talk.utils.DateUtils
class SharedItemsListViewHolder( class SharedItemsListViewHolder(
override val binding: SharedItemListBinding, override val binding: SharedItemListBinding,
userName: String, userEntity: UserEntity
userToken: String ) : SharedItemsViewHolder(binding, userEntity) {
) : SharedItemsViewHolder(binding, userName, userToken) {
override val image: SimpleDraweeView override val image: SimpleDraweeView
get() = binding.fileImage get() = binding.fileImage

View File

@ -16,6 +16,7 @@ import com.facebook.drawee.view.SimpleDraweeView
import com.facebook.imagepipeline.common.RotationOptions import com.facebook.imagepipeline.common.RotationOptions
import com.facebook.imagepipeline.image.ImageInfo import com.facebook.imagepipeline.image.ImageInfo
import com.facebook.imagepipeline.request.ImageRequestBuilder import com.facebook.imagepipeline.request.ImageRequestBuilder
import com.nextcloud.talk.models.database.UserEntity
import com.nextcloud.talk.shareditems.model.SharedItem import com.nextcloud.talk.shareditems.model.SharedItem
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.DrawableUtils import com.nextcloud.talk.utils.DrawableUtils
@ -23,8 +24,7 @@ import com.nextcloud.talk.utils.FileViewerUtils
abstract class SharedItemsViewHolder( abstract class SharedItemsViewHolder(
open val binding: ViewBinding, open val binding: ViewBinding,
userName: String, private val userEntity: UserEntity
userToken: String
) : RecyclerView.ViewHolder(binding.root) { ) : RecyclerView.ViewHolder(binding.root) {
companion object { companion object {
@ -35,7 +35,12 @@ abstract class SharedItemsViewHolder(
abstract val clickTarget: View abstract val clickTarget: View
abstract val progressBar: ProgressBar abstract val progressBar: ProgressBar
private val authHeader = mapOf(Pair("Authorization", ApiUtils.getCredentials(userName, userToken))) private val authHeader = mapOf(
Pair(
"Authorization",
ApiUtils.getCredentials(userEntity.username, userEntity.token)
)
)
open fun onBind(item: SharedItem) { open fun onBind(item: SharedItem) {
image.hierarchy.setPlaceholderImage(staticImage(item.mimeType, image)) image.hierarchy.setPlaceholderImage(staticImage(item.mimeType, image))
@ -43,7 +48,7 @@ abstract class SharedItemsViewHolder(
image.controller = configurePreview(item) image.controller = configurePreview(item)
} }
val fileViewerUtils = FileViewerUtils(image.context, item.userEntity) val fileViewerUtils = FileViewerUtils(image.context, userEntity)
clickTarget.setOnClickListener { clickTarget.setOnClickListener {
fileViewerUtils.openFile( fileViewerUtils.openFile(

View File

@ -1,7 +1,5 @@
package com.nextcloud.talk.shareditems.model package com.nextcloud.talk.shareditems.model
import com.nextcloud.talk.models.database.UserEntity
data class SharedItem( data class SharedItem(
val id: String, val id: String,
val name: String, val name: String,
@ -11,6 +9,5 @@ data class SharedItem(
val link: String?, val link: String?,
val mimeType: String?, val mimeType: String?,
val previewAvailable: Boolean?, val previewAvailable: Boolean?,
val previewLink: String, val previewLink: String
val userEntity: UserEntity,
) )

View File

@ -1,6 +1,5 @@
package com.nextcloud.talk.shareditems.repositories package com.nextcloud.talk.shareditems.repositories
import com.nextcloud.talk.models.database.UserEntity
import com.nextcloud.talk.shareditems.model.SharedItemType import com.nextcloud.talk.shareditems.model.SharedItemType
import com.nextcloud.talk.shareditems.model.SharedMediaItems import com.nextcloud.talk.shareditems.model.SharedMediaItems
import io.reactivex.Observable import io.reactivex.Observable
@ -21,7 +20,6 @@ interface SharedItemsRepository {
val userName: String, val userName: String,
val userToken: String, val userToken: String,
val baseUrl: String, val baseUrl: String,
val userEntity: UserEntity,
val roomToken: String val roomToken: String
) )
} }

View File

@ -69,8 +69,7 @@ class SharedItemsRepositoryImpl @Inject constructor(private val ncApi: NcApi) :
fileParameters["link"]!!, fileParameters["link"]!!,
fileParameters["mimetype"]!!, fileParameters["mimetype"]!!,
previewAvailable, previewAvailable,
previewLink(fileParameters["id"], parameters.baseUrl), previewLink(fileParameters["id"], parameters.baseUrl)
parameters.userEntity
) )
} else { } else {
Log.w(TAG, "location and deckcard are not yet supported") Log.w(TAG, "location and deckcard are not yet supported")

View File

@ -6,8 +6,8 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import com.nextcloud.talk.models.database.UserEntity import com.nextcloud.talk.models.database.UserEntity
import com.nextcloud.talk.shareditems.model.SharedItemType import com.nextcloud.talk.shareditems.model.SharedItemType
import com.nextcloud.talk.shareditems.repositories.SharedItemsRepository
import com.nextcloud.talk.shareditems.model.SharedMediaItems import com.nextcloud.talk.shareditems.model.SharedMediaItems
import com.nextcloud.talk.shareditems.repositories.SharedItemsRepository
import io.reactivex.Observer import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
@ -124,7 +124,6 @@ class SharedItemsViewModel @Inject constructor(
userEntity.userId, userEntity.userId,
userEntity.token, userEntity.token,
userEntity.baseUrl, userEntity.baseUrl,
userEntity,
roomToken roomToken
) )
_currentItemType = initialType _currentItemType = initialType