package bg.mentormate.academy.radarapp.views; import android.annotation.TargetApi; import android.content.Context; import android.content.Intent; import android.os.Build; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import com.parse.GetCallback; import com.parse.ParseException; import com.parse.ParseImageView; import com.parse.ParseObject; import bg.mentormate.academy.radarapp.R; import bg.mentormate.academy.radarapp.activities.ProfileActivity; import bg.mentormate.academy.radarapp.data.LocalDb; import bg.mentormate.academy.radarapp.models.User; /** * Created by tl on 18.02.15. */ public class UserItem extends LinearLayout implements View.OnClickListener { private static final String USER_ID = "USER_ID"; private TextView mTvUsername; private ParseImageView mPivAvatar; private FollowButton mFbFollow; private User mSelectedUser; private User mCurrentUser; public UserItem(Context context) { super(context); init(); } public UserItem(Context context, AttributeSet attrs) { super(context, attrs); init(); } private void init() { LayoutInflater inflater = LayoutInflater.from(getContext()); inflater.inflate(R.layout.item_user, this); mCurrentUser = LocalDb.getInstance().getCurrentUser(); mTvUsername = (TextView) findViewById(R.id.tvUsername); mPivAvatar = (ParseImageView) findViewById(R.id.pivAvatar); mFbFollow = (FollowButton) findViewById(R.id.fbFollow); mTvUsername.setOnClickListener(this); mPivAvatar.setOnClickListener(this); } public void setData(User user) { mSelectedUser = user; mSelectedUser.fetchIfNeededInBackground(new GetCallback<ParseObject>() { @TargetApi(Build.VERSION_CODES.JELLY_BEAN) @Override public void done(ParseObject parseObject, ParseException e) { mTvUsername.setText(mSelectedUser.getUsername()); mPivAvatar.setParseFile(mSelectedUser.getAvatar()); if (mSelectedUser.getAvatar() != null) { mPivAvatar.loadInBackground(); } else { mPivAvatar.setBackground(getResources().getDrawable(R.drawable.ic_avatar)); } if (!mCurrentUser.equals(mSelectedUser)) { mFbFollow.setData(mCurrentUser, mSelectedUser); } } }); } @Override public void onClick(View v) { int id = v.getId(); switch (id) { case R.id.tvUsername: case R.id.pivAvatar: goToProfile(); break; } } private void goToProfile() { Intent profileIntent = new Intent(getContext(), ProfileActivity.class); profileIntent.putExtra(USER_ID, mSelectedUser.getObjectId()); getContext().startActivity(profileIntent); } }