- (Misskey)プロフカラムの複数ピン留め表示に対応。
- (Misskey)プロフカラムのTLの初回取得時に未来のuntilDateを指定する。
This commit is contained in:
parent
3d9b3e634c
commit
d89a41096d
|
@ -1913,7 +1913,8 @@ class Column(
|
|||
|
||||
misskeyParams : JSONObject? = null,
|
||||
misskeyCustomParser : (parser : TootParser, jsonArray : JSONArray) -> ArrayList<TootStatus> =
|
||||
{ parser, jsonArray -> parser.statusList(jsonArray) }
|
||||
{ parser, jsonArray -> parser.statusList(jsonArray) },
|
||||
initialUntilDate : Boolean = false
|
||||
) : TootApiResult? {
|
||||
|
||||
val params = misskeyParams ?: makeMisskeyTimelineParameter(parser)
|
||||
|
@ -1924,7 +1925,12 @@ class Column(
|
|||
|
||||
// 初回の取得
|
||||
val result = when {
|
||||
isMisskey -> client.request(path_base, params.toPostRequestBuilder())
|
||||
isMisskey -> {
|
||||
if( initialUntilDate ){
|
||||
params.put("untilDate",System.currentTimeMillis() + ( 86400000L * 365))
|
||||
}
|
||||
client.request(path_base, params.toPostRequestBuilder())
|
||||
}
|
||||
aroundMin -> client.request("$path_base&min_id=$status_id")
|
||||
aroundMax -> client.request("$path_base&max_id=$status_id")
|
||||
else -> client.request(path_base)
|
||||
|
@ -2647,7 +2653,7 @@ class Column(
|
|||
)
|
||||
}
|
||||
|
||||
TAB_STATUS -> {
|
||||
else -> {
|
||||
|
||||
var instance = access_info.instance
|
||||
|
||||
|
@ -2679,24 +2685,21 @@ class Column(
|
|||
getStatuses(client, path)
|
||||
} else {
|
||||
// 固定トゥートの取得
|
||||
val pinnedNote = who_account?.get()?.pinnedNote
|
||||
if(pinnedNote != null) {
|
||||
pinnedNote.pinned = true
|
||||
val src = ArrayList<TootStatus>()
|
||||
src.add(pinnedNote)
|
||||
this.list_pinned = addWithFilterStatus(null, src)
|
||||
val pinnedNotes = who_account?.get()?.pinnedNotes
|
||||
if(pinnedNotes != null) {
|
||||
this.list_pinned =
|
||||
addWithFilterStatus(null, pinnedNotes)
|
||||
}
|
||||
|
||||
// 通常トゥートの取得
|
||||
getStatuses(
|
||||
client,
|
||||
PATH_MISSKEY_PROFILE_STATUSES,
|
||||
misskeyParams = makeMisskeyParamsProfileStatuses(parser)
|
||||
misskeyParams = makeMisskeyParamsProfileStatuses(parser),
|
||||
initialUntilDate = true
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
else -> throw RuntimeException("profile_tab : invalid value.")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2827,6 +2830,7 @@ class Column(
|
|||
, misskeyParams = makeMisskeyTimelineParameter(parser)
|
||||
.put("tag", hashtag)
|
||||
.put("limit", MISSKEY_HASHTAG_LIMIT)
|
||||
|
||||
)
|
||||
} else {
|
||||
getStatuses(client, makeHashtagUrl(hashtag))
|
||||
|
@ -6815,13 +6819,13 @@ class Column(
|
|||
}
|
||||
}
|
||||
|
||||
fun getContentColor(activity:AppCompatActivity) : Int = if(content_color != 0) {
|
||||
fun getContentColor(activity : AppCompatActivity) : Int = if(content_color != 0) {
|
||||
content_color
|
||||
} else {
|
||||
Styler.getAttributeColor(activity, R.attr.colorContentText)
|
||||
}
|
||||
|
||||
fun getAcctColor(activity:AppCompatActivity) : Int = if(acct_color != 0) {
|
||||
fun getAcctColor(activity : AppCompatActivity) : Int = if(acct_color != 0) {
|
||||
acct_color
|
||||
} else {
|
||||
Styler.getAttributeColor(activity, R.attr.colorTimeSmall)
|
||||
|
@ -6838,5 +6842,4 @@ class Column(
|
|||
registerColumnId(column_id, this)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -101,7 +101,7 @@ internal class StatusButtons(
|
|||
color = color_normal
|
||||
)
|
||||
|
||||
val a = (((color_normal ushr 24)/255f) * 0.7f)
|
||||
// val a = (((color_normal ushr 24)/255f) * 0.7f)
|
||||
|
||||
// setIconDrawableId で色を指定するとアルファ値も反映されるらしい
|
||||
// btnConversation.alpha = a
|
||||
|
|
|
@ -2,6 +2,7 @@ package jp.juggler.subwaytooter.api.entity
|
|||
|
||||
import jp.juggler.subwaytooter.api.TootParser
|
||||
import jp.juggler.subwaytooter.util.LogCategory
|
||||
import jp.juggler.subwaytooter.util.toStringArrayList
|
||||
import org.json.JSONArray
|
||||
import org.json.JSONException
|
||||
import org.json.JSONObject
|
||||
|
@ -215,5 +216,3 @@ fun <T : TootAttachmentLike> ArrayList<T>.encodeJson() : JSONArray {
|
|||
}
|
||||
return a
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -103,11 +103,11 @@ class NicoEnquete(
|
|||
this.items = parseChoiceList(
|
||||
parser.context,
|
||||
status,
|
||||
parseStringArray(src, "items")
|
||||
src.parseStringArrayList("items")
|
||||
)
|
||||
|
||||
this.ratios = parseFloatArray(src, "ratios")
|
||||
this.ratios_text = parseStringArray(src, "ratios_text")
|
||||
this.ratios = src.parseFloatArrayList("ratios")
|
||||
this.ratios_text = src.parseStringArrayList( "ratios_text")
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -172,29 +172,6 @@ class NicoEnquete(
|
|||
}
|
||||
}
|
||||
|
||||
private fun parseStringArray(src : JSONObject, name : String) : ArrayList<String>? {
|
||||
val array = src.optJSONArray(name)
|
||||
if(array != null) {
|
||||
val dst = array.toStringArrayList()
|
||||
if(dst.isNotEmpty()) return dst
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
private fun parseFloatArray(src : JSONObject, name : String) : ArrayList<Float>? {
|
||||
val array = src.optJSONArray(name)
|
||||
if(array != null) {
|
||||
val size = array.length()
|
||||
val dst = ArrayList<Float>(size)
|
||||
for(i in 0 until size) {
|
||||
val dv = array.optDouble(i)
|
||||
dst.add(dv.toFloat())
|
||||
}
|
||||
if(dst.isNotEmpty()) return dst
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
private fun parseChoiceList(
|
||||
context : Context,
|
||||
status : TootStatus,
|
||||
|
|
|
@ -185,8 +185,8 @@ open class TootAccount(parser : TootParser, src : JSONObject) {
|
|||
// user_hides_network is preference, not exposed in API
|
||||
// val user_hides_network : Boolean
|
||||
|
||||
var pinnedNote : TootStatus? = null
|
||||
var pinnedNoteId : String? = null
|
||||
var pinnedNotes : ArrayList<TootStatus>? = null
|
||||
var pinnedNoteIds : ArrayList<String>? = null
|
||||
|
||||
init {
|
||||
var sv : String?
|
||||
|
@ -243,10 +243,11 @@ open class TootAccount(parser : TootParser, src : JSONObject) {
|
|||
this.header = src.parseString("bannerUrl")
|
||||
this.header_static = src.parseString("bannerUrl")
|
||||
|
||||
this.pinnedNoteId = src.parseString("pinnedNoteId")
|
||||
this.pinnedNoteIds = src.parseStringArrayList("pinnedNoteIds")
|
||||
if(parser.misskeyDecodeProfilePin) {
|
||||
this.pinnedNote = parseItem(::TootStatus, parser, src.optJSONObject("pinnedNote"))
|
||||
|
||||
val list = parseList(::TootStatus, parser,src.optJSONArray("pinnedNotes"))
|
||||
list.forEach { it.pinned = true }
|
||||
this.pinnedNotes = if( list.isNotEmpty() ) list else null
|
||||
}
|
||||
|
||||
UserRelationMisskey.fromAccount(parser,src,id)
|
||||
|
|
|
@ -684,6 +684,28 @@ fun JSONArray.toStringArrayList() : ArrayList<String> {
|
|||
return dst_list
|
||||
}
|
||||
|
||||
fun JSONObject.parseStringArrayList(name : String) : ArrayList<String>? {
|
||||
val array = optJSONArray(name)
|
||||
if(array != null) {
|
||||
val dst = array.toStringArrayList()
|
||||
if(dst.isNotEmpty()) return dst
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
fun JSONObject.parseFloatArrayList(name : String) : ArrayList<Float>? {
|
||||
val array = optJSONArray(name)
|
||||
if(array != null) {
|
||||
val size = array.length()
|
||||
val dst = ArrayList<Float>(size)
|
||||
for(i in 0 until size) {
|
||||
val dv = array.optDouble(i)
|
||||
dst.add(dv.toFloat())
|
||||
}
|
||||
if(dst.isNotEmpty()) return dst
|
||||
}
|
||||
return null
|
||||
}
|
||||
fun String.toJsonObject() = JSONObject(this)
|
||||
fun String.toJsonArray() = JSONArray(this)
|
||||
|
||||
|
|
Loading…
Reference in New Issue