package io.c0nnector.github.paradise.ui.person; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import com.transitionseverywhere.TransitionManager; import butterknife.Bind; import io.c0nnector.github.paradise.R; import io.c0nnector.github.paradise.ui.views.BaseLinearLayout; import io.c0nnector.github.paradise.ui.views.UrlImageView; import io.c0nnector.github.paradise.util.Strings; import io.c0nnector.github.paradise.util.UtilMeasure; import io.c0nnector.github.paradise.util.UtilView; /** * Part of the PersonView */ public class PersonHeaderView extends BaseLinearLayout { @Bind(R.id.imgAvatar) UrlImageView urlImageView; @Bind(R.id.txtBio) TextView txtBio; @Bind(R.id.txtUsername) TextView txtName; @Bind(R.id.txtLocation) TextView txtLocation; @Bind(R.id.txtLabel) TextView txtLabel; @Bind(R.id.vSecondaryInfo) View vSecondaryInfo; public PersonHeaderView(Context context, AttributeSet attrs) { super(context, attrs); } /** * User basic info * * @param avatarUrl user avatar url * @param name user name * @param bio user bio */ public void setupBasicInfo(String avatarUrl, String name, String bio){ TransitionManager.beginDelayedTransition(this); urlImageView.loadAvatarImage(avatarUrl); txtName.setText(name); if (UtilView.makeInvisible(txtBio, Strings.isNotBlank(bio))) txtBio.setText(bio); else adjustBioMargins(); } /** * Secondary user info * * @param location a city name * @param label e.g investor, founder etc.. */ public void setupSecondaryInfo(String location, String label){ TransitionManager.beginDelayedTransition(this); if (UtilView.show(txtLocation, Strings.isNotBlank(location))) txtLocation.setText(location); if (UtilView.show(txtLabel, Strings.isNotBlank(label))) txtLabel.setText(label); //show container view. Default state is hidden if (Strings.isNotBlank(location) || Strings.isNotBlank(label)) UtilView.show(vSecondaryInfo); } /** * When the user bio is empty we adjust the view margins for better view alignment */ private void adjustBioMargins(){ LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) txtBio.getLayoutParams(); params.setMargins(0, UtilMeasure.dpToPx(10),0,0); txtBio.setLayoutParams(params); } }