diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2017-10-21 23:55:45 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2017-10-21 23:55:45 +0900 |
commit | aaf99ee334632dbc3a953e56425877a2d2c039c9 (patch) | |
tree | 320548bac594e7e5997018ff85bea5a41bf48e04 /app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt | |
parent | 6078bcd7971a95c05855daa858a31b07ddbeda29 (diff) | |
download | SmileEssence-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.kt | 61 |
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 } } |