From 5ff7561dd59fb4868b4a740847c787ed8f06f36a Mon Sep 17 00:00:00 2001 From: tateisu Date: Sat, 1 Dec 2018 05:58:13 +0900 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E4=BB=98=E3=83=A1=E3=83=87=E3=82=A3?= =?UTF-8?q?=E3=82=A2=E3=82=A2=E3=83=83=E3=83=97=E3=83=AD=E3=83=BC=E3=83=89?= =?UTF-8?q?=E7=94=A8=E3=82=B9=E3=83=AC=E3=83=83=E3=83=89=E3=81=AE=E5=BE=85?= =?UTF-8?q?=E6=A9=9F=E6=99=82=E9=96=93=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/jp/juggler/subwaytooter/ActPost.kt | 11 +++++++--- .../subwaytooter/util/CharacterGroup.kt | 20 +++++++++---------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActPost.kt b/app/src/main/java/jp/juggler/subwaytooter/ActPost.kt index b9193988..1bd68fd7 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/ActPost.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/ActPost.kt @@ -1658,7 +1658,11 @@ class ActPost : AppCompatActivity(), View.OnClickListener, PostAttachment.Callba // 投稿画面ごとに1スレッドだけ作成してバックグラウンド処理を行う attachment_queue.add(AttachmentRequest(account, pa, uri, mime_type, onUploadEnd)) val oldWorker = attachment_worker - if(oldWorker == null || ! oldWorker.isAlive || oldWorker.isInterrupted) { + if(oldWorker == null + || ! oldWorker.isAlive + || oldWorker.isInterrupted + || oldWorker.isCancelled.get() + ) { oldWorker?.cancel() attachment_worker = AttachmentWorker().apply { start() } } else { @@ -1668,7 +1672,8 @@ class ActPost : AppCompatActivity(), View.OnClickListener, PostAttachment.Callba inner class AttachmentWorker : WorkerBase() { - private val isCancelled = AtomicBoolean(false) + internal val isCancelled = AtomicBoolean(false) + override fun cancel() { isCancelled.set(true) notifyEx() @@ -1679,7 +1684,7 @@ class ActPost : AppCompatActivity(), View.OnClickListener, PostAttachment.Callba while(! isCancelled.get()) { val item = attachment_queue.poll() if(item == null) { - waitEx(86400) + waitEx(86400000L) continue } val result = item.upload() diff --git a/app/src/main/java/jp/juggler/subwaytooter/util/CharacterGroup.kt b/app/src/main/java/jp/juggler/subwaytooter/util/CharacterGroup.kt index 65486e6f..167ef015 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/util/CharacterGroup.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/util/CharacterGroup.kt @@ -48,16 +48,16 @@ class CharacterGroup { // 空白とみなす文字なら真 fun isWhitespace(cp : Int) : Boolean = mapWhitespace.get(cp,false) - internal val reWhitespace :Pattern by lazy { - val sb = StringBuilder() - sb.append("[\\s\\t\\x0d\\x0a") - for(i in 0 until mapWhitespace.size()){ - val k = mapWhitespace.keyAt(i) - if( k > 0x20 ) sb.append(k.toChar()) - } - sb.append("]+") - Pattern.compile(sb.toString()) - } + internal val reWhitespace =Pattern.compile( + StringBuilder().apply{ + append("[\\s\\t\\x0d\\x0a") + for(i in 0 until mapWhitespace.size()){ + val k = mapWhitespace.keyAt(i) + if( k > 0x20 ) append(k.toChar()) + } + append("]+") + }.toString() + ) // 文字列のリストからグループIDを決定する