code: void execute(@NonNull FlowVersion flowVersion) {
          checkState(isSupported(flowVersion), "Single sign on is not supported on the device. " +
                  "Please install or update to the latest version of Uber app.");
  
          Intent intent = new Intent(Intent.ACTION_VIEW);
          final Uri deepLinkUri = createSsoUri(flowVersion);
          intent.setData(deepLinkUri);
  
          List<PackageInfo> validatedPackages = new ArrayList<>();
          if (productFlowPriority.isEmpty()) {
              validatedPackages.addAll(
                      appProtocol.getInstalledPackages(activity, UBER, getSupportedAppVersion(UBER, flowVersion)));
          } else {
              for (SupportedAppType supportedAppType : productFlowPriority) {
                  validatedPackages.addAll(appProtocol.getInstalledPackages(
                          activity, supportedAppType, getSupportedAppVersion(supportedAppType, flowVersion)));
              }
          }
  
          if (!validatedPackages.isEmpty()) {
              intent.setPackage(validatedPackages.get(0).packageName);
          }
          if (flowVersion == FlowVersion.DEFAULT) {
              activity.startActivityForResult(intent, requestCode);
          } else {
              activity.startActivity(intent);
          }
      }
docs: Starts the deeplink with the configuration options specified by this object. Use {@link Builder} to construct
  an instance.
  
  @param flowVersion specifies which client implementation to use for handling the response to the SSO request
  @throws IllegalStateException if compatible Uber app is not installed or the deeplink is incorrectly configured.
  Use {@link #isSupported()} to check.