diff --git a/app/src/main/java/com/gh/common/databind/BindingAdapters.java b/app/src/main/java/com/gh/common/databind/BindingAdapters.java index 54b36c6536..732cf21e32 100644 --- a/app/src/main/java/com/gh/common/databind/BindingAdapters.java +++ b/app/src/main/java/com/gh/common/databind/BindingAdapters.java @@ -46,6 +46,7 @@ import com.lightgame.utils.Utils; import org.greenrobot.eventbus.EventBus; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.List; import java.util.Locale; @@ -96,6 +97,19 @@ public class BindingAdapters { } } + // 如果超过10000,则转换为1.0W + @BindingAdapter("transSimpleCount") + public static void transSimpleCount(TextView view, int count) { + String s; + if (count > 10000) { + DecimalFormat df = new DecimalFormat("#.0W"); + s = df.format(count / 10000f); + } else { + s = String.valueOf(count); + } + view.setText(s); + } + @BindingAdapter({"addKaiFuView", "clickListener"}) public static void addKaiFuView(LinearLayout view, List list, OnViewClickListener listener) { if (list == null) return; diff --git a/app/src/main/java/com/gh/gamecenter/PersonalHomeActivity.kt b/app/src/main/java/com/gh/gamecenter/PersonalHomeActivity.kt index 9a5c647b15..b0e8a3d8ab 100644 --- a/app/src/main/java/com/gh/gamecenter/PersonalHomeActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/PersonalHomeActivity.kt @@ -24,9 +24,7 @@ class PersonalHomeActivity : ListActivity { if (messageUnread != null && messageUnread.getTotal() > 0) { mFansHint.setVisibility(messageUnread.getFans() > 0 ? View.VISIBLE : View.GONE); + mFansHint.setText(("新增了" + messageUnread.getFans() + "个粉丝")); mLoginMessageHint.setVisibility(messageUnread.getTotal() - messageUnread.getFans() > 0 ? View.VISIBLE : View.GONE); EventBus.getDefault().post(new EBReuse(MESSAGE_UNREAD_TAG)); diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansAdapter.kt index b8890ed251..967718aba1 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansAdapter.kt @@ -13,6 +13,7 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.databinding.FollowersOrFansItemBinding import com.gh.gamecenter.entity.FollowersOrFansEntity +import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.personalhome.FollowersOrFansViewHolder import com.gh.gamecenter.personalhome.FollowersOrFansViewModel @@ -46,7 +47,11 @@ class FollowersOrFansAdapter(context: Context, val mViewModel: FollowersOrFansVi val entity = mEntityList[position] holder.binding.entity = entity holder.binding.followerBtn.run { - if (entity?.me?.isFollower!!) { + if (entity.id == UserManager.getInstance().userId) { + setText(R.string.myself) + setTextColor(ContextCompat.getColor(mContext, R.color.button_gray)) + setBackgroundResource(R.drawable.button_border_gray) + } else if (entity?.me?.isFollower!!) { setText(R.string.cancel_concern) setTextColor(ContextCompat.getColor(mContext, R.color.theme)) setBackgroundResource(R.drawable.button_normal_border) @@ -57,19 +62,21 @@ class FollowersOrFansAdapter(context: Context, val mViewModel: FollowersOrFansVi } } holder.binding.followerBtn.setOnClickListener { - mViewModel.followingCommand(true, callback = { - holder.binding.followerBtn.run { - if (it) { // 关注成功 - setText(R.string.cancel_concern) - setBackgroundResource(R.drawable.button_normal_border) - setTextColor(ContextCompat.getColor(mContext, R.color.theme)) - } else { // 取消关注成功 - setText(R.string.concern) - setBackgroundResource(R.drawable.button_normal_style) - setTextColor(Color.WHITE) + if (entity.id != UserManager.getInstance().userId) { + mViewModel.followingCommand(!entity?.me?.isFollower!!, entity.id, callback = { + holder.binding.followerBtn.run { + if (it) { // 关注成功 + setText(R.string.cancel_concern) + setBackgroundResource(R.drawable.button_normal_border) + setTextColor(ContextCompat.getColor(mContext, R.color.theme)) + } else { // 取消关注成功 + setText(R.string.concern) + setBackgroundResource(R.drawable.button_normal_style) + setTextColor(Color.WHITE) + } } - } - }) + }) + } } holder.itemView.setOnClickListener { PersonalHomeActivity.startTargetActivity(mContext, entity.id) diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansFragment.kt index fa57224c8e..7b5d9067f7 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansFragment.kt @@ -6,6 +6,7 @@ import com.gh.common.util.EntranceUtils import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.entity.FollowersOrFansEntity import com.gh.gamecenter.manager.UserManager +import com.gh.gamecenter.message.MessageUnreadViewModel import com.gh.gamecenter.personalhome.FollowersOrFansViewModel import com.gh.gamecenter.personalhome.fans.FansActivity import com.gh.gamecenter.personalhome.fans.FollowersOrFansAdapter @@ -17,6 +18,8 @@ class FollowersOrFansFragment : ListFragment(application) { @@ -33,11 +33,11 @@ class FollowersOrFansViewModel(application: Application, } } - fun followingCommand(isFollow: Boolean, callback: (isFollow: Boolean) -> Unit) { + fun followingCommand(isFollow: Boolean, targetUserId: String, callback: (isFollow: Boolean) -> Unit) { val observable = if (isFollow) { - RetrofitManager.getInstance(getApplication()).api.postFollowing(userId) + RetrofitManager.getInstance(getApplication()).api.postFollowing(targetUserId) } else { - RetrofitManager.getInstance(getApplication()).api.deleteFollowing(userId) + RetrofitManager.getInstance(getApplication()).api.deleteFollowing(targetUserId) } observable .subscribeOn(Schedulers.io()) @@ -61,7 +61,7 @@ class FollowersOrFansViewModel(application: Application, }) } - class Factory(private val mApplication: Application, + class Factory(private val mApplication: Application, private val mPageSource: String, private val mUserId: String) : ViewModelProvider.NewInstanceFactory() { diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/PersonalHomeAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/PersonalHomeAdapter.kt index af1a48e8ce..4bfadcf3c8 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/PersonalHomeAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/PersonalHomeAdapter.kt @@ -24,11 +24,11 @@ import com.gh.gamecenter.personalhome.fans.FollowersActivity import com.gh.gamecenter.personalhome.question.PersonalQuestionActivity import com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity import com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity +import com.lightgame.utils.Utils import java.util.* class PersonalHomeAdapter(context: Context, - private val mListViewModel: PersonalHomeViewModel, - private val unreadItemClick: () -> Unit) : ListAdapter(context) { + private val mListViewModel: PersonalHomeViewModel) : ListAdapter(context) { private var mUnreadEntity: MessageUnreadEntity? = null var personalData: PersonalEntity? = null @@ -102,7 +102,6 @@ class PersonalHomeAdapter(context: Context, mContext.startActivity(FollowersActivity.getIntent(mContext, mListViewModel.userId)) } userFansContainer.setOnClickListener { - unreadItemClick.invoke() mContext.startActivity(FansActivity.getIntent(mContext, mListViewModel.userId)) } userQuestionText.setOnClickListener { @@ -111,6 +110,9 @@ class PersonalHomeAdapter(context: Context, userAnswerText.setOnClickListener { mContext.startActivity(PersonalAnswerActivity.getIntent(mContext, mListViewModel.userId)) } + userVoteContainer.setOnClickListener { + Utils.toast(mContext, "共获得" + entity?.count?.answerVote + "赞同") + } userConcernOrEdit.setOnClickListener({ if (mListViewModel.userId == UserManager.getInstance().userId) { mContext.startActivity(UserInfoActivity.getIntent(mContext)) @@ -161,8 +163,8 @@ class PersonalHomeAdapter(context: Context, "answer" -> personalData?.name + "回答了问题·" + NewsUtils.getFormattedTime(time) "question" -> personalData?.name + "提交了问题·" + NewsUtils.getFormattedTime(time) "answer_vote" -> personalData?.name + "关注了问题·" + NewsUtils.getFormattedTime(time) - "question_follow" -> personalData?.name + "关注了问题·" + NewsUtils.getFormattedTime(time) - else -> "" + "follow_question" -> personalData?.name + "关注了问题·" + NewsUtils.getFormattedTime(time) + else -> personalData?.name + "" } } diff --git a/app/src/main/res/drawable-xxhdpi/personal_home_icon.png b/app/src/main/res/drawable-xxhdpi/personal_home_icon.png new file mode 100644 index 0000000000..5dfd5c593c Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/personal_home_icon.png differ diff --git a/app/src/main/res/layout/fragment_personal.xml b/app/src/main/res/layout/fragment_personal.xml index ebadafb3f8..200ff5f57f 100644 --- a/app/src/main/res/layout/fragment_personal.xml +++ b/app/src/main/res/layout/fragment_personal.xml @@ -189,7 +189,7 @@ android:layout_height = "18dp" android:layout_centerVertical = "true" android:layout_marginRight = "18dp" - android:src = "@drawable/personal_ask_icon" /> + android:src = "@drawable/personal_home_icon" /> + android:background = "@drawable/setting_update_hint" + android:paddingBottom = "2dp" + android:paddingLeft = "8dp" + android:paddingRight = "8dp" + android:paddingTop = "2dp" + android:textColor = "@android:color/white" + android:textSize = "12sp" + android:visibility = "gone" /> diff --git a/app/src/main/res/layout/personal_home_top.xml b/app/src/main/res/layout/personal_home_top.xml index 5a6effceb0..3f7b28d19c 100644 --- a/app/src/main/res/layout/personal_home_top.xml +++ b/app/src/main/res/layout/personal_home_top.xml @@ -121,10 +121,10 @@ @@ -153,10 +153,10 @@ @@ -250,11 +250,11 @@ 个人主页 个性签名 介绍下自己吧.. + 自己