From 4b6b0601b74eb5276b60f4070521460376cdb2f6 Mon Sep 17 00:00:00 2001 From: Matthijs van Schooten Date: Fri, 10 Nov 2023 13:41:25 +0100 Subject: [PATCH] Fixed check ordering --- lib/Providers/Qr/EndroidQrCodeProvider.php | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/lib/Providers/Qr/EndroidQrCodeProvider.php b/lib/Providers/Qr/EndroidQrCodeProvider.php index 8f8c4ac..842bf45 100755 --- a/lib/Providers/Qr/EndroidQrCodeProvider.php +++ b/lib/Providers/Qr/EndroidQrCodeProvider.php @@ -79,15 +79,7 @@ class EndroidQrCodeProvider implements IQRCodeProvider private function handleErrorCorrectionLevel(string $level): ErrorCorrectionLevelInterface|ErrorCorrectionLevel { - if ($this->endroid4) { - return match ($level) { - 'L' => new ErrorCorrectionLevelLow(), - 'M' => new ErrorCorrectionLevelMedium(), - 'Q' => new ErrorCorrectionLevelQuartile(), - default => new ErrorCorrectionLevelHigh(), - }; - } - + // First check for version 5 (using consts) if ($this->endroid5) { return match ($level) { 'L' => ErrorCorrectionLevel::Low, @@ -97,7 +89,17 @@ class EndroidQrCodeProvider implements IQRCodeProvider }; } - // Assuming this is for version EndroidQR < 4 + // If not check for version 4 (using classes) + if ($this->endroid4) { + return match ($level) { + 'L' => new ErrorCorrectionLevelLow(), + 'M' => new ErrorCorrectionLevelMedium(), + 'Q' => new ErrorCorrectionLevelQuartile(), + default => new ErrorCorrectionLevelHigh(), + }; + } + + // Any other version will be using strings return match ($level) { 'L' => ErrorCorrectionLevel::LOW(), 'M' => ErrorCorrectionLevel::MEDIUM(),