@Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); viewHolder = new ViewHolder(view); viewHolder.profileImageProgress.setVisibility(View.GONE); viewHolder.username.setText(username); final IconDrawable icon = new IconDrawable(getActivity(), FontAwesomeIcons.fa_camera) .colorRes(getActivity(), R.color.disableable_button_text) .sizeRes(getActivity(), R.dimen.fa_x_small); icon.setTintList( null); // IconDrawable is tinted by default, but we don't want it to be tinted here TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds( viewHolder.changePhoto, icon, null, null, null); viewHolder.changePhoto.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { final PopupMenu popup = new PopupMenu(getActivity(), v); popup.getMenuInflater().inflate(R.menu.change_photo, popup.getMenu()); popup.setOnMenuItemClickListener( new PopupMenu.OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.take_photo: { startActivityForResult( helper.createCaptureIntent(getActivity()), CAPTURE_PHOTO_REQUEST); break; } case R.id.choose_photo: { final Intent galleryIntent = new Intent().setType("image/*").setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(galleryIntent, CHOOSE_PHOTO_REQUEST); break; } case R.id.remove_photo: { executePhotoTask( new DeleteAccountImageTask(getActivity(), username) { @Override protected void onSuccess(Void aVoid) throws Exception { hideLoading(); } private void hideLoading() { if (null != viewHolder) { viewHolder.profileImageProgress.setVisibility(View.GONE); } } }); break; } } return true; } }); popup.show(); } }); setData(account, formDescription); }