aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco/smileessence
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2017-10-25 19:09:42 +0900
committerKazuki Yamaguchi <k@rhe.jp>2017-10-25 19:09:42 +0900
commit40103f06c8e2798aad8f93c4da1d1b9aea0825f7 (patch)
tree390f8758c5c95ff65f387dd7b5e4db3ec685dbb1 /app/src/main/java/net/lacolaco/smileessence
parente6247ee11c9a7a593fa9ea0fe2c52f3379f2a675 (diff)
downloadSmileEssence-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.kt2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.kt101
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()
}
}
}