├── README.md
├── Screenshot
├── 1.Splash.png
├── 2.Login.png
├── 3.Social Account.png
├── 4.Password.png
├── 5.ForgetPassword.png
├── 6.Verify.png
├── 7.MainScreen.png
├── 8.Menu.png
└── 9.My Trips.png
├── android
├── Flutter_Cab.jks
├── app
│ ├── build.gradle
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── com
│ │ │ │ └── flutter_cab
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable
│ │ │ └── launch_background.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ └── values
│ │ │ └── styles.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
└── settings.gradle
├── fonts
├── Roboto-Black.ttf
├── Roboto-Bold.ttf
├── Roboto-Light.ttf
├── Roboto-Medium.ttf
└── Roboto-Regular.ttf
├── images
├── car.png
├── car_marker.png
├── city.png
├── driver.jpg
├── driver_img.jpg
├── hatchback.png
├── ic_close.png
├── ic_facebook.png
├── ic_instagram.png
├── ic_logo.png
├── ic_twitter.png
├── map-marker.png
├── menu
│ ├── book_later.png
│ ├── emergency_contacts.png
│ ├── help_support.png
│ ├── my_trips.png
│ ├── news_offers.png
│ ├── payment.png
│ ├── rate_card.png
│ └── user.png
├── navigation.png
├── payments
│ ├── card.png
│ ├── cash.png
│ └── points.png
├── stopwatch.png
├── tuk.png
└── van.png
├── ios
├── Flutter
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ └── contents.xcworkspacedata
└── Runner
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ ├── AppIcon.appiconset
│ │ ├── Contents.json
│ │ ├── Icon-App-1024x1024@1x.png
│ │ ├── Icon-App-20x20@1x.png
│ │ ├── Icon-App-20x20@2x.png
│ │ ├── Icon-App-20x20@3x.png
│ │ ├── Icon-App-29x29@1x.png
│ │ ├── Icon-App-29x29@2x.png
│ │ ├── Icon-App-29x29@3x.png
│ │ ├── Icon-App-40x40@1x.png
│ │ ├── Icon-App-40x40@2x.png
│ │ ├── Icon-App-40x40@3x.png
│ │ ├── Icon-App-60x60@2x.png
│ │ ├── Icon-App-60x60@3x.png
│ │ ├── Icon-App-76x76@1x.png
│ │ ├── Icon-App-76x76@2x.png
│ │ └── Icon-App-83.5x83.5@2x.png
│ └── LaunchImage.imageset
│ │ ├── Contents.json
│ │ ├── LaunchImage.png
│ │ ├── LaunchImage@2x.png
│ │ ├── LaunchImage@3x.png
│ │ └── README.md
│ ├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
│ ├── Info.plist
│ └── Runner-Bridging-Header.h
├── lib
├── add_card.dart
├── book_late_pick_date.dart
├── complaint.dart
├── connect_social_account.dart
├── emergency_contact.dart
├── fare_info.dart
├── forgot_password.dart
├── help_support.dart
├── home
│ ├── book_cab_without_destination.dart
│ ├── cancel_trip.dart
│ ├── cancel_trip_feedback.dart
│ ├── dialog
│ │ ├── payment_dialog.dart
│ │ └── promo_code_dialog.dart
│ ├── driver_on_the_way.dart
│ ├── drop_off_user.dart
│ ├── home.dart
│ ├── payment_menu.dart
│ ├── pickup_user.dart
│ ├── trip_end.dart
│ ├── trip_info.dart
│ └── trip_started.dart
├── login.dart
├── login_password.dart
├── main.dart
├── menu
│ └── menu.dart
├── modal
│ ├── CancelTrip.dart
│ ├── favorite_place.dart
│ └── menu_list_item.dart
├── my_trips.dart
├── news_offers.dart
├── profile.dart
├── rate_card.dart
├── splash.dart
├── utils
│ ├── CustomColors.dart
│ ├── CustomTabIndicator.dart
│ ├── CustomTextStyle.dart
│ ├── DottedLine.dart
│ └── menu_title.dart
├── verify_code.dart
└── write_complaint.dart
├── pubspec.lock
├── pubspec.yaml
└── test
└── widget_test.dart
/README.md:
--------------------------------------------------------------------------------
1 | # Flutter Cab
2 |
3 | This repository provides design related to taxi cab in flutter.
4 | I have take referenced from below link and i have tried to make same copy of that image.
5 |
6 | https://www.uplabs.com/posts/taxi-booking-app-full-app
7 |
8 | I have create design like prototype no other networking or other functionality implemented yet.
9 |
10 | # What are the package used :
11 |
12 | 1) Google Maps :
13 | For google maps, I used https://pub.dev/packages/google_maps_flutter package for loading maps.
14 |
15 | 2) Rating Bar :
16 | Currently there is no widget available for rating you have to create your own or used package and i selected second option.
17 | So for implementing rating i used https://pub.dev/packages/flutter_rating_bar package.
18 |
19 | If you want to get more idea about above packages you should go through this link where you can find the description as well as installation steps.
20 |
21 | # Screenshot
22 |
23 |

24 |

25 |

26 |
27 |

28 |

29 |

30 |

31 |

32 |
33 |
--------------------------------------------------------------------------------
/Screenshot/1.Splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/Screenshot/1.Splash.png
--------------------------------------------------------------------------------
/Screenshot/2.Login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/Screenshot/2.Login.png
--------------------------------------------------------------------------------
/Screenshot/3.Social Account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/Screenshot/3.Social Account.png
--------------------------------------------------------------------------------
/Screenshot/4.Password.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/Screenshot/4.Password.png
--------------------------------------------------------------------------------
/Screenshot/5.ForgetPassword.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/Screenshot/5.ForgetPassword.png
--------------------------------------------------------------------------------
/Screenshot/6.Verify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/Screenshot/6.Verify.png
--------------------------------------------------------------------------------
/Screenshot/7.MainScreen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/Screenshot/7.MainScreen.png
--------------------------------------------------------------------------------
/Screenshot/8.Menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/Screenshot/8.Menu.png
--------------------------------------------------------------------------------
/Screenshot/9.My Trips.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/Screenshot/9.My Trips.png
--------------------------------------------------------------------------------
/android/Flutter_Cab.jks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/android/Flutter_Cab.jks
--------------------------------------------------------------------------------
/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 |
30 |
31 | compileSdkVersion 28
32 | sourceSets {
33 | main.java.srcDirs += 'src/main/kotlin'
34 | }
35 |
36 | lintOptions {
37 | disable 'InvalidPackage'
38 | }
39 |
40 | defaultConfig {
41 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
42 | applicationId "com.flutter_cab"
43 | minSdkVersion 16
44 | targetSdkVersion 28
45 | versionCode flutterVersionCode.toInteger()
46 | versionName flutterVersionName
47 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
48 | }
49 |
50 | signingConfigs{
51 | release{
52 | storeFile file('..\\Flutter_Cab.jks')
53 | storePassword "Flutter_Cab"
54 | keyAlias = "Flutter_Cab"
55 | keyPassword "Flutter_Cab"
56 | }
57 | }
58 |
59 |
60 | buildTypes {
61 | release {
62 | signingConfig signingConfigs.release
63 | minifyEnabled true
64 | useProguard true
65 | }
66 | }
67 | }
68 |
69 | flutter {
70 | source '../..'
71 | }
72 |
73 | dependencies {
74 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
75 | testImplementation 'junit:junit:4.12'
76 | androidTestImplementation 'androidx.test:runner:1.2.0'
77 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
78 | }
79 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
10 |
17 |
21 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/flutter_cab/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.flutter_cab
2 |
3 | import android.os.Bundle
4 |
5 | import io.flutter.app.FlutterActivity
6 | import io.flutter.plugins.GeneratedPluginRegistrant
7 |
8 | class MainActivity: FlutterActivity() {
9 | override fun onCreate(savedInstanceState: Bundle?) {
10 | super.onCreate(savedInstanceState)
11 | GeneratedPluginRegistrant.registerWith(this)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.3.41'
3 | repositories {
4 | google()
5 | jcenter()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:3.2.1'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | jcenter()
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 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | android.enableJetifier=true
2 | android.useAndroidX=true
3 | org.gradle.jvmargs=-Xmx1536M
4 |
5 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Jul 22 17:51:19 IST 2019
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https://services.gradle.org/distributions/gradle-4.10.1-all.zip
7 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/fonts/Roboto-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/fonts/Roboto-Black.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/fonts/Roboto-Bold.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/fonts/Roboto-Light.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/fonts/Roboto-Medium.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/fonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/images/car.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/car.png
--------------------------------------------------------------------------------
/images/car_marker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/car_marker.png
--------------------------------------------------------------------------------
/images/city.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/city.png
--------------------------------------------------------------------------------
/images/driver.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/driver.jpg
--------------------------------------------------------------------------------
/images/driver_img.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/driver_img.jpg
--------------------------------------------------------------------------------
/images/hatchback.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/hatchback.png
--------------------------------------------------------------------------------
/images/ic_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/ic_close.png
--------------------------------------------------------------------------------
/images/ic_facebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/ic_facebook.png
--------------------------------------------------------------------------------
/images/ic_instagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/ic_instagram.png
--------------------------------------------------------------------------------
/images/ic_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/ic_logo.png
--------------------------------------------------------------------------------
/images/ic_twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/ic_twitter.png
--------------------------------------------------------------------------------
/images/map-marker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/map-marker.png
--------------------------------------------------------------------------------
/images/menu/book_later.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/menu/book_later.png
--------------------------------------------------------------------------------
/images/menu/emergency_contacts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/menu/emergency_contacts.png
--------------------------------------------------------------------------------
/images/menu/help_support.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/menu/help_support.png
--------------------------------------------------------------------------------
/images/menu/my_trips.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/menu/my_trips.png
--------------------------------------------------------------------------------
/images/menu/news_offers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/menu/news_offers.png
--------------------------------------------------------------------------------
/images/menu/payment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/menu/payment.png
--------------------------------------------------------------------------------
/images/menu/rate_card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/menu/rate_card.png
--------------------------------------------------------------------------------
/images/menu/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/menu/user.png
--------------------------------------------------------------------------------
/images/navigation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/navigation.png
--------------------------------------------------------------------------------
/images/payments/card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/payments/card.png
--------------------------------------------------------------------------------
/images/payments/cash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/payments/cash.png
--------------------------------------------------------------------------------
/images/payments/points.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/payments/points.png
--------------------------------------------------------------------------------
/images/stopwatch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/stopwatch.png
--------------------------------------------------------------------------------
/images/tuk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/tuk.png
--------------------------------------------------------------------------------
/images/van.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/images/van.png
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/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/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/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/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/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/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/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/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/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/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/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/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/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/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/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/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/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/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/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/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/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/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/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/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/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/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sky-flutter/Flutter-Cab/92681de543e6810369de300c7d051ffa68e36739/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/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/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/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 | flutter_cab
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 |
31 | UIInterfaceOrientationPortrait
32 | UIInterfaceOrientationLandscapeLeft
33 | UIInterfaceOrientationLandscapeRight
34 |
35 | UISupportedInterfaceOrientations~ipad
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationPortraitUpsideDown
39 | UIInterfaceOrientationLandscapeLeft
40 | UIInterfaceOrientationLandscapeRight
41 |
42 | UIViewControllerBasedStatusBarAppearance
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
--------------------------------------------------------------------------------
/lib/book_late_pick_date.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/cupertino.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:flutter_cab/utils/CustomTextStyle.dart';
4 |
5 | class BookLaterDatePicker extends StatefulWidget {
6 | @override
7 | _BookLaterDatePickerState createState() => _BookLaterDatePickerState();
8 | }
9 |
10 | class _BookLaterDatePickerState extends State {
11 | var selectedItem;
12 | TextEditingController _mobileNumberController = new TextEditingController();
13 |
14 | bool isTextWritten = false;
15 |
16 | @override
17 | Widget build(BuildContext context) {
18 | return Scaffold(
19 | backgroundColor: Colors.white,
20 | body: SingleChildScrollView(
21 | child: Builder(
22 | builder: (context) {
23 | return Card(
24 | elevation: 4,
25 | borderOnForeground: true,
26 | shape: RoundedRectangleBorder(
27 | borderRadius: BorderRadius.only(
28 | bottomRight: Radius.circular(16),
29 | bottomLeft: Radius.circular(16))),
30 | margin: EdgeInsets.only(left: 0, right: 0, bottom: 4),
31 | child: Container(
32 | decoration: BoxDecoration(
33 | borderRadius: BorderRadius.only(
34 | bottomRight: Radius.circular(16),
35 | bottomLeft: Radius.circular(16)),
36 | shape: BoxShape.rectangle,
37 | color: Colors.white,
38 | boxShadow: [
39 | BoxShadow(color: Colors.grey.shade50, blurRadius: 5),
40 | ]),
41 | width: double.infinity,
42 | padding: EdgeInsets.only(top: 8),
43 | child: Column(
44 | crossAxisAlignment: CrossAxisAlignment.start,
45 | children: [
46 | Container(
47 | key: Key("ContainerHeader"),
48 | margin: EdgeInsets.only(left: 14, top: 8),
49 | child: Row(
50 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
51 | children: [
52 | Container(
53 | alignment: Alignment.center,
54 | child: Text(
55 | "Book Later",
56 | style: CustomTextStyle.mediumTextStyle,
57 | ),
58 | ),
59 | IconButton(
60 | icon: Icon(Icons.close),
61 | onPressed: () {
62 | Navigator.of(context).pop();
63 | },
64 | color: Colors.black,
65 | ),
66 | ],
67 | ),
68 | ),
69 | Container(
70 | key: Key("ContainerDate"),
71 | margin: EdgeInsets.only(left: 16, right: 16),
72 | child: RichText(
73 | text: TextSpan(children: [
74 | TextSpan(
75 | text: "Date : ",
76 | style: CustomTextStyle.mediumTextStyle
77 | .copyWith(color: Colors.black, fontSize: 14)),
78 | TextSpan(
79 | text: "Sunday October 7",
80 | style: CustomTextStyle.regularTextStyle
81 | .copyWith(color: Colors.black, fontSize: 14))
82 | ]),
83 | ),
84 | ),
85 | Container(
86 | key: Key("ContainerTime"),
87 | margin: EdgeInsets.only(left: 16, right: 16, top: 8),
88 | child: RichText(
89 | text: TextSpan(children: [
90 | TextSpan(
91 | text: "Time : ",
92 | style: CustomTextStyle.mediumTextStyle
93 | .copyWith(color: Colors.black, fontSize: 14)),
94 | TextSpan(
95 | text: "09:00 AM",
96 | style: CustomTextStyle.regularTextStyle
97 | .copyWith(color: Colors.black, fontSize: 14))
98 | ]),
99 | ),
100 | ),
101 | Container(
102 | key: Key("ContainerLine"),
103 | margin: EdgeInsets.only(right: 16, left: 16, top: 12),
104 | width: double.infinity,
105 | height: 2,
106 | color: Colors.grey.shade400,
107 | ),
108 | SizedBox(
109 | height: 8,
110 | ),
111 | Container(
112 | width: double.infinity,
113 | height: 200,
114 | child: buildDatePicker(),
115 | ),
116 | Align(
117 | alignment: Alignment.topRight,
118 | child: Container(
119 | height: 50,
120 | width: 50,
121 | margin: EdgeInsets.only(top: 24, right: 16, bottom: 24),
122 | child: Icon(
123 | Icons.check,
124 | color: Colors.white,
125 | ),
126 | decoration: BoxDecoration(
127 | shape: BoxShape.circle,
128 | color: Colors.tealAccent.shade400),
129 | ),
130 | )
131 | ],
132 | ),
133 | ),
134 | );
135 | },
136 | ),
137 | ),
138 | );
139 | }
140 |
141 | DateTime date = DateTime.now();
142 |
143 | buildDatePicker() {
144 | return CupertinoDatePicker(
145 | mode: CupertinoDatePickerMode.dateAndTime,
146 | initialDateTime: date,
147 | onDateTimeChanged: (DateTime newDateTime) {
148 | setState(() => date = newDateTime);
149 | },
150 | );
151 | }
152 |
153 | createClearText() {
154 | if (isTextWritten) {
155 | return Align(
156 | alignment: Alignment.topRight,
157 | child: GestureDetector(
158 | onTap: () {
159 | _mobileNumberController.clear();
160 | setState(() {
161 | isTextWritten = false;
162 | });
163 | },
164 | child: Container(
165 | margin: EdgeInsets.only(right: 8),
166 | width: 16,
167 | height: 16,
168 | decoration: BoxDecoration(
169 | color: Colors.grey.shade400, shape: BoxShape.circle),
170 | child: Icon(
171 | Icons.close,
172 | size: 14,
173 | color: Colors.white,
174 | ),
175 | alignment: Alignment.center,
176 | ),
177 | ),
178 | );
179 | } else {
180 | return Align(
181 | alignment: Alignment.topRight,
182 | child: Container(),
183 | );
184 | }
185 | }
186 |
187 | var border = OutlineInputBorder(
188 | borderRadius: BorderRadius.all(Radius.circular(4)),
189 | borderSide: BorderSide(color: Colors.white, width: 1));
190 | }
191 |
--------------------------------------------------------------------------------
/lib/complaint.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_cab/utils/CustomTextStyle.dart';
3 |
4 | import 'package:flutter_cab/modal/CancelTrip.dart';
5 | import 'package:flutter_cab/write_complaint.dart';
6 |
7 | class Complaint extends StatefulWidget {
8 | @override
9 | _ComplaintState createState() => _ComplaintState();
10 | }
11 |
12 | class _ComplaintState extends State {
13 | List listCancelReason = new List();
14 |
15 | int selectedPosition;
16 |
17 | @override
18 | void initState() {
19 | super.initState();
20 | createComplaintReason();
21 | }
22 |
23 | createComplaintReason() {
24 | listCancelReason.add(createComplain("I lost an item", false));
25 | listCancelReason.add(createComplain("Bad driver behavior", false));
26 | listCancelReason.add(createComplain("I would like a refund", false));
27 | listCancelReason.add(createComplain("Different driver/vehicle", false));
28 | listCancelReason.add(createComplain("Other", false));
29 | }
30 |
31 | createComplain(String title, bool isSelected) {
32 | return new CancelTrip(title, isSelected);
33 | }
34 |
35 | @override
36 | Widget build(BuildContext context) {
37 | return Scaffold(
38 | backgroundColor: Colors.white,
39 | body: Container(
40 | key: Key("ContainerMain"),
41 | child: Column(
42 | key: Key("ColumnMain"),
43 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
44 | children: [
45 | Card(
46 | key: Key("CardTop"),
47 | elevation: 4,
48 | margin: EdgeInsets.all(0),
49 | shape: RoundedRectangleBorder(
50 | borderRadius: BorderRadius.only(
51 | bottomRight: Radius.circular(16),
52 | bottomLeft: Radius.circular(16))),
53 | child: Container(
54 | key: Key("ContainerListItem"),
55 | decoration: BoxDecoration(
56 | borderRadius: BorderRadius.only(
57 | bottomRight: Radius.circular(16),
58 | bottomLeft: Radius.circular(16)),
59 | boxShadow: [
60 | BoxShadow(
61 | color: Colors.grey.shade50,
62 | blurRadius: 10,
63 | offset: Offset(0, 1)),
64 | ]),
65 | child: Column(
66 | key: Key("ColumnList"),
67 | crossAxisAlignment: CrossAxisAlignment.start,
68 | children: [
69 | SizedBox(
70 | key: Key("SizedBox_24"),
71 | height: 24,
72 | ),
73 | Stack(
74 | children: [
75 | Container(
76 | key: Key("ContainerLogo"),
77 | height: 100,
78 | decoration: BoxDecoration(
79 | image: DecorationImage(
80 | image: AssetImage("images/ic_logo.png"),
81 | )),
82 | ),
83 | Align(
84 | key: Key("AlignBack"),
85 | alignment: Alignment.topLeft,
86 | child: Container(
87 | child: IconButton(
88 | icon: Icon(Icons.keyboard_backspace),
89 | onPressed: (){
90 | Navigator.pop(context);
91 | },
92 | color: Colors.black.withOpacity(0.8),
93 | ),
94 | ),
95 | )
96 | ],
97 | ),
98 | SizedBox(
99 | key: Key("SizedBox_24_1"),
100 | height: 24,
101 | ),
102 | Container(
103 | key: Key("ContainerComplaintLabel"),
104 | child: Text(
105 | "Comaplint",
106 | key: Key("TextComplaintLabel"),
107 | style: CustomTextStyle.boldTextStyle
108 | .copyWith(fontSize: 16),
109 | ),
110 | margin: EdgeInsets.only(left: 20),
111 | ),
112 | SizedBox(
113 | key: Key("SizedBox_16"),
114 | height: 16,
115 | ),
116 | ListView.builder(
117 | key: Key("ListMenu"),
118 | shrinkWrap: true,
119 | primary: true,
120 | itemBuilder: (context, position) {
121 | return createMenuListItemWidget(position);
122 | },
123 | itemCount: listCancelReason.length,
124 | ),
125 | SizedBox(
126 | height: 8,
127 | ),
128 | ],
129 | )),
130 | ),
131 | ],
132 | ),
133 | ),
134 | );
135 | }
136 |
137 | createMenuListItemWidget(int position) {
138 | return GestureDetector(
139 | onTap: () {
140 | Navigator.of(context).push(new MaterialPageRoute(builder: (context)=>WriteComplaint()));
141 | },
142 | child: Container(
143 | key: Key("ContainerListItem"),
144 | padding: EdgeInsets.only(top: 8, bottom: 8, left: 8, right: 8),
145 | child: Row(
146 | key: Key("RowListItem"),
147 | crossAxisAlignment: CrossAxisAlignment.center,
148 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
149 | children: [
150 | Container(
151 | key: Key("ContainerListTitle"),
152 | child: Text(listCancelReason[position].title),
153 | margin: EdgeInsets.only(left: 12),
154 | ),
155 | Container(
156 | key: Key("ContainerNextIcon"),
157 | width: 20,
158 | height: 20,
159 | child: Icon(
160 | Icons.navigate_next,
161 | size: 16,
162 | color: Colors.grey,
163 | ),
164 | )
165 | ],
166 | ),
167 | ),
168 | );
169 | }
170 | }
171 |
--------------------------------------------------------------------------------
/lib/connect_social_account.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_cab/utils/CustomColors.dart';
3 | import 'package:flutter_cab/utils/CustomTextStyle.dart';
4 |
5 | class CreateSocialAccount extends StatefulWidget {
6 | @override
7 | _CreateSocialAccountState createState() => _CreateSocialAccountState();
8 | }
9 |
10 | class _CreateSocialAccountState extends State {
11 | bool isTextWritten = false;
12 |
13 | TextEditingController _mobileNumberController = new TextEditingController();
14 |
15 | @override
16 | Widget build(BuildContext context) {
17 | return MaterialApp(
18 | home: Scaffold(
19 | backgroundColor: Colors.white,
20 | body: SingleChildScrollView(
21 | child: Card(
22 | elevation: 4,
23 | borderOnForeground: true,
24 | shape: RoundedRectangleBorder(
25 | borderRadius: BorderRadius.only(
26 | bottomRight: Radius.circular(16),
27 | bottomLeft: Radius.circular(16))),
28 | margin: EdgeInsets.only(left: 0, right: 0, bottom: 4),
29 | child: Container(
30 | decoration: BoxDecoration(
31 | borderRadius: BorderRadius.only(
32 | bottomRight: Radius.circular(16),
33 | bottomLeft: Radius.circular(16)),
34 | shape: BoxShape.rectangle,
35 | color: Colors.white,
36 | boxShadow: [
37 | BoxShadow(color: Colors.grey.shade50, blurRadius: 5),
38 | ]),
39 | width: double.infinity,
40 | padding: EdgeInsets.only(top: 32),
41 | child: Column(
42 | crossAxisAlignment: CrossAxisAlignment.start,
43 | children: [
44 | SizedBox(height: 14),
45 | Container(
46 | alignment: Alignment.center,
47 | child: Image(
48 | image: AssetImage("images/ic_logo.png"),
49 | width: 80,
50 | height: 80,
51 | ),
52 | ),
53 | SizedBox(height: 14),
54 | Container(
55 | margin: EdgeInsets.only(left: 16, top: 8),
56 | child: Text(
57 | "Social Account",
58 | style: CustomTextStyle.mediumTextStyle,
59 | ),
60 | ),
61 | Container(
62 | margin: EdgeInsets.only(left: 16, top: 4),
63 | child: Text(
64 | "Connect with social account",
65 | style: CustomTextStyle.regularTextStyle.copyWith(
66 | color: Colors.grey,
67 | fontSize: 12,
68 | fontWeight: FontWeight.w400),
69 | ),
70 | ),
71 | SizedBox(height: 14),
72 | Container(
73 | width: double.infinity,
74 | margin: EdgeInsets.only(right: 16, left: 16),
75 | child: RaisedButton(
76 | onPressed: () {},
77 | child: Text(
78 | "Connect with Google Account",
79 | style: CustomTextStyle.mediumTextStyle
80 | .copyWith(color: Colors.white, fontSize: 14),
81 | ),
82 | textColor: Colors.white,
83 | shape: RoundedRectangleBorder(
84 | borderRadius: BorderRadius.all(Radius.circular(24))),
85 | color: CustomColors.COLOR_GOOGLE,
86 | ),
87 | ),
88 | Container(
89 | width: double.infinity,
90 | margin: EdgeInsets.only(right: 16, left: 16),
91 | child: RaisedButton(
92 | onPressed: () {},
93 | child: Text(
94 | "Connect with Facebook Account",
95 | style: CustomTextStyle.mediumTextStyle
96 | .copyWith(color: Colors.white, fontSize: 14),
97 | ),
98 | textColor: Colors.white,
99 | shape: RoundedRectangleBorder(
100 | borderRadius: BorderRadius.all(Radius.circular(24))),
101 | color: CustomColors.COLOR_FACEBOOK,
102 | ),
103 | ),
104 | SizedBox(height: 14),
105 | ],
106 | ),
107 | ),
108 | ),
109 | ),
110 | ),
111 | );
112 | }
113 |
114 | createClearText() {
115 | return Align(
116 | alignment: Alignment.topRight,
117 | child: GestureDetector(
118 | onTap: () {
119 | setState(() {
120 | isTextWritten = !isTextWritten;
121 | });
122 | },
123 | child: Container(
124 | margin: EdgeInsets.only(right: 8),
125 | width: 20,
126 | height: 20,
127 | child: Icon(
128 | isTextWritten ? Icons.visibility : Icons.visibility_off,
129 | size: 20,
130 | color: Colors.grey,
131 | ),
132 | alignment: Alignment.center,
133 | ),
134 | ),
135 | );
136 | }
137 |
138 | var border = OutlineInputBorder(
139 | borderRadius: BorderRadius.all(Radius.circular(4)),
140 | borderSide: BorderSide(color: Colors.white, width: 1));
141 | }
142 |
--------------------------------------------------------------------------------
/lib/emergency_contact.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_cab/home/home.dart';
3 | import 'package:flutter_cab/utils/CustomTextStyle.dart';
4 |
5 | import 'forgot_password.dart';
6 |
7 | class EmergencyContacts extends StatefulWidget {
8 | @override
9 | _EmergencyContactsState createState() => _EmergencyContactsState();
10 | }
11 |
12 | class _EmergencyContactsState extends State {
13 | bool isTextWritten = false;
14 |
15 | TextEditingController _mobileNumberController = new TextEditingController();
16 |
17 | @override
18 | Widget build(BuildContext context) {
19 | return Scaffold(
20 | backgroundColor: Colors.white,
21 | body: SingleChildScrollView(
22 | child: Card(
23 | elevation: 4,
24 | borderOnForeground: true,
25 | shape: RoundedRectangleBorder(
26 | borderRadius: BorderRadius.only(
27 | bottomRight: Radius.circular(16),
28 | bottomLeft: Radius.circular(16))),
29 | margin: EdgeInsets.only(left: 0, right: 0, bottom: 4),
30 | child: Container(
31 | decoration: BoxDecoration(
32 | borderRadius: BorderRadius.only(
33 | bottomRight: Radius.circular(16),
34 | bottomLeft: Radius.circular(16)),
35 | shape: BoxShape.rectangle,
36 | color: Colors.white,
37 | boxShadow: [
38 | BoxShadow(color: Colors.grey.shade50, blurRadius: 5),
39 | ]),
40 | width: double.infinity,
41 | padding: EdgeInsets.only(top: 8),
42 | child: Column(
43 | crossAxisAlignment: CrossAxisAlignment.start,
44 | children: [
45 | Container(
46 | key: Key("ContainerHeader"),
47 | margin: EdgeInsets.only(left: 16, top: 8),
48 | child: Row(
49 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
50 | children: [
51 | Container(
52 | alignment: Alignment.center,
53 | child: Text(
54 | "Emergency Contacts",
55 | style: CustomTextStyle.mediumTextStyle,
56 | ),
57 | ),
58 | IconButton(
59 | icon: Icon(Icons.close),
60 | onPressed: () {
61 | Navigator.of(context).pop();
62 | },
63 | color: Colors.black,
64 | ),
65 | ],
66 | ),
67 | ),
68 | Container(
69 | margin: EdgeInsets.only(right: 14, left: 14),
70 | child: Row(
71 | children: [
72 | Expanded(
73 | child: Container(
74 | child: Stack(
75 | alignment: Alignment.center,
76 | children: [
77 | TextField(
78 | decoration: InputDecoration(
79 | border: border,
80 | enabledBorder: border,
81 | focusedBorder: border,
82 | contentPadding: EdgeInsets.only(
83 | left: 8, right: 32, top: 6, bottom: 6),
84 | hintText: "Add number",
85 | hasFloatingPlaceholder: false,
86 | hintStyle: CustomTextStyle.regularTextStyle
87 | .copyWith(
88 | color: Colors.grey, fontSize: 12),
89 | labelStyle: CustomTextStyle.regularTextStyle
90 | .copyWith(
91 | color: Colors.black, fontSize: 12),
92 | ),
93 | onChanged: (value) {
94 | if (value.trim().length > 0) {
95 | setState(() {
96 | this.isTextWritten = true;
97 | });
98 | } else {
99 | this.isTextWritten = false;
100 | }
101 | },
102 | controller: _mobileNumberController,
103 | keyboardType: TextInputType.phone,
104 | ),
105 | createClearText()
106 | ],
107 | ),
108 | ),
109 | flex: 100,
110 | )
111 | ],
112 | ),
113 | ),
114 | SizedBox(height: 16),
115 | Align(
116 | child: GestureDetector(
117 | onTap: () {
118 | Navigator.of(context).push(new MaterialPageRoute(
119 | builder: (context) => Home()));
120 | },
121 | child: Container(
122 | width: 40,
123 | margin: EdgeInsets.only(right: 10),
124 | height: 40,
125 | decoration: BoxDecoration(
126 | color: Colors.grey.shade500, shape: BoxShape.circle),
127 | child: Icon(
128 | Icons.check,
129 | color: Colors.white,
130 | ),
131 | ),
132 | ),
133 | alignment: Alignment.topRight,
134 | ),
135 | SizedBox(height: 24),
136 | ],
137 | ),
138 | ),
139 | ),
140 | ),
141 | );
142 | }
143 |
144 | createClearText() {
145 | if (isTextWritten) {
146 | return Align(
147 | alignment: Alignment.topRight,
148 | child: GestureDetector(
149 | onTap: () {
150 | _mobileNumberController.clear();
151 | setState(() {
152 | isTextWritten = false;
153 | });
154 | },
155 | child: Container(
156 | margin: EdgeInsets.only(right: 8),
157 | width: 16,
158 | height: 16,
159 | decoration: BoxDecoration(
160 | color: Colors.grey.shade400, shape: BoxShape.circle),
161 | child: Icon(
162 | Icons.close,
163 | size: 14,
164 | color: Colors.white,
165 | ),
166 | alignment: Alignment.center,
167 | ),
168 | ),
169 | );
170 | } else {
171 | return Align(
172 | alignment: Alignment.topRight,
173 | child: Container(),
174 | );
175 | }
176 | }
177 |
178 |
179 | var border = OutlineInputBorder(
180 | borderRadius: BorderRadius.all(Radius.circular(4)),
181 | borderSide: BorderSide(color: Colors.white, width: 1));
182 | }
183 |
--------------------------------------------------------------------------------
/lib/forgot_password.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_cab/utils/CustomTextStyle.dart';
3 | import 'package:flutter_cab/verify_code.dart';
4 |
5 | class ForgotPassword extends StatefulWidget {
6 | @override
7 | _ForgotPasswordState createState() => _ForgotPasswordState();
8 | }
9 |
10 | class _ForgotPasswordState extends State {
11 | bool isTextWritten = false;
12 |
13 | TextEditingController _mobileNumberController = new TextEditingController();
14 |
15 | @override
16 | Widget build(BuildContext context) {
17 | return MaterialApp(
18 | home: Scaffold(
19 | backgroundColor: Colors.white,
20 | body: SingleChildScrollView(
21 | child: Card(
22 | elevation: 4,
23 | borderOnForeground: true,
24 | shape: RoundedRectangleBorder(
25 | borderRadius: BorderRadius.only(
26 | bottomRight: Radius.circular(16),
27 | bottomLeft: Radius.circular(16))),
28 | margin: EdgeInsets.only(left: 0, right: 0, bottom: 4),
29 | child: Container(
30 | decoration: BoxDecoration(
31 | borderRadius: BorderRadius.only(
32 | bottomRight: Radius.circular(16),
33 | bottomLeft: Radius.circular(16)),
34 | shape: BoxShape.rectangle,
35 | color: Colors.white,
36 | boxShadow: [
37 | BoxShadow(color: Colors.grey.shade50, blurRadius: 5),
38 | ]),
39 | width: double.infinity,
40 | padding: EdgeInsets.only(top: 32),
41 | child: Column(
42 | crossAxisAlignment: CrossAxisAlignment.start,
43 | children: [
44 | SizedBox(height: 14),
45 | Container(
46 | alignment: Alignment.center,
47 | child: Image(
48 | image: AssetImage("images/ic_logo.png"),
49 | width: 80,
50 | height: 80,
51 | ),
52 | ),
53 | SizedBox(height: 14),
54 | Container(
55 | margin: EdgeInsets.only(left: 16, top: 8),
56 | child: Text(
57 | "Enter your email address",
58 | style: CustomTextStyle.regularTextStyle,
59 | ),
60 | ),
61 | Container(
62 | margin: EdgeInsets.only(left: 16, top: 4),
63 | child: Text(
64 | "Enter your email address to get the password reset code",
65 | style: CustomTextStyle.regularTextStyle.copyWith(
66 | color: Colors.grey,
67 | fontSize: 12,
68 | fontWeight: FontWeight.w400),
69 | ),
70 | ),
71 | SizedBox(height: 14),
72 | Container(
73 | margin: EdgeInsets.only(right: 14, left: 14),
74 | child: Row(
75 | children: [
76 | Expanded(
77 | child: Container(
78 | child: Stack(
79 | alignment: Alignment.center,
80 | children: [
81 | TextField(
82 | decoration: InputDecoration(
83 | border: border,
84 | enabledBorder: border,
85 | focusedBorder: border,
86 | contentPadding: EdgeInsets.only(
87 | left: 8, right: 32, top: 6, bottom: 6),
88 | hintText: "Enter your email address",
89 | hasFloatingPlaceholder: true,
90 | hintStyle: CustomTextStyle.regularTextStyle
91 | .copyWith(
92 | color: Colors.grey, fontSize: 12),
93 | labelStyle: CustomTextStyle.regularTextStyle
94 | .copyWith(
95 | color: Colors.black, fontSize: 12),
96 | ),
97 | keyboardType: TextInputType.emailAddress,
98 | ),
99 |
100 | ],
101 | ),
102 | decoration: BoxDecoration(
103 | borderRadius:
104 | BorderRadius.all(Radius.circular(4)),
105 | border: Border.all(
106 | width: 1, color: Colors.grey.shade400)),
107 | ),
108 | flex: 100,
109 | )
110 | ],
111 | ),
112 | ),
113 | SizedBox(height: 16),
114 | Row(
115 | mainAxisAlignment: MainAxisAlignment.end,
116 | children: [
117 |
118 | GestureDetector(
119 | onTap: (){
120 | Navigator.push(context, new MaterialPageRoute(builder: (context)=>VerifyCode()));
121 | },
122 | child: Container(
123 | width: 40,
124 | margin: EdgeInsets.only(right: 10),
125 | height: 40,
126 | decoration: BoxDecoration(
127 | color: Colors.grey, shape: BoxShape.circle),
128 | child: Icon(
129 | Icons.arrow_forward,
130 | color: Colors.white,
131 | ),
132 | ),
133 | )
134 | ],
135 | ),
136 | SizedBox(height: 24),
137 | ],
138 | ),
139 | ),
140 | ),
141 | ),
142 | ),
143 | );
144 | }
145 |
146 |
147 |
148 | var border = OutlineInputBorder(
149 | borderRadius: BorderRadius.all(Radius.circular(4)),
150 | borderSide: BorderSide(color: Colors.white, width: 1));
151 | }
152 |
--------------------------------------------------------------------------------
/lib/help_support.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_cab/utils/CustomTextStyle.dart';
3 |
4 | class HelpSupport extends StatefulWidget {
5 | @override
6 | _HelpSupportState createState() => _HelpSupportState();
7 | }
8 |
9 | class _HelpSupportState extends State {
10 | @override
11 | Widget build(BuildContext context) {
12 | return Scaffold(
13 | appBar: AppBar(
14 | backgroundColor: Colors.white,
15 | elevation: 0,
16 | title: Text(
17 | "Help and Support",
18 | style: CustomTextStyle.mediumTextStyle.copyWith(color: Colors.black),
19 | ),
20 | centerTitle: true,
21 | leading: IconButton(
22 | icon: Icon(
23 | Icons.keyboard_backspace,
24 | color: Colors.black,
25 | ),
26 | onPressed: () {
27 | Navigator.pop(context);
28 | }),
29 | ),
30 | body: Container(
31 | color: Colors.white,
32 | child: Column(
33 | children: [
34 | Expanded(
35 | child: Container(
36 | padding: EdgeInsets.only(left: 18,right: 18),
37 | width: double.infinity,
38 | child: Column(
39 | mainAxisAlignment: MainAxisAlignment.start,
40 | crossAxisAlignment: CrossAxisAlignment.start,
41 | children: [
42 | Text("About",style: CustomTextStyle.boldTextStyle.copyWith(fontSize: 12),),
43 | SizedBox(height: 4,),
44 | Text("Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.",style: CustomTextStyle.regularTextStyle.copyWith(fontSize: 12,color: Colors.grey.shade600),),
45 | SizedBox(height:24,),
46 | Text("Dear Passenger,",style: CustomTextStyle.boldTextStyle.copyWith(fontSize: 12),),
47 | SizedBox(height: 4,),
48 | Text("Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. \n\nIt has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.",style: CustomTextStyle.regularTextStyle.copyWith(fontSize: 12,color: Colors.grey.shade600),),
49 | SizedBox(height:24,),
50 | Text("Kangaroo Cabs HQ,",style: CustomTextStyle.boldTextStyle.copyWith(fontSize: 12),),
51 | SizedBox(height: 4,),
52 | Text("No. 485 7/A, Gunawardena Mawatha,Wijerama,\nNugegoda, Sri Lanka.",style: CustomTextStyle.regularTextStyle.copyWith(fontSize: 12,color: Colors.grey.shade600),),
53 | SizedBox(height:24,),
54 | Text("Terms And Conditions",style: CustomTextStyle.regularTextStyle.copyWith(fontSize: 12,color: Colors.black),),
55 | SizedBox(height:8,),
56 | Text("Version - 2.0",style: CustomTextStyle.regularTextStyle.copyWith(fontSize: 12,color: Colors.grey),),
57 | ],
58 | ),
59 | ),
60 | flex: 70,
61 | ),
62 | Expanded(
63 | child: Container(
64 | padding: EdgeInsets.only(right: 16,left: 16,top: 8,bottom: 8),
65 | child: Column(
66 | mainAxisAlignment: MainAxisAlignment.spaceEvenly,
67 | children: [
68 | Row(
69 | mainAxisAlignment: MainAxisAlignment.center,
70 | children: [
71 | Container(
72 | padding: EdgeInsets.all(6),
73 | child: Image(
74 | image: AssetImage("images/ic_facebook.png"),
75 | width: 24,
76 | height: 24),
77 | decoration: BoxDecoration(
78 | shape: BoxShape.circle,
79 | color: Colors.grey.shade600,
80 | ),
81 | ),
82 | SizedBox(
83 | width: 16,
84 | ),
85 | Container(
86 | padding: EdgeInsets.all(6),
87 | child: Image(
88 | image: AssetImage("images/ic_twitter.png"),
89 | width: 24,
90 | height: 24),
91 | decoration: BoxDecoration(
92 | shape: BoxShape.circle,
93 | color: Colors.grey.shade600,
94 | ),
95 | ),
96 | SizedBox(
97 | width: 16,
98 | ),
99 | Container(
100 | padding: EdgeInsets.all(6),
101 | child: Image(
102 | image: AssetImage("images/ic_instagram.png"),
103 | width: 24,
104 | height: 24),
105 | decoration: BoxDecoration(
106 | shape: BoxShape.circle,
107 | color: Colors.grey.shade600,
108 | ),
109 | ),
110 | ],
111 | ),
112 | Container(
113 | width: double.infinity,
114 | child: RaisedButton(
115 | onPressed: () {},
116 | color: Colors.white,
117 | padding: EdgeInsets.only(top: 12,bottom: 12),
118 | shape: RoundedRectangleBorder(
119 | borderRadius: BorderRadius.circular(100),
120 | side: BorderSide(color: Colors.tealAccent.shade700,width: 1)
121 | ),
122 | child: Text("Call Customer Support",style: CustomTextStyle.mediumTextStyle.copyWith(color: Colors.tealAccent.shade700),),
123 | ),
124 | ),
125 | Container(
126 | width: double.infinity,
127 | child: RaisedButton(
128 | onPressed: () {},
129 | color: Colors.white,
130 | padding: EdgeInsets.only(top: 12,bottom: 12),
131 | shape: RoundedRectangleBorder(
132 | borderRadius: BorderRadius.circular(100),
133 | side: BorderSide(color: Colors.yellowAccent.shade400,width: 1)
134 | ),
135 | child: Text("Email Us Your Ideas",style: CustomTextStyle.mediumTextStyle.copyWith(color: Colors.amberAccent.shade400),),
136 | ),
137 | )
138 | ],
139 | ),
140 | ),
141 | flex: 30,
142 | )
143 | ],
144 | ),
145 | ),
146 | );
147 | }
148 | }
149 |
--------------------------------------------------------------------------------
/lib/home/cancel_trip.dart:
--------------------------------------------------------------------------------
1 | import 'dart:ui';
2 |
3 | import 'package:flutter/material.dart';
4 | import 'package:flutter_cab/home/driver_on_the_way.dart';
5 | import 'package:flutter_cab/utils/CustomTextStyle.dart';
6 | import 'package:google_maps_flutter/google_maps_flutter.dart';
7 |
8 | class CancelTrip extends StatefulWidget {
9 | @override
10 | _CancelTripState createState() => _CancelTripState();
11 | }
12 |
13 | class _CancelTripState extends State {
14 | var _ahmedabad = LatLng(23.0225, 72.5714);
15 | var _ahmedabad1 = LatLng(23.038304, 72.511856);
16 | var _ahmedabad2 = LatLng(23.036769, 72.562601);
17 | var _ahmedabad3 = LatLng(22.996224, 72.602492);
18 | var _ahmedabad4 = LatLng(23.040403, 72.585802);
19 | Set markers = new Set();
20 |
21 | GlobalKey _scaffoldKey = new GlobalKey();
22 | GoogleMapController mapController;
23 |
24 | BitmapDescriptor bitmapDescriptor;
25 |
26 | @override
27 | void initState() {
28 | // TODO: implement initState
29 | super.initState();
30 | addMarker();
31 | }
32 |
33 | addMarker() {
34 | markers.add(createMarker("ahmedabad", _ahmedabad));
35 | markers.add(createMarker("ahmedabad1", _ahmedabad1));
36 | markers.add(createMarker("ahmedabad2", _ahmedabad2));
37 | markers.add(createMarker("ahmedabad3", _ahmedabad3));
38 | markers.add(createMarker("ahmedabad4", _ahmedabad4));
39 | }
40 |
41 | createMarker(String id, LatLng latLng) {
42 | return Marker(
43 | markerId: MarkerId(id),
44 | position: latLng,
45 | );
46 | }
47 |
48 | void _onMapCreated(GoogleMapController mapController) {
49 | this.mapController = mapController;
50 | }
51 |
52 | @override
53 | Widget build(BuildContext context) {
54 | return Scaffold(
55 | key: _scaffoldKey,
56 | body: Container(
57 | width: double.infinity,
58 | child: Stack(
59 | children: [
60 | GoogleMap(
61 | onMapCreated: _onMapCreated,
62 | markers: markers,
63 | initialCameraPosition:
64 | CameraPosition(target: _ahmedabad, zoom: 14),
65 | ),
66 | Align(
67 | alignment: Alignment.bottomCenter,
68 | child: Container(
69 | width: double.infinity,
70 | height: 240,
71 | child: Stack(
72 | children: [
73 | Container(
74 | width: double.infinity,
75 | decoration: BoxDecoration(
76 | borderRadius: BorderRadius.only(
77 | topRight: Radius.circular(16),
78 | topLeft: Radius.circular(16)),
79 | color: Colors.white,
80 | ),
81 | margin: EdgeInsets.only(top: 50),
82 | child: Column(
83 | mainAxisAlignment: MainAxisAlignment.center,
84 | crossAxisAlignment: CrossAxisAlignment.center,
85 | children: [
86 | SizedBox(
87 | height: 70,
88 | ),
89 | Text(
90 | "Nihal Perera",
91 | style: CustomTextStyle.boldTextStyle,
92 | ),
93 | Container(
94 | margin: EdgeInsets.only(left: 4, right: 4, top: 2),
95 | child: Text(
96 | "Requesting your ride please wait...",
97 | style: CustomTextStyle.regularTextStyle
98 | .copyWith(color: Colors.grey, fontSize: 12),
99 | ),
100 | ),
101 | SizedBox(
102 | height: 8,
103 | ),
104 | Expanded(
105 | child: Container(
106 | width: double.infinity,
107 | margin: EdgeInsets.only(top: 16),
108 | child: RaisedButton(
109 | onPressed: () {
110 | Navigator.of(context).push(
111 | new MaterialPageRoute(
112 | builder: (context) =>
113 | DriverOnTheWay()));
114 | },
115 | color: Colors.grey.shade200,
116 | child: Text(
117 | "Cancel Trip",
118 | style: CustomTextStyle.mediumTextStyle,
119 | ),
120 | ),
121 | ))
122 | ],
123 | ),
124 | ),
125 | Align(
126 | alignment: Alignment.topCenter,
127 | child: Container(
128 | width: 100,
129 | height: 100,
130 | decoration: BoxDecoration(
131 | image: DecorationImage(
132 | image: AssetImage("images/driver.jpg")),
133 | borderRadius:
134 | BorderRadius.all(Radius.circular(10))),
135 | ),
136 | ),
137 | Align(
138 | alignment: Alignment.topCenter,
139 | child: Container(
140 | alignment: Alignment.topCenter,
141 | child: Container(
142 | width: 100,
143 | margin: EdgeInsets.only(top: 70),
144 | height: 30,
145 | decoration: BoxDecoration(
146 | borderRadius: BorderRadius.only(
147 | bottomLeft: Radius.circular(10),
148 | bottomRight: Radius.circular(10)),
149 | color: Colors.black.withOpacity(0.5)),
150 | child: Row(
151 | mainAxisAlignment: MainAxisAlignment.center,
152 | children: [
153 | Text(
154 | "4.5",
155 | style: CustomTextStyle.boldTextStyle.copyWith(
156 | color: Colors.white, fontSize: 16),
157 | ),
158 | SizedBox(
159 | width: 4,
160 | ),
161 | Icon(
162 | Icons.star,
163 | color: Colors.yellowAccent.shade700,
164 | )
165 | ],
166 | ),
167 | ),
168 | ),
169 | )
170 | ],
171 | ),
172 | ),
173 | )
174 | ],
175 | ),
176 | ),
177 | );
178 | }
179 | }
180 |
--------------------------------------------------------------------------------
/lib/home/cancel_trip_feedback.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_cab/utils/CustomTextStyle.dart';
3 |
4 | import '../fare_info.dart';
5 | import 'package:flutter_cab/modal/CancelTrip.dart';
6 |
7 | class CancelTripFeedback extends StatefulWidget {
8 | @override
9 | _CancelTripFeedbackState createState() => _CancelTripFeedbackState();
10 | }
11 |
12 | class _CancelTripFeedbackState extends State {
13 | List listCancelReason = new List();
14 |
15 | int selectedPosition;
16 |
17 | @override
18 | void initState() {
19 | super.initState();
20 | createListOfReason();
21 | }
22 |
23 | createListOfReason() {
24 | listCancelReason.add(createCancelReason("Change my mind", false));
25 | listCancelReason.add(createCancelReason("Driver is late", false));
26 | listCancelReason.add(createCancelReason("I got lift", false));
27 | listCancelReason.add(createCancelReason("Driver too far", false));
28 | listCancelReason.add(createCancelReason("Driver ask to cancel", false));
29 | listCancelReason.add(createCancelReason("Other", false));
30 | }
31 |
32 | createCancelReason(String title, bool isSelected) {
33 | return new CancelTrip(title, isSelected);
34 | }
35 |
36 | @override
37 | Widget build(BuildContext context) {
38 | return MaterialApp(
39 | home: Scaffold(
40 | backgroundColor: Colors.white,
41 | body: Container(
42 | child: Column(
43 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
44 | children: [
45 | Card(
46 | elevation: 4,
47 | margin: EdgeInsets.all(0),
48 | shape: RoundedRectangleBorder(
49 | borderRadius: BorderRadius.only(
50 | bottomRight: Radius.circular(16),
51 | bottomLeft: Radius.circular(16))),
52 | child: Container(
53 | decoration: BoxDecoration(
54 | borderRadius: BorderRadius.only(
55 | bottomRight: Radius.circular(16),
56 | bottomLeft: Radius.circular(16)),
57 | boxShadow: [
58 | BoxShadow(
59 | color: Colors.grey.shade50,
60 | blurRadius: 10,
61 | offset: Offset(0, 1)),
62 | ]),
63 | child: Column(
64 | crossAxisAlignment: CrossAxisAlignment.start,
65 | children: [
66 | SizedBox(
67 | height: 24,
68 | ),
69 | Container(
70 | height: 100,
71 | decoration: BoxDecoration(
72 | image: DecorationImage(
73 | image: AssetImage("images/ic_logo.png"),
74 | )),
75 | ),
76 | SizedBox(
77 | height: 24,
78 | ),
79 | Container(
80 | child: Text(
81 | "Cancel Request",
82 | style: CustomTextStyle.boldTextStyle
83 | .copyWith(fontSize: 16),
84 | ),
85 | margin: EdgeInsets.only(left: 20),
86 | ),
87 | SizedBox(
88 | height: 16,
89 | ),
90 | ListView.builder(
91 | key: Key("ListMenu"),
92 | shrinkWrap: true,
93 | primary: true,
94 | itemBuilder: (context, position) {
95 | return createMenuListItemWidget(position);
96 | },
97 | itemCount: listCancelReason.length,
98 | ),
99 | SizedBox(
100 | height: 8,
101 | ),
102 | ],
103 | )),
104 | ),
105 | Container(
106 | alignment: Alignment.bottomCenter,
107 | child: Row(
108 | mainAxisAlignment: MainAxisAlignment.spaceAround,
109 | crossAxisAlignment: CrossAxisAlignment.start,
110 | children: [
111 | Expanded(
112 | flex: 50,
113 | child: Container(
114 | margin: EdgeInsets.only(left: 16),
115 | child: RaisedButton(
116 | onPressed: () {
117 | Navigator.of(context).push(new MaterialPageRoute(builder: (context)=>FareInfo()));
118 | },
119 | shape: RoundedRectangleBorder(
120 | borderRadius:
121 | BorderRadius.all(Radius.circular(100)),
122 | side: BorderSide(
123 | color: Colors.grey.shade400, width: 1)),
124 | color: Colors.white,
125 | child: Text(
126 | "Submit",
127 | style: CustomTextStyle.boldTextStyle
128 | .copyWith(color: Colors.black),
129 | ),
130 | ),
131 | ),
132 | ),
133 | Expanded(
134 | flex: 50,
135 | child: Container(
136 | margin: EdgeInsets.only(left: 4, right: 16),
137 | child: RaisedButton(
138 | onPressed: () {},
139 | shape: RoundedRectangleBorder(
140 | borderRadius:
141 | BorderRadius.all(Radius.circular(100)),
142 | side: BorderSide(
143 | color: Colors.grey.shade400, width: 1)),
144 | color: Colors.white,
145 | child: Text(
146 | "Cancel",
147 | style: CustomTextStyle.boldTextStyle
148 | .copyWith(color: Colors.black),
149 | ),
150 | ),
151 | ),
152 | ),
153 | ],
154 | ),
155 | )
156 | ],
157 | ),
158 | ),
159 | ),
160 | );
161 | }
162 |
163 | createMenuListItemWidget(int position) {
164 | return GestureDetector(
165 | onTap: () {
166 | setState(() {
167 | selectedPosition = position;
168 | });
169 | },
170 | child: Container(
171 | padding: EdgeInsets.only(top: 8, bottom: 8, left: 8, right: 8),
172 | child: Row(
173 | crossAxisAlignment: CrossAxisAlignment.center,
174 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
175 | children: [
176 | Container(
177 | child: Text(listCancelReason[position].title),
178 | margin: EdgeInsets.only(left: 12),
179 | ),
180 | Container(
181 | width: 20,
182 | height: 20,
183 | child: Icon(
184 | Icons.check,
185 | size: 16,
186 | color: Colors.white,
187 | ),
188 | decoration: BoxDecoration(
189 | color: selectedPosition == position
190 | ? Colors.tealAccent.shade400
191 | : Colors.transparent,
192 | shape: BoxShape.circle),
193 | )
194 | ],
195 | ),
196 | ),
197 | );
198 | }
199 | }
200 |
--------------------------------------------------------------------------------
/lib/home/dialog/payment_dialog.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_cab/utils/CustomTextStyle.dart';
3 |
4 | import '../../add_card.dart';
5 |
6 | class PaymentDialog extends StatelessWidget {
7 | @override
8 | Widget build(BuildContext context) {
9 | return Container(
10 | color: Colors.black.withOpacity(0.2),
11 | alignment: Alignment.topCenter,
12 | child: Card(
13 | margin: EdgeInsets.all(0),
14 | shape: RoundedRectangleBorder(
15 | borderRadius: BorderRadius.only(
16 | bottomRight: Radius.circular(16),
17 | bottomLeft: Radius.circular(16))),
18 | elevation: 0,
19 | child: Container(
20 | decoration: BoxDecoration(
21 | borderRadius: BorderRadius.only(
22 | bottomRight: Radius.circular(16),
23 | bottomLeft: Radius.circular(16)),
24 | ),
25 | height: 200,
26 | child: Column(
27 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
28 | children: [
29 | Stack(
30 | children: [
31 | Align(
32 | alignment: Alignment.topLeft,
33 | child: IconButton(
34 | icon: Icon(Icons.keyboard_backspace),
35 | onPressed: () {
36 | Navigator.of(context).pop();
37 | },
38 | color: Colors.black,
39 | ),
40 | ),
41 | Align(
42 | alignment: Alignment.center,
43 | child: Container(
44 | margin: EdgeInsets.only(top: 16),
45 | alignment: Alignment.center,
46 | child: Text(
47 | "Payment",
48 | style: CustomTextStyle.mediumTextStyle,
49 | ),
50 | ),
51 | )
52 | ],
53 | ),
54 | Expanded(
55 | child: Container(
56 | alignment: Alignment.bottomCenter,
57 | child: Row(
58 | children: [
59 | Expanded(
60 | child: Column(
61 | mainAxisAlignment: MainAxisAlignment.center,
62 | crossAxisAlignment: CrossAxisAlignment.center,
63 | children: [
64 | Image(
65 | image: AssetImage("images/payments/cash.png"),
66 | height: 40,
67 | width: 40,
68 | ),
69 | SizedBox(
70 | height: 4,
71 | ),
72 | Text("Cash",
73 | style: CustomTextStyle.regularTextStyle
74 | .copyWith(fontSize: 12))
75 | ],
76 | ),
77 | flex: 32,
78 | ),
79 | Container(
80 | margin: EdgeInsets.only(bottom: 16),
81 | child: Container(
82 | width: 1,
83 | height: 30,
84 | color: Colors.grey,
85 | ),
86 | ),
87 | Expanded(
88 | child: GestureDetector(
89 | onTap: (){
90 | Navigator.of(context).pushReplacement(new MaterialPageRoute(builder: (context)=>AddCard()));
91 | },
92 | child: Container(
93 | child: Column(
94 | mainAxisAlignment: MainAxisAlignment.center,
95 | crossAxisAlignment: CrossAxisAlignment.center,
96 | children: [
97 | Image(
98 | image: AssetImage("images/payments/card.png"),
99 | height: 40,
100 | width: 40,
101 | color: Colors.grey,
102 | ),
103 | SizedBox(
104 | height: 4,
105 | ),
106 | Text("Card",
107 | style:
108 | CustomTextStyle.regularTextStyle.copyWith(
109 | fontSize: 12,
110 | color: Colors.grey,
111 | ))
112 | ],
113 | ),
114 | ),
115 | ),
116 | flex: 32,
117 | ),
118 | Container(
119 | margin: EdgeInsets.only(bottom: 16),
120 | child: Container(
121 | width: 1,
122 | height: 30,
123 | color: Colors.grey,
124 | ),
125 | ),
126 | Expanded(
127 | child: Column(
128 | mainAxisAlignment: MainAxisAlignment.center,
129 | crossAxisAlignment: CrossAxisAlignment.center,
130 | children: [
131 | Image(
132 | image: AssetImage("images/payments/points.png"),
133 | height: 40,
134 | width: 40,
135 | color: Colors.grey,
136 | ),
137 | SizedBox(
138 | height: 4,
139 | ),
140 | Text("Points",
141 | style:
142 | CustomTextStyle.regularTextStyle.copyWith(
143 | fontSize: 12,
144 | color: Colors.grey,
145 | ))
146 | ],
147 | ),
148 | flex: 32,
149 | )
150 | ],
151 | ),
152 | ),
153 | flex: 100,
154 | )
155 | ],
156 | ),
157 | ),
158 | ),
159 | );
160 | }
161 | }
162 |
--------------------------------------------------------------------------------
/lib/home/dialog/promo_code_dialog.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_cab/utils/CustomTextStyle.dart';
3 |
4 | class PromoCodeDialog extends StatefulWidget {
5 | @override
6 | _PromoCodeDialogState createState() => _PromoCodeDialogState();
7 | }
8 |
9 | class _PromoCodeDialogState extends State {
10 |
11 | TextEditingController _mobileNumberController = new TextEditingController();
12 |
13 | bool isTextWritten = false;
14 |
15 |
16 | @override
17 | Widget build(BuildContext context) {
18 | return Container(
19 | alignment: Alignment.topCenter,
20 | child: Card(
21 | margin: EdgeInsets.all(0),
22 | shape: RoundedRectangleBorder(
23 | borderRadius: BorderRadius.only(
24 | bottomRight: Radius.circular(16),
25 | bottomLeft: Radius.circular(16))),
26 | elevation: 0,
27 | child: Container(
28 | decoration: BoxDecoration(
29 | borderRadius: BorderRadius.only(
30 | bottomRight: Radius.circular(16),
31 | bottomLeft: Radius.circular(16)),
32 | boxShadow: [
33 | BoxShadow(color: Colors.grey.shade50, blurRadius: 1,offset: Offset(0, 1)),
34 | ]
35 | ),
36 | height: 200,
37 | child: Column(
38 | children: [
39 | Container(
40 | margin: EdgeInsets.only(left: 14,top: 8),
41 | child: Row(
42 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
43 | children: [
44 | Container(
45 | alignment: Alignment.center,
46 | child: Text(
47 | "Promo Code",
48 | style: CustomTextStyle.mediumTextStyle,
49 | ),
50 | ),
51 | IconButton(
52 | icon: Icon(Icons.close),
53 | onPressed: () {
54 | Navigator.of(context).pop();
55 | },
56 | color: Colors.black,
57 | ),
58 | ],
59 | ),
60 | ),
61 | Container(
62 | margin: EdgeInsets.only(left: 12,right: 12, top: 8),
63 | child: Stack(
64 | alignment: Alignment.center,
65 | children: [
66 | TextField(
67 | decoration: InputDecoration(
68 | border: border,
69 | enabledBorder: border,
70 | focusedBorder: border,
71 | contentPadding: EdgeInsets.only(
72 | left: 8,
73 | right: 32,
74 | top: 10,
75 | bottom: 10),
76 | hintText: "Promo Code",
77 | hasFloatingPlaceholder: true,
78 | hintStyle: CustomTextStyle
79 | .regularTextStyle
80 | .copyWith(
81 | color: Colors.grey, fontSize: 12),
82 | labelStyle: CustomTextStyle
83 | .regularTextStyle
84 | .copyWith(
85 | color: Colors.black,
86 | fontSize: 12),
87 | ),
88 | onChanged: (value) {
89 | if (value.trim().length > 0) {
90 | setState(() {
91 | this.isTextWritten = true;
92 | });
93 | } else {
94 | this.isTextWritten = false;
95 | }
96 | },
97 | controller: _mobileNumberController,
98 | keyboardType: TextInputType.phone,
99 | ),
100 | createClearText()
101 | ],
102 | ),
103 | decoration: BoxDecoration(
104 | borderRadius:
105 | BorderRadius.all(Radius.circular(4)),
106 | border: Border.all(
107 | width: 1, color: Colors.grey.shade400)),
108 | ),
109 | Expanded(child: Container(
110 | margin: EdgeInsets.only(bottom: 16,left: 14,right: 12),
111 | alignment: Alignment.bottomCenter,
112 | child: Row(
113 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
114 | crossAxisAlignment: CrossAxisAlignment.center ,
115 | children: [
116 | Container(
117 | child: Text("Please enter your promo code\nand save it on your ride",softWrap: true,style: CustomTextStyle.regularTextStyle.copyWith(color: Colors.grey,fontSize: 12),),
118 | ),
119 | Container(
120 | height: 50,
121 | width: 50,
122 | child: Icon(Icons.check,color: Colors.white,),
123 | decoration: BoxDecoration(
124 | shape: BoxShape.circle,
125 | color: Colors.tealAccent.shade400
126 | ),
127 | )
128 | ],
129 | ),
130 | ),flex: 100,)
131 | ],
132 | ),),
133 | ),
134 | );
135 | }
136 |
137 | createClearText() {
138 | if (isTextWritten) {
139 | return Align(
140 | alignment: Alignment.topRight,
141 | child: GestureDetector(
142 | onTap: () {
143 | _mobileNumberController.clear();
144 | setState(() {
145 | isTextWritten = false;
146 | });
147 | },
148 | child: Container(
149 | margin: EdgeInsets.only(right: 8),
150 | width: 16,
151 | height: 16,
152 | decoration: BoxDecoration(
153 | color: Colors.grey.shade400, shape: BoxShape.circle),
154 | child: Icon(
155 | Icons.close,
156 | size: 14,
157 | color: Colors.white,
158 | ),
159 | alignment: Alignment.center,
160 | ),
161 | ),
162 | );
163 | } else {
164 | return Align(
165 | alignment: Alignment.topRight,
166 | child: Container(),
167 | );
168 | }
169 | }
170 |
171 | var border = OutlineInputBorder(
172 | borderRadius: BorderRadius.all(Radius.circular(4)),
173 | borderSide: BorderSide(color: Colors.white, width: 1));
174 | }
175 |
--------------------------------------------------------------------------------
/lib/home/home.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_cab/home/pickup_user.dart';
3 | import 'package:flutter_cab/menu/menu.dart';
4 | import 'package:flutter_cab/utils/CustomTextStyle.dart';
5 | import 'package:google_maps_flutter/google_maps_flutter.dart';
6 |
7 | class Home extends StatefulWidget {
8 | @override
9 | _HomeState createState() => _HomeState();
10 | }
11 |
12 | class _HomeState extends State {
13 | var _ahmedabad = LatLng(23.0225, 72.5714);
14 | Set markers = new Set();
15 |
16 | GoogleMapController mapController;
17 | BitmapDescriptor bitmapDescriptor;
18 |
19 | @override
20 | void initState() {
21 | // TODO: implement initState
22 | super.initState();
23 | BitmapDescriptor.fromAssetImage(
24 | ImageConfiguration(), "images/map-marker.png")
25 | .then((bitmap) {
26 | bitmapDescriptor = bitmap;
27 | });
28 | markers.add(Marker(
29 | markerId: MarkerId("ahmedabad"),
30 | position: _ahmedabad,
31 | icon: bitmapDescriptor));
32 | }
33 |
34 | void _onMapCreated(GoogleMapController mapController) {
35 | this.mapController = mapController;
36 | }
37 |
38 | @override
39 | Widget build(BuildContext context) {
40 | return MaterialApp(
41 | home: Scaffold(
42 | resizeToAvoidBottomPadding: false,
43 | body: Builder(
44 | builder: (context) {
45 | return Container(
46 | child: Stack(
47 | children: [
48 | GoogleMap(
49 | initialCameraPosition:
50 | CameraPosition(target: _ahmedabad, zoom: 14),
51 | myLocationEnabled: true,
52 | myLocationButtonEnabled: true,
53 | markers: markers,
54 | onMapCreated: _onMapCreated,
55 | ),
56 | Column(
57 | children: [
58 | SizedBox(
59 | height: 20,
60 | ),
61 | Align(
62 | alignment: Alignment.topRight,
63 | child: Container(
64 | child: IconButton(
65 | icon: Icon(Icons.menu), onPressed: () {
66 | showDialog(context: context,builder: (context){
67 | return Menu();
68 | });
69 | }),
70 | ),
71 | ),
72 | Card(
73 | margin:
74 | EdgeInsets.symmetric(horizontal: 30, vertical: 12),
75 | child: Container(
76 | child: Row(
77 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
78 | children: [
79 | Container(
80 | width: 10,
81 | margin: EdgeInsets.only(left: 16),
82 | decoration: BoxDecoration(
83 | shape: BoxShape.circle,
84 | color: Colors.green,
85 | ),
86 | height: 10,
87 | ),
88 | Expanded(
89 | child: Container(
90 | margin: EdgeInsets.only(left: 16),
91 | child: Text(
92 | "R.A Mel Mawatha",
93 | style: CustomTextStyle.regularTextStyle
94 | .copyWith(color: Colors.grey.shade800),
95 | ),
96 | ),
97 | flex: 100,
98 | ),
99 | IconButton(
100 | icon: Icon(
101 | Icons.favorite_border,
102 | color: Colors.grey,
103 | size: 18,
104 | ),
105 | onPressed: () {})
106 | ],
107 | ),
108 | ),
109 | ),
110 | Expanded(
111 | child: Container(
112 | width: double.infinity,
113 | alignment: Alignment.centerRight,
114 | child: Column(
115 | mainAxisAlignment: MainAxisAlignment.center,
116 | crossAxisAlignment: CrossAxisAlignment.end,
117 | children: [
118 | Container(
119 | decoration: BoxDecoration(
120 | borderRadius: BorderRadius.only(topLeft: Radius.circular(8),bottomLeft: Radius.circular(8)),
121 | boxShadow: [
122 | BoxShadow(color: Colors.grey.shade400,blurRadius: 20,offset: Offset(-6, -10)),
123 | BoxShadow(color: Colors.grey.shade400,blurRadius: 20,offset: Offset(-6, 10))
124 | ]
125 | ),
126 | child: Card(
127 | elevation: 1,
128 | margin: EdgeInsets.all(0),
129 | shape: RoundedRectangleBorder(borderRadius: BorderRadius.only(topLeft: Radius.circular(8),bottomLeft: Radius.circular(8))),
130 | child: Container(
131 | margin: EdgeInsets.all(24),
132 | child: Column(
133 | children: [
134 | Text("Car",style: CustomTextStyle.mediumTextStyle,),
135 | SizedBox(height: 2,),
136 | Image(image: AssetImage("images/car.png"),),
137 | SizedBox(height: 12,),
138 | Text("Budget",style: CustomTextStyle.mediumTextStyle.copyWith(color: Colors.grey),),
139 | SizedBox(height: 2,),
140 | Image(image: AssetImage("images/hatchback.png"),),
141 | SizedBox(height: 12,),
142 | Text("City",style: CustomTextStyle.mediumTextStyle.copyWith(color: Colors.grey),),
143 | SizedBox(height: 2,),
144 | Image(image: AssetImage("images/city.png"),),
145 | SizedBox(height: 12,),
146 | Text("Tuk",style: CustomTextStyle.mediumTextStyle.copyWith(color: Colors.grey),),
147 | SizedBox(height: 2,),
148 | Image(image: AssetImage("images/tuk.png"),),
149 | SizedBox(height: 12,),
150 | Text("Van",style: CustomTextStyle.mediumTextStyle.copyWith(color: Colors.grey),),
151 | SizedBox(height: 2,),
152 | Image(image: AssetImage("images/van.png"),),
153 | ],
154 | ),
155 | ),
156 | ),
157 | )
158 | ],
159 | ),
160 | ),
161 | flex: 100,
162 | ),
163 | Container(
164 | width: 36,
165 | height: 36,
166 | decoration: BoxDecoration(
167 | color: Colors.black.withOpacity(0.4),
168 | shape: BoxShape.circle,
169 | image: DecorationImage(
170 | image: AssetImage("images/navigation.png"),
171 | )),
172 | ),
173 | SizedBox(
174 | height: 20,
175 | ),
176 | RaisedButton(
177 | onPressed: () {
178 | Navigator.of(context).push(new MaterialPageRoute(builder: (context)=>PickupUser()));
179 | },
180 | child: Text(
181 | "I'm Here!",
182 | style: CustomTextStyle.regularTextStyle
183 | .copyWith(color: Colors.brown.shade400),
184 | ),
185 | padding:
186 | EdgeInsets.symmetric(horizontal: 40, vertical: 4),
187 | color: Colors.amber,
188 | shape: RoundedRectangleBorder(
189 | borderRadius: BorderRadius.all(Radius.circular(24))),
190 | ),
191 | SizedBox(
192 | height: 20,
193 | )
194 | ],
195 | )
196 | ],
197 | ),
198 | );
199 | },
200 | ),
201 | ),
202 | );
203 | }
204 | }
205 |
--------------------------------------------------------------------------------
/lib/home/payment_menu.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:google_maps_flutter/google_maps_flutter.dart';
3 |
4 | import 'dialog/payment_dialog.dart';
5 |
6 |
7 | class PaymentMenu extends StatelessWidget {
8 |
9 | var _ahmedabad = LatLng(23.0225, 72.5714);
10 | Set markers = new Set();
11 | GoogleMapController mapController;
12 | void _onMapCreated(GoogleMapController mapController) {
13 | this.mapController = mapController;
14 | }
15 |
16 | addMarker(){
17 | markers.add(Marker(
18 | markerId: MarkerId("ahmedabad"),
19 | position: _ahmedabad,
20 | infoWindow: InfoWindow(title: "Title", snippet: "Content"),));
21 | }
22 | @override
23 | Widget build(BuildContext context) {
24 | addMarker();
25 | return Scaffold(
26 | body: Container(
27 | key: Key("ContainerPaymentMenu"),
28 | child: Stack(
29 | children: [
30 | GoogleMap(
31 | key: Key("googleMap"),
32 | initialCameraPosition:
33 | CameraPosition(target: _ahmedabad, zoom: 14),
34 | myLocationEnabled: true,
35 | myLocationButtonEnabled: true,
36 | markers: markers,
37 | onMapCreated: _onMapCreated,
38 | ),
39 | PaymentDialog()
40 | ],
41 | ),
42 | )
43 | );
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/lib/login_password.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_cab/home/home.dart';
3 | import 'package:flutter_cab/utils/CustomTextStyle.dart';
4 |
5 | import 'forgot_password.dart';
6 |
7 | class LoginPassword extends StatefulWidget {
8 | @override
9 | _LoginPasswordState createState() => _LoginPasswordState();
10 | }
11 |
12 | class _LoginPasswordState extends State {
13 | bool isTextWritten = false;
14 |
15 | TextEditingController _mobileNumberController = new TextEditingController();
16 |
17 | @override
18 | Widget build(BuildContext context) {
19 | return MaterialApp(
20 | home: Scaffold(
21 | backgroundColor: Colors.white,
22 | body: SingleChildScrollView(
23 | child: Card(
24 | elevation: 4,
25 | borderOnForeground: true,
26 | shape: RoundedRectangleBorder(
27 | borderRadius: BorderRadius.only(
28 | bottomRight: Radius.circular(16),
29 | bottomLeft: Radius.circular(16))),
30 | margin: EdgeInsets.only(left: 0, right: 0, bottom: 4),
31 | child: Container(
32 | decoration: BoxDecoration(
33 | borderRadius: BorderRadius.only(
34 | bottomRight: Radius.circular(16),
35 | bottomLeft: Radius.circular(16)),
36 | shape: BoxShape.rectangle,
37 | color: Colors.white,
38 | boxShadow: [
39 | BoxShadow(color: Colors.grey.shade50, blurRadius: 5),
40 | ]),
41 | width: double.infinity,
42 | padding: EdgeInsets.only(top: 32),
43 | child: Column(
44 | crossAxisAlignment: CrossAxisAlignment.start,
45 | children: [
46 | SizedBox(height: 14),
47 | Container(
48 | alignment: Alignment.center,
49 | child: Image(
50 | image: AssetImage("images/ic_logo.png"),
51 | width: 80,
52 | height: 80,
53 | ),
54 | ),
55 | SizedBox(height: 14),
56 | Container(
57 | margin: EdgeInsets.only(left: 16, top: 8),
58 | child: Text(
59 | "Enter your password",
60 | style: CustomTextStyle.regularTextStyle,
61 | ),
62 | ),
63 | Container(
64 | margin: EdgeInsets.only(left: 16, top: 4),
65 | child: Text(
66 | "Enter your password ride with Kangaroo cabs",
67 | style: CustomTextStyle.regularTextStyle.copyWith(
68 | color: Colors.grey,
69 | fontSize: 12,
70 | fontWeight: FontWeight.w400),
71 | ),
72 | ),
73 | SizedBox(height: 14),
74 | Container(
75 | margin: EdgeInsets.only(right: 14, left: 14),
76 | child: Row(
77 | children: [
78 | Expanded(
79 | child: Container(
80 | child: Stack(
81 | alignment: Alignment.center,
82 | children: [
83 | TextField(
84 | decoration: InputDecoration(
85 | border: border,
86 | enabledBorder: border,
87 | focusedBorder: border,
88 | contentPadding: EdgeInsets.only(
89 | left: 8, right: 32, top: 6, bottom: 6),
90 | hintText: "Enter your password",
91 | hasFloatingPlaceholder: true,
92 | hintStyle: CustomTextStyle.regularTextStyle
93 | .copyWith(
94 | color: Colors.grey, fontSize: 12),
95 | labelStyle: CustomTextStyle.regularTextStyle
96 | .copyWith(
97 | color: Colors.black, fontSize: 12),
98 | ),
99 | controller: _mobileNumberController,
100 | keyboardType: TextInputType.text,
101 | obscureText: isTextWritten,
102 | ),
103 | createClearText()
104 | ],
105 | ),
106 | decoration: BoxDecoration(
107 | borderRadius:
108 | BorderRadius.all(Radius.circular(4)),
109 | border: Border.all(
110 | width: 1, color: Colors.grey.shade400)),
111 | ),
112 | flex: 100,
113 | )
114 | ],
115 | ),
116 | ),
117 | SizedBox(height: 16),
118 | Row(
119 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
120 | children: [
121 | GestureDetector(
122 | onTap: () {
123 | Navigator.of(context).push(new MaterialPageRoute(
124 | builder: (context) => ForgotPassword()));
125 | },
126 | child: Container(
127 | child: Text(
128 | "I forgot my password",
129 | style: CustomTextStyle.mediumTextStyle.copyWith(
130 | color: Colors.grey.shade600, fontSize: 12),
131 | ),
132 | margin: EdgeInsets.only(left: 18),
133 | ),
134 | ),
135 | GestureDetector(
136 | onTap: (){
137 | Navigator.of(context).pushReplacement(new MaterialPageRoute(builder: (context)=>Home()));
138 | },
139 | child: Container(
140 | width: 40,
141 | margin: EdgeInsets.only(right: 10),
142 | height: 40,
143 | decoration: BoxDecoration(
144 | color: Colors.amber, shape: BoxShape.circle),
145 | child: Icon(
146 | Icons.arrow_forward,
147 | color: Colors.white,
148 | ),
149 | ),
150 | )
151 | ],
152 | ),
153 | SizedBox(height: 24),
154 | ],
155 | ),
156 | ),
157 | ),
158 | ),
159 | ),
160 | );
161 | }
162 |
163 | createClearText() {
164 | return Align(
165 | alignment: Alignment.topRight,
166 | child: GestureDetector(
167 | onTap: () {
168 | setState(() {
169 | isTextWritten = !isTextWritten;
170 | });
171 | },
172 | child: Container(
173 | margin: EdgeInsets.only(right: 8),
174 | width: 20,
175 | height: 20,
176 | child: Icon(
177 | isTextWritten ? Icons.visibility : Icons.visibility_off,
178 | size: 20,
179 | color: Colors.grey,
180 | ),
181 | alignment: Alignment.center,
182 | ),
183 | ),
184 | );
185 | }
186 |
187 | var border = OutlineInputBorder(
188 | borderRadius: BorderRadius.all(Radius.circular(4)),
189 | borderSide: BorderSide(color: Colors.white, width: 1));
190 | }
191 |
--------------------------------------------------------------------------------
/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_cab/splash.dart';
3 |
4 | import 'login.dart';
5 |
6 | /*
7 | * Start Date : 16-07-2019
8 | * Author : Aakash Kareliya
9 | * */
10 | void main() => runApp(new MaterialApp(
11 | home: Splash(),
12 | routes: {
13 | "\login": (context) => Login(),
14 | },
15 | ));
16 |
17 | class MyApp extends StatelessWidget {
18 | @override
19 | Widget build(BuildContext context) {
20 | return MaterialApp(
21 | debugShowCheckedModeBanner: false,
22 | home: Splash(),
23 | );
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/lib/menu/menu.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_cab/home/payment_menu.dart';
3 | import 'package:flutter_cab/modal/menu_list_item.dart';
4 | import 'package:flutter_cab/utils/CustomTextStyle.dart';
5 | import 'package:flutter_cab/utils/menu_title.dart';
6 |
7 | import '../book_late_pick_date.dart';
8 | import '../emergency_contact.dart';
9 | import '../help_support.dart';
10 | import '../my_trips.dart';
11 | import '../news_offers.dart';
12 | import '../profile.dart';
13 | import '../rate_card.dart';
14 |
15 | class Menu extends StatefulWidget {
16 | @override
17 | _MenuState createState() => _MenuState();
18 | }
19 |
20 | class _MenuState extends State