aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2017-10-25 00:30:08 +0900
committerKazuki Yamaguchi <k@rhe.jp>2017-10-25 00:30:08 +0900
commitf294462478a82c9c0d18ccea28dda4f4b593f31d (patch)
treecc1148d8a365902df70c5094f866f880df2379a7 /app/src/main/java/net/lacolaco
parent0b16b186751aca2a6000e5bc949e8511b91c0dfd (diff)
downloadSmileEssence-f294462478a82c9c0d18ccea28dda4f4b593f31d.tar.gz
mpue
Diffstat (limited to 'app/src/main/java/net/lacolaco')
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/entity/Entities.kt2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/entity/Tweet.kt46
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/entity/User.kt3
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/Confirmation.kt6
4 files changed, 42 insertions, 15 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/Entities.kt b/app/src/main/java/net/lacolaco/smileessence/entity/Entities.kt
index c5437154..0a3579b3 100644
--- a/app/src/main/java/net/lacolaco/smileessence/entity/Entities.kt
+++ b/app/src/main/java/net/lacolaco/smileessence/entity/Entities.kt
@@ -51,5 +51,7 @@ class Entities private constructor(
private fun extractHashtags(entities: Array<HashtagEntity>?) =
entities?.map { it.text } ?: listOf()
+
+ val placeHolder = Entities(listOf(), listOf(), listOf(), listOf(), listOf())
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.kt b/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.kt
index 6db5ff36..eddaeb7c 100644
--- a/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.kt
+++ b/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.kt
@@ -1,20 +1,20 @@
package net.lacolaco.smileessence.entity
import android.net.Uri
-import twitter4j.Status
+import twitter4j.*
import java.util.*
-class Tweet private constructor(st: twitter4j.Status, myUserId: Long) : IdObject {
- override val id = st.id
- val user = User.fromTwitter(st.user)
- val createdAt = st.createdAt!!
- val source = st.source!!
- val inReplyToStatusId = st.inReplyToStatusId.takeIf { it != -1L }
-
- private val retweetedTweet = st.retweetedStatus?.let { Tweet.fromTwitter(it, myUserId) }
- val entities: Entities = retweetedTweet?.entities ?: Entities.fromTwitter(st)
- val text: String = retweetedTweet?.text ?: entities.extractText(st, st.text)
+class Tweet private constructor(
+ override val id: Long,
+ val user: User,
+ val createdAt: Date,
+ val source: String,
+ val inReplyToStatusId: Long?,
+ private val retweetedTweet: Tweet?,
+ val entities: Entities,
+ val text: String
+) : IdObject {
var favoriteCount: Int = -1
get() = retweetedTweet?.favoriteCount ?: field
private set
@@ -54,7 +54,18 @@ class Tweet private constructor(st: twitter4j.Status, myUserId: Long) : IdObject
fun fromTwitter(st: twitter4j.Status, myUserId: Long): Tweet {
var t = fetch(st.id)
if (t == null) {
- t = Tweet(st, myUserId).apply {
+ val retweetedTweet = st.retweetedStatus?.let { Tweet.fromTwitter(it, myUserId) }
+ val entities = retweetedTweet?.entities ?: Entities.fromTwitter(st)
+ t = Tweet(
+ st.id,
+ User.fromTwitter(st.user),
+ st.createdAt,
+ st.source,
+ st.inReplyToStatusId.takeIf { it != -1L },
+ retweetedTweet,
+ entities,
+ retweetedTweet?.text ?: entities.extractText(st, st.text)
+ ).apply {
if (st.isFavorited)
favoriters += myUserId
if (st.currentUserRetweetId != -1L)
@@ -82,5 +93,16 @@ class Tweet private constructor(st: twitter4j.Status, myUserId: Long) : IdObject
fun fromTwitter(sts: List<Status>, myUserId: Long): List<Tweet> {
return sts.map { st -> fromTwitter(st, myUserId) }
}
+
+ val placeHolder = Tweet(
+ -1,
+ User.placeHolder,
+ Date(),
+ "System",
+ null,
+ null,
+ Entities.placeHolder,
+ "Place holder"
+ )
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/User.kt b/app/src/main/java/net/lacolaco/smileessence/entity/User.kt
index 7b6f9f5d..b811916c 100644
--- a/app/src/main/java/net/lacolaco/smileessence/entity/User.kt
+++ b/app/src/main/java/net/lacolaco/smileessence/entity/User.kt
@@ -103,5 +103,8 @@ class User private constructor(override val id: Long, screenName: String, rawPro
@Synchronized
fun makeSkeletonForInternalUseOnly(id: Long, screenName: String, profileImageUrl: String) =
fetch(id) ?: User(id, screenName, profileImageUrl).apply { storage.put(id, this) }
+
+ val placeHolder = makeSkeletonForInternalUseOnly(-1, "<place holder>",
+ "https://abs.twimg.com/sticky/default_profile_images/default_profile.png")
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/Confirmation.kt b/app/src/main/java/net/lacolaco/smileessence/view/Confirmation.kt
index 40e0e3fa..bbc4e460 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/Confirmation.kt
+++ b/app/src/main/java/net/lacolaco/smileessence/view/Confirmation.kt
@@ -1,11 +1,11 @@
package net.lacolaco.smileessence.view
import android.app.Fragment
+import android.content.Context
import android.support.v7.app.AlertDialog
-import android.support.v7.app.AppCompatActivity
import net.lacolaco.smileessence.R
-fun AppCompatActivity.confirm(resId: Int, vararg rest: Any, onOk: () -> Unit) {
+fun Context.confirm(resId: Int, vararg rest: Any, onOk: () -> Unit) {
val dialog = AlertDialog.Builder(this)
.setTitle(getString(resId, *rest))
.setPositiveButton(R.string.alert_dialog_ok) { _, _ -> onOk() }
@@ -15,4 +15,4 @@ fun AppCompatActivity.confirm(resId: Int, vararg rest: Any, onOk: () -> Unit) {
}
fun Fragment.confirm(resId: Int, vararg rest: Any, onOk: () -> Unit) =
- (activity as AppCompatActivity).confirm(resId, rest = *rest, onOk = onOk)
+ activity.confirm(resId, rest = *rest, onOk = onOk)