Skip to content

Commit 0eb9fd7

Browse files
committed
Merge commit 'c094ed8ec7751e597a0f09dcf5b6689503793d04' into custom-lg
* commit 'c094ed8ec7751e597a0f09dcf5b6689503793d04': chewie, version 1.12.1. Addresses Issue fluttercommunity#920. Upgraded iOS example project. Ran dart format on library. Added improvements to the Github workflow. refactor(player-with-controls): replace provider call to context.read refactor(player-with-controls): Remove interactive viewer from tree if its not used Fix zoomAndPan not having an effect. Hide controls while interacting with zoomAndPan. # Conflicts: # lib/src/player_with_controls.dart
2 parents 85788bf + c094ed8 commit 0eb9fd7

File tree

9 files changed

+134
-72
lines changed

9 files changed

+134
-72
lines changed

.github/workflows/ci.yml

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@ name: CI
22

33
on:
44
pull_request:
5-
paths-ignore:
6-
- '**.md'
7-
push:
8-
branches:
9-
- master
5+
types: [opened, synchronize, reopened]
106
paths-ignore:
117
- '**.md'
128
workflow_dispatch:
@@ -15,24 +11,56 @@ concurrency:
1511
group: ${{ github.workflow }}-${{ github.ref }}
1612
cancel-in-progress: true
1713

14+
env:
15+
# Define global environment variables for the workflow
16+
# The version of Flutter to use should use the minimum Dart SDK version supported by the package,
17+
# refer to https://docs.flutter.dev/development/tools/sdk/releases.
18+
# Note: The version below should be manually updated to the latest second most recent version
19+
# after a new stable version comes out.
20+
# Current minimum is set to Flutter 3.29. Make this the new minimum once the next
21+
# stable version is released
22+
FLUTTER_VERSION_MINIMUM_DEFAULT: "3.29.3"
23+
FLUTTER_VERSION_LATEST_STABLE_CHANNEL_DEFAULT: "3.x"
24+
1825
jobs:
26+
setup_matrix:
27+
name: Determine Flutter Test Versions # Name for the setup_matrix job
28+
runs-on: ubuntu-latest
29+
outputs:
30+
flutter_versions_json: ${{ steps.set_versions.outputs.versions_json }}
31+
flutter_version_minimum: ${{ steps.set_versions.outputs.version_min }}
32+
steps:
33+
- name: Determine Flutter versions
34+
id: set_versions
35+
run: |
36+
MIN_VERSION_VALUE="${{ env.FLUTTER_VERSION_MINIMUM_DEFAULT }}"
37+
LATEST_VERSION_VALUE="${{ env.FLUTTER_VERSION_LATEST_STABLE_CHANNEL_DEFAULT }}"
38+
39+
echo "version_min=$MIN_VERSION_VALUE" >> $GITHUB_OUTPUT
40+
echo "version_latest=$LATEST_VERSION_VALUE" >> $GITHUB_OUTPUT
41+
42+
VERSIONS_JSON=$(jq -c --null-input '$ARGS.positional' --args "$MIN_VERSION_VALUE" "$LATEST_VERSION_VALUE")
43+
echo "versions_json=$VERSIONS_JSON" >> $GITHUB_OUTPUT
44+
45+
echo "Determined Min Version: $MIN_VERSION_VALUE"
46+
echo "Determined Latest Version: $LATEST_VERSION_VALUE"
47+
echo "Determined JSON: $VERSIONS_JSON"
48+
1949
# Does a sanity check that packages at least pass analysis on the N-1
2050
# versions of Flutter stable if the package claims to support that version.
2151
# This is to minimize accidentally making changes that break old versions
2252
# (which we don't commit to supporting, but don't want to actively break)
2353
# without updating the constraints.
2454
lint_and_build:
2555
name: Flutter Version ${{ matrix.flutter-version }} Lint and Build.
56+
needs: setup_matrix # Ensures this job runs after setup_matrix completes
2657
runs-on: ubuntu-latest
58+
env:
59+
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
60+
FLUTTER_VERSION_MINIMUM: ${{ needs.setup_matrix.outputs.flutter_version_minimum }}
2761
strategy:
2862
matrix:
29-
flutter-version:
30-
# The version of Flutter to use should use the minimum Dart SDK version supported by the package,
31-
# refer to https://docs.flutter.dev/development/tools/sdk/releases.
32-
# Note: The version below should be manually updated to the latest second most recent version
33-
# after a new stable version comes out.
34-
- "3.29.3"
35-
- "3.x"
63+
flutter-version: ${{ fromJSON(needs.setup_matrix.outputs.flutter_versions_json) }}
3664
fail-fast: false
3765
steps:
3866
- name: 📚 Git Checkout
@@ -51,6 +79,10 @@ jobs:
5179

5280
- name: ✨ Check Formatting
5381
run: dart format --set-exit-if-changed lib
82+
# Only continue on error if this is the job for the MINIMUM Flutter version
83+
# This allows formatting issues to be warnings on older supported versions
84+
# but enforces them on the latest stable or primary development version.
85+
continue-on-error: ${{ matrix.flutter-version == env.FLUTTER_VERSION_MINIMUM }}
5486

5587
- name: 🕵️ Analyze
5688
run: flutter analyze lib

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## [1.12.1]
2+
* 🛠️ [#920](https://github.com/fluttercommunity/chewie/pull/920): Fix zoomAndPan not having an effect. Thanks [abalmagd](https://github.com/abalmagd).
3+
14
## [1.12.0]
25
* 🛠️ [#923](https://github.com/fluttercommunity/chewie/pull/923): Flutter 3.29 minimum version. Thanks [diegotori](https://github.com/diegotori).
36
* **BREAKING CHANGE**: Library now requires at least Flutter version `3.29.0` or higher.

example/android/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ if (keystorePropertiesFile.exists()) {
3131

3232
android {
3333
namespace "com.example.example"
34-
compileSdk 34
34+
compileSdk 35
3535

3636
compileOptions {
3737
sourceCompatibility JavaVersion.VERSION_17

example/ios/Runner.xcodeproj/project.pbxproj

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
/* Begin PBXBuildFile section */
1010
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
1111
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
12+
34A166C4381F774F1136CB1E /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7221802D2D699A7CD6F84E88 /* Pods_RunnerTests.framework */; };
1213
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
13-
5B171717BA079CE808D1B32C /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73C604A80B929E096139088E /* Pods_RunnerTests.framework */; };
1414
65355E45871BBAC473F56EC4 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 161F52A253A901BB69307277 /* Pods_Runner.framework */; };
1515
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
1616
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
@@ -42,19 +42,19 @@
4242
/* End PBXCopyFilesBuildPhase section */
4343

4444
/* Begin PBXFileReference section */
45+
0954A2576424F826872518E5 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
4546
0EA25D90DB1772C2D6071B55 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
4647
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
4748
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
4849
161F52A253A901BB69307277 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
4950
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
5051
331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
5152
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
53+
6A161C436DA2415B3BE09974 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
5254
6AEFCF184013ED5CA996B82B /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
53-
6D5C22CEED22C7791375B03E /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
54-
73C604A80B929E096139088E /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
55+
7221802D2D699A7CD6F84E88 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
5556
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
5657
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
57-
75018BE4F219FC27188BF5C2 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
5858
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
5959
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
6060
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
@@ -63,7 +63,7 @@
6363
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
6464
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
6565
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
66-
CCE42FB5D8CBF00852B83E23 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
66+
BD33E6227D09F5D0BD034C0B /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
6767
D9EB2FAA5097BC9A403E4AC5 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
6868
/* End PBXFileReference section */
6969

@@ -80,7 +80,7 @@
8080
isa = PBXFrameworksBuildPhase;
8181
buildActionMask = 2147483647;
8282
files = (
83-
5B171717BA079CE808D1B32C /* Pods_RunnerTests.framework in Frameworks */,
83+
34A166C4381F774F1136CB1E /* Pods_RunnerTests.framework in Frameworks */,
8484
);
8585
runOnlyForDeploymentPostprocessing = 0;
8686
};
@@ -93,9 +93,9 @@
9393
D9EB2FAA5097BC9A403E4AC5 /* Pods-Runner.debug.xcconfig */,
9494
6AEFCF184013ED5CA996B82B /* Pods-Runner.release.xcconfig */,
9595
0EA25D90DB1772C2D6071B55 /* Pods-Runner.profile.xcconfig */,
96-
CCE42FB5D8CBF00852B83E23 /* Pods-RunnerTests.debug.xcconfig */,
97-
75018BE4F219FC27188BF5C2 /* Pods-RunnerTests.release.xcconfig */,
98-
6D5C22CEED22C7791375B03E /* Pods-RunnerTests.profile.xcconfig */,
96+
6A161C436DA2415B3BE09974 /* Pods-RunnerTests.debug.xcconfig */,
97+
0954A2576424F826872518E5 /* Pods-RunnerTests.release.xcconfig */,
98+
BD33E6227D09F5D0BD034C0B /* Pods-RunnerTests.profile.xcconfig */,
9999
);
100100
name = Pods;
101101
path = Pods;
@@ -105,7 +105,7 @@
105105
isa = PBXGroup;
106106
children = (
107107
161F52A253A901BB69307277 /* Pods_Runner.framework */,
108-
73C604A80B929E096139088E /* Pods_RunnerTests.framework */,
108+
7221802D2D699A7CD6F84E88 /* Pods_RunnerTests.framework */,
109109
);
110110
name = Frameworks;
111111
sourceTree = "<group>";
@@ -172,7 +172,7 @@
172172
isa = PBXNativeTarget;
173173
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
174174
buildPhases = (
175-
3FADDB6B4D6AA8657115BAF4 /* [CP] Check Pods Manifest.lock */,
175+
0CE4D917A75CFB88CE0841C7 /* [CP] Check Pods Manifest.lock */,
176176
331C807D294A63A400263BE5 /* Sources */,
177177
331C807F294A63A400263BE5 /* Resources */,
178178
ADF676FEC51290FAF51E0789 /* Frameworks */,
@@ -270,6 +270,28 @@
270270
/* End PBXResourcesBuildPhase section */
271271

272272
/* Begin PBXShellScriptBuildPhase section */
273+
0CE4D917A75CFB88CE0841C7 /* [CP] Check Pods Manifest.lock */ = {
274+
isa = PBXShellScriptBuildPhase;
275+
buildActionMask = 2147483647;
276+
files = (
277+
);
278+
inputFileListPaths = (
279+
);
280+
inputPaths = (
281+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
282+
"${PODS_ROOT}/Manifest.lock",
283+
);
284+
name = "[CP] Check Pods Manifest.lock";
285+
outputFileListPaths = (
286+
);
287+
outputPaths = (
288+
"$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
289+
);
290+
runOnlyForDeploymentPostprocessing = 0;
291+
shellPath = /bin/sh;
292+
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
293+
showEnvVarsInLog = 0;
294+
};
273295
2261669A503474CE180D7658 /* [CP] Embed Pods Frameworks */ = {
274296
isa = PBXShellScriptBuildPhase;
275297
buildActionMask = 2147483647;
@@ -303,28 +325,6 @@
303325
shellPath = /bin/sh;
304326
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
305327
};
306-
3FADDB6B4D6AA8657115BAF4 /* [CP] Check Pods Manifest.lock */ = {
307-
isa = PBXShellScriptBuildPhase;
308-
buildActionMask = 2147483647;
309-
files = (
310-
);
311-
inputFileListPaths = (
312-
);
313-
inputPaths = (
314-
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
315-
"${PODS_ROOT}/Manifest.lock",
316-
);
317-
name = "[CP] Check Pods Manifest.lock";
318-
outputFileListPaths = (
319-
);
320-
outputPaths = (
321-
"$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
322-
);
323-
runOnlyForDeploymentPostprocessing = 0;
324-
shellPath = /bin/sh;
325-
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
326-
showEnvVarsInLog = 0;
327-
};
328328
6B3BB5498CBA14DCD8E20CF8 /* [CP] Check Pods Manifest.lock */ = {
329329
isa = PBXShellScriptBuildPhase;
330330
buildActionMask = 2147483647;
@@ -488,7 +488,7 @@
488488
};
489489
331C8088294A63A400263BE5 /* Debug */ = {
490490
isa = XCBuildConfiguration;
491-
baseConfigurationReference = CCE42FB5D8CBF00852B83E23 /* Pods-RunnerTests.debug.xcconfig */;
491+
baseConfigurationReference = 6A161C436DA2415B3BE09974 /* Pods-RunnerTests.debug.xcconfig */;
492492
buildSettings = {
493493
BUNDLE_LOADER = "$(TEST_HOST)";
494494
CODE_SIGN_STYLE = Automatic;
@@ -506,7 +506,7 @@
506506
};
507507
331C8089294A63A400263BE5 /* Release */ = {
508508
isa = XCBuildConfiguration;
509-
baseConfigurationReference = 75018BE4F219FC27188BF5C2 /* Pods-RunnerTests.release.xcconfig */;
509+
baseConfigurationReference = 0954A2576424F826872518E5 /* Pods-RunnerTests.release.xcconfig */;
510510
buildSettings = {
511511
BUNDLE_LOADER = "$(TEST_HOST)";
512512
CODE_SIGN_STYLE = Automatic;
@@ -522,7 +522,7 @@
522522
};
523523
331C808A294A63A400263BE5 /* Profile */ = {
524524
isa = XCBuildConfiguration;
525-
baseConfigurationReference = 6D5C22CEED22C7791375B03E /* Pods-RunnerTests.profile.xcconfig */;
525+
baseConfigurationReference = BD33E6227D09F5D0BD034C0B /* Pods-RunnerTests.profile.xcconfig */;
526526
buildSettings = {
527527
BUNDLE_LOADER = "$(TEST_HOST)";
528528
CODE_SIGN_STYLE = Automatic;

example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
buildConfiguration = "Debug"
2727
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2828
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29+
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
2930
shouldUseLaunchSchemeArgsEnv = "YES">
3031
<MacroExpansion>
3132
<BuildableReference
@@ -54,11 +55,13 @@
5455
buildConfiguration = "Debug"
5556
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
5657
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
58+
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
5759
launchStyle = "0"
5860
useCustomWorkingDirectory = "NO"
5961
ignoresPersistentStateOnLaunch = "NO"
6062
debugDocumentVersioning = "YES"
6163
debugServiceExtension = "internal"
64+
enableGPUValidationMode = "1"
6265
allowLocationSimulation = "YES">
6366
<BuildableProductRunnable
6467
runnableDebuggingMode = "0">

example/lib/app/app.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ class _ChewieDemoState extends State<ChewieDemo> {
117117
_chewieController = ChewieController(
118118
videoPlayerController: _videoPlayerController1,
119119
autoPlay: true,
120+
zoomAndPan: true,
120121
looping: true,
121122
progressIndicatorDelay:
122123
bufferDelay != null ? Duration(milliseconds: bufferDelay!) : null,

lib/src/chewie_player.dart

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,12 @@ class ChewieController extends ChangeNotifier {
394394
cupertinoProgressColors ?? this.cupertinoProgressColors,
395395
materialProgressColors:
396396
materialProgressColors ?? this.materialProgressColors,
397+
zoomAndPan: zoomAndPan ?? this.zoomAndPan,
398+
maxScale: maxScale ?? this.maxScale,
399+
controlsSafeAreaMinimum:
400+
controlsSafeAreaMinimum ?? this.controlsSafeAreaMinimum,
401+
transformationController:
402+
transformationController ?? this.transformationController,
397403
materialSeekButtonFadeDuration:
398404
materialSeekButtonFadeDuration ?? this.materialSeekButtonFadeDuration,
399405
materialSeekButtonSize:
@@ -504,10 +510,14 @@ class ChewieController extends ChangeNotifier {
504510
/// Whether or not to show the controls at all
505511
final bool showControls;
506512

507-
/// Controller to pass into the [InteractiveViewer] component
513+
/// Controller to pass into the [InteractiveViewer] component.
514+
/// If it is required to control the transformation only via the controller,
515+
/// `zoomAndPan` should be set to false.
508516
final TransformationController? transformationController;
509517

510-
/// Whether or not to allow zooming and panning
518+
/// Whether or not to allow zooming and panning.
519+
/// This can still be false, and the `transformationController` can be used to control the
520+
/// transformation.
511521
final bool zoomAndPan;
512522

513523
/// Max scale when zooming

0 commit comments

Comments
 (0)