├── lib
├── widgets
│ └── widget.dart
├── screens
│ ├── screen.dart
│ ├── emergency_screen.dart
│ ├── login_screen.dart
│ └── contact_screen.dart
├── main.dart
└── api_repository.dart
├── ios
├── Flutter
│ ├── Debug.xcconfig
│ ├── Release.xcconfig
│ └── AppFrameworkInfo.plist
├── Runner
│ ├── Runner-Bridging-Header.h
│ ├── Assets.xcassets
│ │ ├── LaunchImage.imageset
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ ├── README.md
│ │ │ └── Contents.json
│ │ └── AppIcon.appiconset
│ │ │ ├── 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-1024x1024@1x.png
│ │ │ ├── Icon-App-83.5x83.5@2x.png
│ │ │ └── Contents.json
│ ├── AppDelegate.swift
│ ├── Base.lproj
│ │ ├── Main.storyboard
│ │ └── LaunchScreen.storyboard
│ └── Info.plist
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── IDEWorkspaceChecks.plist
├── Runner.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── WorkspaceSettings.xcsettings
│ │ │ └── IDEWorkspaceChecks.plist
│ ├── xcshareddata
│ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ └── project.pbxproj
└── .gitignore
├── Logo
├── Logo.png
└── Logo.svg
├── UI Design Draft
├── Signin.png
└── Authentication.png
├── android
├── gradle.properties
├── app
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── 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
│ │ │ │ ├── drawable
│ │ │ │ │ └── launch_background.xml
│ │ │ │ └── values
│ │ │ │ │ └── styles.xml
│ │ │ ├── kotlin
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── yousafe
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── AndroidManifest.xml
│ │ ├── profile
│ │ │ └── AndroidManifest.xml
│ │ └── debug
│ │ │ └── AndroidManifest.xml
│ └── build.gradle
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
├── .gitignore
├── settings.gradle
└── build.gradle
├── .metadata
├── .gitignore
├── LICENSE
├── test
└── widget_test.dart
├── CONTRIBUTING.md
├── tutorials.md
├── pubspec.yaml
├── README.md
├── CODE_OF_CONDUCT.md
└── pubspec.lock
/lib/widgets/widget.dart:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/Logo/Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/Logo/Logo.png
--------------------------------------------------------------------------------
/UI Design Draft/Signin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/UI Design Draft/Signin.png
--------------------------------------------------------------------------------
/lib/screens/screen.dart:
--------------------------------------------------------------------------------
1 | export 'emergency_screen.dart';
2 | export 'contact_screen.dart';
3 | export 'login_screen.dart';
--------------------------------------------------------------------------------
/UI Design Draft/Authentication.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/UI Design Draft/Authentication.png
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.enableR8=true
3 | android.useAndroidX=true
4 | android.enableJetifier=true
5 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenCodeyard/YouSafe/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/example/yousafe/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.ocy.yousafe
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/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-7.4-all.zip
7 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.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: 2ae34518b87dd891355ed6c6ea8cb68c4d52bb9d
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/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.
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:yousafe/screens/login_screen.dart';
3 |
4 | void main() async {
5 | WidgetsFlutterBinding.ensureInitialized();
6 | runApp(const YouSafeApp());
7 | }
8 |
9 | class YouSafeApp extends StatelessWidget {
10 | const YouSafeApp({Key? key}) : super(key: key);
11 |
12 | @override
13 | Widget build(BuildContext context) {
14 | return MaterialApp(
15 | debugShowCheckedModeBanner: false,
16 | home: LoginScreen(),
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/app.flx
22 | Flutter/app.zip
23 | Flutter/flutter_assets/
24 | Flutter/flutter_export_environment.sh
25 | ServiceDefinitions.json
26 | Runner/GeneratedPluginRegistrant.*
27 |
28 | # Exceptions to above rules.
29 | !default.mode1v3
30 | !default.mode2v3
31 | !default.pbxuser
32 | !default.perspectivev3
33 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.7.10'
3 | repositories {
4 | google()
5 | mavenCentral()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:7.1.2'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | mavenCentral()
18 | }
19 | }
20 |
21 | rootProject.buildDir = '../build'
22 | subprojects {
23 | project.buildDir = "${rootProject.buildDir}/${project.name}"
24 | }
25 | subprojects {
26 | project.evaluationDependsOn(':app')
27 | }
28 |
29 | task clean(type: Delete) {
30 | delete rootProject.buildDir
31 | }
32 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 |
12 | # IntelliJ related
13 | *.iml
14 | *.ipr
15 | *.iws
16 | .idea/
17 |
18 | # The .vscode folder contains launch configuration and tasks you configure in
19 | # VS Code which you may wish to be included in version control, so this line
20 | # is commented out by default.
21 | #.vscode/
22 |
23 | # Flutter/Dart/Pub related
24 | **/doc/api/
25 | **/ios/Flutter/.last_build_id
26 | .dart_tool/
27 | .flutter-plugins
28 | .flutter-plugins-dependencies
29 | .packages
30 | .pub-cache/
31 | .pub/
32 | /build/
33 |
34 | # Web related
35 | lib/generated_plugin_registrant.dart
36 |
37 | # Symbolication related
38 | app.*.symbols
39 |
40 | # Obfuscation related
41 | app.*.map.json
42 |
43 | # Exceptions to above rules.
44 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
45 |
--------------------------------------------------------------------------------
/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
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 | MinimumOSVersion
24 | 8.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020-present Neil
4 |
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in all
14 | copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | SOFTWARE.
23 |
--------------------------------------------------------------------------------
/test/widget_test.dart:
--------------------------------------------------------------------------------
1 | // This is a basic Flutter widget test.
2 | //
3 | // To perform an interaction with a widget in your test, use the WidgetTester
4 | // utility that Flutter provides. For example, you can send tap and scroll
5 | // gestures. You can also use WidgetTester to find child widgets in the widget
6 | // tree, read text, and verify that the values of widget properties are correct.
7 |
8 | import 'package:flutter/material.dart';
9 | import 'package:flutter_test/flutter_test.dart';
10 |
11 | import 'package:yousafe/main.dart';
12 |
13 | void main() {
14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async {
15 | // Build our app and trigger a frame.
16 | await tester.pumpWidget(YouSafeApp());
17 |
18 | // Verify that our counter starts at 0.
19 | expect(find.text('0'), findsOneWidget);
20 | expect(find.text('1'), findsNothing);
21 |
22 | // Tap the '+' icon and trigger a frame.
23 | await tester.tap(find.byIcon(Icons.add));
24 | await tester.pump();
25 |
26 | // Verify that our counter has incremented.
27 | expect(find.text('0'), findsNothing);
28 | expect(find.text('1'), findsOneWidget);
29 | });
30 | }
31 |
--------------------------------------------------------------------------------
/lib/screens/emergency_screen.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:yousafe/api_repository.dart';
3 |
4 | class EmergencyScreen extends StatelessWidget {
5 | @override
6 | Widget build(BuildContext context) {
7 | return Scaffold(
8 | appBar: AppBar(
9 | title: Text('Emergency'),
10 | ),
11 | body: Center(
12 | child: ElevatedButton(
13 | style: ElevatedButton.styleFrom(
14 | padding: EdgeInsets.all(15),
15 | backgroundColor: Colors.red,
16 | shape: CircleBorder(),
17 | ),
18 | child: Icon(
19 | Icons.call,
20 | color: Colors.white,
21 | size: 36,
22 | ),
23 | onPressed: () async {
24 | final status = await emergencyButtonPressed();
25 | if (status) {
26 | ScaffoldMessenger.of(context).showSnackBar(
27 | SnackBar(
28 | content: Text('Email Sent'),
29 | ),
30 | );
31 | } else {
32 | ScaffoldMessenger.of(context).showSnackBar(
33 | SnackBar(
34 | content: Text('Error occurred'),
35 | ),
36 | );
37 | }
38 | },
39 | ),
40 | ),
41 | );
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/lib/api_repository.dart:
--------------------------------------------------------------------------------
1 | import 'package:geolocator/geolocator.dart';
2 | import 'package:mailer/mailer.dart';
3 | import 'package:mailer/smtp_server.dart';
4 |
5 |
6 |
7 | Future emergencyButtonPressed() async {
8 | final String username = 'hashtagsteam1@gmail.com';
9 | final String password = 'hashtags2020';
10 |
11 | final smtpServer = gmail(username, password);
12 |
13 | // TODO: retrieve list of contacts.
14 | final contacts = ['9674429152', '9433285155'];
15 | // TODO: retrieve primary contact.
16 | final primaryContact = '9674429152';
17 |
18 | final Position _currentPosition =
19 | await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
20 |
21 | // TODO: retrieve the name of the current user.
22 | final String messageText =
23 | 'User needs your help!!!\n\nLocate him at https://www.google.com/maps/place/${_currentPosition.latitude},${_currentPosition.longitude}?zoom=14';
24 | print(messageText);
25 |
26 | final message = Message()
27 | ..from = Address(username, 'YouSafe')
28 | ..recipients.add('suvranilduttabiswas@gmail.com')
29 | ..subject = 'Alert for Rescue'
30 | ..text = messageText;
31 |
32 | try {
33 | final sendReport = await send(message, smtpServer);
34 | print('Message sent: ' + sendReport.toString());
35 | return true;
36 | } on MailerException catch (e) {
37 | print(e);
38 | print('Message not sent.');
39 | for (var p in e.problems) {
40 | print('Problem: ${p.code}: ${p.msg}');
41 | }
42 | return false;
43 | }
44 |
45 | // FlutterPhoneState.startPhoneCall("9433285155");
46 | }
47 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/ios/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | yousafe
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | $(FLUTTER_BUILD_NAME)
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(FLUTTER_BUILD_NUMBER)
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIMainStoryboardFile
28 | Main
29 | UISupportedInterfaceOrientations
30 | NSContactsUsageDescription
31 | This app requires contacts access to function properly.
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 | UISupportedInterfaceOrientations~ipad
38 |
39 | UIInterfaceOrientationPortrait
40 | UIInterfaceOrientationPortraitUpsideDown
41 | UIInterfaceOrientationLandscapeLeft
42 | UIInterfaceOrientationLandscapeRight
43 |
44 | UIViewControllerBasedStatusBarAppearance
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/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 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
15 | if (flutterVersionCode == null) {
16 | flutterVersionCode = '1'
17 | }
18 |
19 | def flutterVersionName = localProperties.getProperty('flutter.versionName')
20 | if (flutterVersionName == null) {
21 | flutterVersionName = '1.0'
22 | }
23 |
24 | apply plugin: 'com.android.application'
25 | apply plugin: 'kotlin-android'
26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
27 |
28 | android {
29 | compileSdkVersion 33
30 |
31 | sourceSets {
32 | main.java.srcDirs += 'src/main/kotlin'
33 | }
34 |
35 | lintOptions {
36 | disable 'InvalidPackage'
37 | }
38 |
39 | defaultConfig {
40 | applicationId "com.ocy.yousafe"
41 | minSdkVersion 21
42 | targetSdkVersion 33
43 | versionCode flutterVersionCode.toInteger()
44 | versionName flutterVersionName
45 | }
46 |
47 | buildTypes {
48 | release {
49 | // TODO: Add your own signing config for the release build.
50 | // Signing with the debug keys for now, so `flutter run --release` works.
51 | signingConfig signingConfigs.debug
52 | }
53 | }
54 | }
55 |
56 | flutter {
57 | source '../..'
58 | }
59 |
60 | dependencies {
61 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
62 | }
63 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
22 |
26 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing to YouSafe:
2 |
3 | See also: [Code of Conduct](CODE_OF_CONDUCT.md)
4 |
5 | ## Welcome
6 |
7 | We are glad to have you join our team. Everyone is welcome to contribute via pull requests, create issues on GitHub, help others in the community, especially beginners by explaining to them stuff that they have doubts in, to find bugs and fix them, aid in our Documentation, sharing your idea and designs, or in any other way.
8 |
9 |
10 | We would request you to cooperate with our maintainers and comply with the revisions they request and maintain the code of conduct while working on this project.
11 |
12 | #### Steps:
13 |
14 | 
15 |
16 |
17 | **1.** Fork [this](https://github.com/neil-dev/YouSafe) repository.
18 |
19 | **2.** Fire up the terminal or Git Bash.
20 |
21 | **3.** Navigate to the folder/directory where you want to download the project.
22 |
23 | ```terminal
24 | cd DIRECTORY_PATH
25 | ```
26 |
27 | **4.** Clone the forked repository.
28 |
29 | ```terminal
30 | git clone https://github.com//YouSafe
31 | ```
32 |
33 | **5.** Navigate to the project directory.
34 |
35 | ```terminal
36 | cd YouSafe
37 | ```
38 |
39 | **6.** Create a new branch.
40 |
41 | ```terminal
42 | git checkout -b
43 | ```
44 |
45 | **7.** Make changes in source code.
46 |
47 | 
48 |
49 |
50 | **8.** Commit your changes.
51 | ```terminal
52 | git add .
53 | git commit -m "COMMIT MESSAGE"
54 | ```
55 |
56 | **9.** Push your local branch to the remote repository.
57 | ```terminal
58 | git push -u origin
59 | ```
60 |
61 | **10.** Create a Pull Request!
62 |
63 |
64 | Finally, go to your repository in browser and click on `compare and pull requests`.
65 | Then add a title and description to your pull request that explains your precious effort.
66 |
67 | click on `Compare and Pull Request`
68 |
69 | **Congratulations!** :boom: Sit and relax, you've made your contribution to project.
70 |
--------------------------------------------------------------------------------
/tutorials.md:
--------------------------------------------------------------------------------
1 |
Tutorials📰
2 |
3 | ## Flutter Tutorials 💙
4 |
5 | These are some of the articles and videos, from where you can *learn flutter* that too free of cost and then ***start contributing to this project. ☺️☺️***
6 |
7 | - The official the [**flutter docs**](https://flutter.dev/docs/reference/tutorials) are the best place if you want to learn flutter.
8 |
9 | - [**Tutorials Point**](https://www.tutorialspoint.com/flutter/index.htm) Website also containes a detailed and well structed content for flutter.
10 |
11 | - The [**Net Ninja**](https://www.youtube.com/playlist?list=PL4cUxeGkcC9jLYyp2Aoh6hcWuxFDX6PBJ) Flutter Playlist.
12 |
13 | - [**M-tech viral**](https://www.youtube.com/playlist?list=PLR2qQy0Zxs_UdqAcaipPR3CG1Ly57UlhV) Flutter Playlist.
14 |
15 | You can follow any of the above to learn flutter, even if you have no prior experience with flutter. These tutorials are **beginner-friendly.**
16 |
17 |
18 | ## Git Tutorials 🚩
19 |
20 | - Before you start **contributing to the repository** understand [**collaborating with issues and pull requests**](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests)
21 |
22 | - To start **commiting** [**changes to your projects**](https://docs.github.com/en/free-pro-team@latest/github/committing-changes-to-your-project)
23 |
24 | - To understand how **GitHub flow:octocat:** actually look like refer the [**GitHub Flow Documentation**](https://guides.github.com/introduction/flow/).
25 |
26 | - To write a seamless **documentation** refer [**Markdown syntax description**](https://daringfireball.net/projects/markdown/syntax) and [**Github flavoured Markdown**](https://github.github.com/gfm/#what-is-github-flavored-markdown-)
27 |
28 | - If you want to add **emojis** refer [**GitHub Markdown emojis**](https://gist.github.com/rxaviers/7360908).
29 |
30 | Some Interesting articles and videos for learning Git.
31 |
32 | - [**Udacity**](https://www.udacity.com/course/version-control-with-git--ud123) free course for learning ***Git and Version Control***
33 |
34 | - [**Youtube Videos**](https://youtu.be/MJUJ4wbFm_A) for learning Git
35 |
36 |
37 | ## Adobe XD tutorials ✒️
38 |
39 | - Tutorials from official [**Adobe Website**](https://helpx.adobe.com/xd/tutorials.html)
40 | - A detailed youtube playlist on [**Adobe XD**](https://www.youtube.com/playlist?list=PLkiM1tZke4mivrZRPcqp_8oHFxlD8-IP5)
41 |
42 | - A 4 hrs [**Crash Course**](https://youtu.be/68w2VwalD5w) on Adobe XD
43 |
44 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: yousafe
2 | description: A new Flutter project.
3 |
4 | # The following line prevents the package from being accidentally published to
5 | # pub.dev using `pub publish`. This is preferred for private packages.
6 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev
7 |
8 | # The following defines the version and build number for your application.
9 | # A version number is three numbers separated by dots, like 1.2.43
10 | # followed by an optional build number separated by a +.
11 | # Both the version and the builder number may be overridden in flutter
12 | # build by specifying --build-name and --build-number, respectively.
13 | # In Android, build-name is used as versionName while build-number used as versionCode.
14 | # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
15 | # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
16 | # Read more about iOS versioning at
17 | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
18 | version: 1.0.0+1
19 |
20 | environment:
21 | sdk: ">=2.15.1 <3.0.0"
22 |
23 | dependencies:
24 | flutter:
25 | sdk: flutter
26 | mailer: ^5.2.0
27 | contacts_service: ^0.6.3
28 | # flutter_sms: ^2.0.0
29 | geolocator: ^9.0.2
30 | speech_to_text: ^6.0.0
31 | # flutter_background_geolocation:
32 | # background_geolocation_firebase:
33 |
34 |
35 | # The following adds the Cupertino Icons font to your application.
36 | # Use with the CupertinoIcons class for iOS style icons.
37 | cupertino_icons: ^0.1.3
38 |
39 | dev_dependencies:
40 | flutter_test:
41 | sdk: flutter
42 |
43 |
44 | # For information on the generic Dart part of this file, see the
45 | # following page: https://dart.dev/tools/pub/pubspec
46 |
47 | # The following section is specific to Flutter.
48 | flutter:
49 |
50 | # The following line ensures that the Material Icons font is
51 | # included with your application, so that you can use the icons in
52 | # the material Icons class.
53 | uses-material-design: true
54 |
55 | # To add assets to your application, add an assets section, like this:
56 | # assets:
57 | # - assets/
58 | # An image asset can refer to one or more resolution-specific "variants", see
59 | # https://flutter.dev/assets-and-images/#resolution-aware.
60 |
61 | # For details regarding adding assets from package dependencies, see
62 | # https://flutter.dev/assets-and-images/#from-packages
63 |
64 | # To add custom fonts to your application, add a fonts section here,
65 | # in this "flutter" section. Each entry in this list should have a
66 | # "family" key with the font family name, and a "fonts" key with a
67 | # list giving the asset and other descriptors for the font. For
68 | # example:
69 | # fonts:
70 | # - family: Schyler
71 | # fonts:
72 | # - asset: fonts/Schyler-Regular.ttf
73 | # - asset: fonts/Schyler-Italic.ttf
74 | # style: italic
75 | # - family: Trajan Pro
76 | # fonts:
77 | # - asset: fonts/TrajanPro.ttf
78 | # - asset: fonts/TrajanPro_Bold.ttf
79 | # weight: 700
80 | #
81 | # For details regarding fonts from package dependencies,
82 | # see https://flutter.dev/custom-fonts/#from-packages
83 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
54 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/lib/screens/login_screen.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class LoginScreen extends StatefulWidget {
4 | @override
5 | _LoginScreenState createState() => _LoginScreenState();
6 | }
7 |
8 | class _LoginScreenState extends State {
9 | @override
10 | Widget build(BuildContext context) {
11 | return Scaffold(
12 | backgroundColor: Color(0xFF121212),
13 | body: SafeArea(
14 | child: Padding(
15 | padding: const EdgeInsets.symmetric(horizontal: 24.0),
16 | child: Column(
17 | mainAxisAlignment: MainAxisAlignment.start,
18 | crossAxisAlignment: CrossAxisAlignment.center,
19 | children: [
20 | SizedBox(
21 | height: 48.0,
22 | ),
23 | Flexible(
24 | child: Container(
25 | height: 200.0,
26 | child: Image.asset('assets/Logo.png'),
27 | ),
28 | ),
29 | SizedBox(
30 | height: 30.0,
31 | ),
32 | Text(
33 | 'YouSafe',
34 | textAlign: TextAlign.center,
35 | style: TextStyle(
36 | fontSize: 48.0,
37 | fontWeight: FontWeight.w600,
38 | color: Color(0xFF5DB075)),
39 | ),
40 | SizedBox(
41 | height: 60.0,
42 | ),
43 | TextField(
44 | keyboardType: TextInputType.phone,
45 | onChanged: (value) {},
46 | decoration: InputDecoration(
47 | fillColor: Colors.white,
48 | filled: true,
49 | hintText: 'Phone Number',
50 | contentPadding:
51 | EdgeInsets.symmetric(vertical: 10.0, horizontal: 20.0),
52 | border: OutlineInputBorder(
53 | borderRadius: BorderRadius.all(Radius.circular(32.0)),
54 | ),
55 | enabledBorder: OutlineInputBorder(
56 | borderSide:
57 | BorderSide(color: Color(0xFF323232), width: 1.0),
58 | borderRadius: BorderRadius.all(Radius.circular(10.0)),
59 | ),
60 | focusedBorder: OutlineInputBorder(
61 | borderSide:
62 | BorderSide(color: Color(0xFF121212), width: 2.0),
63 | borderRadius: BorderRadius.all(Radius.circular(10.0)),
64 | ),
65 | )),
66 | SizedBox(
67 | height: 100.0,
68 | ),
69 | CustomButton(
70 | width: 100.0,
71 | height: 50.0,
72 | bgColor: Color(0xFF5DB075),
73 | title: 'Sign in',
74 | borderRadius: BorderRadius.all(Radius.circular(40.0)),
75 | onPress: () {},
76 | ),
77 | ],
78 | ),
79 | ),
80 | ),
81 | );
82 | }
83 | }
84 |
85 | class CustomButton extends StatelessWidget {
86 | final Function onPress;
87 | final String title;
88 | final Color bgColor;
89 | final BorderRadiusGeometry borderRadius;
90 | final double height;
91 | final double width;
92 |
93 | const CustomButton(
94 | {Key? key,
95 | required this.onPress,
96 | required this.title,
97 | required this.bgColor,
98 | required this.borderRadius,
99 | required this.height,
100 | required this.width})
101 | : super(key: key);
102 |
103 | @override
104 | Widget build(BuildContext context) {
105 | return GestureDetector(
106 | onTap: () {},
107 | child: Container(
108 | width: width,
109 | height: height,
110 | decoration: BoxDecoration(color: bgColor, borderRadius: borderRadius),
111 | child: Center(
112 | child: Text(
113 | title,
114 | style: TextStyle(color: Colors.white, fontSize: 16),
115 | ),
116 | ),
117 | ),
118 | );
119 | }
120 | }
121 |
--------------------------------------------------------------------------------
/Logo/Logo.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
YouSafe
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | **Problem Statement:** When there is no one to go to in times of danger or trouble, there is nowhere to seek help from, like the police or any force of authority that might help in the situation.
15 |
16 | ### Why do we need this App?
17 | - We have seen a lot of times the crimes happening while travelling alone, hence it becomes a necessity of the situation that we need something that gives safety to us and assurance to our loved ones that we are safe and sound and can seek help from them whenever needed.
18 | - We are using flutter to make this application so we are solving the problem of making separate applications for ios and android users
19 | - Many existing applications are either having issues which we got to know during the research like the application do not have an impressive and user-friendly UI, when sending SMSs it charges money, there are bugs because of which it becomes difficult to use,the application asks for too much of user information.
20 |
21 | > _**Our Mission: Everyone should feel safe on having this App on their Smart phones whenever they step out of their houses.**_
22 |
23 | ### UI Templates
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | ### Features :round_pushpin:
32 | - Panic Button that triggers action by voice command, to send SOS :sos: alert to the contacts with phiysical location (GPS).
33 | - Share location and let your family follow your remote location helps Keeping your contacts informed.
34 | - A voice recording feature with a certain combination in the background with cloud backup and no traces in the front, in case someone is being threatened.
35 | - Call with single touch or voice command when in emergency.
36 | - The app should specify how long you want them to track your GPS location until you check in your intended destination. If fail to send an emergency alert to choosen contact.
37 | - The camera turns on automatically and starts recording.
38 |
39 | **Note:** Feel free to propose any new feature request by creating a new issue. 😊
40 |
41 | Before you start contributing, check out the [Code of Conduct](CODE_OF_CONDUCT.md).
42 |
43 | Also, read the [contribution guidelines](CONTRIBUTING.md) to get started with your contributions.
44 |
45 | ## Getting started :rocket:
46 |
47 | #### Prerequisites
48 |
49 | - [**Install Flutter**](https://flutter.dev/docs/get-started/install)
50 | - [**Set up an editor**](https://flutter.dev/docs/get-started/editor)
51 |
52 |
53 | #### Building and running
54 |
55 | First, make sure you have a local copy of this repository. Steps 1 – 5 of the [contribution guidelines](CONTRIBUTING.md) are one way to accomplish this.
56 |
57 | Next, run `flutter pub get` from the project root to install dependencies.
58 |
59 | All that's left is to open the project in your editor of choice!
60 |
61 | If your editor doesn't support or detect appropriate build configurations for the project, you can build and run it manually from the terminal. Note that this has to be run form the project root.
62 |
63 | ```sh
64 | flutter run # runs a debug build
65 | ```
66 |
67 | You can read more about build modes [here](https://flutter.dev/docs/testing/build-modes).
68 |
69 | Feel free to reach out to us for any concern you may also join our [telegram channel:link:](https://t.me/Open_Codeyard) for better conversation.
70 |
71 | ### License:
72 | The content of this repository is bound by [MIT](LICENSE) License.
73 |
--------------------------------------------------------------------------------
/lib/screens/contact_screen.dart:
--------------------------------------------------------------------------------
1 | // import 'package:flutter/material.dart';
2 | // import 'package:contacts_service/contacts_service.dart';
3 |
4 | // class ContactScreen extends StatefulWidget {
5 | // @override
6 | // _ContactScreenState createState() => _ContactScreenState();
7 | // }
8 |
9 | // class _ContactScreenState extends State {
10 | // List contacts = [];
11 | // List contactsFiltered = [];
12 | // Map contactsColorMap = new Map();
13 | // TextEditingController searchController = new TextEditingController();
14 |
15 | // @override
16 | // void initState() {
17 | // super.initState();
18 | // getAllContacts();
19 | // searchController.addListener(() {
20 | // filterContacts();
21 | // });
22 | // }
23 |
24 | // String flattenPhoneNumber(String phoneStr) {
25 | // return phoneStr.replaceAllMapped(RegExp(r'^(\+)|\D'), (Match m) {
26 | // return m[0] == "+" ? "+" : "";
27 | // });
28 | // }
29 |
30 | // getAllContacts() async {
31 | // List colors = [Colors.green, Colors.indigo, Colors.yellow, Colors.orange];
32 | // int colorIndex = 0;
33 | // List _contacts = (await ContactsService.getContacts()).toList();
34 | // _contacts.forEach((contact) {
35 | // Color baseColor = colors[colorIndex];
36 | // contactsColorMap[contact.displayName] = baseColor;
37 | // colorIndex++;
38 | // if (colorIndex == colors.length) {
39 | // colorIndex = 0;
40 | // }
41 | // });
42 | // setState(() {
43 | // contacts = _contacts;
44 | // });
45 | // }
46 |
47 | // filterContacts() {
48 | // List _contacts = [];
49 | // _contacts.addAll(contacts);
50 | // if (searchController.text.isNotEmpty) {
51 | // _contacts.retainWhere((contact) {
52 | // String searchTerm = searchController.text.toLowerCase();
53 | // String searchTermFlatten = flattenPhoneNumber(searchTerm);
54 | // String contactName = contact.displayName.toLowerCase();
55 | // bool nameMatches = contactName.contains(searchTerm);
56 | // if (nameMatches == true) {
57 | // return true;
58 | // }
59 |
60 | // if (searchTermFlatten.isEmpty) {
61 | // return false;
62 | // }
63 |
64 | // var phone = contact.phones.firstWhere((phn) {
65 | // String phnFlattened = flattenPhoneNumber(phn.value);
66 | // return phnFlattened.contains(searchTermFlatten);
67 | // }, orElse: () => null);
68 |
69 | // return phone != null;
70 | // });
71 | // }
72 | // setState(() {
73 | // contactsFiltered = _contacts;
74 | // });
75 | // }
76 |
77 | // @override
78 | // Widget build(BuildContext context) {
79 | // bool isSearching = searchController.text.isNotEmpty;
80 | // return Scaffold(
81 | // appBar: AppBar(
82 | // title: Text('Contact Screen'),
83 | // ),
84 | // body: Container(
85 | // padding: EdgeInsets.all(20),
86 | // child: Column(
87 | // children: [
88 | // Container(
89 | // child: TextField(
90 | // controller: searchController,
91 | // decoration: InputDecoration(
92 | // labelText: 'Search',
93 | // border: new OutlineInputBorder(
94 | // borderSide: new BorderSide(
95 | // color: Theme.of(context).primaryColor
96 | // )
97 | // ),
98 | // prefixIcon: Icon(
99 | // Icons.search,
100 | // color: Theme.of(context).primaryColor
101 | // )
102 | // ),
103 | // ),
104 | // ),
105 | // Expanded(
106 | // child: ListView.builder(
107 | // shrinkWrap: true,
108 | // itemCount: isSearching == true ? contactsFiltered.length : contacts.length,
109 | // itemBuilder: (context, index) {
110 | // Contact contact = isSearching == true ? contactsFiltered[index] : contacts[index];
111 |
112 | // var baseColor = contactsColorMap[contact.displayName] as dynamic;
113 |
114 | // Color color1 = baseColor[800];
115 | // Color color2 = baseColor[400];
116 | // return ListTile(
117 | // title: Text(contact.displayName),
118 | // subtitle: Text(
119 | // contact.phones.length > 0 ? contact.phones.elementAt(0).value : ''
120 | // ),
121 | // leading: (contact.avatar != null && contact.avatar.length > 0) ?
122 | // CircleAvatar(
123 | // backgroundImage: MemoryImage(contact.avatar),
124 | // ) :
125 | // Container(
126 | // decoration: BoxDecoration(
127 | // shape: BoxShape.circle,
128 | // gradient: LinearGradient(
129 | // colors: [
130 | // color1,
131 | // color2,
132 | // ],
133 | // begin: Alignment.bottomLeft,
134 | // end: Alignment.topRight
135 | // )
136 | // ),
137 | // child: CircleAvatar(
138 | // child: Text(
139 | // contact.initials(),
140 | // style: TextStyle(
141 | // color: Colors.white
142 | // )
143 | // ),
144 | // backgroundColor: Colors.transparent
145 | // )
146 | // )
147 | // );
148 | // },
149 | // ),
150 | // )
151 | // ],
152 | // ),
153 | // ),
154 | // );
155 | // }
156 | // }
157 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | ## Table of Contents
2 |
3 | - [Purpose](#purpose)
4 | - [Open Source Citizenship](#open-source-citizenship)
5 | - [Conflict resolution](#conflict-resolution)
6 | - [Questions](#questions)
7 | - [Expected Behavior](#expected-behavior)
8 | - [Unacceptable Behavior](#unacceptable-behavior)
9 | - [Consequences of Unacceptable Behavior](#consequences-of-unacceptable-behavior)
10 | - [Reporting Guidelines](#reporting-guidelines)
11 | - [Contact Information](#contact-information)
12 | - [Scope](#scope)
13 | - [License and attribution](#license-and-attribution)
14 |
15 | ## 1. Purpose
16 |
17 | * The primary goal is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible.
18 | * As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender,
19 | sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof).
20 | * This code of conduct outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior.
21 | * We invite all those who participate in open source contributions to help us create safe and positive experiences for everyone.
22 |
23 | ## 2. Open Source Citizenship
24 |
25 | * A supplemental goal of this Code of Conduct is to increase open source citizenship by encouraging
26 | participants to recognize and strengthen the relationships between our actions and their effects on our community.
27 | * Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society.
28 | * If you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to
29 | contribute to the fullest extent, we want to know.
30 |
31 | ## 3. Conflict resolution
32 |
33 | * When multiple contributors disagree on the direction for a particular patch or the general direction of the project, the conflict should be resolved by communication.
34 | The people who disagree should get together, try to understand each other's points of view, and work to find a design that addresses everyone's concerns. This is
35 | usually sufficient to resolve issues. If you cannot come to an agreement, ask for the advice of one of the mantainers of the team.
36 | * Be wary of agreement by attrition, where one person argues a point repeatedly until other participants give up in the interests of moving on.
37 | This is not conflict resolution, as it does not address everyone's concerns.
38 | * Be wary of agreement by compromise, where two good competing solutions are merged into one mediocre solution.
39 | * A conflict is addressed when the participants agree that the final solution is _better_ than all the conflicting proposals.
40 | Sometimes the solution is more work than either of the proposals.
41 |
42 | ## 4. Questions
43 | * Never be hisitent to ask questions, doubts or any tiny/huge queries regarding any content you deal with.
44 | * Not everyone is an expert in all the domains and we all keep learning by observing, asking questions and making mistakes and learning from those and not repeating them.
45 | * Once you find your answers amd get your queries resolved, try to document it so that some other wandering member does not climb the same old mountain of queries you dealt with.
46 | * This helps to save time and will help you too when you come accross such documentations in future which will save your day hopefully.
47 |
48 |
49 | ## 5. Expected Behavior
50 |
51 | The following behaviors are expected and requested of all contributing members:
52 |
53 | * Professional and respectful towards all the members, their identity, their culture, and their work.
54 | * Be kind. Be courteous. Be welcoming.
55 | * Listen. Consider and acknowledge people's points before responding.
56 | * Participate in an authentic and active way. In doing so, you can contribute to the health and longevity of this project.
57 | * Exercise consideration and respect in your speech and actions.
58 | * Attempt collaboration before conflict. Always.
59 | * Refrain from demeaning, discriminatory, or harassing behavior and speech.
60 | * Be mindful of your surroundings and of your fellow participants.
61 | * Alert the project maintainers/admins if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential.
62 |
63 | ## 6. Unacceptable Behavior
64 |
65 | The following behaviors are considered harassment and are strictly unacceptable:
66 |
67 | * Deliberate intimidation, stalking or following (online or in person).
68 | * Violence, threats of violence or violent language directed against another person.
69 | * Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language.
70 | * Posting or displaying sexually explicit or violent material.
71 | * Posting or threatening to post other people’s personally identifying information ("doxing").
72 | * Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability.
73 | * Inappropriate photography or recording.
74 | * Unwelcome sexual attention. This includes, sexualized comments or jokes; inappropriate touching, groping, and unwelcomed sexual advances.
75 | * Advocating for, or encouraging, any of the above behavior.
76 | * Sustained disruption of community events, including talks and presentations.
77 |
78 | ## 7. Consequences of Unacceptable Behavior
79 |
80 | * Unacceptable behavior from any contributing member, including maintainers, admins, sponsors and those with decision-making authority, will not be tolerated.
81 | * Anyone asked to stop unacceptable behavior is expected to comply with an immediate effect.
82 | * If a member engages in unacceptable behavior, the maintainers/admins may take any action they deem appropriate,
83 | up to and including a temporary ban or permanent expulsion from the project without warning.
84 |
85 | ## 8. Reporting Guidelines
86 |
87 | * If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a project maintainer/admin by emailing at the below shared email ids.
88 |
89 | ## 9. Scope
90 |
91 | * We expect all the contributors/participants/sponsors/guests to abide by this Code of Conduct in all situations and
92 | venues: online and in-person–as well as in all one-on-one communications pertaining to community business.
93 |
94 | ## 10. Contact Information
95 | * Should you experience anything that makes you feel unwelcome in the YouSafe's
96 | community, please do not hesitate to contact on the below mentioned email id:
97 | - [Suvranil](mailto:suvranilduttabiswas@gmail.com),
98 | - [Anushka](mailto:shuklaannushka@gmail.com)
99 | - [Manish](mailto:manishbarnwal725@gmail.com)
100 |
101 | ## 11. License and attribution
102 |
103 | * This Code of Conduct is distributed under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/).
104 | * Portions of text derived from the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and
105 | the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy)
106 |
--------------------------------------------------------------------------------
/pubspec.lock:
--------------------------------------------------------------------------------
1 | # Generated by pub
2 | # See https://dart.dev/tools/pub/glossary#lockfile
3 | packages:
4 | async:
5 | dependency: transitive
6 | description:
7 | name: async
8 | url: "https://pub.dartlang.org"
9 | source: hosted
10 | version: "2.9.0"
11 | boolean_selector:
12 | dependency: transitive
13 | description:
14 | name: boolean_selector
15 | url: "https://pub.dartlang.org"
16 | source: hosted
17 | version: "2.1.0"
18 | characters:
19 | dependency: transitive
20 | description:
21 | name: characters
22 | url: "https://pub.dartlang.org"
23 | source: hosted
24 | version: "1.2.1"
25 | clock:
26 | dependency: transitive
27 | description:
28 | name: clock
29 | url: "https://pub.dartlang.org"
30 | source: hosted
31 | version: "1.1.1"
32 | collection:
33 | dependency: transitive
34 | description:
35 | name: collection
36 | url: "https://pub.dartlang.org"
37 | source: hosted
38 | version: "1.16.0"
39 | contacts_service:
40 | dependency: "direct main"
41 | description:
42 | name: contacts_service
43 | url: "https://pub.dartlang.org"
44 | source: hosted
45 | version: "0.6.3"
46 | cupertino_icons:
47 | dependency: "direct main"
48 | description:
49 | name: cupertino_icons
50 | url: "https://pub.dartlang.org"
51 | source: hosted
52 | version: "0.1.3"
53 | fake_async:
54 | dependency: transitive
55 | description:
56 | name: fake_async
57 | url: "https://pub.dartlang.org"
58 | source: hosted
59 | version: "1.3.1"
60 | flutter:
61 | dependency: "direct main"
62 | description: flutter
63 | source: sdk
64 | version: "0.0.0"
65 | flutter_test:
66 | dependency: "direct dev"
67 | description: flutter
68 | source: sdk
69 | version: "0.0.0"
70 | flutter_web_plugins:
71 | dependency: transitive
72 | description: flutter
73 | source: sdk
74 | version: "0.0.0"
75 | geolocator:
76 | dependency: "direct main"
77 | description:
78 | name: geolocator
79 | url: "https://pub.dartlang.org"
80 | source: hosted
81 | version: "9.0.2"
82 | geolocator_android:
83 | dependency: transitive
84 | description:
85 | name: geolocator_android
86 | url: "https://pub.dartlang.org"
87 | source: hosted
88 | version: "4.1.3"
89 | geolocator_apple:
90 | dependency: transitive
91 | description:
92 | name: geolocator_apple
93 | url: "https://pub.dartlang.org"
94 | source: hosted
95 | version: "2.2.2"
96 | geolocator_platform_interface:
97 | dependency: transitive
98 | description:
99 | name: geolocator_platform_interface
100 | url: "https://pub.dartlang.org"
101 | source: hosted
102 | version: "4.0.6"
103 | geolocator_web:
104 | dependency: transitive
105 | description:
106 | name: geolocator_web
107 | url: "https://pub.dartlang.org"
108 | source: hosted
109 | version: "2.1.6"
110 | geolocator_windows:
111 | dependency: transitive
112 | description:
113 | name: geolocator_windows
114 | url: "https://pub.dartlang.org"
115 | source: hosted
116 | version: "0.1.1"
117 | intl:
118 | dependency: transitive
119 | description:
120 | name: intl
121 | url: "https://pub.dartlang.org"
122 | source: hosted
123 | version: "0.17.0"
124 | js:
125 | dependency: transitive
126 | description:
127 | name: js
128 | url: "https://pub.dartlang.org"
129 | source: hosted
130 | version: "0.6.4"
131 | json_annotation:
132 | dependency: transitive
133 | description:
134 | name: json_annotation
135 | url: "https://pub.dartlang.org"
136 | source: hosted
137 | version: "4.7.0"
138 | logging:
139 | dependency: transitive
140 | description:
141 | name: logging
142 | url: "https://pub.dartlang.org"
143 | source: hosted
144 | version: "1.1.0"
145 | mailer:
146 | dependency: "direct main"
147 | description:
148 | name: mailer
149 | url: "https://pub.dartlang.org"
150 | source: hosted
151 | version: "5.2.0"
152 | matcher:
153 | dependency: transitive
154 | description:
155 | name: matcher
156 | url: "https://pub.dartlang.org"
157 | source: hosted
158 | version: "0.12.12"
159 | material_color_utilities:
160 | dependency: transitive
161 | description:
162 | name: material_color_utilities
163 | url: "https://pub.dartlang.org"
164 | source: hosted
165 | version: "0.1.5"
166 | meta:
167 | dependency: transitive
168 | description:
169 | name: meta
170 | url: "https://pub.dartlang.org"
171 | source: hosted
172 | version: "1.8.0"
173 | mime:
174 | dependency: transitive
175 | description:
176 | name: mime
177 | url: "https://pub.dartlang.org"
178 | source: hosted
179 | version: "1.0.2"
180 | path:
181 | dependency: transitive
182 | description:
183 | name: path
184 | url: "https://pub.dartlang.org"
185 | source: hosted
186 | version: "1.8.2"
187 | pedantic:
188 | dependency: transitive
189 | description:
190 | name: pedantic
191 | url: "https://pub.dartlang.org"
192 | source: hosted
193 | version: "1.11.1"
194 | plugin_platform_interface:
195 | dependency: transitive
196 | description:
197 | name: plugin_platform_interface
198 | url: "https://pub.dartlang.org"
199 | source: hosted
200 | version: "2.1.3"
201 | quiver:
202 | dependency: transitive
203 | description:
204 | name: quiver
205 | url: "https://pub.dartlang.org"
206 | source: hosted
207 | version: "3.1.0"
208 | sky_engine:
209 | dependency: transitive
210 | description: flutter
211 | source: sdk
212 | version: "0.0.99"
213 | source_span:
214 | dependency: transitive
215 | description:
216 | name: source_span
217 | url: "https://pub.dartlang.org"
218 | source: hosted
219 | version: "1.9.0"
220 | speech_to_text:
221 | dependency: "direct main"
222 | description:
223 | name: speech_to_text
224 | url: "https://pub.dartlang.org"
225 | source: hosted
226 | version: "6.0.0"
227 | speech_to_text_macos:
228 | dependency: transitive
229 | description:
230 | name: speech_to_text_macos
231 | url: "https://pub.dartlang.org"
232 | source: hosted
233 | version: "1.0.2"
234 | speech_to_text_platform_interface:
235 | dependency: transitive
236 | description:
237 | name: speech_to_text_platform_interface
238 | url: "https://pub.dartlang.org"
239 | source: hosted
240 | version: "2.0.1"
241 | stack_trace:
242 | dependency: transitive
243 | description:
244 | name: stack_trace
245 | url: "https://pub.dartlang.org"
246 | source: hosted
247 | version: "1.10.0"
248 | stream_channel:
249 | dependency: transitive
250 | description:
251 | name: stream_channel
252 | url: "https://pub.dartlang.org"
253 | source: hosted
254 | version: "2.1.0"
255 | string_scanner:
256 | dependency: transitive
257 | description:
258 | name: string_scanner
259 | url: "https://pub.dartlang.org"
260 | source: hosted
261 | version: "1.1.1"
262 | term_glyph:
263 | dependency: transitive
264 | description:
265 | name: term_glyph
266 | url: "https://pub.dartlang.org"
267 | source: hosted
268 | version: "1.2.1"
269 | test_api:
270 | dependency: transitive
271 | description:
272 | name: test_api
273 | url: "https://pub.dartlang.org"
274 | source: hosted
275 | version: "0.4.12"
276 | vector_math:
277 | dependency: transitive
278 | description:
279 | name: vector_math
280 | url: "https://pub.dartlang.org"
281 | source: hosted
282 | version: "2.1.2"
283 | sdks:
284 | dart: ">=2.17.5 <3.0.0"
285 | flutter: ">=2.8.0"
286 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
11 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
12 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
13 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
14 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
15 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
16 | /* End PBXBuildFile section */
17 |
18 | /* Begin PBXCopyFilesBuildPhase section */
19 | 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
20 | isa = PBXCopyFilesBuildPhase;
21 | buildActionMask = 2147483647;
22 | dstPath = "";
23 | dstSubfolderSpec = 10;
24 | files = (
25 | );
26 | name = "Embed Frameworks";
27 | runOnlyForDeploymentPostprocessing = 0;
28 | };
29 | /* End PBXCopyFilesBuildPhase section */
30 |
31 | /* Begin PBXFileReference section */
32 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
33 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
34 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
35 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
36 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
37 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
38 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
39 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
40 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
41 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
42 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
43 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
44 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
45 | /* End PBXFileReference section */
46 |
47 | /* Begin PBXFrameworksBuildPhase section */
48 | 97C146EB1CF9000F007C117D /* Frameworks */ = {
49 | isa = PBXFrameworksBuildPhase;
50 | buildActionMask = 2147483647;
51 | files = (
52 | );
53 | runOnlyForDeploymentPostprocessing = 0;
54 | };
55 | /* End PBXFrameworksBuildPhase section */
56 |
57 | /* Begin PBXGroup section */
58 | 9740EEB11CF90186004384FC /* Flutter */ = {
59 | isa = PBXGroup;
60 | children = (
61 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
62 | 9740EEB21CF90195004384FC /* Debug.xcconfig */,
63 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
64 | 9740EEB31CF90195004384FC /* Generated.xcconfig */,
65 | );
66 | name = Flutter;
67 | sourceTree = "";
68 | };
69 | 97C146E51CF9000F007C117D = {
70 | isa = PBXGroup;
71 | children = (
72 | 9740EEB11CF90186004384FC /* Flutter */,
73 | 97C146F01CF9000F007C117D /* Runner */,
74 | 97C146EF1CF9000F007C117D /* Products */,
75 | );
76 | sourceTree = "";
77 | };
78 | 97C146EF1CF9000F007C117D /* Products */ = {
79 | isa = PBXGroup;
80 | children = (
81 | 97C146EE1CF9000F007C117D /* Runner.app */,
82 | );
83 | name = Products;
84 | sourceTree = "";
85 | };
86 | 97C146F01CF9000F007C117D /* Runner */ = {
87 | isa = PBXGroup;
88 | children = (
89 | 97C146FA1CF9000F007C117D /* Main.storyboard */,
90 | 97C146FD1CF9000F007C117D /* Assets.xcassets */,
91 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
92 | 97C147021CF9000F007C117D /* Info.plist */,
93 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
94 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
95 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
96 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
97 | );
98 | path = Runner;
99 | sourceTree = "";
100 | };
101 | /* End PBXGroup section */
102 |
103 | /* Begin PBXNativeTarget section */
104 | 97C146ED1CF9000F007C117D /* Runner */ = {
105 | isa = PBXNativeTarget;
106 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
107 | buildPhases = (
108 | 9740EEB61CF901F6004384FC /* Run Script */,
109 | 97C146EA1CF9000F007C117D /* Sources */,
110 | 97C146EB1CF9000F007C117D /* Frameworks */,
111 | 97C146EC1CF9000F007C117D /* Resources */,
112 | 9705A1C41CF9048500538489 /* Embed Frameworks */,
113 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
114 | );
115 | buildRules = (
116 | );
117 | dependencies = (
118 | );
119 | name = Runner;
120 | productName = Runner;
121 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
122 | productType = "com.apple.product-type.application";
123 | };
124 | /* End PBXNativeTarget section */
125 |
126 | /* Begin PBXProject section */
127 | 97C146E61CF9000F007C117D /* Project object */ = {
128 | isa = PBXProject;
129 | attributes = {
130 | LastUpgradeCheck = 1020;
131 | ORGANIZATIONNAME = "";
132 | TargetAttributes = {
133 | 97C146ED1CF9000F007C117D = {
134 | CreatedOnToolsVersion = 7.3.1;
135 | LastSwiftMigration = 1100;
136 | };
137 | };
138 | };
139 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
140 | compatibilityVersion = "Xcode 9.3";
141 | developmentRegion = en;
142 | hasScannedForEncodings = 0;
143 | knownRegions = (
144 | en,
145 | Base,
146 | );
147 | mainGroup = 97C146E51CF9000F007C117D;
148 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
149 | projectDirPath = "";
150 | projectRoot = "";
151 | targets = (
152 | 97C146ED1CF9000F007C117D /* Runner */,
153 | );
154 | };
155 | /* End PBXProject section */
156 |
157 | /* Begin PBXResourcesBuildPhase section */
158 | 97C146EC1CF9000F007C117D /* Resources */ = {
159 | isa = PBXResourcesBuildPhase;
160 | buildActionMask = 2147483647;
161 | files = (
162 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
163 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
164 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
165 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
166 | );
167 | runOnlyForDeploymentPostprocessing = 0;
168 | };
169 | /* End PBXResourcesBuildPhase section */
170 |
171 | /* Begin PBXShellScriptBuildPhase section */
172 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
173 | isa = PBXShellScriptBuildPhase;
174 | buildActionMask = 2147483647;
175 | files = (
176 | );
177 | inputPaths = (
178 | );
179 | name = "Thin Binary";
180 | outputPaths = (
181 | );
182 | runOnlyForDeploymentPostprocessing = 0;
183 | shellPath = /bin/sh;
184 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
185 | };
186 | 9740EEB61CF901F6004384FC /* Run Script */ = {
187 | isa = PBXShellScriptBuildPhase;
188 | buildActionMask = 2147483647;
189 | files = (
190 | );
191 | inputPaths = (
192 | );
193 | name = "Run Script";
194 | outputPaths = (
195 | );
196 | runOnlyForDeploymentPostprocessing = 0;
197 | shellPath = /bin/sh;
198 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
199 | };
200 | /* End PBXShellScriptBuildPhase section */
201 |
202 | /* Begin PBXSourcesBuildPhase section */
203 | 97C146EA1CF9000F007C117D /* Sources */ = {
204 | isa = PBXSourcesBuildPhase;
205 | buildActionMask = 2147483647;
206 | files = (
207 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
208 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
209 | );
210 | runOnlyForDeploymentPostprocessing = 0;
211 | };
212 | /* End PBXSourcesBuildPhase section */
213 |
214 | /* Begin PBXVariantGroup section */
215 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
216 | isa = PBXVariantGroup;
217 | children = (
218 | 97C146FB1CF9000F007C117D /* Base */,
219 | );
220 | name = Main.storyboard;
221 | sourceTree = "";
222 | };
223 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
224 | isa = PBXVariantGroup;
225 | children = (
226 | 97C147001CF9000F007C117D /* Base */,
227 | );
228 | name = LaunchScreen.storyboard;
229 | sourceTree = "";
230 | };
231 | /* End PBXVariantGroup section */
232 |
233 | /* Begin XCBuildConfiguration section */
234 | 249021D3217E4FDB00AE95B9 /* Profile */ = {
235 | isa = XCBuildConfiguration;
236 | buildSettings = {
237 | ALWAYS_SEARCH_USER_PATHS = NO;
238 | CLANG_ANALYZER_NONNULL = YES;
239 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
240 | CLANG_CXX_LIBRARY = "libc++";
241 | CLANG_ENABLE_MODULES = YES;
242 | CLANG_ENABLE_OBJC_ARC = YES;
243 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
244 | CLANG_WARN_BOOL_CONVERSION = YES;
245 | CLANG_WARN_COMMA = YES;
246 | CLANG_WARN_CONSTANT_CONVERSION = YES;
247 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
248 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
249 | CLANG_WARN_EMPTY_BODY = YES;
250 | CLANG_WARN_ENUM_CONVERSION = YES;
251 | CLANG_WARN_INFINITE_RECURSION = YES;
252 | CLANG_WARN_INT_CONVERSION = YES;
253 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
254 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
255 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
256 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
257 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
258 | CLANG_WARN_STRICT_PROTOTYPES = YES;
259 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
260 | CLANG_WARN_UNREACHABLE_CODE = YES;
261 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
262 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
263 | COPY_PHASE_STRIP = NO;
264 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
265 | ENABLE_NS_ASSERTIONS = NO;
266 | ENABLE_STRICT_OBJC_MSGSEND = YES;
267 | GCC_C_LANGUAGE_STANDARD = gnu99;
268 | GCC_NO_COMMON_BLOCKS = YES;
269 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
270 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
271 | GCC_WARN_UNDECLARED_SELECTOR = YES;
272 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
273 | GCC_WARN_UNUSED_FUNCTION = YES;
274 | GCC_WARN_UNUSED_VARIABLE = YES;
275 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
276 | MTL_ENABLE_DEBUG_INFO = NO;
277 | SDKROOT = iphoneos;
278 | SUPPORTED_PLATFORMS = iphoneos;
279 | TARGETED_DEVICE_FAMILY = "1,2";
280 | VALIDATE_PRODUCT = YES;
281 | };
282 | name = Profile;
283 | };
284 | 249021D4217E4FDB00AE95B9 /* Profile */ = {
285 | isa = XCBuildConfiguration;
286 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
287 | buildSettings = {
288 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
289 | CLANG_ENABLE_MODULES = YES;
290 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
291 | ENABLE_BITCODE = NO;
292 | FRAMEWORK_SEARCH_PATHS = (
293 | "$(inherited)",
294 | "$(PROJECT_DIR)/Flutter",
295 | );
296 | INFOPLIST_FILE = Runner/Info.plist;
297 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
298 | LIBRARY_SEARCH_PATHS = (
299 | "$(inherited)",
300 | "$(PROJECT_DIR)/Flutter",
301 | );
302 | PRODUCT_BUNDLE_IDENTIFIER = com.ocy.yousafe;
303 | PRODUCT_NAME = "$(TARGET_NAME)";
304 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
305 | SWIFT_VERSION = 5.0;
306 | VERSIONING_SYSTEM = "apple-generic";
307 | };
308 | name = Profile;
309 | };
310 | 97C147031CF9000F007C117D /* Debug */ = {
311 | isa = XCBuildConfiguration;
312 | buildSettings = {
313 | ALWAYS_SEARCH_USER_PATHS = NO;
314 | CLANG_ANALYZER_NONNULL = YES;
315 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
316 | CLANG_CXX_LIBRARY = "libc++";
317 | CLANG_ENABLE_MODULES = YES;
318 | CLANG_ENABLE_OBJC_ARC = YES;
319 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
320 | CLANG_WARN_BOOL_CONVERSION = YES;
321 | CLANG_WARN_COMMA = YES;
322 | CLANG_WARN_CONSTANT_CONVERSION = YES;
323 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
324 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
325 | CLANG_WARN_EMPTY_BODY = YES;
326 | CLANG_WARN_ENUM_CONVERSION = YES;
327 | CLANG_WARN_INFINITE_RECURSION = YES;
328 | CLANG_WARN_INT_CONVERSION = YES;
329 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
330 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
331 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
332 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
333 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
334 | CLANG_WARN_STRICT_PROTOTYPES = YES;
335 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
336 | CLANG_WARN_UNREACHABLE_CODE = YES;
337 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
338 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
339 | COPY_PHASE_STRIP = NO;
340 | DEBUG_INFORMATION_FORMAT = dwarf;
341 | ENABLE_STRICT_OBJC_MSGSEND = YES;
342 | ENABLE_TESTABILITY = YES;
343 | GCC_C_LANGUAGE_STANDARD = gnu99;
344 | GCC_DYNAMIC_NO_PIC = NO;
345 | GCC_NO_COMMON_BLOCKS = YES;
346 | GCC_OPTIMIZATION_LEVEL = 0;
347 | GCC_PREPROCESSOR_DEFINITIONS = (
348 | "DEBUG=1",
349 | "$(inherited)",
350 | );
351 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
352 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
353 | GCC_WARN_UNDECLARED_SELECTOR = YES;
354 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
355 | GCC_WARN_UNUSED_FUNCTION = YES;
356 | GCC_WARN_UNUSED_VARIABLE = YES;
357 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
358 | MTL_ENABLE_DEBUG_INFO = YES;
359 | ONLY_ACTIVE_ARCH = YES;
360 | SDKROOT = iphoneos;
361 | TARGETED_DEVICE_FAMILY = "1,2";
362 | };
363 | name = Debug;
364 | };
365 | 97C147041CF9000F007C117D /* Release */ = {
366 | isa = XCBuildConfiguration;
367 | buildSettings = {
368 | ALWAYS_SEARCH_USER_PATHS = NO;
369 | CLANG_ANALYZER_NONNULL = YES;
370 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
371 | CLANG_CXX_LIBRARY = "libc++";
372 | CLANG_ENABLE_MODULES = YES;
373 | CLANG_ENABLE_OBJC_ARC = YES;
374 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
375 | CLANG_WARN_BOOL_CONVERSION = YES;
376 | CLANG_WARN_COMMA = YES;
377 | CLANG_WARN_CONSTANT_CONVERSION = YES;
378 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
379 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
380 | CLANG_WARN_EMPTY_BODY = YES;
381 | CLANG_WARN_ENUM_CONVERSION = YES;
382 | CLANG_WARN_INFINITE_RECURSION = YES;
383 | CLANG_WARN_INT_CONVERSION = YES;
384 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
385 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
386 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
387 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
388 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
389 | CLANG_WARN_STRICT_PROTOTYPES = YES;
390 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
391 | CLANG_WARN_UNREACHABLE_CODE = YES;
392 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
393 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
394 | COPY_PHASE_STRIP = NO;
395 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
396 | ENABLE_NS_ASSERTIONS = NO;
397 | ENABLE_STRICT_OBJC_MSGSEND = YES;
398 | GCC_C_LANGUAGE_STANDARD = gnu99;
399 | GCC_NO_COMMON_BLOCKS = YES;
400 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
401 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
402 | GCC_WARN_UNDECLARED_SELECTOR = YES;
403 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
404 | GCC_WARN_UNUSED_FUNCTION = YES;
405 | GCC_WARN_UNUSED_VARIABLE = YES;
406 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
407 | MTL_ENABLE_DEBUG_INFO = NO;
408 | SDKROOT = iphoneos;
409 | SUPPORTED_PLATFORMS = iphoneos;
410 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
411 | TARGETED_DEVICE_FAMILY = "1,2";
412 | VALIDATE_PRODUCT = YES;
413 | };
414 | name = Release;
415 | };
416 | 97C147061CF9000F007C117D /* Debug */ = {
417 | isa = XCBuildConfiguration;
418 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
419 | buildSettings = {
420 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
421 | CLANG_ENABLE_MODULES = YES;
422 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
423 | ENABLE_BITCODE = NO;
424 | FRAMEWORK_SEARCH_PATHS = (
425 | "$(inherited)",
426 | "$(PROJECT_DIR)/Flutter",
427 | );
428 | INFOPLIST_FILE = Runner/Info.plist;
429 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
430 | LIBRARY_SEARCH_PATHS = (
431 | "$(inherited)",
432 | "$(PROJECT_DIR)/Flutter",
433 | );
434 | PRODUCT_BUNDLE_IDENTIFIER = com.ocy.yousafe;
435 | PRODUCT_NAME = "$(TARGET_NAME)";
436 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
437 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
438 | SWIFT_VERSION = 5.0;
439 | VERSIONING_SYSTEM = "apple-generic";
440 | };
441 | name = Debug;
442 | };
443 | 97C147071CF9000F007C117D /* Release */ = {
444 | isa = XCBuildConfiguration;
445 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
446 | buildSettings = {
447 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
448 | CLANG_ENABLE_MODULES = YES;
449 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
450 | ENABLE_BITCODE = NO;
451 | FRAMEWORK_SEARCH_PATHS = (
452 | "$(inherited)",
453 | "$(PROJECT_DIR)/Flutter",
454 | );
455 | INFOPLIST_FILE = Runner/Info.plist;
456 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
457 | LIBRARY_SEARCH_PATHS = (
458 | "$(inherited)",
459 | "$(PROJECT_DIR)/Flutter",
460 | );
461 | PRODUCT_BUNDLE_IDENTIFIER = com.ocy.yousafe;
462 | PRODUCT_NAME = "$(TARGET_NAME)";
463 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
464 | SWIFT_VERSION = 5.0;
465 | VERSIONING_SYSTEM = "apple-generic";
466 | };
467 | name = Release;
468 | };
469 | /* End XCBuildConfiguration section */
470 |
471 | /* Begin XCConfigurationList section */
472 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
473 | isa = XCConfigurationList;
474 | buildConfigurations = (
475 | 97C147031CF9000F007C117D /* Debug */,
476 | 97C147041CF9000F007C117D /* Release */,
477 | 249021D3217E4FDB00AE95B9 /* Profile */,
478 | );
479 | defaultConfigurationIsVisible = 0;
480 | defaultConfigurationName = Release;
481 | };
482 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
483 | isa = XCConfigurationList;
484 | buildConfigurations = (
485 | 97C147061CF9000F007C117D /* Debug */,
486 | 97C147071CF9000F007C117D /* Release */,
487 | 249021D4217E4FDB00AE95B9 /* Profile */,
488 | );
489 | defaultConfigurationIsVisible = 0;
490 | defaultConfigurationName = Release;
491 | };
492 | /* End XCConfigurationList section */
493 | };
494 | rootObject = 97C146E61CF9000F007C117D /* Project object */;
495 | }
496 |
--------------------------------------------------------------------------------