diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2017-10-22 23:12:44 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2017-10-22 23:12:44 +0900 |
commit | 0b16b186751aca2a6000e5bc949e8511b91c0dfd (patch) | |
tree | f5d0a56a7292591c173031eda19a61a52ec12533 /app/src | |
parent | 565d3ddf03098be859594f2d6c3ca452c7738d4f (diff) | |
download | SmileEssence-0b16b186751aca2a6000e5bc949e8511b91c0dfd.tar.gz |
data simplification
Diffstat (limited to 'app/src')
14 files changed, 145 insertions, 184 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt b/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt index 92bb9467..5b6b5f84 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt +++ b/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt @@ -246,7 +246,6 @@ class MainActivity : AppCompatActivity() { intent.putExtra(ManagePagesActivity.INTENT_KEY_WORLD_ID, world.id) startActivityForResult(intent, REQUEST_CODE_MANAGE_PAGES) } - R.id.actionbar_aclog -> browse(world.user.aclogTimelineURL) R.id.open_version_dialog -> DialogHelper.showDialog(this, AppInfoDialogFragment.newInstance()) else -> return super.onOptionsItemSelected(item) } diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/DirectMessage.kt b/app/src/main/java/net/lacolaco/smileessence/entity/DirectMessage.kt index 013d5f5a..5e233e64 100644 --- a/app/src/main/java/net/lacolaco/smileessence/entity/DirectMessage.kt +++ b/app/src/main/java/net/lacolaco/smileessence/entity/DirectMessage.kt @@ -2,12 +2,13 @@ package net.lacolaco.smileessence.entity import java.util.* -class DirectMessage private constructor(message: twitter4j.DirectMessage) : EntitySupport(message), IdObject { - override val id: Long = message.id - val sender: User = User.fromTwitter(message.sender) - val recipient: User = User.fromTwitter(message.recipient) - val text: String = extractText(message, false) - val createdAt: Date = message.createdAt +class DirectMessage private constructor(message: twitter4j.DirectMessage) : IdObject { + override val id = message.id + val sender = User.fromTwitter(message.sender) + val recipient = User.fromTwitter(message.recipient) + val entities = Entities.fromTwitter(message) + val text = entities.extractText(message, message.text) + val createdAt = message.createdAt!! companion object { private val storage = HashMap<Long, DirectMessage>() diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/Entities.kt b/app/src/main/java/net/lacolaco/smileessence/entity/Entities.kt new file mode 100644 index 00000000..c5437154 --- /dev/null +++ b/app/src/main/java/net/lacolaco/smileessence/entity/Entities.kt @@ -0,0 +1,55 @@ +package net.lacolaco.smileessence.entity + +import twitter4j.* + +import java.util.* + +class Entities private constructor( + val mentions: List<String>, + val hashtags: List<String>, + val mediaUrls: List<String>, + val urlsExpanded: List<String>, + val symbols: List<String> +) { + fun extractText(status: twitter4j.EntitySupport, text: String): String { + val set = TreeSet<twitter4j.URLEntity> { a, b -> a.start - b.start } + if (status.urlEntities != null) + set += status.urlEntities + if (status.mediaEntities != null) + set += status.mediaEntities + + return set.fold(text) { t, entity -> + t.replaceFirst(entity.text.toRegex(), entity.displayURL) + } + } + + companion object { + fun fromTwitter(es: twitter4j.EntitySupport) = Entities( + mentions = extractMentions(es.userMentionEntities), + hashtags = extractHashtags(es.hashtagEntities), + mediaUrls = extractMediaUrls(es.mediaEntities), + urlsExpanded = extractExpandedUrls(es.urlEntities), + symbols = extractSymbols(es.symbolEntities) + ) + + private fun extractMentions(entities: Array<UserMentionEntity>?) = + entities?.map { it.screenName } ?: listOf() + + private fun extractSymbols(entities: Array<SymbolEntity>?) = + entities?.map { it.text } ?: listOf() + + private fun extractExpandedUrls(entities: Array<URLEntity>?) = + entities?.map { it.expandedURL } ?: listOf() + + private fun extractMediaUrls(entities: Array<MediaEntity>?) = + entities?.map { + when (it.type) { + "photo" -> it.mediaURLHttps + else -> it.expandedURL + } + } ?: listOf() + + private fun extractHashtags(entities: Array<HashtagEntity>?) = + entities?.map { it.text } ?: listOf() + } +} diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/EntitySupport.kt b/app/src/main/java/net/lacolaco/smileessence/entity/EntitySupport.kt deleted file mode 100644 index 121fa17d..00000000 --- a/app/src/main/java/net/lacolaco/smileessence/entity/EntitySupport.kt +++ /dev/null @@ -1,54 +0,0 @@ -package net.lacolaco.smileessence.entity - -import twitter4j.* - -import java.util.* - -abstract class EntitySupport(status: twitter4j.EntitySupport) { - open val mentions: List<String> = extractMentions(status.userMentionEntities) - open val hashtags: List<String> = extractHashtags(status.hashtagEntities) - open val mediaUrls: List<String> = extractMediaUrls(status.mediaEntities) - open val urlsExpanded: List<String> = extractExpandedUrls(status.urlEntities) - open val symbols: List<String> = extractSymbols(status.symbolEntities) - - private fun extractMentions(entities: Array<UserMentionEntity>?) = - entities?.map { it.screenName } ?: listOf() - - private fun extractSymbols(entities: Array<SymbolEntity>?) = - entities?.map { it.text } ?: listOf() - - private fun extractExpandedUrls(entities: Array<URLEntity>?) = - entities?.map { it.expandedURL } ?: listOf() - - private fun extractMediaUrls(entities: Array<MediaEntity>?) = - entities?.map { - when (it.type) { - "photo" -> it.mediaURLHttps - else -> it.expandedURL - } - } ?: listOf() - - private fun extractHashtags(entities: Array<HashtagEntity>?) = - entities?.map { it.text } ?: listOf() - - protected fun extractText(status: twitter4j.Status, expand: Boolean) = - extractText(status, status.text, expand) - - protected fun extractText(status: twitter4j.DirectMessage, expand: Boolean) = - extractText(status, status.text, expand) - - private fun extractText(status: twitter4j.EntitySupport, text: String, expand: Boolean): String { - val set = TreeSet<twitter4j.URLEntity> { a, b -> a.start - b.start } - if (status.urlEntities != null) - set += status.urlEntities - if (status.mediaEntities != null) - set += status.mediaEntities - - var t = text - for (entity in set) { - val newString = if (expand) entity.expandedURL else entity.displayURL - t = t.replaceFirst(entity.text.toRegex(), newString) - } - return t - } -} diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/IdObject.kt b/app/src/main/java/net/lacolaco/smileessence/entity/IdObject.kt index eb08d55f..02d0cc90 100644 --- a/app/src/main/java/net/lacolaco/smileessence/entity/IdObject.kt +++ b/app/src/main/java/net/lacolaco/smileessence/entity/IdObject.kt @@ -1,5 +1,21 @@ package net.lacolaco.smileessence.entity +import java.util.* + interface IdObject { val id: Long +/* + private var onChangeObservers: MutableSet<() -> Unit>? + + @Synchronized + fun onChange(callback: () -> Unit) { + if (onChangeObservers == null) + onChangeObservers = Collections.newSetFromMap(WeakHashMap<() -> Unit, Boolean>()) + onChangeObservers!!.add(callback) + } + + @Synchronized + protected fun notifyChange() { + onChangeObservers?.forEach { it() } + }*/ } 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 dfdc3642..6db5ff36 100644 --- a/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.kt +++ b/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.kt @@ -4,102 +4,42 @@ import android.net.Uri import twitter4j.Status import java.util.* -import java.util.concurrent.ConcurrentHashMap -class Tweet private constructor(st: twitter4j.Status, myUserId: Long) : EntitySupport(st), IdObject { - override val id: Long = st.id - val user: User = User.fromTwitter(st.user) - val createdAt: Date = st.createdAt - val source: String = st.source - val retweetedTweet: Tweet? = - if (st.isRetweet) Tweet.fromTwitter(st.retweetedStatus, myUserId) - else null - val isRetweet = retweetedTweet != null - val originalTweet = retweetedTweet ?: this - val text: String = retweetedTweet?.text ?: extractText(st, false) - val inReplyToStatusId: Long? = when { - isRetweet -> retweetedTweet!!.inReplyToStatusId - st.inReplyToStatusId != -1L -> st.inReplyToStatusId - else -> null - } - var favoriteCount: Int = st.favoriteCount +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) + var favoriteCount: Int = -1 get() = retweetedTweet?.favoriteCount ?: field private set - var retweetCount: Int = st.retweetCount + var retweetCount: Int = -1 get() = retweetedTweet?.retweetCount ?: field private set - private val favoriters: MutableSet<Long> = Collections.newSetFromMap(ConcurrentHashMap()) - private val retweets: MutableMap<Long, Long> = ConcurrentHashMap() - - // Override EntitySupport - override val mentions: List<String> = retweetedTweet?.mentions ?: super.mentions - override val hashtags: List<String> = retweetedTweet?.hashtags ?: super.hashtags - override val mediaUrls: List<String> = retweetedTweet?.mediaUrls ?: super.mediaUrls - override val urlsExpanded: List<String> = retweetedTweet?.urlsExpanded ?: super.urlsExpanded - override val symbols: List<String> = retweetedTweet?.symbols ?: super.symbols - - init { - update(st, myUserId) - } - - private fun update(status: twitter4j.Status, myUserId: Long) { - User.fromTwitter(status.user) - if (retweetedTweet != null) { - retweetedTweet.update(status.retweetedStatus, myUserId) - if (status.isFavorited) - retweetedTweet.favoriters.add(myUserId) - if (status.user.id == myUserId) - retweetedTweet.retweets.put(myUserId, status.id) - } else { - favoriteCount = status.favoriteCount - retweetCount = status.retweetCount - if (status.isFavorited) - favoriters.add(myUserId) - else - favoriters.remove(myUserId) - if (status.currentUserRetweetId > 0) - retweets.put(myUserId, status.currentUserRetweetId) - } - } - - val twitterUrl: String - get() = String.format("https://twitter.com/%s/status/%s", user.screenName, id) - - fun isFavoritedBy(id: Long): Boolean { - return originalTweet.favoriters.contains(id) - } - - fun addFavoriter(id: Long): Boolean { - return originalTweet.favoriters.add(id) - } + val favoriters: MutableSet<Long> = retweetedTweet?.favoriters ?: HashSet() + val retweets: MutableMap<Long, Long> = retweetedTweet?.retweets ?: HashMap() - fun removeFavoriter(id: Long): Boolean { - return originalTweet.favoriters.remove(id) - } - - fun isRetweetedBy(id: Long): Boolean { - return originalTweet.retweets.containsKey(id) - } - - fun getRetweetIdBy(id: Long): Long { - return originalTweet.retweets[id]!! - } + // Utility functions + val isRetweet = retweetedTweet != null + val originalTweet = retweetedTweet ?: this - // helper methods:: + // XXX val embeddedStatusIDs: List<Long> by lazy { - val list = ArrayList<Long>() - for (url in urlsExpanded) { - val uri = Uri.parse(url) + entities.urlsExpanded.mapNotNull { + val uri = Uri.parse(it) if ("twitter.com" == uri.host) { val segments = uri.pathSegments if (segments.size >= 3 && segments[1] == "status") { - val idish = segments[2].toLongOrNull() - if (idish != null) - list.add(idish) + return@mapNotNull segments[2].toLongOrNull() } } + null } - list } companion object { @@ -114,10 +54,26 @@ class Tweet private constructor(st: twitter4j.Status, myUserId: Long) : EntitySu fun fromTwitter(st: twitter4j.Status, myUserId: Long): Tweet { var t = fetch(st.id) if (t == null) { - t = Tweet(st, myUserId) + t = Tweet(st, myUserId).apply { + if (st.isFavorited) + favoriters += myUserId + if (st.currentUserRetweetId != -1L) + retweets[myUserId] = st.currentUserRetweetId + favoriteCount = st.favoriteCount + retweetCount = st.retweetCount + } storage.put(st.id, t) } else { - t.update(st, myUserId) + User.fromTwitter(st.user) + st.retweetedStatus?.let { Tweet.fromTwitter(it, myUserId) } + if (st.isFavorited) + t.favoriters += myUserId + else + t.favoriters -= myUserId + if (st.currentUserRetweetId != -1L) + t.retweets[myUserId] = st.currentUserRetweetId + t.favoriteCount = st.favoriteCount + t.retweetCount = st.retweetCount } return t } 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 4b8e6f62..7b6f9f5d 100644 --- a/app/src/main/java/net/lacolaco/smileessence/entity/User.kt +++ b/app/src/main/java/net/lacolaco/smileessence/entity/User.kt @@ -70,9 +70,6 @@ class User private constructor(override val id: Long, screenName: String, rawPro val userHomeURL: String get() = String.format("https://twitter.com/%s", screenName) - val aclogTimelineURL: String - get() = String.format("https://aclog.rhe.jp/%s/timeline", screenName) - // XXX val decoratedDescription: String get() { @@ -93,7 +90,7 @@ class User private constructor(override val id: Long, screenName: String, rawPro @Synchronized fun fromTwitter(st: twitter4j.User): User { - var u: User? = fetch(st.id) + var u = fetch(st.id) if (u == null) { u = User(st.id, st.screenName, "<not set>") storage.put(st.id, u) diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/UserStreamListener.kt b/app/src/main/java/net/lacolaco/smileessence/twitter/UserStreamListener.kt index e72aaff4..f40c1ebf 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/UserStreamListener.kt +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/UserStreamListener.kt @@ -30,17 +30,15 @@ class UserStreamListener(private val world: World) : twitter4j.UserStreamListene // --------------------- Interface StatusListener --------------------- override fun onStatus(status: Status) { - val user = world.user - val tweet = Tweet.fromTwitter(status, user.id) + val tweet = Tweet.fromTwitter(status, world.user.id) world.addTweet(tweet) - if (tweet.isRetweet) { - if (tweet.originalTweet.user == user) { + if (tweet.user !== world.user) + if (tweet.originalTweet.user === world.user) addToHistory(Event(Event.EnumEvent.RETWEETED, tweet.user, tweet)) + else if (tweet.entities.mentions.contains(world.user.screenName)) { + val mentioned = Event(Event.EnumEvent.MENTIONED, tweet.user, tweet) + world.notify(mentioned.formattedString) } - } else if (tweet.mentions.contains(user.screenName)) { - val mentioned = Event(Event.EnumEvent.MENTIONED, tweet.user, tweet) - world.notify(mentioned.formattedString) - } } override fun onDeletionNotice(statusDeletionNotice: StatusDeletionNotice) { @@ -73,7 +71,7 @@ class UserStreamListener(private val world: World) : twitter4j.UserStreamListene override fun onFavorite(source: twitter4j.User, target: twitter4j.User, favoritedStatus: Status) { val tweet = Tweet.fromTwitter(favoritedStatus, world.id) - tweet.addFavoriter(source.id) + tweet.favoriters += source.id if (User.fromTwitter(target) === world.user) { addToHistory(Event(Event.EnumEvent.FAVORITED, User.fromTwitter(source), tweet)) } @@ -81,7 +79,7 @@ class UserStreamListener(private val world: World) : twitter4j.UserStreamListene override fun onUnfavorite(source: twitter4j.User, target: twitter4j.User, unfavoritedStatus: twitter4j.Status) { val tweet = Tweet.fromTwitter(unfavoritedStatus, world.id) - tweet.removeFavoriter(source.id) + tweet.favoriters -= source.id if (User.fromTwitter(target) === world.user) { addToHistory(Event(Event.EnumEvent.UNFAVORITED, User.fromTwitter(source), tweet)) } diff --git a/app/src/main/java/net/lacolaco/smileessence/view/Partials.kt b/app/src/main/java/net/lacolaco/smileessence/view/Partials.kt index cd41e980..c24eb5cd 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/Partials.kt +++ b/app/src/main/java/net/lacolaco/smileessence/view/Partials.kt @@ -84,7 +84,7 @@ object Partials { footerText += " (RT by ${tweet.user.screenName})" view.textview_status_footer.text = footerText - (view as TweetStateFrameLayout).isMention = tweet.mentions.contains(world.user.screenName) + (view as TweetStateFrameLayout).isMention = tweet.entities.mentions.contains(world.user.screenName) view.isRetweet = tweet.isRetweet view.isDirectMessage = false view.isMine = tweet.originalTweet.user == world.user @@ -95,7 +95,7 @@ object Partials { view.tweet_retweet_count.visibility = View.VISIBLE view.tweet_retweet_count.text = tweet.retweetCount.toString() view.imageview_status_retweeted.visibility = View.VISIBLE - view.imageview_status_retweeted.isActivated = tweet.isRetweetedBy(world.id) + view.imageview_status_retweeted.isActivated = world.id in tweet.retweets } else { view.tweet_retweet_count.visibility = View.INVISIBLE view.imageview_status_retweeted.visibility = View.INVISIBLE @@ -104,7 +104,7 @@ object Partials { view.tweet_favorite_count.visibility = View.VISIBLE view.tweet_favorite_count.text = tweet.favoriteCount.toString() view.imageview_status_favorited.visibility = View.VISIBLE - view.imageview_status_favorited.isActivated = tweet.isFavoritedBy(world.id) + view.imageview_status_favorited.isActivated = world.id in tweet.favoriters } else { view.tweet_favorite_count.visibility = View.INVISIBLE view.imageview_status_favorited.visibility = View.INVISIBLE diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.kt b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.kt index ef1d3482..233b0850 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.kt +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.kt @@ -69,7 +69,7 @@ class MessageDetailDialogFragment : StackableDialogFragment() { val users = mutableListOf<String>() if (message.sender !== message.recipient) users += message.recipient.screenName - users += message.mentions + users += message.entities.mentions for (screenName in users.distinct()) view.embedded_menu_items.add("@$screenName") { val ref = ref(activity as MainActivity) @@ -82,12 +82,12 @@ class MessageDetailDialogFragment : StackableDialogFragment() { } } } - for (hashtag in message.hashtags) + for (hashtag in message.entities.hashtags) view.embedded_menu_items.add("#$hashtag") { // XXX (activity as MainActivity).openPostPageAndAppendText(" #$hashtag") } - for (url in message.urlsExpanded + message.mediaUrls) + for (url in message.entities.urlsExpanded + message.entities.mediaUrls) view.embedded_menu_items.add(url) { activity.browse(url) } diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt index 5fb37ced..9e589176 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt @@ -39,8 +39,8 @@ class StatusDetailDialogFragment : StackableDialogFragment() { statusHeader.isClickable = false // XXX - view.button_status_detail_favorite.isActivated = tweet.isFavoritedBy(world.id) - view.button_status_detail_retweet.isActivated = tweet.isRetweetedBy(world.id) + view.button_status_detail_favorite.isActivated = world.id in tweet.favoriters + view.button_status_detail_retweet.isActivated = world.id in tweet.retweets updateViewButtons(view) setupViewMenu(view) @@ -74,7 +74,7 @@ class StatusDetailDialogFragment : StackableDialogFragment() { val builder = StringBuilder() builder.append("@${originalTweet.user.screenName} ") - for (screenName in originalTweet.mentions) { + for (screenName in originalTweet.entities.mentions) { if (screenName != world.user.screenName) builder.append("@$screenName ") } @@ -85,10 +85,10 @@ class StatusDetailDialogFragment : StackableDialogFragment() { } view.button_status_detail_retweet.setOnClickListener { confirm(R.string.dialog_confirm_commands) { - if (tweet.isRetweetedBy(world.id)) { + if (world.id in tweet.retweets) { launchUi { try { - world.deleteTweetAsync(tweet.getRetweetIdBy(world.id)).await() + world.deleteTweetAsync(tweet.retweets[world.id]!!).await() world.notify(R.string.notice_status_delete_succeeded) updateViewButtons(view) } catch (e: TwitterTaskException) { @@ -109,7 +109,7 @@ class StatusDetailDialogFragment : StackableDialogFragment() { } } view.button_status_detail_favorite.setOnClickListener { - val favoriting = !tweet.isFavoritedBy(world.id) + val favoriting = world.id !in tweet.favoriters launchUi { try { @@ -153,14 +153,14 @@ class StatusDetailDialogFragment : StackableDialogFragment() { world.notify(R.string.notice_add_to_reply) } popup.add(R.string.command_status_open_in_browser) { - browse(tweet.originalTweet.twitterUrl) + browse("https://twitter.com/${tweet.originalTweet.user.screenName}/status/${tweet.originalTweet.id}") } popup.add(R.string.command_status_copy_text_to_clipboard) { SystemServiceHelper.copyToClipboard(activity, "tweet text", tweet.originalTweet.text) world.notify(R.string.notice_copy_clipboard) } popup.add(R.string.command_status_copy_url_to_clipboard) { - SystemServiceHelper.copyToClipboard(activity, "tweet url", tweet.originalTweet.twitterUrl) + SystemServiceHelper.copyToClipboard(activity, "tweet url", "https://twitter.com/${tweet.originalTweet.user.screenName}/status/${tweet.originalTweet.id}") world.notify(R.string.notice_copy_clipboard) } popup.show() @@ -171,7 +171,7 @@ class StatusDetailDialogFragment : StackableDialogFragment() { val users = mutableListOf<String>() if (tweet.user !== tweet.originalTweet.user) users += tweet.user.screenName - users += tweet.mentions + users += tweet.entities.mentions for (screenName in users.distinct()) view.embedded_menu_items.add("@$screenName") { val ref = ref(activity as MainActivity) @@ -184,12 +184,12 @@ class StatusDetailDialogFragment : StackableDialogFragment() { } } } - for (hashtag in tweet.hashtags) + for (hashtag in tweet.entities.hashtags) view.embedded_menu_items.add("#$hashtag") { // XXX (activity as MainActivity).openPostPageAndAppendText(" #$hashtag") } - for (url in tweet.urlsExpanded + tweet.mediaUrls) + for (url in tweet.entities.urlsExpanded + tweet.entities.mediaUrls) view.embedded_menu_items.add(url) { activity.browse(url) } diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.kt b/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.kt index 52dc30d6..275f4a9c 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.kt +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.kt @@ -73,9 +73,6 @@ class UserDetailDialogFragment : StackableDialogFragment() { } } } - popup.add(R.string.command_user_open_aclog) { - browse(user.aclogTimelineURL) - } popup.show() } diff --git a/app/src/main/java/net/lacolaco/smileessence/view/page/SearchPageFragment.kt b/app/src/main/java/net/lacolaco/smileessence/view/page/SearchPageFragment.kt index 51102a54..74c70c35 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/page/SearchPageFragment.kt +++ b/app/src/main/java/net/lacolaco/smileessence/view/page/SearchPageFragment.kt @@ -170,7 +170,7 @@ class SearchPageFragment : RefreshableTimelinePageFragment<Tweet, PageInfo.Searc private fun runRefreshTask(query: Query, onFinish: () -> Unit) = launchUi { try { val tweets = world.doSearch(query).await() - adapter.sortedList.addAll(tweets.filter { !it.isRetweet }) + adapter.sortedList.addAll(tweets) onFinish() } catch (e: TwitterTaskException) { world.notifyError(R.string.notice_error_search) diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml index 94cdcd05..0d5dd789 100644 --- a/app/src/main/res/menu/main.xml +++ b/app/src/main/res/menu/main.xml @@ -4,10 +4,6 @@ android:id="@+id/actionbar_manage_pages" android:title="Manage pages" app:showAsAction="never" /> - <item - android:id="@+id/actionbar_aclog" - android:title="@string/actionbar_aclog" - app:showAsAction="never" /> <group> <item android:id="@+id/open_version_dialog" |