ObservableTransformer<RxBleInternalScanResult, RxBleInternalScanResult> emulateCallbackType(
            @ScanSettings.CallbackType final int callbackType) {
        switch (callbackType) {
            case ScanSettings.CALLBACK_TYPE_FIRST_MATCH:
                return splitByAddressAndForEach(emulateFirstMatch);
            case ScanSettings.CALLBACK_TYPE_MATCH_LOST:
                return splitByAddressAndForEach(emulateMatchLost);
            case ScanSettings.CALLBACK_TYPE_FIRST_MATCH | ScanSettings.CALLBACK_TYPE_MATCH_LOST:
                return splitByAddressAndForEach(emulateFirstMatchAndMatchLost);
            case ScanSettings.CALLBACK_TYPE_ALL_MATCHES:
                // return the original observable - fallthrough
            default: // checkstyle always needs default
                return identityTransformer();
        }
    }
A convenience method for running a scan for a period of time and repeat in five seconds intervals.

@param windowInMillis window for which the observable should be active
@return Observable.Transformer that will take the original observable for specific time and repeat subscription after 5 seconds
rxandroidble/src/main/java/com/polidea/rxandroidble2/internal/scan/ScanSettingsEmulator.java