diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2017-10-25 19:09:42 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2017-10-25 19:09:42 +0900 |
commit | 40103f06c8e2798aad8f93c4da1d1b9aea0825f7 (patch) | |
tree | 390f8758c5c95ff65f387dd7b5e4db3ec685dbb1 /app/src/main/java/net/lacolaco/smileessence | |
parent | e6247ee11c9a7a593fa9ea0fe2c52f3379f2a675 (diff) | |
download | SmileEssence-40103f06c8e2798aad8f93c4da1d1b9aea0825f7.tar.gz |
poeeeee
Diffstat (limited to 'app/src/main/java/net/lacolaco/smileessence')
-rw-r--r-- | app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt | 2 | ||||
-rw-r--r-- | app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.kt | 101 |
2 files changed, 38 insertions, 65 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 26621ec7..8fcbbcd1 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 @@ -14,9 +14,7 @@ import net.lacolaco.smileessence.util.* 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.confirm -import twitter4j.Twitter class StatusDetailDialogFragment : StackableDialogFragment() { private lateinit var tweet: Tweet 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 78b36674..d53c887f 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 @@ -2,7 +2,6 @@ package net.lacolaco.smileessence.view.dialog import android.os.Bundle import android.text.Html -import android.text.TextUtils import android.text.method.LinkMovementMethod import android.view.LayoutInflater import android.view.View @@ -10,7 +9,6 @@ import android.view.ViewGroup import com.bumptech.glide.Glide import com.omadahealth.github.swipyrefreshlayout.library.SwipyRefreshLayoutDirection import kotlinx.android.synthetic.main.dialog_user_detail.* -import kotlinx.android.synthetic.main.dialog_user_detail.view.* import net.lacolaco.smileessence.R import net.lacolaco.smileessence.activity.MainActivity import net.lacolaco.smileessence.entity.User @@ -25,6 +23,8 @@ import net.lacolaco.smileessence.view.confirm class UserDetailDialogFragment : StackableDialogFragment() { private val adapter by lazy { TimelineAdapter(activity, world) } private lateinit var user: User + private var isFollowedByMe = false + private var isFollowingMe = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -44,9 +44,8 @@ class UserDetailDialogFragment : StackableDialogFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - // Tab 1 imageview_user_detail_menu.setOnClickListener { showPopupMenu() } - textview_user_detail_screenname.setOnClickListener { browse(user.userHomeURL) } + user_detail_screenname.setOnClickListener { browse(user.userHomeURL) } textview_user_detail_description.movementMethod = LinkMovementMethod.getInstance() textview_user_detail_tweet_count.setOnClickListener { browse(user.userHomeURL) } textview_user_detail_friend_count.setOnClickListener { @@ -58,10 +57,10 @@ class UserDetailDialogFragment : StackableDialogFragment() { textview_user_detail_favorite_count.setOnClickListener { browse(String.format("%s/favorites", user.userHomeURL)) } - imageview_user_detail_icon.setOnClickListener { browse(user.profileImageUrl) } + user_detail_icon.setOnClickListener { browse(user.profileImageUrl) } + user_detail_banner.setOnClickListener { user.profileBannerUrl?.let { browse(it) } } toggle_follow.setOnClickListener { toggleFollowing() } - // Tab 2 val refreshLayout = user_detail_refresh_layout refreshLayout.setOnRefreshListener { launchUi { @@ -82,44 +81,32 @@ class UserDetailDialogFragment : StackableDialogFragment() { } } - tabhost.setup() - val tab1 = tabhost.newTabSpec("tab1").setContent(R.id.tab1) - .setIndicator(getString(R.string.user_detail_tab_info)) - tabhost.addTab(tab1) - val tab2 = tabhost.newTabSpec("tab2").setContent(R.id.user_detail_refresh_layout) - .setIndicator(getString(R.string.user_detail_tab_timeline)) - tabhost.addTab(tab2) - tabhost.currentTab = 0 - refresh() + updateRelationship() // FIXME listview_user_detail_timeline.adapter = adapter - executeUserTimelineTask(adapter) + launchUi { + try { + val tweets = world.getUserTimelineAsync(user.id).await() + adapter.addAll(tweets) + adapter.updateForce() + } catch (e: TwitterTaskException) { + world.notifyError(R.string.notice_error_get_user_timeline) + } + } } private fun refresh() { - Glide.with(this).load(user.profileImageUrl).into(imageview_user_detail_icon) - textview_user_detail_name.text = user.name - textview_user_detail_screenname.text = user.screenName - user_protected_indicator.visibility = - if (user.isProtected) - View.VISIBLE - else - View.INVISIBLE + Glide.with(this).load(user.profileImageUrl).into(user_detail_icon) + Glide.with(this).load(user.profileBannerUrl).into(user_detail_banner) + user_detail_name.text = user.name + user_detail_screenname.text = "@${user.screenName}" + user_protected_indicator.visibility = if (user.isProtected) View.VISIBLE else View.INVISIBLE - if (TextUtils.isEmpty(user.location)) { - textview_user_detail_locate.visibility = View.GONE - } else { - textview_user_detail_locate.text = user.location - textview_user_detail_locate.visibility = View.VISIBLE - } - if (TextUtils.isEmpty(user.url)) { - textview_user_detail_url.visibility = View.GONE - } else { - textview_user_detail_url.text = user.url - textview_user_detail_url.visibility = View.VISIBLE - } + + user_detail_location.text = user.location + user_detail_url.text = user.url textview_user_detail_description.text = Html.fromHtml(user.decoratedDescription) textview_user_detail_tweet_count.text = user.statusesCount.toString() @@ -127,9 +114,17 @@ class UserDetailDialogFragment : StackableDialogFragment() { textview_user_detail_follower_count.text = user.followersCount.toString() textview_user_detail_favorite_count.text = user.favoritesCount.toString() - Glide.with(this).load(user.profileBannerUrl).into(imageview_user_detail_header) - - updateRelationship() + if (user === world.user) { + textview_user_detail_followed.setText(R.string.user_detail_followed_is_me) + toggle_follow.visibility = View.GONE + } else { + toggle_follow.isEnabled = true + toggle_follow.isActivated = isFollowedByMe + toggle_follow.text = if (isFollowedByMe) "Unfollow" else "Follow" + textview_user_detail_followed.setText( + if (isFollowingMe) R.string.user_detail_followed + else R.string.user_detail_not_followed) + } } private fun showPopupMenu() { @@ -204,20 +199,6 @@ class UserDetailDialogFragment : StackableDialogFragment() { } } - private fun executeUserTimelineTask(adapter: TimelineAdapter) { - launchUi { - tabhost.tabWidget.getChildTabViewAt(1).visibility = View.GONE - try { - val tweets = world.getUserTimelineAsync(user.id).await() - adapter.addAll(tweets) - adapter.updateForce() - tabhost.tabWidget.getChildTabViewAt(1).visibility = View.VISIBLE - } catch (e: TwitterTaskException) { - world.notifyError(R.string.notice_error_get_user_timeline) - } - } - } - private fun updateListView(addedToTop: Boolean) { val absListView = listview_user_detail_timeline val before = adapter.count @@ -236,25 +217,19 @@ class UserDetailDialogFragment : StackableDialogFragment() { } private fun updateRelationship() { - if (user === world.user) { - textview_user_detail_followed.setText(R.string.user_detail_followed_is_me) - toggle_follow.visibility = View.GONE - } else { + if (user !== world.user) { toggle_follow.isEnabled = false toggle_follow.text = "..." launchUi { textview_user_detail_followed.setText(R.string.user_detail_loading) try { val relationship = world.getRelationshipAsync(user.id).await() - val isFollowing = relationship.isSourceFollowingTarget - val isFollowed = relationship.isSourceFollowedByTarget - toggle_follow.isEnabled = true - toggle_follow.isActivated = isFollowing - toggle_follow.text = if (isFollowing) "Unfollow" else "Follow" - textview_user_detail_followed.setText(if (isFollowed) R.string.user_detail_followed else R.string.user_detail_not_followed) + isFollowedByMe = relationship.isSourceFollowingTarget + isFollowingMe = relationship.isSourceFollowedByTarget } catch (e: TwitterTaskException) { world.notifyError("Failed to fetch relationship") } + refresh() } } } |