@Override
 public void onChooseAvatarPhoto() {
   Intent intentPicture = new Intent(Intent.ACTION_PICK, null);
   intentPicture.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, IMAGE_UNSPECIFIED);
   if (getActivity() != null) {
     startActivityForResult(intentPicture, TYPE_CHOOSE_PHOTO);
   }
   PlannerEvent.getAvatarAction(CHOOSE_PHOTO_ACTION).track();
 }
 @Override
 public void onFocusChange(View v, boolean hasFocus) {
   if (hasFocus) {
     Calendar calendar = Calendar.getInstance();
     String weddingDate = PlannerApplication.getUserProfile().getWeddingDate();
     if (!PlannerApplication.isEmptyOrNull(weddingDate)) {
       try {
         calendar.setTime(
             DateUtils.getDate(DateUtils.DATE_FORMAT_WEDDING_DATE, weddingDate));
       } catch (ParseException e) {
         getLogger().debug(e.getMessage());
       }
     }
     mYear = calendar.get(Calendar.YEAR);
     mMonth = calendar.get(Calendar.MONTH);
     mDay = calendar.get(Calendar.DAY_OF_MONTH);
     PlannerEvent.Screen(PlannerEvent.EVENT_SCREEN_DATE_SELECTION_MENU);
     WeddingDatePickerDialog mWeddingDateDatePicker =
         new WeddingDatePickerDialog(
             getActivity(), mWeddingDateSetListener, mYear, mMonth, mDay);
     mWeddingDateDatePicker.setButton(
         DialogInterface.BUTTON_POSITIVE,
         getString(R.string.date_picker_done),
         mWeddingDateDatePicker);
     mWeddingDateDatePicker.setOnDismissListener(
         new DialogInterface.OnDismissListener() {
           @Override
           public void onDismiss(DialogInterface dialog) {
             mIsFired = false;
             Message message = new Message();
             message.obj = UserAccountFragment.this;
             message.what = HANDLE_MSG_ID_WEDDING_DATE_CLEAR;
             sEventHandler.sendMessageDelayed(message, 300);
           }
         });
     mWeddingDateDatePicker.setOnCancelListener(
         new DialogInterface.OnCancelListener() {
           @Override
           public void onCancel(DialogInterface dialog) {
             Message message = new Message();
             message.obj = UserAccountFragment.this;
             message.what = HANDLE_MSG_ID_WEDDING_DATE_CLEAR;
             sEventHandler.sendMessageDelayed(message, 300);
           }
         });
     mWeddingDateDatePicker.show();
   }
 }
  @Override
  public void onDeleteAvatarPhoto() {
    ImageLoader.getInstance()
        .displayImage(
            String.format("drawable://%s", R.drawable.dashboard_backgroud_picture),
            mIvAvatar,
            PlannerApplication.getDefaultDisplayImageOptions(
                R.drawable.dashboard_backgroud_picture),
            null);
    final Activity activity = getActivity();
    if (activity != null && activity instanceof MainActivity) {
      initLoader(
          CouplePhotoProvider.removeCouplePhotoProvider(
              PlannerApplication.getUserProfile().getCouplePhotoId(),
              UserAccountFragment.this,
              null));
      UserProfile userProfile = PlannerApplication.getUserProfile();
      userProfile.setCouplePhotoId(UserProfile.COUPLE_ID);
      new UserProfileProvider()
          .updateAccount(
              userProfile,
              mWeddingLocationMarketCode,
              mHomeMarketCode,
              new OnProviderDataCallBackListener<UserProfile>() {
                @Override
                protected Activity getActivity() {
                  return UserAccountFragment.this.getActivity();
                }
              },
              UserAccountFragment.this,
              activity);
      UserProfile.updateUserCouplePhoto(PlannerApplication.getUserProfile().getCouplePhotoUrl());

      SyncedObject.DashboardPhotoChangedSyncedObject dashboardPhotoChangedSyncedObject =
          new SyncedObject.DashboardPhotoChangedSyncedObject();
      dashboardPhotoChangedSyncedObject.setUrl(null);
      syncedRefreshDataListener(dashboardPhotoChangedSyncedObject);

      if (!PlannerApplication.isEmptyOrNull(mStatus)
          && mStatus.equals(PlannerApplication.PREF_DASHBOARD_FLAG)) {
        activity.onBackPressed();
      }
    }

    PlannerEvent.getAvatarAction(DELETE_PHOTO_ACTION).track();
  }
 @Override
 public void onTakeAvatarPhoto() {
   mImageName = String.format("%s%s", System.currentTimeMillis(), ".jpg");
   File dir =
       new File(
           String.format(
               "%s%s",
               Environment.getExternalStorageDirectory().getAbsolutePath(),
               getString(R.string.account_image_file_name)));
   if (!dir.exists()) {
     dir.mkdir();
   }
   Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
   intent.putExtra(
       MediaStore.EXTRA_OUTPUT,
       Uri.fromFile(new File(dir.getAbsoluteFile().toString(), mImageName)));
   if (getActivity() != null) {
     startActivityForResult(intent, TYPE_TAKE_PHOTO);
   }
   PlannerEvent.getAvatarAction(TAKE_PHOTO_ACTION).track();
 }
 private void setupRootView() {
   mIsUserProfileUpdate = false;
   setupAccountUserInfo(mUserProfile, mUserProfile);
   PlannerEvent.Screen(PlannerEvent.EVENT_SCREEN_PROFILE);
 }