diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2018-08-20 20:26:28 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2018-08-20 20:26:28 +0900 |
commit | 723c92644d85ad8a7f1e468a29d9baf40ebd239b (patch) | |
tree | b57b69adec6d0609ec03d5e226c31f8877dd4ca8 /app | |
parent | c30068884257c1b17fd263771c06fe70f7a933f5 (diff) | |
download | SmileEssence-723c92644d85ad8a7f1e468a29d9baf40ebd239b.tar.gz |
upup2018-08-20
Diffstat (limited to 'app')
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() + } } |