Skip to content

Commit

Permalink
add support for endroid/qr-code version 6 (#140)
Browse files Browse the repository at this point in the history
* add support for endroid/qr-code version 6

* add endroid v6 to github workflows

* remove negative conditional (endroid-related)

---------

Co-authored-by: Clifford Vickrey <cvickrey@insuranceautomationgroup.com>
  • Loading branch information
cliffordvickrey and Clifford Vickrey authored Oct 24, 2024
1 parent ab4c330 commit 92487ac
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test-endroid.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
strategy:
matrix:
php-version: ['8.2', '8.3']
endroid-version: ["^3","^4","^5"]
endroid-version: ["^3","^4","^5","^6"]

steps:
- uses: actions/checkout@v4
Expand Down
17 changes: 15 additions & 2 deletions lib/Providers/Qr/EndroidQrCodeProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,13 @@ class EndroidQrCodeProvider implements IQRCodeProvider

protected $endroid5 = false;

protected $endroid6 = false;

public function __construct($bgcolor = 'ffffff', $color = '000000', $margin = 0, $errorcorrectionlevel = 'H')
{
$this->endroid4 = method_exists(QrCode::class, 'create');
$this->endroid5 = enum_exists(ErrorCorrectionLevel::class);
$this->endroid6 = $this->endroid5 && !method_exists(QrCode::class, 'setSize');
$this->endroid4 = $this->endroid6 || method_exists(QrCode::class, 'create');

$this->bgcolor = $this->handleColor($bgcolor);
$this->color = $this->handleColor($color);
Expand All @@ -56,14 +59,24 @@ public function getQRCodeImage(string $qrText, int $size): string

protected function qrCodeInstance(string $qrText, int $size): QrCode
{
if ($this->endroid6) {
return new QrCode(
data: $qrText,
errorCorrectionLevel: $this->errorcorrectionlevel,
size: $size,
margin: $this->margin,
foregroundColor: $this->color,
backgroundColor: $this->bgcolor
);
}

$qrCode = new QrCode($qrText);
$qrCode->setSize($size);

$qrCode->setErrorCorrectionLevel($this->errorcorrectionlevel);
$qrCode->setMargin($this->margin);
$qrCode->setBackgroundColor($this->bgcolor);
$qrCode->setForegroundColor($this->color);

return $qrCode;
}

Expand Down

0 comments on commit 92487ac

Please sign in to comment.