aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2017-10-21 23:55:45 +0900
committerKazuki Yamaguchi <k@rhe.jp>2017-10-21 23:55:45 +0900
commitaaf99ee334632dbc3a953e56425877a2d2c039c9 (patch)
tree320548bac594e7e5997018ff85bea5a41bf48e04 /app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt
parent6078bcd7971a95c05855daa858a31b07ddbeda29 (diff)
downloadSmileEssence-aaf99ee334632dbc3a953e56425877a2d2c039c9.tar.gz
poepoe
Diffstat (limited to 'app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt')
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt61
1 files changed, 24 insertions, 37 deletions
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 9022096c..3e80b6af 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
@@ -5,13 +5,8 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import kotlinx.android.synthetic.main.dialog_status_detail.view.*
-import kotlinx.android.synthetic.main.menu_item_simple_text.view.*
import net.lacolaco.smileessence.R
import net.lacolaco.smileessence.activity.MainActivity
-import net.lacolaco.smileessence.command.Command
-import net.lacolaco.smileessence.command.CommandAddHashtag
-import net.lacolaco.smileessence.command.CommandOpenURL
-import net.lacolaco.smileessence.command.CommandOpenUserDetail
import net.lacolaco.smileessence.entity.Tweet
import net.lacolaco.smileessence.twitter.TwitterTaskException
import net.lacolaco.smileessence.twitter.task.*
@@ -20,9 +15,7 @@ import net.lacolaco.smileessence.view.DialogHelper
import net.lacolaco.smileessence.view.Partials
import net.lacolaco.smileessence.view.PopupMenu
import net.lacolaco.smileessence.view.adapter.TimelineAdapter
-import net.lacolaco.smileessence.view.adapter.UnorderedCustomListAdapter
import net.lacolaco.smileessence.view.confirm
-import java.util.*
class StatusDetailDialogFragment : StackableDialogFragment() {
private lateinit var tweet: Tweet
@@ -159,9 +152,6 @@ class StatusDetailDialogFragment : StackableDialogFragment() {
(activity as MainActivity).openPostPageAndAppendText(text)
world.notify(R.string.notice_add_to_reply)
}
- popup.add(R.string.command_status_open_talk_view) {
- DialogHelper.showDialog(activity, TalkChainDialogFragment.newInstance(tweet))
- }
popup.add(R.string.command_status_open_in_browser) {
browse(tweet.originalTweet.twitterUrl)
}
@@ -178,37 +168,34 @@ class StatusDetailDialogFragment : StackableDialogFragment() {
}
private fun setupViewMenu(view: View) {
- val activity = activity as MainActivity
- val commands = ArrayList<Command>()
- if (tweet.retweetedTweet != null && tweet.user !== tweet.retweetedTweet!!.user)
- commands.add(CommandOpenUserDetail(activity, tweet.user.screenName))
- for (screenName in ArrayList(LinkedHashSet(tweet.mentions)))
- commands.add(CommandOpenUserDetail(activity, screenName))
- for (hashtag in tweet.hashtags)
- commands.add(CommandAddHashtag(activity, hashtag))
- for (url in tweet.urlsExpanded)
- commands.add(CommandOpenURL(activity, url))
- for (url in tweet.mediaUrls)
- commands.add(CommandOpenURL(activity, url))
-
- if (commands.size > 0) {
- view.detail_dialog_divider_bottom.visibility = View.VISIBLE
- view.listview_status_detail_menu.visibility = View.VISIBLE
- val adapter = object : UnorderedCustomListAdapter<Command>(commands) {
- override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
- val itemView = convertView ?: activity.layoutInflater.inflate(R.layout.menu_item_simple_text, parent, false)
- itemView.list_item_textview.text = getItem(position).text
- return itemView
+ val users = mutableListOf<String>()
+ if (tweet.user !== tweet.originalTweet.user)
+ users += tweet.user.screenName
+ users += tweet.mentions
+ for (screenName in users.distinct())
+ view.embedded_menu_items.add("@$screenName") {
+ val ref = ref(activity as MainActivity)
+ launchUi {
+ try {
+ val user = world.getUserAsync(screenName).await()
+ DialogHelper.showDialog(ref.get(), UserDetailDialogFragment.newInstance(user))
+ } catch (e: TwitterTaskException) {
+ world.notifyError(R.string.notice_error_show_user)
+ }
}
}
- view.listview_status_detail_menu.adapter = adapter
- view.listview_status_detail_menu.setOnItemClickListener { parent, view1, position, id ->
- val command = parent.getItemAtPosition(position) as Command
- command.execute()
+ for (hashtag in tweet.hashtags)
+ view.embedded_menu_items.add("#$hashtag") {
+ // XXX
+ (activity as MainActivity).openPostPageAndAppendText(" #$hashtag")
+ }
+ for (url in tweet.urlsExpanded + tweet.mediaUrls)
+ view.embedded_menu_items.add(url) {
+ activity.browse(url)
}
- } else {
+ if (view.embedded_menu_items.childCount == 0) {
view.detail_dialog_divider_bottom.visibility = View.GONE
- view.listview_status_detail_menu.visibility = View.GONE
+ view.embedded_menu_items.visibility = View.GONE
}
}