private void setAvatar(Bitmap bmp) {

    BitmapDrawable avatar = new BitmapDrawable(bmp);
    mIvAvatar.setImageDrawable(avatar);

    final ImApp app = ((ImApp) getActivity().getApplication());

    try {

      ByteArrayOutputStream stream = new ByteArrayOutputStream();
      bmp.compress(Bitmap.CompressFormat.JPEG, 90, stream);

      byte[] avatarBytesCompressed = stream.toByteArray();
      String avatarHash = "nohash";
      DatabaseUtils.insertAvatarBlob(
          getActivity().getContentResolver(),
          Imps.Avatars.CONTENT_URI,
          mProviderId,
          mAccountId,
          avatarBytesCompressed,
          avatarHash,
          mUserAddress);
    } catch (Exception e) {
      Log.w(ImApp.LOG_TAG, "error loading image bytes", e);
    }
  }
  @Override
  public View onCreateView(
      LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // Inflate the layout for this fragment

    mApp = ((ImApp) getActivity().getApplication());
    mProviderId = mApp.getDefaultProviderId();
    mAccountId = mApp.getDefaultAccountId();
    mUserAddress = mApp.getDefaultUsername();
    mUserKey = mApp.getDefaultOtrKey();
    mNickname = Imps.Account.getNickname(getContext().getContentResolver(), mAccountId);

    mView = inflater.inflate(R.layout.awesome_fragment_account, container, false);

    if (!TextUtils.isEmpty(mUserAddress)) {

      XmppAddress xAddress = new XmppAddress(mUserAddress);

      TextView tvNickname = (TextView) mView.findViewById(R.id.tvNickname);

      TextView tvUsername = (TextView) mView.findViewById(R.id.edtName);
      mTvPassword = (TextView) mView.findViewById(R.id.edtPass);
      View btnShowPassword = mView.findViewById(R.id.btnShowPass);
      btnShowPassword.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View view) {

              mTvPassword.setText(getAccountPassword(mProviderId));
            }
          });

      TextView tvFingerprint = (TextView) mView.findViewById(R.id.tvFingerprint);

      ivScan = (ImageView) mView.findViewById(R.id.qrcode);

      ivScan.setOnClickListener(
          new View.OnClickListener() {

            @Override
            public void onClick(View v) {

              String inviteString;
              try {
                inviteString =
                    OnboardingManager.generateInviteLink(
                        getActivity(), mUserAddress, mUserKey, mNickname);

                Intent intent = new Intent(getActivity(), QrDisplayActivity.class);
                intent.putExtra(Intent.EXTRA_TEXT, inviteString);
                intent.setType("text/plain");
                startActivity(intent);

                //   OnboardingManager.inviteScan(getActivity(), inviteString);
              } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
              }
            }
          });

      mIvAvatar = (ImageView) mView.findViewById(R.id.imageAvatar);
      mIvAvatar.setOnClickListener(
          new View.OnClickListener() {

            @Override
            public void onClick(View view) {

              startAvatarTaker();
            }
          });

      ImageView btnQrShare = (ImageView) mView.findViewById(R.id.qrshare);
      btnQrShare.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {

              try {
                String inviteLink =
                    OnboardingManager.generateInviteLink(
                        getActivity(), mUserAddress, mUserKey, mNickname);
                new QrShareAsyncTask(getActivity()).execute(inviteLink);
              } catch (IOException ioe) {
                Log.e(ImApp.LOG_TAG, "couldn't generate QR code", ioe);
              }
            }
          });

      Switch switchOnline = (Switch) mView.findViewById(R.id.switchOnline);
      switchOnline.setChecked(checkConnection());

      switchOnline.setOnCheckedChangeListener(
          new CompoundButton.OnCheckedChangeListener() {
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
              if (isChecked) {
                signIn();
              } else {
                // The toggle is disabled
                signOut();
              }
            }
          });

      try {

        Drawable avatar =
            DatabaseUtils.getAvatarFromAddress(
                mApp.getContentResolver(),
                mUserAddress,
                ImApp.DEFAULT_AVATAR_WIDTH,
                ImApp.DEFAULT_AVATAR_HEIGHT,
                false);

        if (avatar != null) mIvAvatar.setImageDrawable(avatar);
      } catch (Exception e) {
        Log.w(ImApp.LOG_TAG, "error getting avatar", e);
      }

      tvUsername.setText(mUserAddress);
      tvNickname.setText(mNickname);

      if (mUserKey != null) {
        tvFingerprint.setText(prettyPrintFingerprint(mUserKey));

        /**
         * try { String inviteLink = OnboardingManager.generateInviteLink(getActivity(),
         * fullUserName, mApp.getDefaultOtrKey()); new QrGenAsyncTask(getActivity(),
         * ivScan,ImApp.DEFAULT_AVATAR_WIDTH).execute(inviteLink); } catch (IOException ioe) {
         * Log.e(ImApp.LOG_TAG, "couldn't generate QR code", ioe); }
         */
      }

      /**
       * Button btnLock = (Button) mView.findViewById(R.id.btnLock); btnLock.setOnClickListener(new
       * View.OnClickListener() { @Override public void onClick(View v) { ((MainActivity)
       * getActivity()).handleLock(); } });
       */
    }

    return mView;
  }