├── LICENSE ├── README.md └── datingapp ├── .gitignore ├── .idea ├── libraries │ ├── Dart_Packages.xml │ ├── Dart_SDK.xml │ ├── Flutter_Plugins.xml │ └── Flutter_for_Android.xml ├── markdown-navigator.xml ├── markdown-navigator │ └── profiles_settings.xml ├── modules.xml ├── runConfigurations │ └── main_dart.xml └── workspace.xml ├── .metadata ├── README.md ├── android ├── .gitignore ├── app │ ├── build.gradle │ ├── google-services.json │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── datingapp │ │ │ └── MainActivity.java │ │ └── res │ │ ├── drawable │ │ └── launch_background.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── assets ├── 1.jpg ├── Background.png ├── Home.png ├── account.png ├── account2.png ├── arrow-up.png ├── back-arrow.png ├── bg.png ├── camera.png ├── chat.png ├── chat2.png ├── datingpic.jpg ├── els-fattah.jpg ├── first.png ├── fonts │ ├── Poppins-Black.ttf │ ├── Poppins-BlackItalic.ttf │ ├── Poppins-Bold.ttf │ ├── Poppins-BoldItalic.ttf │ ├── Poppins-ExtraBold.ttf │ ├── Poppins-ExtraBoldItalic.ttf │ ├── Poppins-ExtraLight.ttf │ ├── Poppins-ExtraLightItalic.ttf │ ├── Poppins-Italic.ttf │ ├── Poppins-Light.ttf │ ├── Poppins-LightItalic.ttf │ ├── Poppins-Medium.ttf │ ├── Poppins-MediumItalic.ttf │ ├── Poppins-Regular.ttf │ ├── Poppins-SemiBold.ttf │ ├── Poppins-SemiBoldItalic.ttf │ ├── Poppins-Thin.ttf │ └── Poppins-ThinItalic.ttf ├── forward-arrow.png ├── forward.png ├── fourth.png ├── gallery.png ├── home2.png ├── i18n │ ├── en-GB.json │ ├── en.json │ ├── es.json │ ├── fr.json │ └── index.js ├── icons │ ├── Home.svg │ ├── account 2.svg │ ├── account.svg │ ├── block.svg │ ├── chat.svg │ ├── chat2.svg │ ├── delete.svg │ ├── edit.svg │ ├── home 2.svg │ ├── like.svg │ ├── location.svg │ ├── settings.svg │ └── share.svg ├── img1.jpg ├── img1.png ├── img2.jpg ├── img3.jpg ├── img4.jpg ├── img5.JPG ├── jonathan-daniels.jpg ├── next.png ├── sam-burriss.jpg ├── second.png ├── sign_up_bg.png ├── third.png └── warren-wong.jpg ├── datingapp.iml ├── datingapp_android.iml ├── ios ├── .gitignore ├── Flutter │ ├── AppFrameworkInfo.plist │ ├── Debug.xcconfig │ └── Release.xcconfig ├── Podfile ├── Podfile.lock ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ └── Runner.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── Runner │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-App-1024x1024@1x.png │ │ ├── Icon-App-20x20@1x.png │ │ ├── Icon-App-20x20@2x.png │ │ ├── Icon-App-20x20@3x.png │ │ ├── Icon-App-29x29@1x.png │ │ ├── Icon-App-29x29@2x.png │ │ ├── Icon-App-29x29@3x.png │ │ ├── Icon-App-40x40@1x.png │ │ ├── Icon-App-40x40@2x.png │ │ ├── Icon-App-40x40@3x.png │ │ ├── Icon-App-60x60@2x.png │ │ ├── Icon-App-60x60@3x.png │ │ ├── Icon-App-76x76@1x.png │ │ ├── Icon-App-76x76@2x.png │ │ └── Icon-App-83.5x83.5@2x.png │ └── LaunchImage.imageset │ │ ├── Contents.json │ │ ├── LaunchImage.png │ │ ├── LaunchImage@2x.png │ │ ├── LaunchImage@3x.png │ │ └── README.md │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── main.m ├── lib ├── Components │ ├── multiSlider.dart │ ├── profileImages.dart │ ├── profileInputs.dart │ └── swipeButton.dart ├── Data │ ├── index.dart │ └── styles.dart ├── Screens │ ├── Account │ │ ├── index.dart │ │ └── styles.dart │ ├── Chat │ │ ├── index.dart │ │ └── styles.dart │ ├── EditProfile │ │ ├── grid.dart │ │ └── index.dart │ ├── Home │ │ ├── activeCard.dart │ │ ├── data.dart │ │ ├── detail.dart │ │ ├── dummyCard.dart │ │ ├── index.dart │ │ └── styles.dart │ ├── Login │ │ ├── index.dart │ │ ├── pages.dart │ │ └── styles.dart │ ├── Settings │ │ └── index.dart │ ├── TabController │ │ ├── index.dart │ │ └── styles.dart │ └── testcc │ │ ├── index.dart │ │ └── sign.dart ├── main.dart ├── multislider.dart ├── routes.dart ├── test.dart └── theme │ └── styles.dart ├── pubspec.lock ├── pubspec.yaml └── test └── widget_test.dart /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FlutterDatingApp 2 | -------------------------------------------------------------------------------- /datingapp/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .dart_tool/ 3 | 4 | .packages 5 | .pub/ 6 | 7 | build/ 8 | 9 | .flutter-plugins 10 | -------------------------------------------------------------------------------- /datingapp/.idea/libraries/Dart_SDK.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /datingapp/.idea/libraries/Flutter_Plugins.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /datingapp/.idea/libraries/Flutter_for_Android.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /datingapp/.idea/markdown-navigator.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 36 | 37 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /datingapp/.idea/markdown-navigator/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /datingapp/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /datingapp/.idea/runConfigurations/main_dart.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /datingapp/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 7984f6e043ee661b420e70c72241973c676034e5 8 | channel: dev 9 | -------------------------------------------------------------------------------- /datingapp/README.md: -------------------------------------------------------------------------------- 1 | # datingapp 2 | 3 | A new Flutter project. 4 | 5 | ## Getting Started 6 | 7 | For help getting started with Flutter, view our online 8 | [documentation](https://flutter.io/). 9 | -------------------------------------------------------------------------------- /datingapp/android/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | *.class 3 | .gradle 4 | /local.properties 5 | /.idea/workspace.xml 6 | /.idea/libraries 7 | .DS_Store 8 | /build 9 | /captures 10 | GeneratedPluginRegistrant.java 11 | -------------------------------------------------------------------------------- /datingapp/android/app/build.gradle: -------------------------------------------------------------------------------- 1 | def localProperties = new Properties() 2 | def localPropertiesFile = rootProject.file('local.properties') 3 | if (localPropertiesFile.exists()) { 4 | localPropertiesFile.withReader('UTF-8') { reader -> 5 | localProperties.load(reader) 6 | } 7 | } 8 | 9 | def flutterRoot = localProperties.getProperty('flutter.sdk') 10 | if (flutterRoot == null) { 11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") 12 | } 13 | 14 | apply plugin: 'com.android.application' 15 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 16 | 17 | android { 18 | compileSdkVersion 27 19 | 20 | lintOptions { 21 | disable 'InvalidPackage' 22 | } 23 | 24 | defaultConfig { 25 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 26 | applicationId "com.example.datingapp" 27 | minSdkVersion 16 28 | targetSdkVersion 27 29 | versionCode 1 30 | versionName "1.0" 31 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 32 | } 33 | 34 | buildTypes { 35 | release { 36 | // TODO: Add your own signing config for the release build. 37 | // Signing with the debug keys for now, so `flutter run --release` works. 38 | signingConfig signingConfigs.debug 39 | } 40 | } 41 | } 42 | 43 | flutter { 44 | source '../..' 45 | } 46 | 47 | dependencies { 48 | testImplementation 'junit:junit:4.12' 49 | androidTestImplementation 'com.android.support.test:runner:1.0.1' 50 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' 51 | } 52 | -------------------------------------------------------------------------------- /datingapp/android/app/google-services.json: -------------------------------------------------------------------------------- 1 | { 2 | "project_info": { 3 | "project_number": "804317660274", 4 | "firebase_url": "https://flutter-dating-app.firebaseio.com", 5 | "project_id": "flutter-dating-app", 6 | "storage_bucket": "flutter-dating-app.appspot.com" 7 | }, 8 | "client": [ 9 | { 10 | "client_info": { 11 | "mobilesdk_app_id": "1:804317660274:android:1e4b32425fa33a4e", 12 | "android_client_info": { 13 | "package_name": "com.example.datingapp" 14 | } 15 | }, 16 | "oauth_client": [ 17 | { 18 | "client_id": "804317660274-lb9qpgab8odosl8h2jsunh752qki2gci.apps.googleusercontent.com", 19 | "client_type": 1, 20 | "android_info": { 21 | "package_name": "com.example.datingapp", 22 | "certificate_hash": "9a33a058b828a68a713f47230434ea3229406a00" 23 | } 24 | }, 25 | { 26 | "client_id": "804317660274-c3ttdtef25q8ipcl4bm30r45gvg9ljr5.apps.googleusercontent.com", 27 | "client_type": 3 28 | }, 29 | { 30 | "client_id": "804317660274-c3ttdtef25q8ipcl4bm30r45gvg9ljr5.apps.googleusercontent.com", 31 | "client_type": 3 32 | } 33 | ], 34 | "api_key": [ 35 | { 36 | "current_key": "AIzaSyDzh3tW-3XWwTEU4z_MEnJS1A8ldZlfUBQ" 37 | } 38 | ], 39 | "services": { 40 | "analytics_service": { 41 | "status": 1 42 | }, 43 | "appinvite_service": { 44 | "status": 2, 45 | "other_platform_oauth_client": [ 46 | { 47 | "client_id": "804317660274-kp34juj02lqqia1gba380kf4pgnboqqp.apps.googleusercontent.com", 48 | "client_type": 2, 49 | "ios_info": { 50 | "bundle_id": "com.example.datingapp" 51 | } 52 | }, 53 | { 54 | "client_id": "804317660274-c3ttdtef25q8ipcl4bm30r45gvg9ljr5.apps.googleusercontent.com", 55 | "client_type": 3 56 | } 57 | ] 58 | }, 59 | "ads_service": { 60 | "status": 2 61 | } 62 | } 63 | } 64 | ], 65 | "configuration_version": "1" 66 | } -------------------------------------------------------------------------------- /datingapp/android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | 10 | 15 | 19 | 26 | 30 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 41 | 42 | 46 | 47 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /datingapp/android/app/src/main/java/com/example/datingapp/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.datingapp; 2 | 3 | import android.os.Bundle; 4 | 5 | import io.flutter.app.FlutterActivity; 6 | import io.flutter.plugins.GeneratedPluginRegistrant; 7 | 8 | public class MainActivity extends FlutterActivity { 9 | @Override 10 | protected void onCreate(Bundle savedInstanceState) { 11 | super.onCreate(savedInstanceState); 12 | GeneratedPluginRegistrant.registerWith(this); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /datingapp/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /datingapp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /datingapp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /datingapp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /datingapp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /datingapp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /datingapp/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Dating App 4 | 5 | 6 | 2066601313557901 7 | 8 | 9 | fb2066601313557901 10 | -------------------------------------------------------------------------------- /datingapp/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /datingapp/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:3.0.1' 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | google() 15 | jcenter() 16 | } 17 | } 18 | 19 | rootProject.buildDir = '../build' 20 | subprojects { 21 | project.buildDir = "${rootProject.buildDir}/${project.name}" 22 | } 23 | subprojects { 24 | project.evaluationDependsOn(':app') 25 | } 26 | 27 | task clean(type: Delete) { 28 | delete rootProject.buildDir 29 | } 30 | -------------------------------------------------------------------------------- /datingapp/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | -------------------------------------------------------------------------------- /datingapp/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /datingapp/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 7 | -------------------------------------------------------------------------------- /datingapp/android/gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ############################################################################## 4 | ## 5 | ## Gradle start up script for UN*X 6 | ## 7 | ############################################################################## 8 | 9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 10 | DEFAULT_JVM_OPTS="" 11 | 12 | APP_NAME="Gradle" 13 | APP_BASE_NAME=`basename "$0"` 14 | 15 | # Use the maximum available, or set MAX_FD != -1 to use that value. 16 | MAX_FD="maximum" 17 | 18 | warn ( ) { 19 | echo "$*" 20 | } 21 | 22 | die ( ) { 23 | echo 24 | echo "$*" 25 | echo 26 | exit 1 27 | } 28 | 29 | # OS specific support (must be 'true' or 'false'). 30 | cygwin=false 31 | msys=false 32 | darwin=false 33 | case "`uname`" in 34 | CYGWIN* ) 35 | cygwin=true 36 | ;; 37 | Darwin* ) 38 | darwin=true 39 | ;; 40 | MINGW* ) 41 | msys=true 42 | ;; 43 | esac 44 | 45 | # Attempt to set APP_HOME 46 | # Resolve links: $0 may be a link 47 | PRG="$0" 48 | # Need this for relative symlinks. 49 | while [ -h "$PRG" ] ; do 50 | ls=`ls -ld "$PRG"` 51 | link=`expr "$ls" : '.*-> \(.*\)$'` 52 | if expr "$link" : '/.*' > /dev/null; then 53 | PRG="$link" 54 | else 55 | PRG=`dirname "$PRG"`"/$link" 56 | fi 57 | done 58 | SAVED="`pwd`" 59 | cd "`dirname \"$PRG\"`/" >/dev/null 60 | APP_HOME="`pwd -P`" 61 | cd "$SAVED" >/dev/null 62 | 63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 64 | 65 | # Determine the Java command to use to start the JVM. 66 | if [ -n "$JAVA_HOME" ] ; then 67 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 68 | # IBM's JDK on AIX uses strange locations for the executables 69 | JAVACMD="$JAVA_HOME/jre/sh/java" 70 | else 71 | JAVACMD="$JAVA_HOME/bin/java" 72 | fi 73 | if [ ! -x "$JAVACMD" ] ; then 74 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 75 | 76 | Please set the JAVA_HOME variable in your environment to match the 77 | location of your Java installation." 78 | fi 79 | else 80 | JAVACMD="java" 81 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 82 | 83 | Please set the JAVA_HOME variable in your environment to match the 84 | location of your Java installation." 85 | fi 86 | 87 | # Increase the maximum file descriptors if we can. 88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 89 | MAX_FD_LIMIT=`ulimit -H -n` 90 | if [ $? -eq 0 ] ; then 91 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 92 | MAX_FD="$MAX_FD_LIMIT" 93 | fi 94 | ulimit -n $MAX_FD 95 | if [ $? -ne 0 ] ; then 96 | warn "Could not set maximum file descriptor limit: $MAX_FD" 97 | fi 98 | else 99 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 100 | fi 101 | fi 102 | 103 | # For Darwin, add options to specify how the application appears in the dock 104 | if $darwin; then 105 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 106 | fi 107 | 108 | # For Cygwin, switch paths to Windows format before running java 109 | if $cygwin ; then 110 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 111 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 112 | JAVACMD=`cygpath --unix "$JAVACMD"` 113 | 114 | # We build the pattern for arguments to be converted via cygpath 115 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 116 | SEP="" 117 | for dir in $ROOTDIRSRAW ; do 118 | ROOTDIRS="$ROOTDIRS$SEP$dir" 119 | SEP="|" 120 | done 121 | OURCYGPATTERN="(^($ROOTDIRS))" 122 | # Add a user-defined pattern to the cygpath arguments 123 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 124 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 125 | fi 126 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 127 | i=0 128 | for arg in "$@" ; do 129 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 130 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 131 | 132 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 133 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 134 | else 135 | eval `echo args$i`="\"$arg\"" 136 | fi 137 | i=$((i+1)) 138 | done 139 | case $i in 140 | (0) set -- ;; 141 | (1) set -- "$args0" ;; 142 | (2) set -- "$args0" "$args1" ;; 143 | (3) set -- "$args0" "$args1" "$args2" ;; 144 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 145 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 146 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 147 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 148 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 149 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 150 | esac 151 | fi 152 | 153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 154 | function splitJvmOpts() { 155 | JVM_OPTS=("$@") 156 | } 157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 159 | 160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 161 | -------------------------------------------------------------------------------- /datingapp/android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /datingapp/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() 4 | 5 | def plugins = new Properties() 6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') 7 | if (pluginsFile.exists()) { 8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } 9 | } 10 | 11 | plugins.each { name, path -> 12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() 13 | include ":$name" 14 | project(":$name").projectDir = pluginDirectory 15 | } 16 | -------------------------------------------------------------------------------- /datingapp/assets/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/1.jpg -------------------------------------------------------------------------------- /datingapp/assets/Background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/Background.png -------------------------------------------------------------------------------- /datingapp/assets/Home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/Home.png -------------------------------------------------------------------------------- /datingapp/assets/account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/account.png -------------------------------------------------------------------------------- /datingapp/assets/account2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/account2.png -------------------------------------------------------------------------------- /datingapp/assets/arrow-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/arrow-up.png -------------------------------------------------------------------------------- /datingapp/assets/back-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/back-arrow.png -------------------------------------------------------------------------------- /datingapp/assets/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/bg.png -------------------------------------------------------------------------------- /datingapp/assets/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/camera.png -------------------------------------------------------------------------------- /datingapp/assets/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/chat.png -------------------------------------------------------------------------------- /datingapp/assets/chat2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/chat2.png -------------------------------------------------------------------------------- /datingapp/assets/datingpic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/datingpic.jpg -------------------------------------------------------------------------------- /datingapp/assets/els-fattah.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/els-fattah.jpg -------------------------------------------------------------------------------- /datingapp/assets/first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/first.png -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-Black.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-BlackItalic.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-Bold.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-BoldItalic.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-ExtraBold.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-ExtraLight.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-Italic.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-Light.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-LightItalic.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-Medium.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-MediumItalic.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-Regular.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-SemiBold.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-Thin.ttf -------------------------------------------------------------------------------- /datingapp/assets/fonts/Poppins-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fonts/Poppins-ThinItalic.ttf -------------------------------------------------------------------------------- /datingapp/assets/forward-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/forward-arrow.png -------------------------------------------------------------------------------- /datingapp/assets/forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/forward.png -------------------------------------------------------------------------------- /datingapp/assets/fourth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/fourth.png -------------------------------------------------------------------------------- /datingapp/assets/gallery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/gallery.png -------------------------------------------------------------------------------- /datingapp/assets/home2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/home2.png -------------------------------------------------------------------------------- /datingapp/assets/i18n/en-GB.json: -------------------------------------------------------------------------------- 1 | { 2 | "en-GB": { 3 | "home": "Home", 4 | "discover": "Discover" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /datingapp/assets/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "en": { 3 | "home": "Home", 4 | "discover": "Discover" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /datingapp/assets/i18n/es.json: -------------------------------------------------------------------------------- 1 | { 2 | "es": { 3 | "home": "Casa", 4 | "discover": "Descubrir" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /datingapp/assets/i18n/fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "fr": { 3 | "home": "Maison", 4 | "discover": "Découvrir" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /datingapp/assets/i18n/index.js: -------------------------------------------------------------------------------- 1 | import EngliagGB from './en-GB.json' 2 | import English from './en.json' 3 | import Spanish from './es.json' 4 | import French from './fr.json' 5 | 6 | export default { 7 | en: English.en, 8 | 'en-GB': EngliagGB['en-GB'], 9 | es: Spanish.es, 10 | fr: French.fr 11 | } 12 | -------------------------------------------------------------------------------- /datingapp/assets/icons/Home.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Home 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /datingapp/assets/icons/account 2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | account 2 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /datingapp/assets/icons/account.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | account 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /datingapp/assets/icons/block.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Shape 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /datingapp/assets/icons/chat.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | chat 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /datingapp/assets/icons/chat2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | chat 2 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /datingapp/assets/icons/delete.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Shape 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /datingapp/assets/icons/edit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Shape 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /datingapp/assets/icons/home 2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | home 2 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /datingapp/assets/icons/like.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Shape 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /datingapp/assets/icons/location.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | location 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /datingapp/assets/icons/settings.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Combined Shape 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /datingapp/assets/icons/share.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Shape 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /datingapp/assets/img1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/img1.jpg -------------------------------------------------------------------------------- /datingapp/assets/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/img1.png -------------------------------------------------------------------------------- /datingapp/assets/img2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/img2.jpg -------------------------------------------------------------------------------- /datingapp/assets/img3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/img3.jpg -------------------------------------------------------------------------------- /datingapp/assets/img4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/img4.jpg -------------------------------------------------------------------------------- /datingapp/assets/img5.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/img5.JPG -------------------------------------------------------------------------------- /datingapp/assets/jonathan-daniels.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/jonathan-daniels.jpg -------------------------------------------------------------------------------- /datingapp/assets/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/next.png -------------------------------------------------------------------------------- /datingapp/assets/sam-burriss.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/sam-burriss.jpg -------------------------------------------------------------------------------- /datingapp/assets/second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/second.png -------------------------------------------------------------------------------- /datingapp/assets/sign_up_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/sign_up_bg.png -------------------------------------------------------------------------------- /datingapp/assets/third.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/third.png -------------------------------------------------------------------------------- /datingapp/assets/warren-wong.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/assets/warren-wong.jpg -------------------------------------------------------------------------------- /datingapp/datingapp.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /datingapp/datingapp_android.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /datingapp/ios/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .vagrant/ 3 | .sconsign.dblite 4 | .svn/ 5 | 6 | .DS_Store 7 | *.swp 8 | profile 9 | 10 | DerivedData/ 11 | build/ 12 | GeneratedPluginRegistrant.h 13 | GeneratedPluginRegistrant.m 14 | 15 | .generated/ 16 | 17 | *.pbxuser 18 | *.mode1v3 19 | *.mode2v3 20 | *.perspectivev3 21 | 22 | !default.pbxuser 23 | !default.mode1v3 24 | !default.mode2v3 25 | !default.perspectivev3 26 | 27 | xcuserdata 28 | 29 | *.moved-aside 30 | 31 | *.pyc 32 | *sync/ 33 | Icon? 34 | .tags* 35 | 36 | /Flutter/app.flx 37 | /Flutter/app.zip 38 | /Flutter/flutter_assets/ 39 | /Flutter/App.framework 40 | /Flutter/Flutter.framework 41 | /Flutter/Generated.xcconfig 42 | /ServiceDefinitions.json 43 | 44 | Pods/ 45 | -------------------------------------------------------------------------------- /datingapp/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | UIRequiredDeviceCapabilities 24 | 25 | arm64 26 | 27 | MinimumOSVersion 28 | 8.0 29 | 30 | 31 | -------------------------------------------------------------------------------- /datingapp/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /datingapp/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /datingapp/ios/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment this line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | # CocoaPods analytics sends network stats synchronously affecting flutter build latency. 5 | ENV['COCOAPODS_DISABLE_STATS'] = 'true' 6 | 7 | def parse_KV_file(file, separator='=') 8 | file_abs_path = File.expand_path(file) 9 | if !File.exists? file_abs_path 10 | return []; 11 | end 12 | pods_ary = [] 13 | skip_line_start_symbols = ["#", "/"] 14 | File.foreach(file_abs_path) { |line| 15 | next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ } 16 | plugin = line.split(pattern=separator) 17 | if plugin.length == 2 18 | podname = plugin[0].strip() 19 | path = plugin[1].strip() 20 | podpath = File.expand_path("#{path}", file_abs_path) 21 | pods_ary.push({:name => podname, :path => podpath}); 22 | else 23 | puts "Invalid plugin specification: #{line}" 24 | end 25 | } 26 | return pods_ary 27 | end 28 | 29 | target 'Runner' do 30 | # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock 31 | # referring to absolute paths on developers' machines. 32 | system('rm -rf Pods/.symlinks') 33 | system('mkdir -p Pods/.symlinks/plugins') 34 | 35 | # Flutter Pods 36 | generated_xcode_build_settings = parse_KV_file('./Flutter/Generated.xcconfig') 37 | if generated_xcode_build_settings.empty? 38 | puts "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first." 39 | end 40 | generated_xcode_build_settings.map { |p| 41 | if p[:name] == 'FLUTTER_FRAMEWORK_DIR' 42 | symlink = File.join('Pods', '.symlinks', 'flutter') 43 | File.symlink(File.dirname(p[:path]), symlink) 44 | pod 'Flutter', :path => File.join(symlink, File.basename(p[:path])) 45 | end 46 | } 47 | 48 | # Plugin Pods 49 | plugin_pods = parse_KV_file('../.flutter-plugins') 50 | plugin_pods.map { |p| 51 | symlink = File.join('Pods', '.symlinks', 'plugins', p[:name]) 52 | File.symlink(p[:path], symlink) 53 | pod p[:name], :path => File.join(symlink, 'ios') 54 | } 55 | end 56 | 57 | post_install do |installer| 58 | installer.pods_project.targets.each do |target| 59 | target.build_configurations.each do |config| 60 | config.build_settings['ENABLE_BITCODE'] = 'NO' 61 | end 62 | end 63 | end 64 | -------------------------------------------------------------------------------- /datingapp/ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Bolts (1.9.0): 3 | - Bolts/AppLinks (= 1.9.0) 4 | - Bolts/Tasks (= 1.9.0) 5 | - Bolts/AppLinks (1.9.0): 6 | - Bolts/Tasks 7 | - Bolts/Tasks (1.9.0) 8 | - FBSDKCoreKit (4.31.0): 9 | - Bolts (~> 1.7) 10 | - FBSDKLoginKit (4.31.0): 11 | - FBSDKCoreKit 12 | - Flutter (1.0.0) 13 | - flutter_facebook_login (0.0.1): 14 | - FBSDKLoginKit (~> 4.29) 15 | - Flutter 16 | - image_picker (0.0.1): 17 | - Flutter 18 | - share (0.0.1): 19 | - Flutter 20 | 21 | DEPENDENCIES: 22 | - Flutter (from `Pods/.symlinks/flutter/ios`) 23 | - flutter_facebook_login (from `Pods/.symlinks/plugins/flutter_facebook_login/ios`) 24 | - image_picker (from `Pods/.symlinks/plugins/image_picker/ios`) 25 | - share (from `Pods/.symlinks/plugins/share/ios`) 26 | 27 | SPEC REPOS: 28 | https://github.com/cocoapods/specs.git: 29 | - Bolts 30 | - FBSDKCoreKit 31 | - FBSDKLoginKit 32 | 33 | EXTERNAL SOURCES: 34 | Flutter: 35 | :path: Pods/.symlinks/flutter/ios 36 | flutter_facebook_login: 37 | :path: Pods/.symlinks/plugins/flutter_facebook_login/ios 38 | image_picker: 39 | :path: Pods/.symlinks/plugins/image_picker/ios 40 | share: 41 | :path: Pods/.symlinks/plugins/share/ios 42 | 43 | SPEC CHECKSUMS: 44 | Bolts: ac6567323eac61e203f6a9763667d0f711be34c8 45 | FBSDKCoreKit: 54db4c581123745d25a9f7c1608020b3aeabd118 46 | FBSDKLoginKit: 95a252ddffd6919c0f132a02292f0824616d8709 47 | Flutter: 9d0fac939486c9aba2809b7982dfdbb47a7b0296 48 | flutter_facebook_login: e3d2f0a348889fe0f49c302bc044b8cc66c691be 49 | image_picker: ee00aab0487cedc80a304085219503cc6d0f2e22 50 | share: 8d04605548e55f7ce4ebb7b3e933f3c85028c9cf 51 | 52 | PODFILE CHECKSUM: 13dcf421f4da2e937a57e8ba760ed880beae536f 53 | 54 | COCOAPODS: 1.5.3 55 | -------------------------------------------------------------------------------- /datingapp/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /datingapp/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 31 | 32 | 33 | 34 | 40 | 41 | 42 | 43 | 44 | 45 | 56 | 58 | 64 | 65 | 66 | 67 | 68 | 69 | 75 | 77 | 83 | 84 | 85 | 86 | 88 | 89 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /datingapp/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /datingapp/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /datingapp/ios/Runner/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface AppDelegate : FlutterAppDelegate 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /datingapp/ios/Runner/AppDelegate.m: -------------------------------------------------------------------------------- 1 | #include "AppDelegate.h" 2 | #include "GeneratedPluginRegistrant.h" 3 | 4 | @implementation AppDelegate 5 | 6 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 7 | [GeneratedPluginRegistrant registerWithRegistry:self]; 8 | // Override point for customization after application launch. 9 | return [super application:application didFinishLaunchingWithOptions:launchOptions]; 10 | } 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-App-20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-App-20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-App-29x29@1x.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-App-29x29@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-App-29x29@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-App-40x40@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "Icon-App-40x40@3x.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "Icon-App-60x60@2x.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "60x60", 53 | "idiom" : "iphone", 54 | "filename" : "Icon-App-60x60@3x.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "Icon-App-20x20@1x.png", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "size" : "20x20", 65 | "idiom" : "ipad", 66 | "filename" : "Icon-App-20x20@2x.png", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-App-29x29@1x.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "29x29", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-App-29x29@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "Icon-App-40x40@1x.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "40x40", 89 | "idiom" : "ipad", 90 | "filename" : "Icon-App-40x40@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "Icon-App-76x76@1x.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "76x76", 101 | "idiom" : "ipad", 102 | "filename" : "Icon-App-76x76@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "83.5x83.5", 107 | "idiom" : "ipad", 108 | "filename" : "Icon-App-83.5x83.5@2x.png", 109 | "scale" : "2x" 110 | }, 111 | { 112 | "size" : "1024x1024", 113 | "idiom" : "ios-marketing", 114 | "filename" : "Icon-App-1024x1024@1x.png", 115 | "scale" : "1x" 116 | } 117 | ], 118 | "info" : { 119 | "version" : 1, 120 | "author" : "xcode" 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geekruchika/FlutterDatingApp/9d5b0e3c9c903a57ab088cd7fa5528e1bf7e08e9/datingapp/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /datingapp/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | 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. -------------------------------------------------------------------------------- /datingapp/ios/Runner/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /datingapp/ios/Runner/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /datingapp/ios/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | DatingApp 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | datingapp 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | 24 | LSRequiresIPhoneOS 25 | 26 | NSCameraUsageDescription 27 | 28 | NSPhotoLibraryUsageDescription 29 | 30 | UILaunchStoryboardName 31 | LaunchScreen 32 | UIMainStoryboardFile 33 | Main 34 | UIRequiredDeviceCapabilities 35 | 36 | arm64 37 | 38 | UISupportedInterfaceOrientations 39 | 40 | UIInterfaceOrientationPortrait 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | UISupportedInterfaceOrientations~ipad 45 | 46 | UIInterfaceOrientationPortrait 47 | UIInterfaceOrientationPortraitUpsideDown 48 | UIInterfaceOrientationLandscapeLeft 49 | UIInterfaceOrientationLandscapeRight 50 | 51 | UIViewControllerBasedStatusBarAppearance 52 | 53 | 54 | CFBundleURLTypes 55 | 56 | 57 | CFBundleURLSchemes 58 | 59 | fb2066601313557901 60 | 61 | 62 | 63 | CFBundleVersion 64 | 1 65 | FacebookAppID 66 | 2066601313557901 67 | FacebookDisplayName 68 | Dating App 69 | LSApplicationQueriesSchemes 70 | 71 | fbapi 72 | fb-messenger-share-api 73 | fbauth2 74 | fbshareextension 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /datingapp/ios/Runner/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char * argv[]) { 6 | @autoreleasepool { 7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /datingapp/lib/Components/multiSlider.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_range_slider/flutter_range_slider.dart'; 3 | 4 | class RangeSliderData { 5 | double min; 6 | double max; 7 | double lowerValue; 8 | double upperValue; 9 | int divisions; 10 | bool showValueIndicator; 11 | int valueIndicatorMaxDecimals; 12 | bool forceValueIndicator; 13 | Color overlayColor; 14 | Color activeTrackColor; 15 | Color inactiveTrackColor; 16 | Color thumbColor; 17 | Color valueIndicatorColor; 18 | Color activeTickMarkColor; 19 | 20 | static const Color defaultActiveTrackColor = const Color(0xFF0175c2); 21 | static const Color defaultInactiveTrackColor = const Color(0x3d0175c2); 22 | static const Color defaultActiveTickMarkColor = const Color(0x8a0175c2); 23 | static const Color defaultThumbColor = const Color(0xFF0175c2); 24 | static const Color defaultValueIndicatorColor = const Color(0xFF0175c2); 25 | static const Color defaultOverlayColor = const Color(0x290175c2); 26 | 27 | RangeSliderData({ 28 | this.min, 29 | this.max, 30 | this.lowerValue, 31 | this.upperValue, 32 | this.divisions, 33 | this.showValueIndicator: true, 34 | this.valueIndicatorMaxDecimals: 0, 35 | this.forceValueIndicator: false, 36 | this.overlayColor: defaultOverlayColor, 37 | this.activeTrackColor: defaultActiveTrackColor, 38 | this.inactiveTrackColor: defaultInactiveTrackColor, 39 | this.thumbColor: defaultThumbColor, 40 | this.valueIndicatorColor: defaultValueIndicatorColor, 41 | this.activeTickMarkColor: defaultActiveTickMarkColor, 42 | }); 43 | 44 | String get lowerValueText => 45 | lowerValue.round().toStringAsFixed(valueIndicatorMaxDecimals); 46 | String get upperValueText => 47 | upperValue.round().toStringAsFixed(valueIndicatorMaxDecimals); 48 | 49 | Widget build(BuildContext context, RangeSliderCallback callback) { 50 | Size screenSize = MediaQuery.of(context).size; 51 | return new Card( 52 | elevation: 6.0, 53 | child: new Container( 54 | width: screenSize.width, 55 | padding: new EdgeInsets.only(top: 12.0, bottom: 12.0), 56 | child: new Column(children: [ 57 | new ListTile( 58 | title: new Text("Age Range"), 59 | trailing: new Text((lowerValueText) + "-" + (upperValueText)), 60 | ), 61 | new Container( 62 | width: double.infinity, 63 | child: new Row( 64 | children: [ 65 | new Expanded( 66 | child: new SliderTheme( 67 | data: SliderTheme.of(context).copyWith( 68 | overlayColor: overlayColor, 69 | activeTickMarkColor: activeTickMarkColor, 70 | activeTrackColor: activeTrackColor, 71 | inactiveTrackColor: inactiveTrackColor, 72 | thumbColor: thumbColor, 73 | valueIndicatorColor: valueIndicatorColor, 74 | showValueIndicator: showValueIndicator 75 | ? ShowValueIndicator.always 76 | : ShowValueIndicator.onlyForDiscrete, 77 | ), 78 | child: new RangeSlider( 79 | min: min, 80 | max: max, 81 | lowerValue: lowerValue, 82 | upperValue: upperValue, 83 | divisions: divisions, 84 | showValueIndicator: showValueIndicator, 85 | valueIndicatorMaxDecimals: valueIndicatorMaxDecimals, 86 | onChanged: (double lower, double upper) { 87 | callback(lower, upper); 88 | }, 89 | ), 90 | ), 91 | ), 92 | ], 93 | ), 94 | ) 95 | ]))); 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /datingapp/lib/Components/profileImages.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | import 'dart:io'; 3 | 4 | import 'package:datingapp/theme/styles.dart'; 5 | import 'package:flutter/material.dart'; 6 | 7 | class ProfileImage extends StatelessWidget { 8 | final double margin; 9 | final double width; 10 | final double height; 11 | final String numtext; 12 | final Function iconOnClick; 13 | final Future imageFile; 14 | ProfileImage( 15 | {this.imageFile, 16 | this.margin, 17 | this.width, 18 | this.height, 19 | this.numtext, 20 | this.iconOnClick}); 21 | 22 | @override 23 | Widget build(BuildContext context) { 24 | return new Stack( 25 | alignment: Alignment.bottomCenter, 26 | children: [ 27 | new Container( 28 | margin: new EdgeInsets.all(margin), 29 | width: width, 30 | height: height, 31 | decoration: new BoxDecoration(color: Colors.grey), 32 | child: new FutureBuilder( 33 | future: imageFile, 34 | builder: (BuildContext context, AsyncSnapshot snapshot) { 35 | if (snapshot.connectionState == ConnectionState.done && 36 | snapshot.data != null) { 37 | return new Stack( 38 | alignment: Alignment.topRight, 39 | children: [ 40 | new Image.file( 41 | snapshot.data, 42 | width: width, 43 | height: height, 44 | fit: BoxFit.fill, 45 | ), 46 | new Container( 47 | width: 25.0, 48 | height: 25.0, 49 | margin: new EdgeInsets.all(8.0), 50 | alignment: Alignment.center, 51 | decoration: new BoxDecoration( 52 | shape: BoxShape.circle, color: Colors.white), 53 | child: new Text(numtext), 54 | ), 55 | ], 56 | ); 57 | } else if (snapshot.error != null) { 58 | return const Text('error picking image.'); 59 | } else { 60 | return const Text(''); 61 | } 62 | }, 63 | ), 64 | ), 65 | new InkWell( 66 | onTap: iconOnClick, 67 | child: new Container( 68 | width: 30.0, 69 | height: 30.0, 70 | margin: new EdgeInsets.only(top: 20.0), 71 | alignment: Alignment.center, 72 | decoration: 73 | new BoxDecoration(shape: BoxShape.circle, color: gradientThree), 74 | child: new Icon( 75 | imageFile == null ? Icons.add : Icons.cancel, 76 | color: Colors.white, 77 | ), 78 | ), 79 | ), 80 | ], 81 | ); 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /datingapp/lib/Components/profileInputs.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class ProfileInputs extends StatelessWidget { 4 | String placeholder; 5 | int lines; 6 | String title; 7 | ProfileInputs({this.lines, this.placeholder, this.title}); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | return new Container( 12 | margin: const EdgeInsets.only(top: 10.0), 13 | child: new Column( 14 | crossAxisAlignment: CrossAxisAlignment.start, 15 | children: [ 16 | new Padding( 17 | padding: const EdgeInsets.all(10.0), 18 | child: new Text( 19 | title, 20 | style: 21 | new TextStyle(fontSize: 20.0, fontFamily: "PoppinsRegular"), 22 | ), 23 | ), 24 | new Card( 25 | elevation: 0.0, 26 | child: new TextFormField( 27 | maxLines: lines, 28 | decoration: new InputDecoration( 29 | hintText: placeholder, 30 | border: InputBorder.none, 31 | contentPadding: const EdgeInsets.all(15.0), 32 | ), 33 | ), 34 | ) 35 | ], 36 | ), 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /datingapp/lib/Components/swipeButton.dart: -------------------------------------------------------------------------------- 1 | import 'package:datingapp/theme/styles.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class SwipeButton extends StatelessWidget { 5 | final String text; 6 | final Function onClick; 7 | SwipeButton({this.onClick, this.text}); 8 | @override 9 | Widget build(BuildContext context) { 10 | return new FlatButton( 11 | padding: new EdgeInsets.all(0.0), 12 | onPressed: () { 13 | onClick(); 14 | }, 15 | child: new Container( 16 | height: 60.0, 17 | width: 130.0, 18 | alignment: Alignment.center, 19 | decoration: new BoxDecoration( 20 | gradient: new LinearGradient( 21 | begin: Alignment.topLeft, 22 | end: Alignment.bottomRight, 23 | colors: [gradientOne, gradientTwo, gradientThree], 24 | tileMode: TileMode.repeated, 25 | ), 26 | borderRadius: new BorderRadius.circular(60.0), 27 | ), 28 | child: new Text( 29 | text, 30 | style: new TextStyle( 31 | fontSize: 18.0, 32 | letterSpacing: 0.6, 33 | color: Colors.white, 34 | fontWeight: FontWeight.w400), 35 | ), 36 | )); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /datingapp/lib/Data/index.dart: -------------------------------------------------------------------------------- 1 | import 'package:datingapp/Data/styles.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | final otherUsersData = [ 5 | new DataViewModel(user1, 10.0, "Long description", "Tom Cruise", 6 | "Short description", "Paris pvt ltd", "male"), 7 | new DataViewModel(user2, 10.0, "Long description", "Harry Potter", 8 | "Short description", "Paris pvt ltd", "male"), 9 | new DataViewModel(user3, 10.0, "Long description", "Richa Methew", 10 | "Short description", "Paris pvt ltd", "male"), 11 | new DataViewModel(user4, 10.0, "Long description", "Ronaldo", 12 | "Short description", "Paris pvt ltd", "male") 13 | ]; 14 | 15 | class OtherUser extends StatelessWidget { 16 | final DataViewModel viewModel; 17 | 18 | OtherUser({this.viewModel}); 19 | 20 | @override 21 | Widget build(BuildContext context) { 22 | return new Column( 23 | mainAxisAlignment: MainAxisAlignment.spaceEvenly, 24 | children: [], 25 | ); 26 | } 27 | } 28 | 29 | class DataViewModel { 30 | final String name; 31 | final String shortDescription; 32 | final String workPlace; 33 | final String gender; 34 | final double distance; 35 | final String longDescription; 36 | final DecorationImage img; 37 | 38 | DataViewModel(this.img, this.distance, this.longDescription, this.name, 39 | this.shortDescription, this.workPlace, this.gender); 40 | } 41 | -------------------------------------------------------------------------------- /datingapp/lib/Data/styles.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | DecorationImage user1 = new DecorationImage( 4 | image: new ExactAssetImage('assets/els-fattah.jpg'), 5 | fit: BoxFit.cover, 6 | ); 7 | DecorationImage user2 = new DecorationImage( 8 | image: new ExactAssetImage('assets/jonathan-daniels.jpg'), 9 | fit: BoxFit.cover, 10 | ); 11 | 12 | DecorationImage user3 = new DecorationImage( 13 | image: new ExactAssetImage('assets/sam-burriss.jpg'), 14 | fit: BoxFit.cover, 15 | ); 16 | DecorationImage user4 = new DecorationImage( 17 | image: new ExactAssetImage('assets/warren-wong.jpg'), 18 | fit: BoxFit.cover, 19 | ); 20 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/Account/index.dart: -------------------------------------------------------------------------------- 1 | import 'package:datingapp/Screens/Account/styles.dart'; 2 | import 'package:datingapp/theme/styles.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | class Profile extends StatefulWidget { 6 | @override 7 | _ProfileState createState() => new _ProfileState(); 8 | } 9 | 10 | class _ProfileState extends State { 11 | TabController controller; 12 | 13 | void initState() { 14 | super.initState(); 15 | } 16 | 17 | @override 18 | Widget build(BuildContext context) { 19 | Size screenSize = MediaQuery.of(context).size; 20 | return new Scaffold( 21 | appBar: new AppBar( 22 | elevation: 1.0, 23 | brightness: Brightness.light, 24 | backgroundColor: Colors.white, 25 | title: new Text( 26 | "Account", 27 | style: new TextStyle( 28 | color: new Color.fromRGBO(92, 107, 122, 1.0), fontSize: 32.0), 29 | ), 30 | centerTitle: false, 31 | automaticallyImplyLeading: false, 32 | ), 33 | body: new Container( 34 | width: screenSize.width, 35 | height: screenSize.height, 36 | color: const Color.fromRGBO(239, 239, 245, 1.0), 37 | child: new Column( 38 | mainAxisAlignment: MainAxisAlignment.center, 39 | children: [ 40 | new Container( 41 | height: 80.0, 42 | width: 80.0, 43 | decoration: 44 | new BoxDecoration(shape: BoxShape.circle, image: logo), 45 | ), 46 | new Padding( 47 | padding: const EdgeInsets.all(12.0), 48 | child: new Text( 49 | "Robert Downey, 21", 50 | style: new TextStyle( 51 | fontFamily: "PoppinsMedium", 52 | fontSize: 20.0, 53 | //fontWeight: FontWeight.bold, 54 | letterSpacing: 0.8), 55 | ), 56 | ), 57 | new Text( 58 | "American Actor", 59 | style: new TextStyle( 60 | fontFamily: "Poppins", 61 | fontSize: 15.0, 62 | fontWeight: FontWeight.w100, 63 | letterSpacing: 0.7), 64 | ), 65 | new FlatButton( 66 | onPressed: () { 67 | Navigator.of(context).pushNamed("/settings"); 68 | }, 69 | child: new Container( 70 | width: 200.0, 71 | height: 50.0, 72 | margin: new EdgeInsets.only(top: 20.0), 73 | alignment: Alignment.center, 74 | padding: new EdgeInsets.all(10.0), 75 | decoration: new BoxDecoration( 76 | gradient: new LinearGradient( 77 | begin: Alignment.topLeft, 78 | end: Alignment.bottomRight, 79 | colors: [gradientOne, gradientTwo, gradientThree], 80 | tileMode: TileMode.repeated, 81 | ), 82 | borderRadius: 83 | new BorderRadius.all(new Radius.circular(50.0))), 84 | child: new Row( 85 | mainAxisAlignment: MainAxisAlignment.spaceEvenly, 86 | children: [ 87 | new Icon( 88 | Icons.settings, 89 | color: Colors.white, 90 | ), 91 | new Text( 92 | "Settings", 93 | style: new TextStyle( 94 | fontSize: 18.0, 95 | letterSpacing: 0.6, 96 | color: Colors.white, 97 | fontWeight: FontWeight.w400), 98 | ), 99 | ], 100 | )), 101 | ), 102 | new FlatButton( 103 | onPressed: () { 104 | Navigator.of(context).pushNamed("/profile"); 105 | }, 106 | child: new Container( 107 | width: 200.0, 108 | height: 50.0, 109 | margin: new EdgeInsets.only(top: 24.0), 110 | alignment: Alignment.center, 111 | padding: new EdgeInsets.all(10.0), 112 | decoration: new BoxDecoration( 113 | gradient: new LinearGradient( 114 | begin: Alignment.topLeft, 115 | end: Alignment.bottomRight, 116 | colors: [gradientOne, gradientTwo, gradientThree], 117 | tileMode: TileMode.repeated, 118 | ), 119 | borderRadius: 120 | new BorderRadius.all(new Radius.circular(50.0))), 121 | child: new Row( 122 | mainAxisAlignment: MainAxisAlignment.spaceEvenly, 123 | children: [ 124 | new Icon( 125 | Icons.edit, 126 | color: Colors.white, 127 | ), 128 | new Text( 129 | "Edit Profile", 130 | style: new TextStyle( 131 | fontSize: 18.0, 132 | letterSpacing: 0.6, 133 | color: Colors.white, 134 | fontWeight: FontWeight.w400), 135 | ), 136 | ], 137 | )), 138 | ), 139 | ], 140 | ), 141 | ), 142 | ); 143 | } 144 | } 145 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/Account/styles.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | DecorationImage logo = new DecorationImage( 4 | image: new ExactAssetImage('assets/first.png'), 5 | fit: BoxFit.cover, 6 | ); 7 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/Chat/index.dart: -------------------------------------------------------------------------------- 1 | import 'package:datingapp/Screens/Chat/styles.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class Chat extends StatefulWidget { 5 | @override 6 | _ChatState createState() => new _ChatState(); 7 | } 8 | 9 | class _ChatState extends State { 10 | TabController controller; 11 | 12 | void initState() { 13 | super.initState(); 14 | } 15 | 16 | @override 17 | Widget build(BuildContext context) { 18 | Size screenSize = MediaQuery.of(context).size; 19 | return new Scaffold( 20 | appBar: new AppBar( 21 | elevation: 1.0, 22 | brightness: Brightness.light, 23 | backgroundColor: Colors.white, 24 | title: new Text( 25 | "Matches", 26 | style: new TextStyle( 27 | color: new Color.fromRGBO(92, 107, 122, 1.0), fontSize: 32.0), 28 | ), 29 | centerTitle: false, 30 | automaticallyImplyLeading: false, 31 | ), 32 | body: new Container( 33 | width: screenSize.width, 34 | height: screenSize.height, 35 | color: const Color.fromRGBO(239, 239, 245, 1.0), 36 | child: new Column( 37 | mainAxisAlignment: MainAxisAlignment.center, 38 | children: [ 39 | new Container( 40 | height: 100.0, 41 | width: 100.0, 42 | decoration: 43 | new BoxDecoration(shape: BoxShape.circle, image: logo), 44 | ), 45 | new Padding( 46 | padding: const EdgeInsets.all(12.0), 47 | child: new Text( 48 | "There are no matches!", 49 | style: new TextStyle( 50 | fontFamily: "Poppins", 51 | fontSize: 15.0, 52 | fontWeight: FontWeight.w100, 53 | letterSpacing: 1.0), 54 | ), 55 | ) 56 | ], 57 | ))); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/Chat/styles.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | DecorationImage logo = new DecorationImage( 4 | image: new ExactAssetImage('assets/first.png'), 5 | fit: BoxFit.cover, 6 | ); 7 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/EditProfile/grid.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | import 'dart:io'; 3 | 4 | class GridImage { 5 | Future imageFile; 6 | GridImage({ 7 | this.imageFile, 8 | }); 9 | } 10 | 11 | class DataListBuilder { 12 | List gridData = new List(); 13 | 14 | GridImage row1 = new GridImage( 15 | imageFile: null, 16 | ); 17 | GridImage row2 = new GridImage( 18 | imageFile: null, 19 | ); 20 | GridImage row3 = new GridImage( 21 | imageFile: null, 22 | ); 23 | GridImage row4 = new GridImage( 24 | imageFile: null, 25 | ); 26 | GridImage row5 = new GridImage( 27 | imageFile: null, 28 | ); 29 | GridImage row6 = new GridImage( 30 | imageFile: null, 31 | ); 32 | GridImage row7 = new GridImage( 33 | imageFile: null, 34 | ); 35 | 36 | DataListBuilder() { 37 | gridData.add(row1); 38 | gridData.add(row2); 39 | gridData.add(row3); 40 | gridData.add(row4); 41 | gridData.add(row5); 42 | gridData.add(row6); 43 | gridData.add(row7); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/EditProfile/index.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | import 'dart:io'; 3 | 4 | import 'package:datingapp/Components/profileImages.dart'; 5 | import 'package:datingapp/Components/profileInputs.dart'; 6 | import 'package:datingapp/Screens/EditProfile/grid.dart'; 7 | import 'package:datingapp/theme/styles.dart'; 8 | import 'package:flutter/cupertino.dart'; 9 | import 'package:flutter/foundation.dart'; 10 | import 'package:flutter/material.dart'; 11 | import 'package:image_picker/image_picker.dart'; 12 | 13 | class EditProfile extends StatefulWidget { 14 | @override 15 | _EditProfileState createState() => new _EditProfileState(); 16 | } 17 | 18 | class _EditProfileState extends State { 19 | Future _imageFile; 20 | bool instaValue = true; 21 | 22 | DataListBuilder dataListBuilder = new DataListBuilder(); 23 | getImage(int index) { 24 | List list = dataListBuilder.gridData; 25 | if (list[index].imageFile != null) { 26 | list[index].imageFile = null; 27 | setState(() { 28 | _imageFile = null; 29 | }); 30 | } else { 31 | _imageFile = ImagePicker.pickImage(source: ImageSource.gallery); 32 | 33 | _imageFile.then((onValue) { 34 | print(onValue); 35 | if (onValue != null) { 36 | list[index].imageFile = _imageFile; 37 | setState(() { 38 | _imageFile = null; 39 | }); 40 | } 41 | }); 42 | } 43 | } 44 | 45 | @override 46 | Widget build(BuildContext context) { 47 | List list = dataListBuilder.gridData; 48 | Size screenSize = MediaQuery.of(context).size; 49 | return new Scaffold( 50 | backgroundColor: const Color.fromRGBO(239, 239, 245, 1.0), 51 | appBar: new AppBar( 52 | elevation: 2.0, 53 | brightness: Brightness.light, 54 | backgroundColor: Colors.white, 55 | title: new Text( 56 | "Edit Profile", 57 | style: new TextStyle( 58 | color: new Color.fromRGBO(92, 107, 122, 1.0), 59 | fontSize: 25.0, 60 | fontFamily: "Poppins", 61 | fontWeight: FontWeight.bold), 62 | ), 63 | centerTitle: false, 64 | leading: new FlatButton( 65 | onPressed: () { 66 | Navigator.of(context).pop(); 67 | }, 68 | child: 69 | new Image(image: new ExactAssetImage("assets/back-arrow.png"))), 70 | automaticallyImplyLeading: true, 71 | ), 72 | body: new SingleChildScrollView( 73 | padding: new EdgeInsets.all(10.0), 74 | child: new Column( 75 | mainAxisAlignment: MainAxisAlignment.spaceEvenly, 76 | crossAxisAlignment: CrossAxisAlignment.start, 77 | children: [ 78 | new Padding( 79 | padding: const EdgeInsets.all(10.0), 80 | child: new Text( 81 | "Photos", 82 | style: new TextStyle( 83 | fontSize: 20.0, fontFamily: "PoppinsRegular"), 84 | ), 85 | ), 86 | new Row( 87 | // mainAxisAlignment: MainAxisAlignment.spaceAround, 88 | children: [ 89 | new ProfileImage( 90 | margin: 10.0, 91 | width: 200.0, 92 | height: 280.0, 93 | numtext: "1", 94 | imageFile: list[0].imageFile, 95 | iconOnClick: () { 96 | getImage(0); 97 | }, 98 | ), 99 | new Column( 100 | children: [ 101 | new ProfileImage( 102 | margin: 10.0, 103 | width: 90.0, 104 | height: 130.0, 105 | numtext: "2", 106 | imageFile: list[1].imageFile, 107 | iconOnClick: () { 108 | getImage(1); 109 | }, 110 | ), 111 | new ProfileImage( 112 | margin: 10.0, 113 | width: 90.0, 114 | height: 130.0, 115 | numtext: "3", 116 | imageFile: list[2].imageFile, 117 | iconOnClick: () { 118 | getImage(2); 119 | }, 120 | ), 121 | ], 122 | ) 123 | ], 124 | ), 125 | new Row( 126 | children: [ 127 | new ProfileImage( 128 | margin: 10.0, 129 | width: 90.0, 130 | height: 130.0, 131 | numtext: "6", 132 | imageFile: list[5].imageFile, 133 | iconOnClick: () { 134 | getImage(5); 135 | }, 136 | ), 137 | new ProfileImage( 138 | margin: 10.0, 139 | width: 90.0, 140 | height: 130.0, 141 | numtext: "5", 142 | imageFile: list[4].imageFile, 143 | iconOnClick: () { 144 | getImage(4); 145 | }, 146 | ), 147 | new ProfileImage( 148 | margin: 10.0, 149 | width: 90.0, 150 | height: 130.0, 151 | numtext: "4", 152 | imageFile: list[3].imageFile, 153 | iconOnClick: () { 154 | getImage(3); 155 | }, 156 | ), 157 | ], 158 | ), 159 | new ProfileInputs( 160 | title: "About Robert Downey", 161 | placeholder: "About you", 162 | lines: 5, 163 | ), 164 | new ProfileInputs( 165 | title: "Current Work", 166 | placeholder: "Select work", 167 | lines: 1, 168 | ), 169 | new ProfileInputs( 170 | title: "School", 171 | placeholder: "Select school", 172 | lines: 1, 173 | ), 174 | new Container( 175 | margin: const EdgeInsets.only(top: 10.0), 176 | padding: const EdgeInsets.all(10.0), 177 | child: new Text( 178 | "Social Media Account", 179 | style: new TextStyle( 180 | fontSize: 20.0, fontFamily: "PoppinsRegular"), 181 | ), 182 | ), 183 | new Card( 184 | child: new Container( 185 | padding: const EdgeInsets.all(12.0), 186 | width: screenSize.width, 187 | height: 100.0, 188 | child: new Row( 189 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 190 | children: [ 191 | new Text( 192 | "Instagram", 193 | style: new TextStyle( 194 | fontSize: 20.0, fontFamily: "PoppinsRegular"), 195 | ), 196 | new Container( 197 | child: defaultTargetPlatform == TargetPlatform.android 198 | ? new Switch( 199 | value: instaValue, 200 | onChanged: (bool newValue) { 201 | setState(() { 202 | instaValue = newValue; 203 | }); 204 | }, 205 | activeColor: Colors.pink, 206 | activeTrackColor: Colors.pink, 207 | ) 208 | : new CupertinoSwitch( 209 | value: instaValue, 210 | onChanged: (bool newValue) { 211 | setState(() { 212 | instaValue = newValue; 213 | }); 214 | }, 215 | activeColor: gradientOne, 216 | ), 217 | ), 218 | ], 219 | ), 220 | )), 221 | new Container( 222 | margin: const EdgeInsets.only(top: 10.0), 223 | padding: const EdgeInsets.all(10.0), 224 | child: new Text( 225 | "Gender", 226 | style: new TextStyle( 227 | fontSize: 20.0, fontFamily: "PoppinsRegular"), 228 | ), 229 | ), 230 | new Container( 231 | padding: const EdgeInsets.all(12.0), 232 | width: screenSize.width, 233 | height: 100.0, 234 | child: new Row( 235 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 236 | children: [ 237 | new Container( 238 | width: 150.0, 239 | height: 50.0, 240 | alignment: Alignment.center, 241 | decoration: new BoxDecoration( 242 | border: 243 | new Border.all(width: 2.0, color: gradientThree), 244 | borderRadius: 245 | new BorderRadius.all(new Radius.circular(50.0))), 246 | child: new Text( 247 | "Male", 248 | style: new TextStyle( 249 | fontSize: 18.0, 250 | letterSpacing: 0.6, 251 | color: gradientThree, 252 | fontWeight: FontWeight.w400), 253 | ), 254 | ), 255 | new Container( 256 | width: 150.0, 257 | height: 50.0, 258 | alignment: Alignment.center, 259 | decoration: new BoxDecoration( 260 | color: gradientOne, 261 | border: 262 | new Border.all(width: 2.0, color: gradientOne), 263 | borderRadius: 264 | new BorderRadius.all(new Radius.circular(50.0))), 265 | child: new Text( 266 | "Female", 267 | style: new TextStyle( 268 | fontSize: 18.0, 269 | letterSpacing: 0.6, 270 | color: Colors.white, 271 | fontWeight: FontWeight.w400), 272 | ), 273 | ) 274 | ], 275 | ), 276 | ) 277 | ], 278 | )), 279 | ); 280 | } 281 | } 282 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/Home/activeCard.dart: -------------------------------------------------------------------------------- 1 | import 'dart:math'; 2 | 3 | import 'package:datingapp/Components/swipeButton.dart'; 4 | import 'package:datingapp/Screens/Home/detail.dart'; 5 | 6 | import 'package:flutter/material.dart'; 7 | 8 | class ActiveCard extends StatelessWidget { 9 | DecorationImage img; 10 | double bottom; 11 | double right; 12 | double left; 13 | double cardWidth; 14 | double rotation; 15 | double skew; 16 | Function dismissImg; 17 | int flag; 18 | Function addImg; 19 | Function swipeRight; 20 | Function swipeLeft; 21 | String tag; 22 | ActiveCard( 23 | {this.addImg, 24 | this.bottom, 25 | this.cardWidth, 26 | this.dismissImg, 27 | this.flag, 28 | this.img, 29 | this.left, 30 | this.right, 31 | this.rotation, 32 | this.skew, 33 | this.swipeLeft, 34 | this.swipeRight, 35 | this.tag}); 36 | 37 | @override 38 | Widget build(BuildContext context) { 39 | Size screenSize = MediaQuery.of(context).size; 40 | 41 | return new Positioned( 42 | bottom: 80.0 + bottom, 43 | right: flag == 0 ? right != 0.0 ? right : null : null, 44 | left: flag == 1 ? right != 0.0 ? right : null : null, 45 | child: new Dismissible( 46 | key: new Key(new Random().toString()), 47 | crossAxisEndOffset: -0.3, 48 | onResize: () {}, 49 | onDismissed: (direction) { 50 | dismissImg(img); 51 | }, 52 | // (direction) { 53 | // // _swipeAnimation(); 54 | // // if (direction == DismissDirection.endToStart) 55 | // dismissImg(img); 56 | // // else 57 | // // addImg(img); 58 | // }, 59 | child: new Transform( 60 | alignment: flag == 0 ? Alignment.bottomRight : Alignment.bottomLeft, 61 | //transform: null, 62 | transform: new Matrix4.skewX(skew), 63 | //..rotateX(-math.pi / rotation), 64 | child: new RotationTransition( 65 | turns: new AlwaysStoppedAnimation( 66 | flag == 0 ? rotation / 360 : -rotation / 360), 67 | child: new Hero( 68 | tag: tag, 69 | child: new GestureDetector( 70 | onTap: () { 71 | Navigator.of(context).push(new PageRouteBuilder( 72 | pageBuilder: (_, __, ___) => new DetailPage(type: img), 73 | )); 74 | }, 75 | child: new Card( 76 | color: Colors.transparent, 77 | elevation: 4.0, 78 | child: new Container( 79 | alignment: Alignment.center, 80 | width: screenSize.width / 1.2 + cardWidth, 81 | height: screenSize.height / 1.7, 82 | decoration: new BoxDecoration( 83 | color: Colors.white, 84 | borderRadius: new BorderRadius.circular(8.0), 85 | // boxShadow: [ 86 | // new BoxShadow( 87 | // offset: Offset(0.0, 2.0), blurRadius: 12.0) 88 | // ] 89 | ), 90 | child: new Column( 91 | children: [ 92 | new Container( 93 | width: screenSize.width / 1.2 + cardWidth, 94 | height: screenSize.height / 2.2, 95 | decoration: new BoxDecoration( 96 | borderRadius: new BorderRadius.only( 97 | topLeft: new Radius.circular(8.0), 98 | topRight: new Radius.circular(8.0)), 99 | image: img, 100 | ), 101 | ), 102 | new Container( 103 | width: screenSize.width / 1.2 + cardWidth, 104 | height: screenSize.height / 1.7 - 105 | screenSize.height / 2.2, 106 | alignment: Alignment.center, 107 | child: new Row( 108 | mainAxisAlignment: 109 | MainAxisAlignment.spaceEvenly, 110 | children: [ 111 | new SwipeButton( 112 | text: "NOPE", 113 | onClick: swipeLeft, 114 | ), 115 | new SwipeButton( 116 | text: "LIKE", 117 | onClick: swipeRight, 118 | ), 119 | ], 120 | )) 121 | ], 122 | ), 123 | ), 124 | ), 125 | ), 126 | ), 127 | ), 128 | ), 129 | )); 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/Home/data.dart: -------------------------------------------------------------------------------- 1 | import 'package:datingapp/Screens/Home/styles.dart'; 2 | 3 | List imageData = [image1, image4, image3, image2, image5]; 4 | List nameData = [ 5 | "Angelina Jolie", 6 | "Els-Fattah", 7 | "Sam Burriss", 8 | "Warren Wong", 9 | "JonathanDaniels" 10 | ]; 11 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/Home/dummyCard.dart: -------------------------------------------------------------------------------- 1 | import 'package:datingapp/Components/swipeButton.dart'; 2 | 3 | import 'package:flutter/material.dart'; 4 | 5 | class DummyCard extends StatelessWidget { 6 | DecorationImage img; 7 | double bottom; 8 | double right; 9 | double left; 10 | double cardWidth; 11 | double rotation; 12 | double skew; 13 | DummyCard( 14 | {this.bottom, 15 | this.cardWidth, 16 | this.img, 17 | this.left, 18 | this.right, 19 | this.rotation, 20 | this.skew}); 21 | @override 22 | Widget build(BuildContext context) { 23 | Size screenSize = MediaQuery.of(context).size; 24 | return new Positioned( 25 | bottom: 80.0 + bottom, 26 | child: new Container( 27 | alignment: Alignment.center, 28 | width: screenSize.width / 1.2 + cardWidth, 29 | height: screenSize.height / 1.7, 30 | decoration: new BoxDecoration( 31 | color: Colors.white, 32 | borderRadius: new BorderRadius.circular(8.0), 33 | ), 34 | child: new Column( 35 | children: [ 36 | new Container( 37 | width: screenSize.width / 1.2 + cardWidth, 38 | height: screenSize.height / 2.2, 39 | decoration: new BoxDecoration( 40 | borderRadius: new BorderRadius.only( 41 | topLeft: new Radius.circular(8.0), 42 | topRight: new Radius.circular(8.0)), 43 | image: img, 44 | ), 45 | ), 46 | new Container( 47 | width: screenSize.width / 1.2 + cardWidth, 48 | height: screenSize.height / 1.7 - screenSize.height / 2.2, 49 | alignment: Alignment.center, 50 | child: new Row( 51 | mainAxisAlignment: MainAxisAlignment.spaceEvenly, 52 | children: [ 53 | new SwipeButton( 54 | text: "NOPE", 55 | onClick: null, 56 | ), 57 | new SwipeButton( 58 | text: "LIKE", 59 | onClick: null, 60 | ), 61 | ], 62 | )) 63 | ], 64 | ), 65 | ), 66 | ); 67 | } 68 | } 69 | 70 | Positioned cardDemoDummy( 71 | DecorationImage img, 72 | double bottom, 73 | double right, 74 | double left, 75 | double cardWidth, 76 | double rotation, 77 | double skew, 78 | BuildContext context) { 79 | Size screenSize = MediaQuery.of(context).size; 80 | 81 | return new Positioned( 82 | bottom: 80.0 + bottom, 83 | // right: flag == 0 ? right != 0.0 ? right : null : null, 84 | //left: flag == 1 ? right != 0.0 ? right : null : null, 85 | child: 86 | // new Card( 87 | // color: Colors.transparent, 88 | // elevation: 4.0, 89 | // child: 90 | new Container( 91 | alignment: Alignment.center, 92 | width: screenSize.width / 1.2 + cardWidth, 93 | height: screenSize.height / 1.7, 94 | decoration: new BoxDecoration( 95 | color: Colors.white, 96 | borderRadius: new BorderRadius.circular(8.0), 97 | ), 98 | child: new Column( 99 | children: [ 100 | new Container( 101 | width: screenSize.width / 1.2 + cardWidth, 102 | height: screenSize.height / 2.2, 103 | decoration: new BoxDecoration( 104 | borderRadius: new BorderRadius.only( 105 | topLeft: new Radius.circular(8.0), 106 | topRight: new Radius.circular(8.0)), 107 | image: img, 108 | ), 109 | ), 110 | new Container( 111 | width: screenSize.width / 1.2 + cardWidth, 112 | height: screenSize.height / 1.7 - screenSize.height / 2.2, 113 | alignment: Alignment.center, 114 | child: new Row( 115 | mainAxisAlignment: MainAxisAlignment.spaceEvenly, 116 | children: [ 117 | new SwipeButton( 118 | text: "NOPE", 119 | onClick: null, 120 | ), 121 | new SwipeButton( 122 | text: "LIKE", 123 | onClick: null, 124 | ), 125 | ], 126 | )) 127 | ], 128 | ), 129 | ), 130 | // ), 131 | ); 132 | } 133 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/Home/index.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | import 'package:datingapp/Screens/Home/activeCard.dart'; 3 | import 'package:datingapp/Screens/Home/data.dart'; 4 | 5 | import 'package:flutter/material.dart'; 6 | import 'package:flutter/scheduler.dart'; 7 | 8 | class HomePage extends StatefulWidget { 9 | @override 10 | _HomePageState createState() => new _HomePageState(); 11 | } 12 | 13 | class _HomePageState extends State with TickerProviderStateMixin { 14 | AnimationController _buttonController; 15 | Animation rotate; 16 | Animation right; 17 | Animation bottom; 18 | Animation width; 19 | int flag = 0; 20 | 21 | List data = imageData; 22 | //List selectedData = []; 23 | void initState() { 24 | super.initState(); 25 | //data = data.reversed.toList(); 26 | _buttonController = new AnimationController( 27 | duration: new Duration(milliseconds: 1000), vsync: this); 28 | 29 | rotate = new Tween( 30 | begin: -0.0, 31 | end: -40.0, 32 | ).animate( 33 | new CurvedAnimation( 34 | parent: _buttonController, 35 | curve: Curves.ease, 36 | ), 37 | ); 38 | rotate.addListener(() { 39 | setState(() { 40 | if (rotate.isCompleted) { 41 | data.removeLast(); 42 | // data.insert(0, i); 43 | 44 | _buttonController.reset(); 45 | } 46 | }); 47 | }); 48 | 49 | right = new Tween( 50 | begin: 0.0, 51 | end: 400.0, 52 | ).animate( 53 | new CurvedAnimation( 54 | parent: _buttonController, 55 | curve: Curves.ease, 56 | ), 57 | ); 58 | bottom = new Tween( 59 | begin: 15.0, 60 | end: 100.0, 61 | ).animate( 62 | new CurvedAnimation( 63 | parent: _buttonController, 64 | curve: Curves.ease, 65 | ), 66 | ); 67 | } 68 | 69 | @override 70 | void dispose() { 71 | _buttonController.dispose(); 72 | super.dispose(); 73 | } 74 | 75 | Future _swipeAnimation() async { 76 | try { 77 | await _buttonController.forward(); 78 | } on TickerCanceled {} 79 | } 80 | 81 | dismissImg(DecorationImage img) { 82 | setState(() { 83 | data.remove(img); 84 | }); 85 | } 86 | 87 | addImg(DecorationImage img) { 88 | setState(() { 89 | data.remove(img); 90 | // selectedData.add(img); 91 | }); 92 | } 93 | 94 | swipeRight() { 95 | if (flag == 0) 96 | setState(() { 97 | flag = 1; 98 | }); 99 | _swipeAnimation(); 100 | } 101 | 102 | swipeLeft() { 103 | if (flag == 1) 104 | setState(() { 105 | flag = 0; 106 | }); 107 | _swipeAnimation(); 108 | } 109 | 110 | @override 111 | Widget build(BuildContext context) { 112 | timeDilation = 0.4; 113 | 114 | double initialBottom = 15.0; 115 | var dataLength = data.length; 116 | double backCardPosition = initialBottom + (dataLength - 1) * 10 + 10; 117 | double backCardWidth = -10.0; 118 | return (new Scaffold( 119 | appBar: new AppBar( 120 | automaticallyImplyLeading: false, 121 | elevation: 0.5, 122 | backgroundColor: Colors.white, 123 | title: new Row( 124 | mainAxisAlignment: MainAxisAlignment.start, 125 | children: [ 126 | new Text( 127 | "Discovers", 128 | style: new TextStyle( 129 | color: new Color.fromRGBO(92, 107, 122, 1.0), 130 | fontSize: 32.0, 131 | ), 132 | ), 133 | new Container( 134 | width: 15.0, 135 | height: 15.0, 136 | margin: new EdgeInsets.only(bottom: 20.0), 137 | alignment: Alignment.center, 138 | child: new Text( 139 | dataLength.toString(), 140 | style: new TextStyle(fontSize: 10.0), 141 | ), 142 | decoration: new BoxDecoration( 143 | color: Colors.red, shape: BoxShape.circle), 144 | ) 145 | ], 146 | ), 147 | ), 148 | body: new Container( 149 | color: const Color.fromRGBO(239, 239, 245, 1.0), 150 | alignment: Alignment.center, 151 | child: dataLength > 0 152 | ? new Stack( 153 | alignment: AlignmentDirectional.center, 154 | children: data.map((item) { 155 | backCardPosition = backCardPosition - 10; 156 | backCardWidth = backCardWidth + 10; 157 | return new ActiveCard( 158 | tag: data.indexOf(item) == dataLength - 1 159 | ? "img" + data.indexOf(item).toString() 160 | : "noimg" + data.indexOf(item).toString(), 161 | img: item, 162 | bottom: data.indexOf(item) == dataLength - 1 163 | ? bottom.value 164 | : backCardPosition, 165 | right: data.indexOf(item) == dataLength - 1 166 | ? right.value 167 | : 0.0, 168 | left: 0.0, 169 | cardWidth: backCardWidth, 170 | rotation: data.indexOf(item) == dataLength - 1 171 | ? rotate.value 172 | : 0.0, 173 | skew: data.indexOf(item) == dataLength - 1 174 | ? rotate.value < -10 ? 0.1 : 0.0 175 | : 0.0, 176 | dismissImg: dismissImg, 177 | flag: flag, 178 | swipeRight: swipeRight, 179 | swipeLeft: swipeLeft); 180 | }).toList()) 181 | : new Text("There's no one new around you!", 182 | style: new TextStyle(color: Colors.grey, fontSize: 20.0)), 183 | ))); 184 | } 185 | } 186 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/Home/styles.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | // DecorationImage image1 = new DecorationImage( 4 | // image: new ExactAssetImage('assets/1.jpg'), 5 | // fit: BoxFit.cover, 6 | // ); 7 | // DecorationImage image2 = new DecorationImage( 8 | // image: new ExactAssetImage('assets/warren-wong.jpg'), 9 | // fit: BoxFit.cover, 10 | // ); 11 | 12 | // DecorationImage image3 = new DecorationImage( 13 | // image: new ExactAssetImage('assets/sam-burriss.jpg'), 14 | // fit: BoxFit.cover, 15 | // ); 16 | // DecorationImage image4 = new DecorationImage( 17 | // image: new ExactAssetImage('assets/jonathan-daniels.jpg'), 18 | // fit: BoxFit.cover, 19 | // ); 20 | // DecorationImage image5 = new DecorationImage( 21 | // image: new ExactAssetImage('assets/els-fattah.jpg'), 22 | // fit: BoxFit.cover, 23 | // ); 24 | DecorationImage image1 = new DecorationImage( 25 | image: new ExactAssetImage('assets/img1.png'), 26 | fit: BoxFit.cover, 27 | ); 28 | DecorationImage image2 = new DecorationImage( 29 | image: new ExactAssetImage('assets/img2.jpg'), 30 | fit: BoxFit.cover, 31 | ); 32 | 33 | DecorationImage image3 = new DecorationImage( 34 | image: new ExactAssetImage('assets/img3.jpg'), 35 | fit: BoxFit.cover, 36 | ); 37 | DecorationImage image4 = new DecorationImage( 38 | image: new ExactAssetImage('assets/img4.jpg'), 39 | fit: BoxFit.cover, 40 | ); 41 | DecorationImage image5 = new DecorationImage( 42 | image: new ExactAssetImage('assets/img5.jpg'), 43 | fit: BoxFit.cover, 44 | ); 45 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/Login/index.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | import 'dart:convert'; 3 | 4 | import 'package:datingapp/Screens/Login/pages.dart'; 5 | import 'package:datingapp/Screens/Login/styles.dart'; 6 | import 'package:flutter/material.dart'; 7 | import 'package:flutter/scheduler.dart'; 8 | import 'package:flutter/services.dart'; 9 | // import 'package:firebase_auth/firebase_auth.dart'; 10 | import 'package:flutter_facebook_login/flutter_facebook_login.dart'; 11 | 12 | class Login extends StatefulWidget { 13 | @override 14 | _LoginState createState() => new _LoginState(); 15 | } 16 | 17 | class _LoginState extends State with TickerProviderStateMixin { 18 | // final FirebaseAuth _auth = FirebaseAuth.instance; 19 | PageController controller; 20 | 21 | var index = 0; 22 | bool loader = false; 23 | String _message = 'Log in/out by pressing the buttons below.'; 24 | // Timer t2; 25 | // var twenty; 26 | initState() { 27 | super.initState(); 28 | controller = new PageController(initialPage: 0, keepPage: true); 29 | } 30 | 31 | static final FacebookLogin facebookSignIn = new FacebookLogin(); 32 | Future _login() async { 33 | setState(() { 34 | loader = true; 35 | }); 36 | Navigator.of(context).pushNamed("/home"); 37 | // final FacebookLoginResult result = 38 | // await facebookSignIn.logInWithReadPermissions(['email']); 39 | 40 | // switch (result.status) { 41 | // case FacebookLoginStatus.loggedIn: 42 | // final FacebookAccessToken accessToken = result.accessToken; 43 | // _showMessage(''' 44 | // Logged in! 45 | // Token: ${accessToken.token} 46 | // User id: ${accessToken.userId} 47 | // Expires: ${accessToken.expires} 48 | // Permissions: ${accessToken.permissions} 49 | // Declined permissions: ${accessToken.declinedPermissions} 50 | // '''); 51 | // // final FirebaseUser user = await _auth.signInWithFacebook( 52 | // // accessToken: result.accessToken.token); 53 | 54 | // // print(user); 55 | // Navigator.of(context).pushNamed("/home"); 56 | // break; 57 | // case FacebookLoginStatus.cancelledByUser: 58 | // _showMessage('Login cancelled by the user.'); 59 | // break; 60 | // case FacebookLoginStatus.error: 61 | // _showMessage('Something went wrong with the login process.\n' 62 | // 'Here\'s the error Facebook gave us: ${result.errorMessage}'); 63 | // break; 64 | // } 65 | } 66 | 67 | // Future _logOut() async { 68 | // await facebookSignIn.logOut(); 69 | // _showMessage('Logged out.'); 70 | // } 71 | 72 | void _showMessage(String message) { 73 | setState(() { 74 | _message = message; 75 | print(_message); 76 | loader = false; 77 | }); 78 | } 79 | 80 | @override 81 | dispose() { 82 | controller.dispose(); 83 | super.dispose(); 84 | } 85 | 86 | @override 87 | Widget build(BuildContext context) { 88 | SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark); 89 | 90 | Size screenSize = MediaQuery.of(context).size; 91 | return new Scaffold( 92 | body: new Container( 93 | width: screenSize.width, 94 | height: screenSize.height, 95 | padding: new EdgeInsets.all(20.0), 96 | decoration: new BoxDecoration(image: backgroundImage), 97 | child: new Column( 98 | // mainAxisAlignment: MainAxisAlignment.spaceEvenly, 99 | children: [ 100 | new Container( 101 | width: screenSize.width, 102 | height: screenSize.height - 200, 103 | child: new PageView.builder( 104 | onPageChanged: (value) { 105 | setState(() { 106 | index = value; 107 | }); 108 | }, 109 | controller: controller, 110 | itemCount: pages.length, 111 | itemBuilder: (context, index) => new Page( 112 | viewModel: pages[index], 113 | ), 114 | ), 115 | ), 116 | new Container( 117 | width: 120.0, 118 | height: 20.0, 119 | margin: new EdgeInsets.only(bottom: 20.0), 120 | child: new Row( 121 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 122 | children: pages.map((item) { 123 | return new Container( 124 | width: 10.0, 125 | height: 10.0, 126 | decoration: new BoxDecoration( 127 | shape: BoxShape.circle, 128 | color: pages[index % 4] == item 129 | ? Colors.white 130 | : Colors.white70), 131 | ); 132 | }).toList()), 133 | ), 134 | new FlatButton( 135 | onPressed: _login, 136 | child: new Container( 137 | width: 300.0, 138 | height: 50.0, 139 | alignment: Alignment.center, 140 | decoration: new BoxDecoration( 141 | color: Colors.white, 142 | borderRadius: 143 | new BorderRadius.all(new Radius.circular(50.0))), 144 | child: !loader 145 | ? new Text( 146 | "Login with Facebook", 147 | style: new TextStyle( 148 | fontSize: 15.0, 149 | letterSpacing: 1.0, 150 | color: Colors.black, 151 | fontWeight: FontWeight.w100), 152 | ) 153 | : new CircularProgressIndicator( 154 | value: null, 155 | strokeWidth: 5.0, 156 | valueColor: 157 | new AlwaysStoppedAnimation(Colors.blue), 158 | ), 159 | ), 160 | ), 161 | // new RaisedButton( 162 | // onPressed: _logOut, 163 | // child: new Text("Log out"), 164 | // ) 165 | ], 166 | ), 167 | )); 168 | } 169 | } 170 | 171 | //AnimationController pageController; 172 | //Animation count; 173 | // pageController = new AnimationController( 174 | // duration: new Duration(milliseconds: 4000), vsync: this); 175 | // count = new IntTween( 176 | // begin: 0, 177 | // end: 3, 178 | // ).animate( 179 | // new CurvedAnimation( 180 | // parent: pageController, 181 | // curve: Curves.ease, 182 | // ), 183 | // ); 184 | // count.addListener(() { 185 | // print(count.value); 186 | // if(count.isCompleted) 187 | // this.setState((){ 188 | // 189 | // index=0; 190 | // controller.initialPage; 191 | // pageController.reset(); 192 | // 193 | // }); 194 | // this.setState(() { 195 | // 196 | // if (controller.offset != null && index==count.value && index[ 21 | new Text( 22 | viewModel.text, 23 | style: new TextStyle( 24 | color: Colors.white, fontSize: 21.0, fontFamily: "Poppins"), 25 | textAlign: TextAlign.center, 26 | ), 27 | new Image(image: viewModel.img), 28 | 29 | ], 30 | ); 31 | } 32 | } 33 | 34 | class PageViewModel { 35 | final ImageProvider img; 36 | final String text; 37 | PageViewModel(this.img, this.text); 38 | } 39 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/Login/styles.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | DecorationImage backgroundImage = new DecorationImage( 4 | image: new ExactAssetImage('assets/bg.png'), 5 | fit: BoxFit.cover, 6 | ); 7 | 8 | ImageProvider firstPage = new ExactAssetImage("assets/first.png"); 9 | ImageProvider secondPage = new ExactAssetImage("assets/second.png"); 10 | ImageProvider thirdPage = new ExactAssetImage("assets/third.png"); 11 | ImageProvider fourthPage = new ExactAssetImage("assets/fourth.png"); 12 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/TabController/index.dart: -------------------------------------------------------------------------------- 1 | import 'package:datingapp/Screens/Chat/index.dart'; 2 | import 'package:datingapp/Screens/Home/index.dart'; 3 | import 'package:datingapp/Screens/Account/index.dart'; 4 | import 'package:datingapp/Screens/TabController/styles.dart'; 5 | import 'package:flutter/material.dart'; 6 | 7 | class Home extends StatefulWidget { 8 | @override 9 | _HomeState createState() => new _HomeState(); 10 | } 11 | 12 | class _HomeState extends State with SingleTickerProviderStateMixin { 13 | TabController controller; 14 | int index = 0; 15 | 16 | void initState() { 17 | super.initState(); 18 | controller = new TabController(length: 3, vsync: this); 19 | controller.addListener(() { 20 | this.setState(() { 21 | index = controller.index; 22 | // print(index); 23 | }); 24 | }); 25 | } 26 | 27 | @override 28 | Widget build(BuildContext context) { 29 | Size screenSize = MediaQuery.of(context).size; 30 | 31 | return new Scaffold( 32 | bottomNavigationBar: new Container( 33 | height: screenSize.height / 12, 34 | child: new TabBar( 35 | tabs: [ 36 | // new Tab( 37 | // icon: new Icon( 38 | // Icons.check_circle_outline, 39 | // color: Colors.black, 40 | // ), 41 | // ), 42 | // new Tab( 43 | // icon: new Icon( 44 | // Icons.supervised_user_circle, 45 | // color: Colors.black, 46 | // ), 47 | // ), 48 | // new Tab( 49 | // icon: new Icon( 50 | // Icons.access_time, 51 | // color: Colors.black, 52 | // ), 53 | // ), 54 | new Tab( 55 | child: new Container( 56 | width: 30.0, 57 | height: 30.0, 58 | decoration: new BoxDecoration( 59 | image: index == 0 ? homeColor : homeBlackWhite), 60 | ), 61 | ), 62 | new Tab( 63 | child: new Container( 64 | width: 35.0, 65 | height: 30.0, 66 | decoration: new BoxDecoration( 67 | image: index == 1 ? chatColor : chatBlackWhite), 68 | ), 69 | ), 70 | new Tab( 71 | child: new Container( 72 | width: 30.0, 73 | height: 30.0, 74 | decoration: new BoxDecoration( 75 | image: index == 2 ? accountColor : accountBlackWhite), 76 | ), 77 | ), 78 | ], 79 | controller: controller, 80 | indicatorColor: Colors.transparent, 81 | // unselectedLabelColor: Colors.white30, 82 | ), 83 | color: Colors.white, 84 | ), 85 | body: new TabBarView( 86 | children: [new HomePage(), new Chat(), new Profile()], 87 | controller: controller, 88 | ), 89 | ); 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/TabController/styles.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | DecorationImage homeColor = new DecorationImage( 4 | image: new ExactAssetImage('assets/Home.png'), 5 | fit: BoxFit.cover, 6 | ); 7 | DecorationImage homeBlackWhite = new DecorationImage( 8 | image: new ExactAssetImage('assets/home2.png'), 9 | fit: BoxFit.cover, 10 | ); 11 | 12 | DecorationImage chatColor = new DecorationImage( 13 | image: new ExactAssetImage('assets/chat.png'), 14 | fit: BoxFit.cover, 15 | ); 16 | DecorationImage chatBlackWhite = new DecorationImage( 17 | image: new ExactAssetImage('assets/chat2.png'), 18 | fit: BoxFit.cover, 19 | ); 20 | 21 | DecorationImage accountColor = new DecorationImage( 22 | image: new ExactAssetImage('assets/account.png'), 23 | fit: BoxFit.cover, 24 | ); 25 | DecorationImage accountBlackWhite = new DecorationImage( 26 | image: new ExactAssetImage('assets/account2.png'), 27 | fit: BoxFit.cover, 28 | ); 29 | // ImageProvider homeColor = new ExactAssetImage("assets/Home.png"); 30 | //ImageProvider homeBlackWhite = new ExactAssetImage("assets/home2.png"); 31 | // ImageProvider chatColor = new ExactAssetImage("assets/chat.png"); 32 | // ImageProvider chatBlackWhite = new ExactAssetImage("assets/chat2.png"); 33 | 34 | // ImageProvider accountColor = new ExactAssetImage("assets/account.png"); 35 | // ImageProvider accountBlackWhite = new ExactAssetImage("assets/account2.png"); 36 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/testcc/index.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Login extends StatefulWidget { 4 | @override 5 | _LoginState createState() => new _LoginState(); 6 | } 7 | 8 | class _LoginState extends State { 9 | @override 10 | Widget build(BuildContext context) { 11 | Size screenSize = MediaQuery.of(context).size; 12 | return new Scaffold( 13 | body: new Container( 14 | width: screenSize.width, 15 | height: screenSize.height, 16 | decoration: new BoxDecoration( 17 | image: new DecorationImage( 18 | image: new ExactAssetImage('assets/Background.png'), 19 | fit: BoxFit.cover, 20 | )), 21 | child: new FlatButton( 22 | onPressed: () => 23 | Navigator.of(context).pushReplacementNamed("/sign"), 24 | child: new Text( 25 | "click", 26 | style: new TextStyle(color: Colors.white, fontSize: 40.0), 27 | ), 28 | )), 29 | ); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /datingapp/lib/Screens/testcc/sign.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Loginsign extends StatefulWidget { 4 | @override 5 | _LoginsignState createState() => new _LoginsignState(); 6 | } 7 | 8 | class _LoginsignState extends State { 9 | DecorationImage img; 10 | @override 11 | void initState() { 12 | super.initState(); 13 | img = new DecorationImage( 14 | image: new ExactAssetImage('assets/bg.png'), 15 | fit: BoxFit.cover, 16 | ); 17 | } 18 | 19 | @override 20 | Widget build(BuildContext context) { 21 | Size screenSize = MediaQuery.of(context).size; 22 | return new Scaffold( 23 | body: new Container( 24 | width: screenSize.width, 25 | height: screenSize.height, 26 | decoration: new BoxDecoration(image: img), 27 | ), 28 | ); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /datingapp/lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:datingapp/routes.dart'; 2 | 3 | void main() { 4 | new Routes(); 5 | } 6 | -------------------------------------------------------------------------------- /datingapp/lib/multislider.dart: -------------------------------------------------------------------------------- 1 | // import 'package:datingapp/theme/styles.dart'; 2 | // import 'package:flutter/material.dart'; 3 | 4 | // class MultiSlider extends StatefulWidget { 5 | // @override 6 | // _MultiSliderState createState() => new _MultiSliderState(); 7 | // } 8 | 9 | // class _MultiSliderState extends State { 10 | // double distance = 0.0; 11 | // double ageRangeLeft = 0.0; 12 | // double ageRangeRight = 0.0; 13 | 14 | // Offset dragStart; 15 | 16 | // onDragStart(DragStartDetails details) { 17 | // dragStart = details.globalPosition; 18 | 19 | // print("dragStart: ${details.globalPosition}"); 20 | // } 21 | 22 | // onDragUpdate(DragUpdateDetails details) { 23 | // if (dragStart != null) { 24 | // final newPosition = details.globalPosition; 25 | // final dx = dragStart.dx - newPosition.dx; 26 | // print("newPosition ${newPosition.dx}"); 27 | // print("age ${ageRangeLeft}"); 28 | 29 | // print(dx); 30 | // if (dx > 0.0) { 31 | // setState(() { 32 | // ageRangeLeft = newPosition.dx; 33 | // }); 34 | // } else if (dx < 0.0) { 35 | // setState(() { 36 | // ageRangeLeft = newPosition.dx; 37 | // }); 38 | // } else {} 39 | // } 40 | // } 41 | 42 | // onDragEnd(DragEndDetails details) { 43 | // print("dragEnd"); 44 | // final dy = dragStart.dy; 45 | // dragStart = new Offset(ageRangeLeft, dy); 46 | // } 47 | 48 | // onDragStart1(DragStartDetails details) { 49 | // dragStart = details.globalPosition; 50 | // //print(dragStart); 51 | // } 52 | 53 | // onDragUpdate1(DragUpdateDetails details) { 54 | // if (dragStart != null) { 55 | // final newPosition = details.globalPosition; 56 | // final dx = dragStart.dx - newPosition.dx; 57 | // print("newPosition ${newPosition.dx}"); 58 | // print(dx); 59 | // if (dx > 0.0) { 60 | // setState(() { 61 | // ageRangeRight = dx; 62 | // }); 63 | // } else if (dx < 0.0) { 64 | // setState(() { 65 | // ageRangeRight = dx; 66 | // }); 67 | // } else {} 68 | // } 69 | // } 70 | 71 | // onDragEnd1(DragEndDetails details) { 72 | // print("dragEnd"); 73 | // //final dy = dragStart.dy; 74 | // //dragStart = new Offset(ageRangeRight, dy); 75 | // } 76 | 77 | // @override 78 | // Widget build(BuildContext context) { 79 | // Size screenSize = MediaQuery.of(context).size; 80 | // return new Scaffold( 81 | // body: new Column(children: [ 82 | // new ListTile( 83 | // title: new Text("Age Range"), 84 | // trailing: new Text((ageRangeLeft + 18).round().toString() + 85 | // "-" + 86 | // (100 - ageRangeRight).round().toString()), 87 | // ), 88 | // new ListTile( 89 | // enabled: false, 90 | // title: new Stack( 91 | // alignment: Alignment.center, 92 | // children: [ 93 | // new Container( 94 | // width: screenSize.width, 95 | // height: 25.0, 96 | // ), 97 | // new Positioned( 98 | // //left: 0.0, 99 | // child: new Container( 100 | // height: 4.0, 101 | // width: screenSize.width, 102 | // color: Colors.grey, 103 | // child: new Row( 104 | // children: [ 105 | // new Flexible( 106 | // flex: ageRangeLeft.floor(), 107 | // child: new Container(), 108 | // ), 109 | // new Flexible( 110 | // flex: 60, 111 | // child: new Container( 112 | // color: gradientOne, 113 | // ), 114 | // ), 115 | // new Flexible( 116 | // flex: ageRangeRight.floor(), 117 | // child: new Container( 118 | // color: Colors.grey, 119 | // ), 120 | // ) 121 | // ], 122 | // ), 123 | // ), 124 | // ), 125 | // new Positioned( 126 | // left: ageRangeLeft, 127 | // child: new GestureDetector( 128 | // onHorizontalDragStart: onDragStart, 129 | // onHorizontalDragUpdate: onDragUpdate, 130 | // onHorizontalDragEnd: onDragEnd, 131 | // child: new Container( 132 | // height: 20.0, 133 | // width: 20.0, 134 | // decoration: new BoxDecoration( 135 | // shape: BoxShape.circle, 136 | // color: gradientTwo, 137 | // ), 138 | // ), 139 | // ), 140 | // ), 141 | // new Positioned( 142 | // right: ageRangeRight, 143 | // child: new GestureDetector( 144 | // onHorizontalDragStart: onDragStart1, 145 | // onHorizontalDragUpdate: onDragUpdate1, 146 | // onHorizontalDragEnd: onDragEnd1, 147 | // child: new Container( 148 | // height: 20.0, 149 | // width: 20.0, 150 | // decoration: new BoxDecoration( 151 | // shape: BoxShape.circle, 152 | // color: gradientTwo, 153 | // ), 154 | // ), 155 | // ), 156 | // ) 157 | // ], 158 | // )), 159 | // ]), 160 | // ); 161 | // } 162 | // } 163 | import 'package:flutter/material.dart'; 164 | import 'package:flutter_range_slider/flutter_range_slider.dart'; 165 | 166 | void main() => runApp(new MyApp()); 167 | 168 | class MyApp extends StatelessWidget { 169 | // This widget is the root of your application. 170 | @override 171 | Widget build(BuildContext context) { 172 | return new MaterialApp( 173 | title: 'RangeSlider Demo', 174 | theme: new ThemeData( 175 | primarySwatch: Colors.blue, 176 | ), 177 | home: new RangeSliderSample(), 178 | ); 179 | } 180 | } 181 | 182 | class RangeSliderSample extends StatefulWidget { 183 | @override 184 | _RangeSliderSampleState createState() => _RangeSliderSampleState(); 185 | } 186 | 187 | class _RangeSliderSampleState extends State { 188 | // List of RangeSliders to use, together with their parameters 189 | List rangeSliders; 190 | 191 | double _lowerValue = 20.0; 192 | double _upperValue = 80.0; 193 | 194 | @override 195 | void initState() { 196 | super.initState(); 197 | rangeSliders = _rangeSliderDefinitions(); 198 | } 199 | 200 | @override 201 | Widget build(BuildContext context) { 202 | return new SafeArea( 203 | top: false, 204 | bottom: false, 205 | child: new Scaffold( 206 | appBar: new AppBar(title: new Text('RangeSlider Demo')), 207 | body: new Container( 208 | padding: const EdgeInsets.only(top: 50.0, left: 10.0, right: 10.0), 209 | child: new Column( 210 | children: [] 211 | // ..add( 212 | // // 213 | // // Simple example 214 | // // 215 | // new RangeSlider( 216 | // min: 0.0, 217 | // max: 100.0, 218 | // lowerValue: _lowerValue, 219 | // upperValue: _upperValue, 220 | // divisions: 5, 221 | // showValueIndicator: true, 222 | // valueIndicatorMaxDecimals: 1, 223 | // onChanged: (double newLowerValue, double newUpperValue) { 224 | // setState(() { 225 | // _lowerValue = newLowerValue; 226 | // _upperValue = newUpperValue; 227 | // }); 228 | // }, 229 | // onChangeStart: 230 | // (double startLowerValue, double startUpperValue) { 231 | // print( 232 | // 'Started with values: $startLowerValue and $startUpperValue'); 233 | // }, 234 | // onChangeEnd: (double newLowerValue, double newUpperValue) { 235 | // print( 236 | // 'Ended with values: $newLowerValue and $newUpperValue'); 237 | // }, 238 | // ), 239 | // ) 240 | // // Add some space 241 | // ..add( 242 | // new SizedBox(height: 24.0), 243 | // ) 244 | // 245 | // Add a series of RangeSliders, built as regular Widgets 246 | // each one having some specific customizations 247 | // 248 | ..addAll(_buildRangeSliders())), 249 | ), 250 | ), 251 | ); 252 | } 253 | 254 | // ----------------------------------------------- 255 | // Creates a list of RangeSliders, based on their 256 | // definition and SliderTheme customizations 257 | // ----------------------------------------------- 258 | List _buildRangeSliders() { 259 | List children = []; 260 | for (int index = 0; index < rangeSliders.length; index++) { 261 | children 262 | .add(rangeSliders[index].build(context, (double lower, double upper) { 263 | // adapt the RangeSlider lowerValue and upperValue 264 | setState(() { 265 | rangeSliders[index].lowerValue = lower; 266 | rangeSliders[index].upperValue = upper; 267 | }); 268 | })); 269 | // Add an extra padding at the bottom of each RangeSlider 270 | children.add(new SizedBox(height: 8.0)); 271 | } 272 | 273 | return children; 274 | } 275 | 276 | // ------------------------------------------------- 277 | // Creates a list of RangeSlider definitions 278 | // ------------------------------------------------- 279 | List _rangeSliderDefinitions() { 280 | return [ 281 | RangeSliderData( 282 | min: 0.0, 283 | max: 100.0, 284 | lowerValue: 10.0, 285 | upperValue: 100.0, 286 | thumbColor: Colors.pink, 287 | activeTrackColor: Colors.blue, 288 | inactiveTrackColor: Colors.grey, 289 | valueIndicatorColor: Colors.black), 290 | // RangeSliderData( 291 | // min: 0.0, 292 | // max: 100.0, 293 | // lowerValue: 25.0, 294 | // upperValue: 75.0, 295 | // divisions: 20, 296 | // overlayColor: Colors.red[100]), 297 | // RangeSliderData( 298 | // min: 0.0, 299 | // max: 100.0, 300 | // lowerValue: 10.0, 301 | // upperValue: 30.0, 302 | // showValueIndicator: false, 303 | // valueIndicatorMaxDecimals: 0), 304 | // RangeSliderData( 305 | // min: 0.0, 306 | // max: 100.0, 307 | // lowerValue: 10.0, 308 | // upperValue: 30.0, 309 | // showValueIndicator: true, 310 | // valueIndicatorMaxDecimals: 0, 311 | // activeTrackColor: Colors.red, 312 | // inactiveTrackColor: Colors.red[50], 313 | // valueIndicatorColor: Colors.green), 314 | // RangeSliderData( 315 | // min: 0.0, 316 | // max: 100.0, 317 | // lowerValue: 25.0, 318 | // upperValue: 75.0, 319 | // divisions: 20, 320 | // thumbColor: Colors.grey, 321 | // valueIndicatorColor: Colors.grey), 322 | ]; 323 | } 324 | } 325 | 326 | class RangeSliderData { 327 | double min; 328 | double max; 329 | double lowerValue; 330 | double upperValue; 331 | int divisions; 332 | bool showValueIndicator; 333 | int valueIndicatorMaxDecimals; 334 | bool forceValueIndicator; 335 | Color overlayColor; 336 | Color activeTrackColor; 337 | Color inactiveTrackColor; 338 | Color thumbColor; 339 | Color valueIndicatorColor; 340 | Color activeTickMarkColor; 341 | 342 | static const Color defaultActiveTrackColor = const Color(0xFF0175c2); 343 | static const Color defaultInactiveTrackColor = const Color(0x3d0175c2); 344 | static const Color defaultActiveTickMarkColor = const Color(0x8a0175c2); 345 | static const Color defaultThumbColor = const Color(0xFF0175c2); 346 | static const Color defaultValueIndicatorColor = const Color(0xFF0175c2); 347 | static const Color defaultOverlayColor = const Color(0x290175c2); 348 | 349 | RangeSliderData({ 350 | this.min, 351 | this.max, 352 | this.lowerValue, 353 | this.upperValue, 354 | this.divisions, 355 | this.showValueIndicator: true, 356 | this.valueIndicatorMaxDecimals: 1, 357 | this.forceValueIndicator: false, 358 | this.overlayColor: defaultOverlayColor, 359 | this.activeTrackColor: defaultActiveTrackColor, 360 | this.inactiveTrackColor: defaultInactiveTrackColor, 361 | this.thumbColor: defaultThumbColor, 362 | this.valueIndicatorColor: defaultValueIndicatorColor, 363 | this.activeTickMarkColor: defaultActiveTickMarkColor, 364 | }); 365 | 366 | // Returns the values in text format, with the number 367 | // of decimals, limited to the valueIndicatedMaxDecimals 368 | // 369 | String get lowerValueText => 370 | lowerValue.toStringAsFixed(valueIndicatorMaxDecimals); 371 | String get upperValueText => 372 | upperValue.toStringAsFixed(valueIndicatorMaxDecimals); 373 | 374 | // Builds a RangeSlider and customizes the theme 375 | // based on parameters 376 | // 377 | Widget build(BuildContext context, RangeSliderCallback callback) { 378 | return new Container( 379 | width: double.infinity, 380 | child: new Row( 381 | children: [ 382 | new Container( 383 | constraints: new BoxConstraints( 384 | minWidth: 40.0, 385 | maxWidth: 40.0, 386 | ), 387 | child: new Text(lowerValueText), 388 | ), 389 | new Expanded( 390 | child: new SliderTheme( 391 | data: SliderTheme.of(context).copyWith( 392 | overlayColor: overlayColor, 393 | activeTickMarkColor: activeTickMarkColor, 394 | activeTrackColor: activeTrackColor, 395 | inactiveTrackColor: inactiveTrackColor, 396 | thumbColor: thumbColor, 397 | valueIndicatorColor: valueIndicatorColor, 398 | showValueIndicator: showValueIndicator 399 | ? ShowValueIndicator.always 400 | : ShowValueIndicator.onlyForDiscrete, 401 | ), 402 | child: new RangeSlider( 403 | min: min, 404 | max: max, 405 | lowerValue: lowerValue, 406 | upperValue: upperValue, 407 | divisions: divisions, 408 | showValueIndicator: showValueIndicator, 409 | valueIndicatorMaxDecimals: valueIndicatorMaxDecimals, 410 | onChanged: (double lower, double upper) { 411 | // call 412 | print(lower); 413 | callback(lower, upper); 414 | }, 415 | ), 416 | ), 417 | ), 418 | new Container( 419 | constraints: new BoxConstraints( 420 | minWidth: 40.0, 421 | maxWidth: 40.0, 422 | ), 423 | child: new Text(upperValueText), 424 | ), 425 | ], 426 | ), 427 | ); 428 | } 429 | } 430 | -------------------------------------------------------------------------------- /datingapp/lib/routes.dart: -------------------------------------------------------------------------------- 1 | import 'package:datingapp/Screens/EditProfile/index.dart'; 2 | import 'package:datingapp/Screens/Settings/index.dart'; 3 | import 'package:datingapp/Screens/TabController/index.dart'; 4 | 5 | import 'package:datingapp/Screens/Login/index.dart'; 6 | import 'package:datingapp/multislider.dart'; 7 | import 'package:datingapp/test.dart'; 8 | import 'package:flutter/material.dart'; 9 | 10 | class Routes { 11 | var routes = { 12 | "/home": (BuildContext context) => new Home(), 13 | "/settings": (BuildContext context) => new Settings(), 14 | "/profile": (BuildContext context) => new EditProfile(), 15 | }; 16 | Routes() { 17 | runApp(new MaterialApp( 18 | title: "Flutter Do App", 19 | debugShowCheckedModeBanner: true, 20 | home: new Login(), 21 | routes: routes, 22 | )); 23 | } 24 | } 25 | // class MyCustomRoute extends MaterialPageRoute { 26 | // MyCustomRoute({WidgetBuilder builder, RouteSettings settings}) 27 | // : super(builder: builder, settings: settings); 28 | // @override 29 | // Widget buildTransitions(BuildContext context, Animation animation, 30 | // Animation secondaryAnimation, Widget child) { 31 | // if (settings.isInitialRoute) return child; 32 | // return new FadeTransition(opacity: animation, child: child); 33 | // } 34 | // } 35 | -------------------------------------------------------------------------------- /datingapp/lib/test.dart: -------------------------------------------------------------------------------- 1 | import 'package:datingapp/Screens/Home/styles.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class Test extends StatefulWidget { 5 | @override 6 | _TestState createState() => new _TestState(); 7 | } 8 | 9 | class _TestState extends State { 10 | @override 11 | Widget build(BuildContext context) { 12 | return Scaffold( 13 | floatingActionButton: InkWell( 14 | child: new Text("pop"), 15 | onTap: () { 16 | setState(() { 17 | imageData.remove(imageData[imageData.length - 1]); 18 | }); 19 | }, 20 | ), 21 | body: new Stack( 22 | children: imageData, 23 | ), 24 | ); 25 | } 26 | } 27 | 28 | List imageData = [ 29 | new Container( 30 | decoration: new BoxDecoration(image: image1), 31 | ), 32 | new Container( 33 | decoration: new BoxDecoration(image: image2), 34 | ), 35 | new Container( 36 | decoration: new BoxDecoration(image: image3), 37 | ), 38 | new Container( 39 | decoration: new BoxDecoration(image: image4), 40 | ), 41 | new Container( 42 | decoration: new BoxDecoration(image: image5), 43 | ) 44 | ]; 45 | -------------------------------------------------------------------------------- /datingapp/lib/theme/styles.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | DecorationImage backgroundImage = new DecorationImage( 4 | image: new ExactAssetImage('assets/bg.png'), 5 | fit: BoxFit.cover, 6 | ); 7 | 8 | const Color gradientOne = const Color.fromRGBO(208, 107, 176, 1.0); 9 | const Color gradientTwo = const Color.fromRGBO(164, 106, 205, 1.0); 10 | const Color gradientThree = const Color.fromRGBO(128, 104, 230, 1.0); 11 | const Color whiteColor = const Color(0XFFFFFFFF); 12 | const Color primaryColor = const Color.fromRGBO(80, 210, 194, 1.0); 13 | const Color primarybackColor = const Color.fromRGBO(80, 210, 194, 0.6); 14 | const Color pinkColor = const Color.fromRGBO(214, 103, 206, 1.0); 15 | const Color purpleColor = const Color.fromRGBO(101, 99, 164, 1.0); 16 | const Color purplebackColor = const Color.fromRGBO(101, 99, 164, 0.5); 17 | -------------------------------------------------------------------------------- /datingapp/pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://www.dartlang.org/tools/pub/glossary#lockfile 3 | packages: 4 | analyzer: 5 | dependency: transitive 6 | description: 7 | name: analyzer 8 | url: "https://pub.dartlang.org" 9 | source: hosted 10 | version: "0.32.4" 11 | args: 12 | dependency: transitive 13 | description: 14 | name: args 15 | url: "https://pub.dartlang.org" 16 | source: hosted 17 | version: "1.5.0" 18 | async: 19 | dependency: transitive 20 | description: 21 | name: async 22 | url: "https://pub.dartlang.org" 23 | source: hosted 24 | version: "2.0.8" 25 | boolean_selector: 26 | dependency: transitive 27 | description: 28 | name: boolean_selector 29 | url: "https://pub.dartlang.org" 30 | source: hosted 31 | version: "1.0.4" 32 | charcode: 33 | dependency: transitive 34 | description: 35 | name: charcode 36 | url: "https://pub.dartlang.org" 37 | source: hosted 38 | version: "1.1.2" 39 | collection: 40 | dependency: transitive 41 | description: 42 | name: collection 43 | url: "https://pub.dartlang.org" 44 | source: hosted 45 | version: "1.14.11" 46 | convert: 47 | dependency: transitive 48 | description: 49 | name: convert 50 | url: "https://pub.dartlang.org" 51 | source: hosted 52 | version: "2.0.2" 53 | crypto: 54 | dependency: transitive 55 | description: 56 | name: crypto 57 | url: "https://pub.dartlang.org" 58 | source: hosted 59 | version: "2.0.6" 60 | csslib: 61 | dependency: transitive 62 | description: 63 | name: csslib 64 | url: "https://pub.dartlang.org" 65 | source: hosted 66 | version: "0.14.5" 67 | cupertino_icons: 68 | dependency: "direct main" 69 | description: 70 | name: cupertino_icons 71 | url: "https://pub.dartlang.org" 72 | source: hosted 73 | version: "0.1.2" 74 | flutter: 75 | dependency: "direct main" 76 | description: flutter 77 | source: sdk 78 | version: "0.0.0" 79 | flutter_facebook_login: 80 | dependency: "direct main" 81 | description: 82 | name: flutter_facebook_login 83 | url: "https://pub.dartlang.org" 84 | source: hosted 85 | version: "1.1.1" 86 | flutter_range_slider: 87 | dependency: "direct main" 88 | description: 89 | name: flutter_range_slider 90 | url: "https://pub.dartlang.org" 91 | source: hosted 92 | version: "0.0.4" 93 | flutter_test: 94 | dependency: "direct dev" 95 | description: flutter 96 | source: sdk 97 | version: "0.0.0" 98 | front_end: 99 | dependency: transitive 100 | description: 101 | name: front_end 102 | url: "https://pub.dartlang.org" 103 | source: hosted 104 | version: "0.1.4" 105 | glob: 106 | dependency: transitive 107 | description: 108 | name: glob 109 | url: "https://pub.dartlang.org" 110 | source: hosted 111 | version: "1.1.7" 112 | html: 113 | dependency: transitive 114 | description: 115 | name: html 116 | url: "https://pub.dartlang.org" 117 | source: hosted 118 | version: "0.13.3+3" 119 | http: 120 | dependency: "direct main" 121 | description: 122 | name: http 123 | url: "https://pub.dartlang.org" 124 | source: hosted 125 | version: "0.11.3+17" 126 | http_multi_server: 127 | dependency: transitive 128 | description: 129 | name: http_multi_server 130 | url: "https://pub.dartlang.org" 131 | source: hosted 132 | version: "2.0.5" 133 | http_parser: 134 | dependency: transitive 135 | description: 136 | name: http_parser 137 | url: "https://pub.dartlang.org" 138 | source: hosted 139 | version: "3.1.3" 140 | image_picker: 141 | dependency: "direct main" 142 | description: 143 | name: image_picker 144 | url: "https://pub.dartlang.org" 145 | source: hosted 146 | version: "0.4.1" 147 | io: 148 | dependency: transitive 149 | description: 150 | name: io 151 | url: "https://pub.dartlang.org" 152 | source: hosted 153 | version: "0.3.3" 154 | js: 155 | dependency: transitive 156 | description: 157 | name: js 158 | url: "https://pub.dartlang.org" 159 | source: hosted 160 | version: "0.6.1+1" 161 | json_rpc_2: 162 | dependency: transitive 163 | description: 164 | name: json_rpc_2 165 | url: "https://pub.dartlang.org" 166 | source: hosted 167 | version: "2.0.9" 168 | kernel: 169 | dependency: transitive 170 | description: 171 | name: kernel 172 | url: "https://pub.dartlang.org" 173 | source: hosted 174 | version: "0.3.4" 175 | logging: 176 | dependency: transitive 177 | description: 178 | name: logging 179 | url: "https://pub.dartlang.org" 180 | source: hosted 181 | version: "0.11.3+2" 182 | matcher: 183 | dependency: transitive 184 | description: 185 | name: matcher 186 | url: "https://pub.dartlang.org" 187 | source: hosted 188 | version: "0.12.3+1" 189 | meta: 190 | dependency: transitive 191 | description: 192 | name: meta 193 | url: "https://pub.dartlang.org" 194 | source: hosted 195 | version: "1.1.6" 196 | mime: 197 | dependency: transitive 198 | description: 199 | name: mime 200 | url: "https://pub.dartlang.org" 201 | source: hosted 202 | version: "0.9.6+2" 203 | multi_server_socket: 204 | dependency: transitive 205 | description: 206 | name: multi_server_socket 207 | url: "https://pub.dartlang.org" 208 | source: hosted 209 | version: "1.0.2" 210 | node_preamble: 211 | dependency: transitive 212 | description: 213 | name: node_preamble 214 | url: "https://pub.dartlang.org" 215 | source: hosted 216 | version: "1.4.4" 217 | package_config: 218 | dependency: transitive 219 | description: 220 | name: package_config 221 | url: "https://pub.dartlang.org" 222 | source: hosted 223 | version: "1.0.5" 224 | package_resolver: 225 | dependency: transitive 226 | description: 227 | name: package_resolver 228 | url: "https://pub.dartlang.org" 229 | source: hosted 230 | version: "1.0.4" 231 | path: 232 | dependency: transitive 233 | description: 234 | name: path 235 | url: "https://pub.dartlang.org" 236 | source: hosted 237 | version: "1.6.2" 238 | plugin: 239 | dependency: transitive 240 | description: 241 | name: plugin 242 | url: "https://pub.dartlang.org" 243 | source: hosted 244 | version: "0.2.0+3" 245 | pool: 246 | dependency: transitive 247 | description: 248 | name: pool 249 | url: "https://pub.dartlang.org" 250 | source: hosted 251 | version: "1.3.6" 252 | pub_semver: 253 | dependency: transitive 254 | description: 255 | name: pub_semver 256 | url: "https://pub.dartlang.org" 257 | source: hosted 258 | version: "1.4.2" 259 | quiver: 260 | dependency: transitive 261 | description: 262 | name: quiver 263 | url: "https://pub.dartlang.org" 264 | source: hosted 265 | version: "2.0.0+1" 266 | share: 267 | dependency: "direct main" 268 | description: 269 | name: share 270 | url: "https://pub.dartlang.org" 271 | source: hosted 272 | version: "0.5.0" 273 | shelf: 274 | dependency: transitive 275 | description: 276 | name: shelf 277 | url: "https://pub.dartlang.org" 278 | source: hosted 279 | version: "0.7.3+3" 280 | shelf_packages_handler: 281 | dependency: transitive 282 | description: 283 | name: shelf_packages_handler 284 | url: "https://pub.dartlang.org" 285 | source: hosted 286 | version: "1.0.4" 287 | shelf_static: 288 | dependency: transitive 289 | description: 290 | name: shelf_static 291 | url: "https://pub.dartlang.org" 292 | source: hosted 293 | version: "0.2.8" 294 | shelf_web_socket: 295 | dependency: transitive 296 | description: 297 | name: shelf_web_socket 298 | url: "https://pub.dartlang.org" 299 | source: hosted 300 | version: "0.2.2+4" 301 | sky_engine: 302 | dependency: transitive 303 | description: flutter 304 | source: sdk 305 | version: "0.0.99" 306 | source_map_stack_trace: 307 | dependency: transitive 308 | description: 309 | name: source_map_stack_trace 310 | url: "https://pub.dartlang.org" 311 | source: hosted 312 | version: "1.1.5" 313 | source_maps: 314 | dependency: transitive 315 | description: 316 | name: source_maps 317 | url: "https://pub.dartlang.org" 318 | source: hosted 319 | version: "0.10.7" 320 | source_span: 321 | dependency: transitive 322 | description: 323 | name: source_span 324 | url: "https://pub.dartlang.org" 325 | source: hosted 326 | version: "1.4.1" 327 | stack_trace: 328 | dependency: transitive 329 | description: 330 | name: stack_trace 331 | url: "https://pub.dartlang.org" 332 | source: hosted 333 | version: "1.9.3" 334 | stream_channel: 335 | dependency: transitive 336 | description: 337 | name: stream_channel 338 | url: "https://pub.dartlang.org" 339 | source: hosted 340 | version: "1.6.8" 341 | string_scanner: 342 | dependency: transitive 343 | description: 344 | name: string_scanner 345 | url: "https://pub.dartlang.org" 346 | source: hosted 347 | version: "1.0.4" 348 | term_glyph: 349 | dependency: transitive 350 | description: 351 | name: term_glyph 352 | url: "https://pub.dartlang.org" 353 | source: hosted 354 | version: "1.0.1" 355 | test: 356 | dependency: transitive 357 | description: 358 | name: test 359 | url: "https://pub.dartlang.org" 360 | source: hosted 361 | version: "1.3.0" 362 | typed_data: 363 | dependency: transitive 364 | description: 365 | name: typed_data 366 | url: "https://pub.dartlang.org" 367 | source: hosted 368 | version: "1.1.6" 369 | utf: 370 | dependency: transitive 371 | description: 372 | name: utf 373 | url: "https://pub.dartlang.org" 374 | source: hosted 375 | version: "0.9.0+5" 376 | vector_math: 377 | dependency: transitive 378 | description: 379 | name: vector_math 380 | url: "https://pub.dartlang.org" 381 | source: hosted 382 | version: "2.0.8" 383 | vm_service_client: 384 | dependency: transitive 385 | description: 386 | name: vm_service_client 387 | url: "https://pub.dartlang.org" 388 | source: hosted 389 | version: "0.2.6" 390 | watcher: 391 | dependency: transitive 392 | description: 393 | name: watcher 394 | url: "https://pub.dartlang.org" 395 | source: hosted 396 | version: "0.9.7+10" 397 | web_socket_channel: 398 | dependency: transitive 399 | description: 400 | name: web_socket_channel 401 | url: "https://pub.dartlang.org" 402 | source: hosted 403 | version: "1.0.9" 404 | yaml: 405 | dependency: transitive 406 | description: 407 | name: yaml 408 | url: "https://pub.dartlang.org" 409 | source: hosted 410 | version: "2.1.15" 411 | sdks: 412 | dart: ">=2.0.0-dev.68.0 <3.0.0" 413 | flutter: ">=0.1.4 <2.0.0" 414 | -------------------------------------------------------------------------------- /datingapp/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: datingapp 2 | description: A new Flutter project. 3 | 4 | dependencies: 5 | flutter: 6 | sdk: flutter 7 | 8 | # The following adds the Cupertino Icons font to your application. 9 | # Use with the CupertinoIcons class for iOS style icons. 10 | cupertino_icons: ^0.1.2 11 | flutter_range_slider: "^0.0.4" 12 | flutter_facebook_login: "^1.1.1" 13 | http: 14 | share: 15 | image_picker: "^0.4.1" 16 | 17 | 18 | # firebase_auth: "^0.5.10" 19 | 20 | dev_dependencies: 21 | flutter_test: 22 | sdk: flutter 23 | 24 | 25 | # For information on the generic Dart part of this file, see the 26 | # following page: https://www.dartlang.org/tools/pub/pubspec 27 | 28 | # The following section is specific to Flutter. 29 | flutter: 30 | fonts: 31 | - family: Poppins 32 | fonts: 33 | - asset: assets/fonts/Poppins-Light.ttf 34 | - family: PoppinsMedium 35 | fonts: 36 | - asset: assets/fonts/Poppins-Medium.ttf 37 | - family: PoppinsRegular 38 | fonts: 39 | - asset: assets/fonts/Poppins-Regular.ttf 40 | 41 | # The following line ensures that the Material Icons font is 42 | # included with your application, so that you can use the icons in 43 | # the material Icons class. 44 | uses-material-design: true 45 | 46 | # To add assets to your application, add an assets section, like this: 47 | assets: 48 | - assets/bg.png 49 | - assets/first.png 50 | - assets/second.png 51 | - assets/third.png 52 | - assets/fourth.png 53 | - assets/Home.png 54 | - assets/home2.png 55 | - assets/chat.png 56 | - assets/chat2.png 57 | - assets/account.png 58 | - assets/account2.png 59 | - assets/els-fattah.jpg 60 | - assets/jonathan-daniels.jpg 61 | - assets/sam-burriss.jpg 62 | - assets/warren-wong.jpg 63 | - assets/Background.png 64 | - assets/sign_up_bg.png 65 | - assets/back-arrow.png 66 | - assets/1.jpg 67 | - assets/img1.png 68 | - assets/img2.jpg 69 | - assets/img3.jpg 70 | - assets/img4.jpg 71 | - assets/img5.jpg 72 | 73 | 74 | 75 | # An image asset can refer to one or more resolution-specific "variants", see 76 | # https://flutter.io/assets-and-images/#resolution-aware. 77 | 78 | # For details regarding adding assets from package dependencies, see 79 | # https://flutter.io/assets-and-images/#from-packages 80 | 81 | # To add custom fonts to your application, add a fonts section here, 82 | # in this "flutter" section. Each entry in this list should have a 83 | # "family" key with the font family name, and a "fonts" key with a 84 | # list giving the asset and other descriptors for the font. For 85 | # example: 86 | # fonts: 87 | # - family: Schyler 88 | # fonts: 89 | # - asset: fonts/Schyler-Regular.ttf 90 | # - asset: fonts/Schyler-Italic.ttf 91 | # style: italic 92 | # - family: Trajan Pro 93 | # fonts: 94 | # - asset: fonts/TrajanPro.ttf 95 | # - asset: fonts/TrajanPro_Bold.ttf 96 | # weight: 700 97 | # 98 | # For details regarding fonts from package dependencies, 99 | # see https://flutter.io/custom-fonts/#from-packages 100 | -------------------------------------------------------------------------------- /datingapp/test/widget_test.dart: -------------------------------------------------------------------------------- 1 | // This is a basic Flutter widget test. 2 | // To perform an interaction with a widget in your test, use the WidgetTester utility that Flutter 3 | // provides. For example, you can send tap and scroll gestures. You can also use WidgetTester to 4 | // find child widgets in the widget tree, read text, and verify that the values of widget properties 5 | // are correct. 6 | 7 | import 'package:flutter/material.dart'; 8 | import 'package:flutter_test/flutter_test.dart'; 9 | 10 | import 'package:datingapp/main.dart'; 11 | 12 | void main() { 13 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { 14 | // Build our app and trigger a frame. 15 | await tester.pumpWidget(new MyApp()); 16 | 17 | // Verify that our counter starts at 0. 18 | expect(find.text('0'), findsOneWidget); 19 | expect(find.text('1'), findsNothing); 20 | 21 | // Tap the '+' icon and trigger a frame. 22 | await tester.tap(find.byIcon(Icons.add)); 23 | await tester.pump(); 24 | 25 | // Verify that our counter has incremented. 26 | expect(find.text('0'), findsNothing); 27 | expect(find.text('1'), findsOneWidget); 28 | }); 29 | } 30 | --------------------------------------------------------------------------------