private static String reasonDescription(int reason) {
        switch (reason) {
            case BLUETOOTH_CANNOT_START:
                return "Bluetooth cannot start";
            case BLUETOOTH_DISABLED:
                return "Bluetooth disabled";
            case BLUETOOTH_NOT_AVAILABLE:
                return "Bluetooth not available";
            case LOCATION_PERMISSION_MISSING:
                return "Location Permission missing";
            case LOCATION_SERVICES_DISABLED:
                return "Location Services disabled";
            case SCAN_FAILED_ALREADY_STARTED:
                return "Scan failed because it has already started";
            case SCAN_FAILED_APPLICATION_REGISTRATION_FAILED:
                return "Scan failed because application registration failed";
            case SCAN_FAILED_INTERNAL_ERROR:
                return "Scan failed because of an internal error";
            case SCAN_FAILED_FEATURE_UNSUPPORTED:
                return "Scan failed because feature unsupported";
            case SCAN_FAILED_OUT_OF_HARDWARE_RESOURCES:
                return "Scan failed because out of hardware resources";
            case UNDOCUMENTED_SCAN_THROTTLE:
                return "Undocumented scan throttle";
            case UNKNOWN_ERROR_CODE:
                // fallthrough
            default:
                return "Unknown error";
        }
    }
Returns a {@link Date} suggestion when a particular {@link Reason} should no longer be valid

@return the date suggestion or null if no suggestion available
rxandroidble/src/main/java/com/polidea/rxandroidble2/exceptions/BleScanException.java