Implement timed mutes. (#2035)

Fixes #2033
This commit is contained in:
Levi Bard 2021-01-15 21:05:36 +01:00 committed by GitHub
commit be60155de5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
44 changed files with 303 additions and 260 deletions

View file

@ -330,7 +330,8 @@ interface MastodonApi {
@POST("api/v1/accounts/{id}/mute")
fun muteAccount(
@Path("id") accountId: String,
@Field("notifications") notifications: Boolean? = null
@Field("notifications") notifications: Boolean? = null,
@Field("duration") duration: Int? = null
): Single<Relationship>
@POST("api/v1/accounts/{id}/unmute")

View file

@ -33,7 +33,7 @@ interface TimelineCases {
fun reblog(status: Status, reblog: Boolean): Single<Status>
fun favourite(status: Status, favourite: Boolean): Single<Status>
fun bookmark(status: Status, bookmark: Boolean): Single<Status>
fun mute(id: String, notifications: Boolean)
fun mute(id: String, notifications: Boolean, duration: Int)
fun block(id: String)
fun delete(id: String): Single<DeletedStatus>
fun pin(status: Status, pin: Boolean)
@ -104,8 +104,8 @@ class TimelineCasesImpl(
}
}
override fun mute(id: String, notifications: Boolean) {
mastodonApi.muteAccount(id, notifications)
override fun mute(id: String, notifications: Boolean, duration: Int) {
mastodonApi.muteAccount(id, notifications, duration)
.subscribe({
eventHub.dispatch(MuteEvent(id))
}, { t ->