// Generated by data binding compiler. Do not edit!
package com.toughra.ustadmobile.databinding;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.constraintlayout.widget.Barrier;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.databinding.Bindable;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ViewDataBinding;
import com.google.android.material.button.MaterialButton;
import com.toughra.ustadmobile.R;
import com.ustadmobile.core.account.UserSessionWithPersonAndEndpoint;
import com.ustadmobile.core.controller.AccountListPresenter;
import de.hdodenhof.circleimageview.CircleImageView;
import java.lang.Deprecated;
import java.lang.Object;

public abstract class ItemAccountListBinding extends ViewDataBinding {
  @NonNull
  public final MaterialButton accountDeleteIcon;

  @NonNull
  public final AppCompatImageView accountLinkIcon;

  @NonNull
  public final MaterialButton accountLogout;

  @NonNull
  public final MaterialButton accountProfile;

  @NonNull
  public final AppCompatImageView accountUserIcon;

  @NonNull
  public final View divider;

  @NonNull
  public final Barrier dividerBarrier;

  @NonNull
  public final ConstraintLayout itemAccountList;

  @NonNull
  public final Barrier labelBarrier;

  @NonNull
  public final TextView personFullName;

  @NonNull
  public final TextView personLink;

  @NonNull
  public final CircleImageView personProfileIcon;

  @NonNull
  public final TextView personUsername;

  @Bindable
  protected UserSessionWithPersonAndEndpoint mSession;

  @Bindable
  protected boolean mActiveAccount;

  @Bindable
  protected Integer mLogoutBtnVisibility;

  @Bindable
  protected Integer mProfileBtnVisibility;

  @Bindable
  protected AccountListPresenter mPresenter;

  protected ItemAccountListBinding(Object _bindingComponent, View _root, int _localFieldCount,
      MaterialButton accountDeleteIcon, AppCompatImageView accountLinkIcon,
      MaterialButton accountLogout, MaterialButton accountProfile,
      AppCompatImageView accountUserIcon, View divider, Barrier dividerBarrier,
      ConstraintLayout itemAccountList, Barrier labelBarrier, TextView personFullName,
      TextView personLink, CircleImageView personProfileIcon, TextView personUsername) {
    super(_bindingComponent, _root, _localFieldCount);
    this.accountDeleteIcon = accountDeleteIcon;
    this.accountLinkIcon = accountLinkIcon;
    this.accountLogout = accountLogout;
    this.accountProfile = accountProfile;
    this.accountUserIcon = accountUserIcon;
    this.divider = divider;
    this.dividerBarrier = dividerBarrier;
    this.itemAccountList = itemAccountList;
    this.labelBarrier = labelBarrier;
    this.personFullName = personFullName;
    this.personLink = personLink;
    this.personProfileIcon = personProfileIcon;
    this.personUsername = personUsername;
  }

  public abstract void setSession(@Nullable UserSessionWithPersonAndEndpoint session);

  @Nullable
  public UserSessionWithPersonAndEndpoint getSession() {
    return mSession;
  }

  public abstract void setActiveAccount(boolean activeAccount);

  public boolean getActiveAccount() {
    return mActiveAccount;
  }

  public abstract void setLogoutBtnVisibility(@Nullable Integer logoutBtnVisibility);

  @Nullable
  public Integer getLogoutBtnVisibility() {
    return mLogoutBtnVisibility;
  }

  public abstract void setProfileBtnVisibility(@Nullable Integer profileBtnVisibility);

  @Nullable
  public Integer getProfileBtnVisibility() {
    return mProfileBtnVisibility;
  }

  public abstract void setPresenter(@Nullable AccountListPresenter presenter);

  @Nullable
  public AccountListPresenter getPresenter() {
    return mPresenter;
  }

  @NonNull
  public static ItemAccountListBinding inflate(@NonNull LayoutInflater inflater,
      @Nullable ViewGroup root, boolean attachToRoot) {
    return inflate(inflater, root, attachToRoot, DataBindingUtil.getDefaultComponent());
  }

  /**
   * This method receives DataBindingComponent instance as type Object instead of
   * type DataBindingComponent to avoid causing too many compilation errors if
   * compilation fails for another reason.
   * https://issuetracker.google.com/issues/116541301
   * @Deprecated Use DataBindingUtil.inflate(inflater, R.layout.item_account_list, root, attachToRoot, component)
   */
  @NonNull
  @Deprecated
  public static ItemAccountListBinding inflate(@NonNull LayoutInflater inflater,
      @Nullable ViewGroup root, boolean attachToRoot, @Nullable Object component) {
    return ViewDataBinding.<ItemAccountListBinding>inflateInternal(inflater, R.layout.item_account_list, root, attachToRoot, component);
  }

  @NonNull
  public static ItemAccountListBinding inflate(@NonNull LayoutInflater inflater) {
    return inflate(inflater, DataBindingUtil.getDefaultComponent());
  }

  /**
   * This method receives DataBindingComponent instance as type Object instead of
   * type DataBindingComponent to avoid causing too many compilation errors if
   * compilation fails for another reason.
   * https://issuetracker.google.com/issues/116541301
   * @Deprecated Use DataBindingUtil.inflate(inflater, R.layout.item_account_list, null, false, component)
   */
  @NonNull
  @Deprecated
  public static ItemAccountListBinding inflate(@NonNull LayoutInflater inflater,
      @Nullable Object component) {
    return ViewDataBinding.<ItemAccountListBinding>inflateInternal(inflater, R.layout.item_account_list, null, false, component);
  }

  public static ItemAccountListBinding bind(@NonNull View view) {
    return bind(view, DataBindingUtil.getDefaultComponent());
  }

  /**
   * This method receives DataBindingComponent instance as type Object instead of
   * type DataBindingComponent to avoid causing too many compilation errors if
   * compilation fails for another reason.
   * https://issuetracker.google.com/issues/116541301
   * @Deprecated Use DataBindingUtil.bind(view, component)
   */
  @Deprecated
  public static ItemAccountListBinding bind(@NonNull View view, @Nullable Object component) {
    return (ItemAccountListBinding)bind(component, view, R.layout.item_account_list);
  }
}
