This commit is contained in:
tateisu 2019-12-09 00:54:25 +09:00
parent 225dbf6623
commit 14337bf8f0

View File

@ -263,21 +263,21 @@ object Action_Toot {
showToast(activity, false, R.string.wait_previous_operation) showToast(activity, false, R.string.wait_previous_operation)
return return
} }
if( access_info.isMisskey ){ if(access_info.isMisskey) {
showToast(activity, false, R.string.misskey_account_not_supported) showToast(activity, false, R.string.misskey_account_not_supported)
return return
} }
// 必要なら確認を出す // 必要なら確認を出す
// ブックマークは解除する時だけ確認する // ブックマークは解除する時だけ確認する
if(! bConfirmed && !bSet ) { if(! bConfirmed && ! bSet) {
DlgConfirm.openSimple( DlgConfirm.openSimple(
activity, activity,
activity.getString( activity.getString(
R.string.confirm_unbookmark_from, R.string.confirm_unbookmark_from,
AcctColor.getNickname(access_info.acct) AcctColor.getNickname(access_info.acct)
) )
){ ) {
bookmark( bookmark(
activity, activity,
access_info, access_info,
@ -327,7 +327,7 @@ object Action_Toot {
when { when {
result == null -> { result == null -> {
} // cancelled. } // cancelled.
new_status != null -> { new_status != null -> {
for(column in App1.getAppState(activity).column_list) { for(column in App1.getAppState(activity).column_list) {
column.findStatus(access_info.host, new_status.id) { account, status -> column.findStatus(access_info.host, new_status.id) { account, status ->
@ -355,7 +355,6 @@ object Action_Toot {
activity.showColumnMatchAccount(access_info) activity.showColumnMatchAccount(access_info)
} }
fun boostFromAnotherAccount( fun boostFromAnotherAccount(
activity : ActMain, activity : ActMain,
timeline_account : SavedAccount, timeline_account : SavedAccount,
@ -431,11 +430,11 @@ object Action_Toot {
return return
} }
// Misskeyは非公開トゥートをブーストできない(しかしリクエストは投げてサーバからのエラーメッセージにまかせる) // Misskeyは非公開トゥートをブーストできない(しかしリクエストは投げてサーバからのエラーメッセージにまかせる)
// Mastodonは非公開トゥートをブーストできるのは本人だけ // Mastodonは非公開トゥートをブーストできるのは本人だけ
val isPrivateToot = ! access_info.isMisskey && arg_status.visibility == TootVisibility.PrivateFollowers val isPrivateToot =
! access_info.isMisskey && arg_status.visibility == TootVisibility.PrivateFollowers
if(isPrivateToot && access_info.acct != status_owner_acct) { if(isPrivateToot && access_info.acct != status_owner_acct) {
showToast(activity, false, R.string.boost_private_toot_not_allowed) showToast(activity, false, R.string.boost_private_toot_not_allowed)
return return
@ -512,7 +511,7 @@ object Action_Toot {
return if(! bSet) { return if(! bSet) {
val myRenoteId = target_status.myRenoteId val myRenoteId = target_status.myRenoteId
?: return TootApiResult("missing renote id.") ?: return TootApiResult("missing renote id.")
client.request( client.request(
"/api/notes/delete", "/api/notes/delete",
access_info.putMisskeyApiToken() access_info.putMisskeyApiToken()
@ -520,18 +519,18 @@ object Action_Toot {
.put("renoteId", target_status.id.toString()) .put("renoteId", target_status.id.toString())
.toPostRequestBuilder() .toPostRequestBuilder()
) )
?.also{ ?.also {
if( it.response?.code == 204) if(it.response?.code == 204)
unrenoteId = myRenoteId unrenoteId = myRenoteId
} }
} else { } else {
client.request( client.request(
"/api/notes/create", "/api/notes/create",
access_info.putMisskeyApiToken() access_info.putMisskeyApiToken()
.put("renoteId", target_status.id.toString()) .put("renoteId", target_status.id.toString())
.toPostRequestBuilder() .toPostRequestBuilder()
) )
?.also{ result-> ?.also { result ->
val jsonObject = result.jsonObject val jsonObject = result.jsonObject
if(jsonObject != null) { if(jsonObject != null) {
val outerStatus = parser.status( val outerStatus = parser.status(
@ -539,7 +538,7 @@ object Action_Toot {
?: jsonObject ?: jsonObject
) )
val innerStatus = outerStatus?.reblog ?: outerStatus val innerStatus = outerStatus?.reblog ?: outerStatus
if( outerStatus != null && innerStatus != null && outerStatus != innerStatus ){ if(outerStatus != null && innerStatus != null && outerStatus != innerStatus) {
innerStatus.myRenoteId = outerStatus.id innerStatus.myRenoteId = outerStatus.id
innerStatus.reblogged = true innerStatus.reblogged = true
} }
@ -573,7 +572,6 @@ object Action_Toot {
val unrenoteId = this.unrenoteId val unrenoteId = this.unrenoteId
val new_status = this.new_status val new_status = this.new_status
when { when {
// cancelled. // cancelled.
@ -581,12 +579,12 @@ object Action_Toot {
} }
// Misskeyでunrenoteに成功した // Misskeyでunrenoteに成功した
unrenoteId != null ->{ unrenoteId != null -> {
// 星を外したのにカウントが下がらないのは違和感あるので、表示をいじる // 星を外したのにカウントが下がらないのは違和感あるので、表示をいじる
// 0未満にはならない // 0未満にはならない
val count = max(0,(arg_status.reblogs_count?:1)-1) val count = max(0, (arg_status.reblogs_count ?: 1) - 1)
for(column in App1.getAppState(activity).column_list) { for(column in App1.getAppState(activity).column_list) {
column.findStatus(access_info.host, arg_status.id) { account, status -> column.findStatus(access_info.host, arg_status.id) { account, status ->
@ -596,7 +594,7 @@ object Action_Toot {
// 同アカウントならreblogged状態を変化させる // 同アカウントならreblogged状態を変化させる
if(access_info.acct == account.acct && if(access_info.acct == account.acct &&
status.myRenoteId == unrenoteId status.myRenoteId == unrenoteId
) { ) {
status.myRenoteId = null status.myRenoteId = null
status.reblogged = false status.reblogged = false
} }
@ -630,19 +628,18 @@ object Action_Toot {
status.reblogs_count = new_status.reblogs_count status.reblogs_count = new_status.reblogs_count
if(access_info.acct == account.acct) { if(access_info.acct == account.acct) {
// 同アカウントならreblog状態を変化させる // 同アカウントならreblog状態を変化させる
when {
if( access_info.isMisskey ){ ! access_info.isMisskey ->
if( bSet && status.myRenoteId == null ) { status.reblogged = new_status.reblogged
bSet && status.myRenoteId == null -> {
status.myRenoteId = new_status.myRenoteId status.myRenoteId = new_status.myRenoteId
status.reblogged = true status.reblogged = true
}else if( !bSet && status.myRenoteId == arg_status.myRenoteId){
status.myRenoteId = null
status.reblogged = false
} }
}else{
status.reblogged = new_status.reblogged
} }
// Misskey のunrenote時はここを通らない
} }
true true
} }
@ -1000,7 +997,7 @@ object Action_Toot {
when { when {
status == null -> showToast(activity, true, result.error ?: "?") status == null -> showToast(activity, true, result.error ?: "?")
replyId == null -> showToast( replyId == null -> showToast(
activity,true, activity, true,
"showReplyTootsearch: in_reply_to_id is null" "showReplyTootsearch: in_reply_to_id is null"
) )
else -> conversationLocal(activity, pos, a, replyId) else -> conversationLocal(activity, pos, a, replyId)