This commit is contained in:
tateisu 2021-06-13 20:48:48 +09:00
parent c08a5dfd8e
commit 5f7f486471
37 changed files with 3140 additions and 3186 deletions

View File

@ -840,7 +840,7 @@ class ActAppSetting : AppCompatActivity(), ColorPickerDialogListener, View.OnCli
private fun importAppData2(bConfirm: Boolean, uri: Uri) {
val type = contentResolver.getType(uri)
log.d("importAppData type=%s", type)
log.d("importAppData type=$type")
if (!bConfirm) {
AlertDialog.Builder(this)

View File

@ -7,6 +7,7 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.FileProvider
import jp.juggler.util.LogCategory
import jp.juggler.util.digestSHA256Hex
import okhttp3.internal.toHexString
import org.apache.commons.io.IOUtils
import java.io.File
import java.io.FileOutputStream
@ -32,7 +33,7 @@ class ActCallback : AppCompatActivity() {
}
override fun onCreate(savedInstanceState : Bundle?) {
log.d("onCreate flags=%x", intent.flags)
log.d("onCreate flags=0x${intent.flags.toHexString()}")
super.onCreate(savedInstanceState)
var intent : Intent? = intent

View File

@ -141,7 +141,7 @@ class ActMediaViewer : AppCompatActivity(), View.OnClickListener {
}
override fun onRepeatModeChanged(repeatMode: Int) {
log.d("exoPlayer onRepeatModeChanged %d", repeatMode)
log.d("exoPlayer onRepeatModeChanged $repeatMode", )
}
override fun onPlayerError(error: ExoPlaybackException) {

View File

@ -135,14 +135,14 @@ object AppDataExporter {
Cursor.FIELD_TYPE_FLOAT -> {
val d = cursor.getDouble(i)
if(d.isNaN() || d.isInfinite()) {
log.w("column %s is nan or infinite value.", names[i])
log.w("column ${names[i]} is nan or infinite value.")
} else {
writer.name(names[i])
writer.value(d)
}
}
Cursor.FIELD_TYPE_BLOB -> log.w("column %s is blob.", names[i])
Cursor.FIELD_TYPE_BLOB -> log.w("column ${names[i]} is blob." )
}
}

View File

@ -20,8 +20,6 @@ import jp.juggler.subwaytooter.table.SavedAccount
import jp.juggler.subwaytooter.util.NetworkStateTracker
import jp.juggler.subwaytooter.util.PostAttachment
import jp.juggler.util.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import org.apache.commons.io.IOUtils
import java.io.ByteArrayOutputStream
import java.io.File
@ -230,9 +228,9 @@ class AppState(
restartTTS()
} else {
log.d(
"proc_flushSpeechQueue: tts is speaking. queue_count=%d, expire_remain=%.3f",
queue_count,
expire_remain / 1000f
"proc_flushSpeechQueue: tts is speaking. queue_count=${queue_count}, expire_remain=${
String.format("%.3f",expire_remain / 1000f)
}"
)
handler.postDelayed(this, expire_remain)
return
@ -241,7 +239,7 @@ class AppState(
}
val sv = tts_queue.removeFirst()
log.d("proc_flushSpeechQueue: speak %s", sv)
log.d("proc_flushSpeechQueue: speak ${sv}")
val voice_count = voice_list.size
if (voice_count > 0) {
@ -395,7 +393,7 @@ class AppState(
R.string.text_to_speech_initialize_failed,
status
)
log.d("speech initialize failed. status=%s", status)
log.d("speech initialize failed. status=${status}" )
return@OnInitListener
}
@ -423,15 +421,8 @@ class AppState(
} else {
val lang = defaultLocale(context).toLanguageTag()
for (v in voice_set) {
log.d(
"Voice %s %s %s",
v.name,
v.locale.toLanguageTag(),
lang
)
if (lang != v.locale.toLanguageTag()) {
continue
}
log.d( "Voice ${ v.name} ${ v.locale.toLanguageTag()} ${lang}" )
if (lang != v.locale.toLanguageTag()) continue
voice_list.add(v)
}
}
@ -603,7 +594,8 @@ class AppState(
}
if (item.sound_type == HighlightWord.SOUND_TYPE_CUSTOM && item.sound_uri.mayUri()
.tryRingtone()) return
.tryRingtone()
) return
RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION).tryRingtone()
}

View File

@ -329,7 +329,7 @@ fun Column.isFiltered(item: TootNotification): Boolean {
TootNotification.TYPE_FOLLOW_REQUEST_ACCEPTED_MISSKEY -> {
val who = item.account
if (who != null && favMuteSet?.contains(access_info.getFullAcct(who)) == true) {
Column.log.d("%s is in favMuteSet.", access_info.getFullAcct(who))
Column.log.d("${access_info.getFullAcct(who)} is in favMuteSet.")
return true
}
}

View File

@ -258,6 +258,7 @@ class ColumnTask_Loading(
column.saveRange(bBottom = true, bTop = true, result = result, list = src)
} else {
column.saveRangeTop(result, src)
true
}
return when {
@ -416,6 +417,7 @@ class ColumnTask_Loading(
column.saveRange(bBottom = true, bTop = true, result = result, list = src)
} else {
column.saveRangeTop(result, src)
true
}
return when {
@ -998,7 +1000,7 @@ class ColumnTask_Loading(
target_status.conversation_main = true
// 祖先
val list_asc = java.util.ArrayList<TootStatus>()
val list_asc = ArrayList<TootStatus>()
while (true) {
if (client.isApiCancelled) return null
queryParams["offset"] = list_asc.size
@ -1012,7 +1014,7 @@ class ColumnTask_Loading(
}
// 直接の子リプライ。(子孫をたどることまではしない)
val list_desc = java.util.ArrayList<TootStatus>()
val list_desc = ArrayList<TootStatus>()
val idSet = HashSet<EntityId>()
var untilId: EntityId? = null
@ -1048,7 +1050,7 @@ class ColumnTask_Loading(
}
// 一つのリストにまとめる
this.list_tmp = java.util.ArrayList<TimelineItem>(
this.list_tmp = ArrayList<TimelineItem>(
list_asc.size + list_desc.size + 2
).apply {
addAll(list_asc.sortedBy { it.time_created_at })
@ -1084,7 +1086,7 @@ class ColumnTask_Loading(
target_status.conversation_main = true
if (conversation_context != null) {
this.list_tmp = java.util.ArrayList(
this.list_tmp = ArrayList(
1
+ (conversation_context.ancestors?.size ?: 0)
+ (conversation_context.descendants?.size ?: 0)

View File

@ -103,8 +103,6 @@ class ColumnTask_Refresh(
sp = holder.scrollPosition
}
if (bBottom) {
val changeList = listOf(
AdapterChange(

View File

@ -237,21 +237,17 @@ class ColumnViewHolder(
val column = this@ColumnViewHolder.column
if (column == null) {
log.d("restoreScrollPosition [%d], column==null", page_idx)
log.d("restoreScrollPosition [${page_idx}], column==null")
return
}
if (column.is_dispose.get()) {
log.d("restoreScrollPosition [%d], column is disposed", page_idx)
log.d("restoreScrollPosition [${page_idx}], column is disposed")
return
}
if (column.hasMultipleViewHolder()) {
log.d(
"restoreScrollPosition [%d] %s , column has multiple view holder. retry later.",
page_idx,
column.getColumnName(true)
)
log.d("restoreScrollPosition [${page_idx}] ${column.getColumnName(true)}, column has multiple view holder. retry later.")
// タブレットモードでカラムを追加/削除した際に発生する。
// このタイミングでスクロール位置を復元してもうまくいかないので延期する
@ -277,30 +273,16 @@ class ColumnViewHolder(
// }
// }
log.d(
"restoreScrollPosition [$page_idx] %s , column has no saved scroll position.",
column.getColumnName(true)
)
log.d("restoreScrollPosition [$page_idx] ${column.getColumnName(true)} , column has no saved scroll position.")
return
}
column.scroll_save = null
if (listView.visibility != View.VISIBLE) {
log.d(
"restoreScrollPosition [$page_idx] %s , listView is not visible. saved position %s,%s is dropped.",
column.getColumnName(true),
sp.adapterIndex,
sp.offset
)
log.d("restoreScrollPosition [$page_idx] ${column.getColumnName(true)} , listView is not visible. saved position ${sp.adapterIndex},${sp.offset} is dropped.")
} else {
log.d(
"restoreScrollPosition [%d] %s , listView is visible. resume %s,%s",
page_idx,
column.getColumnName(true),
sp.adapterIndex,
sp.offset
)
log.d("restoreScrollPosition [${page_idx}] ${column.getColumnName(true)} , listView is visible. resume ${sp.adapterIndex},${sp.offset}")
sp.restore(this@ColumnViewHolder)
}

View File

@ -93,7 +93,7 @@ fun ColumnViewHolder.onPageDestroy(page_idx: Int) {
// タブレットモードの場合、onPageCreateより前に呼ばれる
val column = this.column
if (column != null) {
ColumnViewHolder.log.d("onPageDestroy [%d] %s", page_idx, tvColumnName.text)
ColumnViewHolder.log.d("onPageDestroy [${page_idx}] ${tvColumnName.text}")
saveScrollPosition()
listView.adapter = null
column.removeColumnViewHolder(this)
@ -111,7 +111,7 @@ fun ColumnViewHolder.onPageCreate(column: Column, page_idx: Int, page_count: Int
this.column = column
this.page_idx = page_idx
ColumnViewHolder.log.d("onPageCreate [%d] %s", page_idx, column.getColumnName(true))
ColumnViewHolder.log.d("onPageCreate [${page_idx}] ${column.getColumnName(true)}")
val bSimpleList =
column.type != ColumnType.CONVERSATION && Pref.bpSimpleList(activity.pref)

View File

@ -209,22 +209,17 @@ fun ColumnViewHolder.scrollToTop2() {
fun ColumnViewHolder.saveScrollPosition(): Boolean {
val column = this.column
when {
column == null -> ColumnViewHolder.log.d("saveScrollPosition [%d] , column==null", page_idx)
column == null ->
ColumnViewHolder.log.d("saveScrollPosition [${page_idx}] , column==null")
column.is_dispose.get() -> ColumnViewHolder.log.d(
"saveScrollPosition [%d] , column is disposed",
page_idx
)
column.is_dispose.get() ->
ColumnViewHolder.log.d("saveScrollPosition [${page_idx}] , column is disposed")
listView.visibility != View.VISIBLE -> {
val scroll_save = ScrollPosition()
column.scroll_save = scroll_save
ColumnViewHolder.log.d(
"saveScrollPosition [%d] %s , listView is not visible, save %s,%s",
page_idx,
column.getColumnName(true),
scroll_save.adapterIndex,
scroll_save.offset
"saveScrollPosition [${page_idx}] ${column.getColumnName(true)} , listView is not visible, save ${scroll_save.adapterIndex},${scroll_save.offset}"
)
return true
}
@ -233,11 +228,7 @@ fun ColumnViewHolder.saveScrollPosition(): Boolean {
val scroll_save = ScrollPosition(this)
column.scroll_save = scroll_save
ColumnViewHolder.log.d(
"saveScrollPosition [%d] %s , listView is visible, save %s,%s",
page_idx,
column.getColumnName(true),
scroll_save.adapterIndex,
scroll_save.offset
"saveScrollPosition [${page_idx}] ${column.getColumnName(true)} , listView is visible, save ${scroll_save.adapterIndex},${scroll_save.offset}"
)
return true
}
@ -262,7 +253,7 @@ fun ColumnViewHolder.setScrollPosition(sp: ScrollPosition, deltaDp: Float = 0f)
listLayoutManager.scrollVerticallyBy(dy, recycler, state)
} catch (ex: Throwable) {
ColumnViewHolder.log.trace(ex)
ColumnViewHolder.log.e("can't access field in class %s", RecyclerView::class.java.simpleName)
ColumnViewHolder.log.e("can't access field in class ${RecyclerView::class.java.simpleName}")
}
}, 20L)
}

View File

@ -26,7 +26,7 @@ class EventReceiver : BroadcastReceiver() {
ACTION_NOTIFICATION_DELETE ->
PollingWorker.queueNotificationDeleted( context,intent.data)
else -> log.e("onReceive: unsupported action %s", action)
else -> log.e("onReceive: unsupported action ${action}")
}
}
}

View File

@ -23,7 +23,7 @@ class MyFirebaseMessagingService : FirebaseMessagingService() {
var tag: String? = null
val data = remoteMessage.data
for ((key, value) in data) {
log.d("onMessageReceived: %s=%s", key, value)
log.d("onMessageReceived: ${key}=${value}")
when (key) {
"notification_tag" -> tag = value
"acct" -> tag = "acct<>$value"
@ -42,7 +42,7 @@ class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onNewToken(token: String) {
try {
log.d("onTokenRefresh: token=%s", token)
log.d("onTokenRefresh: token=${token}")
PrefDevice.prefDevice(this).edit().putString(PrefDevice.KEY_DEVICE_TOKEN, token).apply()
PollingWorker.queueFCMTokenUpdated(this)

View File

@ -17,7 +17,7 @@ internal class TabletColumnViewHolder(
private var pageIndex = -1
fun bind(column: Column, pageIndex: Int, column_count: Int) {
log.d("bind. %d => %d ", this.pageIndex, pageIndex)
log.d("bind. ${this.pageIndex} => ${pageIndex}")
columnViewHolder.onPageDestroy(this.pageIndex)
@ -31,7 +31,7 @@ internal class TabletColumnViewHolder(
}
fun onViewRecycled() {
log.d("onViewRecycled %d", pageIndex)
log.d("onViewRecycled ${pageIndex}")
columnViewHolder.onPageDestroy(pageIndex)
}
}

View File

@ -63,7 +63,7 @@ class UpdateRelationEnv(val column: Column) {
UserRelation.saveListMisskey(now, column.access_info.db_id, who_list, start, step)
start += step
}
Column.log.d("updateRelation: update %d relations.", end)
Column.log.d("updateRelation: update ${end} relations.")
}
// 2018/11/1 Misskeyにもリレーション取得APIができた
@ -108,7 +108,7 @@ class UpdateRelationEnv(val column: Column) {
UserRelation.saveList2(now, column.access_info.db_id, list)
}
}
Column.log.d("updateRelation: update %d relations.", n)
Column.log.d("updateRelation: update ${n} relations.")
}
@ -139,7 +139,7 @@ class UpdateRelationEnv(val column: Column) {
list
)
}
Column.log.d("updateRelation: update %d relations.", n)
Column.log.d("updateRelation: update ${n} relations.")
}
}
@ -158,7 +158,7 @@ class UpdateRelationEnv(val column: Column) {
AcctSet.saveList(now, acct_list, n, length)
n += length
}
Column.log.d("updateRelation: update %d acct.", n)
Column.log.d("updateRelation: update ${n} acct.")
}
@ -177,7 +177,7 @@ class UpdateRelationEnv(val column: Column) {
TagSet.saveList(now, tag_list, n, length)
n += length
}
Column.log.d("updateRelation: update %d tag.", n)
Column.log.d("updateRelation: update ${n} tag.")
}
}
}

View File

@ -231,7 +231,7 @@ private fun appServerUnregister(context: Context, account: SavedAccount) {
val response = call.await()
log.e("appServerUnregister: %s", response)
log.e("appServerUnregister: ${response}")
} catch (ex: Throwable) {
log.trace(ex, "appServerUnregister failed.")
}

View File

@ -132,7 +132,7 @@ private fun ActMain.conversationRemote(
val (result, status) = client.syncStatus(access_info, remote_status_url)
if (status != null) {
local_status_id = status.id
log.d("status id conversion %s => %s", remote_status_url, status.id)
log.d("status id conversion ${remote_status_url}=>${status.id}")
}
result
}

View File

@ -114,14 +114,17 @@ class TootList(parser:TootParser,src : JsonObject): TimelineItem(), Comparable<T
else -> (ob is Long).b2i() - (oa is Long).b2i()
}
log.d(
"%s %s %s"
, oa
, if(delta < 0) "<" else if(delta > 0) ">" else "="
, ob
"${oa} ${
when {
delta < 0 -> "<"
delta > 0 -> ">"
else -> "="
}
} ${ob}"
)
if (delta != 0) return delta
++i
}
}
}

View File

@ -30,12 +30,12 @@ object TootPayload {
// ここを通るケースはまだ確認できていない
else -> {
log.e("unknown payload(1). message=%s", parent_text)
log.e("unknown payload(1). message=${parent_text}")
null
}
}
} else if (payload is JsonArray) {
log.e("unknown payload(1b). message=%s", parent_text)
log.e("unknown payload(1b). message=${parent_text}")
return null
}
@ -63,12 +63,12 @@ object TootPayload {
"announcement.reaction" -> parseItem(TootReaction::parseFedibird, src)
else -> {
log.e("unknown payload(2). message=%s", parent_text)
log.e("unknown payload(2). message=${parent_text}")
// ここを通るケースはまだ確認できていない
}
}
} else if (payload[0] == '[') {
log.e("unknown payload(2b). message=%s", parent_text)
log.e("unknown payload(2b). message=${parent_text}")
return null
}
@ -80,7 +80,7 @@ object TootPayload {
}
// ここを通るケースはまだ確認できていない
log.e("unknown payload(3). message=%s", parent_text)
log.e("unknown payload(3). message=${parent_text}")
} catch (ex: Throwable) {
log.trace(ex)

View File

@ -1210,10 +1210,10 @@ class TootStatus(parser: TootParser, src: JsonObject) : TimelineItem() {
m = reDate.matcher(strTime)
if (m.find()) return parseTime("${strTime}T00:00:00.000Z")
log.w("invalid time format: %s", strTime)
log.w("invalid time format: ${strTime}")
} catch (ex: Throwable) { // ParseException, ArrayIndexOutOfBoundsException
log.trace(ex)
log.e(ex, "TootStatus.parseTime failed. src=%s", strTime)
log.e(ex, "TootStatus.parseTime failed. src=$strTime")
}
}
return 0L
@ -1224,7 +1224,7 @@ class TootStatus(parser: TootParser, src: JsonObject) : TimelineItem() {
try {
val m = reMSPTime.matcher(strTime)
if (!m.find()) {
log.d("invalid time format: %s", strTime)
log.d("invalid time format: $strTime")
} else {
val g = GregorianCalendar(tz_utc)
g.set(
@ -1240,7 +1240,7 @@ class TootStatus(parser: TootParser, src: JsonObject) : TimelineItem() {
}
} catch (ex: Throwable) { // ParseException, ArrayIndexOutOfBoundsException
log.trace(ex)
log.e(ex, "parseTimeMSP failed. src=%s", strTime)
log.e(ex, "parseTimeMSP failed. src=${strTime}" )
}
}

View File

@ -103,7 +103,7 @@ class PollingForegrounder : IntentService("PollingForegrounder") {
if (sv.isEmpty() || sv == last_status) return@handleFCMMessage
// 状況が変化したらログと通知領域に出力する
last_status = sv
log.d("onStatus %s", sv)
log.d("onStatus $sv")
startForeground(NOTIFICATION_ID_FOREGROUNDER, createNotification(context, sv))
}
}

View File

@ -357,10 +357,7 @@ class PollingWorker private constructor(contextArg: Context) {
// ジョブが完了した?
val now = SystemClock.elapsedRealtime()
if (!pw.hasJob(JobId.Push)) {
log.d(
"handleFCMMessage: JOB_FCM completed. time=%.2f",
(now - time_start) / 1000f
)
log.d("handleFCMMessage: JOB_FCM completed. time=${String.format("%.2f", (now - time_start) / 1000f)}")
break
}

View File

@ -77,7 +77,7 @@ object NotestockHelper {
parseList(parser, data)
.also {
if (it.isEmpty())
log.d("search result is empty. %s", result.bodyString)
log.d("search result is empty. ${result.bodyString}")
}
)

View File

@ -72,7 +72,7 @@ object TootsearchHelper {
parseList(parser, root)
.also {
if (it.isEmpty())
log.d("search result is empty. %s", result.bodyString)
log.d("search result is empty. ${result.bodyString}")
}
)
}

View File

@ -164,12 +164,7 @@ class AcctColor {
log.e(ex, "load failed.")
}
log.d(
"lruCache size=%s,hit=%s,miss=%s",
mMemoryCache.size(),
mMemoryCache.hitCount(),
mMemoryCache.missCount()
)
log.d("lruCache size=${mMemoryCache.size()},hit=${mMemoryCache.hitCount()},miss=${mMemoryCache.missCount()}")
val ac = AcctColor(key, acctPretty)
mMemoryCache.put(key, ac)
return ac

View File

@ -69,14 +69,7 @@ class NotificationTracking {
post_id.putTo(cv, COL_POST_ID)
cv.put(COL_POST_TIME, post_time)
val rows = App1.database.update(table, cv, WHERE_AID, arrayOf(account_db_id.toString(),notificationType))
log.d(
"updatePost account_db_id=%s, nt=%s, post=%s,%s update_rows=%s"
, account_db_id
, notificationType
, post_id
, post_time
, rows
)
log.d("updatePost account_db_id=${account_db_id}, nt=${notificationType}, post=${post_id},${post_time} update_rows=${rows}")
dirty=false
clearCache(account_db_id,notificationType)
} catch(ex : Throwable) {

View File

@ -154,7 +154,7 @@ class PostDraft {
val colIdx = colIdxArg ?: ColIdx(cursor)
if (!cursor.moveToPosition(position)) {
log.d("loadFromCursor: move failed. position=%s", position)
log.d("loadFromCursor: move failed. position=${position}")
return null
}

View File

@ -353,13 +353,7 @@ class CustomEmojiCache(
if (cache_used) continue
if (DEBUG)
log.d(
"start get image. queue_size=%d, cache_size=%d url=%s",
queue_size,
cache_size,
request.url
)
if (DEBUG) log.d("start get image. queue_size=${queue_size}, cache_size=${cache_size} url=${request.url}")
val now = System.currentTimeMillis()
@ -377,8 +371,7 @@ class CustomEmojiCache(
data = try {
App1.getHttpCached(request.url)
} catch (ex: Throwable) {
log.e("get failed. url=%s", request.url)
log.trace(ex)
log.trace(ex, "get failed. url=${request.url}")
null
}
te = elapsedTime
@ -473,7 +466,7 @@ class CustomEmojiCache(
// fall thru
} catch (ex: Throwable) {
if (DEBUG) log.trace(ex)
log.e(ex, "PNG decode failed. %s ", url)
log.e(ex, "PNG decode failed. $url ")
}
// 通常のビットマップでのロードを試みる
@ -483,12 +476,12 @@ class CustomEmojiCache(
if (DEBUG) log.d("bitmap decoded.")
return ApngFrames(b)
} else {
log.e("Bitmap decode returns null. %s", url)
log.e("Bitmap decode returns null. $url")
}
// fall thru
} catch (ex: Throwable) {
log.e(ex, "Bitmap decode failed. %s", url)
log.e(ex, "Bitmap decode failed. $url")
}
// SVGのロードを試みる
@ -501,7 +494,7 @@ class CustomEmojiCache(
// fall thru
} catch (ex: Throwable) {
log.e(ex, "SVG decode failed. %s", url)
log.e(ex, "SVG decode failed. $url")
}
return null

View File

@ -289,7 +289,7 @@ class CustomEmojiLister(
list.sortWith(compareBy(String.CASE_INSENSITIVE_ORDER) { it.shortcode })
list
} catch (ex: Throwable) {
log.e(ex, "decodeEmojiList failed. instance=%s", accessInfo.apiHost.ascii)
log.e(ex, "decodeEmojiList failed. instance=${accessInfo.apiHost.ascii}")
null
}
}

View File

@ -178,7 +178,8 @@ class SpanList {
src.list.forEach { addLast(it.start + offset, it.end + offset, it.span) }
}
fun addFirst(start: Int, end: Int, span: Any) = when {
fun addFirst(start: Int, end: Int, span: Any) {
when {
start == end -> {
// empty span allowed
}
@ -191,8 +192,10 @@ class SpanList {
list.addFirst(SpanPos(start, end, span))
}
}
}
fun addLast(start: Int, end: Int, span: Any) = when {
fun addLast(start: Int, end: Int, span: Any) {
when {
start == end -> {
// empty span allowed
}
@ -205,6 +208,7 @@ class SpanList {
list.addLast(SpanPos(start, end, span))
}
}
}
fun insert(offset: Int, length: Int) {
for (sp in list) {
@ -1490,6 +1494,7 @@ object MisskeyMarkdownDecoder {
return null
}
@Suppress("SpellCheckingInspection")
private val latexEscape = listOf(
"\\#" to "#",
"\\$" to "$",
@ -1539,9 +1544,13 @@ object MisskeyMarkdownDecoder {
// \} \]はムダなエスケープに見えるが、androidでは必要なので削ってはいけない
@Suppress("RegExpRedundantEscape")
private val reLatexRemove = """\\(?:quad|Huge|atop|sf|scriptsize|bf|small|tiny|underline|large|(?:color)\{[^}]*\})""".toRegex()
private val reLatexRemove =
"""\\(?:quad|Huge|atop|sf|scriptsize|bf|small|tiny|underline|large|(?:color)\{[^}]*\})""".toRegex()
@Suppress("RegExpRedundantEscape")
private val reLatex1 = """\\(?:(?:url)|(?:textcolor|colorbox)\{[^}]*\}|(?:fcolorbox|raisebox)\{[^}]*\}\{[^}]*\}|includegraphics\[[^]]*\])\{([^}]*)\}""".toRegex()
private val reLatex1 =
"""\\(?:(?:url)|(?:textcolor|colorbox)\{[^}]*\}|(?:fcolorbox|raisebox)\{[^}]*\}\{[^}]*\}|includegraphics\[[^]]*\])\{([^}]*)\}""".toRegex()
@Suppress("RegExpRedundantEscape")
private val reLatex2reversed = """\\(?:overset|href)\{([^}]+)\}\{([^}]+)\}""".toRegex()
@ -1943,8 +1952,10 @@ object MisskeyMarkdownDecoder {
if (src != null) {
val root = Node(NodeType.ROOT, emptyArray(), null)
NodeParseEnv(useFunction = (options.linkHelper?.misskeyVersion
?: 12) >= 11, root, src, 0, src.length).parseInside()
NodeParseEnv(
useFunction = (options.linkHelper?.misskeyVersion
?: 12) >= 11, root, src, 0, src.length
).parseInside()
env.fireRender(root).setSpan(env.sb)
}

View File

@ -783,7 +783,7 @@ class PostHelper(
val limit = 100
val s = src.substring(start, end)
val acct_list = AcctSet.searchPrefix(s, limit)
log.d("search for %s, result=%d", s, acct_list.size)
log.d("search for ${s}, result=${acct_list.size}")
if (acct_list.isEmpty()) {
closeAcctPopup()
} else {
@ -811,7 +811,7 @@ class PostHelper(
val limit = 100
val s = src.substring(last_sharp + 1, end)
val tag_list = TagSet.searchPrefix(s, limit)
log.d("search for %s, result=%d", s, tag_list.size)
log.d("search for ${s}, result=${tag_list.size}")
if (tag_list.isEmpty()) {
closeAcctPopup()
} else {
@ -863,7 +863,7 @@ class PostHelper(
val s =
src.substring(last_colon + 1, end).lowercase().replace('-', '_')
val matches = EmojiDecoder.searchShortCode(activity, s, remain)
log.d("checkEmoji: search for %s, result=%d", s, matches.size)
log.d("checkEmoji: search for ${s}, result=${matches.size}")
code_list.addAll(matches)
}

View File

@ -44,13 +44,12 @@ class TaskList {
private fun saveArray(context: Context) {
val list = prepareList(context)
try {
log.d("saveArray size=%s", list.size)
log.d("saveArray size=${list.size}")
val data = JsonArray(list).toString().encodeUTF8()
context.openFileOutput(FILE_TASK_LIST, Context.MODE_PRIVATE)
.use { IOUtils.write(data, it) }
} catch (ex: Throwable) {
log.trace(ex)
log.e(ex, "TaskList: saveArray failed.size=%s", list.size)
log.trace(ex, "TaskList: saveArray failed.size=${list.size}")
}
}

View File

@ -33,7 +33,7 @@ class MyListView : ListView {
}
val rv = super.onTouchEvent(ev)
log.d("onTouchEvent action=%s, rv=%s", action, rv)
log.d("onTouchEvent action=${action}, rv=${rv}")
return rv
}

View File

@ -314,7 +314,7 @@ class MyNetworkImageView : AppCompatImageView {
drawable is BitmapDrawable -> replaceBitmapDrawable(drawable)
else -> {
log.d("onResourceReady: drawable class=%s", drawable.javaClass)
log.d("onResourceReady: drawable class=${drawable.javaClass.simpleName}")
drawable
}
}
@ -333,7 +333,7 @@ class MyNetworkImageView : AppCompatImageView {
// // by forcing both the smaller thumb and the larger version to have exactly the same intrinsic dimensions.
// // If a drawable is replaced in an ImageView by another drawable with different intrinsic dimensions,
// // the ImageView requests a layout. Scrolling rapidly while replacing thumbs with larger images triggers
// // lots of these calls and causes significant amounts of jank.
// // lots of these calls and causes significant amounts of junk.
// float viewRatio = view.getWidth() / (float) view.getHeight();
// float drawableRatio = drawable.getIntrinsicWidth() / (float) drawable.getIntrinsicHeight();
// if( Math.abs( viewRatio - 1f ) <= SQUARE_RATIO_MARGIN
@ -360,7 +360,7 @@ class MyNetworkImageView : AppCompatImageView {
override fun onStart() {
val drawable = glide_drawable
if (drawable is Animatable && !drawable.isRunning) {
log.d("MyTargetGif onStart glide_drawable=%s", drawable)
log.d("MyTargetGif onStart glide_drawable=${drawable}")
drawable.start()
}
}
@ -368,14 +368,14 @@ class MyNetworkImageView : AppCompatImageView {
override fun onStop() {
val drawable = glide_drawable
if (drawable is Animatable && drawable.isRunning) {
log.d("MyTargetGif onStop glide_drawable=%s", drawable)
log.d("MyTargetGif onStop glide_drawable=${drawable}")
drawable.stop()
}
}
override fun onDestroy() {
val drawable = glide_drawable
log.d("MyTargetGif onDestroy glide_drawable=%s", drawable)
log.d("MyTargetGif onDestroy glide_drawable=${drawable}")
super.onDestroy()
}
}
@ -474,7 +474,7 @@ class MyNetworkImageView : AppCompatImageView {
setMeasuredDimension(w_measured, h_measured)
} else {
// 通常のImageViewは内容を見てサイズを決める
// たとえLayputParamがw,hともmatchParentでも内容を見てしまう
// たとえLayoutParamがw,hともmatchParentでも内容を見てしまう
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
}
}

View File

@ -237,7 +237,8 @@ class PinchBitmapView(context : Context, attrs : AttributeSet?, defStyle : Int)
val bitmap = this.bitmap
if (bitmap == null
|| bitmap.isRecycled
|| view_w < 1f)
|| view_w < 1f
)
return false
val action = ev.action
@ -304,7 +305,7 @@ class PinchBitmapView(context : Context, attrs : AttributeSet?, defStyle : Int)
++click_count
log.d("click %d %d", click_count, delta)
log.d("click ${click_count} ${delta}")
if (click_count >= 2) {
// ダブルタップでクリック操作

View File

@ -248,11 +248,7 @@ fun createResizedBitmap(
val paint = Paint()
paint.isFilterBitmap = true
canvas.drawBitmap(sourceBitmap, matrix, paint)
log.d(
"createResizedBitmap: resized to %sx%s",
dstSizeInt.x,
dstSizeInt.y
)
log.d("createResizedBitmap: resized to ${dstSizeInt.x}x${dstSizeInt.y}")
val tmp = dst
dst = null
tmp

View File

@ -195,7 +195,7 @@ fun getMimeType(log : LogCategory?, src : String) : String {
// 戻り値が空文字列の場合とnullの場合があり、空文字列の場合は既知なのでログ出力しない
if (mime_type == null && log != null) {
log.w("getMimeType(): unknown file extension '%s'", ext)
log.w("getMimeType(): unknown file extension '${ext}'")
}
}
return MIME_TYPE_APPLICATION_OCTET_STREAM