core-android/src/main/java/com/uber/sdk/android/core/auth/SsoDeeplink.java
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);
        }
    }
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);
        }
    }
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.