From 0dcdd518cb0c34b9f442befe3895c2f997a0a6bc Mon Sep 17 00:00:00 2001 From: Win Parker Date: Sun, 11 Feb 2024 21:45:43 +0700 Subject: [PATCH] Initial Commit - v0.0.6 --- .DS_Store | Bin 0 -> 8196 bytes LICENSE | 675 +++++++++++---- README.md | 52 +- analysis_options.yaml | 28 + android/.gitignore | 13 + android/app/build.gradle | 67 ++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 33 + .../com/example/dateapp/MainActivity.kt | 6 + android/app/src/main/res/.DS_Store | Bin 0 -> 6148 bytes .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3748 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2044 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4733 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6997 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9884 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 30 + android/dateapp_android.iml | 29 + android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle | 29 + appdmg.json | 8 + assets/app_icons/icon.png | Bin 0 -> 54218 bytes .../net.winscloud.DateCalculator.svg | 125 +++ dateapp.iml | 17 + ios/.DS_Store | Bin 0 -> 6148 bytes ios/.gitignore | 34 + ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 2 + ios/Flutter/Release.xcconfig | 2 + ios/Podfile | 44 + ios/Runner.xcodeproj/project.pbxproj | 614 ++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 +++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 295 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 450 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 282 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 462 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 704 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 586 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 1674 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 762 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 1226 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 1418 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 + ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 49 ++ ios/Runner/Runner-Bridging-Header.h | 1 + ios/RunnerTests/RunnerTests.swift | 12 + lib/.DS_Store | Bin 0 -> 6148 bytes lib/constants/info.dart | 1 + lib/main.dart | 140 ++++ lib/pages/calendar.dart | 108 +++ lib/pages/day.dart | 114 +++ lib/pages/settings.dart | 154 ++++ lib/utils/gregorian_date.dart | 48 ++ lib/utils/scroll.dart | 11 + lib/widgets/license.dart | 32 + linux/.gitignore | 1 + linux/CMakeLists.txt | 145 ++++ linux/flutter/CMakeLists.txt | 88 ++ linux/flutter/generated_plugin_registrant.cc | 15 + linux/flutter/generated_plugin_registrant.h | 15 + linux/flutter/generated_plugins.cmake | 24 + linux/main.cc | 6 + linux/my_application.cc | 111 +++ linux/my_application.h | 18 + .../net.winscloud.DateCalculator.appdata.xml | 52 ++ linux/net.winscloud.DateCalculator.desktop | 10 + macos/.DS_Store | Bin 0 -> 6148 bytes macos/.gitignore | 7 + macos/Flutter/Flutter-Debug.xcconfig | 2 + macos/Flutter/Flutter-Release.xcconfig | 2 + macos/Flutter/GeneratedPluginRegistrant.swift | 12 + macos/Podfile | 43 + macos/Podfile.lock | 22 + macos/Runner.xcodeproj/project.pbxproj | 791 ++++++++++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 +++ .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/.DS_Store | Bin 0 -> 6148 bytes .../AppIcon.appiconset/Contents.json | 68 ++ .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 99606 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 5868 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 715 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 15598 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1383 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 38433 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2895 bytes macos/Runner/Base.lproj/MainMenu.xib | 343 ++++++++ macos/Runner/Configs/AppInfo.xcconfig | 14 + macos/Runner/Configs/Debug.xcconfig | 2 + macos/Runner/Configs/Release.xcconfig | 2 + macos/Runner/Configs/Warnings.xcconfig | 13 + macos/Runner/DebugProfile.entitlements | 12 + macos/Runner/Info.plist | 32 + macos/Runner/MainFlutterWindow.swift | 15 + macos/Runner/Release.entitlements | 8 + macos/RunnerTests/RunnerTests.swift | 12 + pubspec.yaml | 110 +++ web/favicon.png | Bin 0 -> 1037 bytes web/icons/Icon-192.png | Bin 0 -> 16122 bytes web/icons/Icon-512.png | Bin 0 -> 67154 bytes web/icons/Icon-maskable-192.png | Bin 0 -> 10731 bytes web/icons/Icon-maskable-512.png | Bin 0 -> 53865 bytes web/index.html | 59 ++ web/manifest.json | 35 + windows/.gitignore | 17 + windows/CMakeLists.txt | 108 +++ windows/flutter/CMakeLists.txt | 109 +++ .../flutter/generated_plugin_registrant.cc | 14 + windows/flutter/generated_plugin_registrant.h | 15 + windows/flutter/generated_plugins.cmake | 24 + windows/packaging/exe/make_config.yaml | 8 + windows/runner/CMakeLists.txt | 40 + windows/runner/Runner.rc | 121 +++ windows/runner/flutter_window.cpp | 71 ++ windows/runner/flutter_window.h | 33 + windows/runner/main.cpp | 43 + windows/runner/resource.h | 16 + windows/runner/resources/app_icon.ico | Bin 0 -> 450289 bytes windows/runner/runner.exe.manifest | 20 + windows/runner/utils.cpp | 65 ++ windows/runner/utils.h | 19 + windows/runner/win32_window.cpp | 288 +++++++ windows/runner/win32_window.h | 102 +++ 149 files changed, 6116 insertions(+), 175 deletions(-) create mode 100644 .DS_Store create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/example/dateapp/MainActivity.kt create mode 100644 android/app/src/main/res/.DS_Store create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle create mode 100644 android/dateapp_android.iml create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle create mode 100644 appdmg.json create mode 100644 assets/app_icons/icon.png create mode 100644 assets/app_icons/net.winscloud.DateCalculator.svg create mode 100644 dateapp.iml create mode 100644 ios/.DS_Store create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Podfile create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 ios/RunnerTests/RunnerTests.swift create mode 100644 lib/.DS_Store create mode 100644 lib/constants/info.dart create mode 100644 lib/main.dart create mode 100644 lib/pages/calendar.dart create mode 100644 lib/pages/day.dart create mode 100644 lib/pages/settings.dart create mode 100644 lib/utils/gregorian_date.dart create mode 100644 lib/utils/scroll.dart create mode 100644 lib/widgets/license.dart create mode 100644 linux/.gitignore create mode 100644 linux/CMakeLists.txt create mode 100644 linux/flutter/CMakeLists.txt create mode 100644 linux/flutter/generated_plugin_registrant.cc create mode 100644 linux/flutter/generated_plugin_registrant.h create mode 100644 linux/flutter/generated_plugins.cmake create mode 100644 linux/main.cc create mode 100644 linux/my_application.cc create mode 100644 linux/my_application.h create mode 100644 linux/net.winscloud.DateCalculator.appdata.xml create mode 100644 linux/net.winscloud.DateCalculator.desktop create mode 100644 macos/.DS_Store create mode 100644 macos/.gitignore create mode 100644 macos/Flutter/Flutter-Debug.xcconfig create mode 100644 macos/Flutter/Flutter-Release.xcconfig create mode 100644 macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 macos/Podfile create mode 100644 macos/Podfile.lock create mode 100644 macos/Runner.xcodeproj/project.pbxproj create mode 100644 macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner/AppDelegate.swift create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/.DS_Store create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 macos/Runner/Base.lproj/MainMenu.xib create mode 100644 macos/Runner/Configs/AppInfo.xcconfig create mode 100644 macos/Runner/Configs/Debug.xcconfig create mode 100644 macos/Runner/Configs/Release.xcconfig create mode 100644 macos/Runner/Configs/Warnings.xcconfig create mode 100644 macos/Runner/DebugProfile.entitlements create mode 100644 macos/Runner/Info.plist create mode 100644 macos/Runner/MainFlutterWindow.swift create mode 100644 macos/Runner/Release.entitlements create mode 100644 macos/RunnerTests/RunnerTests.swift create mode 100644 pubspec.yaml create mode 100644 web/favicon.png create mode 100644 web/icons/Icon-192.png create mode 100644 web/icons/Icon-512.png create mode 100644 web/icons/Icon-maskable-192.png create mode 100644 web/icons/Icon-maskable-512.png create mode 100644 web/index.html create mode 100644 web/manifest.json create mode 100644 windows/.gitignore create mode 100644 windows/CMakeLists.txt create mode 100644 windows/flutter/CMakeLists.txt create mode 100644 windows/flutter/generated_plugin_registrant.cc create mode 100644 windows/flutter/generated_plugin_registrant.h create mode 100644 windows/flutter/generated_plugins.cmake create mode 100644 windows/packaging/exe/make_config.yaml create mode 100644 windows/runner/CMakeLists.txt create mode 100644 windows/runner/Runner.rc create mode 100644 windows/runner/flutter_window.cpp create mode 100644 windows/runner/flutter_window.h create mode 100644 windows/runner/main.cpp create mode 100644 windows/runner/resource.h create mode 100644 windows/runner/resources/app_icon.ico create mode 100644 windows/runner/runner.exe.manifest create mode 100644 windows/runner/utils.cpp create mode 100644 windows/runner/utils.h create mode 100644 windows/runner/win32_window.cpp create mode 100644 windows/runner/win32_window.h diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d7498afd6ab4c23ebcd7ec5e15b3fdf7567267ee GIT binary patch literal 8196 zcmeHMJ8u&~5T5lTG0?bhkqS=YAwUR-gak^%IhZ<;T!V;xk%KtD4YJExtQ{l5G5wCA}HkysoB^F(t* zR6}Q5--jWiv7dXYmGsOpSb=;Bd-LsX)L&0Ux(TO%Q@|ubih0r3H;G)pTqpnx_g0(xMf4_DXH5hjOs-@gYbdD!^)ZFeVRo~cIKYcVO^#iBR? z#!|@uT8tA<+$@tyMws}=e?D7ys}xDBWAez4viQ_aGn#8of#N7oR<}CG_5a2E@BhUS z#NDY=pnwX9N~_&k#Et9PIwb+u+8+89bZ#6sQC6m4;1Hgd + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random + Hacker. + + , 1 April 1990 + Ty Coon, President of Vice -Version 2.1, February 1999 - -Copyright (C) 1991, 1999 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] - -Preamble - -The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. - -This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. - -When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. - -To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. - -For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. - -We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. - -To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. - -Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. - -Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. - -When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. - -We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. - -For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. - -In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. - -Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. - -The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". - -A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. - -The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) - -"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. - -Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. - -1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. - -You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. - -(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. - -3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. - -Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. - -This option is useful when you wish to copy part of the code of the Library into a program that is not a library. - -4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. - -If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. - -5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. - -However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. - -When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. - -If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) - -Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. - -6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. - -You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: - - a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. - - e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. - -For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. - -It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. - -7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. - - b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. - -8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. - -9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. - -10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. - -11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. - -This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - -12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. - -13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. - -14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - -NO WARRANTY - -15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -END OF TERMS AND CONDITIONS - -How to Apply These Terms to Your New Libraries - -If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). - -To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. - - one line to give the library's name and an idea of what it does. - Copyright (C) year name of author - - This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: - -Yoyodyne, Inc., hereby disclaims all copyright interest in -the library `Frob' (a library for tweaking knobs) written -by James Random Hacker. - -signature of Ty Coon, 1 April 1990 -Ty Coon, President of Vice That's all there is to it! diff --git a/README.md b/README.md index 894cb50..372da71 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,51 @@ -# dateapp +
+ Date Calculator Logo +

+
-App for calculating difference between two dates \ No newline at end of file +# Date Calculator +App for calculating anything related to dates + +## Features +- Simple to use! +- Fast and responsive. +- Calculate differences between dates, with months, years, and weeks given. +- Find which day is a certain amount of dates away. +- Compatible with dynamic color themes. +- Open Source and ad-free. + +## Installation +### Android +Check out `app-release.apk` over at the [GitHub Releases](https://github.com/WinsDominoes/dateapp/) +### Windows +Check out `dateapp-windows-x86_64-setup.exe ` over at the [GitHub Releases](https://github.com/WinsDominoes/dateapp/releases/) page. +### MacOS +Check out ` +dateapp-macos-universal.dmg` over at the [GitHub Releases](https://github.com/WinsDominoes/dateapp/releases/) page. +### Linux + +#### tar.gz +Check out `dateapp-linux-x64.tar.gz ` over at the [GitHub Releases](https://github.com/WinsDominoes/dateapp/releases/) page or `dateapp-linux-arm64.tar.gz` at the same place. + +#### Flatpak +Check out Amy's [https://github.com/AtiusAmy/net.winscloud.DateCalculator](https://github.com/AtiusAmy/net.winscloud.DateCalculator) for Flatpak version. + +### Web +Check out [https://datecalculator.winscloud.net](https://datecalculator.winscloud.net) + +## Build +- Install [Flutter](https://docs.flutter.dev/get-started/install) +- Clone repository `git clone https://github.com/WinsDominoes/dateapp.git` +- Install required dependencies `flutter pub get` +- Run one of these commands for platforms + +| Platform | Command | +|----------------|-------------------------| +| Android | `flutter build apk` | +| Windows | `flutter build windows` | +| Linux (x86_64) | `flutter build linux` | +| MacOS | `flutter build macos` | + +## Credits +- [WinsDominoes (Win)](https://github.com/WinsDominoes) - Developer +- [AtiusAmy (Amy)](https://github.com/AtiusAmy) - Research & Development / Quality Control diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..a4bbb3a --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,67 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +android { + namespace "com.example.dateapp" + compileSdkVersion flutter.compileSdkVersion + ndkVersion flutter.ndkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.dateapp" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies {} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..6906350 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/dateapp/MainActivity.kt b/android/app/src/main/kotlin/com/example/dateapp/MainActivity.kt new file mode 100644 index 0000000..62bd161 --- /dev/null +++ b/android/app/src/main/kotlin/com/example/dateapp/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.dateapp + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/android/app/src/main/res/.DS_Store b/android/app/src/main/res/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..899af6ed6913e07ed534beba251ebede9c940e6e GIT binary patch literal 6148 zcmeHK!AiqG5S^_Ni&ZHiC@2yS9zE1Ah$VhOe?V)&78=rv;4xp}5BLe*yn9u=`XwHH zvpXbdlTGVE5t)JAmrQ1oHxG6vOGKuBH|h~}iKvai7;IvyF@DaYVlDCP0gZjfHO=UZ z#xw$|sRF9NUsr(FZif<@V8td>UcZy+ZEtXsCbE)Sp+7Q7<9Ikthlpr@?tZ)-KfPQu zMUTD_JsX!<@IF=Ho7nwkfv+V*H* z$PQp6m^p+8W?U-Jr5ZV67?%!zC~=Ws=Fp{+v0uh} + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff70aa8b1136b70a79fd16380d0f0fe8f057d80 GIT binary patch literal 3748 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..08a4e269219d333a99ebb98cedfb15fa5a6e1c50 GIT binary patch literal 9884 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 VRa>R7-~BoRs!AG)ALY$L{}1_7F<<}y literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..e83fb5d --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,30 @@ +buildscript { + ext.kotlin_version = '1.7.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/android/dateapp_android.iml b/android/dateapp_android.iml new file mode 100644 index 0000000..1899969 --- /dev/null +++ b/android/dateapp_android.iml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..598d13f --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx4G +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..3c472b9 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..7cd7128 --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,29 @@ +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + } + settings.ext.flutterSdkPath = flutterSdkPath() + + includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } + + plugins { + id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false + } +} + +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.3.0" apply false +} + +include ":app" diff --git a/appdmg.json b/appdmg.json new file mode 100644 index 0000000..1731988 --- /dev/null +++ b/appdmg.json @@ -0,0 +1,8 @@ +{ + "title": "Date Calculator", + "icon": "assets/app_icons/icon.png", + "contents": [ + { "x": 448, "y": 344, "type": "link", "path": "/Applications" }, + { "x": 192, "y": 344, "type": "file", "path": "build/macos/Build/Products/Release/dateapp.app" } + ] + } \ No newline at end of file diff --git a/assets/app_icons/icon.png b/assets/app_icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7dc46d7d32e2a2ed5b8c7746c243e39fa508fb97 GIT binary patch literal 54218 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dateapp.iml b/dateapp.iml new file mode 100644 index 0000000..f66303d --- /dev/null +++ b/dateapp.iml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/ios/.DS_Store b/ios/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fe7861173588fcc9152806bfa7a54f869bc7a5a3 GIT binary patch literal 6148 zcmeHKu};H44E2Q$K`a#$6S^-z^bbN6et`Y}w5g~{!bL?DjG6fW78d@2Z(wHUPuO@q zpF*M(kuo5J?8^5pK06n`i{hGy%y^xRh=xQILm8u83>$>kSvwL13ojafk2$UAi0)`c zuH&tSzsP_b{u!<58o%cGWwtmukvklO{`(|J3$Xwf&WnP2fx=hth`!hPnrZEQQw zW6o1W8Bhk4fo&N;&1Q-B1a(vflmTU+W`MsB7Rs0etOWh11A}h?fCHGlV9vb+$Jl^L zz)BD+5F?>L2{oa`FcJ>C4Sq?$N>IYdgyzG9olWRajNcvix89vhBB-M>pbWGb*pbU2 z*Z-YoX^*7WS(I>kv$QDTXhX;sdA`*ey?h UNx(`F7Kr{4@HFV44E!nsAJM&W*8l(j literal 0 HcmV?d00001 diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..7c56964 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 12.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..ec97fc6 --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..c4855bf --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 0000000..d97f17e --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,44 @@ +# Uncomment this line to define a global platform for your project +# platform :ios, '12.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..29d458b --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,614 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807E294A63A400263BE5 /* Frameworks */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = 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_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_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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 = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.dateapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AE0B7B92F70575B8D7E0D07E /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.dateapp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89B67EB44CE7B6631473024E /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.dateapp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 640959BDD8F10B91D80A66BE /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.dateapp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = 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_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_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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 = 12.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = 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_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_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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 = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.dateapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.dateapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..87131a0 --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..70693e4 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..797d452e458972bab9d994556c8305db4c827017 GIT binary patch literal 406 zcmV;H0crk;P))>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed2d933e1120817fe9182483a228007b18ab6ae GIT binary patch literal 450 zcmV;z0X_bSP)iGWQ_5NJQ_~rNh*z)}eT%KUb z`7gNk0#AwF^#0T0?hIa^`~Ck;!}#m+_uT050aTR(J!bU#|IzRL%^UsMS#KsYnTF*!YeDOytlP4VhV?b} z%rz_<=#CPc)tU1MZTq~*2=8~iZ!lSa<{9b@2Jl;?IEV8)=fG217*|@)CCYgFze-x? zIFODUIA>nWKpE+bn~n7;-89sa>#DR>TSlqWk*!2hSN6D~Qb#VqbP~4Fk&m`@1$JGr zXPIdeRE&b2Thd#{MtDK$px*d3-Wx``>!oimf%|A-&-q*6KAH)e$3|6JV%HX{Hig)k suLT-RhftRq8b9;(V=235Wa|I=027H2wCDra;{X5v07*qoM6N<$f;9x^2LJ#7 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd7b0099ca80c806f8fe495613e8d6c69460d76 GIT binary patch literal 282 zcmV+#0p(^bcu7P-R4C8Q z&e;xxFbF_Vrezo%_kH*OKhshZ6BFpG-Y1e10`QXJKbND7AMQ&cMj60B5TNObaZxYybcN07*qoM6N<$g3m;S%K!iX literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fe730945a01f64a61e2235dbe3f45b08f7729182 GIT binary patch literal 462 zcmV;<0WtoGP)-}iV`2<;=$?g5M=KQbZ{F&YRNy7Nn@%_*5{gvDM0aKI4?ESmw z{NnZg)A0R`+4?NF_RZexyVB&^^ZvN!{I28tr{Vje;QNTz`dG&Jz0~Ek&f2;*Z7>B|cg}xYpxEFY+0YrKLF;^Q+-HreN0P{&i zK~zY`?b7ECf-n?@;d<&orQ*Q7KoR%4|C>{W^h6@&01>0SKS`dn{Q}GT%Qj_{PLZ_& zs`MFI#j-(>?bvdZ!8^xTwlY{qA)T4QLbY@j(!YJ7aXJervHy6HaG_2SB`6CC{He}f zHVw(fJWApwPq!6VY7r1w-Fs)@ox~N+q|w~e;JI~C4Vf^@d>Wvj=fl`^u9x9wd9 zR%3*Q+)t%S!MU_`id^@&Y{y7-r98lZX0?YrHlfmwb?#}^1b{8g&KzmkE(L>Z&)179 zp<)v6Y}pRl100G2FL_t(o!|l{-Q-VMg#&MKg7c{O0 z2wJImOS3Gy*Z2Qifdv~JYOp;v+U)a|nLoc7hNH;I$;lzDt$}rkaFw1mYK5_0Q(Sut zvbEloxON7$+HSOgC9Z8ltuC&0OSF!-mXv5caV>#bc3@hBPX@I$58-z}(ZZE!t-aOG zpjNkbau@>yEzH(5Yj4kZiMH32XI!4~gVXNnjAvRx;Sdg^`>2DpUEwoMhTs_st8pKG z(%SHyHdU&v%f36~uERh!bd`!T2dw;z6PrOTQ7Vt*#9F2uHlUVnb#ev_o^fh}Dzmq} zWtlk35}k=?xj28uO|5>>$yXadTUE@@IPpgH`gJ~Ro4>jd1IF|(+IX>8M4Ps{PNvmI zNj4D+XgN83gPt_Gm}`Ybv{;+&yu-C(Grdiahmo~BjG-l&mWM+{e5M1sm&=xduwgM9 z`8OEh`=F3r`^E{n_;%9weN{cf2%7=VzC@cYj+lg>+3|D|_1C@{hcU(DyQG_BvBWe? zvTv``=%b1zrol#=R`JB)>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..502f463a9bc882b461c96aadf492d1729e49e725 GIT binary patch literal 586 zcmV-Q0=4~#P)+}#`wDE{8-2Mebf5<{{PqV{TgVcv*r8?UZ3{-|G?_}T*&y;@cqf{ z{Q*~+qr%%p!1pS*_Uicl#q9lc(D`!D`LN62sNwq{oYw(Wmhk)k<@f$!$@ng~_5)Ru z0Z)trIA5^j{DIW^c+vT2%lW+2<(RtE2wR;4O@)Tm`Xr*?A(qYoM}7i5Yxw>D(&6ou zxz!_Xr~yNF+waPe00049Nkl*;a!v6h%{rlvIH#gW3s8p;bFr=l}mRqpW2h zw=OA%hdyL~z+UHOzl0eKhEr$YYOL-c-%Y<)=j?(bzDweB7{b+%_ypvm_cG{SvM=DK zhv{K@m>#Bw>2W$eUI#iU)Wdgs8Y3U+A$Gd&{+j)d)BmGKx+43U_!tik_YlN)>$7G! zhkE!s;%oku3;IwG3U^2kw?z+HM)jB{@zFhK8P#KMSytSthr+4!c(5c%+^UBn`0X*2 zy3(k600_CSZj?O$Qu%&$;|TGUJrptR(HzyIx>5E(2r{eA(<6t3e3I0B)7d6s7?Z5J zZ!rtKvA{MiEBm&KFtoifx>5P^Z=vl)95XJn()aS5%ad(s?4-=Tkis9IGu{`Fy8r+H07*qoM6N<$f20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0ec303439225b78712f49115768196d8d76f6790 GIT binary patch literal 862 zcmV-k1EKthP)20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e9f5fea27c705180eb716271f41b582e76dcbd90 GIT binary patch literal 1674 zcmV;526g#~P){YQnis^a@{&-nmRmq)<&%Mztj67_#M}W?l>kYSliK<%xAp;0j{!}J0!o7b zE>q9${Lb$D&h7k=+4=!ek^n+`0zq>LL1O?lVyea53S5x`Nqqo2YyeuIrQrJj9XjOp z{;T5qbj3}&1vg1VK~#9!?b~^C5-}JC@Pyrv-6dSEqJqT}#j9#dJ@GzT@B8}x zU&J@bBI>f6w6en+CeI)3^kC*U?}X%OD8$Fd$H&LV$H&LV$H&LV#|K5~mLYf|VqzOc zkc7qL~0sOYuM{tG`rYEDV{DWY`Z8&)kW*hc2VkBuY+^Yx&92j&StN}Wp=LD zxoGxXw6f&8sB^u})h@b@z0RBeD`K7RMR9deyL(ZJu#39Z>rT)^>v}Khq8U-IbIvT> z?4pV9qGj=2)TNH3d)=De<+^w;>S7m_eFKTvzeaBeir45xY!^m!FmxnljbSS_3o=g( z->^wC9%qkR{kbGnW8MfFew_o9h3(r55Is`L$8KI@d+*%{=Nx+FXJ98L0PjFIu;rGnnfY zn1R5Qnp<{Jq0M1vX=X&F8gtLmcWv$1*M@4ZfF^9``()#hGTeKeP`1!iED ztNE(TN}M5}3Bbc*d=FIv`DNv&@|C6yYj{sSqUj5oo$#*0$7pu|Dd2TLI>t5%I zIa4Dvr(iayb+5x=j*Vum9&irk)xV1`t509lnPO0%skL8_1c#Xbamh(2@f?4yUI zhhuT5<#8RJhGz4%b$`PJwKPAudsm|at?u;*hGgnA zU1;9gnxVBC)wA(BsB`AW54N{|qmikJR*%x0c`{LGsSfa|NK61pYH(r-UQ4_JXd!Rsz)=k zL{GMc5{h138)fF5CzHEDM>+FqY)$pdN3}Ml+riTgJOLN0F*Vh?{9ESR{SVVg>*>=# zix;VJHPtvFFCRY$Ks*F;VX~%*r9F)W`PmPE9F!(&s#x07n2<}?S{(ygpXgX-&B&OM zONY&BRQ(#%0%jeQs?oJ4P!p*R98>qCy5p8w>_gpuh39NcOlp)(wOoz0sY-Qz55eB~ z7OC-fKBaD1sE3$l-6QgBJO!n?QOTza`!S_YK z_v-lm^7{VO^8Q@M_^8F)09Ki6%=s?2_5eupee(w1FB%aqSweusQ-T+CH0Xt{` zFjMvW{@C&TB)k25()nh~_yJ9coBRL(0oO@HK~z}7?bm5j;y@69;bvlHb2tf!$ReA~x{22wTq550 z?f?Hnw(;m3ip30;QzdV~7pi!wyMYhDtXW#cO7T>|f=bdFhu+F!zMZ2UFj;GUKX7tI z;hv3{q~!*pMj75WP_c}>6)IWvg5_yyg<9Op()eD1hWC19M@?_9_MHec{Z8n3FaF{8 z;u`Mw0ly(uE>*CgQYv{be6ab2LWhlaH1^iLIM{olnag$78^Fd}%dR7;JECQ+hmk|o z!u2&!3MqPfP5ChDSkFSH8F2WVOEf0(E_M(JL17G}Y+fg0_IuW%WQ zG(mG&u?|->YSdk0;8rc{yw2@2Z&GA}z{Wb91Ooz9VhA{b2DYE7RmG zjL}?eq#iX%3#k;JWMx_{^2nNax`xPhByFiDX+a7uTGU|otOvIAUy|dEKkXOm-`aWS z27pUzD{a)Ct<6p{{3)+lq@i`t@%>-wT4r?*S}k)58e09WZYP0{{R3FC5Sl00039P)t-s|Ns9~ z#rP?<_5oL$Q^olD{r_0T`27C={r>*`|Nj71npVa5OTzc(_WfbW_({R{p56NV{r*M2 z_xt?)2V0#0NsfV0u>{42ctGP(8vQj-Btk1n|O0ZD=YLwd&R{Ko41Gr9H= zY@z@@bOAMB5Ltl$E>bJJ{>JP30ZxkmI%?eW{k`b?Wy<&gOo;dS`~CR$Vwb@XWtR|N zi~t=w02?-0&j0TD{>bb6sNwsK*!p?V`RMQUl(*DVjk-9Cx+-z1KXab|Ka2oXhX5f% z`$|e!000AhNklrxs)5QTeTVRiEmz~MKK1WAjCw(c-JK6eox;2O)?`? zTG`AHia671e^vgmp!llKp|=5sVHk#C7=~epA~VAf-~%aPC=%Qw01h8mnSZ|p?hz91 z7p83F3%LVu9;S$tSI$C^%^yud1dfTM_6p2|+5Ejp$bd`GDvbR|xit>i!ZD&F>@CJrPmu*UjD&?DfZs=$@e3FQA(vNiU+$A*%a} z?`XcG2jDxJ_ZQ#Md`H{4Lpf6QBDp81_KWZ6Tk#yCy1)32zO#3<7>b`eT7UyYH1eGz z;O(rH$=QR*L%%ZcBpc=eGua?N55nD^K(8<#gl2+pN_j~b2MHs4#mcLmv%DkspS-3< zpI1F=^9siI0s-;IN_IrA;5xm~3?3!StX}pUv0vkxMaqm+zxrg7X7(I&*N~&dEd0kD z-FRV|g=|QuUsuh>-xCI}vD2imzYIOIdcCVV=$Bz@*u0+Bs<|L^)32nN*=wu3n%Ynw z@1|eLG>!8ruU1pFXUfb`j>(=Gy~?Rn4QJ-c3%3T|(Frd!bI`9u&zAnyFYTqlG#&J7 zAkD(jpw|oZLNiA>;>hgp1KX7-wxC~31II47gc zHcehD6Uxlf%+M^^uN5Wc*G%^;>D5qT{>=uxUhX%WJu^Z*(_Wq9y}npFO{Hhb>s6<9 zNi0pHXWFaVZnb)1+RS&F)xOv6&aeILcI)`k#0YE+?e)5&#r7J#c`3Z7x!LpTc01dx zrdC3{Z;joZ^KN&))zB_i)I9fWedoN>Zl-6_Iz+^G&*ak2jpF07*qoM6N<$f;w%0(f|Me literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0467bf12aa4d28f374bb26596605a46dcbb3e7c8 GIT binary patch literal 1418 zcmV;51$Fv~P)q zKfU)WzW*n(@|xWGCA9ScMt*e9`2kdxPQ&&>|-UCa7_51w+ zLUsW@ZzZSW0y$)Hp~e9%PvP|a03ks1`~K?q{u;6NC8*{AOqIUq{CL&;p56Lf$oQGq z^={4hPQv)y=I|4n+?>7Fim=dxt1 z2H+Dm+1+fh+IF>G0SjJMkQQre1x4|G*Z==(Ot&kCnUrL4I(rf(ucITwmuHf^hXiJT zkdTm&kdTm&kdTm&kdP`esgWG0BcWCVkVZ&2dUwN`cgM8QJb`Z7Z~e<&Yj2(}>Tmf` zm1{eLgw!b{bXkjWbF%dTkTZEJWyWOb##Lfw4EK2}<0d6%>AGS{po>WCOy&f$Tay_> z?NBlkpo@s-O;0V%Y_Xa-G#_O08q5LR*~F%&)}{}r&L%Sbs8AS4t7Y0NEx*{soY=0MZExqA5XHQkqi#4gW3 zqODM^iyZl;dvf)-bOXtOru(s)Uc7~BFx{w-FK;2{`VA?(g&@3z&bfLFyctOH!cVsF z7IL=fo-qBndRUm;kAdXR4e6>k-z|21AaN%ubeVrHl*<|s&Ax@W-t?LR(P-24A5=>a z*R9#QvjzF8n%@1Nw@?CG@6(%>+-0ASK~jEmCV|&a*7-GKT72W<(TbSjf)&Eme6nGE z>Gkj4Sq&2e+-G%|+NM8OOm5zVl9{Z8Dd8A5z3y8mZ=4Bv4%>as_{9cN#bm~;h>62( zdqY93Zy}v&c4n($Vv!UybR8ocs7#zbfX1IY-*w~)p}XyZ-SFC~4w>BvMVr`dFbelV{lLL0bx7@*ZZdebr3`sP;? zVImji)kG)(6Juv0lz@q`F!k1FE;CQ(D0iG$wchPbKZQELlsZ#~rt8#90Y_Xh&3U-< z{s<&cCV_1`^TD^ia9!*mQDq& zn2{r`j};V|uV%_wsP!zB?m%;FeaRe+X47K0e+KE!8C{gAWF8)lCd1u1%~|M!XNRvw zvtqy3iz0WSpWdhn6$hP8PaRBmp)q`#PCA`Vd#Tc$@f1tAcM>f_I@bC)hkI9|o(Iqv zo}Piadq!j76}004RBio<`)70k^`K1NK)q>w?p^C6J2ZC!+UppiK6&y3Kmbv&O!oYF z34$0Z;QO!JOY#!`qyGH<3Pd}Pt@q*A0V=3SVtWKRR8d8Z&@)3qLPA19LPA19LPEUC YUoZo%k(ykuW&i*H07*qoM6N<$f+CH{y8r+H literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..43bf478 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Dateapp + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + dateapp + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/lib/.DS_Store b/lib/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..4a4c1aa5db26cc58c2c70ddafd47ecb2d9a12c7e GIT binary patch literal 6148 zcmeHKO-sW-5Pho^3SN5jxc?w{^B8KpiI<{hTarV;+R`M5xBPV9d?>BvELCR8&YPXD zY#wws3n0z=`Wl!4m~sdvF-An(qoFfT7EIcs-F2(`zU}rSZBElAYrjB`4r{#NaQ!z} z;2kX^4K^t7ge^0A+6}!0Dl8dW(t6~)!Ct*@?DI;iX7)zyt>@p;Q`0V}rLv*k@mH|x z8Y|-Wl{`3;2kSdc5@S`tKrj#t1OtDH0iM|+(@Vq9!9Xw&416&l`$OgsEFA|!-8!iB z3P7CDtwLMw5>k^LOUJ>G5lXUBqLn7UVk9f4KYL#3I2c+vl0KPz{K=n}m!wapKWjQt zX&5>f2nLQBIJfCc&i_09WkxUg$0acf27-Zq#z2}>i)zl7^0W2F>&aQ0Ii5L0BySLd mLi^|=fD_qAt~6-zEH?8>$H7p#h+oTz@gbmugbD_Jfq@U3@-XKB literal 0 HcmV?d00001 diff --git a/lib/constants/info.dart b/lib/constants/info.dart new file mode 100644 index 0000000..04ae5b1 --- /dev/null +++ b/lib/constants/info.dart @@ -0,0 +1 @@ +const String versionString = "0.0.6"; \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..a3e333f --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,140 @@ +import 'package:dynamic_color/dynamic_color.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_adaptive_scaffold/flutter_adaptive_scaffold.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; + +import 'pages/calendar.dart'; +import 'pages/day.dart'; +import 'pages/settings.dart'; + +import 'utils/scroll.dart'; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + const Color fallbackColorSchemeSeed = Colors.blue; + + return DynamicColorBuilder( + builder: (ColorScheme? lightDynamic, ColorScheme? darkDynamic) { + ColorScheme lightColorScheme; + ColorScheme darkColorScheme; + + if (lightDynamic != null && darkDynamic != null) { + lightColorScheme = lightDynamic.harmonized(); + darkColorScheme = darkDynamic.harmonized(); + } else { + lightColorScheme = ColorScheme.fromSeed( + seedColor: fallbackColorSchemeSeed, + ); + darkColorScheme = ColorScheme.fromSeed( + seedColor: fallbackColorSchemeSeed, + brightness: Brightness.dark, + ); + } + + ThemeData lightTheme = ThemeData( + colorScheme: lightColorScheme, + useMaterial3: true, + navigationRailTheme: NavigationRailThemeData( + backgroundColor: Colors.black.withOpacity(0.03)), + ); + + ThemeData darkTheme = ThemeData( + brightness: Brightness.dark, + colorScheme: darkColorScheme, + useMaterial3: true, + navigationRailTheme: NavigationRailThemeData( + backgroundColor: Colors.white.withOpacity(0.03)), + ); + + return MaterialApp( + scrollBehavior: CustomScrollBehavior(), + themeMode: ThemeMode.system, + theme: lightTheme, + darkTheme: darkTheme, + localizationsDelegates: const [ + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + supportedLocales: const [ + Locale('en', 'GB'), // English, UK + Locale('ar', 'AE'), // Arabic, UAE + Locale('en', 'IN'), // English, India + ], + home: const MyHomePage(), + ); + }); + } +} + +class MyHomePage extends StatefulWidget { + /// Creates a const [MyHomePage]. + const MyHomePage({super.key}); + + @override + State createState() => _MyHomePageState(); +} + +class _MyHomePageState extends State { + int _selectedTab = 0; + + @override + Widget build(BuildContext context) { + return AdaptiveScaffold( + smallBreakpoint: const WidthPlatformBreakpoint(end: 700), + mediumBreakpoint: const WidthPlatformBreakpoint(begin: 700, end: 1000), + largeBreakpoint: const WidthPlatformBreakpoint(begin: 1000), + useDrawer: false, + selectedIndex: _selectedTab, + onSelectedIndexChange: (int index) { + setState(() { + _selectedTab = index; + }); + }, + destinations: const [ + NavigationDestination( + icon: Icon(Icons.calendar_month_outlined), + selectedIcon: Icon(Icons.calendar_month), + label: 'Calendar', + ), + NavigationDestination( + icon: Icon(Icons.calendar_today_outlined), + selectedIcon: Icon(Icons.calendar_today), + label: 'Day', + ), + NavigationDestination( + icon: Icon(Icons.settings_outlined), + selectedIcon: Icon(Icons.settings), + label: 'Settings', + ), + ], + body: (_) => _getScreen(context, _selectedTab), + smallBody: (_) => _getScreen(context, _selectedTab), + // Define a default secondaryBody. + // Override the default secondaryBody during the smallBreakpoint to be + // empty. Must use AdaptiveScaffold.emptyBuilder to ensure it is properly + // overridden. + smallSecondaryBody: AdaptiveScaffold.emptyBuilder, + ); + } +} + +Widget _getScreen(BuildContext context, int index) { + switch (index) { + case 0: + return const CalendarScreen(); + case 1: + return const DayScreen(); + case 2: + return const SettingsScreen(); + default: + return const Text('Something went wrong'); + } +} diff --git a/lib/pages/calendar.dart b/lib/pages/calendar.dart new file mode 100644 index 0000000..c0ac9c4 --- /dev/null +++ b/lib/pages/calendar.dart @@ -0,0 +1,108 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import '../utils/gregorian_date.dart'; + +class CalendarScreen extends StatefulWidget { + const CalendarScreen({Key? key}) : super(key: key); + + @override + State createState() => _CalendarScreenState(); +} + +class _CalendarScreenState extends State { + DateTimeRange? _selectedDateRange; + + @override + Widget build(BuildContext context) { + void showRangeDialog() async { + final DateTimeRange? result = await showDateRangePicker( + context: context, + firstDate: DateTime(0, 1, 1), + lastDate: DateTime(3000, 12, 31), + locale: const Locale('en', 'GB'), + currentDate: DateTime.now(), + saveText: 'Done', + ); + + if (result != null) { + setState(() { + _selectedDateRange = result; + }); + } + } + + final startDate = _selectedDateRange?.start ?? DateTime(2020, 1, 1); + final endDate = _selectedDateRange?.end ?? DateTime(2022, 1, 1); + + int diffD = GregorianDate.differenceInDays(startDate, endDate); + + List diffYMD = GregorianDate.differenceInYearsMonthsDays(diffD); + + dynamic startDateString = + DateFormat("dd MMM yyyy").format(startDate).toString(); + dynamic endDateString = + DateFormat("dd MMM yyyy").format(endDate).toString(); + + return Scaffold( + appBar: AppBar( + title: const Text("Calendar Calculator"), + elevation: 4, + shadowColor: Theme.of(context).shadowColor, + ), + body: _selectedDateRange == null + ? const Padding( + padding: EdgeInsets.all(30), + child: Center( + child: + Text('Select the date range by using the calendar button'), + ), + ) + : Padding( + padding: const EdgeInsets.all(30), + child: Center( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text("Dates", + style: TextStyle( + fontSize: 30, fontWeight: FontWeight.bold)), + const Text("Start Date", style: TextStyle(fontSize: 14)), + const SizedBox(height: 5), + Text( + startDateString, + style: const TextStyle( + fontSize: 22, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 10), + const Text("End Date", style: TextStyle(fontSize: 14)), + const SizedBox(height: 5), + Text(endDateString, + style: const TextStyle( + fontSize: 22, fontWeight: FontWeight.bold)), + const SizedBox(height: 20), + const Text("Difference", + style: TextStyle( + fontSize: 30, fontWeight: FontWeight.bold)), + const Text("Date Range", style: TextStyle(fontSize: 14)), + Text( + "${diffYMD[3]} days \n${diffYMD[2]} weeks \n${diffYMD[1]} months\n${diffYMD[0]} years", + style: const TextStyle( + fontSize: 24, fontWeight: FontWeight.bold)), + const SizedBox(height: 10), + const Text("Date Range in days", + style: TextStyle(fontSize: 14)), + Text("$diffD days", + style: const TextStyle( + fontSize: 24, fontWeight: FontWeight.bold)), + ], + ), + ), + ), + // This button is used to show the date range picker + floatingActionButton: FloatingActionButton( + onPressed: showRangeDialog, + child: const Icon(Icons.date_range), + ), + ); + } +} diff --git a/lib/pages/day.dart b/lib/pages/day.dart new file mode 100644 index 0000000..e7a5c4e --- /dev/null +++ b/lib/pages/day.dart @@ -0,0 +1,114 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import '../utils/gregorian_date.dart'; + +class DayScreen extends StatefulWidget { + const DayScreen({Key? key}) : super(key: key); + + @override + State createState() => _DayScreenState(); +} + +class _DayScreenState extends State { + DateTime? _selectedDate; + dynamic period; + + @override + Widget build(BuildContext context) { + void showDateDialog() async { + final DateTime? pickedDate = await showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime(1970), + lastDate: DateTime(2100), + locale: const Locale("en", "GB"), + ); + + if (pickedDate != null) { + setState(() { + _selectedDate = pickedDate; + }); + } + } + + final pickedDate = _selectedDate ?? DateTime.now(); + // List diffYMD = GregorianDate.differenceInYearsMonthsDays(DateTime.now(), pickedDate); + int diffD = GregorianDate.differenceInDays(DateTime.now(), pickedDate); + List diffYMD = GregorianDate.differenceInYearsMonthsDays(diffD); + + if (pickedDate.isBefore(DateTime.now())) { + period = "in the past"; + } else { + period = "to the future"; + } + + dynamic pickedDateString = + DateFormat("EEEE, d MMM yyyy").format(pickedDate).toString(); + dynamic todayString = + DateFormat("EEEE, d MMM yyyy").format(DateTime.now()).toString(); + + return Scaffold( + appBar: AppBar( + title: const Text("Day Calculator"), + elevation: 4, + shadowColor: Theme.of(context).shadowColor, + ), + body: _selectedDate == null + ? const Padding( + padding: EdgeInsets.all(30), + child: Center( + child: Text('Select the date by using the date picker button'), + ), + ) + : Padding( + padding: const EdgeInsets.all(30), + child: Center( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text("Dates", + style: TextStyle( + fontSize: 30, fontWeight: FontWeight.bold)), + const Text("Chosen Date", style: TextStyle(fontSize: 14)), + Text( + pickedDateString, + style: const TextStyle( + fontSize: 22, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 5), + const Text("Today", style: TextStyle(fontSize: 14)), + Text( + todayString, + style: const TextStyle( + fontSize: 22, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 20), + const Text("Difference", + style: TextStyle( + fontSize: 30, fontWeight: FontWeight.bold)), + Text(pickedDateString, + style: const TextStyle(fontSize: 14)), + Text( + "${diffYMD[3]} days \n${diffYMD[2]} weeks \n${diffYMD[1]} months\n${diffYMD[0]} years", + style: const TextStyle( + fontSize: 24, fontWeight: FontWeight.bold)), + Text(period, style: const TextStyle(fontSize: 14)), + const SizedBox( + height: 20, + ), + const Text("Or in total is", + style: TextStyle(fontSize: 14)), + Text("$diffD days $period", + style: const TextStyle( + fontSize: 24, fontWeight: FontWeight.bold)), + ], + ), + )), + // This button is used to show the date range picker + floatingActionButton: FloatingActionButton( + onPressed: showDateDialog, + child: const Icon(Icons.today), + ), + ); + } +} diff --git a/lib/pages/settings.dart b/lib/pages/settings.dart new file mode 100644 index 0000000..712670b --- /dev/null +++ b/lib/pages/settings.dart @@ -0,0 +1,154 @@ +import 'package:flutter/material.dart'; +import '../widgets/license.dart'; +import '../constants/info.dart'; + +class SettingsScreen extends StatelessWidget { + const SettingsScreen({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return const Scaffold( + body: _Body(), + ); + } +} + +class _Body extends StatelessWidget { + const _Body(); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text("Settings"), + elevation: 4, + shadowColor: Theme.of(context).shadowColor, + ), + body: Column( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.all(16), + child: ListView.separated( + itemBuilder: (context, index) => const _ListItem(), + separatorBuilder: (context, index) => const SizedBox( + height: 20, + ), + itemCount: 1, + ), + ), + ) + ], + ), + ); + } +} + +class _ListItem extends StatelessWidget { + const _ListItem(); + + @override + Widget build(BuildContext context) { + return DecoratedBox( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + ), + child: Column( + children: [ + Card( + elevation: 4.0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0)), + margin: const EdgeInsets.all(8.0), + child: InkWell( + onTap: () => _dialogBuilder(context), + borderRadius: BorderRadius.circular(10.0), + child: const ListTile( + leading: Icon(Icons.info_outlined), + title: Text("About"), + ), + )) + ], + ), + ); + } +} + +class _PageButton extends StatelessWidget { + const _PageButton(); + + @override + Widget build(BuildContext context) { + return SafeArea( + child: Padding( + padding: const EdgeInsets.fromLTRB(16, 0, 16, 16), + child: ElevatedButton( + onPressed: () {}, + child: const Text("Some Button"), + ), + ), + ); + } +} + +Future _dialogBuilder(BuildContext context) { + return showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: Row( + children: [ + Container( + width: 80, + height: 80, + decoration: const BoxDecoration( + image: DecorationImage( + alignment: Alignment.centerLeft, + image: ExactAssetImage('assets/app_icons/icon.png') + ) + ), + ), + Container( + child: const Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("Date Calculator"), + Text( + "v$versionString", + style: TextStyle( + fontSize: 14 + ) + ), + ], + ), + ) + ] + ), + content: const Text( + 'Date Calculator by WinsDominoes and AtiusAmy' + ), + actions: [ + TextButton( + style: TextButton.styleFrom( + textStyle: Theme.of(context).textTheme.labelLarge, + ), + child: const Text('View Licenses'), + onPressed: () { + Navigator.push(context, MaterialPageRoute(builder: (context) => LicensePageCustom())); + }, + ), + TextButton( + style: TextButton.styleFrom( + textStyle: Theme.of(context).textTheme.labelLarge, + ), + child: const Text('Close'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + ], + ); + }, + ); +} + diff --git a/lib/utils/gregorian_date.dart b/lib/utils/gregorian_date.dart new file mode 100644 index 0000000..c8352b2 --- /dev/null +++ b/lib/utils/gregorian_date.dart @@ -0,0 +1,48 @@ +class GregorianDate { + static bool leapYear(DateTime date) { + if(date.year%4 == 0) { + if(date.year%100 == 0){ + return date.year%400 == 0; + } + return true; + } + return false; + } + + static List differenceInYearsMonthsDays(int totalDays) { + // Define constants + const int daysInYear = 365; + const int daysInLeapYear = 366; + final List daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + + int years = totalDays ~/ daysInYear; + int remainingDays = totalDays % daysInYear; + + int daysInCurrentYear = (years % 4 == 0 && (years % 100 != 0 || years % 400 == 0)) + ? daysInLeapYear + : daysInYear; + + int months = 0; + for (int i = 0; i < daysInMonth.length; i++) { + if (remainingDays < daysInMonth[i]) { + months = i; + break; + } + remainingDays -= daysInMonth[i]; + } + + int weeks = remainingDays ~/ 7; + remainingDays %= 7; + + return [years, months, weeks, remainingDays]; + } + + static int differenceInDays(DateTime dt1, DateTime dt2) { + if(dt1.isAfter(dt2)) { + DateTime temp = dt1; + dt1 = dt2; + dt2 = temp; + } + return dt2.difference(dt1).inDays; + } +} \ No newline at end of file diff --git a/lib/utils/scroll.dart b/lib/utils/scroll.dart new file mode 100644 index 0000000..3b79e57 --- /dev/null +++ b/lib/utils/scroll.dart @@ -0,0 +1,11 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/gestures.dart'; + +class CustomScrollBehavior extends MaterialScrollBehavior { + @override + Set get dragDevices => { + PointerDeviceKind.touch, + PointerDeviceKind.mouse, + PointerDeviceKind.trackpad + }; +} diff --git a/lib/widgets/license.dart b/lib/widgets/license.dart new file mode 100644 index 0000000..457ff71 --- /dev/null +++ b/lib/widgets/license.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; +import '../constants/info.dart'; + +class LicensePageCustom extends StatefulWidget { + @override + _LicensePageCustomState createState() => _LicensePageCustomState(); +} + +class _LicensePageCustomState extends State { + @override + Widget build(BuildContext context) { + return Container( + child: LicensePage( + applicationName: "Date Calculator", + applicationVersion: "v$versionString", + applicationIcon: Padding( + padding: const EdgeInsets.all(8.0), + child: Container( + width: 80, + height: 80, + decoration: const BoxDecoration( + image: DecorationImage( + alignment: Alignment.centerLeft, + image: ExactAssetImage('assets/app_icons/icon.png') + ) + ), + ) + ), + ), + ); + } +} \ No newline at end of file diff --git a/linux/.gitignore b/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt new file mode 100644 index 0000000..7915bb6 --- /dev/null +++ b/linux/CMakeLists.txt @@ -0,0 +1,145 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.10) +project(runner LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "dateapp") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.dateapp") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Define the application target. To change its name, change BINARY_NAME above, +# not the value here, or `flutter run` will no longer work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/linux/flutter/CMakeLists.txt b/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..d5bd016 --- /dev/null +++ b/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..675b719 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include + +void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) dynamic_color_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "DynamicColorPlugin"); + dynamic_color_plugin_register_with_registrar(dynamic_color_registrar); +} diff --git a/linux/flutter/generated_plugin_registrant.h b/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..3e303c1 --- /dev/null +++ b/linux/flutter/generated_plugins.cmake @@ -0,0 +1,24 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + dynamic_color +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/linux/main.cc b/linux/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/linux/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/linux/my_application.cc b/linux/my_application.cc new file mode 100644 index 0000000..1877bc7 --- /dev/null +++ b/linux/my_application.cc @@ -0,0 +1,111 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "Date Calculator"); + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "Date Calculator"); + } + + gtk_window_set_default_size(window, 1280, 720); + gtk_widget_show(GTK_WIDGET(window)); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + + g_autoptr(GError) error = nullptr; + gtk_window_set_icon_from_file(window, g_strconcat(fl_dart_project_get_assets_path(project), "/assets/app_icons/icon.png", NULL), &error); + if (error != nullptr) { + g_warning("Failed to set icon: %s", error->message); + } + + fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/linux/my_application.h b/linux/my_application.h new file mode 100644 index 0000000..72271d5 --- /dev/null +++ b/linux/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/linux/net.winscloud.DateCalculator.appdata.xml b/linux/net.winscloud.DateCalculator.appdata.xml new file mode 100644 index 0000000..6df51d6 --- /dev/null +++ b/linux/net.winscloud.DateCalculator.appdata.xml @@ -0,0 +1,52 @@ + + + net.winscloud.DateCalculator + + Date Calculator + The go-to minimal date calculator + https://datecalculator.winscloud.net + https://github.com/WinsDominoes/dateapp/issues + + MIT + LGPL-2.1 + Win and Amy + + + pointing + keyboard + touch + + + +

+ Date Calculator is an app to calculate differences between dates. +

+
    +
  • Simple to use!
  • +
  • Fast and responsive.
  • +
  • Calculate differences between dates, with months, years, and weeks given.
  • +
  • Find which day is a certain amount of dates away.
  • +
  • Compatible with dynamic color themes.
  • +
  • Open Source and ad-free.
  • +
+

+

+
+ + net.winscloud.DateCalculator.desktop + + + Calculate date differences from a click of a button! + https://raw.githubusercontent.com/AtiusAmy/atiusamy.github.io/master/images/2020-07-12_17.29.36.png + + + + + + + + + + + +
diff --git a/linux/net.winscloud.DateCalculator.desktop b/linux/net.winscloud.DateCalculator.desktop new file mode 100644 index 0000000..703dbc2 --- /dev/null +++ b/linux/net.winscloud.DateCalculator.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Date Calculator +Comment=The go-to minimal date calculator +Exec=/app/bin/dateapp %U +Icon=net.winscloud.DateCalculator +Terminal=false +Type=Application +Categories=Utility; +Keywords=Dates,Tools; +StartupNotify=false \ No newline at end of file diff --git a/macos/.DS_Store b/macos/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..07333b70112bdb88f9f4469f9a3428655b0cf6c4 GIT binary patch literal 6148 zcmeHKK~BR!4D^;Bg1AJSIH7$3QhyMtAnx?U4cb&7Xh>94!7(4;54-{1z!e_AXBe-o zkSIl@91ucw<(-Y!&c?G*ToaKSud)$QOhgfsaj=bHjqo~aM+R!)MHlWdrzIWGJ7tmzH#$Cjf7^e4 zIqVmg{V1-yY(C>7wxZoN&v=J?mUKAanrd+i(7%rDC7{Ce$~7oRz98r#m( zbDk!~fH7bUY{~#?HcPZ4XrnP;3>X771N?pPP{u^D5)7XX450-84q*<0IrkDA;}sLd zN)Rg$C!s(Ib=qP$35VUQU!qtEN;o-fKAi6Cv_o-Wcii6xcXElKjmCg6&}LvuE@Q6$ zM_>2 :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/macos/Podfile.lock b/macos/Podfile.lock new file mode 100644 index 0000000..fd54325 --- /dev/null +++ b/macos/Podfile.lock @@ -0,0 +1,22 @@ +PODS: + - dynamic_color (0.0.2): + - FlutterMacOS + - FlutterMacOS (1.0.0) + +DEPENDENCIES: + - dynamic_color (from `Flutter/ephemeral/.symlinks/plugins/dynamic_color/macos`) + - FlutterMacOS (from `Flutter/ephemeral`) + +EXTERNAL SOURCES: + dynamic_color: + :path: Flutter/ephemeral/.symlinks/plugins/dynamic_color/macos + FlutterMacOS: + :path: Flutter/ephemeral + +SPEC CHECKSUMS: + dynamic_color: 2eaa27267de1ca20d879fbd6e01259773fb1670f + FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 + +PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367 + +COCOAPODS: 1.14.3 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..3a318ca --- /dev/null +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,791 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + EEB77D033FE55DD90BF1E79F /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 534768BD233F7C20AD7FE486 /* Pods_Runner.framework */; }; + F83360A232896101496C1EC1 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42685C806829F8743C3A2A3F /* Pods_RunnerTests.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC10EC2044A3C60003C045; + remoteInfo = Runner; + }; + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1ADC3F09CC0251C7101E1EF7 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 207E70FBA0AA76A481CA1091 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* dateapp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dateapp.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 3874610F4984EC658F826AB7 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 42685C806829F8743C3A2A3F /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 534768BD233F7C20AD7FE486 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5CB75BADF2A5F7F1D618649F /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + F240AA7EBC4D2472F1A71F62 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + FD089F23364711EA5E889301 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F83360A232896101496C1EC1 /* Pods_RunnerTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + EEB77D033FE55DD90BF1E79F /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2DF82744E86E337D43D70AEC /* Pods */ = { + isa = PBXGroup; + children = ( + 5CB75BADF2A5F7F1D618649F /* Pods-Runner.debug.xcconfig */, + F240AA7EBC4D2472F1A71F62 /* Pods-Runner.release.xcconfig */, + 3874610F4984EC658F826AB7 /* Pods-Runner.profile.xcconfig */, + FD089F23364711EA5E889301 /* Pods-RunnerTests.debug.xcconfig */, + 1ADC3F09CC0251C7101E1EF7 /* Pods-RunnerTests.release.xcconfig */, + 207E70FBA0AA76A481CA1091 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 331C80D6294CF71000263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80D7294CF71000263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 331C80D6294CF71000263BE5 /* RunnerTests */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + 2DF82744E86E337D43D70AEC /* Pods */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* dateapp.app */, + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 534768BD233F7C20AD7FE486 /* Pods_Runner.framework */, + 42685C806829F8743C3A2A3F /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + B4327B74EC7A2D8689651747 /* [CP] Check Pods Manifest.lock */, + 331C80D1294CF70F00263BE5 /* Sources */, + 331C80D2294CF70F00263BE5 /* Frameworks */, + 331C80D3294CF70F00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80DA294CF71000263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 7A6B1A53B6E298252B4E1518 /* [CP] Check Pods Manifest.lock */, + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + 88155B382B446788C0521E88 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* dateapp.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1430; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C80D4294CF70F00263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 33CC10EC2044A3C60003C045; + }; + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 331C80D4294CF70F00263BE5 /* RunnerTests */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C80D3294CF70F00263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; + 7A6B1A53B6E298252B4E1518 /* [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-Runner-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; + }; + 88155B382B446788C0521E88 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + B4327B74EC7A2D8689651747 /* [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-RunnerTests-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 */ + 331C80D1294CF70F00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC10EC2044A3C60003C045 /* Runner */; + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; + }; + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 331C80DB294CF71000263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FD089F23364711EA5E889301 /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.dateapp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/dateapp.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/dateapp"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1ADC3F09CC0251C7101E1EF7 /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.dateapp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/dateapp.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/dateapp"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 207E70FBA0AA76A481CA1091 /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.dateapp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/dateapp.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/dateapp"; + }; + name = Profile; + }; + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + 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_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = 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_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + 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_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + 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_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = 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_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + 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 = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + 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_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = 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_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + 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_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80DB294CF71000263BE5 /* Debug */, + 331C80DC294CF71000263BE5 /* Release */, + 331C80DD294CF71000263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..26afcb1 --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..d53ef64 --- /dev/null +++ b/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@NSApplicationMain +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/.DS_Store b/macos/Runner/Assets.xcassets/AppIcon.appiconset/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e7301363fa4bb32ee7686a81f94baeb72f746303 GIT binary patch literal 6148 zcmeHKK~BR!474GKNL+g4xL@cGmMXlUA1G-hDz#C1;U00}&Rh5bAL0NQW78?Jqp0456nbHO1H5ts%Q7*s7Ih6Ww+ zRO)iUAu#BoelqS;PS!G^sGp8_@^aA}$dw9EflCFhV>`3{e-EFS|1U}0Q2{FOuN2U# zSvCv2Qt7Rum$P1*;4Ap2q1MZ>cq;~aE5^oJ@$Fe%vTNjX!6DG;h&vs~9|6;aMg@LD Ffe#T0DVzWR literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..a2ec33f --- /dev/null +++ b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..d5af01f3eccbca767a3dacfb800e411a0f70cea6 GIT binary patch literal 99606 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 U841HwGz5MJj4h3F4O~M14{M#O`2YX_ literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..835d27272161f8414de8bcf443b59819b915384b GIT binary patch literal 5868 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 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3de27ca751c9b6414bd06283dbf7cc771c7ac7 GIT binary patch literal 15598 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 pbB>uF_5Zf>#zO~I literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png new file mode 100644 index 0000000000000000000000000000000000000000..746f092d00e8643eedad31d3ffae6590debbdb43 GIT binary patch literal 38433 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 t0I*JMu=>z?-6ZWv`Es$@JmE+v + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..8a9ff5a --- /dev/null +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = dateapp + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.dateapp + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2024 com.example. All rights reserved. diff --git a/macos/Runner/Configs/Debug.xcconfig b/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Release.xcconfig b/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Warnings.xcconfig b/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..dddb8a3 --- /dev/null +++ b/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/macos/Runner/Info.plist b/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/macos/Runner/MainFlutterWindow.swift b/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..3cc05eb --- /dev/null +++ b/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements new file mode 100644 index 0000000..852fa1a --- /dev/null +++ b/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/macos/RunnerTests/RunnerTests.swift b/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..5418c9f --- /dev/null +++ b/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import FlutterMacOS +import Cocoa +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..0d2096a --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,110 @@ +name: dateapp +description: "An app to calculate differences between two dates" +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# 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 is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 0.0.6 + +environment: + sdk: '>=3.2.5 <4.0.0' + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + flutter_localizations: # Add this line + sdk: flutter # Add this line + # App dynamic color theme + dynamic_color: ^1.6.8 + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + intl: ^0.18.1 + flutter_native_splash: ^2.2.17 + sidebar_drawer: ^0.0.1+2 + flutter_adaptive_scaffold: ^0.1.7+2 + adaptive_navigation: ^0.0.4 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^3.0.1 + msix: ^3.16.7 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +flutter_native_splash: + # Run code generation: `flutter pub run flutter_native_splash:create` + web: false + color: "#eeeeee" + color_dark: "#333333" + image: assets/app_icons/icon.png + +msix_config: + logo_path: assets\app_icons\icon.png + output_name: dateapp-windows + +# The following section is specific to Flutter packages. +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 assets to your application, add an assets section, like this: + assets: + - assets/app_icons/icon.png + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add 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/custom-fonts/#from-packages diff --git a/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..2f9ddf9f598a9085ab19534bd40a4af6485f7e6f GIT binary patch literal 1037 zcmV+o1oHcdP)zLR6%}m4fQtlWi)Pl@H`VYhp-dh|e;ZYBauiV_Z=BQ$Rn;i#q-*pUsEWD& zpQoeGO#9WtNuc-D^FCuhXdkH8Jn#3^^Xg|n@CCTGTK+Q4Y3`f!T1$%_1Cbrz@}{M! z2f)=XF!F3GTxm!_3Q5<2j|*Th4-DM{{p+WB7S` zifXljyLYxBrNnW!iygu6w3>q?OG@q$o8VW>jS8cn?+@_i^;^^%TRLqOSoiD#yD>w( zFqNjIJYm67CJ~>Mu89l8#nW~ z)u=;KqwUxj4;ef!gF>^Ru{`B+K4R$ig6jloD+?L?ULTeUkSwTN;y6a&2S{i{Ety7B zt?-%x0xX(A#3D_=xxj21D;S}|)FTn5NHqAb1ISGYU8{9t=S+7=B|c@;jXqgV~m&v*`RdF`g~h zd=}5z3&40GAhVt;ZQHhU_35efQ>tSx+l1irFzR>ItE!&A83QEHmc>L900000NkvXX Hu0mjfiSX0= literal 0 HcmV?d00001 diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..1d4fbb3f9013f4f296471349c07ab6909a08cd05 GIT binary patch literal 16122 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 R_kn5kRyY7wKr{{hU!;(P!A literal 0 HcmV?d00001 diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..65f66654cd6f7c9d8dbda79f657be88e65ecf10a GIT binary patch literal 67154 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 bATi*Kxup}7A#2mvKIb=hiZi_rfA0VeA2 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-512.png b/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..05992ff53b880c4ec3c526e00d06d74bbb70f915 GIT binary patch literal 53865 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 A + + + + + + + + + + + + + + + + + + + dateapp + + + + + + + + + + diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..aabb710 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "dateapp", + "short_name": "dateapp", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/windows/.gitignore b/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt new file mode 100644 index 0000000..eacb957 --- /dev/null +++ b/windows/CMakeLists.txt @@ -0,0 +1,108 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(dateapp LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "dateapp") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(VERSION 3.14...3.25) + +# Define build configuration option. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") + endif() +endif() +# Define settings for the Profile build mode. +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/windows/flutter/CMakeLists.txt b/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000..903f489 --- /dev/null +++ b/windows/flutter/CMakeLists.txt @@ -0,0 +1,109 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + ${FLUTTER_TARGET_PLATFORM} $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..e4899a6 --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,14 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include + +void RegisterPlugins(flutter::PluginRegistry* registry) { + DynamicColorPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("DynamicColorPluginCApi")); +} diff --git a/windows/flutter/generated_plugin_registrant.h b/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..dc139d8 --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000..841e8c4 --- /dev/null +++ b/windows/flutter/generated_plugins.cmake @@ -0,0 +1,24 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + dynamic_color +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/windows/packaging/exe/make_config.yaml b/windows/packaging/exe/make_config.yaml new file mode 100644 index 0000000..7dd7d75 --- /dev/null +++ b/windows/packaging/exe/make_config.yaml @@ -0,0 +1,8 @@ +app_id: 6C54ABD7-ABE5-418E-BA52-D1F4E27B3C34 +publisher: Win, Amy +publisher_url: https://github.com/WinsDominoes/dateapp +display_name: "Date Calculator" +create_desktop_icon: true +install_dir_name: "Date Calculator" +locales: + - en \ No newline at end of file diff --git a/windows/runner/CMakeLists.txt b/windows/runner/CMakeLists.txt new file mode 100644 index 0000000..394917c --- /dev/null +++ b/windows/runner/CMakeLists.txt @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + +# Disable Windows macros that collide with C++ standard library functions. +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") + +# Add dependency libraries and include directories. Add any application-specific +# dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc new file mode 100644 index 0000000..315da50 --- /dev/null +++ b/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD +#else +#define VERSION_AS_NUMBER 1,0,0,0 +#endif + +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "com.example" "\0" + VALUE "FileDescription", "dateapp" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "dateapp" "\0" + VALUE "LegalCopyright", "Copyright (C) 2024 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "dateapp.exe" "\0" + VALUE "ProductName", "dateapp" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/windows/runner/flutter_window.cpp b/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..955ee30 --- /dev/null +++ b/windows/runner/flutter_window.cpp @@ -0,0 +1,71 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/windows/runner/flutter_window.h b/windows/runner/flutter_window.h new file mode 100644 index 0000000..6da0652 --- /dev/null +++ b/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp new file mode 100644 index 0000000..4e08a41 --- /dev/null +++ b/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.Create(L"Date Calculator", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/windows/runner/resource.h b/windows/runner/resource.h new file mode 100644 index 0000000..66a65d1 --- /dev/null +++ b/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..84f806dfafd116ee335c4cd03b6201438d95f8b6 GIT binary patch literal 450289 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¥JbaRIb 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 literal 0 HcmV?d00001 diff --git a/windows/runner/runner.exe.manifest b/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..a42ea76 --- /dev/null +++ b/windows/runner/runner.exe.manifest @@ -0,0 +1,20 @@ + + + + + PerMonitorV2 + + + + + + + + + + + + + + + diff --git a/windows/runner/utils.cpp b/windows/runner/utils.cpp new file mode 100644 index 0000000..b2b0873 --- /dev/null +++ b/windows/runner/utils.cpp @@ -0,0 +1,65 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); + std::string utf8_string; + if (target_length <= 0 || target_length > utf8_string.max_size()) { + return utf8_string; + } + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + input_length, utf8_string.data(), target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/windows/runner/utils.h b/windows/runner/utils.h new file mode 100644 index 0000000..3879d54 --- /dev/null +++ b/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/windows/runner/win32_window.cpp b/windows/runner/win32_window.cpp new file mode 100644 index 0000000..60608d0 --- /dev/null +++ b/windows/runner/win32_window.cpp @@ -0,0 +1,288 @@ +#include "win32_window.h" + +#include +#include + +#include "resource.h" + +namespace { + +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + } + FreeLibrary(user32_module); +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registrar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + UpdateTheme(window); + + return OnCreate(); +} + +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/windows/runner/win32_window.h b/windows/runner/win32_window.h new file mode 100644 index 0000000..e901dde --- /dev/null +++ b/windows/runner/win32_window.h @@ -0,0 +1,102 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates a win32 window with |title| that is positioned and sized using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_

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 z 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