@Override public FriendshipShow workInBackground(Void... params) throws TaskException { FriendshipShow friendshipShow = SinaSDK.getInstance(AppContext.getToken()) .friendshipsShow(AppContext.getUser().getIdstr(), mUser.getIdstr()); if (friendshipShow.getSource().getFollowing()) { GroupMemberListed[] result = SinaSDK.getInstance(AppContext.getToken()).friendshipGroupsListed(mUser.getIdstr()); if (result != null && result.length > 0) { mGroupMemberListed = result[0]; } else { mGroupMemberListed = new GroupMemberListed(); mGroupMemberListed.setLists(new ArrayList<GroupListed>()); mGroupMemberListed.setUid(mUser.getId()); } } return friendshipShow; }
@Override public void onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); MenuItem mentionItem = menu.findItem(R.id.mention); MenuItem createItem = menu.findItem(R.id.create); MenuItem destoryItem = menu.findItem(R.id.destory); MenuItem followerDestoryItem = menu.findItem(R.id.followDestory); if (mUser == null || AppContext.getUser().getIdstr().equals(mUser.getIdstr())) { mentionItem.setVisible(false); createItem.setVisible(false); destoryItem.setVisible(false); followerDestoryItem.setVisible(false); } else { mentionItem.setVisible(true); createItem.setVisible(mFriendship != null && !mFriendship.getSource().getFollowing()); destoryItem.setVisible(mFriendship != null && mFriendship.getSource().getFollowing()); followerDestoryItem.setVisible(mFriendship != null && mFriendship.getTarget().getFollowing()); } }
@Override public void onFriendshipDestoryed(WeiBoUser targetUser) { if (mFriendship != null) mFriendship.getSource().setFollowing(false); mGroupMemberListed = null; mUser.setRemark(""); if (mNewUser != null) mNewUser.setRemark(""); setProfileView(); getActivity().invalidateOptionsMenu(); getAdapter().notifyDataSetChanged(); }
@Override public void onFriendshipCreated(WeiBoUser targetUser) { if (mFriendship != null) mFriendship.getSource().setFollowing(true); mUser.setRecentStatusId(targetUser.getRecentStatusId()); if (mNewUser != null) mNewUser.setRecentStatusId(targetUser.getRecentStatusId()); mGroupMemberListed = new GroupMemberListed(); mGroupMemberListed.setLists(new ArrayList<GroupListed>()); mGroupMemberListed.setUid(mUser.getIdstr()); setProfileView(); setGroupList(); getActivity().invalidateOptionsMenu(); getAdapter().notifyDataSetChanged(); }
@Override public void onDestoryFollower(WeiBoUser user) { if (mFriendship != null) mFriendship.getTarget().setFollowing(false); getActivity().invalidateOptionsMenu(); }
private void setProfileView() { ImageView imgPhoto = (ImageView) viewProfile.findViewById(R.id.imgPhoto); BitmapLoader.getInstance() .display( this, AisenUtil.getUserPhoto(mUser), imgPhoto, ImageConfigUtils.getLargePhotoConfig()); TextView txtName = (TextView) viewProfile.findViewById(R.id.txtName); txtName.setText(mUser.getName()); // f**k 2014-09-04 当名字过长大于6个字时,截取部分文字 int maxLength = AisenUtil.getStrLength("当名字过长大于个"); if (AisenUtil.getStrLength(mUser.getName()) > maxLength) { StringBuffer sb = new StringBuffer(); int index = 0; while (AisenUtil.getStrLength(sb.toString()) < maxLength) { if (index >= mUser.getName().length()) break; sb.append(mUser.getName().charAt(index)); index++; } sb.append("..."); txtName.setText(sb.toString()); } // 性别 ImageView imgGender = (ImageView) viewProfile.findViewById(R.id.imgGender); imgGender.setVisibility(View.VISIBLE); if ("m".equals(mUser.getGender())) imgGender.setImageResource(R.drawable.list_male); else if ("f".equals(mUser.getGender())) imgGender.setImageResource(R.drawable.list_female); else imgGender.setVisibility(View.GONE); // 认证 ImageView imgVerified = (ImageView) viewProfile.findViewById(R.id.imgVerified); AisenUtil.setImageVerified(imgVerified, mUser); // 简介 TextView txtDesc = (TextView) viewProfile.findViewById(R.id.txtDesc); if (!TextUtils.isEmpty(mUser.getDescription())) txtDesc.setText(String.format(getString(R.string.profile_des_hint), mUser.getDescription())); else txtDesc.setText( String.format( String.format( getString(R.string.profile_des_hint), getString(R.string.profile_des_none)))); // 认证原因 TextView txtVerifiedReason = (TextView) viewProfile.findViewById(R.id.txtVerifiedReason); txtVerifiedReason.setVisibility( !TextUtils.isEmpty(mUser.getVerified_reason()) ? View.VISIBLE : View.GONE); txtVerifiedReason.setText( String.format(getString(R.string.profile_ver_reason), mUser.getVerified_reason() + "")); // 备注 TextView txtRemark = (TextView) viewProfile.findViewById(R.id.txtRemark); txtRemark.setVisibility( mFriendship == null || !mFriendship.getSource().getFollowing() ? View.GONE : View.VISIBLE); if (mFriendship != null) { try { BizFragment.getBizFragment(this).modifyUserMark(txtRemark, mUser, this); } catch (Exception e) { } if (!TextUtils.isEmpty(mUser.getRemark())) txtRemark.setText(String.format(getString(R.string.profile_remark), mUser.getRemark())); else txtRemark.setText(R.string.profile_remark_none); } // 分组 TextView txtGroups = (TextView) viewProfile.findViewById(R.id.txtGroups); txtGroups.setVisibility(mGroupMemberListed == null ? View.GONE : View.VISIBLE); txtGroups.setOnClickListener(this); if (mGroupMemberListed != null) { if (mGroupMemberListed.getLists().size() == 0) { txtGroups.setText(R.string.profile_group_none); } else { StringBuffer sb = new StringBuffer(); for (GroupListed groupListed : mGroupMemberListed.getLists()) sb.append(groupListed.getName()).append(" "); txtGroups.setText( String.format(getString(R.string.profile_group_hint), sb.toString().trim())); } } // 所在地 TextView txtLocation = (TextView) viewProfile.findViewById(R.id.txtLocation); txtLocation.setText(mUser.getLocation()); // 微博数 TextView txtStatusCount = (TextView) viewProfile.findViewById(R.id.txtStatusCount); txtStatusCount.setText(AisenUtil.getCounter(mUser.getStatuses_count())); // 关注数 viewProfile.findViewById(R.id.btnFriendCounter).setOnClickListener(this); TextView txtFriendCount = (TextView) viewProfile.findViewById(R.id.txtFriendCount); txtFriendCount.setText(AisenUtil.getCounter(mUser.getFriends_count())); // 粉丝数 viewProfile.findViewById(R.id.btnFollowerCounter).setOnClickListener(this); TextView txtFollowerCount = (TextView) viewProfile.findViewById(R.id.txtFollowerCount); txtFollowerCount.setText(AisenUtil.getCounter(mUser.getFollowers_count())); }