/**
     * Set the array of permissions you want to use in your application
     *
     * @param permissions
     */
    public Builder setPermissions(Permission[] permissions) {
      for (Permission permission : permissions) {
        switch (permission.getType()) {
          case READ:
            mReadPermissions.add(permission.getValue());
            break;
          case PUBLISH:
            mPublishPermissions.add(permission.getValue());
            break;
          default:
            break;
        }
      }

      return this;
    }
  /**
   * Add new permissions in a runtime
   *
   * @param permissions
   */
  void addNewPermissions(Permission[] permissions) {
    for (Permission permission : permissions) {
      switch (permission.getType()) {
        case READ:
          if (!mReadPermissions.contains(permission.getValue())) {
            mReadPermissions.add(permission.getValue());
          }
          break;
        case PUBLISH:
          if (!mPublishPermissions.contains(permission.getValue())) {
            mPublishPermissions.add(permission.getValue());
          }
          break;
        default:
          break;
      }
    }

    if (this.mPublishPermissions.size() > 0) {
      this.mHasPublishPermissions = true;
    }
  }