From 3adcdc929a44ac22343a70c2ad4b28400104c01d Mon Sep 17 00:00:00 2001 From: Eric Windmill Date: Wed, 12 Nov 2025 11:46:47 -0800 Subject: [PATCH 01/25] 3.38 / 3.10 (#2742) This PR makes samples pass CI when 3.10 is released. ## Pre-launch Checklist - [x] I read the [Flutter Style Guide] _recently_, and have followed its advice. - [x] I signed the [CLA]. - [x] I read the [Contributors Guide]. - [x] I have added sample code updates to the [changelog]. - [x] I updated/added relevant documentation (doc comments with `///`). --- place_tracker/lib/place_map.dart | 15 ++- .../lib/src/image_basic_message_channel.dart | 3 +- platform_design/lib/main.dart | 3 +- platform_design/lib/news_tab.dart | 4 +- platform_design/lib/utils.dart | 3 +- provider_shopper/lib/models/cart.dart | 3 +- simplistic_editor/lib/basic_text_field.dart | 6 +- .../lib/basic_text_input_client.dart | 99 +++++++++---------- simplistic_editor/lib/replacements.dart | 28 ++---- testing_app/integration_test/perf_test.dart | 6 +- testing_app/lib/screens/favorites.dart | 3 +- testing_app/lib/screens/home.dart | 3 +- testing_app/test/favorites_test.dart | 4 +- 13 files changed, 79 insertions(+), 101 deletions(-) diff --git a/place_tracker/lib/place_map.dart b/place_tracker/lib/place_map.dart index 10dac39e4..0d6a88425 100644 --- a/place_tracker/lib/place_map.dart +++ b/place_tracker/lib/place_map.dart @@ -273,7 +273,9 @@ class _PlaceMapState extends State { newConfiguration.selectedCategory) { // If the configuration change is only a category change, just update // the marker visibilities. - await _showPlacesForSelectedCategory(newConfiguration.selectedCategory); + await _showPlacesForSelectedCategory( + newConfiguration.selectedCategory, + ); } else { // At this point, we know the places have been updated from the list // view. We need to reconfigure the map to respect the updates. @@ -343,7 +345,10 @@ class _PlaceMapState extends State { } Future _switchSelectedCategory(PlaceCategory category) async { - Provider.of(context, listen: false).setSelectedCategory(category); + Provider.of( + context, + listen: false, + ).setSelectedCategory(category); await _showPlacesForSelectedCategory(category); } @@ -361,7 +366,11 @@ class _PlaceMapState extends State { : null, ), ); - _updateMarker(marker: marker, updatedMarker: updatedMarker, place: place); + _updateMarker( + marker: marker, + updatedMarker: updatedMarker, + place: place, + ); }); } diff --git a/platform_channels/lib/src/image_basic_message_channel.dart b/platform_channels/lib/src/image_basic_message_channel.dart index 19d03a0f6..58c5724af 100644 --- a/platform_channels/lib/src/image_basic_message_channel.dart +++ b/platform_channels/lib/src/image_basic_message_channel.dart @@ -15,8 +15,7 @@ class PlatformImageFetcher { /// Method responsible for providing the platform image. static Future getImage() async { - final reply = - await _basicMessageChannel.send('getImage') as Uint8List?; + final reply = await _basicMessageChannel.send('getImage') as Uint8List?; if (reply == null) { throw PlatformException( code: 'Error', diff --git a/platform_design/lib/main.dart b/platform_design/lib/main.dart index 19efc282f..cc1ef223d 100644 --- a/platform_design/lib/main.dart +++ b/platform_design/lib/main.dart @@ -56,8 +56,7 @@ class PlatformAdaptingHomePage extends StatefulWidget { _PlatformAdaptingHomePageState(); } -class _PlatformAdaptingHomePageState - extends State { +class _PlatformAdaptingHomePageState extends State { // This app keeps a global key for the songs tab because it owns a bunch of // data. Since changing platform re-parents those tabs into different // scaffolds, keeping a global key to it lets this app keep that tab's data as diff --git a/platform_design/lib/news_tab.dart b/platform_design/lib/news_tab.dart index 90d0de823..e4415d3b3 100644 --- a/platform_design/lib/news_tab.dart +++ b/platform_design/lib/news_tab.dart @@ -55,9 +55,7 @@ class _NewsTabState extends State { child: InkWell( // Make it splash on Android. It would happen automatically if this // was a real card but this is just a demo. Skip the splash on iOS. - onTap: defaultTargetPlatform == TargetPlatform.iOS - ? null - : () {}, + onTap: defaultTargetPlatform == TargetPlatform.iOS ? null : () {}, child: Padding( padding: const EdgeInsets.all(12.0), child: Row( diff --git a/platform_design/lib/utils.dart b/platform_design/lib/utils.dart index ca41b15b7..c26417fd5 100644 --- a/platform_design/lib/utils.dart +++ b/platform_design/lib/utils.dart @@ -39,8 +39,7 @@ String generateRandomHeadline() { 2 => '$artist releases ${capitalizePair(wordPairIterator.first)}', 3 => '$artist talks about his ${nouns[_random.nextInt(nouns.length)]}', 4 => '$artist talks about her ${nouns[_random.nextInt(nouns.length)]}', - 5 => - '$artist talks about their ${nouns[_random.nextInt(nouns.length)]}', + 5 => '$artist talks about their ${nouns[_random.nextInt(nouns.length)]}', 6 => '$artist says their music is inspired by ${wordPairIterator.first.join(' ')}', 7 => diff --git a/provider_shopper/lib/models/cart.dart b/provider_shopper/lib/models/cart.dart index 51f2888a4..d416b0847 100644 --- a/provider_shopper/lib/models/cart.dart +++ b/provider_shopper/lib/models/cart.dart @@ -24,8 +24,7 @@ class CartModel extends ChangeNotifier { } /// List of items in the cart. - List get items => - _itemIds.map((id) => _catalog.getById(id)).toList(); + List get items => _itemIds.map((id) => _catalog.getById(id)).toList(); /// The current total price of all items. int get totalPrice => diff --git a/simplistic_editor/lib/basic_text_field.dart b/simplistic_editor/lib/basic_text_field.dart index f09774082..ef57695b7 100644 --- a/simplistic_editor/lib/basic_text_field.dart +++ b/simplistic_editor/lib/basic_text_field.dart @@ -135,8 +135,7 @@ class _BasicTextFieldState extends State { _textSelectionControls = cupertinoTextSelectionHandleControls; case TargetPlatform.macOS: // ignore: deprecated_member_use - _textSelectionControls = - cupertinoDesktopTextSelectionHandleControls; + _textSelectionControls = cupertinoDesktopTextSelectionHandleControls; case TargetPlatform.android: case TargetPlatform.fuchsia: // ignore: deprecated_member_use @@ -153,8 +152,7 @@ class _BasicTextFieldState extends State { child: GestureDetector( behavior: HitTestBehavior.translucent, onPanStart: (dragStartDetails) => _onDragStart(dragStartDetails), - onPanUpdate: (dragUpdateDetails) => - _onDragUpdate(dragUpdateDetails), + onPanUpdate: (dragUpdateDetails) => _onDragUpdate(dragUpdateDetails), onSecondaryTapDown: (secondaryTapDownDetails) { _renderEditable.selectWordsInRange( from: secondaryTapDownDetails.globalPosition, diff --git a/simplistic_editor/lib/basic_text_input_client.dart b/simplistic_editor/lib/basic_text_input_client.dart index f51d7a166..94af99e7d 100644 --- a/simplistic_editor/lib/basic_text_input_client.dart +++ b/simplistic_editor/lib/basic_text_input_client.dart @@ -342,40 +342,40 @@ class BasicTextInputClientState extends State } // These actions have yet to be implemented for this sample. - static final Map> - _unsupportedActions = >{ - DeleteToNextWordBoundaryIntent: DoNothingAction(consumesKey: false), - DeleteToLineBreakIntent: DoNothingAction(consumesKey: false), - ExtendSelectionToNextWordBoundaryIntent: DoNothingAction( - consumesKey: false, - ), - ExtendSelectionToNextParagraphBoundaryOrCaretLocationIntent: - DoNothingAction(consumesKey: false), - ExtendSelectionToLineBreakIntent: DoNothingAction(consumesKey: false), - ExtendSelectionVerticallyToAdjacentLineIntent: DoNothingAction( - consumesKey: false, - ), - ExtendSelectionVerticallyToAdjacentPageIntent: DoNothingAction( - consumesKey: false, - ), - ExtendSelectionToNextParagraphBoundaryIntent: DoNothingAction( - consumesKey: false, - ), - ExtendSelectionToDocumentBoundaryIntent: DoNothingAction( - consumesKey: false, - ), - ExtendSelectionByPageIntent: DoNothingAction(consumesKey: false), - ExpandSelectionToDocumentBoundaryIntent: DoNothingAction( - consumesKey: false, - ), - ExpandSelectionToLineBreakIntent: DoNothingAction(consumesKey: false), - ScrollToDocumentBoundaryIntent: DoNothingAction(consumesKey: false), - RedoTextIntent: DoNothingAction(consumesKey: false), - ReplaceTextIntent: DoNothingAction(consumesKey: false), - UndoTextIntent: DoNothingAction(consumesKey: false), - UpdateSelectionIntent: DoNothingAction(consumesKey: false), - TransposeCharactersIntent: DoNothingAction(consumesKey: false), - }; + static final Map> _unsupportedActions = + >{ + DeleteToNextWordBoundaryIntent: DoNothingAction(consumesKey: false), + DeleteToLineBreakIntent: DoNothingAction(consumesKey: false), + ExtendSelectionToNextWordBoundaryIntent: DoNothingAction( + consumesKey: false, + ), + ExtendSelectionToNextParagraphBoundaryOrCaretLocationIntent: + DoNothingAction(consumesKey: false), + ExtendSelectionToLineBreakIntent: DoNothingAction(consumesKey: false), + ExtendSelectionVerticallyToAdjacentLineIntent: DoNothingAction( + consumesKey: false, + ), + ExtendSelectionVerticallyToAdjacentPageIntent: DoNothingAction( + consumesKey: false, + ), + ExtendSelectionToNextParagraphBoundaryIntent: DoNothingAction( + consumesKey: false, + ), + ExtendSelectionToDocumentBoundaryIntent: DoNothingAction( + consumesKey: false, + ), + ExtendSelectionByPageIntent: DoNothingAction(consumesKey: false), + ExpandSelectionToDocumentBoundaryIntent: DoNothingAction( + consumesKey: false, + ), + ExpandSelectionToLineBreakIntent: DoNothingAction(consumesKey: false), + ScrollToDocumentBoundaryIntent: DoNothingAction(consumesKey: false), + RedoTextIntent: DoNothingAction(consumesKey: false), + ReplaceTextIntent: DoNothingAction(consumesKey: false), + UndoTextIntent: DoNothingAction(consumesKey: false), + UpdateSelectionIntent: DoNothingAction(consumesKey: false), + TransposeCharactersIntent: DoNothingAction(consumesKey: false), + }; /// Keyboard text editing actions. // The Handling of the default text editing shortcuts with deltas @@ -582,9 +582,7 @@ class BasicTextInputClientState extends State void _updateCaretRectIfNeeded() { final TextSelection? selection = renderEditable.selection; - if (selection == null || - !selection.isValid || - !selection.isCollapsed) { + if (selection == null || !selection.isValid || !selection.isCollapsed) { return; } final TextPosition currentTextPosition = TextPosition( @@ -982,9 +980,7 @@ class BasicTextInputClientState extends State final InlineSpan span = renderEditable.text!; final String prevText = span.toPlainText(); final String currText = textEditingValue.text; - if (prevText != currText || - !selection.isValid || - selection.isCollapsed) { + if (prevText != currText || !selection.isValid || selection.isCollapsed) { return _GlyphHeights( start: renderEditable.preferredLineHeight, end: renderEditable.preferredLineHeight, @@ -994,13 +990,12 @@ class BasicTextInputClientState extends State final String selectedGraphemes = selection.textInside(currText); final int firstSelectedGraphemeExtent = selectedGraphemes.characters.first.length; - final Rect? startCharacterRect = renderEditable - .getRectForComposingRange( - TextRange( - start: selection.start, - end: selection.start + firstSelectedGraphemeExtent, - ), - ); + final Rect? startCharacterRect = renderEditable.getRectForComposingRange( + TextRange( + start: selection.start, + end: selection.start + firstSelectedGraphemeExtent, + ), + ); final int lastSelectedGraphemeExtent = selectedGraphemes.characters.last.length; final Rect? endCharacterRect = renderEditable.getRectForComposingRange( @@ -1010,8 +1005,7 @@ class BasicTextInputClientState extends State ), ); return _GlyphHeights( - start: - startCharacterRect?.height ?? renderEditable.preferredLineHeight, + start: startCharacterRect?.height ?? renderEditable.preferredLineHeight, end: endCharacterRect?.height ?? renderEditable.preferredLineHeight, ); } @@ -1095,9 +1089,7 @@ class BasicTextInputClientState extends State } return !textEditingValue.selection.isCollapsed && - textEditingValue.selection - .textInside(textEditingValue.text) - .trim() != + textEditingValue.selection.textInside(textEditingValue.text).trim() != ''; } @@ -1160,8 +1152,7 @@ class BasicTextInputClientState extends State startHandleLayerLink: _startHandleLayerLink, endHandleLayerLink: _endHandleLayerLink, inlineSpan: _buildTextSpan(), - value: - _value, // We pass value.selection to RenderEditable. + value: _value, // We pass value.selection to RenderEditable. cursorColor: Colors.blue, backgroundCursorColor: Colors.grey[100], showCursor: ValueNotifier(_hasFocus), diff --git a/simplistic_editor/lib/replacements.dart b/simplistic_editor/lib/replacements.dart index f868f7280..6cbdef391 100644 --- a/simplistic_editor/lib/replacements.dart +++ b/simplistic_editor/lib/replacements.dart @@ -131,16 +131,14 @@ class TextEditingInlineSpanReplacement { return copy( range: TextRange(start: range.start, end: range.end), ); - } else if (range.start >= insertionOffset && - range.end > insertionOffset) { + } else if (range.start >= insertionOffset && range.end > insertionOffset) { return copy( range: TextRange( start: range.start + insertedLength, end: range.end + insertedLength, ), ); - } else if (range.start < insertionOffset && - range.end > insertionOffset) { + } else if (range.start < insertionOffset && range.end > insertionOffset) { return copy( range: TextRange( start: range.start, @@ -167,8 +165,7 @@ class TextEditingInlineSpanReplacement { : delta.replacementText.length - delta.textReplaced.length; if (range.start >= replacedRange.start && - (range.start < replacedRange.end && - range.end > replacedRange.end)) { + (range.start < replacedRange.end && range.end > replacedRange.end)) { if (replacementShortenedText) { return [ copy( @@ -327,8 +324,7 @@ class TextEditingInlineSpanReplacement { } else if (range.end <= removalRange.start && range.end < removalRange.end) { return [this]; - } else if (removalRange.isCollapsed && - range.end == removalRange.start) { + } else if (removalRange.isCollapsed && range.end == removalRange.start) { return [this]; } @@ -728,8 +724,7 @@ class ReplacementTextEditingController extends TextEditingController { final List toRemove = []; final List toAdd = []; - for (final TextEditingInlineSpanReplacement replacement - in replacements!) { + for (final TextEditingInlineSpanReplacement replacement in replacements!) { if (replacement.range.end == selection.start) { TextStyle? replacementStyle = (replacement.generator('', const TextRange.collapsed(0)) @@ -747,8 +742,7 @@ class ReplacementTextEditingController extends TextEditingController { replacements!.remove(replacementToRemove); } - for (final TextEditingInlineSpanReplacement - replacementWithExpandDisabled + for (final TextEditingInlineSpanReplacement replacementWithExpandDisabled in toAdd) { replacements!.add(replacementWithExpandDisabled); } @@ -763,8 +757,7 @@ class ReplacementTextEditingController extends TextEditingController { // should be enabled. final List stylesAtSelection = []; - for (final TextEditingInlineSpanReplacement replacement - in replacements!) { + for (final TextEditingInlineSpanReplacement replacement in replacements!) { if (selection.isCollapsed) { if (math.max(replacement.range.start, selection.start) <= math.min(replacement.range.end, selection.end)) { @@ -818,8 +811,8 @@ class ReplacementTextEditingController extends TextEditingController { math.min(replacement.range.end, removalRange.end)) && replacementStyle != null) { if (replacementStyle == attribute!) { - List? newReplacements = - replacement.removeRange(removalRange); + List? newReplacements = replacement + .removeRange(removalRange); if (newReplacements != null) { if (newReplacements.length == 1) { @@ -845,8 +838,7 @@ class ReplacementTextEditingController extends TextEditingController { replacements!.add(replacementToAdd); } - for (TextEditingInlineSpanReplacement replacementToRemove - in toRemove) { + for (TextEditingInlineSpanReplacement replacementToRemove in toRemove) { replacements!.remove(replacementToRemove); } } diff --git a/testing_app/integration_test/perf_test.dart b/testing_app/integration_test/perf_test.dart index 20e4d9d18..4536de123 100644 --- a/testing_app/integration_test/perf_test.dart +++ b/testing_app/integration_test/perf_test.dart @@ -9,13 +9,11 @@ import 'package:testing_app/main.dart'; void main() { group('Testing App Performance Tests', () { - final binding = - IntegrationTestWidgetsFlutterBinding.ensureInitialized(); + final binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized(); // The fullyLive frame policy simulates // the way Flutter responds to animations. - binding.framePolicy = - LiveTestWidgetsFlutterBindingFramePolicy.fullyLive; + binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive; testWidgets('Scrolling test', (tester) async { await tester.pumpWidget(const TestingApp()); diff --git a/testing_app/lib/screens/favorites.dart b/testing_app/lib/screens/favorites.dart index 5aaa28864..7db6a7c12 100644 --- a/testing_app/lib/screens/favorites.dart +++ b/testing_app/lib/screens/favorites.dart @@ -41,8 +41,7 @@ class FavoriteItemTile extends StatelessWidget { padding: const EdgeInsets.all(8.0), child: ListTile( leading: CircleAvatar( - backgroundColor: - Colors.primaries[itemNo % Colors.primaries.length], + backgroundColor: Colors.primaries[itemNo % Colors.primaries.length], ), title: Text('Item $itemNo', key: Key('favorites_text_$itemNo')), trailing: IconButton( diff --git a/testing_app/lib/screens/home.dart b/testing_app/lib/screens/home.dart index efe535e3c..2eac461db 100644 --- a/testing_app/lib/screens/home.dart +++ b/testing_app/lib/screens/home.dart @@ -52,8 +52,7 @@ class ItemTile extends StatelessWidget { padding: const EdgeInsets.all(8.0), child: ListTile( leading: CircleAvatar( - backgroundColor: - Colors.primaries[itemNo % Colors.primaries.length], + backgroundColor: Colors.primaries[itemNo % Colors.primaries.length], ), title: Text('Item $itemNo', key: Key('text_$itemNo')), trailing: IconButton( diff --git a/testing_app/test/favorites_test.dart b/testing_app/test/favorites_test.dart index f89815a99..c1344cb82 100644 --- a/testing_app/test/favorites_test.dart +++ b/testing_app/test/favorites_test.dart @@ -52,9 +52,7 @@ void main() { await tester.pumpAndSettle(); // Get the total number of items available. - final totalItems = tester - .widgetList(find.byIcon(Icons.close)) - .length; + final totalItems = tester.widgetList(find.byIcon(Icons.close)).length; // Remove one item. await tester.tap(find.byIcon(Icons.close).first); From 460d6f9b08628c798ed9e9dded01f065b5d5534c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 19:20:56 +0100 Subject: [PATCH 02/25] Bump actions/checkout from 4.2.2 to 5.0.1 (#2744) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 5.0.1.
Release notes

Sourced from actions/checkout's releases.

v5.0.1

What's Changed

Full Changelog: https://github.com/actions/checkout/compare/v5...v5.0.1

v5.0.0

What's Changed

⚠️ Minimum Compatible Runner Version

v2.327.1
Release Notes

Make sure your runner is updated to this version or newer to use this release.

Full Changelog: https://github.com/actions/checkout/compare/v4...v5.0.0

v4.3.1

What's Changed

Full Changelog: https://github.com/actions/checkout/compare/v4...v4.3.1

v4.3.0

What's Changed

New Contributors

Full Changelog: https://github.com/actions/checkout/compare/v4...v4.3.0

Changelog

Sourced from actions/checkout's changelog.

Changelog

V5.0.0

V4.3.0

v4.2.2

v4.2.1

v4.2.0

v4.1.7

v4.1.6

v4.1.5

v4.1.4

v4.1.3

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=4.2.2&new-version=5.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/beta.yml | 6 +++--- .github/workflows/build-android.yml | 2 +- .github/workflows/build-ios.yml | 2 +- .github/workflows/gemini-cli.yml | 4 ++-- .github/workflows/gemini-issue-automated-triage.yml | 2 +- .github/workflows/gemini-issue-scheduled-triage.yml | 2 +- .github/workflows/gemini-pr-review.yml | 2 +- .github/workflows/main.yml | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index 967722d4a..3f6db2846 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -26,7 +26,7 @@ jobs: matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 with: distribution: 'zulu' @@ -42,7 +42,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'flutter/samples' steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 with: distribution: 'zulu' @@ -58,7 +58,7 @@ jobs: # runs-on: macos-latest # if: github.repository == 'flutter/samples' # steps: - # - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + # - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # with: # distribution: 'zulu' diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index c1f0ea58e..cea3dca0d 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'flutter/samples' steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 with: distribution: 'zulu' diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 0ea482dc3..4f4d69726 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 with: distribution: 'zulu' diff --git a/.github/workflows/gemini-cli.yml b/.github/workflows/gemini-cli.yml index a07fa336c..7298c3b95 100644 --- a/.github/workflows/gemini-cli.yml +++ b/.github/workflows/gemini-cli.yml @@ -144,7 +144,7 @@ jobs: - name: 'Checkout PR branch' if: |- ${{ steps.get_context.outputs.is_pr == 'true' }} - uses: 'actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd' # ratchet:actions/checkout@v4 with: token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}' repository: '${{ github.repository }}' @@ -154,7 +154,7 @@ jobs: - name: 'Checkout main branch' if: |- ${{ steps.get_context.outputs.is_pr == 'false' }} - uses: 'actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd' # ratchet:actions/checkout@v4 with: token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}' repository: '${{ github.repository }}' diff --git a/.github/workflows/gemini-issue-automated-triage.yml b/.github/workflows/gemini-issue-automated-triage.yml index 81da45698..032dfdbfb 100644 --- a/.github/workflows/gemini-issue-automated-triage.yml +++ b/.github/workflows/gemini-issue-automated-triage.yml @@ -44,7 +44,7 @@ jobs: steps: - name: 'Checkout repository' - uses: 'actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd' # ratchet:actions/checkout@v4 - name: 'Generate GitHub App Token' id: 'generate_token' diff --git a/.github/workflows/gemini-issue-scheduled-triage.yml b/.github/workflows/gemini-issue-scheduled-triage.yml index 8e17c0f96..b25453853 100644 --- a/.github/workflows/gemini-issue-scheduled-triage.yml +++ b/.github/workflows/gemini-issue-scheduled-triage.yml @@ -26,7 +26,7 @@ jobs: steps: - name: 'Checkout repository' - uses: 'actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd' # ratchet:actions/checkout@v4 - name: 'Generate GitHub App Token' id: 'generate_token' diff --git a/.github/workflows/gemini-pr-review.yml b/.github/workflows/gemini-pr-review.yml index 2d24002cb..cdb91cd14 100644 --- a/.github/workflows/gemini-pr-review.yml +++ b/.github/workflows/gemini-pr-review.yml @@ -66,7 +66,7 @@ jobs: steps: - name: 'Checkout PR code' - uses: 'actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd' # ratchet:actions/checkout@v4 - name: 'Generate GitHub App Token' id: 'generate_token' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 711a23fdf..8a66e5666 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,7 +27,7 @@ jobs: flutter_version: [stable, beta] os: [ubuntu-latest, macos-latest] steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 with: distribution: 'zulu' From 12d7d143c11adc54943b4ed3eb9ca68bb090e8d8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Dec 2025 10:21:10 +0100 Subject: [PATCH 03/25] Bump actions/checkout from 5.0.1 to 6.0.1 (#2754) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.1 to 6.0.1.
Release notes

Sourced from actions/checkout's releases.

v6.0.1

What's Changed

Full Changelog: https://github.com/actions/checkout/compare/v6...v6.0.1

v6.0.0

What's Changed

Full Changelog: https://github.com/actions/checkout/compare/v5.0.0...v6.0.0

v6-beta

What's Changed

Updated persist-credentials to store the credentials under $RUNNER_TEMP instead of directly in the local git config.

This requires a minimum Actions Runner version of v2.329.0 to access the persisted credentials for Docker container action scenarios.

Changelog

Sourced from actions/checkout's changelog.

Changelog

v6.0.0

v5.0.1

v5.0.0

v4.3.1

v4.3.0

v4.2.2

v4.2.1

v4.2.0

v4.1.7

v4.1.6

v4.1.5

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=5.0.1&new-version=6.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/beta.yml | 6 +++--- .github/workflows/build-android.yml | 2 +- .github/workflows/build-ios.yml | 2 +- .github/workflows/gemini-cli.yml | 4 ++-- .github/workflows/gemini-issue-automated-triage.yml | 2 +- .github/workflows/gemini-issue-scheduled-triage.yml | 2 +- .github/workflows/gemini-pr-review.yml | 2 +- .github/workflows/main.yml | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index 3f6db2846..a2f6d6046 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -26,7 +26,7 @@ jobs: matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd + - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 with: distribution: 'zulu' @@ -42,7 +42,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'flutter/samples' steps: - - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd + - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 with: distribution: 'zulu' @@ -58,7 +58,7 @@ jobs: # runs-on: macos-latest # if: github.repository == 'flutter/samples' # steps: - # - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd + # - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # with: # distribution: 'zulu' diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index cea3dca0d..fedd49890 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'flutter/samples' steps: - - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd + - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 with: distribution: 'zulu' diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 4f4d69726..614c37a4f 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd + - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 with: distribution: 'zulu' diff --git a/.github/workflows/gemini-cli.yml b/.github/workflows/gemini-cli.yml index 7298c3b95..b1d7adfda 100644 --- a/.github/workflows/gemini-cli.yml +++ b/.github/workflows/gemini-cli.yml @@ -144,7 +144,7 @@ jobs: - name: 'Checkout PR branch' if: |- ${{ steps.get_context.outputs.is_pr == 'true' }} - uses: 'actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8' # ratchet:actions/checkout@v4 with: token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}' repository: '${{ github.repository }}' @@ -154,7 +154,7 @@ jobs: - name: 'Checkout main branch' if: |- ${{ steps.get_context.outputs.is_pr == 'false' }} - uses: 'actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8' # ratchet:actions/checkout@v4 with: token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}' repository: '${{ github.repository }}' diff --git a/.github/workflows/gemini-issue-automated-triage.yml b/.github/workflows/gemini-issue-automated-triage.yml index 032dfdbfb..4cb9c18f2 100644 --- a/.github/workflows/gemini-issue-automated-triage.yml +++ b/.github/workflows/gemini-issue-automated-triage.yml @@ -44,7 +44,7 @@ jobs: steps: - name: 'Checkout repository' - uses: 'actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8' # ratchet:actions/checkout@v4 - name: 'Generate GitHub App Token' id: 'generate_token' diff --git a/.github/workflows/gemini-issue-scheduled-triage.yml b/.github/workflows/gemini-issue-scheduled-triage.yml index b25453853..4b0112f98 100644 --- a/.github/workflows/gemini-issue-scheduled-triage.yml +++ b/.github/workflows/gemini-issue-scheduled-triage.yml @@ -26,7 +26,7 @@ jobs: steps: - name: 'Checkout repository' - uses: 'actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8' # ratchet:actions/checkout@v4 - name: 'Generate GitHub App Token' id: 'generate_token' diff --git a/.github/workflows/gemini-pr-review.yml b/.github/workflows/gemini-pr-review.yml index cdb91cd14..0f19cc2ea 100644 --- a/.github/workflows/gemini-pr-review.yml +++ b/.github/workflows/gemini-pr-review.yml @@ -66,7 +66,7 @@ jobs: steps: - name: 'Checkout PR code' - uses: 'actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8' # ratchet:actions/checkout@v4 - name: 'Generate GitHub App Token' id: 'generate_token' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8a66e5666..88c6fc459 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,7 +27,7 @@ jobs: flutter_version: [stable, beta] os: [ubuntu-latest, macos-latest] steps: - - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd + - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 with: distribution: 'zulu' From ebdd823c3f19c606cc2f8e97777114558e99cf33 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Dec 2025 09:57:26 +0000 Subject: [PATCH 04/25] Bump actions/setup-java from 5.0.0 to 5.1.0 (#2755) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/setup-java](https://github.com/actions/setup-java) from 5.0.0 to 5.1.0.
Release notes

Sourced from actions/setup-java's releases.

v5.1.0

What's Changed

New Features

Bug Fixes & Improvements

Documentation changes

Dependency updates

New Contributors

Full Changelog: https://github.com/actions/setup-java/compare/v5...v5.1.0

Commits
  • f2beeb2 Bump actions/publish-action from 0.3.0 to 0.4.0 (#912)
  • 4e7e684 feat: Add support for .sdkmanrc file in java-version-file parameter (#736)
  • 46c56d6 Add GitHub Token Support for GraalVM and Refactor Code (#849)
  • 66b9457 Update SapMachine URLs (#955)
  • 6ba5449 Enhance error logging for network failures to include endpoint/IP details, ad...
  • de5a937 adds microsoft openjdk25 builds (#927)
  • ead9eaa Update Regex to Support All ASDF Versions for the supported distributions in ...
  • 8c57fa3 Clarify JAVA_HOME and PATH setup in README (#841)
  • a7ab372 Bump prettier from 2.8.8 to 3.6.2 (#873)
  • d0351b4 Update documentation to use checkout and Java v5 (#903)
  • See full diff in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-java&package-manager=github_actions&previous-version=5.0.0&new-version=5.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--- .github/workflows/beta.yml | 6 +++--- .github/workflows/build-android.yml | 2 +- .github/workflows/build-ios.yml | 2 +- .github/workflows/main.yml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index a2f6d6046..bb03070fb 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -27,7 +27,7 @@ jobs: os: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 + - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e with: distribution: 'zulu' java-version: '17' @@ -43,7 +43,7 @@ jobs: if: github.repository == 'flutter/samples' steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 + - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e with: distribution: 'zulu' java-version: '17' @@ -59,7 +59,7 @@ jobs: # if: github.repository == 'flutter/samples' # steps: # - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - # - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 + # - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # with: # distribution: 'zulu' # java-version: '17' diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index fedd49890..a9018d7e9 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -20,7 +20,7 @@ jobs: if: github.repository == 'flutter/samples' steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 + - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e with: distribution: 'zulu' java-version: '17' diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 614c37a4f..c34b9eda9 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -23,7 +23,7 @@ jobs: fail-fast: false steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 + - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e with: distribution: 'zulu' java-version: '17' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 88c6fc459..661df563d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -28,7 +28,7 @@ jobs: os: [ubuntu-latest, macos-latest] steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 + - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e with: distribution: 'zulu' java-version: '17' From c586d727b98ece86b621d6727f32ce040668eeab Mon Sep 17 00:00:00 2001 From: LouiseHsu Date: Wed, 10 Dec 2025 08:38:54 -0800 Subject: [PATCH 05/25] Add content resizing sample (#2756) Add a content resizing sample for iOS to support https://github.com/flutter/flutter/pull/177410 ## Pre-launch Checklist - [x] I read the [Flutter Style Guide] _recently_, and have followed its advice. - [x] I signed the [CLA]. - [x] I read the [Contributors Guide]. - [x] I have added sample code updates to the [changelog]. - [x] I updated/added relevant documentation (doc comments with `///`). If you need help, consider asking for advice on the #hackers-devrel channel on [Discord]. [Flutter Style Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md [CLA]: https://cla.developers.google.com/ [Discord]: https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md [Contributors Guide]: https://github.com/flutter/samples/blob/main/CONTRIBUTING.md [changelog]: ../CHANGELOG.md --------- Co-authored-by: Eric Windmill --- add_to_app/ios_content_resizing/README.md | 38 + .../flutter_module/.gitignore | 48 + .../flutter_module/.metadata | 10 + .../flutter_module/README.md | 11 + .../flutter_module/analysis_options.yaml | 4 + .../flutter_module/lib/main.dart | 52 + .../flutter_module/pubspec.yaml | 87 ++ .../ios_content_resizing/Podfile | 32 + .../Pods/Local Podspecs/Flutter.podspec.json | 20 + .../FlutterPluginRegistrant.podspec.json | 31 + .../ios_content_resizing/Pods/Manifest.lock | 22 + .../Pods/Pods.xcodeproj/project.pbxproj | 1276 +++++++++++++++++ .../xcschemes/Flutter.xcscheme | 58 + .../FlutterPluginRegistrant.xcscheme | 58 + ...izing-ios_content_resizingUITests.xcscheme | 58 + .../Pods-ios_content_resizing.xcscheme | 58 + .../Pods-ios_content_resizingTests.xcscheme | 58 + .../xcschemes/xcschememanagement.plist | 46 + .../Flutter/Flutter.debug.xcconfig | 12 + .../Flutter/Flutter.release.xcconfig | 12 + .../FlutterPluginRegistrant-Info.plist | 26 + .../FlutterPluginRegistrant-dummy.m | 5 + .../FlutterPluginRegistrant-prefix.pch | 12 + .../FlutterPluginRegistrant-umbrella.h | 17 + .../FlutterPluginRegistrant.debug.xcconfig | 13 + .../FlutterPluginRegistrant.modulemap | 6 + .../FlutterPluginRegistrant.release.xcconfig | 13 + ...ing-ios_content_resizingUITests-Info.plist | 26 + ..._resizingUITests-acknowledgements.markdown | 3 + ...ent_resizingUITests-acknowledgements.plist | 29 + ...sizing-ios_content_resizingUITests-dummy.m | 5 + ...ing-ios_content_resizingUITests-umbrella.h | 16 + ...ios_content_resizingUITests.debug.xcconfig | 14 + ...zing-ios_content_resizingUITests.modulemap | 6 + ...s_content_resizingUITests.release.xcconfig | 14 + .../Pods-ios_content_resizing-Info.plist | 26 + ...content_resizing-acknowledgements.markdown | 3 + ...os_content_resizing-acknowledgements.plist | 29 + .../Pods-ios_content_resizing-dummy.m | 5 + .../Pods-ios_content_resizing-umbrella.h | 16 + .../Pods-ios_content_resizing.debug.xcconfig | 14 + .../Pods-ios_content_resizing.modulemap | 6 + ...Pods-ios_content_resizing.release.xcconfig | 14 + .../Pods-ios_content_resizingTests-Info.plist | 26 + ...nt_resizingTests-acknowledgements.markdown | 3 + ...ntent_resizingTests-acknowledgements.plist | 29 + .../Pods-ios_content_resizingTests-dummy.m | 5 + .../Pods-ios_content_resizingTests-umbrella.h | 16 + ...s-ios_content_resizingTests.debug.xcconfig | 10 + .../Pods-ios_content_resizingTests.modulemap | 6 + ...ios_content_resizingTests.release.xcconfig | 10 + .../flutter_module/.gitignore | 41 + .../flutter_module/.metadata | 10 + .../flutter_module/README.md | 14 + .../flutter_module/analysis_options.yaml | 1 + .../flutter_module/lib/main.dart | 55 + .../flutter_module/pubspec.yaml | 35 + .../flutter_module/test/widget_test.dart | 47 + .../flutter_module/test_driver/example.dart | 13 + .../project.pbxproj | 719 ++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 25437 bytes .../xcschemes/xcschememanagement.plist | 14 + .../contents.xcworkspacedata | 10 + .../UserInterfaceState.xcuserstate | Bin 0 -> 25482 bytes .../ios_content_resizing/AppDelegate.swift | 14 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 35 + .../Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 + .../Base.lproj/Main.storyboard | 24 + .../ios_content_resizing/Info.plist | 25 + .../ios_content_resizing/SceneDelegate.swift | 52 + .../ios_content_resizing/ViewController.swift | 87 ++ .../ios_content_resizingTests.swift | 36 + .../ios_content_resizingUITests.swift | 41 + ...s_content_resizingUITestsLaunchTests.swift | 33 + .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 13562 bytes .../project.pbxproj | 563 ++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 13562 bytes .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 35 + .../Assets.xcassets/Contents.json | 6 + .../ContentView.swift | 24 + .../ios_content_resizing_exampleApp.swift | 17 + .../ios_content_resizing_exampleTests.swift | 36 + .../ios_content_resizing_exampleUITests.swift | 41 + ...t_resizing_exampleUITestsLaunchTests.swift | 33 + .../project.pbxproj | 583 ++++++++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 35 + .../Assets.xcassets/Contents.json | 6 + .../ContentView.swift | 24 + .../ios_dynamic_content_resizeApp.swift | 17 + .../ios_dynamic_content_resizeTests.swift | 36 + .../ios_dynamic_content_resizeUITests.swift | 41 + ...mic_content_resizeUITestsLaunchTests.swift | 33 + 99 files changed, 5335 insertions(+) create mode 100644 add_to_app/ios_content_resizing/README.md create mode 100644 add_to_app/ios_content_resizing/flutter_module/.gitignore create mode 100644 add_to_app/ios_content_resizing/flutter_module/.metadata create mode 100644 add_to_app/ios_content_resizing/flutter_module/README.md create mode 100644 add_to_app/ios_content_resizing/flutter_module/analysis_options.yaml create mode 100644 add_to_app/ios_content_resizing/flutter_module/lib/main.dart create mode 100644 add_to_app/ios_content_resizing/flutter_module/pubspec.yaml create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Podfile create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Local Podspecs/Flutter.podspec.json create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Local Podspecs/FlutterPluginRegistrant.podspec.json create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Manifest.lock create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/project.pbxproj create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Flutter.xcscheme create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/FlutterPluginRegistrant.xcscheme create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Pods-ios_content_resizing-ios_content_resizingUITests.xcscheme create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Pods-ios_content_resizing.xcscheme create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Pods-ios_content_resizingTests.xcscheme create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Flutter/Flutter.debug.xcconfig create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Flutter/Flutter.release.xcconfig create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-Info.plist create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-dummy.m create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-prefix.pch create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-umbrella.h create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.debug.xcconfig create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.modulemap create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.release.xcconfig create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-Info.plist create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.markdown create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.plist create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-dummy.m create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-umbrella.h create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.debug.xcconfig create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.modulemap create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.release.xcconfig create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-Info.plist create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-acknowledgements.markdown create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-acknowledgements.plist create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-dummy.m create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-umbrella.h create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.debug.xcconfig create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.modulemap create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.release.xcconfig create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-Info.plist create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-acknowledgements.markdown create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-acknowledgements.plist create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-dummy.m create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-umbrella.h create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.debug.xcconfig create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.modulemap create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.release.xcconfig create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/.gitignore create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/.metadata create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/README.md create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/analysis_options.yaml create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/lib/main.dart create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/pubspec.yaml create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/test/widget_test.dart create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/test_driver/example.dart create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/project.pbxproj create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/project.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcworkspace/contents.xcworkspacedata create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/AppDelegate.swift create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Assets.xcassets/Contents.json create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Base.lproj/LaunchScreen.storyboard create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Base.lproj/Main.storyboard create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Info.plist create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/SceneDelegate.swift create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/ViewController.swift create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizingTests/ios_content_resizingTests.swift create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizingUITests/ios_content_resizingUITests.swift create mode 100644 add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizingUITests/ios_content_resizingUITestsLaunchTests.swift create mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/contents.xcworkspacedata create mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.pbxproj create mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/Contents.json create mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ContentView.swift create mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ios_content_resizing_exampleApp.swift create mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleTests/ios_content_resizing_exampleTests.swift create mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITests.swift create mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITestsLaunchTests.swift create mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize.xcodeproj/project.pbxproj create mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/Contents.json create mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ContentView.swift create mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ios_dynamic_content_resizeApp.swift create mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeTests/ios_dynamic_content_resizeTests.swift create mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITests.swift create mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITestsLaunchTests.swift diff --git a/add_to_app/ios_content_resizing/README.md b/add_to_app/ios_content_resizing/README.md new file mode 100644 index 000000000..c06498747 --- /dev/null +++ b/add_to_app/ios_content_resizing/README.md @@ -0,0 +1,38 @@ +# ios_content_resizing + +Embeds an instance of Flutter into an existing iOS app that will dynamically resize itself based off of it's content. + +## Description + +This sample showcases the integration of a self-resizing Flutter view within a native UIKit environment. The Flutter module features an expanding column of widgets. As items are added, the hosting UIView will automatically adjusts its [intrinsicContentSize](https://developer.apple.com/documentation/uikit/uiview/intrinsiccontentsize) to accommodate the new content size. + +## tl;dr + +If you're just looking to get up and running quickly, these bash commands will +fetch packages and set up dependencies (note that the above commands assume +you're building for both iOS and Android, with both toolchains installed): + +```bash + #!/bin/bash + set -e + + cd flutter_module/ + flutter pub get + + # For iOS builds: + cd ../ios_content_resizing + pod install + open ios_content_resizing.xcworkspace + # Then, click "Run" in Xcode to launch the app into your Simulator or device +``` + +## Requirements + +* Flutter +* iOS + * Xcode + * Cocoapods + +## Questions/issues + +See [add_to_app/README.md](../README.md) for further help. diff --git a/add_to_app/ios_content_resizing/flutter_module/.gitignore b/add_to_app/ios_content_resizing/flutter_module/.gitignore new file mode 100644 index 000000000..5d88593fb --- /dev/null +++ b/add_to_app/ios_content_resizing/flutter_module/.gitignore @@ -0,0 +1,48 @@ +.DS_Store +.dart_tool/ + +.pub/ + +.idea/ +.vagrant/ +.sconsign.dblite +.svn/ + +migrate_working_dir/ + +*.swp +profile + +DerivedData/ + +.generated/ + +*.pbxuser +*.mode1v3 +*.mode2v3 +*.perspectivev3 + +!default.pbxuser +!default.mode1v3 +!default.mode2v3 +!default.perspectivev3 + +xcuserdata + +*.moved-aside + +*.pyc +*sync/ +Icon? +.tags* + +build/ +.android/ +.ios/ +.flutter-plugins-dependencies + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json diff --git a/add_to_app/ios_content_resizing/flutter_module/.metadata b/add_to_app/ios_content_resizing/flutter_module/.metadata new file mode 100644 index 000000000..d6ca04bfa --- /dev/null +++ b/add_to_app/ios_content_resizing/flutter_module/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "27ccc2e66f3fd85ad388e3ba038a89251aef41b7" + channel: "master" + +project_type: module diff --git a/add_to_app/ios_content_resizing/flutter_module/README.md b/add_to_app/ios_content_resizing/flutter_module/README.md new file mode 100644 index 000000000..68e507145 --- /dev/null +++ b/add_to_app/ios_content_resizing/flutter_module/README.md @@ -0,0 +1,11 @@ +# flutter_module + +A new Flutter module project. + +## Getting Started + +For help getting started with Flutter development, view the online +[documentation](https://flutter.dev/). + +For instructions integrating Flutter modules to your existing applications, +see the [add-to-app documentation](https://flutter.dev/to/add-to-app). diff --git a/add_to_app/ios_content_resizing/flutter_module/analysis_options.yaml b/add_to_app/ios_content_resizing/flutter_module/analysis_options.yaml new file mode 100644 index 000000000..a5744c1cf --- /dev/null +++ b/add_to_app/ios_content_resizing/flutter_module/analysis_options.yaml @@ -0,0 +1,4 @@ +include: package:flutter_lints/flutter.yaml + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/add_to_app/ios_content_resizing/flutter_module/lib/main.dart b/add_to_app/ios_content_resizing/flutter_module/lib/main.dart new file mode 100644 index 000000000..97834ef24 --- /dev/null +++ b/add_to_app/ios_content_resizing/flutter_module/lib/main.dart @@ -0,0 +1,52 @@ +// Copyright 2014 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; + +void main() { + runApp(const ResizeApp()); +} + +class ResizeApp extends StatefulWidget { + const ResizeApp({super.key}); + + @override + State createState() => _ResizeAppState(); +} + +class _ResizeAppState extends State { + int _listSize = 1; + void _addToList() { + setState(() { + _listSize++; + }); + } + + @override + Widget build(BuildContext context) { + return Center( + heightFactor: 1, + child: Directionality( + textDirection: TextDirection.ltr, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + for (int i = 0; i < _listSize; i++) + Container(color: HSVColor.fromAHSV(1, (10.0 * i), 1, 1).toColor(), height: 50, width: 200, + child: Center( + child: Text( + 'Flutter Widget $i', + style: const TextStyle(fontSize: 16, color: Colors.black), + ), + )), + TextButton( + onPressed: _addToList, + child: Text('Listception!'), + ) + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/add_to_app/ios_content_resizing/flutter_module/pubspec.yaml b/add_to_app/ios_content_resizing/flutter_module/pubspec.yaml new file mode 100644 index 000000000..222719e2e --- /dev/null +++ b/add_to_app/ios_content_resizing/flutter_module/pubspec.yaml @@ -0,0 +1,87 @@ +name: flutter_module +description: "A new Flutter module project." + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# +# This version is used _only_ for the Runner app, which is used if you just do +# a `flutter run`. It has no impact on any other native host app that you embed +# your Flutter project into. +version: 1.0.0+1 + +environment: + sdk: ^3.11.0-200.1.beta + +dependencies: + flutter: + sdk: flutter + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.8 + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^6.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +flutter: + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add Flutter specific assets to your application, add an assets section, + # like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/to/resolution-aware-images + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/to/asset-from-package + + # To add Flutter specific custom fonts to your application, add a fonts + # section here, in this "flutter" section. Each entry in this list should + # have a "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/to/font-from-package + + + # This section identifies your Flutter project as a module meant for + # embedding in a native host app. These identifiers should _not_ ordinarily + # be changed after generation - they are used to ensure that the tooling can + # maintain consistency when adding or modifying assets and plugins. + # They also do not have any bearing on your native host application's + # identifiers, which may be completely independent or the same as these. + module: + androidX: true + androidPackage: com.example.flutter_module + iosBundleIdentifier: com.example.flutterModule diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Podfile b/add_to_app/ios_content_resizing/ios_content_resizing/Podfile new file mode 100644 index 000000000..a17a10562 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Podfile @@ -0,0 +1,32 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '15.0' + +flutter_application_path = '../flutter_module' +load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb') + + +target 'ios_content_resizing' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for ios_content_resizing + + install_all_flutter_pods(flutter_application_path) + + target 'ios_content_resizingTests' do + inherit! :search_paths + # Pods for testing + end + + target 'ios_content_resizingUITests' do + # Pods for testing + end + +end + + +post_install do |installer| + flutter_post_install(installer) if defined?(flutter_post_install) +end + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Local Podspecs/Flutter.podspec.json b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Local Podspecs/Flutter.podspec.json new file mode 100644 index 000000000..d67a7c76f --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Local Podspecs/Flutter.podspec.json @@ -0,0 +1,20 @@ +{ + "name": "Flutter", + "version": "1.0.0", + "summary": "A UI toolkit for beautiful and fast apps.", + "homepage": "https://flutter.dev", + "license": { + "type": "BSD" + }, + "authors": { + "Flutter Dev Team": "flutter-dev@googlegroups.com" + }, + "source": { + "git": "https://github.com/flutter/engine", + "tag": "1.0.0" + }, + "platforms": { + "ios": "13.0" + }, + "vendored_frameworks": "path/to/nothing" +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Local Podspecs/FlutterPluginRegistrant.podspec.json b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Local Podspecs/FlutterPluginRegistrant.podspec.json new file mode 100644 index 000000000..000038162 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Local Podspecs/FlutterPluginRegistrant.podspec.json @@ -0,0 +1,31 @@ +{ + "name": "FlutterPluginRegistrant", + "version": "0.0.1", + "summary": "Registers plugins with your Flutter app", + "description": "Depends on all your plugins, and provides a function to register them.", + "homepage": "https://flutter.dev", + "license": { + "type": "BSD" + }, + "authors": { + "Flutter Dev Team": "flutter-dev@googlegroups.com" + }, + "platforms": { + "ios": "13.0" + }, + "source_files": [ + "Classes", + "Classes/**/*.{h,m}" + ], + "source": { + "path": "." + }, + "public_header_files": "./Classes/**/*.h", + "static_framework": true, + "pod_target_xcconfig": { + "DEFINES_MODULE": "YES" + }, + "dependencies": { + "Flutter": [] + } +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Manifest.lock b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Manifest.lock new file mode 100644 index 000000000..00cca2c02 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Manifest.lock @@ -0,0 +1,22 @@ +PODS: + - Flutter (1.0.0) + - FlutterPluginRegistrant (0.0.1): + - Flutter + +DEPENDENCIES: + - Flutter (from `../flutter_module/.ios/Flutter`) + - FlutterPluginRegistrant (from `../flutter_module/.ios/Flutter/FlutterPluginRegistrant`) + +EXTERNAL SOURCES: + Flutter: + :path: "../flutter_module/.ios/Flutter" + FlutterPluginRegistrant: + :path: "../flutter_module/.ios/Flutter/FlutterPluginRegistrant" + +SPEC CHECKSUMS: + Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 + FlutterPluginRegistrant: 1bf2b93dcc6a731089dfe77f7a867be153c5008f + +PODFILE CHECKSUM: 8512f9d26835e64e2656751293a9f1e09c986b9d + +COCOAPODS: 1.16.2 diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/project.pbxproj b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 000000000..8c0ad06b7 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,1276 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXAggregateTarget section */ + 1EFDDC32A34D56D411E640A81DCD9E73 /* Flutter */ = { + isa = PBXAggregateTarget; + buildConfigurationList = B26E11467D023FA6CDCE36F75198812F /* Build configuration list for PBXAggregateTarget "Flutter" */; + buildPhases = ( + ); + dependencies = ( + ); + name = Flutter; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 0B55D92CD2BAF933FE9D276939406D2C /* Pods-ios_content_resizingTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BA027B63B056E637B52DC48E997871D7 /* Pods-ios_content_resizingTests-dummy.m */; }; + 1C8B15B53492E657E17E19CD85AA35C0 /* Pods-ios_content_resizing-ios_content_resizingUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 740A60CC3FE2346AA1FEB529CDCCD439 /* Pods-ios_content_resizing-ios_content_resizingUITests-dummy.m */; }; + 203789EDA9BC17C4D2BB55B087DE25B8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */; }; + 44F46818A4A76D2DC7F7FDADAB40E781 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CE7A004F669D9407A99593AB2AFD491 /* GeneratedPluginRegistrant.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 4E3441E90BAB7D083993C56E292FA52C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */; }; + 4EE0C80B8A3C1107458579AFB4E41741 /* GeneratedPluginRegistrant.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E2D1DC1EC3C3E20E7FB2A0FF3EF4FCE /* GeneratedPluginRegistrant.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5A79D8994BC80675EE4A3F50CA6FEF4F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */; }; + 8DFAE2FA34C28A0530B72F4B5D3F0623 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */; }; + ACC932BEF12584E78B91E93346CB63E2 /* FlutterPluginRegistrant-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DCC08935243F50B63245B117C34B45F3 /* FlutterPluginRegistrant-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3889D09053A313F7A70C12C7D2B587C /* Pods-ios_content_resizing-ios_content_resizingUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CC33182B193B07DB144E4A6C9E01AB79 /* Pods-ios_content_resizing-ios_content_resizingUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6AE8F15F2F866E8B52DC17217A64E71 /* Pods-ios_content_resizingTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 715630C735F4805B3A805CF50A9585F3 /* Pods-ios_content_resizingTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C31439779167DBFB0C2D6E1D2F3C673C /* Pods-ios_content_resizing-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 31098EA55F47B77CF6DE1E5F5057F68A /* Pods-ios_content_resizing-dummy.m */; }; + D065E4911A1DC5E493EEF7DB517B7214 /* FlutterPluginRegistrant-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AAF585701677AEC4242C6CA033275B4 /* FlutterPluginRegistrant-dummy.m */; }; + D082208849F456F5518E6230A683096B /* Pods-ios_content_resizing-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F732C0211A045562F5E572138528CEB7 /* Pods-ios_content_resizing-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 0F89DBD5A9470B70308A8E62C10B4DC1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1EFDDC32A34D56D411E640A81DCD9E73; + remoteInfo = Flutter; + }; + 2C9791B40262CCA18DEA3CC7B7E1C667 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1EFDDC32A34D56D411E640A81DCD9E73; + remoteInfo = Flutter; + }; + 30CCE7DF2B096D489C0337201A23FEAB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 83DAA8F43D74F8D51203DE23C7C3A3F5; + remoteInfo = FlutterPluginRegistrant; + }; + 78511F1C1FD5C9BCB89672C1D4CF0475 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CD1FE7E172044780FE5855099C6F9044; + remoteInfo = "Pods-ios_content_resizing"; + }; + 7948C6A42ED494BC018F1377A88CB2A6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1EFDDC32A34D56D411E640A81DCD9E73; + remoteInfo = Flutter; + }; + FC692C20666B5D147B676FA8171775D9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 83DAA8F43D74F8D51203DE23C7C3A3F5; + remoteInfo = FlutterPluginRegistrant; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1B2A7B60A690627987F4A32728B1C441 /* Pods-ios_content_resizing-ios_content_resizingUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios_content_resizing-ios_content_resizingUITests.debug.xcconfig"; sourceTree = ""; }; + 1CD0339A7DDFF44C520DC672454F4CE6 /* Pods-ios_content_resizing-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ios_content_resizing-acknowledgements.markdown"; sourceTree = ""; }; + 1D1E78871CC9F2B1032560E19646993A /* FlutterPluginRegistrant.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FlutterPluginRegistrant.release.xcconfig; sourceTree = ""; }; + 1DB7953AE371D07C9F6F2864A55214EC /* Pods-ios_content_resizingTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios_content_resizingTests.release.xcconfig"; sourceTree = ""; }; + 2AAF585701677AEC4242C6CA033275B4 /* FlutterPluginRegistrant-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FlutterPluginRegistrant-dummy.m"; sourceTree = ""; }; + 2ABF8D83AB2BF46EE272C48561AC5A9E /* Pods-ios_content_resizing.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios_content_resizing.release.xcconfig"; sourceTree = ""; }; + 2CE7A004F669D9407A99593AB2AFD491 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GeneratedPluginRegistrant.m; path = Classes/GeneratedPluginRegistrant.m; sourceTree = ""; }; + 31098EA55F47B77CF6DE1E5F5057F68A /* Pods-ios_content_resizing-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ios_content_resizing-dummy.m"; sourceTree = ""; }; + 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 3E69713BE606BC991F1C594C917D928F /* Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.markdown"; sourceTree = ""; }; + 4A162C470ECD31CC6B84AE1812A68341 /* Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.plist"; sourceTree = ""; }; + 4C51364643265E0627F1B989ABA783AC /* FlutterPluginRegistrant-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FlutterPluginRegistrant-Info.plist"; sourceTree = ""; }; + 4F9125ED2B32F99F97EDBFBE15D053F3 /* Pods-ios_content_resizingTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ios_content_resizingTests.modulemap"; sourceTree = ""; }; + 550F9C4A71235EA01D58F70B41B5E3B9 /* Pods-ios_content_resizingTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ios_content_resizingTests-acknowledgements.plist"; sourceTree = ""; }; + 5793332C56B5C51F3F1A35E29F0F9B5C /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 5A9ED177DD476853C074763AE7635D34 /* FlutterPluginRegistrant.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FlutterPluginRegistrant.debug.xcconfig; sourceTree = ""; }; + 5E6A76AF8DCCA1B2712836D571D61A68 /* Flutter.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = Flutter.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 6056F33DB108BE122160D138498C99F8 /* Pods-ios_content_resizing-ios_content_resizingUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios_content_resizing-ios_content_resizingUITests.release.xcconfig"; sourceTree = ""; }; + 715630C735F4805B3A805CF50A9585F3 /* Pods-ios_content_resizingTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ios_content_resizingTests-umbrella.h"; sourceTree = ""; }; + 7190D3A2421CEF0390C6C11ED312EB1B /* Flutter.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Flutter.release.xcconfig; sourceTree = ""; }; + 740A60CC3FE2346AA1FEB529CDCCD439 /* Pods-ios_content_resizing-ios_content_resizingUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ios_content_resizing-ios_content_resizingUITests-dummy.m"; sourceTree = ""; }; + 7E2D1DC1EC3C3E20E7FB2A0FF3EF4FCE /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GeneratedPluginRegistrant.h; path = Classes/GeneratedPluginRegistrant.h; sourceTree = ""; }; + 808964E349CF6A9C44A0909D0D6EEE8E /* Pods-ios_content_resizing.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios_content_resizing.debug.xcconfig"; sourceTree = ""; }; + 80CEA24FF2084B8F57DFDFCC07F2064A /* Pods-ios_content_resizing-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ios_content_resizing-acknowledgements.plist"; sourceTree = ""; }; + 848315FC91D61DDA12BFE10AF7903DD9 /* Pods-ios_content_resizingTests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-ios_content_resizingTests"; path = Pods_ios_content_resizingTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 863E29E35DF7586D71558E0FB794DDBC /* Pods-ios_content_resizing.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ios_content_resizing.modulemap"; sourceTree = ""; }; + 89F5E495C830BAE2B7079C84C449077F /* FlutterPluginRegistrant-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FlutterPluginRegistrant-prefix.pch"; sourceTree = ""; }; + 95DFED33AEBE20CFC59AC2D89DF45F13 /* Pods-ios_content_resizingTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios_content_resizingTests.debug.xcconfig"; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + B1B78154C420D3C3E3BB30C73471AF58 /* Pods-ios_content_resizing */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-ios_content_resizing"; path = Pods_ios_content_resizing.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B6420A4EFE167F7BACB091FE384D2AFB /* FlutterPluginRegistrant.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = FlutterPluginRegistrant.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + BA027B63B056E637B52DC48E997871D7 /* Pods-ios_content_resizingTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ios_content_resizingTests-dummy.m"; sourceTree = ""; }; + BB6445B421DA90DD6610EE80D499E3B4 /* Flutter.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Flutter.debug.xcconfig; sourceTree = ""; }; + CC33182B193B07DB144E4A6C9E01AB79 /* Pods-ios_content_resizing-ios_content_resizingUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ios_content_resizing-ios_content_resizingUITests-umbrella.h"; sourceTree = ""; }; + D8740969C1272A3D14589F37950232B7 /* Pods-ios_content_resizing-ios_content_resizingUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ios_content_resizing-ios_content_resizingUITests.modulemap"; sourceTree = ""; }; + D8DBE60F83CC9855059B3B56F3C86603 /* FlutterPluginRegistrant.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FlutterPluginRegistrant.modulemap; sourceTree = ""; }; + DAC271DF29EEC36C2D6DF4B29D00059D /* Pods-ios_content_resizing-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ios_content_resizing-Info.plist"; sourceTree = ""; }; + DCC08935243F50B63245B117C34B45F3 /* FlutterPluginRegistrant-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FlutterPluginRegistrant-umbrella.h"; sourceTree = ""; }; + DEE6C5FCB90FB050631DE9252A0FF907 /* Pods-ios_content_resizing-ios_content_resizingUITests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-ios_content_resizing-ios_content_resizingUITests"; path = Pods_ios_content_resizing_ios_content_resizingUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DF7C6EBB9161EEF650EC12B4BB67E628 /* FlutterPluginRegistrant */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FlutterPluginRegistrant; path = FlutterPluginRegistrant.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + EB01D38E9B9397013BDA6F2ECD3C116A /* Pods-ios_content_resizingTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ios_content_resizingTests-acknowledgements.markdown"; sourceTree = ""; }; + EC58DCEFE8DA0A2BC696E7AD13C037B4 /* Pods-ios_content_resizingTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ios_content_resizingTests-Info.plist"; sourceTree = ""; }; + F0FC688EB853C97544D47655599785D8 /* Pods-ios_content_resizing-ios_content_resizingUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ios_content_resizing-ios_content_resizingUITests-Info.plist"; sourceTree = ""; }; + F732C0211A045562F5E572138528CEB7 /* Pods-ios_content_resizing-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ios_content_resizing-umbrella.h"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3C14517AA188AA0F4644710BDF6F2E0B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 203789EDA9BC17C4D2BB55B087DE25B8 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 830D63870BCE1E7548BFBF07AF254BC6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8DFAE2FA34C28A0530B72F4B5D3F0623 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C85264A7AE5B8D2D6D41BECD6C886F30 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5A79D8994BC80675EE4A3F50CA6FEF4F /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DE8E25759FD7427C882BA4EB71D22E80 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4E3441E90BAB7D083993C56E292FA52C /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 17E661ACE046111F65EB8BC53399F9D5 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + C8D1B05D3D5016D84F1E8CFC2829BA53 /* Pods-ios_content_resizing */, + AEE7DDCA547716D81E9370F489774C49 /* Pods-ios_content_resizing-ios_content_resizingUITests */, + D89266006DC36009E817D04F8788D146 /* Pods-ios_content_resizingTests */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 2479EE86B1BDE660ABC7156E54E5A81C /* Support Files */ = { + isa = PBXGroup; + children = ( + D8DBE60F83CC9855059B3B56F3C86603 /* FlutterPluginRegistrant.modulemap */, + 2AAF585701677AEC4242C6CA033275B4 /* FlutterPluginRegistrant-dummy.m */, + 4C51364643265E0627F1B989ABA783AC /* FlutterPluginRegistrant-Info.plist */, + 89F5E495C830BAE2B7079C84C449077F /* FlutterPluginRegistrant-prefix.pch */, + DCC08935243F50B63245B117C34B45F3 /* FlutterPluginRegistrant-umbrella.h */, + 5A9ED177DD476853C074763AE7635D34 /* FlutterPluginRegistrant.debug.xcconfig */, + 1D1E78871CC9F2B1032560E19646993A /* FlutterPluginRegistrant.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../../ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant"; + sourceTree = ""; + }; + 6F7106898BE13FDCFDCF877524DD896B /* Products */ = { + isa = PBXGroup; + children = ( + DF7C6EBB9161EEF650EC12B4BB67E628 /* FlutterPluginRegistrant */, + B1B78154C420D3C3E3BB30C73471AF58 /* Pods-ios_content_resizing */, + DEE6C5FCB90FB050631DE9252A0FF907 /* Pods-ios_content_resizing-ios_content_resizingUITests */, + 848315FC91D61DDA12BFE10AF7903DD9 /* Pods-ios_content_resizingTests */, + ); + name = Products; + sourceTree = ""; + }; + A95135DC3DC55EDD6E2AE851A351550A /* Development Pods */ = { + isa = PBXGroup; + children = ( + C4828404A16E02F8503F54C1BEFB50AD /* Flutter */, + E236746D72969B68FE0982CAC2FA077D /* FlutterPluginRegistrant */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + AEE7DDCA547716D81E9370F489774C49 /* Pods-ios_content_resizing-ios_content_resizingUITests */ = { + isa = PBXGroup; + children = ( + D8740969C1272A3D14589F37950232B7 /* Pods-ios_content_resizing-ios_content_resizingUITests.modulemap */, + 3E69713BE606BC991F1C594C917D928F /* Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.markdown */, + 4A162C470ECD31CC6B84AE1812A68341 /* Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.plist */, + 740A60CC3FE2346AA1FEB529CDCCD439 /* Pods-ios_content_resizing-ios_content_resizingUITests-dummy.m */, + F0FC688EB853C97544D47655599785D8 /* Pods-ios_content_resizing-ios_content_resizingUITests-Info.plist */, + CC33182B193B07DB144E4A6C9E01AB79 /* Pods-ios_content_resizing-ios_content_resizingUITests-umbrella.h */, + 1B2A7B60A690627987F4A32728B1C441 /* Pods-ios_content_resizing-ios_content_resizingUITests.debug.xcconfig */, + 6056F33DB108BE122160D138498C99F8 /* Pods-ios_content_resizing-ios_content_resizingUITests.release.xcconfig */, + ); + name = "Pods-ios_content_resizing-ios_content_resizingUITests"; + path = "Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests"; + sourceTree = ""; + }; + C4828404A16E02F8503F54C1BEFB50AD /* Flutter */ = { + isa = PBXGroup; + children = ( + C82424DE68A1A19BFC1B640369F4BC62 /* Pod */, + E30233976B4062D1B8D8CBF9AB58FDEF /* Support Files */, + ); + name = Flutter; + path = ../../flutter_module/.ios/Flutter; + sourceTree = ""; + }; + C82424DE68A1A19BFC1B640369F4BC62 /* Pod */ = { + isa = PBXGroup; + children = ( + 5E6A76AF8DCCA1B2712836D571D61A68 /* Flutter.podspec */, + 5793332C56B5C51F3F1A35E29F0F9B5C /* README.md */, + ); + name = Pod; + sourceTree = ""; + }; + C8D1B05D3D5016D84F1E8CFC2829BA53 /* Pods-ios_content_resizing */ = { + isa = PBXGroup; + children = ( + 863E29E35DF7586D71558E0FB794DDBC /* Pods-ios_content_resizing.modulemap */, + 1CD0339A7DDFF44C520DC672454F4CE6 /* Pods-ios_content_resizing-acknowledgements.markdown */, + 80CEA24FF2084B8F57DFDFCC07F2064A /* Pods-ios_content_resizing-acknowledgements.plist */, + 31098EA55F47B77CF6DE1E5F5057F68A /* Pods-ios_content_resizing-dummy.m */, + DAC271DF29EEC36C2D6DF4B29D00059D /* Pods-ios_content_resizing-Info.plist */, + F732C0211A045562F5E572138528CEB7 /* Pods-ios_content_resizing-umbrella.h */, + 808964E349CF6A9C44A0909D0D6EEE8E /* Pods-ios_content_resizing.debug.xcconfig */, + 2ABF8D83AB2BF46EE272C48561AC5A9E /* Pods-ios_content_resizing.release.xcconfig */, + ); + name = "Pods-ios_content_resizing"; + path = "Target Support Files/Pods-ios_content_resizing"; + sourceTree = ""; + }; + CAF78B8E3930ADF8B64CF30FC13AA025 /* Pod */ = { + isa = PBXGroup; + children = ( + B6420A4EFE167F7BACB091FE384D2AFB /* FlutterPluginRegistrant.podspec */, + ); + name = Pod; + sourceTree = ""; + }; + CF1408CF629C7361332E53B88F7BD30C = { + isa = PBXGroup; + children = ( + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + A95135DC3DC55EDD6E2AE851A351550A /* Development Pods */, + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, + 6F7106898BE13FDCFDCF877524DD896B /* Products */, + 17E661ACE046111F65EB8BC53399F9D5 /* Targets Support Files */, + ); + sourceTree = ""; + }; + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + E4801F62A6B08CD9B5410329F1A18FDE /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + D89266006DC36009E817D04F8788D146 /* Pods-ios_content_resizingTests */ = { + isa = PBXGroup; + children = ( + 4F9125ED2B32F99F97EDBFBE15D053F3 /* Pods-ios_content_resizingTests.modulemap */, + EB01D38E9B9397013BDA6F2ECD3C116A /* Pods-ios_content_resizingTests-acknowledgements.markdown */, + 550F9C4A71235EA01D58F70B41B5E3B9 /* Pods-ios_content_resizingTests-acknowledgements.plist */, + BA027B63B056E637B52DC48E997871D7 /* Pods-ios_content_resizingTests-dummy.m */, + EC58DCEFE8DA0A2BC696E7AD13C037B4 /* Pods-ios_content_resizingTests-Info.plist */, + 715630C735F4805B3A805CF50A9585F3 /* Pods-ios_content_resizingTests-umbrella.h */, + 95DFED33AEBE20CFC59AC2D89DF45F13 /* Pods-ios_content_resizingTests.debug.xcconfig */, + 1DB7953AE371D07C9F6F2864A55214EC /* Pods-ios_content_resizingTests.release.xcconfig */, + ); + name = "Pods-ios_content_resizingTests"; + path = "Target Support Files/Pods-ios_content_resizingTests"; + sourceTree = ""; + }; + E236746D72969B68FE0982CAC2FA077D /* FlutterPluginRegistrant */ = { + isa = PBXGroup; + children = ( + 7E2D1DC1EC3C3E20E7FB2A0FF3EF4FCE /* GeneratedPluginRegistrant.h */, + 2CE7A004F669D9407A99593AB2AFD491 /* GeneratedPluginRegistrant.m */, + CAF78B8E3930ADF8B64CF30FC13AA025 /* Pod */, + 2479EE86B1BDE660ABC7156E54E5A81C /* Support Files */, + ); + name = FlutterPluginRegistrant; + path = ../../flutter_module/.ios/Flutter/FlutterPluginRegistrant; + sourceTree = ""; + }; + E30233976B4062D1B8D8CBF9AB58FDEF /* Support Files */ = { + isa = PBXGroup; + children = ( + BB6445B421DA90DD6610EE80D499E3B4 /* Flutter.debug.xcconfig */, + 7190D3A2421CEF0390C6C11ED312EB1B /* Flutter.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../ios_content_resizing/Pods/Target Support Files/Flutter"; + sourceTree = ""; + }; + E4801F62A6B08CD9B5410329F1A18FDE /* iOS */ = { + isa = PBXGroup; + children = ( + 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 0FD43C857895FACDAB7AA8C0FF502499 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B6AE8F15F2F866E8B52DC17217A64E71 /* Pods-ios_content_resizingTests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 32F610179E9D72EE3A16EB3843931EE5 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ACC932BEF12584E78B91E93346CB63E2 /* FlutterPluginRegistrant-umbrella.h in Headers */, + 4EE0C80B8A3C1107458579AFB4E41741 /* GeneratedPluginRegistrant.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 51C7632BD4576CB1075F90A036533FE9 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B3889D09053A313F7A70C12C7D2B587C /* Pods-ios_content_resizing-ios_content_resizingUITests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B2B5AE61D5B2BAC16D2CCA2B5E4F8DEE /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D082208849F456F5518E6230A683096B /* Pods-ios_content_resizing-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 81D87E4496B08116037E5861D2F209C8 /* Pods-ios_content_resizing-ios_content_resizingUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6B2F3D8F2303282D58B664BE8F2D4EA8 /* Build configuration list for PBXNativeTarget "Pods-ios_content_resizing-ios_content_resizingUITests" */; + buildPhases = ( + 51C7632BD4576CB1075F90A036533FE9 /* Headers */, + 6558434F3ED48ADA5D330EDA3E26529C /* Sources */, + DE8E25759FD7427C882BA4EB71D22E80 /* Frameworks */, + A566FEC23C5B98D2E72A7B131DA712B0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + EA4B8DFAE72877B05FABD41CFF09E680 /* PBXTargetDependency */, + EDA8F941BE29B16B5B697A2DED6651F5 /* PBXTargetDependency */, + ); + name = "Pods-ios_content_resizing-ios_content_resizingUITests"; + productName = Pods_ios_content_resizing_ios_content_resizingUITests; + productReference = DEE6C5FCB90FB050631DE9252A0FF907 /* Pods-ios_content_resizing-ios_content_resizingUITests */; + productType = "com.apple.product-type.framework"; + }; + 83DAA8F43D74F8D51203DE23C7C3A3F5 /* FlutterPluginRegistrant */ = { + isa = PBXNativeTarget; + buildConfigurationList = C9C0BE58A278116122B314654A0C4A57 /* Build configuration list for PBXNativeTarget "FlutterPluginRegistrant" */; + buildPhases = ( + 32F610179E9D72EE3A16EB3843931EE5 /* Headers */, + EE402EE2699B3EFF89477200DF3CE148 /* Sources */, + C85264A7AE5B8D2D6D41BECD6C886F30 /* Frameworks */, + 41C85A835F7246370834586E809DA47B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 3796C178DFE7E4BF73050579F753935D /* PBXTargetDependency */, + ); + name = FlutterPluginRegistrant; + productName = FlutterPluginRegistrant; + productReference = DF7C6EBB9161EEF650EC12B4BB67E628 /* FlutterPluginRegistrant */; + productType = "com.apple.product-type.framework"; + }; + CD1FE7E172044780FE5855099C6F9044 /* Pods-ios_content_resizing */ = { + isa = PBXNativeTarget; + buildConfigurationList = F446D705FA553D5DDA096E4FA9C58C9A /* Build configuration list for PBXNativeTarget "Pods-ios_content_resizing" */; + buildPhases = ( + B2B5AE61D5B2BAC16D2CCA2B5E4F8DEE /* Headers */, + D8AB908807A6536C9CCC151F2A5AC435 /* Sources */, + 3C14517AA188AA0F4644710BDF6F2E0B /* Frameworks */, + 2C5BDD3A05AF10694FB31F41E7136D9A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 28E6E08F0100197B5A7C30DEE65648FD /* PBXTargetDependency */, + 1DE7FB42D09CCE770F342A633F255B1E /* PBXTargetDependency */, + ); + name = "Pods-ios_content_resizing"; + productName = Pods_ios_content_resizing; + productReference = B1B78154C420D3C3E3BB30C73471AF58 /* Pods-ios_content_resizing */; + productType = "com.apple.product-type.framework"; + }; + E4EA532EB8D753070F4018E9EB3C09A2 /* Pods-ios_content_resizingTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9C81C4875C3CAE4CE50BCD8564492388 /* Build configuration list for PBXNativeTarget "Pods-ios_content_resizingTests" */; + buildPhases = ( + 0FD43C857895FACDAB7AA8C0FF502499 /* Headers */, + 5CEB1B2249C5D86647F8F2BEFA578F1C /* Sources */, + 830D63870BCE1E7548BFBF07AF254BC6 /* Frameworks */, + AF5798AF7A08861DE74D1251C1BE5D0C /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 97EE237CECB95E15153F7C32A348F503 /* PBXTargetDependency */, + ); + name = "Pods-ios_content_resizingTests"; + productName = Pods_ios_content_resizingTests; + productReference = 848315FC91D61DDA12BFE10AF7903DD9 /* Pods-ios_content_resizingTests */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1600; + LastUpgradeCheck = 1600; + }; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 16.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + minimizedProjectReferenceProxies = 0; + preferredProjectObjectVersion = 77; + productRefGroup = 6F7106898BE13FDCFDCF877524DD896B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1EFDDC32A34D56D411E640A81DCD9E73 /* Flutter */, + 83DAA8F43D74F8D51203DE23C7C3A3F5 /* FlutterPluginRegistrant */, + CD1FE7E172044780FE5855099C6F9044 /* Pods-ios_content_resizing */, + 81D87E4496B08116037E5861D2F209C8 /* Pods-ios_content_resizing-ios_content_resizingUITests */, + E4EA532EB8D753070F4018E9EB3C09A2 /* Pods-ios_content_resizingTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 2C5BDD3A05AF10694FB31F41E7136D9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41C85A835F7246370834586E809DA47B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A566FEC23C5B98D2E72A7B131DA712B0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AF5798AF7A08861DE74D1251C1BE5D0C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5CEB1B2249C5D86647F8F2BEFA578F1C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0B55D92CD2BAF933FE9D276939406D2C /* Pods-ios_content_resizingTests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6558434F3ED48ADA5D330EDA3E26529C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1C8B15B53492E657E17E19CD85AA35C0 /* Pods-ios_content_resizing-ios_content_resizingUITests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D8AB908807A6536C9CCC151F2A5AC435 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C31439779167DBFB0C2D6E1D2F3C673C /* Pods-ios_content_resizing-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EE402EE2699B3EFF89477200DF3CE148 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D065E4911A1DC5E493EEF7DB517B7214 /* FlutterPluginRegistrant-dummy.m in Sources */, + 44F46818A4A76D2DC7F7FDADAB40E781 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 1DE7FB42D09CCE770F342A633F255B1E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FlutterPluginRegistrant; + target = 83DAA8F43D74F8D51203DE23C7C3A3F5 /* FlutterPluginRegistrant */; + targetProxy = 30CCE7DF2B096D489C0337201A23FEAB /* PBXContainerItemProxy */; + }; + 28E6E08F0100197B5A7C30DEE65648FD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Flutter; + target = 1EFDDC32A34D56D411E640A81DCD9E73 /* Flutter */; + targetProxy = 7948C6A42ED494BC018F1377A88CB2A6 /* PBXContainerItemProxy */; + }; + 3796C178DFE7E4BF73050579F753935D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Flutter; + target = 1EFDDC32A34D56D411E640A81DCD9E73 /* Flutter */; + targetProxy = 0F89DBD5A9470B70308A8E62C10B4DC1 /* PBXContainerItemProxy */; + }; + 97EE237CECB95E15153F7C32A348F503 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-ios_content_resizing"; + target = CD1FE7E172044780FE5855099C6F9044 /* Pods-ios_content_resizing */; + targetProxy = 78511F1C1FD5C9BCB89672C1D4CF0475 /* PBXContainerItemProxy */; + }; + EA4B8DFAE72877B05FABD41CFF09E680 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Flutter; + target = 1EFDDC32A34D56D411E640A81DCD9E73 /* Flutter */; + targetProxy = 2C9791B40262CCA18DEA3CC7B7E1C667 /* PBXContainerItemProxy */; + }; + EDA8F941BE29B16B5B697A2DED6651F5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FlutterPluginRegistrant; + target = 83DAA8F43D74F8D51203DE23C7C3A3F5 /* FlutterPluginRegistrant */; + targetProxy = FC692C20666B5D147B676FA8171775D9 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 040F80BD2D4B620F91B295DA27374820 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 95DFED33AEBE20CFC59AC2D89DF45F13 /* Pods-ios_content_resizingTests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386"; + "FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\"", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\"", + "$(inherited)", + ); + INFOPLIST_FILE = "Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.modulemap"; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + Flutter, + ); + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + "VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 1602B4EBAE0C64817990D65F3711E6C6 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6056F33DB108BE122160D138498C99F8 /* Pods-ios_content_resizing-ios_content_resizingUITests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386"; + "FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\"", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\"", + "$(inherited)", + ); + INFOPLIST_FILE = "Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.modulemap"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + Flutter, + ); + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + "VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 7CA996BECDFC2548E01D9AF66C171E89 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1B2A7B60A690627987F4A32728B1C441 /* Pods-ios_content_resizing-ios_content_resizingUITests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386"; + "FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\"", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\"", + "$(inherited)", + ); + INFOPLIST_FILE = "Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.modulemap"; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + Flutter, + ); + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + "VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + A3CA710B05DD0D38FF0C61760F3B99FB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + B0AD22997967310A1650F12017E3C2C7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1D1E78871CC9F2B1032560E19646993A /* FlutterPluginRegistrant.release.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386"; + "FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\"", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\"", + "$(inherited)", + ); + GCC_PREFIX_HEADER = "Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.modulemap"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + Flutter, + ); + PRODUCT_MODULE_NAME = FlutterPluginRegistrant; + PRODUCT_NAME = FlutterPluginRegistrant; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + "VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + CB3A369004330A68D6CB0D804AE27792 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7190D3A2421CEF0390C6C11ED312EB1B /* Flutter.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_OBJC_WEAK = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + D8D83461AC915BEDCB4A478E1E489628 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BB6445B421DA90DD6610EE80D499E3B4 /* Flutter.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_OBJC_WEAK = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + ONLY_ACTIVE_ARCH = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + DFFBA46802CC7CCEBC5643E3F5B22C07 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5A9ED177DD476853C074763AE7635D34 /* FlutterPluginRegistrant.debug.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386"; + "FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\"", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\"", + "$(inherited)", + ); + GCC_PREFIX_HEADER = "Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.modulemap"; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + Flutter, + ); + PRODUCT_MODULE_NAME = FlutterPluginRegistrant; + PRODUCT_NAME = FlutterPluginRegistrant; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + "VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + E2364721D6682F8B9E80045232309A09 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + F955CE243E6CED064AA3566C5AB2B4C0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2ABF8D83AB2BF46EE272C48561AC5A9E /* Pods-ios_content_resizing.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386"; + "FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\"", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\"", + "$(inherited)", + ); + INFOPLIST_FILE = "Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.modulemap"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + Flutter, + ); + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + "VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + FCDBA9CEDD692CC12B081D6F97592E39 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1DB7953AE371D07C9F6F2864A55214EC /* Pods-ios_content_resizingTests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386"; + "FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\"", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\"", + "$(inherited)", + ); + INFOPLIST_FILE = "Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.modulemap"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + Flutter, + ); + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + "VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + FD819B07C2E487E567F75DEA02AA0254 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 808964E349CF6A9C44A0909D0D6EEE8E /* Pods-ios_content_resizing.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386"; + "FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\"", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = ( + "\"/Users/louisehsu/Development/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\"", + "$(inherited)", + ); + INFOPLIST_FILE = "Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.modulemap"; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + Flutter, + ); + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + "VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A3CA710B05DD0D38FF0C61760F3B99FB /* Debug */, + E2364721D6682F8B9E80045232309A09 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6B2F3D8F2303282D58B664BE8F2D4EA8 /* Build configuration list for PBXNativeTarget "Pods-ios_content_resizing-ios_content_resizingUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7CA996BECDFC2548E01D9AF66C171E89 /* Debug */, + 1602B4EBAE0C64817990D65F3711E6C6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9C81C4875C3CAE4CE50BCD8564492388 /* Build configuration list for PBXNativeTarget "Pods-ios_content_resizingTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 040F80BD2D4B620F91B295DA27374820 /* Debug */, + FCDBA9CEDD692CC12B081D6F97592E39 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B26E11467D023FA6CDCE36F75198812F /* Build configuration list for PBXAggregateTarget "Flutter" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D8D83461AC915BEDCB4A478E1E489628 /* Debug */, + CB3A369004330A68D6CB0D804AE27792 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C9C0BE58A278116122B314654A0C4A57 /* Build configuration list for PBXNativeTarget "FlutterPluginRegistrant" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DFFBA46802CC7CCEBC5643E3F5B22C07 /* Debug */, + B0AD22997967310A1650F12017E3C2C7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F446D705FA553D5DDA096E4FA9C58C9A /* Build configuration list for PBXNativeTarget "Pods-ios_content_resizing" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FD819B07C2E487E567F75DEA02AA0254 /* Debug */, + F955CE243E6CED064AA3566C5AB2B4C0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Flutter.xcscheme b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Flutter.xcscheme new file mode 100644 index 000000000..efb76cca4 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Flutter.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/FlutterPluginRegistrant.xcscheme b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/FlutterPluginRegistrant.xcscheme new file mode 100644 index 000000000..629d12c5c --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/FlutterPluginRegistrant.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Pods-ios_content_resizing-ios_content_resizingUITests.xcscheme b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Pods-ios_content_resizing-ios_content_resizingUITests.xcscheme new file mode 100644 index 000000000..f6460fe27 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Pods-ios_content_resizing-ios_content_resizingUITests.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Pods-ios_content_resizing.xcscheme b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Pods-ios_content_resizing.xcscheme new file mode 100644 index 000000000..ff91729c9 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Pods-ios_content_resizing.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Pods-ios_content_resizingTests.xcscheme b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Pods-ios_content_resizingTests.xcscheme new file mode 100644 index 000000000..c080fe82e --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/Pods-ios_content_resizingTests.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/xcschememanagement.plist b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..b602389ce --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Pods.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,46 @@ + + + + + SchemeUserState + + Flutter.xcscheme + + isShown + + orderHint + 0 + + FlutterPluginRegistrant.xcscheme + + isShown + + orderHint + 1 + + Pods-ios_content_resizing-ios_content_resizingUITests.xcscheme + + isShown + + orderHint + 3 + + Pods-ios_content_resizing.xcscheme + + isShown + + orderHint + 2 + + Pods-ios_content_resizingTests.xcscheme + + isShown + + orderHint + 4 + + + SuppressBuildableAutocreation + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Flutter/Flutter.debug.xcconfig b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Flutter/Flutter.debug.xcconfig new file mode 100644 index 000000000..17a86f0b2 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Flutter/Flutter.debug.xcconfig @@ -0,0 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Flutter +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../flutter_module/.ios/Flutter +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Flutter/Flutter.release.xcconfig b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Flutter/Flutter.release.xcconfig new file mode 100644 index 000000000..17a86f0b2 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Flutter/Flutter.release.xcconfig @@ -0,0 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Flutter +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../flutter_module/.ios/Flutter +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-Info.plist b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-Info.plist new file mode 100644 index 000000000..8928a8d90 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 0.0.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-dummy.m b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-dummy.m new file mode 100644 index 000000000..e6bdef1cf --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_FlutterPluginRegistrant : NSObject +@end +@implementation PodsDummy_FlutterPluginRegistrant +@end diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-prefix.pch b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-prefix.pch new file mode 100644 index 000000000..beb2a2441 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-umbrella.h b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-umbrella.h new file mode 100644 index 000000000..43d71fa4a --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "GeneratedPluginRegistrant.h" + +FOUNDATION_EXPORT double FlutterPluginRegistrantVersionNumber; +FOUNDATION_EXPORT const unsigned char FlutterPluginRegistrantVersionString[]; + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.debug.xcconfig b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.debug.xcconfig new file mode 100644 index 000000000..ce7bdbb7b --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.debug.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant +DEFINES_MODULE = YES +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../flutter_module/.ios/Flutter/FlutterPluginRegistrant +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.modulemap b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.modulemap new file mode 100644 index 000000000..44b5ef2d0 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.modulemap @@ -0,0 +1,6 @@ +framework module FlutterPluginRegistrant { + umbrella header "FlutterPluginRegistrant-umbrella.h" + + export * + module * { export * } +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.release.xcconfig b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.release.xcconfig new file mode 100644 index 000000000..ce7bdbb7b --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant.release.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant +DEFINES_MODULE = YES +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../flutter_module/.ios/Flutter/FlutterPluginRegistrant +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-Info.plist b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-Info.plist new file mode 100644 index 000000000..19cf209d2 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.markdown b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.markdown new file mode 100644 index 000000000..102af7538 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.plist b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.plist new file mode 100644 index 000000000..7acbad1ea --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-dummy.m b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-dummy.m new file mode 100644 index 000000000..365aa010f --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_ios_content_resizing_ios_content_resizingUITests : NSObject +@end +@implementation PodsDummy_Pods_ios_content_resizing_ios_content_resizingUITests +@end diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-umbrella.h b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-umbrella.h new file mode 100644 index 000000000..0746477c7 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_ios_content_resizing_ios_content_resizingUITestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_ios_content_resizing_ios_content_resizingUITestsVersionString[]; + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.debug.xcconfig b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.debug.xcconfig new file mode 100644 index 000000000..a2c851c81 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.debug.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant/FlutterPluginRegistrant.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant/FlutterPluginRegistrant.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "FlutterPluginRegistrant" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/Flutter" "-F${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.modulemap b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.modulemap new file mode 100644 index 000000000..01cab2eaa --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_ios_content_resizing_ios_content_resizingUITests { + umbrella header "Pods-ios_content_resizing-ios_content_resizingUITests-umbrella.h" + + export * + module * { export * } +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.release.xcconfig b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.release.xcconfig new file mode 100644 index 000000000..a2c851c81 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.release.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant/FlutterPluginRegistrant.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant/FlutterPluginRegistrant.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "FlutterPluginRegistrant" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/Flutter" "-F${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-Info.plist b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-Info.plist new file mode 100644 index 000000000..19cf209d2 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-acknowledgements.markdown b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-acknowledgements.markdown new file mode 100644 index 000000000..102af7538 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-acknowledgements.plist b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-acknowledgements.plist new file mode 100644 index 000000000..7acbad1ea --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-dummy.m b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-dummy.m new file mode 100644 index 000000000..16c489cde --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_ios_content_resizing : NSObject +@end +@implementation PodsDummy_Pods_ios_content_resizing +@end diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-umbrella.h b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-umbrella.h new file mode 100644 index 000000000..d3e7c43d4 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_ios_content_resizingVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_ios_content_resizingVersionString[]; + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.debug.xcconfig b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.debug.xcconfig new file mode 100644 index 000000000..a2c851c81 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.debug.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant/FlutterPluginRegistrant.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant/FlutterPluginRegistrant.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "FlutterPluginRegistrant" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/Flutter" "-F${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.modulemap b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.modulemap new file mode 100644 index 000000000..c1ff0898c --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.modulemap @@ -0,0 +1,6 @@ +framework module Pods_ios_content_resizing { + umbrella header "Pods-ios_content_resizing-umbrella.h" + + export * + module * { export * } +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.release.xcconfig b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.release.xcconfig new file mode 100644 index 000000000..a2c851c81 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.release.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant/FlutterPluginRegistrant.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant/FlutterPluginRegistrant.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "FlutterPluginRegistrant" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/Flutter" "-F${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-Info.plist b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-Info.plist new file mode 100644 index 000000000..19cf209d2 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-acknowledgements.markdown b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-acknowledgements.markdown new file mode 100644 index 000000000..102af7538 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-acknowledgements.plist b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-acknowledgements.plist new file mode 100644 index 000000000..7acbad1ea --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-dummy.m b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-dummy.m new file mode 100644 index 000000000..9e93bedc3 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_ios_content_resizingTests : NSObject +@end +@implementation PodsDummy_Pods_ios_content_resizingTests +@end diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-umbrella.h b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-umbrella.h new file mode 100644 index 000000000..793d3fca3 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_ios_content_resizingTestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_ios_content_resizingTestsVersionString[]; + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.debug.xcconfig b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.debug.xcconfig new file mode 100644 index 000000000..80e5b31ec --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.debug.xcconfig @@ -0,0 +1,10 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant/FlutterPluginRegistrant.framework/Headers" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.modulemap b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.modulemap new file mode 100644 index 000000000..a09c5bac3 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_ios_content_resizingTests { + umbrella header "Pods-ios_content_resizingTests-umbrella.h" + + export * + module * { export * } +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.release.xcconfig b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.release.xcconfig new file mode 100644 index 000000000..80e5b31ec --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/Pods/Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.release.xcconfig @@ -0,0 +1,10 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FlutterPluginRegistrant/FlutterPluginRegistrant.framework/Headers" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/.gitignore b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/.gitignore new file mode 100644 index 000000000..cdecf14aa --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/.gitignore @@ -0,0 +1,41 @@ +.DS_Store +.dart_tool/ + +.packages +.pub/ + +.idea/ +.vagrant/ +.sconsign.dblite +.svn/ + +*.swp +profile + +DerivedData/ + +.generated/ + +*.pbxuser +*.mode1v3 +*.mode2v3 +*.perspectivev3 + +!default.pbxuser +!default.mode1v3 +!default.mode2v3 +!default.perspectivev3 + +xcuserdata + +*.moved-aside + +*.pyc +*sync/ +Icon? +.tags* + +build/ +.android/ +.ios/ +.flutter-plugins diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/.metadata b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/.metadata new file mode 100644 index 000000000..194fb3cc0 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 532a8fed41a4f6595965f02f3edf9666ba5ebf44 + channel: master + +project_type: module diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/README.md b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/README.md new file mode 100644 index 000000000..092c7d11a --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/README.md @@ -0,0 +1,14 @@ +# flutter_module + +An example Flutter module used in the Flutter add-to-app samples. For more +information on how to use it, see the [README.md](../README.md) parent +directory. + +## Getting Started + +For more information about Flutter, check out +[flutter.dev](https://flutter.dev). + +For instructions on how to integrate Flutter modules into your existing +applications, see Flutter's +[add-to-app documentation](https://flutter.dev/docs/development/add-to-app). diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/analysis_options.yaml b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/analysis_options.yaml new file mode 100644 index 000000000..13d6fe105 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/analysis_options.yaml @@ -0,0 +1 @@ +include: package:analysis_defaults/flutter.yaml diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/lib/main.dart b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/lib/main.dart new file mode 100644 index 000000000..875600586 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/lib/main.dart @@ -0,0 +1,55 @@ +import 'package:flutter/material.dart'; + +void main() { + runApp(const MyApp()); +} + +/// The main application widget for the Fruit Catalog. +class MyApp extends StatefulWidget { + /// Creates the [MyApp]. + const MyApp({super.key}); + + @override + State createState() => _MyAppState(); +} + +class _MyAppState extends State { + int _counter = 1; + void _incrementCounter() { + setState(() { + if (_counter > 40) { + _counter = 1; + } + _counter++; + }); + } + + @override + Widget build(BuildContext context) { + + return Center( + heightFactor: 1, + child: Directionality( + textDirection: TextDirection.ltr, + child: Column( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + for (int i = 0; i < _counter; i++) + Text( + "Hello from Flutter $i", + style: TextStyle(color: Colors.pink), + ), + Padding( + padding: const EdgeInsets.fromLTRB(8.0, 50, 8.0, 8.0), + child: ElevatedButton( + onPressed: _incrementCounter, + child: Text("Add to list"), + ), + ), + + ], + ), + ), + ); + } +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/pubspec.yaml b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/pubspec.yaml new file mode 100644 index 000000000..2c00a2cb1 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/pubspec.yaml @@ -0,0 +1,35 @@ +name: flutter_module +description: An example Flutter module. + +version: 1.0.0+1 + +environment: + sdk: ^3.7.0-0 + +dependencies: + flutter: + sdk: flutter + provider: ^6.0.2 + +dev_dependencies: + analysis_defaults: + path: ../../../analysis_defaults + flutter_test: + sdk: flutter + flutter_driver: + sdk: flutter + espresso: ">=0.2.0 <0.5.0" + +flutter: + uses-material-design: true + + # This section identifies your Flutter project as a module meant for + # embedding in a native host app. These identifiers should _not_ ordinarily + # be changed after generation - they are used to ensure that the tooling can + # maintain consistency when adding or modifying assets and plugins. + # They also do not have any bearing on your native host application's + # identifiers, which may be completely independent or the same as these. + module: + androidX: true + androidPackage: dev.flutter.example.flutter_module + iosBundleIdentifier: dev.flutter.example.flutterModule diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/test/widget_test.dart b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/test/widget_test.dart new file mode 100644 index 000000000..e16884a88 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/test/widget_test.dart @@ -0,0 +1,47 @@ +// Copyright 2019 The Flutter team. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; +import 'package:flutter_module/main.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:provider/provider.dart'; + +class MockCounterModel extends ChangeNotifier implements CounterModel { + int _count = 0; + + @override + int get count => _count; + + @override + void increment() { + _count++; + notifyListeners(); + } +} + +void main() { + testWidgets('MiniView smoke test', (tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget( + MaterialApp( + home: ChangeNotifierProvider.value( + value: MockCounterModel(), + child: const Contents(), + ), + ), + ); + + // Verify that our counter starts at 0. + expect(find.text('Taps: 0'), findsOneWidget); + expect(find.text('Taps: 1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.text('Tap me!')); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('Taps: 0'), findsNothing); + expect(find.text('Taps: 1'), findsOneWidget); + }); +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/test_driver/example.dart b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/test_driver/example.dart new file mode 100644 index 000000000..5f1e45315 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/flutter_module/test_driver/example.dart @@ -0,0 +1,13 @@ +// Copyright 2020 The Flutter team. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter_driver/driver_extension.dart'; +import 'package:flutter_module/main.dart' as app; + +// This alternate entrypoint is used for espresso testing. See +// https://pub.dev/packages/espresso for details. +void main() { + enableFlutterDriverExtension(); + app.main(); +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/project.pbxproj b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/project.pbxproj new file mode 100644 index 000000000..05ee1e094 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/project.pbxproj @@ -0,0 +1,719 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + 7CAC012226BEEB661A102697 /* Pods_ios_content_resizingTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E04F6A34F21CD3BE6A257DDB /* Pods_ios_content_resizingTests.framework */; }; + 7F699BB7742B5FAB4C12CE5C /* Pods_ios_content_resizing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 636EB75E6827B94D35B9E15C /* Pods_ios_content_resizing.framework */; }; + E843104071C29E6CE30D637B /* Pods_ios_content_resizing_ios_content_resizingUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 979B0953B3CB94157C961BB5 /* Pods_ios_content_resizing_ios_content_resizingUITests.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + F23EDFE72EE0E81C00A217AA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F23EDFC82EE0E81A00A217AA /* Project object */; + proxyType = 1; + remoteGlobalIDString = F23EDFCF2EE0E81A00A217AA; + remoteInfo = ios_content_resizing; + }; + F23EDFF12EE0E81C00A217AA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F23EDFC82EE0E81A00A217AA /* Project object */; + proxyType = 1; + remoteGlobalIDString = F23EDFCF2EE0E81A00A217AA; + remoteInfo = ios_content_resizing; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 21AF0E08BF01F3EA6AF43D73 /* Pods-ios_content_resizing-ios_content_resizingUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios_content_resizing-ios_content_resizingUITests.debug.xcconfig"; path = "Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.debug.xcconfig"; sourceTree = ""; }; + 2FEEB1287F59F7D0F950708C /* Pods-ios_content_resizingTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios_content_resizingTests.release.xcconfig"; path = "Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.release.xcconfig"; sourceTree = ""; }; + 5FED92584E697C8B2564E54E /* Pods-ios_content_resizingTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios_content_resizingTests.debug.xcconfig"; path = "Target Support Files/Pods-ios_content_resizingTests/Pods-ios_content_resizingTests.debug.xcconfig"; sourceTree = ""; }; + 636EB75E6827B94D35B9E15C /* Pods_ios_content_resizing.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_content_resizing.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 979B0953B3CB94157C961BB5 /* Pods_ios_content_resizing_ios_content_resizingUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_content_resizing_ios_content_resizingUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C170EDA9CDBAFCCCE6D0E1C0 /* Pods-ios_content_resizing.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios_content_resizing.release.xcconfig"; path = "Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.release.xcconfig"; sourceTree = ""; }; + D301423152989400BB7B71AC /* Pods-ios_content_resizing-ios_content_resizingUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios_content_resizing-ios_content_resizingUITests.release.xcconfig"; path = "Target Support Files/Pods-ios_content_resizing-ios_content_resizingUITests/Pods-ios_content_resizing-ios_content_resizingUITests.release.xcconfig"; sourceTree = ""; }; + D59E29ECBED0852D37A99053 /* Pods-ios_content_resizing.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios_content_resizing.debug.xcconfig"; path = "Target Support Files/Pods-ios_content_resizing/Pods-ios_content_resizing.debug.xcconfig"; sourceTree = ""; }; + E04F6A34F21CD3BE6A257DDB /* Pods_ios_content_resizingTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_content_resizingTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F23EDFD02EE0E81A00A217AA /* ios_content_resizing.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ios_content_resizing.app; sourceTree = BUILT_PRODUCTS_DIR; }; + F23EDFE62EE0E81C00A217AA /* ios_content_resizingTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ios_content_resizingTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + F23EDFF02EE0E81C00A217AA /* ios_content_resizingUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ios_content_resizingUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + F23EDFF82EE0E81C00A217AA /* Exceptions for "ios_content_resizing" folder in "ios_content_resizing" target */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = F23EDFCF2EE0E81A00A217AA /* ios_content_resizing */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + F23EDFD22EE0E81A00A217AA /* ios_content_resizing */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + F23EDFF82EE0E81C00A217AA /* Exceptions for "ios_content_resizing" folder in "ios_content_resizing" target */, + ); + path = ios_content_resizing; + sourceTree = ""; + }; + F23EDFE92EE0E81C00A217AA /* ios_content_resizingTests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + ); + path = ios_content_resizingTests; + sourceTree = ""; + }; + F23EDFF32EE0E81C00A217AA /* ios_content_resizingUITests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + ); + path = ios_content_resizingUITests; + sourceTree = ""; + }; +/* End PBXFileSystemSynchronizedRootGroup section */ + +/* Begin PBXFrameworksBuildPhase section */ + F23EDFCD2EE0E81A00A217AA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7F699BB7742B5FAB4C12CE5C /* Pods_ios_content_resizing.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F23EDFE32EE0E81C00A217AA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7CAC012226BEEB661A102697 /* Pods_ios_content_resizingTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F23EDFED2EE0E81C00A217AA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E843104071C29E6CE30D637B /* Pods_ios_content_resizing_ios_content_resizingUITests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 26A2B7F96A58CC7941B47702 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 636EB75E6827B94D35B9E15C /* Pods_ios_content_resizing.framework */, + 979B0953B3CB94157C961BB5 /* Pods_ios_content_resizing_ios_content_resizingUITests.framework */, + E04F6A34F21CD3BE6A257DDB /* Pods_ios_content_resizingTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 429AA23544B1D6221E46F99C /* Pods */ = { + isa = PBXGroup; + children = ( + D59E29ECBED0852D37A99053 /* Pods-ios_content_resizing.debug.xcconfig */, + C170EDA9CDBAFCCCE6D0E1C0 /* Pods-ios_content_resizing.release.xcconfig */, + 21AF0E08BF01F3EA6AF43D73 /* Pods-ios_content_resizing-ios_content_resizingUITests.debug.xcconfig */, + D301423152989400BB7B71AC /* Pods-ios_content_resizing-ios_content_resizingUITests.release.xcconfig */, + 5FED92584E697C8B2564E54E /* Pods-ios_content_resizingTests.debug.xcconfig */, + 2FEEB1287F59F7D0F950708C /* Pods-ios_content_resizingTests.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + F23EDFC72EE0E81A00A217AA = { + isa = PBXGroup; + children = ( + F23EDFD22EE0E81A00A217AA /* ios_content_resizing */, + F23EDFE92EE0E81C00A217AA /* ios_content_resizingTests */, + F23EDFF32EE0E81C00A217AA /* ios_content_resizingUITests */, + F23EDFD12EE0E81A00A217AA /* Products */, + 429AA23544B1D6221E46F99C /* Pods */, + 26A2B7F96A58CC7941B47702 /* Frameworks */, + ); + sourceTree = ""; + }; + F23EDFD12EE0E81A00A217AA /* Products */ = { + isa = PBXGroup; + children = ( + F23EDFD02EE0E81A00A217AA /* ios_content_resizing.app */, + F23EDFE62EE0E81C00A217AA /* ios_content_resizingTests.xctest */, + F23EDFF02EE0E81C00A217AA /* ios_content_resizingUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + F23EDFCF2EE0E81A00A217AA /* ios_content_resizing */ = { + isa = PBXNativeTarget; + buildConfigurationList = F23EDFF92EE0E81C00A217AA /* Build configuration list for PBXNativeTarget "ios_content_resizing" */; + buildPhases = ( + 04B5F7353A97C8C66DB1345D /* [CP] Check Pods Manifest.lock */, + 0096AB54D225CF9ABA303477 /* [CP-User] Run Flutter Build flutter_module Script */, + F23EDFCC2EE0E81A00A217AA /* Sources */, + F23EDFCD2EE0E81A00A217AA /* Frameworks */, + F23EDFCE2EE0E81A00A217AA /* Resources */, + 81C6A5B8754ABF6932230914 /* [CP-User] Embed Flutter Build flutter_module Script */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + F23EDFD22EE0E81A00A217AA /* ios_content_resizing */, + ); + name = ios_content_resizing; + productName = ios_content_resizing; + productReference = F23EDFD02EE0E81A00A217AA /* ios_content_resizing.app */; + productType = "com.apple.product-type.application"; + }; + F23EDFE52EE0E81C00A217AA /* ios_content_resizingTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = F23EDFFE2EE0E81C00A217AA /* Build configuration list for PBXNativeTarget "ios_content_resizingTests" */; + buildPhases = ( + D845714EE96E84A345CC5AFB /* [CP] Check Pods Manifest.lock */, + F23EDFE22EE0E81C00A217AA /* Sources */, + F23EDFE32EE0E81C00A217AA /* Frameworks */, + F23EDFE42EE0E81C00A217AA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + F23EDFE82EE0E81C00A217AA /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + F23EDFE92EE0E81C00A217AA /* ios_content_resizingTests */, + ); + name = ios_content_resizingTests; + productName = ios_content_resizingTests; + productReference = F23EDFE62EE0E81C00A217AA /* ios_content_resizingTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + F23EDFEF2EE0E81C00A217AA /* ios_content_resizingUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = F23EE0012EE0E81C00A217AA /* Build configuration list for PBXNativeTarget "ios_content_resizingUITests" */; + buildPhases = ( + CD035F8822407F4FA59AE066 /* [CP] Check Pods Manifest.lock */, + F23EDFEC2EE0E81C00A217AA /* Sources */, + F23EDFED2EE0E81C00A217AA /* Frameworks */, + F23EDFEE2EE0E81C00A217AA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + F23EDFF22EE0E81C00A217AA /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + F23EDFF32EE0E81C00A217AA /* ios_content_resizingUITests */, + ); + name = ios_content_resizingUITests; + productName = ios_content_resizingUITests; + productReference = F23EDFF02EE0E81C00A217AA /* ios_content_resizingUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + F23EDFC82EE0E81A00A217AA /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1640; + LastUpgradeCheck = 1640; + TargetAttributes = { + F23EDFCF2EE0E81A00A217AA = { + CreatedOnToolsVersion = 16.4; + }; + F23EDFE52EE0E81C00A217AA = { + CreatedOnToolsVersion = 16.4; + TestTargetID = F23EDFCF2EE0E81A00A217AA; + }; + F23EDFEF2EE0E81C00A217AA = { + CreatedOnToolsVersion = 16.4; + TestTargetID = F23EDFCF2EE0E81A00A217AA; + }; + }; + }; + buildConfigurationList = F23EDFCB2EE0E81A00A217AA /* Build configuration list for PBXProject "ios_content_resizing" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = F23EDFC72EE0E81A00A217AA; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = F23EDFD12EE0E81A00A217AA /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + F23EDFCF2EE0E81A00A217AA /* ios_content_resizing */, + F23EDFE52EE0E81C00A217AA /* ios_content_resizingTests */, + F23EDFEF2EE0E81C00A217AA /* ios_content_resizingUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + F23EDFCE2EE0E81A00A217AA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F23EDFE42EE0E81C00A217AA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F23EDFEE2EE0E81C00A217AA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 0096AB54D225CF9ABA303477 /* [CP-User] Run Flutter Build flutter_module Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + name = "[CP-User] Run Flutter Build flutter_module Script"; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\nset -u\nsource \"${SRCROOT}/../flutter_module/.ios/Flutter/flutter_export_environment.sh\"\nexport VERBOSE_SCRIPT_LOGGING=1 && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/xcode_backend.sh build"; + }; + 04B5F7353A97C8C66DB1345D /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-ios_content_resizing-checkManifestLockResult.txt", + ); + 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"; + showEnvVarsInLog = 0; + }; + 81C6A5B8754ABF6932230914 /* [CP-User] Embed Flutter Build flutter_module Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + name = "[CP-User] Embed Flutter Build flutter_module Script"; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\nset -u\nsource \"${SRCROOT}/../flutter_module/.ios/Flutter/flutter_export_environment.sh\"\nexport VERBOSE_SCRIPT_LOGGING=1 && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/xcode_backend.sh embed_and_thin"; + }; + CD035F8822407F4FA59AE066 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-ios_content_resizing-ios_content_resizingUITests-checkManifestLockResult.txt", + ); + 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"; + showEnvVarsInLog = 0; + }; + D845714EE96E84A345CC5AFB /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-ios_content_resizingTests-checkManifestLockResult.txt", + ); + 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"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + F23EDFCC2EE0E81A00A217AA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F23EDFE22EE0E81C00A217AA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F23EDFEC2EE0E81C00A217AA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + F23EDFE82EE0E81C00A217AA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F23EDFCF2EE0E81A00A217AA /* ios_content_resizing */; + targetProxy = F23EDFE72EE0E81C00A217AA /* PBXContainerItemProxy */; + }; + F23EDFF22EE0E81C00A217AA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F23EDFCF2EE0E81A00A217AA /* ios_content_resizing */; + targetProxy = F23EDFF12EE0E81C00A217AA /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + F23EDFFA2EE0E81C00A217AA /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D59E29ECBED0852D37A99053 /* Pods-ios_content_resizing.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ios_content_resizing/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + F23EDFFB2EE0E81C00A217AA /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C170EDA9CDBAFCCCE6D0E1C0 /* Pods-ios_content_resizing.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ios_content_resizing/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + F23EDFFC2EE0E81C00A217AA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + F23EDFFD2EE0E81C00A217AA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + F23EDFFF2EE0E81C00A217AA /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5FED92584E697C8B2564E54E /* Pods-ios_content_resizingTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizingTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ios_content_resizing.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ios_content_resizing"; + }; + name = Debug; + }; + F23EE0002EE0E81C00A217AA /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2FEEB1287F59F7D0F950708C /* Pods-ios_content_resizingTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizingTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ios_content_resizing.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ios_content_resizing"; + }; + name = Release; + }; + F23EE0022EE0E81C00A217AA /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 21AF0E08BF01F3EA6AF43D73 /* Pods-ios_content_resizing-ios_content_resizingUITests.debug.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizingUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = ios_content_resizing; + }; + name = Debug; + }; + F23EE0032EE0E81C00A217AA /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D301423152989400BB7B71AC /* Pods-ios_content_resizing-ios_content_resizingUITests.release.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizingUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = ios_content_resizing; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + F23EDFCB2EE0E81A00A217AA /* Build configuration list for PBXProject "ios_content_resizing" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F23EDFFC2EE0E81C00A217AA /* Debug */, + F23EDFFD2EE0E81C00A217AA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F23EDFF92EE0E81C00A217AA /* Build configuration list for PBXNativeTarget "ios_content_resizing" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F23EDFFA2EE0E81C00A217AA /* Debug */, + F23EDFFB2EE0E81C00A217AA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F23EDFFE2EE0E81C00A217AA /* Build configuration list for PBXNativeTarget "ios_content_resizingTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F23EDFFF2EE0E81C00A217AA /* Debug */, + F23EE0002EE0E81C00A217AA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F23EE0012EE0E81C00A217AA /* Build configuration list for PBXNativeTarget "ios_content_resizingUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F23EE0022EE0E81C00A217AA /* Debug */, + F23EE0032EE0E81C00A217AA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = F23EDFC82EE0E81A00A217AA /* Project object */; +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..919434a62 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/project.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/project.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..943ac77b02a1222ebef680d6000a8298be933277 GIT binary patch literal 25437 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 F{{U+cC9ePg literal 0 HcmV?d00001 diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/xcschememanagement.plist b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..4ccf2d122 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcodeproj/xcuserdata/louisehsu.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + ios_content_resizing.xcscheme_^#shared#^_ + + orderHint + 5 + + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcworkspace/contents.xcworkspacedata b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..b278bcd7e --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..49fa579cdf02002553755e33d223a3cc77d86325 GIT binary patch literal 25482 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 literal 0 HcmV?d00001 diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/AppDelegate.swift b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/AppDelegate.swift new file mode 100644 index 000000000..15760259a --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/AppDelegate.swift @@ -0,0 +1,14 @@ +import UIKit +import Flutter + +@main +class AppDelegate: FlutterAppDelegate { + // Make the engine lazy to be created when it's first needed. + lazy var flutterEngine = FlutterEngine(name: "my_flutter_engine") + + override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Pre-warms the FlutterEngine. + flutterEngine.run() + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Assets.xcassets/AccentColor.colorset/Contents.json b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 000000000..eb8789700 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Assets.xcassets/AppIcon.appiconset/Contents.json b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..230588010 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,35 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "tinted" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Assets.xcassets/Contents.json b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Assets.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Base.lproj/LaunchScreen.storyboard b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 000000000..865e9329f --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Base.lproj/Main.storyboard b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Base.lproj/Main.storyboard new file mode 100644 index 000000000..25a763858 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Info.plist b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Info.plist new file mode 100644 index 000000000..dd3c9afda --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/Info.plist @@ -0,0 +1,25 @@ + + + + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/SceneDelegate.swift b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/SceneDelegate.swift new file mode 100644 index 000000000..a968d2935 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/SceneDelegate.swift @@ -0,0 +1,52 @@ +// +// SceneDelegate.swift +// ios_content_resizing +// +// Created by Louise Hsu on 12/3/25. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/ViewController.swift b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/ViewController.swift new file mode 100644 index 000000000..1fe4b1ea2 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizing/ViewController.swift @@ -0,0 +1,87 @@ +import Flutter +import UIKit + +class ViewController: UIViewController { + override func viewDidLoad() { + super.viewDidLoad() + view.backgroundColor = .systemGroupedBackground + showStyledScrollView() + } + + func showStyledScrollView() { + let scrollView = UIScrollView() + let stackView = UIStackView() + stackView.axis = .vertical + stackView.spacing = 12 + + let engine = FlutterEngine() + engine.run() + + for index in 1...50 { + if index == 1 { + let flutterViewController = FlutterViewController(engine: engine, nibName: nil, bundle: nil) + flutterViewController.isAutoResizable = true + addChild(flutterViewController) + + flutterViewController.view.backgroundColor = .clear + + let cardView = UIView() + cardView.backgroundColor = .systemBackground + cardView.layer.cornerRadius = 12 + cardView.layer.masksToBounds = true + + flutterViewController.view.translatesAutoresizingMaskIntoConstraints = false + cardView.addSubview(flutterViewController.view) + + NSLayoutConstraint.activate([ + flutterViewController.view.topAnchor.constraint(equalTo: cardView.topAnchor), + flutterViewController.view.leadingAnchor.constraint(equalTo: cardView.leadingAnchor), + flutterViewController.view.trailingAnchor.constraint(equalTo: cardView.trailingAnchor), + flutterViewController.view.bottomAnchor.constraint(equalTo: cardView.bottomAnchor) + ]) + + stackView.addArrangedSubview(cardView) + flutterViewController.didMove(toParent: self) + + } else { + let label = UILabel() + label.text = "iOS Label \(index)" + label.translatesAutoresizingMaskIntoConstraints = false + + let cardView = UIView() + cardView.backgroundColor = .systemBackground + cardView.layer.cornerRadius = 12 + cardView.addSubview(label) + + NSLayoutConstraint.activate([ + label.topAnchor.constraint(equalTo: cardView.topAnchor, constant: 16), + label.bottomAnchor.constraint(equalTo: cardView.bottomAnchor, constant: -16), + label.leadingAnchor.constraint(equalTo: cardView.leadingAnchor, constant: 16), + label.trailingAnchor.constraint(equalTo: cardView.trailingAnchor, constant: -16) + ]) + + stackView.addArrangedSubview(cardView) + } + } + + scrollView.translatesAutoresizingMaskIntoConstraints = false + stackView.translatesAutoresizingMaskIntoConstraints = false + + view.addSubview(scrollView) + scrollView.addSubview(stackView) + + NSLayoutConstraint.activate([ + scrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), + scrollView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor), + scrollView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor), + scrollView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor) + ]) + + NSLayoutConstraint.activate([ + stackView.topAnchor.constraint(equalTo: scrollView.contentLayoutGuide.topAnchor, constant: 20), + stackView.bottomAnchor.constraint(equalTo: scrollView.contentLayoutGuide.bottomAnchor, constant: -20), + stackView.leadingAnchor.constraint(equalTo: scrollView.frameLayoutGuide.leadingAnchor, constant: 20), + stackView.trailingAnchor.constraint(equalTo: scrollView.frameLayoutGuide.trailingAnchor, constant: -20) + ]) + } +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizingTests/ios_content_resizingTests.swift b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizingTests/ios_content_resizingTests.swift new file mode 100644 index 000000000..346452adb --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizingTests/ios_content_resizingTests.swift @@ -0,0 +1,36 @@ +// +// ios_content_resizingTests.swift +// ios_content_resizingTests +// +// Created by Louise Hsu on 12/3/25. +// + +import XCTest +@testable import ios_content_resizing + +final class ios_content_resizingTests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + // Any test you write for XCTest can be annotated as throws and async. + // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. + // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. + } + + func testPerformanceExample() throws { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizingUITests/ios_content_resizingUITests.swift b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizingUITests/ios_content_resizingUITests.swift new file mode 100644 index 000000000..2c0f47a71 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizingUITests/ios_content_resizingUITests.swift @@ -0,0 +1,41 @@ +// +// ios_content_resizingUITests.swift +// ios_content_resizingUITests +// +// Created by Louise Hsu on 12/3/25. +// + +import XCTest + +final class ios_content_resizingUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + @MainActor + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + @MainActor + func testLaunchPerformance() throws { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } +} diff --git a/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizingUITests/ios_content_resizingUITestsLaunchTests.swift b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizingUITests/ios_content_resizingUITestsLaunchTests.swift new file mode 100644 index 000000000..dec91af14 --- /dev/null +++ b/add_to_app/ios_content_resizing/ios_content_resizing/ios_content_resizingUITests/ios_content_resizingUITestsLaunchTests.swift @@ -0,0 +1,33 @@ +// +// ios_content_resizingUITestsLaunchTests.swift +// ios_content_resizingUITests +// +// Created by Louise Hsu on 12/3/25. +// + +import XCTest + +final class ios_content_resizingUITestsLaunchTests: XCTestCase { + + override class var runsForEachTargetApplicationUIConfiguration: Bool { + true + } + + override func setUpWithError() throws { + continueAfterFailure = false + } + + @MainActor + func testLaunch() throws { + let app = XCUIApplication() + app.launch() + + // Insert steps here to perform after app launch but before taking a screenshot, + // such as logging into a test account or navigating somewhere in the app + + let attachment = XCTAttachment(screenshot: app.screenshot()) + attachment.name = "Launch Screen" + attachment.lifetime = .keepAlways + add(attachment) + } +} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/contents.xcworkspacedata b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..70a3e81af --- /dev/null +++ b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..9fe1a796bffd1e3a2d58890bdb515d6547dcd637 GIT binary patch literal 13562 zcmeHt33!v$*6tpX7Mi9_hlDf(Nt&ijlg^Y<6oF1iWh!)Fl#n)GOC(Kdl0qw>J1EK^ z4hKh^Xp10%%28AlMMMt{Ajl}r3gUza>On+A{`Gxd(*cm<|3CNM=icYJ_}C2 z3(*p^3@u0ZpnK6H=uz|-YDbTwC(t^y9&JZ&p|{aH=v}k}?L_aPU1&FYAMHUOpabY* z^a=VDeTELBpV2Sq-{=(j6`e-EVS*`^U@7j4lduJ+;tZUJ_TvF~5WW%*!NYM8z8a6j zqj3cuk8AK0JOewi3v;+0Ux&TekLThAcoDuG--YkN_u>cfb9f_u9>0KJ#GCL-_+`8q zzk*-ITktmg4&Hp4`bRGRCeU?5) zU!q}56160$I>p=U@$5r#6oX=s0wo~T#IcoGv$)p46!`44;F^>=k24TxM{y{g5k}il zB2qF5`-mkw6e)Rw3X1Yei^?)f2Ik~t<`2v%%q%J>D9g+(EGjC>D<~~1DIDNXB$k(! zP4xL^1)7|7T&b_Fxsme*!vkxO8D%_yv`B~as6R3wBQl|6CS?&UlJ#MISrn78=qFGL zvY=Fy27mkW-2?3xtYZ|xg#?3%L?)b6c-i^E*d<@p-AoO5n2~J{S%#m z8h5}AlbPra&a8BM8$2A;I1~mDEUF6vj&!N3_jrn=?yh`3Pp#8m9`4GaPcP(eRIY-XS*AmpmnjR z>t~Ul1Kr1gRCUnpaR=R8V4~XENf0pQ>?EozKN(LGw}WU{=>SSzX$Pc~){Bm=EXb zss%W|+V5*_5-R}w1K|-J$b~Xip&7`DYEd22v;NG$jH?ib>QMvYn2DKL3jBqU6Gyl` zLC!B2V{z*km<2cp7;UsO5bPR>FLo$Y)!zC`3aiCFI9GLf?|#Db@u4Q9TDg)X??nL= zM9paS6!A2B!LBEXU%9}vv6ZE6Fgl;t>2GZZsX3FzR*n<=muOSH=2Pi|Ed#;u7&oAK zNY#esGD{np&r*3*;O+2|ZT14rgwO(XvqPZ)#q+1Jg7>TwxF$ar08DW5vtU-1HZG3P z+OXHfgi53l#uP9RfTCbgT^$z)a4tB*++=r|MA?F5l=+M#3!oMn*MwH^o^2NH93PbCj$U*EhF9DV7n~Zq0qT~0Y@F2aF~t* zX63#Cj;DibaW*!2U^7gYtF8i&2`IpO#VX>ab1h9yFV78x=?OD9x)t51KrnPdT$>D} zlyPG5^B=cCVZXR`8DE;zS^C;HhoMxfZ5nC(Aoz zGBa2fk6N&%8aFp5D=^1hA8fZ++f&obsPmtBYl`@-J>6y=e!ckJJbbZL{MH8?KnhTk zAwWZ_fOyn`MPCm_wH&>OUP4=dMjS+kfI57RzCy==Je)$m17+xgWjGgTLLm@@5`iGh zz;!?he7FTD!7XCf1dE@@-uc=2ftQJPdn>vPFtn_t$s;28xaOe8?dABDh=htaq|P(Y zffk{~XwKi3cPMHdRl%!EYH|xoYpS}(06fSm=>FMb$g0*RE-7>ML>cYqe)Is#V%hCz1$v0(uspuUwB`Wk zukdsAoZrv6x6;O#H zzuyUf(t+lP606agm27}0u@*f!y-O8>Uui*}h_co9#5d1b6aPornh2J}z#EP4)Y zM9-ra!0tA&0yc;hvcc>Mb|o9au3|&kFgAQ0dKqm-ub@}KEMG%g(d%d%dIP=5idYFN zWo2vxyPBzS}rLprzvnS{VND&6A@VgrUQ%5^nea%7OB^S&?uqxOJ zbCW0+t`;H=S8wzL69f1y?BfpZDN z0b&TP8^B5Ny5LXSKC~C@0}S5}fxGOmg9mV1Hn1Qf`ji0{Coe>2tKE4Sm5zvH@WuIfA}N z8LPoOj-s#8H|SgR9T-J9yM~QoquH3%=otC|Q0W*t0mN}E8^;>q?>eB4a1!D~ZNi|y z%sQ8zAeM~;MS-nDVco32wPG2+!?^?OQ+YQt3S5Waw)H?qnmsO_lvDtZoWNZV#4`xS z!V}$qf`+Gg2A$(6$?xba`h!)l@oYi|`V(w*GphvKEa9gU&#%5H&^ff=%)sx34HPN` zl>-MUZ3Qpxt_zn4n!ypMtqn)ADwcZ)M*;RmV>yb&F*p`0a2$@u2{;ie;afkfb|{iu zom5;jSHL8GxUmA~H38+|c$Un=T~;9I2Sn>_FffGxAHa6wm_woU3Y@RArwirdde!pd zObySVdctUE9sbn~E?pSPCbR1pV%5w8-x}DggII&LSO<&K8fxpnR-BG)Y!aKsrnB6AI1^{Vs^V}C&YjXdTD33_So;(< z^-|7UIAAy*4+I7S=fB%8!ic;x5|Pa9Z^s3^cf71jcn*bVGtOn#f?dLpm*qv_7FP)^ z9Dl1tF|4u#m*O&<(9;Yi2i=Wuc7Sd%C#z)u18aCwydpb0n@8I~w#V1(4sbIA&Do{g zY|i6r;?G!iK;UPAY^TfR2>Kk(rl#!6F(#q%ZwdVs70kYfPl;Plj;{d-1}+h{n6MSL z<59fkFI5G+7>~hY@wh2GAr*Iwam?jVJn(ct z1ElvT0+gr#^yFOp2`huRxm9dA5l?a`tX+XZCt`G)ZEx&o$CG*8{cZVucq*uL8o=Fj z?BJ6cwax$so+iuBc>oe-a{wi725$ZTE!(Qab=6}l0V~^atzb({&9xqPok-_11HNW| z9fT;ET~NdawW8Mw8)H@l*We5^2Py^G64*>}I~p)3gHO}+a(uiyXvc1Ts7uy~AT|rU zG4?PoP&@1cwKw7GAqK2#24d+AUeq7+u_rI>o0{?Lux}F3ehzE8G}_O@^TTM*X0z+V zAS}-2W*$;+!3*)N%+CTWcmbq}2pYz#9tamMx?6y-=Kn5)iD0!)Os3%#cr|cV{1AQ^ zKY|~{kKvWL4Y%VCyb3?gT39Q)fz4&}*nD;)yNNLtVhh&cHIUh|pcK3gug6aTC$QiR zD23e&BqatiD+}2@>|U5u3|j-gfG23Ww@}n^mKXp7=LE36xDu$z7`GQ_W)o2QOIGvN zP~w9WwzC1O$Z$!Sa_?+0am5D)7fE;o{@UfedB%E?j2M^$r3!LczWVwA2Yi=5*Ww}| zBAE?DlP6h4%`K1}0#+>62rVu(XwMG$u<)-|U(_6&>GQ*!E>;c?Y9o9e7a!?gLa}rF z&Zg1Ob3nAP*LaS#mEFPzJCHfWZ=kkSJcko_9M9tT|8m2o@GgE2soL=lyp!F^ZfnQ8 z@NTw<-OlGpG^Ly;=oFVHQr#}qL29Z3wAlc8CNB{D0C4%h1tQ@A_Tvxu0S@4UY%yEX zjt`*~Y$=3!$|r>dkFa+3I9n}{c>#($jXIDu#pi1T z`|DlE2Mv61Rm^WSn5U*oyz^X_IK8tWsSP#?r}DzeQs7E%uRwD}32pD*E8Jc$IA8Ht z0iC_D{Wv)9eo%S9JnW>fdT!641NYSVrNgVwUEBRhrq6vvgGP|IIMvS>{~DZGJxcZd3{lNJtMewGLZLVeA55o zO5iEsh|VF__KGk_AsO7|bDm{S_3}An82B7AoD`8__B4BjZTN5c95P1mIsXLM_|HVU z2W{@JzB3clypstX=D}xZ;lzK9YAEtrKByMsYdx^cwHnUe&f$Q1~`K1)F{}R|F!9{6n zAXUPry5Nd}o5S0AV1jdwcq;>T-n+Ilds|uOYXUnr_No+``}~m3;4Q8Rzy{8Vs+Wk+ zJ0Git=Q*3)1lLMr4rw8+#3jcf~hjcsMGvu*4R_9pw+6N1wPx7+z?f%%IL zSNs$*1a@8_;Ut?2;49$saC}x}w7b^NJ18%|$Z*<(zl6G^bX7R8=`C;jEBT7@(kiIy z)p^EW36J4|P8Wphy~TOQdg-}NF8dS`B!V9%527{gWCeMMy~B2OWroP3 zq#gVld5o+iZR}mPgYE1f6Hy9z98QRwy~mQTh3>lJ>}mY3?khC~{N$}~jI+V(4mP_W z$Lbf|M0kSh$%c#ip9K9s2j@@DcC%#j@X#g!S;H+}B%4qM+{&aYy0G>YvZZU4ud#hB zU0l&NenoGPH`#vnLHCN@B0DY`aVLzpiyeRw53=ORur(rvnTNY)^cs5~0kUv`HV%RR z`iLC@yZ?~)_OZ}9ocZI8+&p~R)?R&lPJTogPm?dmm*g-xLcStL$=Bo?@-6v}d{2&% zAINd`G5dsl%06SCvoF|}>@YjRzG6q&*X$ei?bGB0IZ1vZKLcJ^$SL^$H2IC3fs(U; z9^bL=LpULXm4G5KA*|;AB!#dxgl$6kU=dl=6S%sr;36E`KwQMT&(1ujr~rXA21fY& zVx?ZZTm=*5UuRTu!S0QRJl-_1wz6&}$6x!VOlbD@aIZpa8iZz$X%}+7{M{v7*;ybj zT*nnRyFD%#r^w^!DHtfPAIotr4nq0Z@I1vEXP9b&cs{CTf|gxZJNXM`=uaco^Eq*E z15Cs#W^v2C^*%`az?_7{LkpyDc@;o6iQ=?-&(@*nci~$36DedXW5e0Ru9+kj!xUyU z`QQ>PAT$GZ?h$d0k}PQ#}CXcAum!fjN;e(0{y z({u=jXn$&;MrxwT)J#*Tg{IOpYGudSkL(0H$$nx#vtQW1*(vrbJH3wD1Vm1uS$I9o z;cbNu0Q>l@6PP5l3WNHqDZ|I+~xEd~>zCG1RRKtxAeE+C>~Xa%r3 zI+l)OXW1X^bUdBF&V?}gUltM3iF67-!X$`@{uCl2It^Ik`HLbV(ZFX2_f}yWuA>bA zkkmyvS|7qVgh>d~4*WHB)9cvs5SE0nl%MH;2weUrvC!WPv-Z*^6icuFJ2A~(8U)ei zi$yOEpTg^Jp+K8f(^h%|olED@`SivRjtt>GA>22Fqe55~!qGy=Ll+P!;^;y?g~J4sv!$FN7+iIOBjr~@x2dIc?E@%!n65ZcfO zLRfLB*d{FYC~Xts7rK%?5yJ89bQ%OO=lKBUg3x6T?9!SLP832Ix|Ti(G3;2lM{1{Q zyRL=ldipd!=u;sKf1e2f%qH{iUU*aoiYKHlE}Nqlt$ib$RTKvgxw_zd6MY#_n=fml zn?qRBNj~Tn{*sNC3}3R*ZFD<-Hr}9b(tm}pE`;?V+`ogqMc=0Hgs>rm%^{p791fV* zMUF~zs{z3S4ZM^9|MUe?{I1@PthiNdD751rQeD(>Z+U)z@CNLrdthnw{SY>`(Y+xo zyu7)*lITI$ix21_K55L~M40)PBS#m0vnhndS2Xk^`Y~(||M;Yx!u@4^JFoaVf8sWg@<%GIe9s` zWe#`KOrMv72P#f~V?n-XF5lAcfLwIlrHi)ELBFNn3lDk3-{D#QK!Llp(c>X(ZKEeb zIGvy6-ycxW&M)+kpp~zqCvE_(guDJ#f{}NQgu#iI7A}`hbU*hj2cRDET2gFoX+2cu)uzf`?C@ z;trH~+ztGzIp92E4gzj~+;#AV$Qc9@2B{TQ&*E};RtEWgh(+K|P^_pd9VJAK@U*9Q z7vW19xPKKTdy=@xU5z1o&~pSnUiR>5(~Cw1js|ZDgWRO99aH2%C{Y4wGI7qCdBsI} z14~8}W|rg(D$X2ORxl{Duy|ljW?_EWz{1?z5rg5QTG-}k;XZN;vj$FaSMVl~J1_&b zAF_`Ujqs=f-V-OGWR!t&;pyHmcpY2=uY;$PgYZuEJD}Eo!28rb@G3Q$CvQ{
    H< zJgubx+6=EvTLJ3l)0=3B-c0X-x26x!74Y8lQM!`0(^c^1^dS9_o|6ofG)NXp9+zyD zye`=$IU+eJIWNUhDwRqjrG2F`sa&d)_Lmx^$Qs?;jANi(Fwq!Xm|(pKp*=}PI- z(#_Is(l@2srEg1jOZQ0kNe@Urkp3PK6JdHt0T%IMn#N?7#A@< zVrIm=hU$dQrbBfXJL zk^a7|eHZjy*Z0}JA4d(3DvxqR)kg)QW=FL|&5fELbyL)us0~rCMs16FGirO(j;Qyd zc1P`rIx92Ctg>{OU6wB!A}f+zBO4_fBdd{dGLNiTwm|lv>>=4Bvd3g?vJTnfvNf`` zvURejWY5U9%ifl~E88jCC3|1CSGHevPjkn4*}mG1V~>VJ*%!LE%=+QnV;;RxDO5RV-87spwFwSL{%{ zuQ;LjL-A)EiX(BRxU9IGxV*UhxXQR0ah|x@aV>E-#LbIOjn9rRi@zp*M!Y*d7(Y9{ zB_Sa}mtalEPPj5*OhQdUDB;$GeQm~|>ND!I>T^k{Nt2RV zlNKc1nbe-ND(R`DjY%&hZA;pnbU5j&q~l4yYN$q`iPt1*R2sELqtR*7HFiy=CR>xM z8K4=c8KfDlnWb5zc~bMX<}1x{&F`A?TCAnoKH4a4v^GYo)Fx}K+Dz>g+N-p~w8h#| z?Fen9_FC<9?JTWF+o<(v=V?RQo3#tIOSHFZ@6g_*y-)kN_G#^Q?GEh`?I~T1PN9p} zCF)cukCVU6w9Km!})1E7Fzd%5)QSRk|A8Bps(~(7AQ9bW3#i>mJlSq-7EgMt!p0uFuqG>vQ!3 z^aJ&k`X>Ey{d)aN`gip^^}F=%>-XyS>ksM==|9pR(;wHL(Ep_WMSn_vT7O1=R)4O) zz5mqyi~7IV|F9w6P-+MmnBiu_Lc=1%62t9=m4>y3rwtnn&l)xwUN^jLc-OGgu*-13 z@PXk&!^ehC4aW?>8D+*qqseGB+Kd^-EaO1qAmd=;mBy=#BaD^CDr2>AqH(gZ-sm>Y zGJ1_oM!#{ckr@{lZ!z9#Ty9)peAxJ?aiwvMajkKk@hRgo#+QuSjJu5ojfadM89y-| zF&;I3WBkr|%y`ZeVM;LNnDR{drUFx;=?c>j(@@iJQ?aSkG{Q8}bd71W$!(ftYBV*O z0;Xou9McV^d8V683rq`5i%d&R%S?Bgo;1B>`o{F{WNmUua&_{orCtQ z))wo0>k{iS>s{96*88jvSXW#BW!+`nW8G&xU_ER-YW>Fgz4f^Dg!MP;S?f9L`Sj@Y zgmhJUQo1hPoSvGVo}Q7Ol|C;0w)73@ucmKJea7mTk+k4YUoi)z}<1x6Na_-?q~BtnDS+HrsC7UfTiNA=}5cPwjo|adwSeZ@1a6 zvJbbH*hkpQ?W67E>=W$O_DS|x_C|Y?-EVKUx7g>}Z?uQ(H`^E5@3OD4Z?*5Ue{VmZ p(Ko}CaYaT+MoY$x8A~(n%XlnfrI6S|1a7$ae-fSe8UCBm{$Ds(V<`Xt literal 0 HcmV?d00001 diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.pbxproj b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.pbxproj new file mode 100644 index 000000000..1ffada498 --- /dev/null +++ b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.pbxproj @@ -0,0 +1,563 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXContainerItemProxy section */ + F214C5BC2EDFA9CA000FC3CB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F214C5A62EDFA9C7000FC3CB /* Project object */; + proxyType = 1; + remoteGlobalIDString = F214C5AD2EDFA9C7000FC3CB; + remoteInfo = ios_content_resizing_example; + }; + F214C5C62EDFA9CA000FC3CB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F214C5A62EDFA9C7000FC3CB /* Project object */; + proxyType = 1; + remoteGlobalIDString = F214C5AD2EDFA9C7000FC3CB; + remoteInfo = ios_content_resizing_example; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + F214C5AE2EDFA9C7000FC3CB /* ios_content_resizing_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ios_content_resizing_example.app; sourceTree = BUILT_PRODUCTS_DIR; }; + F214C5BB2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ios_content_resizing_exampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + F214C5C52EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ios_content_resizing_exampleUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + F214C5B02EDFA9C7000FC3CB /* ios_content_resizing_example */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = ios_content_resizing_example; + sourceTree = ""; + }; + F214C5BE2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = ios_content_resizing_exampleTests; + sourceTree = ""; + }; + F214C5C82EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = ios_content_resizing_exampleUITests; + sourceTree = ""; + }; +/* End PBXFileSystemSynchronizedRootGroup section */ + +/* Begin PBXFrameworksBuildPhase section */ + F214C5AB2EDFA9C7000FC3CB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F214C5B82EDFA9CA000FC3CB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F214C5C22EDFA9CA000FC3CB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + F214C5A52EDFA9C7000FC3CB = { + isa = PBXGroup; + children = ( + F214C5B02EDFA9C7000FC3CB /* ios_content_resizing_example */, + F214C5BE2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests */, + F214C5C82EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests */, + F214C5AF2EDFA9C7000FC3CB /* Products */, + ); + sourceTree = ""; + }; + F214C5AF2EDFA9C7000FC3CB /* Products */ = { + isa = PBXGroup; + children = ( + F214C5AE2EDFA9C7000FC3CB /* ios_content_resizing_example.app */, + F214C5BB2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests.xctest */, + F214C5C52EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + F214C5AD2EDFA9C7000FC3CB /* ios_content_resizing_example */ = { + isa = PBXNativeTarget; + buildConfigurationList = F214C5CF2EDFA9CA000FC3CB /* Build configuration list for PBXNativeTarget "ios_content_resizing_example" */; + buildPhases = ( + F214C5AA2EDFA9C7000FC3CB /* Sources */, + F214C5AB2EDFA9C7000FC3CB /* Frameworks */, + F214C5AC2EDFA9C7000FC3CB /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + F214C5B02EDFA9C7000FC3CB /* ios_content_resizing_example */, + ); + name = ios_content_resizing_example; + packageProductDependencies = ( + ); + productName = ios_content_resizing_example; + productReference = F214C5AE2EDFA9C7000FC3CB /* ios_content_resizing_example.app */; + productType = "com.apple.product-type.application"; + }; + F214C5BA2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = F214C5D22EDFA9CA000FC3CB /* Build configuration list for PBXNativeTarget "ios_content_resizing_exampleTests" */; + buildPhases = ( + F214C5B72EDFA9CA000FC3CB /* Sources */, + F214C5B82EDFA9CA000FC3CB /* Frameworks */, + F214C5B92EDFA9CA000FC3CB /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + F214C5BD2EDFA9CA000FC3CB /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + F214C5BE2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests */, + ); + name = ios_content_resizing_exampleTests; + packageProductDependencies = ( + ); + productName = ios_content_resizing_exampleTests; + productReference = F214C5BB2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + F214C5C42EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = F214C5D52EDFA9CA000FC3CB /* Build configuration list for PBXNativeTarget "ios_content_resizing_exampleUITests" */; + buildPhases = ( + F214C5C12EDFA9CA000FC3CB /* Sources */, + F214C5C22EDFA9CA000FC3CB /* Frameworks */, + F214C5C32EDFA9CA000FC3CB /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + F214C5C72EDFA9CA000FC3CB /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + F214C5C82EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests */, + ); + name = ios_content_resizing_exampleUITests; + packageProductDependencies = ( + ); + productName = ios_content_resizing_exampleUITests; + productReference = F214C5C52EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + F214C5A62EDFA9C7000FC3CB /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1640; + LastUpgradeCheck = 1640; + TargetAttributes = { + F214C5AD2EDFA9C7000FC3CB = { + CreatedOnToolsVersion = 16.4; + }; + F214C5BA2EDFA9CA000FC3CB = { + CreatedOnToolsVersion = 16.4; + TestTargetID = F214C5AD2EDFA9C7000FC3CB; + }; + F214C5C42EDFA9CA000FC3CB = { + CreatedOnToolsVersion = 16.4; + TestTargetID = F214C5AD2EDFA9C7000FC3CB; + }; + }; + }; + buildConfigurationList = F214C5A92EDFA9C7000FC3CB /* Build configuration list for PBXProject "ios_content_resizing_example" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = F214C5A52EDFA9C7000FC3CB; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = F214C5AF2EDFA9C7000FC3CB /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + F214C5AD2EDFA9C7000FC3CB /* ios_content_resizing_example */, + F214C5BA2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests */, + F214C5C42EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + F214C5AC2EDFA9C7000FC3CB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F214C5B92EDFA9CA000FC3CB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F214C5C32EDFA9CA000FC3CB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + F214C5AA2EDFA9C7000FC3CB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F214C5B72EDFA9CA000FC3CB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F214C5C12EDFA9CA000FC3CB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + F214C5BD2EDFA9CA000FC3CB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F214C5AD2EDFA9C7000FC3CB /* ios_content_resizing_example */; + targetProxy = F214C5BC2EDFA9CA000FC3CB /* PBXContainerItemProxy */; + }; + F214C5C72EDFA9CA000FC3CB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F214C5AD2EDFA9C7000FC3CB /* ios_content_resizing_example */; + targetProxy = F214C5C62EDFA9CA000FC3CB /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + F214C5CD2EDFA9CA000FC3CB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + F214C5CE2EDFA9CA000FC3CB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + F214C5D02EDFA9CA000FC3CB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing-example"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + F214C5D12EDFA9CA000FC3CB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing-example"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + F214C5D32EDFA9CA000FC3CB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing-exampleTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ios_content_resizing_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ios_content_resizing_example"; + }; + name = Debug; + }; + F214C5D42EDFA9CA000FC3CB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing-exampleTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ios_content_resizing_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ios_content_resizing_example"; + }; + name = Release; + }; + F214C5D62EDFA9CA000FC3CB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing-exampleUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = ios_content_resizing_example; + }; + name = Debug; + }; + F214C5D72EDFA9CA000FC3CB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing-exampleUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = ios_content_resizing_example; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + F214C5A92EDFA9C7000FC3CB /* Build configuration list for PBXProject "ios_content_resizing_example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F214C5CD2EDFA9CA000FC3CB /* Debug */, + F214C5CE2EDFA9CA000FC3CB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F214C5CF2EDFA9CA000FC3CB /* Build configuration list for PBXNativeTarget "ios_content_resizing_example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F214C5D02EDFA9CA000FC3CB /* Debug */, + F214C5D12EDFA9CA000FC3CB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F214C5D22EDFA9CA000FC3CB /* Build configuration list for PBXNativeTarget "ios_content_resizing_exampleTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F214C5D32EDFA9CA000FC3CB /* Debug */, + F214C5D42EDFA9CA000FC3CB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F214C5D52EDFA9CA000FC3CB /* Build configuration list for PBXNativeTarget "ios_content_resizing_exampleUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F214C5D62EDFA9CA000FC3CB /* Debug */, + F214C5D72EDFA9CA000FC3CB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = F214C5A62EDFA9C7000FC3CB /* Project object */; +} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..919434a62 --- /dev/null +++ b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..9fe1a796bffd1e3a2d58890bdb515d6547dcd637 GIT binary patch literal 13562 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
      H< zJgubx+6=EvTLJ3l)0=3B-c0X-x26x!74Y8lQM!`0(^c^1^dS9_o|6ofG)NXp9+zyD zye`=$IU+eJIWNUhDwRqjrG2F`sa&d)_Lmx^$Qs?;jANi(Fwq!Xm|(pKp*=}PI- z(#_Is(l@2srEg1jOZQ0kNe@Urkp3PK6JdHt0T%IMn#N?7#A@< zVrIm=hU$dQrbBfXJL zk^a7|eHZjy*Z0}JA4d(3DvxqR)kg)QW=FL|&5fELbyL)us0~rCMs16FGirO(j;Qyd zc1P`rIx92Ctg>{OU6wB!A}f+zBO4_fBdd{dGLNiTwm|lv>>=4Bvd3g?vJTnfvNf`` zvURejWY5U9%ifl~E88jCC3|1CSGHevPjkn4*}mG1V~>VJ*%!LE%=+QnV;;RxDO5RV-87spwFwSL{%{ zuQ;LjL-A)EiX(BRxU9IGxV*UhxXQR0ah|x@aV>E-#LbIOjn9rRi@zp*M!Y*d7(Y9{ zB_Sa}mtalEPPj5*OhQdUDB;$GeQm~|>ND!I>T^k{Nt2RV zlNKc1nbe-ND(R`DjY%&hZA;pnbU5j&q~l4yYN$q`iPt1*R2sELqtR*7HFiy=CR>xM z8K4=c8KfDlnWb5zc~bMX<}1x{&F`A?TCAnoKH4a4v^GYo)Fx}K+Dz>g+N-p~w8h#| z?Fen9_FC<9?JTWF+o<(v=V?RQo3#tIOSHFZ@6g_*y-)kN_G#^Q?GEh`?I~T1PN9p} zCF)cukCVU6w9Km!})1E7Fzd%5)QSRk|A8Bps(~(7AQ9bW3#i>mJlSq-7EgMt!p0uFuqG>vQ!3 z^aJ&k`X>Ey{d)aN`gip^^}F=%>-XyS>ksM==|9pR(;wHL(Ep_WMSn_vT7O1=R)4O) zz5mqyi~7IV|F9w6P-+MmnBiu_Lc=1%62t9=m4>y3rwtnn&l)xwUN^jLc-OGgu*-13 z@PXk&!^ehC4aW?>8D+*qqseGB+Kd^-EaO1qAmd=;mBy=#BaD^CDr2>AqH(gZ-sm>Y zGJ1_oM!#{ckr@{lZ!z9#Ty9)peAxJ?aiwvMajkKk@hRgo#+QuSjJu5ojfadM89y-| zF&;I3WBkr|%y`ZeVM;LNnDR{drUFx;=?c>j(@@iJQ?aSkG{Q8}bd71W$!(ftYBV*O z0;Xou9McV^d8V683rq`5i%d&R%S?Bgo;1B>`o{F{WNmUua&_{orCtQ z))wo0>k{iS>s{96*88jvSXW#BW!+`nW8G&xU_ER-YW>Fgz4f^Dg!MP;S?f9L`Sj@Y zgmhJUQo1hPoSvGVo}Q7Ol|C;0w)73@ucmKJea7mTk+k4YUoi)z}<1x6Na_-?q~BtnDS+HrsC7UfTiNA=}5cPwjo|adwSeZ@1a6 zvJbbH*hkpQ?W67E>=W$O_DS|x_C|Y?-EVKUx7g>}Z?uQ(H`^E5@3OD4Z?*5Ue{VmZ p(Ko}CaYaT+MoY$x8A~(n%XlnfrI6S|1a7$ae-fSe8UCBm{$Ds(V<`Xt literal 0 HcmV?d00001 diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AccentColor.colorset/Contents.json b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 000000000..eb8789700 --- /dev/null +++ b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AppIcon.appiconset/Contents.json b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..230588010 --- /dev/null +++ b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,35 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "tinted" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/Contents.json b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ContentView.swift b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ContentView.swift new file mode 100644 index 000000000..4493f9757 --- /dev/null +++ b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ContentView.swift @@ -0,0 +1,24 @@ +// +// ContentView.swift +// ios_content_resizing_example +// +// Created by Louise Hsu on 12/2/25. +// + +import SwiftUI + +struct ContentView: View { + var body: some View { + VStack { + Image(systemName: "globe") + .imageScale(.large) + .foregroundStyle(.tint) + Text("Hello, world!") + } + .padding() + } +} + +#Preview { + ContentView() +} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ios_content_resizing_exampleApp.swift b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ios_content_resizing_exampleApp.swift new file mode 100644 index 000000000..c033879a9 --- /dev/null +++ b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ios_content_resizing_exampleApp.swift @@ -0,0 +1,17 @@ +// +// ios_content_resizing_exampleApp.swift +// ios_content_resizing_example +// +// Created by Louise Hsu on 12/2/25. +// + +import SwiftUI + +@main +struct ios_content_resizing_exampleApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleTests/ios_content_resizing_exampleTests.swift b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleTests/ios_content_resizing_exampleTests.swift new file mode 100644 index 000000000..787b405c3 --- /dev/null +++ b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleTests/ios_content_resizing_exampleTests.swift @@ -0,0 +1,36 @@ +// +// ios_content_resizing_exampleTests.swift +// ios_content_resizing_exampleTests +// +// Created by Louise Hsu on 12/2/25. +// + +import XCTest +@testable import ios_content_resizing_example + +final class ios_content_resizing_exampleTests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + // Any test you write for XCTest can be annotated as throws and async. + // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. + // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. + } + + func testPerformanceExample() throws { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITests.swift b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITests.swift new file mode 100644 index 000000000..3b1990b86 --- /dev/null +++ b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITests.swift @@ -0,0 +1,41 @@ +// +// ios_content_resizing_exampleUITests.swift +// ios_content_resizing_exampleUITests +// +// Created by Louise Hsu on 12/2/25. +// + +import XCTest + +final class ios_content_resizing_exampleUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + @MainActor + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + @MainActor + func testLaunchPerformance() throws { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } +} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITestsLaunchTests.swift b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITestsLaunchTests.swift new file mode 100644 index 000000000..29e3af775 --- /dev/null +++ b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITestsLaunchTests.swift @@ -0,0 +1,33 @@ +// +// ios_content_resizing_exampleUITestsLaunchTests.swift +// ios_content_resizing_exampleUITests +// +// Created by Louise Hsu on 12/2/25. +// + +import XCTest + +final class ios_content_resizing_exampleUITestsLaunchTests: XCTestCase { + + override class var runsForEachTargetApplicationUIConfiguration: Bool { + true + } + + override func setUpWithError() throws { + continueAfterFailure = false + } + + @MainActor + func testLaunch() throws { + let app = XCUIApplication() + app.launch() + + // Insert steps here to perform after app launch but before taking a screenshot, + // such as logging into a test account or navigating somewhere in the app + + let attachment = XCTAttachment(screenshot: app.screenshot()) + attachment.name = "Launch Screen" + attachment.lifetime = .keepAlways + add(attachment) + } +} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize.xcodeproj/project.pbxproj b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize.xcodeproj/project.pbxproj new file mode 100644 index 000000000..bbe1f071c --- /dev/null +++ b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize.xcodeproj/project.pbxproj @@ -0,0 +1,583 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXContainerItemProxy section */ + F20094D12EC3F7A0001B3EFD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F20094BB2EC3F79E001B3EFD /* Project object */; + proxyType = 1; + remoteGlobalIDString = F20094C22EC3F79E001B3EFD; + remoteInfo = ios_dynamic_content_resize; + }; + F20094DB2EC3F7A0001B3EFD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F20094BB2EC3F79E001B3EFD /* Project object */; + proxyType = 1; + remoteGlobalIDString = F20094C22EC3F79E001B3EFD; + remoteInfo = ios_dynamic_content_resize; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + F20094C32EC3F79E001B3EFD /* ios_dynamic_content_resize.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ios_dynamic_content_resize.app; sourceTree = BUILT_PRODUCTS_DIR; }; + F20094D02EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ios_dynamic_content_resizeTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + F20094DA2EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ios_dynamic_content_resizeUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + F20094C52EC3F79E001B3EFD /* ios_dynamic_content_resize */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = ios_dynamic_content_resize; + sourceTree = ""; + }; + F20094D32EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = ios_dynamic_content_resizeTests; + sourceTree = ""; + }; + F20094DD2EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = ios_dynamic_content_resizeUITests; + sourceTree = ""; + }; +/* End PBXFileSystemSynchronizedRootGroup section */ + +/* Begin PBXFrameworksBuildPhase section */ + F20094C02EC3F79E001B3EFD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F20094CD2EC3F7A0001B3EFD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F20094D72EC3F7A0001B3EFD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + F20094BA2EC3F79E001B3EFD = { + isa = PBXGroup; + children = ( + F20094C52EC3F79E001B3EFD /* ios_dynamic_content_resize */, + F20094D32EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests */, + F20094DD2EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests */, + F20094C42EC3F79E001B3EFD /* Products */, + ); + sourceTree = ""; + }; + F20094C42EC3F79E001B3EFD /* Products */ = { + isa = PBXGroup; + children = ( + F20094C32EC3F79E001B3EFD /* ios_dynamic_content_resize.app */, + F20094D02EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests.xctest */, + F20094DA2EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + F20094C22EC3F79E001B3EFD /* ios_dynamic_content_resize */ = { + isa = PBXNativeTarget; + buildConfigurationList = F20094E42EC3F7A0001B3EFD /* Build configuration list for PBXNativeTarget "ios_dynamic_content_resize" */; + buildPhases = ( + F20094BF2EC3F79E001B3EFD /* Sources */, + F20094C02EC3F79E001B3EFD /* Frameworks */, + F20094C12EC3F79E001B3EFD /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + F20094C52EC3F79E001B3EFD /* ios_dynamic_content_resize */, + ); + name = ios_dynamic_content_resize; + packageProductDependencies = ( + ); + productName = ios_dynamic_content_resize; + productReference = F20094C32EC3F79E001B3EFD /* ios_dynamic_content_resize.app */; + productType = "com.apple.product-type.application"; + }; + F20094CF2EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = F20094E72EC3F7A0001B3EFD /* Build configuration list for PBXNativeTarget "ios_dynamic_content_resizeTests" */; + buildPhases = ( + F20094CC2EC3F7A0001B3EFD /* Sources */, + F20094CD2EC3F7A0001B3EFD /* Frameworks */, + F20094CE2EC3F7A0001B3EFD /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + F20094D22EC3F7A0001B3EFD /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + F20094D32EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests */, + ); + name = ios_dynamic_content_resizeTests; + packageProductDependencies = ( + ); + productName = ios_dynamic_content_resizeTests; + productReference = F20094D02EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + F20094D92EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = F20094EA2EC3F7A0001B3EFD /* Build configuration list for PBXNativeTarget "ios_dynamic_content_resizeUITests" */; + buildPhases = ( + F20094D62EC3F7A0001B3EFD /* Sources */, + F20094D72EC3F7A0001B3EFD /* Frameworks */, + F20094D82EC3F7A0001B3EFD /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + F20094DC2EC3F7A0001B3EFD /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + F20094DD2EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests */, + ); + name = ios_dynamic_content_resizeUITests; + packageProductDependencies = ( + ); + productName = ios_dynamic_content_resizeUITests; + productReference = F20094DA2EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + F20094BB2EC3F79E001B3EFD /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 2620; + LastUpgradeCheck = 2620; + TargetAttributes = { + F20094C22EC3F79E001B3EFD = { + CreatedOnToolsVersion = 26.2; + }; + F20094CF2EC3F7A0001B3EFD = { + CreatedOnToolsVersion = 26.2; + TestTargetID = F20094C22EC3F79E001B3EFD; + }; + F20094D92EC3F7A0001B3EFD = { + CreatedOnToolsVersion = 26.2; + TestTargetID = F20094C22EC3F79E001B3EFD; + }; + }; + }; + buildConfigurationList = F20094BE2EC3F79E001B3EFD /* Build configuration list for PBXProject "ios_dynamic_content_resize" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = F20094BA2EC3F79E001B3EFD; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = F20094C42EC3F79E001B3EFD /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + F20094C22EC3F79E001B3EFD /* ios_dynamic_content_resize */, + F20094CF2EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests */, + F20094D92EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + F20094C12EC3F79E001B3EFD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F20094CE2EC3F7A0001B3EFD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F20094D82EC3F7A0001B3EFD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + F20094BF2EC3F79E001B3EFD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F20094CC2EC3F7A0001B3EFD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F20094D62EC3F7A0001B3EFD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + F20094D22EC3F7A0001B3EFD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F20094C22EC3F79E001B3EFD /* ios_dynamic_content_resize */; + targetProxy = F20094D12EC3F7A0001B3EFD /* PBXContainerItemProxy */; + }; + F20094DC2EC3F7A0001B3EFD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F20094C22EC3F79E001B3EFD /* ios_dynamic_content_resize */; + targetProxy = F20094DB2EC3F7A0001B3EFD /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + F20094E22EC3F7A0001B3EFD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 26.2; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + F20094E32EC3F7A0001B3EFD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 26.2; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + F20094E52EC3F7A0001B3EFD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-dynamic-content-resize"; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + F20094E62EC3F7A0001B3EFD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-dynamic-content-resize"; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + F20094E82EC3F7A0001B3EFD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 26.2; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-dynamic-content-resizeTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ios_dynamic_content_resize.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ios_dynamic_content_resize"; + }; + name = Debug; + }; + F20094E92EC3F7A0001B3EFD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 26.2; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-dynamic-content-resizeTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ios_dynamic_content_resize.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ios_dynamic_content_resize"; + }; + name = Release; + }; + F20094EB2EC3F7A0001B3EFD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-dynamic-content-resizeUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = ios_dynamic_content_resize; + }; + name = Debug; + }; + F20094EC2EC3F7A0001B3EFD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = S8QB4VV633; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-dynamic-content-resizeUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = ios_dynamic_content_resize; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + F20094BE2EC3F79E001B3EFD /* Build configuration list for PBXProject "ios_dynamic_content_resize" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F20094E22EC3F7A0001B3EFD /* Debug */, + F20094E32EC3F7A0001B3EFD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F20094E42EC3F7A0001B3EFD /* Build configuration list for PBXNativeTarget "ios_dynamic_content_resize" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F20094E52EC3F7A0001B3EFD /* Debug */, + F20094E62EC3F7A0001B3EFD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F20094E72EC3F7A0001B3EFD /* Build configuration list for PBXNativeTarget "ios_dynamic_content_resizeTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F20094E82EC3F7A0001B3EFD /* Debug */, + F20094E92EC3F7A0001B3EFD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F20094EA2EC3F7A0001B3EFD /* Build configuration list for PBXNativeTarget "ios_dynamic_content_resizeUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F20094EB2EC3F7A0001B3EFD /* Debug */, + F20094EC2EC3F7A0001B3EFD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = F20094BB2EC3F79E001B3EFD /* Project object */; +} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AccentColor.colorset/Contents.json b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 000000000..eb8789700 --- /dev/null +++ b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AppIcon.appiconset/Contents.json b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..230588010 --- /dev/null +++ b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,35 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "tinted" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/Contents.json b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ContentView.swift b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ContentView.swift new file mode 100644 index 000000000..30e278297 --- /dev/null +++ b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ContentView.swift @@ -0,0 +1,24 @@ +// +// ContentView.swift +// ios_dynamic_content_resize +// +// Created by Louise Hsu on 11/11/25. +// + +import SwiftUI + +struct ContentView: View { + var body: some View { + VStack { + Image(systemName: "globe") + .imageScale(.large) + .foregroundStyle(.tint) + Text("Hello, world!") + } + .padding() + } +} + +#Preview { + ContentView() +} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ios_dynamic_content_resizeApp.swift b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ios_dynamic_content_resizeApp.swift new file mode 100644 index 000000000..62e7f0488 --- /dev/null +++ b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ios_dynamic_content_resizeApp.swift @@ -0,0 +1,17 @@ +// +// ios_dynamic_content_resizeApp.swift +// ios_dynamic_content_resize +// +// Created by Louise Hsu on 11/11/25. +// + +import SwiftUI + +@main +struct ios_dynamic_content_resizeApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeTests/ios_dynamic_content_resizeTests.swift b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeTests/ios_dynamic_content_resizeTests.swift new file mode 100644 index 000000000..cff1e1e38 --- /dev/null +++ b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeTests/ios_dynamic_content_resizeTests.swift @@ -0,0 +1,36 @@ +// +// ios_dynamic_content_resizeTests.swift +// ios_dynamic_content_resizeTests +// +// Created by Louise Hsu on 11/11/25. +// + +import XCTest +@testable import ios_dynamic_content_resize + +final class ios_dynamic_content_resizeTests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + // Any test you write for XCTest can be annotated as throws and async. + // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. + // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. + } + + func testPerformanceExample() throws { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITests.swift b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITests.swift new file mode 100644 index 000000000..0aa562d17 --- /dev/null +++ b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITests.swift @@ -0,0 +1,41 @@ +// +// ios_dynamic_content_resizeUITests.swift +// ios_dynamic_content_resizeUITests +// +// Created by Louise Hsu on 11/11/25. +// + +import XCTest + +final class ios_dynamic_content_resizeUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + @MainActor + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + @MainActor + func testLaunchPerformance() throws { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } +} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITestsLaunchTests.swift b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITestsLaunchTests.swift new file mode 100644 index 000000000..5562bba07 --- /dev/null +++ b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITestsLaunchTests.swift @@ -0,0 +1,33 @@ +// +// ios_dynamic_content_resizeUITestsLaunchTests.swift +// ios_dynamic_content_resizeUITests +// +// Created by Louise Hsu on 11/11/25. +// + +import XCTest + +final class ios_dynamic_content_resizeUITestsLaunchTests: XCTestCase { + + override class var runsForEachTargetApplicationUIConfiguration: Bool { + true + } + + override func setUpWithError() throws { + continueAfterFailure = false + } + + @MainActor + func testLaunch() throws { + let app = XCUIApplication() + app.launch() + + // Insert steps here to perform after app launch but before taking a screenshot, + // such as logging into a test account or navigating somewhere in the app + + let attachment = XCTAttachment(screenshot: app.screenshot()) + attachment.name = "Launch Screen" + attachment.lifetime = .keepAlways + add(attachment) + } +} From 6f4e07c9ddcb76e288005156bf360b5c092944db Mon Sep 17 00:00:00 2001 From: LouiseHsu Date: Thu, 11 Dec 2025 11:44:02 -0800 Subject: [PATCH 06/25] Fix content resizing example (#2759) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removed an accidental project i pushed 😬 also fixed the bash commands in the readme ## Pre-launch Checklist - [x] I read the [Flutter Style Guide] _recently_, and have followed its advice. - [x] I signed the [CLA]. - [x] I read the [Contributors Guide]. - [x] I have added sample code updates to the [changelog]. - [x] I updated/added relevant documentation (doc comments with `///`). --- add_to_app/ios_content_resizing/README.md | 2 - .../contents.xcworkspacedata | 7 - .../UserInterfaceState.xcuserstate | Bin 13562 -> 0 bytes .../project.pbxproj | 563 ----------------- .../contents.xcworkspacedata | 7 - .../UserInterfaceState.xcuserstate | Bin 13562 -> 0 bytes .../AccentColor.colorset/Contents.json | 11 - .../AppIcon.appiconset/Contents.json | 35 -- .../Assets.xcassets/Contents.json | 6 - .../ContentView.swift | 24 - .../ios_content_resizing_exampleApp.swift | 17 - .../ios_content_resizing_exampleTests.swift | 36 -- .../ios_content_resizing_exampleUITests.swift | 41 -- ...t_resizing_exampleUITestsLaunchTests.swift | 33 - .../project.pbxproj | 583 ------------------ .../AccentColor.colorset/Contents.json | 11 - .../AppIcon.appiconset/Contents.json | 35 -- .../Assets.xcassets/Contents.json | 6 - .../ContentView.swift | 24 - .../ios_dynamic_content_resizeApp.swift | 17 - .../ios_dynamic_content_resizeTests.swift | 36 -- .../ios_dynamic_content_resizeUITests.swift | 41 -- ...mic_content_resizeUITestsLaunchTests.swift | 33 - 23 files changed, 1568 deletions(-) delete mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/contents.xcworkspacedata delete mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.pbxproj delete mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AccentColor.colorset/Contents.json delete mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/Contents.json delete mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ContentView.swift delete mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ios_content_resizing_exampleApp.swift delete mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleTests/ios_content_resizing_exampleTests.swift delete mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITests.swift delete mode 100644 add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITestsLaunchTests.swift delete mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize.xcodeproj/project.pbxproj delete mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AccentColor.colorset/Contents.json delete mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/Contents.json delete mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ContentView.swift delete mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ios_dynamic_content_resizeApp.swift delete mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeTests/ios_dynamic_content_resizeTests.swift delete mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITests.swift delete mode 100644 add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITestsLaunchTests.swift diff --git a/add_to_app/ios_content_resizing/README.md b/add_to_app/ios_content_resizing/README.md index c06498747..9eb5160fd 100644 --- a/add_to_app/ios_content_resizing/README.md +++ b/add_to_app/ios_content_resizing/README.md @@ -18,8 +18,6 @@ you're building for both iOS and Android, with both toolchains installed): cd flutter_module/ flutter pub get - - # For iOS builds: cd ../ios_content_resizing pod install open ios_content_resizing.xcworkspace diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/contents.xcworkspacedata b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 70a3e81af..000000000 --- a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 9fe1a796bffd1e3a2d58890bdb515d6547dcd637..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13562 zcmeHt33!v$*6tpX7Mi9_hlDf(Nt&ijlg^Y<6oF1iWh!)Fl#n)GOC(Kdl0qw>J1EK^ z4hKh^Xp10%%28AlMMMt{Ajl}r3gUza>On+A{`Gxd(*cm<|3CNM=icYJ_}C2 z3(*p^3@u0ZpnK6H=uz|-YDbTwC(t^y9&JZ&p|{aH=v}k}?L_aPU1&FYAMHUOpabY* z^a=VDeTELBpV2Sq-{=(j6`e-EVS*`^U@7j4lduJ+;tZUJ_TvF~5WW%*!NYM8z8a6j zqj3cuk8AK0JOewi3v;+0Ux&TekLThAcoDuG--YkN_u>cfb9f_u9>0KJ#GCL-_+`8q zzk*-ITktmg4&Hp4`bRGRCeU?5) zU!q}56160$I>p=U@$5r#6oX=s0wo~T#IcoGv$)p46!`44;F^>=k24TxM{y{g5k}il zB2qF5`-mkw6e)Rw3X1Yei^?)f2Ik~t<`2v%%q%J>D9g+(EGjC>D<~~1DIDNXB$k(! zP4xL^1)7|7T&b_Fxsme*!vkxO8D%_yv`B~as6R3wBQl|6CS?&UlJ#MISrn78=qFGL zvY=Fy27mkW-2?3xtYZ|xg#?3%L?)b6c-i^E*d<@p-AoO5n2~J{S%#m z8h5}AlbPra&a8BM8$2A;I1~mDEUF6vj&!N3_jrn=?yh`3Pp#8m9`4GaPcP(eRIY-XS*AmpmnjR z>t~Ul1Kr1gRCUnpaR=R8V4~XENf0pQ>?EozKN(LGw}WU{=>SSzX$Pc~){Bm=EXb zss%W|+V5*_5-R}w1K|-J$b~Xip&7`DYEd22v;NG$jH?ib>QMvYn2DKL3jBqU6Gyl` zLC!B2V{z*km<2cp7;UsO5bPR>FLo$Y)!zC`3aiCFI9GLf?|#Db@u4Q9TDg)X??nL= zM9paS6!A2B!LBEXU%9}vv6ZE6Fgl;t>2GZZsX3FzR*n<=muOSH=2Pi|Ed#;u7&oAK zNY#esGD{np&r*3*;O+2|ZT14rgwO(XvqPZ)#q+1Jg7>TwxF$ar08DW5vtU-1HZG3P z+OXHfgi53l#uP9RfTCbgT^$z)a4tB*++=r|MA?F5l=+M#3!oMn*MwH^o^2NH93PbCj$U*EhF9DV7n~Zq0qT~0Y@F2aF~t* zX63#Cj;DibaW*!2U^7gYtF8i&2`IpO#VX>ab1h9yFV78x=?OD9x)t51KrnPdT$>D} zlyPG5^B=cCVZXR`8DE;zS^C;HhoMxfZ5nC(Aoz zGBa2fk6N&%8aFp5D=^1hA8fZ++f&obsPmtBYl`@-J>6y=e!ckJJbbZL{MH8?KnhTk zAwWZ_fOyn`MPCm_wH&>OUP4=dMjS+kfI57RzCy==Je)$m17+xgWjGgTLLm@@5`iGh zz;!?he7FTD!7XCf1dE@@-uc=2ftQJPdn>vPFtn_t$s;28xaOe8?dABDh=htaq|P(Y zffk{~XwKi3cPMHdRl%!EYH|xoYpS}(06fSm=>FMb$g0*RE-7>ML>cYqe)Is#V%hCz1$v0(uspuUwB`Wk zukdsAoZrv6x6;O#H zzuyUf(t+lP606agm27}0u@*f!y-O8>Uui*}h_co9#5d1b6aPornh2J}z#EP4)Y zM9-ra!0tA&0yc;hvcc>Mb|o9au3|&kFgAQ0dKqm-ub@}KEMG%g(d%d%dIP=5idYFN zWo2vxyPBzS}rLprzvnS{VND&6A@VgrUQ%5^nea%7OB^S&?uqxOJ zbCW0+t`;H=S8wzL69f1y?BfpZDN z0b&TP8^B5Ny5LXSKC~C@0}S5}fxGOmg9mV1Hn1Qf`ji0{Coe>2tKE4Sm5zvH@WuIfA}N z8LPoOj-s#8H|SgR9T-J9yM~QoquH3%=otC|Q0W*t0mN}E8^;>q?>eB4a1!D~ZNi|y z%sQ8zAeM~;MS-nDVco32wPG2+!?^?OQ+YQt3S5Waw)H?qnmsO_lvDtZoWNZV#4`xS z!V}$qf`+Gg2A$(6$?xba`h!)l@oYi|`V(w*GphvKEa9gU&#%5H&^ff=%)sx34HPN` zl>-MUZ3Qpxt_zn4n!ypMtqn)ADwcZ)M*;RmV>yb&F*p`0a2$@u2{;ie;afkfb|{iu zom5;jSHL8GxUmA~H38+|c$Un=T~;9I2Sn>_FffGxAHa6wm_woU3Y@RArwirdde!pd zObySVdctUE9sbn~E?pSPCbR1pV%5w8-x}DggII&LSO<&K8fxpnR-BG)Y!aKsrnB6AI1^{Vs^V}C&YjXdTD33_So;(< z^-|7UIAAy*4+I7S=fB%8!ic;x5|Pa9Z^s3^cf71jcn*bVGtOn#f?dLpm*qv_7FP)^ z9Dl1tF|4u#m*O&<(9;Yi2i=Wuc7Sd%C#z)u18aCwydpb0n@8I~w#V1(4sbIA&Do{g zY|i6r;?G!iK;UPAY^TfR2>Kk(rl#!6F(#q%ZwdVs70kYfPl;Plj;{d-1}+h{n6MSL z<59fkFI5G+7>~hY@wh2GAr*Iwam?jVJn(ct z1ElvT0+gr#^yFOp2`huRxm9dA5l?a`tX+XZCt`G)ZEx&o$CG*8{cZVucq*uL8o=Fj z?BJ6cwax$so+iuBc>oe-a{wi725$ZTE!(Qab=6}l0V~^atzb({&9xqPok-_11HNW| z9fT;ET~NdawW8Mw8)H@l*We5^2Py^G64*>}I~p)3gHO}+a(uiyXvc1Ts7uy~AT|rU zG4?PoP&@1cwKw7GAqK2#24d+AUeq7+u_rI>o0{?Lux}F3ehzE8G}_O@^TTM*X0z+V zAS}-2W*$;+!3*)N%+CTWcmbq}2pYz#9tamMx?6y-=Kn5)iD0!)Os3%#cr|cV{1AQ^ zKY|~{kKvWL4Y%VCyb3?gT39Q)fz4&}*nD;)yNNLtVhh&cHIUh|pcK3gug6aTC$QiR zD23e&BqatiD+}2@>|U5u3|j-gfG23Ww@}n^mKXp7=LE36xDu$z7`GQ_W)o2QOIGvN zP~w9WwzC1O$Z$!Sa_?+0am5D)7fE;o{@UfedB%E?j2M^$r3!LczWVwA2Yi=5*Ww}| zBAE?DlP6h4%`K1}0#+>62rVu(XwMG$u<)-|U(_6&>GQ*!E>;c?Y9o9e7a!?gLa}rF z&Zg1Ob3nAP*LaS#mEFPzJCHfWZ=kkSJcko_9M9tT|8m2o@GgE2soL=lyp!F^ZfnQ8 z@NTw<-OlGpG^Ly;=oFVHQr#}qL29Z3wAlc8CNB{D0C4%h1tQ@A_Tvxu0S@4UY%yEX zjt`*~Y$=3!$|r>dkFa+3I9n}{c>#($jXIDu#pi1T z`|DlE2Mv61Rm^WSn5U*oyz^X_IK8tWsSP#?r}DzeQs7E%uRwD}32pD*E8Jc$IA8Ht z0iC_D{Wv)9eo%S9JnW>fdT!641NYSVrNgVwUEBRhrq6vvgGP|IIMvS>{~DZGJxcZd3{lNJtMewGLZLVeA55o zO5iEsh|VF__KGk_AsO7|bDm{S_3}An82B7AoD`8__B4BjZTN5c95P1mIsXLM_|HVU z2W{@JzB3clypstX=D}xZ;lzK9YAEtrKByMsYdx^cwHnUe&f$Q1~`K1)F{}R|F!9{6n zAXUPry5Nd}o5S0AV1jdwcq;>T-n+Ilds|uOYXUnr_No+``}~m3;4Q8Rzy{8Vs+Wk+ zJ0Git=Q*3)1lLMr4rw8+#3jcf~hjcsMGvu*4R_9pw+6N1wPx7+z?f%%IL zSNs$*1a@8_;Ut?2;49$saC}x}w7b^NJ18%|$Z*<(zl6G^bX7R8=`C;jEBT7@(kiIy z)p^EW36J4|P8Wphy~TOQdg-}NF8dS`B!V9%527{gWCeMMy~B2OWroP3 zq#gVld5o+iZR}mPgYE1f6Hy9z98QRwy~mQTh3>lJ>}mY3?khC~{N$}~jI+V(4mP_W z$Lbf|M0kSh$%c#ip9K9s2j@@DcC%#j@X#g!S;H+}B%4qM+{&aYy0G>YvZZU4ud#hB zU0l&NenoGPH`#vnLHCN@B0DY`aVLzpiyeRw53=ORur(rvnTNY)^cs5~0kUv`HV%RR z`iLC@yZ?~)_OZ}9ocZI8+&p~R)?R&lPJTogPm?dmm*g-xLcStL$=Bo?@-6v}d{2&% zAINd`G5dsl%06SCvoF|}>@YjRzG6q&*X$ei?bGB0IZ1vZKLcJ^$SL^$H2IC3fs(U; z9^bL=LpULXm4G5KA*|;AB!#dxgl$6kU=dl=6S%sr;36E`KwQMT&(1ujr~rXA21fY& zVx?ZZTm=*5UuRTu!S0QRJl-_1wz6&}$6x!VOlbD@aIZpa8iZz$X%}+7{M{v7*;ybj zT*nnRyFD%#r^w^!DHtfPAIotr4nq0Z@I1vEXP9b&cs{CTf|gxZJNXM`=uaco^Eq*E z15Cs#W^v2C^*%`az?_7{LkpyDc@;o6iQ=?-&(@*nci~$36DedXW5e0Ru9+kj!xUyU z`QQ>PAT$GZ?h$d0k}PQ#}CXcAum!fjN;e(0{y z({u=jXn$&;MrxwT)J#*Tg{IOpYGudSkL(0H$$nx#vtQW1*(vrbJH3wD1Vm1uS$I9o z;cbNu0Q>l@6PP5l3WNHqDZ|I+~xEd~>zCG1RRKtxAeE+C>~Xa%r3 zI+l)OXW1X^bUdBF&V?}gUltM3iF67-!X$`@{uCl2It^Ik`HLbV(ZFX2_f}yWuA>bA zkkmyvS|7qVgh>d~4*WHB)9cvs5SE0nl%MH;2weUrvC!WPv-Z*^6icuFJ2A~(8U)ei zi$yOEpTg^Jp+K8f(^h%|olED@`SivRjtt>GA>22Fqe55~!qGy=Ll+P!;^;y?g~J4sv!$FN7+iIOBjr~@x2dIc?E@%!n65ZcfO zLRfLB*d{FYC~Xts7rK%?5yJ89bQ%OO=lKBUg3x6T?9!SLP832Ix|Ti(G3;2lM{1{Q zyRL=ldipd!=u;sKf1e2f%qH{iUU*aoiYKHlE}Nqlt$ib$RTKvgxw_zd6MY#_n=fml zn?qRBNj~Tn{*sNC3}3R*ZFD<-Hr}9b(tm}pE`;?V+`ogqMc=0Hgs>rm%^{p791fV* zMUF~zs{z3S4ZM^9|MUe?{I1@PthiNdD751rQeD(>Z+U)z@CNLrdthnw{SY>`(Y+xo zyu7)*lITI$ix21_K55L~M40)PBS#m0vnhndS2Xk^`Y~(||M;Yx!u@4^JFoaVf8sWg@<%GIe9s` zWe#`KOrMv72P#f~V?n-XF5lAcfLwIlrHi)ELBFNn3lDk3-{D#QK!Llp(c>X(ZKEeb zIGvy6-ycxW&M)+kpp~zqCvE_(guDJ#f{}NQgu#iI7A}`hbU*hj2cRDET2gFoX+2cu)uzf`?C@ z;trH~+ztGzIp92E4gzj~+;#AV$Qc9@2B{TQ&*E};RtEWgh(+K|P^_pd9VJAK@U*9Q z7vW19xPKKTdy=@xU5z1o&~pSnUiR>5(~Cw1js|ZDgWRO99aH2%C{Y4wGI7qCdBsI} z14~8}W|rg(D$X2ORxl{Duy|ljW?_EWz{1?z5rg5QTG-}k;XZN;vj$FaSMVl~J1_&b zAF_`Ujqs=f-V-OGWR!t&;pyHmcpY2=uY;$PgYZuEJD}Eo!28rb@G3Q$CvQ{
        H< zJgubx+6=EvTLJ3l)0=3B-c0X-x26x!74Y8lQM!`0(^c^1^dS9_o|6ofG)NXp9+zyD zye`=$IU+eJIWNUhDwRqjrG2F`sa&d)_Lmx^$Qs?;jANi(Fwq!Xm|(pKp*=}PI- z(#_Is(l@2srEg1jOZQ0kNe@Urkp3PK6JdHt0T%IMn#N?7#A@< zVrIm=hU$dQrbBfXJL zk^a7|eHZjy*Z0}JA4d(3DvxqR)kg)QW=FL|&5fELbyL)us0~rCMs16FGirO(j;Qyd zc1P`rIx92Ctg>{OU6wB!A}f+zBO4_fBdd{dGLNiTwm|lv>>=4Bvd3g?vJTnfvNf`` zvURejWY5U9%ifl~E88jCC3|1CSGHevPjkn4*}mG1V~>VJ*%!LE%=+QnV;;RxDO5RV-87spwFwSL{%{ zuQ;LjL-A)EiX(BRxU9IGxV*UhxXQR0ah|x@aV>E-#LbIOjn9rRi@zp*M!Y*d7(Y9{ zB_Sa}mtalEPPj5*OhQdUDB;$GeQm~|>ND!I>T^k{Nt2RV zlNKc1nbe-ND(R`DjY%&hZA;pnbU5j&q~l4yYN$q`iPt1*R2sELqtR*7HFiy=CR>xM z8K4=c8KfDlnWb5zc~bMX<}1x{&F`A?TCAnoKH4a4v^GYo)Fx}K+Dz>g+N-p~w8h#| z?Fen9_FC<9?JTWF+o<(v=V?RQo3#tIOSHFZ@6g_*y-)kN_G#^Q?GEh`?I~T1PN9p} zCF)cukCVU6w9Km!})1E7Fzd%5)QSRk|A8Bps(~(7AQ9bW3#i>mJlSq-7EgMt!p0uFuqG>vQ!3 z^aJ&k`X>Ey{d)aN`gip^^}F=%>-XyS>ksM==|9pR(;wHL(Ep_WMSn_vT7O1=R)4O) zz5mqyi~7IV|F9w6P-+MmnBiu_Lc=1%62t9=m4>y3rwtnn&l)xwUN^jLc-OGgu*-13 z@PXk&!^ehC4aW?>8D+*qqseGB+Kd^-EaO1qAmd=;mBy=#BaD^CDr2>AqH(gZ-sm>Y zGJ1_oM!#{ckr@{lZ!z9#Ty9)peAxJ?aiwvMajkKk@hRgo#+QuSjJu5ojfadM89y-| zF&;I3WBkr|%y`ZeVM;LNnDR{drUFx;=?c>j(@@iJQ?aSkG{Q8}bd71W$!(ftYBV*O z0;Xou9McV^d8V683rq`5i%d&R%S?Bgo;1B>`o{F{WNmUua&_{orCtQ z))wo0>k{iS>s{96*88jvSXW#BW!+`nW8G&xU_ER-YW>Fgz4f^Dg!MP;S?f9L`Sj@Y zgmhJUQo1hPoSvGVo}Q7Ol|C;0w)73@ucmKJea7mTk+k4YUoi)z}<1x6Na_-?q~BtnDS+HrsC7UfTiNA=}5cPwjo|adwSeZ@1a6 zvJbbH*hkpQ?W67E>=W$O_DS|x_C|Y?-EVKUx7g>}Z?uQ(H`^E5@3OD4Z?*5Ue{VmZ p(Ko}CaYaT+MoY$x8A~(n%XlnfrI6S|1a7$ae-fSe8UCBm{$Ds(V<`Xt diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.pbxproj b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.pbxproj deleted file mode 100644 index 1ffada498..000000000 --- a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.pbxproj +++ /dev/null @@ -1,563 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 77; - objects = { - -/* Begin PBXContainerItemProxy section */ - F214C5BC2EDFA9CA000FC3CB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F214C5A62EDFA9C7000FC3CB /* Project object */; - proxyType = 1; - remoteGlobalIDString = F214C5AD2EDFA9C7000FC3CB; - remoteInfo = ios_content_resizing_example; - }; - F214C5C62EDFA9CA000FC3CB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F214C5A62EDFA9C7000FC3CB /* Project object */; - proxyType = 1; - remoteGlobalIDString = F214C5AD2EDFA9C7000FC3CB; - remoteInfo = ios_content_resizing_example; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - F214C5AE2EDFA9C7000FC3CB /* ios_content_resizing_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ios_content_resizing_example.app; sourceTree = BUILT_PRODUCTS_DIR; }; - F214C5BB2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ios_content_resizing_exampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - F214C5C52EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ios_content_resizing_exampleUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFileSystemSynchronizedRootGroup section */ - F214C5B02EDFA9C7000FC3CB /* ios_content_resizing_example */ = { - isa = PBXFileSystemSynchronizedRootGroup; - path = ios_content_resizing_example; - sourceTree = ""; - }; - F214C5BE2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests */ = { - isa = PBXFileSystemSynchronizedRootGroup; - path = ios_content_resizing_exampleTests; - sourceTree = ""; - }; - F214C5C82EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests */ = { - isa = PBXFileSystemSynchronizedRootGroup; - path = ios_content_resizing_exampleUITests; - sourceTree = ""; - }; -/* End PBXFileSystemSynchronizedRootGroup section */ - -/* Begin PBXFrameworksBuildPhase section */ - F214C5AB2EDFA9C7000FC3CB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F214C5B82EDFA9CA000FC3CB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F214C5C22EDFA9CA000FC3CB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - F214C5A52EDFA9C7000FC3CB = { - isa = PBXGroup; - children = ( - F214C5B02EDFA9C7000FC3CB /* ios_content_resizing_example */, - F214C5BE2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests */, - F214C5C82EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests */, - F214C5AF2EDFA9C7000FC3CB /* Products */, - ); - sourceTree = ""; - }; - F214C5AF2EDFA9C7000FC3CB /* Products */ = { - isa = PBXGroup; - children = ( - F214C5AE2EDFA9C7000FC3CB /* ios_content_resizing_example.app */, - F214C5BB2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests.xctest */, - F214C5C52EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests.xctest */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - F214C5AD2EDFA9C7000FC3CB /* ios_content_resizing_example */ = { - isa = PBXNativeTarget; - buildConfigurationList = F214C5CF2EDFA9CA000FC3CB /* Build configuration list for PBXNativeTarget "ios_content_resizing_example" */; - buildPhases = ( - F214C5AA2EDFA9C7000FC3CB /* Sources */, - F214C5AB2EDFA9C7000FC3CB /* Frameworks */, - F214C5AC2EDFA9C7000FC3CB /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - fileSystemSynchronizedGroups = ( - F214C5B02EDFA9C7000FC3CB /* ios_content_resizing_example */, - ); - name = ios_content_resizing_example; - packageProductDependencies = ( - ); - productName = ios_content_resizing_example; - productReference = F214C5AE2EDFA9C7000FC3CB /* ios_content_resizing_example.app */; - productType = "com.apple.product-type.application"; - }; - F214C5BA2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = F214C5D22EDFA9CA000FC3CB /* Build configuration list for PBXNativeTarget "ios_content_resizing_exampleTests" */; - buildPhases = ( - F214C5B72EDFA9CA000FC3CB /* Sources */, - F214C5B82EDFA9CA000FC3CB /* Frameworks */, - F214C5B92EDFA9CA000FC3CB /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - F214C5BD2EDFA9CA000FC3CB /* PBXTargetDependency */, - ); - fileSystemSynchronizedGroups = ( - F214C5BE2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests */, - ); - name = ios_content_resizing_exampleTests; - packageProductDependencies = ( - ); - productName = ios_content_resizing_exampleTests; - productReference = F214C5BB2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - F214C5C42EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = F214C5D52EDFA9CA000FC3CB /* Build configuration list for PBXNativeTarget "ios_content_resizing_exampleUITests" */; - buildPhases = ( - F214C5C12EDFA9CA000FC3CB /* Sources */, - F214C5C22EDFA9CA000FC3CB /* Frameworks */, - F214C5C32EDFA9CA000FC3CB /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - F214C5C72EDFA9CA000FC3CB /* PBXTargetDependency */, - ); - fileSystemSynchronizedGroups = ( - F214C5C82EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests */, - ); - name = ios_content_resizing_exampleUITests; - packageProductDependencies = ( - ); - productName = ios_content_resizing_exampleUITests; - productReference = F214C5C52EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - F214C5A62EDFA9C7000FC3CB /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = 1; - LastSwiftUpdateCheck = 1640; - LastUpgradeCheck = 1640; - TargetAttributes = { - F214C5AD2EDFA9C7000FC3CB = { - CreatedOnToolsVersion = 16.4; - }; - F214C5BA2EDFA9CA000FC3CB = { - CreatedOnToolsVersion = 16.4; - TestTargetID = F214C5AD2EDFA9C7000FC3CB; - }; - F214C5C42EDFA9CA000FC3CB = { - CreatedOnToolsVersion = 16.4; - TestTargetID = F214C5AD2EDFA9C7000FC3CB; - }; - }; - }; - buildConfigurationList = F214C5A92EDFA9C7000FC3CB /* Build configuration list for PBXProject "ios_content_resizing_example" */; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = F214C5A52EDFA9C7000FC3CB; - minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 77; - productRefGroup = F214C5AF2EDFA9C7000FC3CB /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - F214C5AD2EDFA9C7000FC3CB /* ios_content_resizing_example */, - F214C5BA2EDFA9CA000FC3CB /* ios_content_resizing_exampleTests */, - F214C5C42EDFA9CA000FC3CB /* ios_content_resizing_exampleUITests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - F214C5AC2EDFA9C7000FC3CB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F214C5B92EDFA9CA000FC3CB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F214C5C32EDFA9CA000FC3CB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - F214C5AA2EDFA9C7000FC3CB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F214C5B72EDFA9CA000FC3CB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F214C5C12EDFA9CA000FC3CB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - F214C5BD2EDFA9CA000FC3CB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = F214C5AD2EDFA9C7000FC3CB /* ios_content_resizing_example */; - targetProxy = F214C5BC2EDFA9CA000FC3CB /* PBXContainerItemProxy */; - }; - F214C5C72EDFA9CA000FC3CB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = F214C5AD2EDFA9C7000FC3CB /* ios_content_resizing_example */; - targetProxy = F214C5C62EDFA9CA000FC3CB /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - F214C5CD2EDFA9CA000FC3CB /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = S8QB4VV633; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 18.5; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - F214C5CE2EDFA9CA000FC3CB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = S8QB4VV633; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 18.5; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - F214C5D02EDFA9CA000FC3CB /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = S8QB4VV633; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing-example"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - F214C5D12EDFA9CA000FC3CB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = S8QB4VV633; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing-example"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - F214C5D32EDFA9CA000FC3CB /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = S8QB4VV633; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 18.5; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing-exampleTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ios_content_resizing_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ios_content_resizing_example"; - }; - name = Debug; - }; - F214C5D42EDFA9CA000FC3CB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = S8QB4VV633; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 18.5; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing-exampleTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ios_content_resizing_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ios_content_resizing_example"; - }; - name = Release; - }; - F214C5D62EDFA9CA000FC3CB /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = S8QB4VV633; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing-exampleUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = ios_content_resizing_example; - }; - name = Debug; - }; - F214C5D72EDFA9CA000FC3CB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = S8QB4VV633; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-content-resizing-exampleUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = ios_content_resizing_example; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - F214C5A92EDFA9C7000FC3CB /* Build configuration list for PBXProject "ios_content_resizing_example" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F214C5CD2EDFA9CA000FC3CB /* Debug */, - F214C5CE2EDFA9CA000FC3CB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F214C5CF2EDFA9CA000FC3CB /* Build configuration list for PBXNativeTarget "ios_content_resizing_example" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F214C5D02EDFA9CA000FC3CB /* Debug */, - F214C5D12EDFA9CA000FC3CB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F214C5D22EDFA9CA000FC3CB /* Build configuration list for PBXNativeTarget "ios_content_resizing_exampleTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F214C5D32EDFA9CA000FC3CB /* Debug */, - F214C5D42EDFA9CA000FC3CB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F214C5D52EDFA9CA000FC3CB /* Build configuration list for PBXNativeTarget "ios_content_resizing_exampleUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F214C5D62EDFA9CA000FC3CB /* Debug */, - F214C5D72EDFA9CA000FC3CB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = F214C5A62EDFA9C7000FC3CB /* Project object */; -} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a62..000000000 --- a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example.xcodeproj/project.xcworkspace/xcuserdata/louisehsu.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 9fe1a796bffd1e3a2d58890bdb515d6547dcd637..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13562 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
          H< zJgubx+6=EvTLJ3l)0=3B-c0X-x26x!74Y8lQM!`0(^c^1^dS9_o|6ofG)NXp9+zyD zye`=$IU+eJIWNUhDwRqjrG2F`sa&d)_Lmx^$Qs?;jANi(Fwq!Xm|(pKp*=}PI- z(#_Is(l@2srEg1jOZQ0kNe@Urkp3PK6JdHt0T%IMn#N?7#A@< zVrIm=hU$dQrbBfXJL zk^a7|eHZjy*Z0}JA4d(3DvxqR)kg)QW=FL|&5fELbyL)us0~rCMs16FGirO(j;Qyd zc1P`rIx92Ctg>{OU6wB!A}f+zBO4_fBdd{dGLNiTwm|lv>>=4Bvd3g?vJTnfvNf`` zvURejWY5U9%ifl~E88jCC3|1CSGHevPjkn4*}mG1V~>VJ*%!LE%=+QnV;;RxDO5RV-87spwFwSL{%{ zuQ;LjL-A)EiX(BRxU9IGxV*UhxXQR0ah|x@aV>E-#LbIOjn9rRi@zp*M!Y*d7(Y9{ zB_Sa}mtalEPPj5*OhQdUDB;$GeQm~|>ND!I>T^k{Nt2RV zlNKc1nbe-ND(R`DjY%&hZA;pnbU5j&q~l4yYN$q`iPt1*R2sELqtR*7HFiy=CR>xM z8K4=c8KfDlnWb5zc~bMX<}1x{&F`A?TCAnoKH4a4v^GYo)Fx}K+Dz>g+N-p~w8h#| z?Fen9_FC<9?JTWF+o<(v=V?RQo3#tIOSHFZ@6g_*y-)kN_G#^Q?GEh`?I~T1PN9p} zCF)cukCVU6w9Km!})1E7Fzd%5)QSRk|A8Bps(~(7AQ9bW3#i>mJlSq-7EgMt!p0uFuqG>vQ!3 z^aJ&k`X>Ey{d)aN`gip^^}F=%>-XyS>ksM==|9pR(;wHL(Ep_WMSn_vT7O1=R)4O) zz5mqyi~7IV|F9w6P-+MmnBiu_Lc=1%62t9=m4>y3rwtnn&l)xwUN^jLc-OGgu*-13 z@PXk&!^ehC4aW?>8D+*qqseGB+Kd^-EaO1qAmd=;mBy=#BaD^CDr2>AqH(gZ-sm>Y zGJ1_oM!#{ckr@{lZ!z9#Ty9)peAxJ?aiwvMajkKk@hRgo#+QuSjJu5ojfadM89y-| zF&;I3WBkr|%y`ZeVM;LNnDR{drUFx;=?c>j(@@iJQ?aSkG{Q8}bd71W$!(ftYBV*O z0;Xou9McV^d8V683rq`5i%d&R%S?Bgo;1B>`o{F{WNmUua&_{orCtQ z))wo0>k{iS>s{96*88jvSXW#BW!+`nW8G&xU_ER-YW>Fgz4f^Dg!MP;S?f9L`Sj@Y zgmhJUQo1hPoSvGVo}Q7Ol|C;0w)73@ucmKJea7mTk+k4YUoi)z}<1x6Na_-?q~BtnDS+HrsC7UfTiNA=}5cPwjo|adwSeZ@1a6 zvJbbH*hkpQ?W67E>=W$O_DS|x_C|Y?-EVKUx7g>}Z?uQ(H`^E5@3OD4Z?*5Ue{VmZ p(Ko}CaYaT+MoY$x8A~(n%XlnfrI6S|1a7$ae-fSe8UCBm{$Ds(V<`Xt diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AccentColor.colorset/Contents.json b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index eb8789700..000000000 --- a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "colors" : [ - { - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AppIcon.appiconset/Contents.json b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 230588010..000000000 --- a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "tinted" - } - ], - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/Contents.json b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/Contents.json deleted file mode 100644 index 73c00596a..000000000 --- a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ContentView.swift b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ContentView.swift deleted file mode 100644 index 4493f9757..000000000 --- a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ContentView.swift +++ /dev/null @@ -1,24 +0,0 @@ -// -// ContentView.swift -// ios_content_resizing_example -// -// Created by Louise Hsu on 12/2/25. -// - -import SwiftUI - -struct ContentView: View { - var body: some View { - VStack { - Image(systemName: "globe") - .imageScale(.large) - .foregroundStyle(.tint) - Text("Hello, world!") - } - .padding() - } -} - -#Preview { - ContentView() -} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ios_content_resizing_exampleApp.swift b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ios_content_resizing_exampleApp.swift deleted file mode 100644 index c033879a9..000000000 --- a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_example/ios_content_resizing_exampleApp.swift +++ /dev/null @@ -1,17 +0,0 @@ -// -// ios_content_resizing_exampleApp.swift -// ios_content_resizing_example -// -// Created by Louise Hsu on 12/2/25. -// - -import SwiftUI - -@main -struct ios_content_resizing_exampleApp: App { - var body: some Scene { - WindowGroup { - ContentView() - } - } -} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleTests/ios_content_resizing_exampleTests.swift b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleTests/ios_content_resizing_exampleTests.swift deleted file mode 100644 index 787b405c3..000000000 --- a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleTests/ios_content_resizing_exampleTests.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// ios_content_resizing_exampleTests.swift -// ios_content_resizing_exampleTests -// -// Created by Louise Hsu on 12/2/25. -// - -import XCTest -@testable import ios_content_resizing_example - -final class ios_content_resizing_exampleTests: XCTestCase { - - override func setUpWithError() throws { - // Put setup code here. This method is called before the invocation of each test method in the class. - } - - override func tearDownWithError() throws { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testExample() throws { - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct results. - // Any test you write for XCTest can be annotated as throws and async. - // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. - // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. - } - - func testPerformanceExample() throws { - // This is an example of a performance test case. - self.measure { - // Put the code you want to measure the time of here. - } - } - -} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITests.swift b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITests.swift deleted file mode 100644 index 3b1990b86..000000000 --- a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITests.swift +++ /dev/null @@ -1,41 +0,0 @@ -// -// ios_content_resizing_exampleUITests.swift -// ios_content_resizing_exampleUITests -// -// Created by Louise Hsu on 12/2/25. -// - -import XCTest - -final class ios_content_resizing_exampleUITests: XCTestCase { - - override func setUpWithError() throws { - // Put setup code here. This method is called before the invocation of each test method in the class. - - // In UI tests it is usually best to stop immediately when a failure occurs. - continueAfterFailure = false - - // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. - } - - override func tearDownWithError() throws { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - @MainActor - func testExample() throws { - // UI tests must launch the application that they test. - let app = XCUIApplication() - app.launch() - - // Use XCTAssert and related functions to verify your tests produce the correct results. - } - - @MainActor - func testLaunchPerformance() throws { - // This measures how long it takes to launch your application. - measure(metrics: [XCTApplicationLaunchMetric()]) { - XCUIApplication().launch() - } - } -} diff --git a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITestsLaunchTests.swift b/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITestsLaunchTests.swift deleted file mode 100644 index 29e3af775..000000000 --- a/add_to_app/ios_content_resizing_example/ios_app/ios_content_resizing_example/ios_content_resizing_exampleUITests/ios_content_resizing_exampleUITestsLaunchTests.swift +++ /dev/null @@ -1,33 +0,0 @@ -// -// ios_content_resizing_exampleUITestsLaunchTests.swift -// ios_content_resizing_exampleUITests -// -// Created by Louise Hsu on 12/2/25. -// - -import XCTest - -final class ios_content_resizing_exampleUITestsLaunchTests: XCTestCase { - - override class var runsForEachTargetApplicationUIConfiguration: Bool { - true - } - - override func setUpWithError() throws { - continueAfterFailure = false - } - - @MainActor - func testLaunch() throws { - let app = XCUIApplication() - app.launch() - - // Insert steps here to perform after app launch but before taking a screenshot, - // such as logging into a test account or navigating somewhere in the app - - let attachment = XCTAttachment(screenshot: app.screenshot()) - attachment.name = "Launch Screen" - attachment.lifetime = .keepAlways - add(attachment) - } -} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize.xcodeproj/project.pbxproj b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize.xcodeproj/project.pbxproj deleted file mode 100644 index bbe1f071c..000000000 --- a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize.xcodeproj/project.pbxproj +++ /dev/null @@ -1,583 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 77; - objects = { - -/* Begin PBXContainerItemProxy section */ - F20094D12EC3F7A0001B3EFD /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F20094BB2EC3F79E001B3EFD /* Project object */; - proxyType = 1; - remoteGlobalIDString = F20094C22EC3F79E001B3EFD; - remoteInfo = ios_dynamic_content_resize; - }; - F20094DB2EC3F7A0001B3EFD /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F20094BB2EC3F79E001B3EFD /* Project object */; - proxyType = 1; - remoteGlobalIDString = F20094C22EC3F79E001B3EFD; - remoteInfo = ios_dynamic_content_resize; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - F20094C32EC3F79E001B3EFD /* ios_dynamic_content_resize.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ios_dynamic_content_resize.app; sourceTree = BUILT_PRODUCTS_DIR; }; - F20094D02EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ios_dynamic_content_resizeTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - F20094DA2EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ios_dynamic_content_resizeUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFileSystemSynchronizedRootGroup section */ - F20094C52EC3F79E001B3EFD /* ios_dynamic_content_resize */ = { - isa = PBXFileSystemSynchronizedRootGroup; - path = ios_dynamic_content_resize; - sourceTree = ""; - }; - F20094D32EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests */ = { - isa = PBXFileSystemSynchronizedRootGroup; - path = ios_dynamic_content_resizeTests; - sourceTree = ""; - }; - F20094DD2EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests */ = { - isa = PBXFileSystemSynchronizedRootGroup; - path = ios_dynamic_content_resizeUITests; - sourceTree = ""; - }; -/* End PBXFileSystemSynchronizedRootGroup section */ - -/* Begin PBXFrameworksBuildPhase section */ - F20094C02EC3F79E001B3EFD /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F20094CD2EC3F7A0001B3EFD /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F20094D72EC3F7A0001B3EFD /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - F20094BA2EC3F79E001B3EFD = { - isa = PBXGroup; - children = ( - F20094C52EC3F79E001B3EFD /* ios_dynamic_content_resize */, - F20094D32EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests */, - F20094DD2EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests */, - F20094C42EC3F79E001B3EFD /* Products */, - ); - sourceTree = ""; - }; - F20094C42EC3F79E001B3EFD /* Products */ = { - isa = PBXGroup; - children = ( - F20094C32EC3F79E001B3EFD /* ios_dynamic_content_resize.app */, - F20094D02EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests.xctest */, - F20094DA2EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests.xctest */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - F20094C22EC3F79E001B3EFD /* ios_dynamic_content_resize */ = { - isa = PBXNativeTarget; - buildConfigurationList = F20094E42EC3F7A0001B3EFD /* Build configuration list for PBXNativeTarget "ios_dynamic_content_resize" */; - buildPhases = ( - F20094BF2EC3F79E001B3EFD /* Sources */, - F20094C02EC3F79E001B3EFD /* Frameworks */, - F20094C12EC3F79E001B3EFD /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - fileSystemSynchronizedGroups = ( - F20094C52EC3F79E001B3EFD /* ios_dynamic_content_resize */, - ); - name = ios_dynamic_content_resize; - packageProductDependencies = ( - ); - productName = ios_dynamic_content_resize; - productReference = F20094C32EC3F79E001B3EFD /* ios_dynamic_content_resize.app */; - productType = "com.apple.product-type.application"; - }; - F20094CF2EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = F20094E72EC3F7A0001B3EFD /* Build configuration list for PBXNativeTarget "ios_dynamic_content_resizeTests" */; - buildPhases = ( - F20094CC2EC3F7A0001B3EFD /* Sources */, - F20094CD2EC3F7A0001B3EFD /* Frameworks */, - F20094CE2EC3F7A0001B3EFD /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - F20094D22EC3F7A0001B3EFD /* PBXTargetDependency */, - ); - fileSystemSynchronizedGroups = ( - F20094D32EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests */, - ); - name = ios_dynamic_content_resizeTests; - packageProductDependencies = ( - ); - productName = ios_dynamic_content_resizeTests; - productReference = F20094D02EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - F20094D92EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = F20094EA2EC3F7A0001B3EFD /* Build configuration list for PBXNativeTarget "ios_dynamic_content_resizeUITests" */; - buildPhases = ( - F20094D62EC3F7A0001B3EFD /* Sources */, - F20094D72EC3F7A0001B3EFD /* Frameworks */, - F20094D82EC3F7A0001B3EFD /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - F20094DC2EC3F7A0001B3EFD /* PBXTargetDependency */, - ); - fileSystemSynchronizedGroups = ( - F20094DD2EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests */, - ); - name = ios_dynamic_content_resizeUITests; - packageProductDependencies = ( - ); - productName = ios_dynamic_content_resizeUITests; - productReference = F20094DA2EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - F20094BB2EC3F79E001B3EFD /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = 1; - LastSwiftUpdateCheck = 2620; - LastUpgradeCheck = 2620; - TargetAttributes = { - F20094C22EC3F79E001B3EFD = { - CreatedOnToolsVersion = 26.2; - }; - F20094CF2EC3F7A0001B3EFD = { - CreatedOnToolsVersion = 26.2; - TestTargetID = F20094C22EC3F79E001B3EFD; - }; - F20094D92EC3F7A0001B3EFD = { - CreatedOnToolsVersion = 26.2; - TestTargetID = F20094C22EC3F79E001B3EFD; - }; - }; - }; - buildConfigurationList = F20094BE2EC3F79E001B3EFD /* Build configuration list for PBXProject "ios_dynamic_content_resize" */; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = F20094BA2EC3F79E001B3EFD; - minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 77; - productRefGroup = F20094C42EC3F79E001B3EFD /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - F20094C22EC3F79E001B3EFD /* ios_dynamic_content_resize */, - F20094CF2EC3F7A0001B3EFD /* ios_dynamic_content_resizeTests */, - F20094D92EC3F7A0001B3EFD /* ios_dynamic_content_resizeUITests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - F20094C12EC3F79E001B3EFD /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F20094CE2EC3F7A0001B3EFD /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F20094D82EC3F7A0001B3EFD /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - F20094BF2EC3F79E001B3EFD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F20094CC2EC3F7A0001B3EFD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F20094D62EC3F7A0001B3EFD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - F20094D22EC3F7A0001B3EFD /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = F20094C22EC3F79E001B3EFD /* ios_dynamic_content_resize */; - targetProxy = F20094D12EC3F7A0001B3EFD /* PBXContainerItemProxy */; - }; - F20094DC2EC3F7A0001B3EFD /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = F20094C22EC3F79E001B3EFD /* ios_dynamic_content_resize */; - targetProxy = F20094DB2EC3F7A0001B3EFD /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - F20094E22EC3F7A0001B3EFD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = S8QB4VV633; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 26.2; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - F20094E32EC3F7A0001B3EFD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = S8QB4VV633; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 26.2; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - F20094E52EC3F7A0001B3EFD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = S8QB4VV633; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-dynamic-content-resize"; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - F20094E62EC3F7A0001B3EFD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = S8QB4VV633; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-dynamic-content-resize"; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - F20094E82EC3F7A0001B3EFD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = S8QB4VV633; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 26.2; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-dynamic-content-resizeTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRING_CATALOG_GENERATE_SYMBOLS = NO; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ios_dynamic_content_resize.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ios_dynamic_content_resize"; - }; - name = Debug; - }; - F20094E92EC3F7A0001B3EFD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = S8QB4VV633; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 26.2; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-dynamic-content-resizeTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRING_CATALOG_GENERATE_SYMBOLS = NO; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ios_dynamic_content_resize.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ios_dynamic_content_resize"; - }; - name = Release; - }; - F20094EB2EC3F7A0001B3EFD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = S8QB4VV633; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-dynamic-content-resizeUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRING_CATALOG_GENERATE_SYMBOLS = NO; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = ios_dynamic_content_resize; - }; - name = Debug; - }; - F20094EC2EC3F7A0001B3EFD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = S8QB4VV633; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "dev.flutter.plugins.ios-dynamic-content-resizeUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRING_CATALOG_GENERATE_SYMBOLS = NO; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = ios_dynamic_content_resize; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - F20094BE2EC3F79E001B3EFD /* Build configuration list for PBXProject "ios_dynamic_content_resize" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F20094E22EC3F7A0001B3EFD /* Debug */, - F20094E32EC3F7A0001B3EFD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F20094E42EC3F7A0001B3EFD /* Build configuration list for PBXNativeTarget "ios_dynamic_content_resize" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F20094E52EC3F7A0001B3EFD /* Debug */, - F20094E62EC3F7A0001B3EFD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F20094E72EC3F7A0001B3EFD /* Build configuration list for PBXNativeTarget "ios_dynamic_content_resizeTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F20094E82EC3F7A0001B3EFD /* Debug */, - F20094E92EC3F7A0001B3EFD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F20094EA2EC3F7A0001B3EFD /* Build configuration list for PBXNativeTarget "ios_dynamic_content_resizeUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F20094EB2EC3F7A0001B3EFD /* Debug */, - F20094EC2EC3F7A0001B3EFD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = F20094BB2EC3F79E001B3EFD /* Project object */; -} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AccentColor.colorset/Contents.json b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index eb8789700..000000000 --- a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "colors" : [ - { - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AppIcon.appiconset/Contents.json b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 230588010..000000000 --- a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "tinted" - } - ], - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/Contents.json b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/Contents.json deleted file mode 100644 index 73c00596a..000000000 --- a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ContentView.swift b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ContentView.swift deleted file mode 100644 index 30e278297..000000000 --- a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ContentView.swift +++ /dev/null @@ -1,24 +0,0 @@ -// -// ContentView.swift -// ios_dynamic_content_resize -// -// Created by Louise Hsu on 11/11/25. -// - -import SwiftUI - -struct ContentView: View { - var body: some View { - VStack { - Image(systemName: "globe") - .imageScale(.large) - .foregroundStyle(.tint) - Text("Hello, world!") - } - .padding() - } -} - -#Preview { - ContentView() -} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ios_dynamic_content_resizeApp.swift b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ios_dynamic_content_resizeApp.swift deleted file mode 100644 index 62e7f0488..000000000 --- a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resize/ios_dynamic_content_resizeApp.swift +++ /dev/null @@ -1,17 +0,0 @@ -// -// ios_dynamic_content_resizeApp.swift -// ios_dynamic_content_resize -// -// Created by Louise Hsu on 11/11/25. -// - -import SwiftUI - -@main -struct ios_dynamic_content_resizeApp: App { - var body: some Scene { - WindowGroup { - ContentView() - } - } -} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeTests/ios_dynamic_content_resizeTests.swift b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeTests/ios_dynamic_content_resizeTests.swift deleted file mode 100644 index cff1e1e38..000000000 --- a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeTests/ios_dynamic_content_resizeTests.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// ios_dynamic_content_resizeTests.swift -// ios_dynamic_content_resizeTests -// -// Created by Louise Hsu on 11/11/25. -// - -import XCTest -@testable import ios_dynamic_content_resize - -final class ios_dynamic_content_resizeTests: XCTestCase { - - override func setUpWithError() throws { - // Put setup code here. This method is called before the invocation of each test method in the class. - } - - override func tearDownWithError() throws { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testExample() throws { - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct results. - // Any test you write for XCTest can be annotated as throws and async. - // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. - // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. - } - - func testPerformanceExample() throws { - // This is an example of a performance test case. - self.measure { - // Put the code you want to measure the time of here. - } - } - -} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITests.swift b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITests.swift deleted file mode 100644 index 0aa562d17..000000000 --- a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITests.swift +++ /dev/null @@ -1,41 +0,0 @@ -// -// ios_dynamic_content_resizeUITests.swift -// ios_dynamic_content_resizeUITests -// -// Created by Louise Hsu on 11/11/25. -// - -import XCTest - -final class ios_dynamic_content_resizeUITests: XCTestCase { - - override func setUpWithError() throws { - // Put setup code here. This method is called before the invocation of each test method in the class. - - // In UI tests it is usually best to stop immediately when a failure occurs. - continueAfterFailure = false - - // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. - } - - override func tearDownWithError() throws { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - @MainActor - func testExample() throws { - // UI tests must launch the application that they test. - let app = XCUIApplication() - app.launch() - - // Use XCTAssert and related functions to verify your tests produce the correct results. - } - - @MainActor - func testLaunchPerformance() throws { - // This measures how long it takes to launch your application. - measure(metrics: [XCTApplicationLaunchMetric()]) { - XCUIApplication().launch() - } - } -} diff --git a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITestsLaunchTests.swift b/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITestsLaunchTests.swift deleted file mode 100644 index 5562bba07..000000000 --- a/add_to_app/ios_dynamic_content_resize/ios_dynamic_content_resizeUITests/ios_dynamic_content_resizeUITestsLaunchTests.swift +++ /dev/null @@ -1,33 +0,0 @@ -// -// ios_dynamic_content_resizeUITestsLaunchTests.swift -// ios_dynamic_content_resizeUITests -// -// Created by Louise Hsu on 11/11/25. -// - -import XCTest - -final class ios_dynamic_content_resizeUITestsLaunchTests: XCTestCase { - - override class var runsForEachTargetApplicationUIConfiguration: Bool { - true - } - - override func setUpWithError() throws { - continueAfterFailure = false - } - - @MainActor - func testLaunch() throws { - let app = XCUIApplication() - app.launch() - - // Insert steps here to perform after app launch but before taking a screenshot, - // such as logging into a test account or navigating somewhere in the app - - let attachment = XCTAttachment(screenshot: app.screenshot()) - attachment.name = "Launch Screen" - attachment.lifetime = .keepAlways - add(attachment) - } -} From 3c112d0efcff97d13df6d4b5cb2901619af67fe6 Mon Sep 17 00:00:00 2001 From: Sherzod <85330587+ishifr@users.noreply.github.com> Date: Wed, 17 Dec 2025 22:26:12 +0500 Subject: [PATCH 07/25] Fix TabController index update (#2753) Hi, I noticed this bug in the navigation_and_routing sample. This PR fixes the tab controller state update issue in BooksScreen. --- navigation_and_routing/lib/src/screens/books.dart | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/navigation_and_routing/lib/src/screens/books.dart b/navigation_and_routing/lib/src/screens/books.dart index 1557da5ba..cc2241b99 100644 --- a/navigation_and_routing/lib/src/screens/books.dart +++ b/navigation_and_routing/lib/src/screens/books.dart @@ -31,6 +31,14 @@ class _BooksScreenState extends State ..addListener(_handleTabIndexChanged); } + @override + void didUpdateWidget(covariant BooksScreen oldWidget) { + super.didUpdateWidget(oldWidget); + if (oldWidget.selectedIndex != widget.selectedIndex) { + _tabController.index = widget.selectedIndex; + } + } + @override void dispose() { _tabController.removeListener(_handleTabIndexChanged); @@ -39,7 +47,6 @@ class _BooksScreenState extends State @override Widget build(BuildContext context) { - _tabController.index = widget.selectedIndex; return Scaffold( appBar: AppBar( title: const Text('Books'), From 344740a22cc071b1615a60358d0993d33e2238e9 Mon Sep 17 00:00:00 2001 From: Matt Boetger Date: Wed, 14 Jan 2026 16:00:24 -0800 Subject: [PATCH 08/25] Fix add_to_app sample (#2768) The android_view add_to_app sample is currently broken. It does not build: * AGP version is incompatible. * MIN_SDK is below Flutter min * Flutter plugin module was renamed awhile ago: https://github.com/flutter/samples/pull/2714 --- add_to_app/android_view/android_view/app/build.gradle | 4 ++-- add_to_app/android_view/android_view/build.gradle | 4 ++-- add_to_app/android_view/android_view/settings.gradle | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/add_to_app/android_view/android_view/app/build.gradle b/add_to_app/android_view/android_view/app/build.gradle index 2b4808817..0797ed565 100644 --- a/add_to_app/android_view/android_view/app/build.gradle +++ b/add_to_app/android_view/android_view/app/build.gradle @@ -12,7 +12,7 @@ android { defaultConfig { applicationId "dev.flutter.example.androidView" - minSdkVersion 21 + minSdkVersion 24 targetSdk 36 versionCode 1 versionName "1.0" @@ -55,4 +55,4 @@ dependencies { testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.2.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' -} \ No newline at end of file +} diff --git a/add_to_app/android_view/android_view/build.gradle b/add_to_app/android_view/android_view/build.gradle index 9f663b433..f60b7c423 100644 --- a/add_to_app/android_view/android_view/build.gradle +++ b/add_to_app/android_view/android_view/build.gradle @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.9.0' + classpath 'com.android.tools.build:gradle:8.9.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong @@ -23,4 +23,4 @@ allprojects { tasks.register('clean', Delete) { delete rootProject.buildDir -} \ No newline at end of file +} diff --git a/add_to_app/android_view/android_view/settings.gradle b/add_to_app/android_view/android_view/settings.gradle index f32227045..4f858a947 100644 --- a/add_to_app/android_view/android_view/settings.gradle +++ b/add_to_app/android_view/android_view/settings.gradle @@ -3,5 +3,5 @@ include ':app' setBinding(new Binding([gradle: this])) evaluate(new File( settingsDir.parentFile, - 'flutter_module_using_plugin/.android/include_flutter.groovy' + 'flutter_module_using_plugin_android_view/.android/include_flutter.groovy' )) From 65bd064a58660154f063b6c805dec94cff0118bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Jan 2026 07:46:36 +0000 Subject: [PATCH 09/25] Bump @angular/router from 20.3.16 to 21.1.0 in /web_embedding/ng-flutter (#2774) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) from 20.3.16 to 21.1.0.
          Release notes

          Sourced from @​angular/router's releases.

          VSCode Extension: 21.1.0

          21.1.0 (2026-01-12)

          • fix(vscode-extension): convert enum member kind in completions correctly (50674f8c28)

          21.1.0

          common

          Commit Description
          feat - d8790972be Add custom transformations for Cloudflare and Cloudinary image loaders
          feat - a6b8cb68af support custom transformations in ImageKit and Imgix loaders

          compiler

          Commit Description
          feat - 640693da8e Add support for multiple swich cases matching
          fix - 0ad3adc7c6 Support empty cases

          core

          Commit Description
          feat - 99ad18a4ee Add stability debugging utility
          feat - a0dfa5fa86 support rest arguments in function calls
          feat - 6e18fa8bc9 support spread elements in array literals
          feat - e407280ab5 support spread expressions in object literals
          fix - 06be8034bb Microtask scheduling should be used after any application synchronization
          fix - b4f584cf42 return StaticProvider for providePlatformInitializer

          forms

          Commit Description
          feat - 1ea5c97703 allow focusing bound control from field state

          platform-browser

          Commit Description
          feat - ec9dc94cee add context to createApplication
          feat - ab67988d2e resolve JIT resources in createApplication

          router

          Commit Description
          feat - 5edceffd04 add controls for route cleanup
          feat - a03c82564d Add scroll behavior controls on router navigation
          feat - e44839b016 Add standalone function to create a comptued for isActive
          feat - c25d749d85 Execute RunGuardsAndResolvers function in injection context
          feat - 1c00ab42f8 extend paramters of RedirectFunction to include paramMap and queryParamMap
          feat - 7003e8d241 Publish Router's integration with platform Navigation API as experimental
          feat - c84d372778 Support wildcard params with segments trailing (#64737)

          upgrade

          Commit Description
          refactor - 75fe8f8af9 deprecate VERSION export

          Deprecations

          upgrade

          ... (truncated)

          Changelog

          Sourced from @​angular/router's changelog.

          21.1.0 (2026-01-14)

          Deprecations

          upgrade

          • VERSION from @angular/upgrade is deprecated. Please use the entry from @angular/upgrade/static instead.

          common

          Commit Type Description
          d8790972be feat Add custom transformations for Cloudflare and Cloudinary image loaders
          a6b8cb68af feat support custom transformations in ImageKit and Imgix loaders

          compiler

          Commit Type Description
          640693da8e feat Add support for multiple swich cases matching
          0ad3adc7c6 fix Support empty cases

          core

          Commit Type Description
          99ad18a4ee feat Add stability debugging utility
          a0dfa5fa86 feat support rest arguments in function calls
          6e18fa8bc9 feat support spread elements in array literals
          e407280ab5 feat support spread expressions in object literals
          06be8034bb fix Microtask scheduling should be used after any application synchronization
          b4f584cf42 fix return StaticProvider for providePlatformInitializer

          forms

          Commit Type Description
          1ea5c97703 feat allow focusing bound control from field state

          platform-browser

          Commit Type Description
          ec9dc94cee feat add context to createApplication
          ab67988d2e feat resolve JIT resources in createApplication

          router

          Commit Type Description
          5edceffd04 feat add controls for route cleanup
          a03c82564d feat Add scroll behavior controls on router navigation
          e44839b016 feat Add standalone function to create a comptued for isActive
          c25d749d85 feat Execute RunGuardsAndResolvers function in injection context
          1c00ab42f8 feat extend paramters of RedirectFunction to include paramMap and queryParamMap
          7003e8d241 feat Publish Router's integration with platform Navigation API as experimental
          c84d372778 feat Support wildcard params with segments trailing (#64737)

          upgrade

          Commit Type Description
          75fe8f8af9 refactor deprecate VERSION export

          ... (truncated)

          Commits
          • b1c68e6 docs: update examples to use isActive instead of deprecated `Router.isActiv...
          • a2b9429 Revert "feat(router): add trailingSlash config option"
          • 12fccc5 feat(router): add trailingSlash config option
          • 7003e8d feat(router): Publish Router's integration with platform Navigation API as ex...
          • 9e043de fix(router): handle errors from view transition updateCallbackDone promise
          • bcef77d fix(router): Fix RouterLink href not updating with queryParamsHandling
          • 1c00ab4 feat(router): extend paramters of RedirectFunction to include paramMap and qu...
          • 97fd1de Revert "refactor(router): Add support for precommitHandler in Navigation inte...
          • 397dbc4 Revert "refactor(router): Retain original navigateEvent across redirects"
          • e44839b feat(router): Add standalone function to create a comptued for isActive
          • Additional commits viewable in compare view

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/router&package-manager=npm_and_yarn&previous-version=20.3.16&new-version=21.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          --- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 6897739f3..af1fd7cd7 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -20,7 +20,7 @@ "@angular/material": "^20.1.0", "@angular/platform-browser": "^20.0.3", "@angular/platform-browser-dynamic": "^20.1.0", - "@angular/router": "^20.0.3", + "@angular/router": "^21.1.0", "rxjs": "~7.8.1", "tslib": "^2.6.2", "zone.js": "~0.15.0" From 688be575af536b7c39c25d617dea73ff4f23ca3b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Jan 2026 07:48:48 +0000 Subject: [PATCH 10/25] Bump jasmine-core from 5.5.0 to 6.0.0 in /web_embedding/ng-flutter (#2771) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [jasmine-core](https://github.com/jasmine/jasmine) from 5.5.0 to 6.0.0.
          Release notes

          Sourced from jasmine-core's releases.

          v6.0.0

          Please see the release notes.

          v6.0.0-beta.1

          Please see the release notes.

          v6.0.0-beta.0

          Please see the release notes.

          v6.0.0-alpha.2

          Please see the release notes.

          v6.0.0-alpha.1

          Please see the release notes.

          v6.0.0-alpha.0

          Please see the release notes.

          v5.13.0

          Please see the release notes.

          v5.12.1

          Please see the release notes.

          v5.12.0

          Please see the release notes.

          v5.11.0

          Please see the release notes.

          v5.10.0

          Please see the release notes.

          v5.9.0

          Please see the release notes.

          v5.8.0

          Please see the release notes.

          v5.7.1

          Please see the release notes.

          v5.7.0

          Please see the release notes.

          v5.6.0

          Please see the release notes.

          Commits

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jasmine-core&package-manager=npm_and_yarn&previous-version=5.5.0&new-version=6.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          --- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index af1fd7cd7..75dfc9f3a 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -30,7 +30,7 @@ "@angular/cli": "~20.1.0", "@angular/compiler-cli": "^20.0.3", "@types/jasmine": "~5.1.0", - "jasmine-core": "~5.5.0", + "jasmine-core": "~6.0.0", "karma": "~6.4.2", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.0", From cb77d6859cd353445f08c39dacfb2e0bee545db9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Jan 2026 07:56:03 +0000 Subject: [PATCH 11/25] Bump @angular/forms from 20.3.16 to 21.1.0 in /web_embedding/ng-flutter (#2770) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) from 20.3.16 to 21.1.0.
          Release notes

          Sourced from @​angular/forms's releases.

          VSCode Extension: 21.1.0

          21.1.0 (2026-01-12)

          • fix(vscode-extension): convert enum member kind in completions correctly (50674f8c28)

          21.1.0

          common

          Commit Description
          feat - d8790972be Add custom transformations for Cloudflare and Cloudinary image loaders
          feat - a6b8cb68af support custom transformations in ImageKit and Imgix loaders

          compiler

          Commit Description
          feat - 640693da8e Add support for multiple swich cases matching
          fix - 0ad3adc7c6 Support empty cases

          core

          Commit Description
          feat - 99ad18a4ee Add stability debugging utility
          feat - a0dfa5fa86 support rest arguments in function calls
          feat - 6e18fa8bc9 support spread elements in array literals
          feat - e407280ab5 support spread expressions in object literals
          fix - 06be8034bb Microtask scheduling should be used after any application synchronization
          fix - b4f584cf42 return StaticProvider for providePlatformInitializer

          forms

          Commit Description
          feat - 1ea5c97703 allow focusing bound control from field state

          platform-browser

          Commit Description
          feat - ec9dc94cee add context to createApplication
          feat - ab67988d2e resolve JIT resources in createApplication

          router

          Commit Description
          feat - 5edceffd04 add controls for route cleanup
          feat - a03c82564d Add scroll behavior controls on router navigation
          feat - e44839b016 Add standalone function to create a comptued for isActive
          feat - c25d749d85 Execute RunGuardsAndResolvers function in injection context
          feat - 1c00ab42f8 extend paramters of RedirectFunction to include paramMap and queryParamMap
          feat - 7003e8d241 Publish Router's integration with platform Navigation API as experimental
          feat - c84d372778 Support wildcard params with segments trailing (#64737)

          upgrade

          Commit Description
          refactor - 75fe8f8af9 deprecate VERSION export

          Deprecations

          upgrade

          ... (truncated)

          Changelog

          Sourced from @​angular/forms's changelog.

          21.1.0 (2026-01-14)

          Deprecations

          upgrade

          • VERSION from @angular/upgrade is deprecated. Please use the entry from @angular/upgrade/static instead.

          common

          Commit Type Description
          d8790972be feat Add custom transformations for Cloudflare and Cloudinary image loaders
          a6b8cb68af feat support custom transformations in ImageKit and Imgix loaders

          compiler

          Commit Type Description
          640693da8e feat Add support for multiple swich cases matching
          0ad3adc7c6 fix Support empty cases

          core

          Commit Type Description
          99ad18a4ee feat Add stability debugging utility
          a0dfa5fa86 feat support rest arguments in function calls
          6e18fa8bc9 feat support spread elements in array literals
          e407280ab5 feat support spread expressions in object literals
          06be8034bb fix Microtask scheduling should be used after any application synchronization
          b4f584cf42 fix return StaticProvider for providePlatformInitializer

          forms

          Commit Type Description
          1ea5c97703 feat allow focusing bound control from field state

          platform-browser

          Commit Type Description
          ec9dc94cee feat add context to createApplication
          ab67988d2e feat resolve JIT resources in createApplication

          router

          Commit Type Description
          5edceffd04 feat add controls for route cleanup
          a03c82564d feat Add scroll behavior controls on router navigation
          e44839b016 feat Add standalone function to create a comptued for isActive
          c25d749d85 feat Execute RunGuardsAndResolvers function in injection context
          1c00ab42f8 feat extend paramters of RedirectFunction to include paramMap and queryParamMap
          7003e8d241 feat Publish Router's integration with platform Navigation API as experimental
          c84d372778 feat Support wildcard params with segments trailing (#64737)

          upgrade

          Commit Type Description
          75fe8f8af9 refactor deprecate VERSION export

          ... (truncated)

          Commits
          • 1ea5c97 feat(forms): allow focusing bound control from field state
          • 5326333 fix(forms): Ensure the control instruction comes after the other bindings
          • 8474277 test(forms): improve test coverage for multiple pattern validators
          • 5ad2e1b docs: replace old https://angular.io/license with https://angular.dev/license
          • 03e2b36 refactor(core): update error message links to versioned docs (#66374)
          • 29f074a fix(forms): Rename signal form [field] to [formField]
          • 0c23d02 docs(forms): Clarify returning errors from submit functions
          • 46dbd18 refactor(forms): remove customError()
          • b2f4175 docs: update angular.io links to angular.dev in comments, TSDoc, and warnings
          • e7d99f0 fix(forms): clean up abort listener after timeout
          • Additional commits viewable in compare view

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/forms&package-manager=npm_and_yarn&previous-version=20.3.16&new-version=21.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          --- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 75dfc9f3a..6a395297d 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -16,7 +16,7 @@ "@angular/common": "^20.1.4", "@angular/compiler": "^20.0.6", "@angular/core": "^20.0.3", - "@angular/forms": "^20.1.2", + "@angular/forms": "^21.1.0", "@angular/material": "^20.1.0", "@angular/platform-browser": "^20.0.3", "@angular/platform-browser-dynamic": "^20.1.0", From d13355ddd1ac3ddfa3d94cbce63113ad7ad1fe3c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Jan 2026 08:32:24 +0000 Subject: [PATCH 12/25] Bump @angular/compiler from 20.3.16 to 21.1.0 in /web_embedding/ng-flutter (#2772) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) from 20.3.16 to 21.1.0.
          Release notes

          Sourced from @​angular/compiler's releases.

          VSCode Extension: 21.1.0

          21.1.0 (2026-01-12)

          • fix(vscode-extension): convert enum member kind in completions correctly (50674f8c28)

          21.1.0

          common

          Commit Description
          feat - d8790972be Add custom transformations for Cloudflare and Cloudinary image loaders
          feat - a6b8cb68af support custom transformations in ImageKit and Imgix loaders

          compiler

          Commit Description
          feat - 640693da8e Add support for multiple swich cases matching
          fix - 0ad3adc7c6 Support empty cases

          core

          Commit Description
          feat - 99ad18a4ee Add stability debugging utility
          feat - a0dfa5fa86 support rest arguments in function calls
          feat - 6e18fa8bc9 support spread elements in array literals
          feat - e407280ab5 support spread expressions in object literals
          fix - 06be8034bb Microtask scheduling should be used after any application synchronization
          fix - b4f584cf42 return StaticProvider for providePlatformInitializer

          forms

          Commit Description
          feat - 1ea5c97703 allow focusing bound control from field state

          platform-browser

          Commit Description
          feat - ec9dc94cee add context to createApplication
          feat - ab67988d2e resolve JIT resources in createApplication

          router

          Commit Description
          feat - 5edceffd04 add controls for route cleanup
          feat - a03c82564d Add scroll behavior controls on router navigation
          feat - e44839b016 Add standalone function to create a comptued for isActive
          feat - c25d749d85 Execute RunGuardsAndResolvers function in injection context
          feat - 1c00ab42f8 extend paramters of RedirectFunction to include paramMap and queryParamMap
          feat - 7003e8d241 Publish Router's integration with platform Navigation API as experimental
          feat - c84d372778 Support wildcard params with segments trailing (#64737)

          upgrade

          Commit Description
          refactor - 75fe8f8af9 deprecate VERSION export

          Deprecations

          upgrade

          ... (truncated)

          Changelog

          Sourced from @​angular/compiler's changelog.

          21.1.0 (2026-01-14)

          Deprecations

          upgrade

          • VERSION from @angular/upgrade is deprecated. Please use the entry from @angular/upgrade/static instead.

          common

          Commit Type Description
          d8790972be feat Add custom transformations for Cloudflare and Cloudinary image loaders
          a6b8cb68af feat support custom transformations in ImageKit and Imgix loaders

          compiler

          Commit Type Description
          640693da8e feat Add support for multiple swich cases matching
          0ad3adc7c6 fix Support empty cases

          core

          Commit Type Description
          99ad18a4ee feat Add stability debugging utility
          a0dfa5fa86 feat support rest arguments in function calls
          6e18fa8bc9 feat support spread elements in array literals
          e407280ab5 feat support spread expressions in object literals
          06be8034bb fix Microtask scheduling should be used after any application synchronization
          b4f584cf42 fix return StaticProvider for providePlatformInitializer

          forms

          Commit Type Description
          1ea5c97703 feat allow focusing bound control from field state

          platform-browser

          Commit Type Description
          ec9dc94cee feat add context to createApplication
          ab67988d2e feat resolve JIT resources in createApplication

          router

          Commit Type Description
          5edceffd04 feat add controls for route cleanup
          a03c82564d feat Add scroll behavior controls on router navigation
          e44839b016 feat Add standalone function to create a comptued for isActive
          c25d749d85 feat Execute RunGuardsAndResolvers function in injection context
          1c00ab42f8 feat extend paramters of RedirectFunction to include paramMap and queryParamMap
          7003e8d241 feat Publish Router's integration with platform Navigation API as experimental
          c84d372778 feat Support wildcard params with segments trailing (#64737)

          upgrade

          Commit Type Description
          75fe8f8af9 refactor deprecate VERSION export

          ... (truncated)

          Commits
          • 5326333 fix(forms): Ensure the control instruction comes after the other bindings
          • 29f074a fix(forms): Rename signal form [field] to [formField]
          • 0875dea refactor(compiler): switch Binary.isAssignmentOperation to type guard function
          • 83bac5a refactor(compiler): tighten Unary.operator type
          • e01dcae refactor: _ParseAST.isAssignmentOperator to type guard
          • 4cdf4d5 refactor(compiler): tighten Binary.operation type
          • 0ad3adc fix(compiler): Support empty cases
          • 4dc5ae5 refactor(core): remove unused instruction parameter
          • 3a56c13 fix(compiler): produce accurate span for typeof and void expressions
          • a0dfa5f feat(core): support rest arguments in function calls
          • Additional commits viewable in compare view

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/compiler&package-manager=npm_and_yarn&previous-version=20.3.16&new-version=21.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          --- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 6a395297d..be6a402c6 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -14,7 +14,7 @@ "@angular/animations": "^20.0.3", "@angular/cdk": "^20.1.0", "@angular/common": "^20.1.4", - "@angular/compiler": "^20.0.6", + "@angular/compiler": "^21.1.0", "@angular/core": "^20.0.3", "@angular/forms": "^21.1.0", "@angular/material": "^20.1.0", From 6a8df3467c20a2d534a282fda3e3dc34b022714f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 07:31:22 +0000 Subject: [PATCH 13/25] Bump @types/jasmine from 5.1.15 to 6.0.0 in /web_embedding/ng-flutter (#2781) Bumps [@types/jasmine](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jasmine) from 5.1.15 to 6.0.0.
          Commits

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/jasmine&package-manager=npm_and_yarn&previous-version=5.1.15&new-version=6.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          --- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index be6a402c6..bd53d3495 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -29,7 +29,7 @@ "@angular-devkit/build-angular": "^20.0.2", "@angular/cli": "~20.1.0", "@angular/compiler-cli": "^20.0.3", - "@types/jasmine": "~5.1.0", + "@types/jasmine": "~6.0.0", "jasmine-core": "~6.0.0", "karma": "~6.4.2", "karma-chrome-launcher": "~3.2.0", From 7f1aae3a6ae92e529c7c191c0d1a88708619ec8e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 07:31:25 +0000 Subject: [PATCH 14/25] Bump @angular/cli from 20.1.6 to 21.1.1 in /web_embedding/ng-flutter (#2782) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/cli](https://github.com/angular/angular-cli) from 20.1.6 to 21.1.1.
          Release notes

          Sourced from @​angular/cli's releases.

          21.1.1

          @​schematics/angular

          Commit Description
          fix - 9da6d8fa7 correct vscode MCP configuration for new projects
          fix - 361758c75 remove special characters from jasmine-vitest report filename

          @​angular/cli

          Commit Description
          fix - 151b69587 Remove nonexistent link from MCP response

          @​angular/build

          Commit Description
          fix - 1b7e3307a allow application assets in workspace root
          fix - d1e596dc5 prevent incorrect catch binding removal in downleveled for-await
          fix - 98ef0981a update undici to v7.18.2

          21.1.0

          @​schematics/angular

          Commit Description
          feat - 36cf3afb4 add browserMode option to jasmine-vitest schematic
          feat - e71a72ffd generate detailed migration report for refactor-jasmine-vitest
          fix - 18cf6c51b add MCP configuration file to new workspaces

          @​angular/cli

          Commit Description
          feat - 772e6efe7 add 'test' and 'e2e' MCP tools
          feat - 8efb86318 Add "all" as an experimental tool group
          feat - c3c9ac506 Add MCP tools for building and running devservers
          feat - d635a6c63 add signal forms lessons
          fix - d8b76e93d correctly handle yarn classic tag manifest fetching
          fix - 7ab5c0b0a correctly spawn package managers on Windows in new abstraction
          fix - 348096623 enhance list_projects MCP tool file system traversal and symlink handling
          fix - 316fca862 handle array output from npm view in manifest parser
          fix - 032257a6d improve signal forms lesson examples in AI tutor
          fix - 18d74dde8 rename mcp devserver tools to comply with naming spec
          fix - 1ad773671 update dependency @​modelcontextprotocol/sdk to v1.25.2
          fix - 45d4f5668 update yarn berry package manager configuration
          fix - 122ed27c9 use project-local temporary directory in ng add
          perf - a15db28b2 cache resolved specific version in package manager abstraction
          perf - 240588b7e optimize ng add version discovery

          @​angular/build

          Commit Description
          feat - 1eda0a99f directly support ng-packagr in unit-test builder
          feat - 87175f9dc disable TestBed teardown during debugging in Vitest
          fix - 1e39c77a4 inject source-map-support for Vitest browser tests
          fix - 3fd7dcd76 normalize roots to POSIX in test discovery for Windows compatibility
          fix - 164e7dbbc resolve test files correctly on Windows when using non-C drives

          ... (truncated)

          Changelog

          Sourced from @​angular/cli's changelog.

          21.1.1 (2026-01-21)

          @​angular/cli

          Commit Type Description
          151b69587 fix Remove nonexistent link from MCP response

          @​schematics/angular

          Commit Type Description
          9da6d8fa7 fix correct vscode MCP configuration for new projects
          361758c75 fix remove special characters from jasmine-vitest report filename

          @​angular/build

          Commit Type Description
          1b7e3307a fix allow application assets in workspace root
          d1e596dc5 fix prevent incorrect catch binding removal in downleveled for-await
          98ef0981a fix update undici to v7.18.2

          20.3.15 (2026-01-21)

          @​angular/cli

          Commit Type Description
          795d65413 fix update pacote to v21.0.4

          @​angular-devkit/build-angular

          Commit Type Description
          ffc72cbc5 fix update webpack to version 5.104.1

          21.1.0 (2026-01-14)

          @​angular/cli

          | Commit | Type | Description |

          ... (truncated)

          Commits
          • d49ec17 release: cut the v21.1.1 release
          • 9da6d8f fix(@​schematics/angular): correct vscode MCP configuration for new projects
          • 4742aae build: update pnpm to v10.28.1
          • 361758c fix(@​schematics/angular): remove special characters from jasmine-vitest repor...
          • 151b695 fix(@​angular/cli): Remove nonexistent link from MCP response
          • 98ef098 fix(@​angular/build): update undici to v7.18.2
          • 2e3fca7 build: lock file maintenance
          • 1b7e330 fix(@​angular/build): allow application assets in workspace root
          • d1e596d fix(@​angular/build): prevent incorrect catch binding removal in downleveled f...
          • ad75b55 build: update github/codeql-action action to v4.31.10
          • Additional commits viewable in compare view

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/cli&package-manager=npm_and_yarn&previous-version=20.1.6&new-version=21.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          --- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index bd53d3495..3e5c8fb04 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -27,7 +27,7 @@ }, "devDependencies": { "@angular-devkit/build-angular": "^20.0.2", - "@angular/cli": "~20.1.0", + "@angular/cli": "~21.1.1", "@angular/compiler-cli": "^20.0.3", "@types/jasmine": "~6.0.0", "jasmine-core": "~6.0.0", From 54836a1a0908aea7c2a2856795549bb3e7f0e7d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 07:33:01 +0000 Subject: [PATCH 15/25] Bump @angular/common from 20.3.16 to 21.1.1 in /web_embedding/ng-flutter (#2783) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) from 20.3.16 to 21.1.1.
          Release notes

          Sourced from @​angular/common's releases.

          21.1.1

          compiler-cli

          Commit Description
          fix - 0e1f1ed573 drop .tsx extension for generated relative imports

          core

          Commit Description
          fix - 05adfcf8f2 handle Set in class bindings

          forms

          Commit Description
          feat - d89a80a970 Ability to manually register a form field binding in signal forms
          fix - cb75f9ce85 fix control value syncing on touch

          VSCode Extension: 21.1.1

          • fix(vscode-extension): add syntax highlighting for arrow functions (a649fc8f57)
          • fix(vscode-extension): add syntax highlighting for spread/rest expressions (8f16846dd9)

          VSCode Extension: 21.1.0

          21.1.0 (2026-01-12)

          • fix(vscode-extension): convert enum member kind in completions correctly (50674f8c28)

          21.1.0

          common

          Commit Description
          feat - d8790972be Add custom transformations for Cloudflare and Cloudinary image loaders
          feat - a6b8cb68af support custom transformations in ImageKit and Imgix loaders

          compiler

          Commit Description
          feat - 640693da8e Add support for multiple swich cases matching
          fix - 0ad3adc7c6 Support empty cases

          core

          Commit Description
          feat - 99ad18a4ee Add stability debugging utility
          feat - a0dfa5fa86 support rest arguments in function calls
          feat - 6e18fa8bc9 support spread elements in array literals
          feat - e407280ab5 support spread expressions in object literals
          fix - 06be8034bb Microtask scheduling should be used after any application synchronization
          fix - b4f584cf42 return StaticProvider for providePlatformInitializer

          forms

          Commit Description
          feat - 1ea5c97703 allow focusing bound control from field state

          platform-browser

          | Commit | Description |

          ... (truncated)

          Changelog

          Sourced from @​angular/common's changelog.

          21.1.1 (2026-01-21)

          compiler-cli

          Commit Type Description
          0e1f1ed573 fix drop .tsx extension for generated relative imports

          core

          Commit Type Description
          05adfcf8f2 fix handle Set in class bindings

          forms

          Commit Type Description
          d89a80a970 feat Ability to manually register a form field binding in signal forms
          cb75f9ce85 fix fix control value syncing on touch

          21.1.0 (2026-01-14)

          Deprecations

          upgrade

          • VERSION from @angular/upgrade is deprecated. Please use the entry from @angular/upgrade/static instead.

          common

          Commit Type Description
          d8790972be feat Add custom transformations for Cloudflare and Cloudinary image loaders
          a6b8cb68af feat support custom transformations in ImageKit and Imgix loaders

          compiler

          Commit Type Description
          640693da8e feat Add support for multiple swich cases matching
          0ad3adc7c6 fix Support empty cases

          core

          Commit Type Description
          99ad18a4ee feat Add stability debugging utility
          a0dfa5fa86 feat support rest arguments in function calls
          6e18fa8bc9 feat support spread elements in array literals
          e407280ab5 feat support spread expressions in object literals
          06be8034bb fix Microtask scheduling should be used after any application synchronization
          b4f584cf42 fix return StaticProvider for providePlatformInitializer

          forms

          Commit Type Description
          1ea5c97703 feat allow focusing bound control from field state

          platform-browser

          Commit Type Description
          ec9dc94cee feat add context to createApplication
          ab67988d2e feat resolve JIT resources in createApplication

          ... (truncated)

          Commits
          • 3954dc2 refactor(http): remove redundant providedIn: 'root' in XSRF_HEADER_NAME
          • 03e2b36 refactor(core): update error message links to versioned docs (#66374)
          • 74af7d8 refactor(core): Use the provided Document value rather than global in FakeNav...
          • a2b9429 Revert "feat(router): add trailingSlash config option"
          • 12fccc5 feat(router): add trailingSlash config option
          • 3dfdb71 docs: add docs for transform property in built-in loaders
          • dd58c4b refactor(common): Add token to indicate whether precommit handler is supported
          • a6b8cb6 feat(common): support custom transformations in ImageKit and Imgix loaders
          • d879097 feat(common): Add custom transformations for Cloudflare and Cloudinary image ...
          • 6270bba ci: reformat files
          • Additional commits viewable in compare view

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/common&package-manager=npm_and_yarn&previous-version=20.3.16&new-version=21.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          --- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 3e5c8fb04..c1b5503d8 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -13,7 +13,7 @@ "dependencies": { "@angular/animations": "^20.0.3", "@angular/cdk": "^20.1.0", - "@angular/common": "^20.1.4", + "@angular/common": "^21.1.1", "@angular/compiler": "^21.1.0", "@angular/core": "^20.0.3", "@angular/forms": "^21.1.0", From 7e90b606a59ab5764932e007c8ef4c4d2948f942 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 07:34:47 +0000 Subject: [PATCH 16/25] Bump @angular/material from 20.2.14 to 21.1.1 in /web_embedding/ng-flutter (#2784) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/material](https://github.com/angular/components) from 20.2.14 to 21.1.1.
          Release notes

          Sourced from @​angular/material's releases.

          21.1.1

          aria

          Commit Description
          fix - d24f099179 grid: unit tests for grid pattern (#32633)

          multiple

          Commit Description
          fix - 6b5466afb2 incorrect paths in declaration files for aria
          fix - 028f89b4d8 resolve sass if function deprecation warnings (#32674)

          21.1.0

          material-experimental

          Commit Description
          fix - 29e2c4633 column-resize: add null checks for overlay (#32259)
          fix - c40f42821 column-resize: fix m2 colors (#32388)

          material

          Commit Description
          feat - ef1355914 schematics: add preconnect links for Google Fonts in index.html (#32238)
          feat - 6b9decb77 stepper: add a prefix section to the horizontal stepper header (#32184)
          fix - 5db8dca18 datepicker: error if some methods are called too early. (#32630)
          fix - 7b2627de2 menu: Do not open the menu when trigger is aria-disabled (properly handle disabledInteractive) (#32601)
          fix - eba6ee844 radio: allow aria attributes to be reset (#32613)
          fix - fb1b66be9 slider: add missing closing parenthesis in tick mark transform (#32580)

          cdk

          Commit Description
          feat - a20aeabbe a11y: allow safe HTML to be passed to live announcer (#32386)
          feat - 75b373bbc a11y: allow safe HTML to be passed to live announcer (#32412)
          feat - 439d1f92a table: add virtual scrolling support
          fix - 67f213a35 a11y: add @angular/platform-browser to peer dependencies (#32471)
          fix - efa0d4f6f scrolling: handle null document.body in ViewportRuler (#32477)
          fix - c62c64f21 text-field: avoid page jump on auto-resize (#32605)

          aria

          Commit Description
          fix - b45cda3f9 ui-patterns: enable overwriting preventDefault to allow triggering hyperlinks using enter key (#32123)

          21.1.0-rc.0

          material-experimental

          Commit Description
          fix - c40f42821 column-resize: fix m2 colors (#32388)

          material

          Commit Description
          fix - 5db8dca18 datepicker: error if some methods are called too early. (#32630)
          fix - fb1b66be9 slider: add missing closing parenthesis in tick mark transform (#32580)

          ... (truncated)

          Changelog

          Sourced from @​angular/material's changelog.

          21.1.1 "plastic-bear" (2026-01-21)

          aria

          Commit Type Description
          d24f099179 fix grid: unit tests for grid pattern (#32633)

          multiple

          Commit Type Description
          6b5466afb2 fix incorrect paths in declaration files for aria
          028f89b4d8 fix resolve sass if function deprecation warnings (#32674)

          21.2.0-next.0 "cadmium-chicken" (2026-01-14)

          21.1.0 "cadmium-crane" (2026-01-14)

          aria

          Commit Type Description
          b45cda3f9 fix ui-patterns: enable overwriting preventDefault to allow triggering hyperlinks using enter key (#32123)

          cdk

          Commit Type Description
          a20aeabbe feat a11y: allow safe HTML to be passed to live announcer (#32386)
          75b373bbc feat a11y: allow safe HTML to be passed to live announcer (#32412)
          439d1f92a feat table: add virtual scrolling support
          67f213a35 fix a11y: add @angular/platform-browser to peer dependencies (#32471)
          efa0d4f6f fix scrolling: handle null document.body in ViewportRuler (#32477)
          c62c64f21 fix text-field: avoid page jump on auto-resize (#32605)

          material

          Commit Type Description
          ef1355914 feat schematics: add preconnect links for Google Fonts in index.html (#32238)
          6b9decb77 feat stepper: add a prefix section to the horizontal stepper header (#32184)
          5db8dca18 fix datepicker: error if some methods are called too early. (#32630)
          7b2627de2 fix menu: Do not open the menu when trigger is aria-disabled (properly handle disabledInteractive) (#32601)
          eba6ee844 fix radio: allow aria attributes to be reset (#32613)
          fb1b66be9 fix slider: add missing closing parenthesis in tick mark transform (#32580)

          material-experimental

          Commit Type Description
          29e2c4633 fix column-resize: add null checks for overlay (#32259)
          c40f42821 fix column-resize: fix m2 colors (#32388)

          ... (truncated)

          Commits
          • 0da3836 release: cut the v21.1.1 release
          • d24f099 fix(aria/grid): unit tests for grid pattern (#32633)
          • cfb38c4 refactor(material/table): add filterPredicate non-object warning (#32578)
          • b619097 build: dedupe targets in api golden script (#32669)
          • 6b5466a fix(multiple): incorrect paths in declaration files for aria
          • 5c5b0ed build: enable more integration tests for aria
          • 028f89b fix(multiple): resolve sass if function deprecation warnings (#32674)
          • 3de1770 refactor(material/tooltip): drop NgClass dependency (#32666)
          • 6c61db8 build: update dependency node to v22.22.0 (#32660)
          • 80c007c build: update cross-repo angular dependencies (#32657)
          • Additional commits viewable in compare view

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/material&package-manager=npm_and_yarn&previous-version=20.2.14&new-version=21.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          --- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index c1b5503d8..2389512e2 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -17,7 +17,7 @@ "@angular/compiler": "^21.1.0", "@angular/core": "^20.0.3", "@angular/forms": "^21.1.0", - "@angular/material": "^20.1.0", + "@angular/material": "^21.1.1", "@angular/platform-browser": "^20.0.3", "@angular/platform-browser-dynamic": "^20.1.0", "@angular/router": "^21.1.0", From 7abc7b91f219e9cab71f537663057f2509a0d4a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 08:35:23 +0000 Subject: [PATCH 17/25] Bump @angular/animations from 20.3.16 to 21.1.1 in /web_embedding/ng-flutter (#2780) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) from 20.3.16 to 21.1.1.
          Release notes

          Sourced from @​angular/animations's releases.

          21.1.1

          compiler-cli

          Commit Description
          fix - 0e1f1ed573 drop .tsx extension for generated relative imports

          core

          Commit Description
          fix - 05adfcf8f2 handle Set in class bindings

          forms

          Commit Description
          feat - d89a80a970 Ability to manually register a form field binding in signal forms
          fix - cb75f9ce85 fix control value syncing on touch

          VSCode Extension: 21.1.1

          • fix(vscode-extension): add syntax highlighting for arrow functions (a649fc8f57)
          • fix(vscode-extension): add syntax highlighting for spread/rest expressions (8f16846dd9)

          VSCode Extension: 21.1.0

          21.1.0 (2026-01-12)

          • fix(vscode-extension): convert enum member kind in completions correctly (50674f8c28)

          21.1.0

          common

          Commit Description
          feat - d8790972be Add custom transformations for Cloudflare and Cloudinary image loaders
          feat - a6b8cb68af support custom transformations in ImageKit and Imgix loaders

          compiler

          Commit Description
          feat - 640693da8e Add support for multiple swich cases matching
          fix - 0ad3adc7c6 Support empty cases

          core

          Commit Description
          feat - 99ad18a4ee Add stability debugging utility
          feat - a0dfa5fa86 support rest arguments in function calls
          feat - 6e18fa8bc9 support spread elements in array literals
          feat - e407280ab5 support spread expressions in object literals
          fix - 06be8034bb Microtask scheduling should be used after any application synchronization
          fix - b4f584cf42 return StaticProvider for providePlatformInitializer

          forms

          Commit Description
          feat - 1ea5c97703 allow focusing bound control from field state

          platform-browser

          | Commit | Description |

          ... (truncated)

          Changelog

          Sourced from @​angular/animations's changelog.

          21.1.1 (2026-01-21)

          compiler-cli

          Commit Type Description
          0e1f1ed573 fix drop .tsx extension for generated relative imports

          core

          Commit Type Description
          05adfcf8f2 fix handle Set in class bindings

          forms

          Commit Type Description
          d89a80a970 feat Ability to manually register a form field binding in signal forms
          cb75f9ce85 fix fix control value syncing on touch

          21.1.0 (2026-01-14)

          Deprecations

          upgrade

          • VERSION from @angular/upgrade is deprecated. Please use the entry from @angular/upgrade/static instead.

          common

          Commit Type Description
          d8790972be feat Add custom transformations for Cloudflare and Cloudinary image loaders
          a6b8cb68af feat support custom transformations in ImageKit and Imgix loaders

          compiler

          Commit Type Description
          640693da8e feat Add support for multiple swich cases matching
          0ad3adc7c6 fix Support empty cases

          core

          Commit Type Description
          99ad18a4ee feat Add stability debugging utility
          a0dfa5fa86 feat support rest arguments in function calls
          6e18fa8bc9 feat support spread elements in array literals
          e407280ab5 feat support spread expressions in object literals
          06be8034bb fix Microtask scheduling should be used after any application synchronization
          b4f584cf42 fix return StaticProvider for providePlatformInitializer

          forms

          Commit Type Description
          1ea5c97703 feat allow focusing bound control from field state

          platform-browser

          Commit Type Description
          ec9dc94cee feat add context to createApplication
          ab67988d2e feat resolve JIT resources in createApplication

          ... (truncated)

          Commits
          • abb1794 refactor(core): mark VERSION exports as pure for better tree-shaking
          • 26fed34 build: format md files
          • b9e2ccd refactor(common): remove unused import (#64699)
          • 70332b0 fix(core): pass element removal property through in all locations (#64565)
          • 2b257b3 fix(animations): account for Element.animate exceptions (#64506)
          • dde5bad fix(core): prevent animations renderer from impacting animate.leave (#63921)
          • c357650 refactor(core): Update tests for zoneless by default (#63668)
          • 021ead5 refactor(animations): remove dependency on @angular/common (#63248)
          • 2fcafb6 build: rename defaults2.bzl to defaults.bzl (#63383)
          • See full diff in compare view

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/animations&package-manager=npm_and_yarn&previous-version=20.3.16&new-version=21.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          --- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 2389512e2..94f236eac 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -11,7 +11,7 @@ }, "private": true, "dependencies": { - "@angular/animations": "^20.0.3", + "@angular/animations": "^21.1.1", "@angular/cdk": "^20.1.0", "@angular/common": "^21.1.1", "@angular/compiler": "^21.1.0", From 45e22460bfce0b47a5347c5ebde9daa8b1809d5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Jan 2026 13:27:18 +0800 Subject: [PATCH 18/25] Bump actions/setup-java from 5.1.0 to 5.2.0 (#2776) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/setup-java](https://github.com/actions/setup-java) from 5.1.0 to 5.2.0.
          Release notes

          Sourced from actions/setup-java's releases.

          v5.2.0

          What's Changed

          Enhancement

          Documentation Changes

          Dependency Updates

          New Contributors

          Full Changelog: https://github.com/actions/setup-java/compare/v5...v5.2.0

          Commits

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-java&package-manager=github_actions&previous-version=5.1.0&new-version=5.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/beta.yml | 6 +++--- .github/workflows/build-android.yml | 2 +- .github/workflows/build-ios.yml | 2 +- .github/workflows/main.yml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index bb03070fb..5ba0caecf 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -27,7 +27,7 @@ jobs: os: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e + - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 with: distribution: 'zulu' java-version: '17' @@ -43,7 +43,7 @@ jobs: if: github.repository == 'flutter/samples' steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e + - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 with: distribution: 'zulu' java-version: '17' @@ -59,7 +59,7 @@ jobs: # if: github.repository == 'flutter/samples' # steps: # - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - # - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e + # - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # with: # distribution: 'zulu' # java-version: '17' diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index a9018d7e9..0d98e448a 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -20,7 +20,7 @@ jobs: if: github.repository == 'flutter/samples' steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e + - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 with: distribution: 'zulu' java-version: '17' diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index c34b9eda9..5d41e6236 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -23,7 +23,7 @@ jobs: fail-fast: false steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e + - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 with: distribution: 'zulu' java-version: '17' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 661df563d..98a7e21f1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -28,7 +28,7 @@ jobs: os: [ubuntu-latest, macos-latest] steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e + - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 with: distribution: 'zulu' java-version: '17' From 69092486bb09b4015aa20cc05fe571985279b988 Mon Sep 17 00:00:00 2001 From: Sigurd Meldgaard Date: Tue, 27 Jan 2026 06:27:50 +0100 Subject: [PATCH 19/25] Replace `pub run` usages with `dart run` (#2777) Following up on https://github.com/dart-lang/pub/issues/4737, this PR replaces deprecated `pub run` commands with `dart run`. --- add_to_app/books/README.md | 2 +- add_to_app/books/flutter_module_books/README.md | 2 +- add_to_app/books/flutter_module_books/run_pigeon.sh | 2 +- desktop_photo_search/fluent_ui/tool/grind.dart | 2 +- desktop_photo_search/material/tool/grind.dart | 2 +- game_template/README.md | 4 ++-- pedometer/ffigen.yaml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/add_to_app/books/README.md b/add_to_app/books/README.md index 2671d94f4..1484b5aee 100644 --- a/add_to_app/books/README.md +++ b/add_to_app/books/README.md @@ -38,7 +38,7 @@ page. * If the `schema.dart` is modified, the generated classes can be updated with ```bash - flutter pub run pigeon --input pigeon/schema.dart \ + dart run pigeon --input pigeon/schema.dart \ --dart_out lib/api.dart \ --objc_header_out ../ios_books/IosBooks/api.h \ --objc_source_out ../ios_books/IosBooks/api.m \ diff --git a/add_to_app/books/flutter_module_books/README.md b/add_to_app/books/flutter_module_books/README.md index f4a98d43a..7cc246ced 100644 --- a/add_to_app/books/flutter_module_books/README.md +++ b/add_to_app/books/flutter_module_books/README.md @@ -16,7 +16,7 @@ in `pigeon/schema.dart` is updated, the generated classes can also be re- generated using: ```shell -flutter pub run pigeon --input pigeon/schema.dart \ +dart run pigeon --input pigeon/schema.dart \ --dart_out lib/api.dart \ --objc_header_out ../ios_books/IosBooks/api.h \ --objc_source_out ../ios_books/IosBooks/api.m \ diff --git a/add_to_app/books/flutter_module_books/run_pigeon.sh b/add_to_app/books/flutter_module_books/run_pigeon.sh index 0c3b546a1..a8b584ade 100755 --- a/add_to_app/books/flutter_module_books/run_pigeon.sh +++ b/add_to_app/books/flutter_module_books/run_pigeon.sh @@ -1,5 +1,5 @@ #!/bin/sh -flutter pub run pigeon --input pigeon/schema.dart \ +dart run pigeon --input pigeon/schema.dart \ --dart_out lib/api.dart \ --objc_header_out ../ios_books/IosBooks/api.h \ --objc_source_out ../ios_books/IosBooks/api.m \ diff --git a/desktop_photo_search/fluent_ui/tool/grind.dart b/desktop_photo_search/fluent_ui/tool/grind.dart index 4bd6473af..a672fec31 100644 --- a/desktop_photo_search/fluent_ui/tool/grind.dart +++ b/desktop_photo_search/fluent_ui/tool/grind.dart @@ -32,7 +32,7 @@ Future generateJsonBindings() async => _logProcessOutput( @Task() Future watch() async => _logProcessOutput( - Process.start('flutter', ['pub', 'run', 'build_runner', 'watch']), + Process.start('dart', ['run', 'build_runner', 'watch']), ); @Task() diff --git a/desktop_photo_search/material/tool/grind.dart b/desktop_photo_search/material/tool/grind.dart index 4bd6473af..a672fec31 100644 --- a/desktop_photo_search/material/tool/grind.dart +++ b/desktop_photo_search/material/tool/grind.dart @@ -32,7 +32,7 @@ Future generateJsonBindings() async => _logProcessOutput( @Task() Future watch() async => _logProcessOutput( - Process.start('flutter', ['pub', 'run', 'build_runner', 'watch']), + Process.start('dart', ['run', 'build_runner', 'watch']), ); @Task() diff --git a/game_template/README.md b/game_template/README.md index c8d6004bc..8fef7b7e8 100644 --- a/game_template/README.md +++ b/game_template/README.md @@ -69,7 +69,7 @@ lib The state management approach is intentionally low-level. That way, it's easy to take this project and run with it, without having to learn new paradigms, or having -to remember to run `flutter pub run build_runner watch`. You are, +to remember to run `dart run build_runner watch`. You are, of course, encouraged to use whatever paradigm, helper package or code generation scheme that you prefer. @@ -522,7 +522,7 @@ To update the launcher icon, first change the files Then, run the following: ```bash -flutter pub run flutter_launcher_icons:main +dart run flutter_launcher_icons:main ``` You can [configure](https://github.com/fluttercommunity/flutter_launcher_icons#book-guide) diff --git a/pedometer/ffigen.yaml b/pedometer/ffigen.yaml index 894b3f14f..b55ca65f8 100644 --- a/pedometer/ffigen.yaml +++ b/pedometer/ffigen.yaml @@ -1,4 +1,4 @@ -# Run with `flutter pub run ffigen --config ffigen.yaml`. +# Run with `dart run ffigen --config ffigen.yaml`. name: PedometerBindings description: "Bindings for CM pedometers" language: objc From b4ccabb44ad701fc4b4c8d3b2fdb386b584edb67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Jan 2026 14:04:33 +0800 Subject: [PATCH 20/25] Bump actions/checkout from 6.0.1 to 6.0.2 (#2778) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.1 to 6.0.2.
          Release notes

          Sourced from actions/checkout's releases.

          v6.0.2

          What's Changed

          Full Changelog: https://github.com/actions/checkout/compare/v6.0.1...v6.0.2

          Changelog

          Sourced from actions/checkout's changelog.

          Changelog

          v6.0.2

          v6.0.1

          v6.0.0

          v5.0.1

          v5.0.0

          v4.3.1

          v4.3.0

          v4.2.2

          v4.2.1

          v4.2.0

          v4.1.7

          v4.1.6

          ... (truncated)

          Commits
          • de0fac2 Fix tag handling: preserve annotations and explicit fetch-tags (#2356)
          • 064fe7f Add orchestration_id to git user-agent when ACTIONS_ORCHESTRATION_ID is set (...
          • See full diff in compare view

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=6.0.1&new-version=6.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/beta.yml | 6 +++--- .github/workflows/build-android.yml | 2 +- .github/workflows/build-ios.yml | 2 +- .github/workflows/gemini-cli.yml | 4 ++-- .github/workflows/gemini-issue-automated-triage.yml | 2 +- .github/workflows/gemini-issue-scheduled-triage.yml | 2 +- .github/workflows/gemini-pr-review.yml | 2 +- .github/workflows/main.yml | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index 5ba0caecf..2d441fed3 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -26,7 +26,7 @@ jobs: matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 with: distribution: 'zulu' @@ -42,7 +42,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'flutter/samples' steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 with: distribution: 'zulu' @@ -58,7 +58,7 @@ jobs: # runs-on: macos-latest # if: github.repository == 'flutter/samples' # steps: - # - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 + # - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # with: # distribution: 'zulu' diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index 0d98e448a..e88b2a3fd 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'flutter/samples' steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 with: distribution: 'zulu' diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 5d41e6236..91e222a7b 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 with: distribution: 'zulu' diff --git a/.github/workflows/gemini-cli.yml b/.github/workflows/gemini-cli.yml index b1d7adfda..ed4e1fdfa 100644 --- a/.github/workflows/gemini-cli.yml +++ b/.github/workflows/gemini-cli.yml @@ -144,7 +144,7 @@ jobs: - name: 'Checkout PR branch' if: |- ${{ steps.get_context.outputs.is_pr == 'true' }} - uses: 'actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # ratchet:actions/checkout@v4 with: token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}' repository: '${{ github.repository }}' @@ -154,7 +154,7 @@ jobs: - name: 'Checkout main branch' if: |- ${{ steps.get_context.outputs.is_pr == 'false' }} - uses: 'actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # ratchet:actions/checkout@v4 with: token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}' repository: '${{ github.repository }}' diff --git a/.github/workflows/gemini-issue-automated-triage.yml b/.github/workflows/gemini-issue-automated-triage.yml index 4cb9c18f2..c76997958 100644 --- a/.github/workflows/gemini-issue-automated-triage.yml +++ b/.github/workflows/gemini-issue-automated-triage.yml @@ -44,7 +44,7 @@ jobs: steps: - name: 'Checkout repository' - uses: 'actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # ratchet:actions/checkout@v4 - name: 'Generate GitHub App Token' id: 'generate_token' diff --git a/.github/workflows/gemini-issue-scheduled-triage.yml b/.github/workflows/gemini-issue-scheduled-triage.yml index 4b0112f98..10f002378 100644 --- a/.github/workflows/gemini-issue-scheduled-triage.yml +++ b/.github/workflows/gemini-issue-scheduled-triage.yml @@ -26,7 +26,7 @@ jobs: steps: - name: 'Checkout repository' - uses: 'actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # ratchet:actions/checkout@v4 - name: 'Generate GitHub App Token' id: 'generate_token' diff --git a/.github/workflows/gemini-pr-review.yml b/.github/workflows/gemini-pr-review.yml index 0f19cc2ea..0405735b1 100644 --- a/.github/workflows/gemini-pr-review.yml +++ b/.github/workflows/gemini-pr-review.yml @@ -66,7 +66,7 @@ jobs: steps: - name: 'Checkout PR code' - uses: 'actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # ratchet:actions/checkout@v4 - name: 'Generate GitHub App Token' id: 'generate_token' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 98a7e21f1..1b84ef177 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,7 +27,7 @@ jobs: flutter_version: [stable, beta] os: [ubuntu-latest, macos-latest] steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 with: distribution: 'zulu' From c4b4adc16a76eb65a101eba684c137d097881ad0 Mon Sep 17 00:00:00 2001 From: weasdown <34220924+weasdown@users.noreply.github.com> Date: Tue, 27 Jan 2026 06:21:37 +0000 Subject: [PATCH 21/25] docs: fix typo in `compass_app` `BookingSummary` class doc (#2786) Fixes a [typo] in the [`compass_app`] sample's [`booking_summary.dart`]. The class doc for the `BookingSummary` class had "activities" written as "activitities". [`compass_app`]: https://github.com/flutter/samples/tree/main/compass_app [`booking_summary.dart`]: https://github.com/flutter/samples/blob/main/compass_app/app/lib/domain/models/booking/booking_summary.dart [typo]: https://github.com/flutter/samples/blob/7abc7b91f219e9cab71f537663057f2509a0d4a9/compass_app/app/lib/domain/models/booking/booking_summary.dart#L12C10-L12C22 Fixes #2785 . --- compass_app/app/lib/domain/models/booking/booking_summary.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compass_app/app/lib/domain/models/booking/booking_summary.dart b/compass_app/app/lib/domain/models/booking/booking_summary.dart index 4836e5ec5..633747fb8 100644 --- a/compass_app/app/lib/domain/models/booking/booking_summary.dart +++ b/compass_app/app/lib/domain/models/booking/booking_summary.dart @@ -9,7 +9,7 @@ part 'booking_summary.g.dart'; /// BookingSummary contains the necessary data to display a booking /// in the user home screen, but lacks the rest of the booking data -/// like activitities or destination. +/// like activities or destination. /// /// Use the [BookingRepository] to obtain a full [Booking] /// using the [BookingSummary.id]. From 023e072b8018646a2564e2250368fb166e55ef9d Mon Sep 17 00:00:00 2001 From: Matt Boetger Date: Fri, 30 Jan 2026 11:16:21 -0800 Subject: [PATCH 22/25] Add Content Sizing Sample (#2787) This is a sample add-to-app Android project based off the existing add-to-app Android sample project. This one makes minor changes to show how content-sizing can be achieved. Adding a content resizing sample for Android to support https://github.com/flutter/flutter/pull/179753 --- .../content_sizing_android_view/.gitignore | 15 + .../content_sizing_android_view/README.md | 4 + .../app/.gitignore | 1 + .../app/build.gradle | 58 ++++ .../app/lint-baseline.xml | 279 ++++++++++++++++++ .../app/proguard-rules.pro | 21 ++ .../app/src/main/AndroidManifest.xml | 26 ++ .../example/androidView/FlutterViewEngine.kt | 243 +++++++++++++++ .../example/androidView/ListAdapter.kt | 106 +++++++ .../example/androidView/MainActivity.kt | 118 ++++++++ .../drawable-v24/ic_launcher_foreground.xml | 30 ++ .../res/drawable/ic_dashboard_black_24dp.xml | 9 + .../main/res/drawable/ic_home_black_24dp.xml | 9 + .../res/drawable/ic_launcher_background.xml | 170 +++++++++++ .../drawable/ic_notifications_black_24dp.xml | 9 + .../app/src/main/res/layout/activity_main.xml | 13 + .../app/src/main/res/layout/android_card.xml | 31 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3593 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5339 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2636 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 3388 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4926 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7472 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7909 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 11873 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10652 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 16570 bytes .../app/src/main/res/values-night/themes.xml | 16 + .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/dimens.xml | 5 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 16 + .../content_sizing_android_view/build.gradle | 26 ++ .../gradle.properties | 21 ++ .../gradle/wrapper/gradle-wrapper.properties | 6 + .../content_sizing_android_view/gradlew | 172 +++++++++++ .../content_sizing_android_view/gradlew.bat | 84 ++++++ .../settings.gradle | 7 + .../.gitignore | 42 +++ .../.metadata | 10 + .../README.md | 14 + .../analysis_options.yaml | 1 + .../lib/main.dart | 52 ++++ .../pubspec.yaml | 34 +++ .../test/widget_test.dart | 15 + pubspec.yaml | 1 + 48 files changed, 1687 insertions(+) create mode 100644 add_to_app/android_view/content_sizing_android_view/.gitignore create mode 100644 add_to_app/android_view/content_sizing_android_view/README.md create mode 100644 add_to_app/android_view/content_sizing_android_view/app/.gitignore create mode 100644 add_to_app/android_view/content_sizing_android_view/app/build.gradle create mode 100644 add_to_app/android_view/content_sizing_android_view/app/lint-baseline.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/proguard-rules.pro create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/AndroidManifest.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/java/dev/flutter/example/androidView/FlutterViewEngine.kt create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/java/dev/flutter/example/androidView/ListAdapter.kt create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/java/dev/flutter/example/androidView/MainActivity.kt create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_dashboard_black_24dp.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_home_black_24dp.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_notifications_black_24dp.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/layout/activity_main.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/layout/android_card.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/values-night/themes.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/colors.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/dimens.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/strings.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/themes.xml create mode 100644 add_to_app/android_view/content_sizing_android_view/build.gradle create mode 100644 add_to_app/android_view/content_sizing_android_view/gradle.properties create mode 100644 add_to_app/android_view/content_sizing_android_view/gradle/wrapper/gradle-wrapper.properties create mode 100755 add_to_app/android_view/content_sizing_android_view/gradlew create mode 100644 add_to_app/android_view/content_sizing_android_view/gradlew.bat create mode 100644 add_to_app/android_view/content_sizing_android_view/settings.gradle create mode 100644 add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/.gitignore create mode 100644 add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/.metadata create mode 100644 add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/README.md create mode 100644 add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/analysis_options.yaml create mode 100644 add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/lib/main.dart create mode 100644 add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/pubspec.yaml create mode 100644 add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/test/widget_test.dart diff --git a/add_to_app/android_view/content_sizing_android_view/.gitignore b/add_to_app/android_view/content_sizing_android_view/.gitignore new file mode 100644 index 000000000..aa724b770 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/add_to_app/android_view/content_sizing_android_view/README.md b/add_to_app/android_view/content_sizing_android_view/README.md new file mode 100644 index 000000000..3cf900235 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/README.md @@ -0,0 +1,4 @@ +# android_view + +An example of an Android app that integrates a Flutter add-to-app module at a +view level. For more information see [../README.md](../README.md). diff --git a/add_to_app/android_view/content_sizing_android_view/app/.gitignore b/add_to_app/android_view/content_sizing_android_view/app/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/add_to_app/android_view/content_sizing_android_view/app/build.gradle b/add_to_app/android_view/content_sizing_android_view/app/build.gradle new file mode 100644 index 000000000..0797ed565 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/build.gradle @@ -0,0 +1,58 @@ +plugins { + id 'com.android.application' + id 'kotlin-android' +} + +android { + compileSdk 36 + + lint { + baseline = file("lint-baseline.xml") + } + + defaultConfig { + applicationId "dev.flutter.example.androidView" + minSdkVersion 24 + targetSdk 36 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } + buildFeatures { + viewBinding true + } + namespace 'dev.flutter.example.androidView' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation 'androidx.core:core-ktx:1.13.1' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'com.google.android.material:material:1.12.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + implementation 'androidx.vectordrawable:vectordrawable:1.2.0' + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.4' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4' + implementation 'androidx.navigation:navigation-fragment-ktx:2.7.7' + implementation 'androidx.navigation:navigation-ui-ktx:2.7.7' + implementation "androidx.recyclerview:recyclerview:1.3.2" + implementation project(path: ':flutter') + testImplementation 'junit:junit:4.+' + androidTestImplementation 'androidx.test.ext:junit:1.2.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' +} diff --git a/add_to_app/android_view/content_sizing_android_view/app/lint-baseline.xml b/add_to_app/android_view/content_sizing_android_view/app/lint-baseline.xml new file mode 100644 index 000000000..18092041f --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/lint-baseline.xml @@ -0,0 +1,279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/add_to_app/android_view/content_sizing_android_view/app/proguard-rules.pro b/add_to_app/android_view/content_sizing_android_view/app/proguard-rules.pro new file mode 100644 index 000000000..481bb4348 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/AndroidManifest.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/AndroidManifest.xml new file mode 100644 index 000000000..16116cbfa --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/java/dev/flutter/example/androidView/FlutterViewEngine.kt b/add_to_app/android_view/content_sizing_android_view/app/src/main/java/dev/flutter/example/androidView/FlutterViewEngine.kt new file mode 100644 index 000000000..e0c96a1b2 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/java/dev/flutter/example/androidView/FlutterViewEngine.kt @@ -0,0 +1,243 @@ +// Copyright 2019 The Flutter team. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package dev.flutter.example.androidView + +import android.app.Activity +import android.content.Intent +import androidx.activity.ComponentActivity +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleObserver +import androidx.lifecycle.OnLifecycleEvent +import io.flutter.embedding.android.ExclusiveAppComponent +import io.flutter.embedding.android.FlutterView +import io.flutter.embedding.engine.FlutterEngine +import io.flutter.plugin.platform.PlatformPlugin + +/** + * This is an application-specific wrapper class that exists to expose the intersection of an + * application's active activity and an application's visible view to a [FlutterEngine] for + * rendering. + * + * Omitted features from the [io.flutter.embedding.android.FlutterActivity] include: + * * **State restoration**. If you're integrating at the view level, you should handle activity + * state restoration yourself. + * * **Engine creations**. At this level of granularity, you must make an engine and attach. + * and all engine features like initial route etc must be configured on the engine yourself. + * * **Splash screens**. You must implement it yourself. Read from + * `addOnFirstFrameRenderedListener` as needed. + * * **Transparency, surface/texture**. These are just [FlutterView] level APIs. Set them on the + * [FlutterView] directly. + * * **Intents**. This doesn't do any translation of intents into actions in the [FlutterEngine]. + * you must do them yourself. + * * **Back buttons**. You must decide whether to send it to Flutter via + * [FlutterEngine.getNavigationChannel.popRoute()], or consume it natively. Though that + * decision may be difficult due to https://github.com/flutter/flutter/issues/67011. + * * **Low memory signals**. You're strongly encouraged to pass the low memory signals (such + * as from the host `Activity`'s `onTrimMemory` callbacks) to the [FlutterEngine] to let + * Flutter and the Dart VM cull its own memory usage. + * + * Your own [FlutterView] integrating application may need a similar wrapper but you must decide on + * what the appropriate intersection between the [FlutterView], the [FlutterEngine] and your + * `Activity` should be for your own application. + */ +class FlutterViewEngine(val engine: FlutterEngine) : LifecycleObserver, ExclusiveAppComponent{ + private var flutterView: FlutterView? = null + private var activity: ComponentActivity? = null + private var platformPlugin: PlatformPlugin? = null + + /** + * This is the intersection of an available activity and of a visible [FlutterView]. This is + * where Flutter would start rendering. + */ + private fun hookActivityAndView() { + // Assert state. + activity!!.let { activity -> + flutterView!!.let { flutterView -> + platformPlugin = PlatformPlugin(activity, engine.platformChannel) + + engine.activityControlSurface.attachToActivity(this, activity.lifecycle) + flutterView.attachToFlutterEngine(engine) + activity.lifecycle.addObserver(this) + } + } + } + + /** + * Lost the intersection of either an available activity or a visible + * [FlutterView]. + */ + private fun unhookActivityAndView() { + // Stop reacting to activity events. + activity!!.lifecycle.removeObserver(this) + + // Plugins are no longer attached to an activity. + engine.activityControlSurface.detachFromActivity() + + // Release Flutter's control of UI such as system chrome. + platformPlugin!!.destroy() + platformPlugin = null + + // Set Flutter's application state to detached. + engine.lifecycleChannel.appIsDetached(); + + // Detach rendering pipeline. + flutterView!!.detachFromFlutterEngine() + } + + /** + * Signal that a host `Activity` is now ready. If there is no [FlutterView] instance currently + * attached to the view hierarchy and visible, Flutter is not yet rendering. + * + * You can also choose at this point whether to notify the plugins that an `Activity` is + * attached or not. You can also choose at this point whether to connect a Flutter + * [PlatformPlugin] at this point which allows your Dart program to trigger things like + * haptic feedback and read the clipboard. This sample arbitrarily chooses no for both. + */ + fun attachToActivity(activity: ComponentActivity) { + this.activity = activity + if (flutterView != null) { + hookActivityAndView() + } + } + + /** + * Signal that a host `Activity` now no longer connected. If there were a [FlutterView] in + * the view hierarchy and visible at this moment, that [FlutterView] will stop rendering. + * + * You can also choose at this point whether to notify the plugins that an `Activity` is + * no longer attached or not. You can also choose at this point whether to disconnect Flutter's + * [PlatformPlugin] at this point which stops your Dart program being able to trigger things + * like haptic feedback and read the clipboard. This sample arbitrarily chooses yes for both. + */ + fun detachActivity() { + if (flutterView != null) { + unhookActivityAndView() + } + activity = null + } + + /** + * Signal that a [FlutterView] instance is created and attached to a visible Android view + * hierarchy. + * + * If an `Activity` was also previously provided, this puts Flutter into the rendering state + * for this [FlutterView]. This also connects this wrapper class to listen to the `Activity`'s + * lifecycle to pause rendering when the activity is put into the background while the + * view is still attached to the view hierarchy. + */ + fun attachFlutterView(flutterView: FlutterView) { + this.flutterView = flutterView + if (activity != null) { + hookActivityAndView() + } + } + + /** + * Signal that the attached [FlutterView] instance destroyed or no longer attached to a visible + * Android view hierarchy. + * + * If an `Activity` was attached, this stops Flutter from rendering. It also makes this wrapper + * class stop listening to the `Activity`'s lifecycle since it's no longer rendering. + */ + fun detachFlutterView() { + unhookActivityAndView() + flutterView = null + } + + /** + * Callback to let Flutter respond to the `Activity`'s resumed lifecycle event while both an + * `Activity` and a [FlutterView] are attached. + */ + @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) + private fun resumeActivity() { + if (activity != null) { + engine.lifecycleChannel.appIsResumed() + } + + platformPlugin?.updateSystemUiOverlays() + } + + /** + * Callback to let Flutter respond to the `Activity`'s paused lifecycle event while both an + * `Activity` and a [FlutterView] are attached. + */ + @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) + private fun pauseActivity() { + if (activity != null) { + engine.lifecycleChannel.appIsInactive() + } + } + + /** + * Callback to let Flutter respond to the `Activity`'s stopped lifecycle event while both an + * `Activity` and a [FlutterView] are attached. + */ + @OnLifecycleEvent(Lifecycle.Event.ON_STOP) + private fun stopActivity() { + if (activity != null) { + engine.lifecycleChannel.appIsPaused() + } + } + + // These events aren't used but would be needed for Flutter plugins consuming + // these events to function. + + /** + * Pass through the `Activity`'s `onRequestPermissionsResult` signal to plugins that may be + * listening to it while the `Activity` and the [FlutterView] are connected. + */ + fun onRequestPermissionsResult( + requestCode: Int, + permissions: Array, + grantResults: IntArray + ) { + if (activity != null && flutterView != null) { + engine + .activityControlSurface + .onRequestPermissionsResult(requestCode, permissions, grantResults); + } + } + + /** + * Pass through the `Activity`'s `onActivityResult` signal to plugins that may be + * listening to it while the `Activity` and the [FlutterView] are connected. + */ + fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + if (activity != null && flutterView != null) { + engine.activityControlSurface.onActivityResult(requestCode, resultCode, data); + } + } + + /** + * Pass through the `Activity`'s `onUserLeaveHint` signal to plugins that may be + * listening to it while the `Activity` and the [FlutterView] are connected. + */ + fun onUserLeaveHint() { + if (activity != null && flutterView != null) { + engine.activityControlSurface.onUserLeaveHint(); + } + } + + /** + * Called when another App Component is about to become attached to the [ ] this App Component + * is currently attached to. + * + * + * This App Component's connections to the [io.flutter.embedding.engine.FlutterEngine] + * are still valid at the moment of this call. + */ + override fun detachFromFlutterEngine() { + // Do nothing here + } + + /** + * Retrieve the App Component behind this exclusive App Component. + * + * @return The app component. + */ + override fun getAppComponent(): Activity { + return activity!!; + } +} diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/java/dev/flutter/example/androidView/ListAdapter.kt b/add_to_app/android_view/content_sizing_android_view/app/src/main/java/dev/flutter/example/androidView/ListAdapter.kt new file mode 100644 index 000000000..303329898 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/java/dev/flutter/example/androidView/ListAdapter.kt @@ -0,0 +1,106 @@ +// Copyright 2019 The Flutter team. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package dev.flutter.example.androidView + +import android.content.Context +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import dev.flutter.example.androidView.databinding.AndroidCardBinding +import io.flutter.embedding.android.FlutterView +import java.util.* +import kotlin.random.Random + +/** + * A demo-specific implementation of a [RecyclerView.Adapter] to setup the demo environment used + * to display view-level Flutter cells inside a list. + * + * The only instructional parts of this class are to show when to call + * [FlutterViewEngine.attachFlutterView] and [FlutterViewEngine.detachActivity] on a + * [FlutterViewEngine] equivalent class that you may want to create in your own application. + */ +class ListAdapter(context: Context, private val flutterViewEngine: FlutterViewEngine) : RecyclerView.Adapter() { + // Save the previous cells determined to be Flutter cells to avoid a confusing visual effect + // that the Flutter cells change position when scrolling back. + var previousFlutterCells = TreeSet(); + + private val wrapContentLayout = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) + + private val random = Random.Default + private val flutterView = FlutterView(context) + private var flutterCell: Cell? = null + + /** + * A [RecyclerView.ViewHolder] based on the `android_card` layout XML. + */ + inner class Cell(val binding: AndroidCardBinding) : RecyclerView.ViewHolder(binding.root) { + + } + + override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): Cell { + val binding = AndroidCardBinding.inflate(LayoutInflater.from(viewGroup.context), viewGroup, false) + + // Let the default view holder have an "Android card" inflated from the layout XML. When + // needed, hide the Android card and show a Flutter one instead. + return Cell(binding) + } + + override fun onBindViewHolder(cell: Cell, position: Int) { + // While scrolling forward, if no Flutter is presently showing, let the next one have a 1/3 + // chance of being Flutter. + // + // While scrolling backward, let it be deterministic, and only show cells that were + // previously Flutter cells as Flutter cells. + if (previousFlutterCells.contains(position) + || ((previousFlutterCells.isEmpty() || position > previousFlutterCells.last()) + && flutterCell == null + && random.nextInt(3) == 0)) { + // If we're restoring a cell at a previous location, the current cell may not have + // recycled yet since that JVM timing is indeterministic. Yank it from the current one. + // + // This shouldn't produce any visual glitches since in the forward direction, + // Flutter cells were only introduced once the previous Flutter cell recycled. + if (flutterCell != null) { + Log.w("FeedAdapter", "While restoring a previous Flutter cell, a current " + + "yet to be recycled Flutter cell was detached.") + flutterCell!!.binding.root.removeView(flutterView) + flutterViewEngine.detachFlutterView() + flutterCell = null + } + + // Add the Flutter card and hide the Android card for the cells chosen to be Flutter + // cells. + cell.binding.root.addView(flutterView, wrapContentLayout) + cell.binding.androidCard.visibility = View.GONE + + // Keep track of the cell so we know which one to restore back to the "Android cell" + // state when the view gets recycled. + flutterCell = cell + // Keep track that this position has once been a Flutter cell. Let it be a Flutter cell + // again when scrolling back to this position. + previousFlutterCells.add(position) + + // This is what makes the Flutter cell start rendering. + flutterViewEngine.attachFlutterView(flutterView) + } else { + // If it's not selected as a Flutter cell, just show the Android card. + cell.binding.androidCard.visibility = View.VISIBLE + cell.binding.cellNumber.text = position.toString(); + } + } + + override fun getItemCount() = 100 + + override fun onViewRecycled(cell: Cell) { + if (cell == flutterCell) { + cell.binding.root.removeView(flutterView) + flutterViewEngine.detachFlutterView() + flutterCell = null + } + super.onViewRecycled(cell) + } +} diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/java/dev/flutter/example/androidView/MainActivity.kt b/add_to_app/android_view/content_sizing_android_view/app/src/main/java/dev/flutter/example/androidView/MainActivity.kt new file mode 100644 index 000000000..0993288bb --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/java/dev/flutter/example/androidView/MainActivity.kt @@ -0,0 +1,118 @@ +// Copyright 2019 The Flutter team. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package dev.flutter.example.androidView + +import android.content.Intent +import android.os.Bundle +import android.os.Parcelable +import androidx.appcompat.app.AppCompatActivity +import androidx.core.os.BundleCompat +import androidx.recyclerview.widget.LinearLayoutManager +import dev.flutter.example.androidView.databinding.ActivityMainBinding +import io.flutter.FlutterInjector +import io.flutter.embedding.engine.FlutterEngine +import io.flutter.embedding.engine.dart.DartExecutor +import java.util.* +import kotlin.collections.ArrayList + +// There are 3 files in this sample. MainActivity and ListAdapter are just +// fictional setups. FlutterViewEngine is instructional and demonstrates the +// various plumbing needed for a functioning FlutterView integration. +/** + * Main activity for this demo that shows a page with a `RecyclerView`. + * + * There are 3 files in this sample. MainActivity and ListAdapter are just fictional setups. + * FlutterViewEngine is instructional and demonstrates the various plumbing needed for a functioning + * FlutterView integration. + */ +class MainActivity : AppCompatActivity() { + + private lateinit var binding: ActivityMainBinding + private lateinit var flutterViewEngine: FlutterViewEngine + + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) + + // TODO: create a multi-engine version after + // https://github.com/flutter/flutter/issues/72009 is built. + val engine = FlutterEngine(applicationContext) + engine.dartExecutor.executeDartEntrypoint( + DartExecutor.DartEntrypoint( + FlutterInjector.instance().flutterLoader().findAppBundlePath(), + "main")) + + flutterViewEngine = FlutterViewEngine(engine) + // The activity and FlutterView have different lifecycles. + // Attach the activity right away but only start rendering when the + // view is also scrolled into the screen. + flutterViewEngine.attachToActivity(this) + + val layoutManager = LinearLayoutManager(this) + val recyclerView = binding.recyclerView + val adapter = ListAdapter(this, flutterViewEngine) + recyclerView.layoutManager = layoutManager + recyclerView.adapter = adapter + + // If the activity was restarted, keep track of the previous scroll + // position and of the previous cell indices that were randomly selected + // as Flutter cells to preserve immersion. + if (savedInstanceState != null) { + val state = BundleCompat.getParcelable( + savedInstanceState, + "layoutManager", + Parcelable::class.java + ) + layoutManager.onRestoreInstanceState(state) + } + val previousFlutterCellsArray = savedInstanceState?.getIntegerArrayList("adapter") + if (previousFlutterCellsArray != null) { + adapter.previousFlutterCells = TreeSet(previousFlutterCellsArray) + } + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + + outState.putParcelable("layoutManager", binding.recyclerView.layoutManager?.onSaveInstanceState()) + val previousFlutterCells = (binding.recyclerView.adapter as? ListAdapter)?.previousFlutterCells + if (previousFlutterCells != null) { + outState.putIntegerArrayList( + "adapter", + ArrayList(previousFlutterCells) + ) + } + } + + override fun onDestroy() { + super.onDestroy() + flutterViewEngine.detachActivity() + } + + // These below aren't used here in this demo but would be needed for Flutter plugins that may + // consume these events. + + override fun onRequestPermissionsResult( + requestCode: Int, + permissions: Array, + grantResults: IntArray + ) { + flutterViewEngine.onRequestPermissionsResult(requestCode, permissions, grantResults) + super.onRequestPermissionsResult(requestCode, permissions, grantResults) + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + flutterViewEngine.onActivityResult(requestCode, resultCode, data) + super.onActivityResult(requestCode, resultCode, data) + } + + override fun onUserLeaveHint() { + flutterViewEngine.onUserLeaveHint() + super.onUserLeaveHint() + } +} diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 000000000..2b068d114 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_dashboard_black_24dp.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_dashboard_black_24dp.xml new file mode 100644 index 000000000..46fc8deec --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_dashboard_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_home_black_24dp.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_home_black_24dp.xml new file mode 100644 index 000000000..f8bb0b556 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_home_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_launcher_background.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 000000000..07d5da9cb --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_notifications_black_24dp.xml new file mode 100644 index 000000000..78b75c39b --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/drawable/ic_notifications_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/layout/activity_main.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/layout/activity_main.xml new file mode 100644 index 000000000..492a955dc --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/layout/android_card.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/layout/android_card.xml new file mode 100644 index 000000000..3bf306bd1 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/layout/android_card.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 000000000..eca70cfe5 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 000000000..eca70cfe5 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-hdpi/ic_launcher.png b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a571e60098c92c2baca8a5df62f2929cbff01b52 GIT binary patch literal 3593 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 P00000NkvXXu0mjfP=x?Y literal 0 HcmV?d00001 diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..61da551c5594a1f9d26193983d2cd69189014603 GIT binary patch literal 5339 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 literal 0 HcmV?d00001 diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..b216f2d313cc673d8b8c4da591c174ebed52795c GIT binary patch literal 11873 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 literal 0 HcmV?d00001 diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values-night/themes.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values-night/themes.xml new file mode 100644 index 000000000..82b8203a2 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values-night/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/colors.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/colors.xml new file mode 100644 index 000000000..f8c6127d3 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/dimens.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/dimens.xml new file mode 100644 index 000000000..e00c2dd14 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/dimens.xml @@ -0,0 +1,5 @@ + + + 16dp + 16dp + \ No newline at end of file diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/strings.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/strings.xml new file mode 100644 index 000000000..97b213769 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Flutter View Content Sizing Integration + \ No newline at end of file diff --git a/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/themes.xml b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/themes.xml new file mode 100644 index 000000000..2d692a11c --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/app/src/main/res/values/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/add_to_app/android_view/content_sizing_android_view/build.gradle b/add_to_app/android_view/content_sizing_android_view/build.gradle new file mode 100644 index 000000000..f60b7c423 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/build.gradle @@ -0,0 +1,26 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + ext.kotlin_version = '1.8.22' + repositories { + google() + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:8.9.1' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +tasks.register('clean', Delete) { + delete rootProject.buildDir +} diff --git a/add_to_app/android_view/content_sizing_android_view/gradle.properties b/add_to_app/android_view/content_sizing_android_view/gradle.properties new file mode 100644 index 000000000..c8ce6fbcc --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/gradle.properties @@ -0,0 +1,21 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +android.nonTransitiveRClass=false +android.nonFinalResIds=false \ No newline at end of file diff --git a/add_to_app/android_view/content_sizing_android_view/gradle/wrapper/gradle-wrapper.properties b/add_to_app/android_view/content_sizing_android_view/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..d7952dcde --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jul 26 11:31:21 EDT 2024 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/add_to_app/android_view/content_sizing_android_view/gradlew b/add_to_app/android_view/content_sizing_android_view/gradlew new file mode 100755 index 000000000..cccdd3d51 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/add_to_app/android_view/content_sizing_android_view/gradlew.bat b/add_to_app/android_view/content_sizing_android_view/gradlew.bat new file mode 100644 index 000000000..f9553162f --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/add_to_app/android_view/content_sizing_android_view/settings.gradle b/add_to_app/android_view/content_sizing_android_view/settings.gradle new file mode 100644 index 000000000..62f8e6580 --- /dev/null +++ b/add_to_app/android_view/content_sizing_android_view/settings.gradle @@ -0,0 +1,7 @@ +rootProject.name = "Flutter View Integration" +include ':app' +setBinding(new Binding([gradle: this])) +evaluate(new File( + settingsDir.parentFile, + 'flutter_module_using_plugin_content_sizing_android_view/.android/include_flutter.groovy' +)) diff --git a/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/.gitignore b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/.gitignore new file mode 100644 index 000000000..86f469179 --- /dev/null +++ b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/.gitignore @@ -0,0 +1,42 @@ +.DS_Store +.dart_tool/ + +.packages +.pub/ + +.idea/ +.vagrant/ +.sconsign.dblite +.svn/ + +*.swp +profile + +DerivedData/ + +.generated/ + +*.pbxuser +*.mode1v3 +*.mode2v3 +*.perspectivev3 + +!default.pbxuser +!default.mode1v3 +!default.mode2v3 +!default.perspectivev3 + +xcuserdata + +*.moved-aside + +*.pyc +*sync/ +Icon? +.tags* + +build/ +.android/ +.ios/ +.flutter-plugins +.flutter-plugins-dependencies diff --git a/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/.metadata b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/.metadata new file mode 100644 index 000000000..194fb3cc0 --- /dev/null +++ b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 532a8fed41a4f6595965f02f3edf9666ba5ebf44 + channel: master + +project_type: module diff --git a/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/README.md b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/README.md new file mode 100644 index 000000000..01c484f82 --- /dev/null +++ b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/README.md @@ -0,0 +1,14 @@ +# flutter_module_using_plugin + +An example Flutter module that uses a native plugin, intended for use in the +Flutter add-to-app samples. For more information on how to use it, see the +[README.md](../README.md) parent directory. + +## Getting Started + +For more information about Flutter, check out +[flutter.dev](https://flutter.dev). + +For instructions on how to integrate Flutter modules into your existing +applications, see Flutter's +[add-to-app documentation](https://flutter.dev/docs/development/add-to-app). diff --git a/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/analysis_options.yaml b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/analysis_options.yaml new file mode 100644 index 000000000..13d6fe105 --- /dev/null +++ b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/analysis_options.yaml @@ -0,0 +1 @@ +include: package:analysis_defaults/flutter.yaml diff --git a/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/lib/main.dart b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/lib/main.dart new file mode 100644 index 000000000..97834ef24 --- /dev/null +++ b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/lib/main.dart @@ -0,0 +1,52 @@ +// Copyright 2014 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; + +void main() { + runApp(const ResizeApp()); +} + +class ResizeApp extends StatefulWidget { + const ResizeApp({super.key}); + + @override + State createState() => _ResizeAppState(); +} + +class _ResizeAppState extends State { + int _listSize = 1; + void _addToList() { + setState(() { + _listSize++; + }); + } + + @override + Widget build(BuildContext context) { + return Center( + heightFactor: 1, + child: Directionality( + textDirection: TextDirection.ltr, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + for (int i = 0; i < _listSize; i++) + Container(color: HSVColor.fromAHSV(1, (10.0 * i), 1, 1).toColor(), height: 50, width: 200, + child: Center( + child: Text( + 'Flutter Widget $i', + style: const TextStyle(fontSize: 16, color: Colors.black), + ), + )), + TextButton( + onPressed: _addToList, + child: Text('Listception!'), + ) + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/pubspec.yaml b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/pubspec.yaml new file mode 100644 index 000000000..4074a0aa1 --- /dev/null +++ b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/pubspec.yaml @@ -0,0 +1,34 @@ +name: flutter_module_using_plugin_content_sizing_android_view +description: An example Flutter module that uses a plugin. +version: 1.0.0+1 +resolution: workspace + +environment: + sdk: ^3.8.1-0 + +dependencies: + flutter: + sdk: flutter + provider: ^6.1.5 + url_launcher: ^6.3.2 + sensors_plus: ^6.1.1 + +dev_dependencies: + analysis_defaults: + path: ../../../analysis_defaults + flutter_test: + sdk: flutter + +flutter: + uses-material-design: true + + # This section identifies your Flutter project as a module meant for + # embedding in a native host app. These identifiers should _not_ ordinarily + # be changed after generation - they are used to ensure that the tooling can + # maintain consistency when adding or modifying assets and plugins. + # They also do not have any bearing on your native host application's + # identifiers, which may be completely independent or the same as these. + module: + androidX: true + androidPackage: dev.flutter.example.flutter_module_using_plugin + iosBundleIdentifier: dev.flutter.example.flutterModuleUsingPlugin diff --git a/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/test/widget_test.dart b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/test/widget_test.dart new file mode 100644 index 000000000..4c7cccede --- /dev/null +++ b/add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view/test/widget_test.dart @@ -0,0 +1,15 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility that Flutter provides. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +class MockCounterModel extends ChangeNotifier {} + +void main() { + testWidgets('MiniView smoke test', (tester) async {}); +} diff --git a/pubspec.yaml b/pubspec.yaml index b7d3e3c24..d61189cc5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,6 +6,7 @@ environment: workspace: - add_to_app/android_view/flutter_module_using_plugin_android_view + - add_to_app/android_view/flutter_module_using_plugin_content_sizing_android_view - add_to_app/books/flutter_module_books - add_to_app/fullscreen/flutter_module_fullscreen - add_to_app/multiple_flutters/multiple_flutters_module From 25c698f165915c685068ac106108dbac06769f80 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Feb 2026 10:26:15 -0800 Subject: [PATCH 23/25] Bump @angular-devkit/build-angular from 20.3.15 to 21.1.2 in /web_embedding/ng-flutter (#2793) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular-devkit/build-angular](https://github.com/angular/angular-cli) from 20.3.15 to 21.1.2.
          Release notes

          Sourced from @​angular-devkit/build-angular's releases.

          21.1.2

          @​angular-devkit/schematics-cli

          Commit Description
          fix -
e7458c81d Add boolean type inference for 'true' and 'false' string values in argument parsing

          @​angular-devkit/architect

          Commit Description
          fix -
d66f1fe64 Add boolean type inference for 'true' and 'false' string values in argument parsing

          @​angular/build

          Commit Description
          fix -
80911af67 loosen Vitest dependency checks when runnerConfig is used
          fix -
2d30639d3 support merging coverage thresholds with Vitest runnerConfig

          21.1.1

          @​schematics/angular

          Commit Description
          fix -
9da6d8fa7 correct vscode MCP configuration for new projects
          fix -
361758c75 remove special characters from jasmine-vitest report filename

          @​angular/cli

          Commit Description
          fix -
151b69587 Remove nonexistent link from MCP response

          @​angular/build

          Commit Description
          fix -
1b7e3307a allow application assets in workspace root
          fix -
d1e596dc5 prevent incorrect catch binding removal in downleveled for-await
          fix -
98ef0981a update undici to v7.18.2

          21.1.0

          @​schematics/angular

          Commit Description
          feat -
36cf3afb4 add browserMode option to jasmine-vitest schematic
          feat -
e71a72ffd generate detailed migration report for refactor-jasmine-vitest
          fix -
18cf6c51b add MCP configuration file to new workspaces

          @​angular/cli

          Commit Description
          feat -
772e6efe7 add 'test' and 'e2e' MCP tools
          feat -
8efb86318 Add "all" as an experimental tool group
          feat -
c3c9ac506 Add MCP tools for building and running devservers
          feat -
d635a6c63 add signal forms lessons
          fix -
d8b76e93d correctly handle yarn classic tag manifest fetching
          fix -
7ab5c0b0a correctly spawn package managers on Windows in new abstraction
          fix -
348096623 enhance list_projects MCP tool file system traversal and symlink handling
          fix -
316fca862 handle array output from npm view in manifest parser

          ... (truncated)

          Changelog

          Sourced from @​angular-devkit/build-angular's changelog.

          21.1.2 (2026-01-28)

          @​angular-devkit/schematics-cli

          Commit Type Description
          e7458c81d fix Add boolean type inference for 'true' and 'false' string values in argument parsing

          @​angular-devkit/architect

          Commit Type Description
          d66f1fe64 fix Add boolean type inference for 'true' and 'false' string values in argument parsing

          @​angular/build

          Commit Type Description
          80911af67 fix loosen Vitest dependency checks when runnerConfig is used
          2d30639d3 fix support merging coverage thresholds with Vitest runnerConfig

          21.1.1 (2026-01-21)

          @​angular/cli

          Commit Type Description
          151b69587 fix Remove nonexistent link from MCP response

          @​schematics/angular

          Commit Type Description
          9da6d8fa7 fix correct vscode MCP configuration for new projects
          361758c75 fix remove special characters from jasmine-vitest report filename

          @​angular/build

          Commit Type Description
          1b7e3307a fix allow application assets in workspace root
          d1e596dc5 fix prevent incorrect catch binding removal in downleveled for-await
          98ef0981a fix update undici to v7.18.2

          ... (truncated)

          Commits
          • 702d717 release: cut the v21.1.2 release
          • d66f1fe fix(@​angular-devkit/architect): Add boolean type inference for 'true' and 'fa...
          • e7458c8 fix(@​angular-devkit/schematics-cli): Add boolean type inference for 'true' an...
          • e974e40 build: lock file maintenance
          • 2d30639 fix(@​angular/build): support merging coverage thresholds with Vitest runnerCo...
          • 80911af fix(@​angular/build): loosen Vitest dependency checks when runnerConfig is used
          • 7cf1d3b build: update cross-repo angular dependencies
          • 165e7d6 build: update all github actions
          • 8e7f86b build: update bazel dependencies
          • 3206b8b build: update cross-repo angular dependencies
          • Additional commits viewable in compare view

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-devkit/build-angular&package-manager=npm_and_yarn&previous-version=20.3.15&new-version=21.1.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 94f236eac..90bd2f7b5 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -26,7 +26,7 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^20.0.2", + "@angular-devkit/build-angular": "^21.1.2", "@angular/cli": "~21.1.1", "@angular/compiler-cli": "^20.0.3", "@types/jasmine": "~6.0.0", From 89ebdc24c83840ee705bd78d436b20287ffdb0d4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Feb 2026 10:27:03 -0800 Subject: [PATCH 24/25] Bump @angular/cdk from 20.2.14 to 21.1.2 in /web_embedding/ng-flutter (#2792) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/cdk](https://github.com/angular/components) from 20.2.14 to 21.1.2.
          Release notes

          Sourced from @​angular/cdk's releases.

          21.1.2

          material

          Commit Description
          fix -
bb69f3ca7d sidenav: incorrectly trapping focus in some cases (#32699)
          fix -
7824225a5b timepicker: make it easier to style timepicker panel (#32711)

          cdk

          Commit Description
          fix -
9b54cb20da listbox: incorrect wording in error message (#32697)
          fix -
4b8fc71c08 table: throw when multiple row templates are used with virtual scrolling (#32682)

          aria

          Commit Description
          fix -
1d9918a9de combobox: Add announcement for empty results to autocomplete demo (#32707)
          perf -
81b407d353 grid: avoid excessive change detections (#32705)

          21.1.1

          aria

          Commit Description
          fix -
d24f099179 grid: unit tests for grid pattern (#32633)

          multiple

          Commit Description
          fix -
6b5466afb2 incorrect paths in declaration files for aria
          fix -
028f89b4d8 resolve sass if function deprecation warnings (#32674)

          21.1.0

          material-experimental

          Commit Description
          fix -
29e2c4633 column-resize: add null checks for overlay (#32259)
          fix -
c40f42821 column-resize: fix m2 colors (#32388)

          material

          Commit Description
          feat -
ef1355914 schematics: add preconnect links for Google Fonts in index.html (#32238)
          feat -
6b9decb77 stepper: add a prefix section to the horizontal stepper header (#32184)
          fix -
5db8dca18 datepicker: error if some methods are called too early. (#32630)
          fix -
7b2627de2 menu: Do not open the menu when trigger is aria-disabled (properly handle disabledInteractive) (#32601)
          fix -
eba6ee844 radio: allow aria attributes to be reset (#32613)
          fix -
fb1b66be9 slider: add missing closing parenthesis in tick mark transform (#32580)

          cdk

          Commit Description
          feat -
a20aeabbe a11y: allow safe HTML to be passed to live announcer (#32386)
          feat -
75b373bbc a11y: allow safe HTML to be passed to live announcer (#32412)
          feat -
439d1f92a table: add virtual scrolling support
          fix -
67f213a35 a11y: add @angular/platform-browser to peer dependencies (#32471)

          ... (truncated)

          Changelog

          Sourced from @​angular/cdk's changelog.

          21.1.2 "glass-bottle" (2026-01-28)

          aria

          Commit Type Description
          1d9918a9de fix combobox: Add announcement for empty results to autocomplete demo (#32707)
          81b407d353 perf grid: avoid excessive change detections (#32705)

          cdk

          Commit Type Description
          9b54cb20da fix listbox: incorrect wording in error message (#32697)
          4b8fc71c08 fix table: throw when multiple row templates are used with virtual scrolling (#32682)

          material

          Commit Type Description
          bb69f3ca7d fix sidenav: incorrectly trapping focus in some cases (#32699)
          7824225a5b fix timepicker: make it easier to style timepicker panel (#32711)

          21.2.0-next.1 "plastic-ant" (2026-01-21)

          aria

          Commit Type Description
          ec384a37ab fix grid: unit tests for grid pattern (#32633)

          cdk

          Commit Type Description
          e397ecbcfa fix table: remove string-based DI tokens (#32677)

          multiple

          Commit Type Description
          3612ef6094 fix incorrect paths in declaration files for aria
          f3357c1dff fix resolve sass if function deprecation warnings (#32674)

          21.1.1 "plastic-bear" (2026-01-21)

          aria

          Commit Type Description
          d24f099179 fix grid: unit tests for grid pattern (#32633)

          multiple

          Commit Type Description
          6b5466afb2 fix incorrect paths in declaration files for aria
          028f89b4d8 fix resolve sass if function deprecation warnings (#32674)

          ... (truncated)

          Commits
          • d1f9917 release: cut the v21.1.2 release
          • a1d959b docs(material/sidenav): fix typo in drawer comment (#32702)
          • 33f9f99 build: lock file maintenance (#32676)
          • 4564548 build: update pnpm to v10.28.2 (#32681)
          • ad0aeaa [aria/multiple] Add to and clean up input validation across aria components (...
          • 1d9918a fix(aria/combobox): Add announcement for empty results to autocomplete demo (...
          • 7824225 fix(material/timepicker): make it easier to style timepicker panel (#32711)
          • 81b407d perf(aria/grid): avoid excessive change detections (#32705)
          • bb69f3c fix(material/sidenav): incorrectly trapping focus in some cases (#32699)
          • 9b54cb2 fix(cdk/listbox): incorrect wording in error message (#32697)
          • Additional commits viewable in compare view

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/cdk&package-manager=npm_and_yarn&previous-version=20.2.14&new-version=21.1.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 90bd2f7b5..a937aa71e 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -12,7 +12,7 @@ "private": true, "dependencies": { "@angular/animations": "^21.1.1", - "@angular/cdk": "^20.1.0", + "@angular/cdk": "^21.1.2", "@angular/common": "^21.1.1", "@angular/compiler": "^21.1.0", "@angular/core": "^20.0.3", From 54106b0bf6d90bb9ce6fd66e4473be390faae78d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Feb 2026 10:27:22 -0800 Subject: [PATCH 25/25] Bump @angular/platform-browser-dynamic from 20.3.16 to 21.1.2 in /web_embedding/ng-flutter (#2791) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) from 20.3.16 to 21.1.2.
          Release notes

          Sourced from @​angular/platform-browser-dynamic's releases.

          21.1.2

          forms

          Commit Description
          fix -
9f99b14882 only touch visible, interactive fields on submit

          language-service

          Commit Description
          fix -
c57b0355b5 Detect local project version on creation

          router

          Commit Description
          fix -
21ecdc036a Do not intercept reload events with Navigation integration

          21.1.1

          compiler-cli

          Commit Description
          fix -
0e1f1ed573 drop .tsx extension for generated relative imports

          core

          Commit Description
          fix -
05adfcf8f2 handle Set in class bindings

          forms

          Commit Description
          feat -
d89a80a970 Ability to manually register a form field binding in signal forms
          fix -
cb75f9ce85 fix control value syncing on touch

          VSCode Extension: 21.1.1

          • fix(vscode-extension): add syntax highlighting for arrow functions (a649fc8f57)
          • fix(vscode-extension): add syntax highlighting for spread/rest expressions (8f16846dd9)

          VSCode Extension: 21.1.0

          21.1.0 (2026-01-12)

          • fix(vscode-extension): convert enum member kind in completions correctly (50674f8c28)

          21.1.0

          common

          Commit Description
          feat -
d8790972be Add custom transformations for Cloudflare and Cloudinary image loaders
          feat -
a6b8cb68af support custom transformations in ImageKit and Imgix loaders

          compiler

          Commit Description
          feat -
640693da8e Add support for multiple swich cases matching
          fix -
0ad3adc7c6 Support empty cases

          core

          ... (truncated)

          Changelog

          Sourced from @​angular/platform-browser-dynamic's changelog.

          21.1.2 (2026-01-28)

          forms

          Commit Type Description
          9f99b14882 fix only touch visible, interactive fields on submit

          language-service

          Commit Type Description
          c57b0355b5 fix Detect local project version on creation

          router

          Commit Type Description
          21ecdc036a fix Do not intercept reload events with Navigation integration

          21.2.0-next.0 (2026-01-22)

          compiler

          Commit Type Description
          72534e2a34 feat Add support for the instanceof binary operator
          04ba09a8d9 feat support AstVisitor.visitEmptyExpr()
          ce80136e7b fix optimize away unnecessary restore/reset view calls
          3242a61bae fix variable counter visiting some expressions twice

          compiler-cli

          Commit Type Description
          473dd3e1cb fix attach source spans to object literal keys in TCB
          a904d9f77b fix support nested component declaration

          core

          Commit Type Description
          92d2498910 feat add host node to DeferBlockData (#66546)
          1ba9b7ac50 feat resource composition via snapshots
          d9923b72a2 feat support arrow functions in expressions
          ed78fa05c7 fix Remove note to skip arrow functions in best practices

          forms

          Commit Type Description
          95c386469c feat Add passing focus options to form field

          language-server

          Commit Type Description
          ebc90c26f5 feat Add completions and hover info for inline styles
          26fd0839c3 feat Add folding range support for inline styles
          573aadef7e feat Add quick info for inline styles

          ... (truncated)

          Commits
          • d3f67f6 refactor(core): mark VERSION as @__PURE__ for better tree-shaking
          • 26fed34 build: format md files
          • c357650 refactor(core): Update tests for zoneless by default (#63668)
          • 2fcafb6 build: rename defaults2.bzl to defaults.bzl (#63383)
          • See full diff in compare view

          [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/platform-browser-dynamic&package-manager=npm_and_yarn&previous-version=20.3.16&new-version=21.1.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
          Dependabot commands and options
          You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
          Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index a937aa71e..cca76129f 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -19,7 +19,7 @@ "@angular/forms": "^21.1.0", "@angular/material": "^21.1.1", "@angular/platform-browser": "^20.0.3", - "@angular/platform-browser-dynamic": "^20.1.0", + "@angular/platform-browser-dynamic": "^21.1.2", "@angular/router": "^21.1.0", "rxjs": "~7.8.1", "tslib": "^2.6.2",