Julian Steenbakker

Merge remote-tracking branch 'origin/master'

@@ -11,7 +11,7 @@ jobs: @@ -11,7 +11,7 @@ jobs:
11 analysis: 11 analysis:
12 runs-on: ubuntu-latest 12 runs-on: ubuntu-latest
13 steps: 13 steps:
14 - - uses: actions/checkout@v3.6.0 14 + - uses: actions/checkout@v4.0.0
15 - uses: actions/setup-java@v3.12.0 15 - uses: actions/setup-java@v3.12.0
16 with: 16 with:
17 java-version: 11 17 java-version: 11
@@ -28,7 +28,7 @@ jobs: @@ -28,7 +28,7 @@ jobs:
28 formatting: 28 formatting:
29 runs-on: ubuntu-latest 29 runs-on: ubuntu-latest
30 steps: 30 steps:
31 - - uses: actions/checkout@v3.6.0 31 + - uses: actions/checkout@v4.0.0
32 - uses: actions/setup-java@v3.12.0 32 - uses: actions/setup-java@v3.12.0
33 with: 33 with:
34 java-version: 11 34 java-version: 11
@@ -248,36 +248,38 @@ class _MobileScannerState extends State<MobileScanner> @@ -248,36 +248,38 @@ class _MobileScannerState extends State<MobileScanner>
248 248
249 @override 249 @override
250 Widget build(BuildContext context) { 250 Widget build(BuildContext context) {
251 - final Size size = MediaQuery.of(context).size;  
252 -  
253 - return ValueListenableBuilder<MobileScannerArguments?>(  
254 - valueListenable: _controller.startArguments,  
255 - builder: (context, value, child) {  
256 - if (value == null) {  
257 - return _buildPlaceholderOrError(context, child);  
258 - }  
259 -  
260 - if (widget.scanWindow != null && scanWindow == null) {  
261 - scanWindow = calculateScanWindowRelativeToTextureInPercentage(  
262 - widget.fit,  
263 - widget.scanWindow!,  
264 - value.size,  
265 - size,  
266 - );  
267 -  
268 - _controller.updateScanWindow(scanWindow);  
269 - }  
270 - if (widget.overlay != null) {  
271 - return Stack(  
272 - alignment: Alignment.center,  
273 - children: [  
274 - _scanner(value.size, value.webId, value.textureId),  
275 - widget.overlay!,  
276 - ],  
277 - );  
278 - } else {  
279 - return _scanner(value.size, value.webId, value.textureId);  
280 - } 251 + return LayoutBuilder(
  252 + builder: (context, constraints) {
  253 + return ValueListenableBuilder<MobileScannerArguments?>(
  254 + valueListenable: _controller.startArguments,
  255 + builder: (context, value, child) {
  256 + if (value == null) {
  257 + return _buildPlaceholderOrError(context, child);
  258 + }
  259 +
  260 + if (widget.scanWindow != null && scanWindow == null) {
  261 + scanWindow = calculateScanWindowRelativeToTextureInPercentage(
  262 + widget.fit,
  263 + widget.scanWindow!,
  264 + value.size,
  265 + Size(constraints.maxWidth, constraints.maxHeight),
  266 + );
  267 +
  268 + _controller.updateScanWindow(scanWindow);
  269 + }
  270 + if (widget.overlay != null) {
  271 + return Stack(
  272 + alignment: Alignment.center,
  273 + children: [
  274 + _scanner(value.size, value.webId, value.textureId),
  275 + widget.overlay!,
  276 + ],
  277 + );
  278 + } else {
  279 + return _scanner(value.size, value.webId, value.textureId);
  280 + }
  281 + },
  282 + );
281 }, 283 },
282 ); 284 );
283 } 285 }