From 60a1f2e8e0bb291860fb2c384ab1d080941fadce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milena=20Rode-Kotz=C3=A9?= Date: Mon, 22 Jan 2024 23:12:52 +0100 Subject: [PATCH] Fix padding for ipads --- ios/Podfile.lock | 2 +- ios/Runner.xcodeproj/project.pbxproj | 112 +++++++++--------- .../stream_card.dart | 1 - .../course_detail_view.dart | 25 ++-- .../download_content_view.dart | 44 ++++--- .../pinned_courses_content_view.dart | 44 ++++--- pubspec.lock | 8 +- 7 files changed, 130 insertions(+), 106 deletions(-) rename lib/views/course_view/{course_detail_view => components}/stream_card.dart (99%) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 24fc6e2c..189037c7 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -168,7 +168,7 @@ SPEC CHECKSUMS: url_launcher_ios: bbd758c6e7f9fd7b5b1d4cde34d2b95fcce5e812 video_player_avfoundation: 02011213dab73ae3687df27ce441fbbcc82b5579 wakelock_plus: 8b09852c8876491e4b6d179e17dfe2a0b5f60d47 - webview_flutter_wkwebview: 4f3e50f7273d31e5500066ed267e3ae4309c5ae4 + webview_flutter_wkwebview: be0f0d33777f1bfd0c9fdcb594786704dbf65f36 PODFILE CHECKSUM: 7be2f5f74864d463a8ad433546ed1de7e0f29aef diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 70d98d50..b3b007a3 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -10,12 +10,12 @@ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 62D1E46B709B2778DF31DFAE /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EADC4D86CCF5F2DFEEC652C6 /* Pods_RunnerTests.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 802D8839F599B1F959934A1D /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BD17F8647ECF9A56D2F9859D /* Pods_RunnerTests.framework */; }; + 86B5DAAFB0220E177439FF31 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B775987C01F5E391C600A30F /* Pods_Runner.framework */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - E6F9F153083F25BE411AB644 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 775B1A9CB7B837FAE87A34D7 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -42,18 +42,16 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0C7BDB05D2D09BAF54CECA37 /* 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 = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 1B89595BA32A90DA5A260150 /* 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 = ""; }; - 201AF003F1D58C8A2BDB6066 /* 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 = ""; }; - 300E5FB3FBC5CD97F4D031B0 /* 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 = ""; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 46DD409E6BE2D0D6853CC1BA /* 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 = ""; }; + 4E66554891BFAEC9BDB682C7 /* 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 = ""; }; + 531A2EC852B38B5C8B4EA5E7 /* 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 = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 775B1A9CB7B837FAE87A34D7 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; @@ -62,9 +60,11 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9A07DE4E2D6CC316FEC35B35 /* 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 = ""; }; - BD17F8647ECF9A56D2F9859D /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E7353067ADE023F80892FF94 /* 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 = ""; }; + B64C4C5BC3480AB88DC7494F /* 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 = ""; }; + B775987C01F5E391C600A30F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D52501E50B2494E602F53E14 /* 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 = ""; }; + DDBE2944B9CF9749C9AC162E /* 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 = ""; }; + EADC4D86CCF5F2DFEEC652C6 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -72,7 +72,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E6F9F153083F25BE411AB644 /* Pods_Runner.framework in Frameworks */, + 86B5DAAFB0220E177439FF31 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -80,7 +80,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 802D8839F599B1F959934A1D /* Pods_RunnerTests.framework in Frameworks */, + 62D1E46B709B2778DF31DFAE /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -98,21 +98,21 @@ 78FEB0DCF6A80DA53C445FF1 /* Pods */ = { isa = PBXGroup; children = ( - 201AF003F1D58C8A2BDB6066 /* Pods-Runner.debug.xcconfig */, - 1B89595BA32A90DA5A260150 /* Pods-Runner.release.xcconfig */, - E7353067ADE023F80892FF94 /* Pods-Runner.profile.xcconfig */, - 9A07DE4E2D6CC316FEC35B35 /* Pods-RunnerTests.debug.xcconfig */, - 300E5FB3FBC5CD97F4D031B0 /* Pods-RunnerTests.release.xcconfig */, - 0C7BDB05D2D09BAF54CECA37 /* Pods-RunnerTests.profile.xcconfig */, + D52501E50B2494E602F53E14 /* Pods-Runner.debug.xcconfig */, + 4E66554891BFAEC9BDB682C7 /* Pods-Runner.release.xcconfig */, + B64C4C5BC3480AB88DC7494F /* Pods-Runner.profile.xcconfig */, + DDBE2944B9CF9749C9AC162E /* Pods-RunnerTests.debug.xcconfig */, + 46DD409E6BE2D0D6853CC1BA /* Pods-RunnerTests.release.xcconfig */, + 531A2EC852B38B5C8B4EA5E7 /* Pods-RunnerTests.profile.xcconfig */, ); path = Pods; sourceTree = ""; }; - 8464D627BCAF342886960CC6 /* Frameworks */ = { + 912CD9F350CD6EDE40745239 /* Frameworks */ = { isa = PBXGroup; children = ( - 775B1A9CB7B837FAE87A34D7 /* Pods_Runner.framework */, - BD17F8647ECF9A56D2F9859D /* Pods_RunnerTests.framework */, + B775987C01F5E391C600A30F /* Pods_Runner.framework */, + EADC4D86CCF5F2DFEEC652C6 /* Pods_RunnerTests.framework */, ); name = Frameworks; sourceTree = ""; @@ -136,7 +136,7 @@ 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, 78FEB0DCF6A80DA53C445FF1 /* Pods */, - 8464D627BCAF342886960CC6 /* Frameworks */, + 912CD9F350CD6EDE40745239 /* Frameworks */, ); sourceTree = ""; }; @@ -171,7 +171,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - CE72DBDBDE0F0117AD18EDA1 /* [CP] Check Pods Manifest.lock */, + 03E03872344339D02E9C1445 /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, FF22FF673DB1C30D7D5D59A8 /* Frameworks */, @@ -190,14 +190,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 7DADE08A74ACA37AB14483AD /* [CP] Check Pods Manifest.lock */, + F4970B688A0057C32C3283C1 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - BDDC2DEC4E39370FFD9AA064 /* [CP] Embed Pods Frameworks */, + 11D2E05FEFDA3F77A431400B /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -269,77 +269,77 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + 03E03872344339D02E9C1445 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Thin Binary"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + 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"; + showEnvVarsInLog = 0; }; - 7DADE08A74ACA37AB14483AD /* [CP] Check Pods Manifest.lock */ = { + 11D2E05FEFDA3F77A431400B /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - 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"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); - name = "Run Script"; + name = "Thin Binary"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - BDDC2DEC4E39370FFD9AA064 /* [CP] Embed Pods Frameworks */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + inputPaths = ( ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + name = "Run Script"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - CE72DBDBDE0F0117AD18EDA1 /* [CP] Check Pods Manifest.lock */ = { + F4970B688A0057C32C3283C1 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -354,7 +354,7 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -488,7 +488,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9A07DE4E2D6CC316FEC35B35 /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = DDBE2944B9CF9749C9AC162E /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -506,7 +506,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 300E5FB3FBC5CD97F4D031B0 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 46DD409E6BE2D0D6853CC1BA /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -522,7 +522,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0C7BDB05D2D09BAF54CECA37 /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 531A2EC852B38B5C8B4EA5E7 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; diff --git a/lib/views/course_view/course_detail_view/stream_card.dart b/lib/views/course_view/components/stream_card.dart similarity index 99% rename from lib/views/course_view/course_detail_view/stream_card.dart rename to lib/views/course_view/components/stream_card.dart index 24e51e4c..3dd2bccc 100644 --- a/lib/views/course_view/course_detail_view/stream_card.dart +++ b/lib/views/course_view/components/stream_card.dart @@ -34,7 +34,6 @@ class StreamCardState extends ConsumerState { Navigator.push( context, MaterialPageRoute( - //TODO - is chat enabled in live mode? builder: (context) => VideoPlayerPage( stream: widget.stream, ), diff --git a/lib/views/course_view/course_detail_view/course_detail_view.dart b/lib/views/course_view/course_detail_view/course_detail_view.dart index 756c5612..8dd90ce7 100644 --- a/lib/views/course_view/course_detail_view/course_detail_view.dart +++ b/lib/views/course_view/course_detail_view/course_detail_view.dart @@ -4,7 +4,7 @@ import 'package:gocast_mobile/base/networking/api/gocast/api_v2.pbgrpc.dart'; import 'package:gocast_mobile/providers.dart'; import 'package:gocast_mobile/views/components/custom_search_top_nav_bar_back_button.dart'; import 'package:gocast_mobile/views/course_view/components/pin_button.dart'; -import 'package:gocast_mobile/views/course_view/course_detail_view/stream_card.dart'; +import 'package:gocast_mobile/views/course_view/components/stream_card.dart'; class CourseDetail extends ConsumerStatefulWidget { final String title; @@ -109,17 +109,22 @@ class CourseDetailState extends ConsumerState { List thumbnails, ScaffoldMessengerState scaffoldMessenger, ) { + double width = MediaQuery.of(context).size.width; + bool isTablet = width >= 600 ? true : false; return Expanded( child: courseStreams.isNotEmpty - ? ListView.builder( - itemCount: courseStreams.length, - padding: const EdgeInsets.symmetric(horizontal: 10.0), - itemBuilder: (context, index) => _streamCardBuilder( - context, - index, - courseStreams, - thumbnails, - scaffoldMessenger, + ? Padding( + padding: EdgeInsets.symmetric(horizontal: isTablet ? width * 0.15 : 0), + child: ListView.builder( + itemCount: courseStreams.length, + padding: const EdgeInsets.symmetric(horizontal: 10.0), + itemBuilder: (context, index) => _streamCardBuilder( + context, + index, + courseStreams, + thumbnails, + scaffoldMessenger, + ), ), ) : const Center(child: Text('No courses available')), diff --git a/lib/views/course_view/downloaded_courses_view/download_content_view.dart b/lib/views/course_view/downloaded_courses_view/download_content_view.dart index 92f8d73a..ff5c84b3 100644 --- a/lib/views/course_view/downloaded_courses_view/download_content_view.dart +++ b/lib/views/course_view/downloaded_courses_view/download_content_view.dart @@ -28,6 +28,7 @@ class DownloadCoursesContentView extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final TextEditingController searchController = TextEditingController(); + double width = MediaQuery.of(context).size.width; return BaseView( customAppBar: CustomSearchTopNavBar( @@ -45,25 +46,34 @@ class DownloadCoursesContentView extends ConsumerWidget { }, child: Padding( padding: const EdgeInsets.only(left: 8.0, right: 8.0, top: 8.0), - child: ListView.builder( - itemCount: videoCards.isEmpty ? 1 : videoCards.length, - itemBuilder: (BuildContext context, int index) { - if (videoCards.isEmpty) { - return const Center( - child: Padding( - padding: AppPadding.sectionPadding, - child: Center( - child: Padding( - padding: EdgeInsets.symmetric(vertical: 295.0), - child: Text('No Downloaded Courses'), + child: Padding( + padding: EdgeInsets.symmetric( + horizontal: + width >= 600 ? MediaQuery.of(context).size.width * 0.15 : 0, + ), + child: ListView.builder( + itemCount: videoCards.isEmpty ? 1 : videoCards.length, + itemBuilder: (BuildContext context, int index) { + if (videoCards.isEmpty) { + return const Center( + child: Padding( + padding: AppPadding.sectionPadding, + child: Center( + child: Padding( + padding: EdgeInsets.symmetric(vertical: 295.0), + child: Text('No Downloaded Courses'), + ), ), ), - ), - ); - } else { - return videoCards[index]; - } - }, + ); + } else { + return Padding( + padding: EdgeInsets.only(bottom: width * 0.02), + child: videoCards[index], + ); + } + }, + ), ), ), ), diff --git a/lib/views/course_view/pinned_courses_view/pinned_courses_content_view.dart b/lib/views/course_view/pinned_courses_view/pinned_courses_content_view.dart index 47ce2cc0..ad4178b1 100644 --- a/lib/views/course_view/pinned_courses_view/pinned_courses_content_view.dart +++ b/lib/views/course_view/pinned_courses_view/pinned_courses_content_view.dart @@ -28,6 +28,7 @@ class PinnedCoursesContentView extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { TextEditingController searchController = TextEditingController(); + double width = MediaQuery.of(context).size.width; return BaseView( customAppBar: CustomSearchTopNavBar( @@ -36,25 +37,34 @@ class PinnedCoursesContentView extends ConsumerWidget { ), child: Padding( padding: const EdgeInsets.only(left: 8.0, right: 8.0, top: 8.0), - child: ListView.builder( - itemCount: pinnedCourseCards.isEmpty ? 1 : pinnedCourseCards.length, - itemBuilder: (BuildContext context, int index) { - if (pinnedCourseCards.isEmpty) { - return const Center( - child: Padding( - padding: AppPadding.sectionPadding, - child: Center( - child: Padding( - padding: EdgeInsets.symmetric(vertical: 295.0), - child: Text('No Pinned Courses'), + child: Padding( + padding: EdgeInsets.symmetric( + horizontal: + width >= 600 ? MediaQuery.of(context).size.width * 0.15 : 0, + ), + child: ListView.builder( + itemCount: pinnedCourseCards.isEmpty ? 1 : pinnedCourseCards.length, + itemBuilder: (BuildContext context, int index) { + if (pinnedCourseCards.isEmpty) { + return const Center( + child: Padding( + padding: AppPadding.sectionPadding, + child: Center( + child: Padding( + padding: EdgeInsets.symmetric(vertical: 295.0), + child: Text('No Pinned Courses'), + ), ), ), - ), - ); - } else { - return pinnedCourseCards[index]; - } - }, + ); + } else { + return Padding( + padding: EdgeInsets.only(bottom: width * 0.02), + child: pinnedCourseCards[index], + ); + } + }, + ), ), ), ); diff --git a/pubspec.lock b/pubspec.lock index 07ac0877..8f1d4f5a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -889,10 +889,10 @@ packages: dependency: transitive description: name: webview_flutter_wkwebview - sha256: "4d062ad505390ecef1c4bfb6001cd857a51e00912cc9dfb66edb1886a9ebd80c" + sha256: b99ca8d8bae9c6b43d568218691aa537fb0aeae1d7d34eadf112a6aa36d26506 url: "https://pub.dev" source: hosted - version: "3.10.2" + version: "3.11.0" win32: dependency: transitive description: @@ -918,5 +918,5 @@ packages: source: hosted version: "6.5.0" sdks: - dart: ">=3.2.0 <4.0.0" - flutter: ">=3.16.0" + dart: ">=3.2.3 <4.0.0" + flutter: ">=3.16.6"