/**
   * Create the LoginButton by inflating from XML
   *
   * @see View#View(Context, AttributeSet)
   */
  public LoginButton(Context context, AttributeSet attrs) {
    super(context, attrs);

    if (attrs.getStyleAttribute() == 0) {
      // apparently there's no method of setting a default style in xml,
      // so in case the users do not explicitly specify a style, we need
      // to use sensible defaults.
      this.setTextColor(getResources().getColor(R.color.com_facebook_loginview_text_color));
      this.setTextSize(
          TypedValue.COMPLEX_UNIT_PX,
          getResources().getDimension(R.dimen.com_facebook_loginview_text_size));
      this.setPadding(
          getResources().getDimensionPixelSize(R.dimen.com_facebook_loginview_padding_left),
          getResources().getDimensionPixelSize(R.dimen.com_facebook_loginview_padding_top),
          getResources().getDimensionPixelSize(R.dimen.com_facebook_loginview_padding_right),
          getResources().getDimensionPixelSize(R.dimen.com_facebook_loginview_padding_bottom));
      this.setWidth(getResources().getDimensionPixelSize(R.dimen.com_facebook_loginview_width));
      this.setHeight(getResources().getDimensionPixelSize(R.dimen.com_facebook_loginview_height));
      this.setGravity(Gravity.CENTER);
      if (isInEditMode()) {
        // cannot use a drawable in edit mode, so setting the background color instead
        // of a background resource.
        this.setBackgroundColor(getResources().getColor(R.color.com_facebook_blue));
        // hardcoding in edit mode as getResources().getString() doesn't seem to work in IntelliJ
        loginText = "Log in";
      } else {
        this.setBackgroundResource(R.drawable.com_facebook_loginbutton_blue);
      }
    }
    parseAttributes(attrs);
    if (!isInEditMode()) {
      initializeActiveSessionWithCachedToken(context);
    }
  }
 /**
  * Create the LoginButton by inflating from XML and applying a style.
  *
  * @see View#View(Context, AttributeSet, int)
  */
 public LoginButton(Context context, AttributeSet attrs, int defStyle) {
   super(context, attrs, defStyle);
   parseAttributes(attrs);
   initializeActiveSessionWithCachedToken(context);
 }
 /**
  * Create the LoginButton.
  *
  * @see View#View(Context)
  */
 public LoginButton(Context context) {
   super(context);
   initializeActiveSessionWithCachedToken(context);
   // since onFinishInflate won't be called, we need to finish initialization ourselves
   finishInit();
 }