* add bookmarks to timelines

* add Bookmarks to main menu

* cleanup

* handle BookmarkEvent

* fix tests

* fix bookmark handling in NotificationsFragment

* add bookmark accessibility actions
This commit is contained in:
Konrad Pozniak 2019-11-19 10:15:32 +01:00 committed by GitHub
commit d9694df0c2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
44 changed files with 1235 additions and 122 deletions

View file

@ -180,6 +180,16 @@ interface MastodonApi {
@Path("id") statusId: String
): Single<Status>
@POST("api/v1/statuses/{id}/bookmark")
fun bookmarkStatus(
@Path("id") statusId: String
): Single<Status>
@POST("api/v1/statuses/{id}/unbookmark")
fun unbookmarkStatus(
@Path("id") statusId: String
): Single<Status>
@POST("api/v1/statuses/{id}/pin")
fun pinStatus(
@Path("id") statusId: String
@ -343,6 +353,13 @@ interface MastodonApi {
@Query("limit") limit: Int?
): Call<List<Status>>
@GET("api/v1/bookmarks")
fun bookmarks(
@Query("max_id") maxId: String?,
@Query("since_id") sinceId: String?,
@Query("limit") limit: Int?
): Call<List<Status>>
@GET("api/v1/follow_requests")
fun followRequests(
@Query("max_id") maxId: String?

View file

@ -35,6 +35,7 @@ import java.lang.IllegalStateException
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)
fun block(id: String)
fun delete(id: String): Single<DeletedStatus>
@ -80,6 +81,19 @@ class TimelineCasesImpl(
}
}
override fun bookmark(status: Status, bookmark: Boolean): Single<Status> {
val id = status.actionableId
val call = if (bookmark) {
mastodonApi.bookmarkStatus(id)
} else {
mastodonApi.unbookmarkStatus(id)
}
return call.doAfterSuccess {
eventHub.dispatch(BookmarkEvent(status.id, bookmark))
}
}
override fun mute(id: String) {
val call = mastodonApi.muteAccount(id)
call.enqueue(object : Callback<Relationship> {