fix formatting

This commit is contained in:
Konrad Pozniak 2020-07-01 22:14:49 +02:00
parent 3d6f6206e6
commit dc139d4dae
11 changed files with 88 additions and 80 deletions

View File

@ -79,7 +79,6 @@ class TimelineFragment : DaggerFragment(R.layout.fragment_timeline), TimeLineAct
adapter.addDataRefreshListener { adapter.addDataRefreshListener {
binding.timelineSwipeRefresh.isRefreshing = false binding.timelineSwipeRefresh.isRefreshing = false
} }
} }
override fun onFavorite(status: StatusEntity) { override fun onFavorite(status: StatusEntity) {

View File

@ -80,7 +80,7 @@ fun BindingHolder<ItemStatusBinding>.bind(status: StatusEntity, displayWidth: In
(binding.postImages.adapter as TimelineImageAdapter).images = status.attachments (binding.postImages.adapter as TimelineImageAdapter).images = status.attachments
val maxImageRatio = status.attachments.map { val maxImageRatio = status.attachments.map {
if(it.meta?.small?.width == null || it.meta.small.height == null) { if (it.meta?.small?.width == null || it.meta.small.height == null) {
1f 1f
} else { } else {
it.meta.small.height.toFloat() / it.meta.small.width.toFloat() it.meta.small.height.toFloat() / it.meta.small.width.toFloat()
@ -135,4 +135,4 @@ fun BindingHolder<ItemStatusBinding>.bind(status: StatusEntity, displayWidth: In
binding.root.setOnClickListener { binding.root.setOnClickListener {
listener.onDetailsOpened(status) listener.onDetailsOpened(status)
} }
} }

View File

@ -18,31 +18,29 @@ class TimelineUseCases @Inject constructor(
) { ) {
suspend fun onFavorite(status: StatusEntity) { suspend fun onFavorite(status: StatusEntity) {
val alreadyFavourited = status.favourited val alreadyFavourited = status.favourited
if (alreadyFavourited) { if (alreadyFavourited) {
api.unfavouriteStatus(status.actionableId) api.unfavouriteStatus(status.actionableId)
} else { } else {
api.favouriteStatus(status.actionableId) api.favouriteStatus(status.actionableId)
}.updateStatusInDb() }.updateStatusInDb()
} }
suspend fun onBoost(status: StatusEntity) { suspend fun onBoost(status: StatusEntity) {
val alreadyBoosted = status.reblogged val alreadyBoosted = status.reblogged
if (alreadyBoosted) { if (alreadyBoosted) {
api.unreblogStatus(status.actionableId) api.unreblogStatus(status.actionableId)
} else { } else {
api.reblogStatus(status.actionableId) api.reblogStatus(status.actionableId)
}.updateStatusInDb() }.updateStatusInDb()
} }
suspend fun onMediaVisibilityChanged(status: StatusEntity) { suspend fun onMediaVisibilityChanged(status: StatusEntity) {
db.statusDao().changeMediaVisibility( db.statusDao().changeMediaVisibility(
!status.mediaVisible, !status.mediaVisible,
status.id, status.id,
accountManager.activeAccount()?.id!! accountManager.activeAccount()?.id!!
) )
} }
private suspend fun NetworkResponse<Status>.updateStatusInDb() { private suspend fun NetworkResponse<Status>.updateStatusInDb() {
@ -57,5 +55,4 @@ class TimelineUseCases @Inject constructor(
} }
) )
} }
}
}

View File

@ -71,5 +71,4 @@ class TimelineViewModel @Inject constructor(
useCases.onMediaVisibilityChanged(status) useCases.onMediaVisibilityChanged(status)
} }
} }
} }

View File

@ -22,7 +22,7 @@ import at.connyduck.pixelcat.db.entitity.StatusEntity
import at.connyduck.pixelcat.util.viewBinding import at.connyduck.pixelcat.util.viewBinding
import javax.inject.Inject import javax.inject.Inject
class DetailActivity: BaseActivity(), TimeLineActionListener { class DetailActivity : BaseActivity(), TimeLineActionListener {
@Inject @Inject
lateinit var viewModelFactory: ViewModelFactory lateinit var viewModelFactory: ViewModelFactory
@ -69,37 +69,41 @@ class DetailActivity: BaseActivity(), TimeLineActionListener {
binding.detailRecyclerView.adapter = ConcatAdapter(statusAdapter, repliesAdapter) binding.detailRecyclerView.adapter = ConcatAdapter(statusAdapter, repliesAdapter)
viewModel.currentStatus.observe(this, Observer { viewModel.currentStatus.observe(
when(it) { this,
is Success -> { Observer {
binding.detailSwipeRefresh.show() when (it) {
binding.detailStatus.hide() is Success -> {
binding.detailProgress.hide() binding.detailSwipeRefresh.show()
binding.detailSwipeRefresh.isRefreshing = false binding.detailStatus.hide()
binding.detailRecyclerView.show() binding.detailProgress.hide()
statusAdapter.submitList(listOf(it.data)) binding.detailSwipeRefresh.isRefreshing = false
} binding.detailRecyclerView.show()
is Loading -> { statusAdapter.submitList(listOf(it.data))
binding.detailSwipeRefresh.hide() }
binding.detailStatus.hide() is Loading -> {
binding.detailProgress.show() binding.detailSwipeRefresh.hide()
} binding.detailStatus.hide()
is Error -> { binding.detailProgress.show()
binding.detailSwipeRefresh.hide() }
binding.detailStatus.show() is Error -> {
binding.detailProgress.hide() binding.detailSwipeRefresh.hide()
binding.detailStatus.setOnRetryListener { } binding.detailStatus.show()
binding.detailStatus.showGeneralError() binding.detailProgress.hide()
binding.detailStatus.showGeneralError()
}
} }
} }
}) )
viewModel.replies.observe(this, Observer { viewModel.replies.observe(
if(it is Success) { this,
repliesAdapter.submitList(it.data) Observer {
if (it is Success) {
repliesAdapter.submitList(it.data)
}
} }
}) )
} }
override fun onFavorite(status: StatusEntity) { override fun onFavorite(status: StatusEntity) {
@ -131,5 +135,4 @@ class DetailActivity: BaseActivity(), TimeLineActionListener {
} }
} }
} }
}
}

View File

@ -15,7 +15,7 @@ import java.text.SimpleDateFormat
class DetailReplyAdapter( class DetailReplyAdapter(
private val listener: TimeLineActionListener private val listener: TimeLineActionListener
): ListAdapter<StatusEntity, BindingHolder<ItemReplyBinding>>(TimelineDiffUtil) { ) : ListAdapter<StatusEntity, BindingHolder<ItemReplyBinding>>(TimelineDiffUtil) {
private val dateTimeFormatter = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.SHORT) private val dateTimeFormatter = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.SHORT)
@ -51,8 +51,6 @@ class DetailReplyAdapter(
holder.binding.postReplyButton.setOnClickListener { holder.binding.postReplyButton.setOnClickListener {
listener.onReply(status) listener.onReply(status)
} }
} }
} }
} }

View File

@ -12,11 +12,10 @@ import at.connyduck.pixelcat.databinding.ItemStatusBinding
import at.connyduck.pixelcat.db.entitity.StatusEntity import at.connyduck.pixelcat.db.entitity.StatusEntity
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
class DetailStatusAdapter( class DetailStatusAdapter(
private val displayWidth: Int, private val displayWidth: Int,
private val listener: TimeLineActionListener private val listener: TimeLineActionListener
): ListAdapter<StatusEntity, BindingHolder<ItemStatusBinding>>(TimelineDiffUtil) { ) : ListAdapter<StatusEntity, BindingHolder<ItemStatusBinding>>(TimelineDiffUtil) {
private val dateTimeFormatter = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.SHORT) private val dateTimeFormatter = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.SHORT)
@ -36,5 +35,4 @@ class DetailStatusAdapter(
holder.bind(status, displayWidth, listener, dateTimeFormatter) holder.bind(status, displayWidth, listener, dateTimeFormatter)
} }
} }
} }

View File

@ -65,7 +65,7 @@ class DetailViewModel @Inject constructor(
} }
fun reload(showLoading: Boolean) { fun reload(showLoading: Boolean) {
if(showLoading) { if (showLoading) {
currentStatus.value = Loading() currentStatus.value = Loading()
replies.value = Loading() replies.value = Loading()
} }
@ -78,23 +78,31 @@ class DetailViewModel @Inject constructor(
} }
private suspend fun loadStatus() { private suspend fun loadStatus() {
api.status(statusId).fold({ api.status(statusId).fold(
val statusEntity = it.toEntity(accountManager.activeAccount()?.id!!) {
db.statusDao().insertOrReplace(statusEntity) val statusEntity = it.toEntity(accountManager.activeAccount()?.id!!)
currentStatus.value = Success(statusEntity) db.statusDao().insertOrReplace(statusEntity)
}, { currentStatus.value = Success(statusEntity)
currentStatus.value = Error(cause = it) },
}) {
currentStatus.value = Error(cause = it)
}
)
} }
private suspend fun loadReplies() { private suspend fun loadReplies() {
api.statusContext(statusId).fold({ api.statusContext(statusId).fold(
replies.value = Success(it.descendants.map{ {
descendant -> descendant.toEntity(accountManager.activeAccount()?.id!!) replies.value = Success(
}) it.descendants.map { descendant ->
}, { descendant.toEntity(accountManager.activeAccount()?.id!!)
replies.value = Error(cause = it) }
}) )
},
{
replies.value = Error(cause = it)
}
)
} }
fun onFavorite(status: StatusEntity) { fun onFavorite(status: StatusEntity) {
@ -114,5 +122,4 @@ class DetailViewModel @Inject constructor(
useCases.onMediaVisibilityChanged(status) useCases.onMediaVisibilityChanged(status)
} }
} }
} }

View File

@ -57,4 +57,4 @@ class StatusView @JvmOverloads constructor(
binding.statusMessage.setText(R.string.status_network_error) binding.statusMessage.setText(R.string.status_network_error)
binding.statusMessage.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_wifi_off, 0, 0) binding.statusMessage.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_wifi_off, 0, 0)
} }
} }

View File

@ -3,7 +3,7 @@ package at.connyduck.pixelcat.model
import com.squareup.moshi.JsonClass import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true) @JsonClass(generateAdapter = true)
data class StatusContext ( data class StatusContext(
val ancestors: List<Status>, val ancestors: List<Status>,
val descendants: List<Status> val descendants: List<Status>
) )

View File

@ -19,7 +19,14 @@
package at.connyduck.pixelcat.network package at.connyduck.pixelcat.network
import at.connyduck.pixelcat.model.* import at.connyduck.pixelcat.model.AccessToken
import at.connyduck.pixelcat.model.Account
import at.connyduck.pixelcat.model.AppCredentials
import at.connyduck.pixelcat.model.Attachment
import at.connyduck.pixelcat.model.NewStatus
import at.connyduck.pixelcat.model.Relationship
import at.connyduck.pixelcat.model.Status
import at.connyduck.pixelcat.model.StatusContext
import at.connyduck.pixelcat.network.calladapter.NetworkResponse import at.connyduck.pixelcat.network.calladapter.NetworkResponse
import okhttp3.MultipartBody import okhttp3.MultipartBody
import retrofit2.http.Body import retrofit2.http.Body