aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2018-08-20 20:26:28 +0900
committerKazuki Yamaguchi <k@rhe.jp>2018-08-20 20:26:28 +0900
commit723c92644d85ad8a7f1e468a29d9baf40ebd239b (patch)
treeb57b69adec6d0609ec03d5e226c31f8877dd4ca8 /app
parentc30068884257c1b17fd263771c06fe70f7a933f5 (diff)
downloadSmileEssence-723c92644d85ad8a7f1e468a29d9baf40ebd239b.tar.gz
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/World.kt43
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/twitter/PoePoeStreaming.kt6
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/util/EventStreamReader.kt4
3 files changed, 49 insertions, 4 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/World.kt b/app/src/main/java/net/lacolaco/smileessence/World.kt
index 58f994cd..6bedd325 100644
--- a/app/src/main/java/net/lacolaco/smileessence/World.kt
+++ b/app/src/main/java/net/lacolaco/smileessence/World.kt
@@ -12,8 +12,12 @@ import com.beust.klaxon.JsonObject
import com.beust.klaxon.Parser
import com.beust.klaxon.json
import com.bumptech.glide.Glide
+import com.bumptech.glide.request.Request
import com.bumptech.glide.request.RequestOptions
import com.bumptech.glide.request.target.SimpleTarget
+import com.bumptech.glide.request.target.SizeReadyCallback
+import com.bumptech.glide.request.target.Target
+import com.bumptech.glide.request.target.Target.SIZE_ORIGINAL
import com.bumptech.glide.request.transition.Transition
import net.lacolaco.smileessence.activity.MainActivity
import net.lacolaco.smileessence.data.PageInfo
@@ -138,13 +142,46 @@ class World private constructor(private val persistentData: PersistentData) {
.asBitmap()
.load(user.profileImageUrl)
.apply(RequestOptions().fitCenter().override(size, size))
- .into(object : SimpleTarget<Bitmap>() {
- override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
+ .into(object : Target<Bitmap> {
+ private var req: Request? = null
+
+ override fun onLoadStarted(placeholder: Drawable?) {
+ }
+
+ override fun getSize(cb: SizeReadyCallback) {
+ }
+
+ override fun getRequest(): Request? {
+ return req
+ }
+
+ override fun onStop() {
+ }
+
+ override fun setRequest(request: Request?) {
+ req = request
+ }
+
+ override fun removeCallback(cb: SizeReadyCallback) {
+ cb.onSizeReady(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
+ }
+
+ override fun onLoadCleared(placeholder: Drawable?) {
+ }
+
+ override fun onStart() {
+ }
+
+ override fun onDestroy() {
+ }
+
+ override fun onResourceReady(resource: Bitmap, tran: Transition<in Bitmap>?) {
cont.resume(resource)
}
override fun onLoadFailed(errorDrawable: Drawable?) {
- cont.resumeWithException(RuntimeException("Profile image could not be loaded"))
+ cont.resumeWithException(
+ RuntimeException("Profile image could not be loaded"))
}
})
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/PoePoeStreaming.kt b/app/src/main/java/net/lacolaco/smileessence/twitter/PoePoeStreaming.kt
index 88cd08c7..928036cd 100644
--- a/app/src/main/java/net/lacolaco/smileessence/twitter/PoePoeStreaming.kt
+++ b/app/src/main/java/net/lacolaco/smileessence/twitter/PoePoeStreaming.kt
@@ -11,6 +11,8 @@ import twitter4j.*
import twitter4j.auth.OAuthAuthorization
import twitter4j.conf.Configuration
import twitter4j.conf.ConfigurationContext
+import java.io.BufferedReader
+import java.io.InputStream
import kotlin.concurrent.thread
class PoePoeStreaming(private val world: World) {
@@ -41,6 +43,7 @@ class PoePoeStreaming(private val world: World) {
http.addDefaultRequestHeader("x-auth-service-provider", asp)
http.addDefaultRequestHeader("x-verify-credentials-authorization", vca)
+ var esr: EventStreamReader? = null
try {
response = try {
// Don't use http.get(string) as it won't send HTTP headers for some reason
@@ -60,7 +63,7 @@ class PoePoeStreaming(private val world: World) {
connected = true
world.notify(R.string.notice_stream_connect)
- val esr = EventStreamReader(response!!.asStream())
+ esr = EventStreamReader(response!!.asStream())
esr.subscribe { event, data ->
when (event) {
"tweet_create_events" -> onTweets(JSONArray(data))
@@ -116,6 +119,7 @@ class PoePoeStreaming(private val world: World) {
} catch (e: InterruptedException) {
}
} finally {
+ esr?.close()
response?.disconnect()
response = null
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/util/EventStreamReader.kt b/app/src/main/java/net/lacolaco/smileessence/util/EventStreamReader.kt
index 1fa40286..29ad3753 100644
--- a/app/src/main/java/net/lacolaco/smileessence/util/EventStreamReader.kt
+++ b/app/src/main/java/net/lacolaco/smileessence/util/EventStreamReader.kt
@@ -41,4 +41,8 @@ class EventStreamReader(s: InputStream) {
}
}
}
+
+ fun close() {
+ br.close()
+ }
}