4de211b80a の仕様変更に対応

This commit is contained in:
tateisu 2017-12-07 12:21:45 +09:00
parent 797edbcd3d
commit 700f3ca5a9
3 changed files with 18 additions and 8 deletions

View File

@ -10,8 +10,8 @@ android {
applicationId "jp.juggler.subwaytooter" applicationId "jp.juggler.subwaytooter"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 26 targetSdkVersion 26
versionCode 176 versionCode 177
versionName "1.7.6" versionName "1.7.7"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
} }

View File

@ -38,7 +38,9 @@ public class TootRelationShip {
// (mastodon 2.1 or later) per-following-user setting. // (mastodon 2.1 or later) per-following-user setting.
// Whether the boosts from target account will be shown on authorized user's home TL. // Whether the boosts from target account will be shown on authorized user's home TL.
public int following_reblogs = UserRelation.REBLOG_UNKNOWN; public int showing_reblogs = UserRelation.REBLOG_UNKNOWN;
@Nullable @Nullable
public static TootRelationShip parse( JSONObject src ){ public static TootRelationShip parse( JSONObject src ){
@ -50,20 +52,28 @@ public class TootRelationShip {
Object ov = src.opt( "following" ); Object ov = src.opt( "following" );
if( ov instanceof JSONObject ){ if( ov instanceof JSONObject ){
// https://github.com/tootsuite/mastodon/issues/5856 // https://github.com/tootsuite/mastodon/issues/5856
// 一部の開発版ではこうなっていた
dst.following = true; dst.following = true;
ov = ( (JSONObject) ov ).opt( "reblogs" ); ov = ( (JSONObject) ov ).opt( "reblogs" );
if( ov instanceof Boolean ){ if( ov instanceof Boolean ){
dst.following_reblogs = (Boolean) ov ? UserRelation.REBLOG_SHOW : UserRelation.REBLOG_HIDE; dst.showing_reblogs = (Boolean) ov ? UserRelation.REBLOG_SHOW : UserRelation.REBLOG_HIDE;
}else{ }else{
dst.following_reblogs = UserRelation.REBLOG_UNKNOWN; dst.showing_reblogs = UserRelation.REBLOG_UNKNOWN;
} }
}else{ }else{
// 2.0 までの挙動 // 2.0 までの挙動
dst.following = ( ov instanceof Boolean ? (Boolean) ov : false ); dst.following = ( ov instanceof Boolean ? (Boolean) ov : false );
dst.following_reblogs = UserRelation.REBLOG_UNKNOWN;
// 2.1 の挙動
ov = src.opt( "showing_reblogs" );
if( dst.following && ov instanceof Boolean ){
dst.showing_reblogs = (Boolean) ov ? UserRelation.REBLOG_SHOW : UserRelation.REBLOG_HIDE;
}else{
dst.showing_reblogs = UserRelation.REBLOG_UNKNOWN;
}
} }
dst.followed_by = src.optBoolean( "followed_by" ); dst.followed_by = src.optBoolean( "followed_by" );

View File

@ -100,7 +100,7 @@ public class UserRelation {
cv.put( COL_BLOCKING, src.blocking ? 1 : 0 ); cv.put( COL_BLOCKING, src.blocking ? 1 : 0 );
cv.put( COL_MUTING, src.muting ? 1 : 0 ); cv.put( COL_MUTING, src.muting ? 1 : 0 );
cv.put( COL_REQUESTED, src.requested ? 1 : 0 ); cv.put( COL_REQUESTED, src.requested ? 1 : 0 );
cv.put( COL_FOLLOWING_REBLOGS, src.following_reblogs ); cv.put( COL_FOLLOWING_REBLOGS, src.showing_reblogs );
App1.getDB().replace( table, null, cv ); App1.getDB().replace( table, null, cv );
String key = String.format( "%s:%s", db_id, src.id ); String key = String.format( "%s:%s", db_id, src.id );
@ -128,7 +128,7 @@ public class UserRelation {
cv.put( COL_BLOCKING, src.blocking ? 1 : 0 ); cv.put( COL_BLOCKING, src.blocking ? 1 : 0 );
cv.put( COL_MUTING, src.muting ? 1 : 0 ); cv.put( COL_MUTING, src.muting ? 1 : 0 );
cv.put( COL_REQUESTED, src.requested ? 1 : 0 ); cv.put( COL_REQUESTED, src.requested ? 1 : 0 );
cv.put( COL_FOLLOWING_REBLOGS, src.following_reblogs ); cv.put( COL_FOLLOWING_REBLOGS, src.showing_reblogs );
db.replace( table, null, cv ); db.replace( table, null, cv );
} }