code: public OADApproval programWithFirmware(final FirmwareBundle bundle, OADListener listener) {
  
          if (!mGattClient.isConnected()) {
              listener.error(BeanError.NOT_CONNECTED);
          }
  
          Log.i(TAG, "Starting firmware update procedure");
  
          // Save state for this firmware procedure
          this.oadListener = listener;
          this.firmwareBundle = bundle;
  
          watchdog.start(OAD_TIMEOUT_SECONDS, watchdogListener);
          checkFirmwareVersion();
  
          return this.oadApproval;
      }
docs: Program the Bean's CC2540 with new firmware.
  
  @param bundle        The {@link com.punchthrough.bean.sdk.upload.FirmwareBundle} to be sent
  @param listener      Listener object to alert client of events/state of the Firmware update process