├── CONTRIBUTING.md ├── flutter-web └── code │ └── README.md ├── f_groceries ├── ios │ ├── Flutter │ │ ├── Debug.xcconfig │ │ ├── Release.xcconfig │ │ ├── flutter_export_environment.sh │ │ └── AppFrameworkInfo.plist │ ├── Runner │ │ ├── AppDelegate.h │ │ ├── Assets.xcassets │ │ │ ├── LaunchImage.imageset │ │ │ │ ├── LaunchImage.png │ │ │ │ ├── LaunchImage@2x.png │ │ │ │ ├── LaunchImage@3x.png │ │ │ │ ├── README.md │ │ │ │ └── Contents.json │ │ │ └── AppIcon.appiconset │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ │ ├── Icon-App-83.5x83.5@2x.png │ │ │ │ └── Contents.json │ │ ├── main.m │ │ ├── AppDelegate.m │ │ ├── Info.plist │ │ └── Base.lproj │ │ │ ├── Main.storyboard │ │ │ └── LaunchScreen.storyboard │ ├── Runner.xcworkspace │ │ └── contents.xcworkspacedata │ ├── Runner.xcodeproj │ │ ├── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ └── xcschemes │ │ │ │ └── Runner.xcscheme │ │ └── project.pbxproj │ └── .gitignore ├── android │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── app │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values │ │ │ │ │ └── styles.xml │ │ │ │ └── drawable │ │ │ │ │ └── launch_background.xml │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── imperialinfosys │ │ │ │ │ └── fgroceries │ │ │ │ │ └── MainActivity.java │ │ │ │ └── AndroidManifest.xml │ │ └── build.gradle │ ├── .gitignore │ ├── settings.gradle │ ├── build.gradle │ ├── gradlew.bat │ └── gradlew ├── images │ ├── back.jpg │ ├── be.jpg │ ├── bev.jpg │ ├── eggs.jpg │ ├── gro.jpg │ ├── home.jpg │ ├── kiwi.jpg │ ├── veg.jpg │ ├── apple.jpg │ ├── frozen.jpg │ ├── grapes.jpg │ ├── grthre.jpg │ ├── grtwo.jpg │ ├── guava.jpg │ ├── lemons.jpg │ ├── nonveg.jpg │ ├── tomato.jpg │ ├── brand_f.jpg │ ├── groceries.jpg │ └── pineapple.jpg ├── .gitignore ├── .idea │ ├── libraries │ │ ├── Flutter_Plugins.xml │ │ ├── Flutter_for_Android.xml │ │ └── Dart_SDK.xml │ ├── runConfigurations │ │ └── main_dart.xml │ ├── modules.xml │ ├── misc.xml │ └── codeStyles │ │ └── Project.xml ├── .metadata ├── lib │ ├── services │ │ └── address_services.dart │ ├── model │ │ └── Address_model.dart │ ├── main.dart │ ├── logind_signup.dart │ ├── Payment_Screen.dart │ ├── help_screen.dart │ ├── setting_screen.dart │ ├── orderhistory_screen.dart │ ├── item_details.dart │ └── signup_screen.dart ├── android.iml ├── README.md ├── assets │ └── address.json ├── f_groceries.iml ├── test │ └── widget_test.dart ├── f_groceries_android.iml ├── pubspec.yaml └── pubspec.lock ├── web ├── filter.png ├── oreder.png ├── checkout.png ├── delivery.png ├── details.png ├── mainpage.png ├── payment.png ├── profile.png └── readme.md ├── ScreenShot ├── Screenshot_2018-11-01-11-57-30-524.jpeg ├── Screenshot_2018-11-01-11-57-44-103.jpeg ├── Screenshot_2018-11-01-11-57-58-917.jpeg ├── Screenshot_2018-11-01-11-58-09-698.jpeg ├── Screenshot_2018-11-01-11-58-18-003.jpeg ├── Screenshot_2018-11-01-11-58-41-662.jpeg ├── Screenshot_2018-11-01-11-59-40-005.jpeg ├── Screenshot_2018-11-01-11-59-51-548.jpeg ├── Screenshot_2018-11-01-12-00-01-234.jpeg ├── Screenshot_2018-11-01-12-00-12-412.jpeg ├── Screenshot_2018-11-01-12-00-23-019.jpeg ├── Screenshot_2018-11-01-12-00-35-644.jpeg ├── Screenshot_2018-11-01-12-00-44-952.jpeg ├── Screenshot_2018-11-01-11-57-17-742[1].jpeg ├── Screenshot_2018-11-01-12-11-02-661[1].jpeg ├── Animation -11-01-11-57-17-742[1]-ANIMATION.gif ├── Expand your presence through Digital Grocery Store - Technology in the Life of Consumers Technology.png └── Expand your presence through Digital Grocery Store - Technology in the Life of Consumers Technology (1).png ├── LICENSE └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flutter-web/code/README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /f_groceries/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /f_groceries/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /web/filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/web/filter.png -------------------------------------------------------------------------------- /web/oreder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/web/oreder.png -------------------------------------------------------------------------------- /web/checkout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/web/checkout.png -------------------------------------------------------------------------------- /web/delivery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/web/delivery.png -------------------------------------------------------------------------------- /web/details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/web/details.png -------------------------------------------------------------------------------- /web/mainpage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/web/mainpage.png -------------------------------------------------------------------------------- /web/payment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/web/payment.png -------------------------------------------------------------------------------- /web/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/web/profile.png -------------------------------------------------------------------------------- /f_groceries/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.enableR8=true 3 | -------------------------------------------------------------------------------- /f_groceries/images/back.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/back.jpg -------------------------------------------------------------------------------- /f_groceries/images/be.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/be.jpg -------------------------------------------------------------------------------- /f_groceries/images/bev.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/bev.jpg -------------------------------------------------------------------------------- /f_groceries/images/eggs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/eggs.jpg -------------------------------------------------------------------------------- /f_groceries/images/gro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/gro.jpg -------------------------------------------------------------------------------- /f_groceries/images/home.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/home.jpg -------------------------------------------------------------------------------- /f_groceries/images/kiwi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/kiwi.jpg -------------------------------------------------------------------------------- /f_groceries/images/veg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/veg.jpg -------------------------------------------------------------------------------- /f_groceries/images/apple.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/apple.jpg -------------------------------------------------------------------------------- /f_groceries/images/frozen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/frozen.jpg -------------------------------------------------------------------------------- /f_groceries/images/grapes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/grapes.jpg -------------------------------------------------------------------------------- /f_groceries/images/grthre.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/grthre.jpg -------------------------------------------------------------------------------- /f_groceries/images/grtwo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/grtwo.jpg -------------------------------------------------------------------------------- /f_groceries/images/guava.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/guava.jpg -------------------------------------------------------------------------------- /f_groceries/images/lemons.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/lemons.jpg -------------------------------------------------------------------------------- /f_groceries/images/nonveg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/nonveg.jpg -------------------------------------------------------------------------------- /f_groceries/images/tomato.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/tomato.jpg -------------------------------------------------------------------------------- /f_groceries/images/brand_f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/brand_f.jpg -------------------------------------------------------------------------------- /f_groceries/images/groceries.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/groceries.jpg -------------------------------------------------------------------------------- /f_groceries/images/pineapple.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/images/pineapple.jpg -------------------------------------------------------------------------------- /f_groceries/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .dart_tool/ 3 | 4 | .packages 5 | .pub/ 6 | 7 | build/ 8 | 9 | .flutter-plugins 10 | -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-11-57-30-524.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-11-57-30-524.jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-11-57-44-103.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-11-57-44-103.jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-11-57-58-917.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-11-57-58-917.jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-11-58-09-698.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-11-58-09-698.jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-11-58-18-003.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-11-58-18-003.jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-11-58-41-662.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-11-58-41-662.jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-11-59-40-005.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-11-59-40-005.jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-11-59-51-548.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-11-59-51-548.jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-12-00-01-234.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-12-00-01-234.jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-12-00-12-412.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-12-00-12-412.jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-12-00-23-019.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-12-00-23-019.jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-12-00-35-644.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-12-00-35-644.jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-12-00-44-952.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-12-00-44-952.jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-11-57-17-742[1].jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-11-57-17-742[1].jpeg -------------------------------------------------------------------------------- /ScreenShot/Screenshot_2018-11-01-12-11-02-661[1].jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Screenshot_2018-11-01-12-11-02-661[1].jpeg -------------------------------------------------------------------------------- /f_groceries/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /f_groceries/ios/Runner/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface AppDelegate : FlutterAppDelegate 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /ScreenShot/Animation -11-01-11-57-17-742[1]-ANIMATION.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Animation -11-01-11-57-17-742[1]-ANIMATION.gif -------------------------------------------------------------------------------- /f_groceries/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /f_groceries/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /f_groceries/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /f_groceries/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /f_groceries/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /f_groceries/android/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | *.class 3 | .gradle 4 | /local.properties 5 | /.idea/workspace.xml 6 | /.idea/libraries 7 | .DS_Store 8 | /build 9 | /captures 10 | GeneratedPluginRegistrant.java 11 | -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/f_groceries/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /f_groceries/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /f_groceries/.idea/libraries/Flutter_Plugins.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /f_groceries/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ScreenShot/Expand your presence through Digital Grocery Store - Technology in the Life of Consumers Technology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Expand your presence through Digital Grocery Store - Technology in the Life of Consumers Technology.png -------------------------------------------------------------------------------- /ScreenShot/Expand your presence through Digital Grocery Store - Technology in the Life of Consumers Technology (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rwema3/Grocery-App/HEAD/ScreenShot/Expand your presence through Digital Grocery Store - Technology in the Life of Consumers Technology (1).png -------------------------------------------------------------------------------- /f_groceries/ios/Runner/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char* argv[]) { 6 | @autoreleasepool { 7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /f_groceries/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip 7 | -------------------------------------------------------------------------------- /f_groceries/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 5ab9e70727d858def3a586db7fb98ee580352957 8 | channel: beta 9 | -------------------------------------------------------------------------------- /f_groceries/.idea/runConfigurations/main_dart.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /f_groceries/.idea/libraries/Flutter_for_Android.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /f_groceries/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. -------------------------------------------------------------------------------- /f_groceries/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /f_groceries/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /f_groceries/android/app/src/main/java/com/imperialinfosys/fgroceries/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.imperialinfosys.fgroceries; 2 | 3 | import android.os.Bundle; 4 | import io.flutter.app.FlutterActivity; 5 | import io.flutter.plugins.GeneratedPluginRegistrant; 6 | 7 | public class MainActivity extends FlutterActivity { 8 | @Override 9 | protected void onCreate(Bundle savedInstanceState) { 10 | super.onCreate(savedInstanceState); 11 | GeneratedPluginRegistrant.registerWith(this); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /f_groceries/ios/Runner/AppDelegate.m: -------------------------------------------------------------------------------- 1 | #include "AppDelegate.h" 2 | #include "GeneratedPluginRegistrant.h" 3 | 4 | @implementation AppDelegate 5 | 6 | - (BOOL)application:(UIApplication *)application 7 | didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 8 | [GeneratedPluginRegistrant registerWithRegistry:self]; 9 | // Override point for customization after application launch. 10 | return [super application:application didFinishLaunchingWithOptions:launchOptions]; 11 | } 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /f_groceries/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /f_groceries/lib/services/address_services.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async' show Future; 2 | import 'package:flutter/services.dart' show rootBundle; 3 | import 'dart:convert'; 4 | import 'package:f_groceries/model/Address_model.dart'; 5 | 6 | Future _loadProduct() async{ 7 | return await rootBundle.loadString('assets/address.json'); 8 | } 9 | 10 | Future loadAddress() async{ 11 | 12 | String jsonAddress = await _loadProduct(); 13 | final jsonResponce = json.decode(jsonAddress); 14 | address address_model = new address.fromJson(jsonResponce); 15 | 16 | } -------------------------------------------------------------------------------- /f_groceries/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 | -------------------------------------------------------------------------------- /f_groceries/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 | -------------------------------------------------------------------------------- /f_groceries/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:3.1.2' 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | google() 15 | jcenter() 16 | } 17 | } 18 | 19 | rootProject.buildDir = '../build' 20 | subprojects { 21 | project.buildDir = "${rootProject.buildDir}/${project.name}" 22 | } 23 | subprojects { 24 | project.evaluationDependsOn(':app') 25 | } 26 | 27 | task clean(type: Delete) { 28 | delete rootProject.buildDir 29 | } 30 | -------------------------------------------------------------------------------- /f_groceries/android.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /f_groceries/ios/Flutter/flutter_export_environment.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # This is a generated file; do not edit or check into version control. 3 | export "FLUTTER_ROOT=C:\flutter" 4 | export "FLUTTER_APPLICATION_PATH=C:\Users\yaseen.agwan\source\repos\Grocery-App\f_groceries" 5 | export "COCOAPODS_PARALLEL_CODE_SIGN=true" 6 | export "FLUTTER_TARGET=lib\main.dart" 7 | export "FLUTTER_BUILD_DIR=build" 8 | export "SYMROOT=${SOURCE_ROOT}/../build\ios" 9 | export "FLUTTER_BUILD_NAME=1.0.0" 10 | export "FLUTTER_BUILD_NUMBER=1" 11 | export "DART_OBFUSCATION=false" 12 | export "TRACK_WIDGET_CREATION=false" 13 | export "TREE_SHAKE_ICONS=false" 14 | export "PACKAGE_CONFIG=.packages" 15 | -------------------------------------------------------------------------------- /f_groceries/README.md: -------------------------------------------------------------------------------- 1 | # f_groceries 2 | 3 | Flutter Grocery Shopping App Fully Working Template 4 | 5 | Grocery Shopping Flutter app is created as a wonderful solution for any food shop Flutter App UI template. 6 | 7 | It is a template for an Flutter developer that want to create grocery application with a clean design. The template is only lay outing without data flow and communication with the backend system. This Flutter UI Template can reduce your development time and will loved by developer that hate lay outing design! 8 | 9 | You can use this Flutter app as one big super market app to sale product of your store. This app make easy for user to buy product from store with easy steps and store can get easy order. 10 | 11 | 12 | -------------------------------------------------------------------------------- /f_groceries/ios/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .vagrant/ 3 | .sconsign.dblite 4 | .svn/ 5 | 6 | .DS_Store 7 | *.swp 8 | profile 9 | 10 | DerivedData/ 11 | build/ 12 | GeneratedPluginRegistrant.h 13 | GeneratedPluginRegistrant.m 14 | 15 | .generated/ 16 | 17 | *.pbxuser 18 | *.mode1v3 19 | *.mode2v3 20 | *.perspectivev3 21 | 22 | !default.pbxuser 23 | !default.mode1v3 24 | !default.mode2v3 25 | !default.perspectivev3 26 | 27 | xcuserdata 28 | 29 | *.moved-aside 30 | 31 | *.pyc 32 | *sync/ 33 | Icon? 34 | .tags* 35 | 36 | /Flutter/app.flx 37 | /Flutter/app.zip 38 | /Flutter/flutter_assets/ 39 | /Flutter/App.framework 40 | /Flutter/Flutter.framework 41 | /Flutter/Generated.xcconfig 42 | /ServiceDefinitions.json 43 | 44 | Pods/ 45 | .symlinks/ 46 | -------------------------------------------------------------------------------- /f_groceries/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 8.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /f_groceries/assets/address.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": 200, 3 | "message": "Commodity List Found", 4 | "data": [ 5 | { 6 | "id": "1", 7 | "name": "Bhavik Limani", 8 | "mobilenumber": "9427421083", 9 | "address": "Widle, 1126", 10 | "city": "Ahmedabad", 11 | "distric": "Ahmedabad", 12 | "state": "Gujarat", 13 | "pincode": "385001" 14 | }, 15 | { 16 | "id": "1", 17 | "name": "Bal parmar", 18 | "mobilenumber": "2939293939", 19 | "address": "putfoli ", 20 | "city": "gam", 21 | "distric": "Alli", 22 | "state": "Guj", 23 | "pincode": "322117" 24 | }, 25 | { 26 | "id": "1", 27 | "name": "bhadra Limani", 28 | "mobilenumber": "0293929923", 29 | "address": "Shiv Society", 30 | "city": "Ahmedabad", 31 | "distric": "Ahmedabad", 32 | "state": "Gujarat", 33 | "pincode": "382930" 34 | } 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /f_groceries/f_groceries.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /f_groceries/.idea/libraries/Dart_SDK.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /f_groceries/test/widget_test.dart: -------------------------------------------------------------------------------- 1 | // This is a basic Flutter widget test. 2 | // To perform an interaction with a widget in your test, use the WidgetTester utility that Flutter 3 | // provides. For example, you can send tap and scroll gestures. You can also use WidgetTester to 4 | // find child widgets in the widget tree, read text, and verify that the values of widget properties 5 | // are correct. 6 | 7 | import 'package:flutter/material.dart'; 8 | import 'package:flutter_test/flutter_test.dart'; 9 | 10 | import 'package:f_groceries/main.dart'; 11 | 12 | void main() { 13 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { 14 | // Build our app and trigger a frame. 15 | await tester.pumpWidget(new MyApp()); 16 | 17 | // Verify that our counter starts at 0. 18 | expect(find.text('0'), findsOneWidget); 19 | expect(find.text('1'), findsNothing); 20 | 21 | // Tap the '+' icon and trigger a frame. 22 | await tester.tap(find.byIcon(Icons.add)); 23 | await tester.pump(); 24 | 25 | // Verify that our counter has incremented. 26 | expect(find.text('0'), findsNothing); 27 | expect(find.text('1'), findsOneWidget); 28 | }); 29 | } 30 | -------------------------------------------------------------------------------- /web/readme.md: -------------------------------------------------------------------------------- 1 | # Grocery Flutter Web App 2 | 3 | 4 | Grocery Flutter Web - Home 5 | 6 | Grocery Flutter Web - Details 7 | 8 | Grocery Flutter Web - Filter 9 | 10 | Grocery Flutter Web - Checkout 11 | 12 | Grocery Flutter Web - Payment 13 | 14 | Grocery Flutter Web - Delivery 15 | 16 | Grocery Flutter Web - Order 17 | 18 | Grocery Flutter Web - Profile 19 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /f_groceries/lib/model/Address_model.dart: -------------------------------------------------------------------------------- 1 | 2 | class address { 3 | 4 | final int status; 5 | final String message; 6 | final List data; 7 | 8 | address({this.status,this.message,this.data}); 9 | 10 | factory address.fromJson(Map parsedJson){ 11 | 12 | var list = parsedJson['images'] as List; 13 | print(list.runtimeType); 14 | List dataList = list.map((i) => Data.fromJson(i)).toList(); 15 | 16 | 17 | return address( 18 | status: parsedJson['status'], 19 | message: parsedJson['message'], 20 | data: dataList 21 | 22 | ); 23 | } 24 | 25 | } 26 | 27 | class Data { 28 | 29 | final int id ; 30 | final String name; 31 | final String mobilenumber; 32 | final String address; 33 | final String city; 34 | final String distric; 35 | final String state; 36 | final String pincode; 37 | 38 | Data({this.id, this.name, this.mobilenumber, this.address, this.city, 39 | this.distric, this.state, this.pincode}); 40 | 41 | factory Data.fromJson(Map parsedJson){ 42 | return Data( 43 | id: parsedJson['id'], 44 | name: parsedJson['name'], 45 | mobilenumber: parsedJson['mobilenumber'], 46 | address: parsedJson['address'], 47 | city: parsedJson['city'], 48 | distric: parsedJson['distric'], 49 | state: parsedJson['state'], 50 | pincode: parsedJson['pincode'] 51 | ); 52 | } 53 | 54 | 55 | } 56 | 57 | -------------------------------------------------------------------------------- /f_groceries/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 27 | 28 | -------------------------------------------------------------------------------- /f_groceries/f_groceries_android.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /f_groceries/ios/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | f_groceries 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 | -------------------------------------------------------------------------------- /f_groceries/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 | -------------------------------------------------------------------------------- /f_groceries/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /f_groceries/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 from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 26 | 27 | android { 28 | compileSdkVersion 28 29 | 30 | lintOptions { 31 | disable 'InvalidPackage' 32 | } 33 | 34 | defaultConfig { 35 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 36 | applicationId "com.imperialinfosys.fgroceries" 37 | minSdkVersion 16 38 | targetSdkVersion 27 39 | versionCode flutterVersionCode.toInteger() 40 | versionName flutterVersionName 41 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 42 | } 43 | 44 | buildTypes { 45 | release { 46 | // TODO: Add your own signing config for the release build. 47 | // Signing with the debug keys for now, so `flutter run --release` works. 48 | signingConfig signingConfigs.debug 49 | } 50 | } 51 | } 52 | 53 | flutter { 54 | source '../..' 55 | } 56 | 57 | dependencies { 58 | testImplementation 'junit:junit:4.12' 59 | androidTestImplementation 'com.android.support.test:runner:1.0.2' 60 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' 61 | } 62 | -------------------------------------------------------------------------------- /f_groceries/android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | 10 | 15 | 19 | 26 | 30 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /f_groceries/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 | -------------------------------------------------------------------------------- /f_groceries/android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /f_groceries/lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:f_groceries/HomeScreen.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'dart:async'; 4 | 5 | void main() => runApp(MyApp()); 6 | 7 | class MyApp extends StatelessWidget { 8 | // This widget is the root of your application. 9 | @override 10 | Widget build(BuildContext context) { 11 | return MaterialApp( 12 | theme: ThemeData( 13 | // This is the theme of your application. 14 | // 15 | // Try running your application with "flutter run". You'll see the 16 | // application has a blue toolbar. Then, without quitting the app, try 17 | // changing the primarySwatch below to Colors.green and then invoke 18 | // "hot reload" (press "r" in the console where you ran "flutter run", 19 | // or press Run > Flutter Hot Reload in IntelliJ). Notice that the 20 | // counter didn't reset back to zero; the application is not restarted. 21 | 22 | primaryColor: Colors.white, 23 | primaryColorDark: Colors.white30, 24 | accentColor: Colors.blue), 25 | home: MyHomePage(title: 'Groceries'), 26 | ); 27 | } 28 | } 29 | 30 | class MyHomePage extends StatefulWidget { 31 | MyHomePage({Key key, this.title}) : super(key: key); 32 | 33 | // This widget is the home page of your application. It is stateful, meaning 34 | // that it has a State object (defined below) that contains fields that affect 35 | // how it looks. 36 | 37 | // This class is the configuration for the state. It holds the values (in this 38 | // case the title) provided by the parent (in this case the App widget) and 39 | // used by the build method of the State. Fields in a Widget subclass are 40 | // always marked "final". 41 | 42 | final String title; 43 | 44 | @override 45 | _MyHomePageState createState() => _MyHomePageState(); 46 | } 47 | 48 | class _MyHomePageState extends State { 49 | startTime() async { 50 | var _duration = Duration(seconds: 3); 51 | return Timer(_duration, navigationPage); 52 | } 53 | 54 | void navigationPage() { 55 | Navigator.push( 56 | context, MaterialPageRoute(builder: (context) => Home_screen())); 57 | } 58 | 59 | @override 60 | void initState() { 61 | super.initState(); 62 | startTime(); 63 | } 64 | 65 | @override 66 | Widget build(BuildContext context) { 67 | // TODO: implement build 68 | 69 | return Container( 70 | alignment: Alignment.center, 71 | decoration: BoxDecoration(color: Colors.white), 72 | child: Container( 73 | color: Colors.black12, 74 | margin: EdgeInsets.all(30.0), 75 | width: 250.0, 76 | height: 250.0, 77 | child: Image.asset( 78 | 'images/gro.jpg', 79 | ), 80 | ), 81 | ); 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Grocery-App (Widle Studio - A Creative Flutter App Development Company) OR Get an Estimate 2 | 3 | ## Flutter Grocery Shopping App Fully Working Template with WooCommerce API integration 4 | 5 | Grocery Shopping Flutter app is created as a wonderful solution for any food shop Flutter App UI template and WooCommerce API integration. 6 | 7 | It is a template for an Flutter developer that want to create grocery application with a clean design. The template is only lay outing without data flow and communication with the backend system. This Flutter UI Template can reduce your development time and will loved by developer that hate lay outing design! 8 | 9 | You can use this Flutter app as one big super market app to sale product of your store. This app make easy for user to buy product from store with easy steps and store can get easy order. 10 | 11 | 12 | 13 | Flutter Grocery Shopping App Video Animation 14 | 15 | Flutter Grocery Shopping App Video Animation 16 | 17 | 18 | 1. Home 19 | Grocery Home 20 | 2. Category 21 | Grocery Category 22 | 3. Filters 23 | Grocery Filters 24 | 4. Details 25 | Grocery Details 26 | 5. Address & Checkout 27 | Grocery Details 28 | 6. Payment & Checkout 29 | Grocery Details 30 | 7. Account 31 | Grocery Details 32 | 8. Order History 33 | Grocery Details 34 | 35 | 36 | Contact Widle Studio for creative flutter app development 37 | -------------------------------------------------------------------------------- /f_groceries/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 | -------------------------------------------------------------------------------- /f_groceries/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: f_groceries 2 | description: A new Flutter application. 3 | 4 | # The following defines the version and build number for your application. 5 | # A version number is three numbers separated by dots, like 1.2.43 6 | # followed by an optional build number separated by a +. 7 | # Both the version and the builder number may be overridden in flutter 8 | # build by specifying --build-name and --build-number, respectively. 9 | # Read more about versioning at semver.org. 10 | version: 1.0.0+1 11 | 12 | environment: 13 | sdk: ">=2.0.0-dev.68.0 <3.0.0" 14 | 15 | dependencies: 16 | flutter: 17 | sdk: flutter 18 | 19 | 20 | # The following adds the Cupertino Icons font to your application. 21 | # Use with the CupertinoIcons class for iOS style icons. 22 | loader_search_bar: ^1.0.2 23 | cupertino_icons: ^0.1.2 24 | flutter_range_slider: "^1.0.1" 25 | carousel_pro: ^0.0.13 26 | 27 | dev_dependencies: 28 | flutter_test: 29 | sdk: flutter 30 | 31 | 32 | # For information on the generic Dart part of this file, see the 33 | # following page: https://www.dartlang.org/tools/pub/pubspec 34 | 35 | # The following section is specific to Flutter. 36 | flutter: 37 | 38 | # The following line ensures that the Material Icons font is 39 | # included with your application, so that you can use the icons in 40 | # the material Icons class. 41 | uses-material-design: true 42 | assets: 43 | - images/back.jpg 44 | - images/groceries.jpg 45 | - images/grtwo.jpg 46 | - images/grthre.jpg 47 | - images/veg.jpg 48 | - images/frozen.jpg 49 | - images/bev.jpg 50 | - images/brand_f.jpg 51 | - images/be.jpg 52 | - images/eggs.jpg 53 | - images/home.jpg 54 | - images/nonveg.jpg 55 | - images/apple.jpg 56 | - images/grapes.jpg 57 | - images/guava.jpg 58 | - images/kiwi.jpg 59 | - images/lemons.jpg 60 | - images/pineapple.jpg 61 | - images/tomato.jpg 62 | - images/gro.jpg 63 | 64 | 65 | 66 | 67 | 68 | 69 | - assets/address.json 70 | 71 | 72 | 73 | 74 | # To add assets to your application, add an assets section, like this: 75 | # assets: 76 | # - images/a_dot_burr.jpeg 77 | # - images/a_dot_ham.jpeg 78 | 79 | # An image asset can refer to one or more resolution-specific "variants", see 80 | # https://flutter.io/assets-and-images/#resolution-aware. 81 | 82 | # For details regarding adding assets from package dependencies, see 83 | # https://flutter.io/assets-and-images/#from-packages 84 | 85 | # To add custom fonts to your application, add a fonts section here, 86 | # in this "flutter" section. Each entry in this list should have a 87 | # "family" key with the font family name, and a "fonts" key with a 88 | # list giving the asset and other descriptors for the font. For 89 | # example: 90 | # fonts: 91 | # - family: Schyler 92 | # fonts: 93 | # - asset: fonts/Schyler-Regular.ttf 94 | # - asset: fonts/Schyler-Italic.ttf 95 | # style: italic 96 | # - family: Trajan Pro 97 | # fonts: 98 | # - asset: fonts/TrajanPro.ttf 99 | # - asset: fonts/TrajanPro_Bold.ttf 100 | # weight: 700 101 | # 102 | # For details regarding fonts from package dependencies, 103 | # see https://flutter.io/custom-fonts/#from-packages 104 | -------------------------------------------------------------------------------- /f_groceries/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 31 | 32 | 33 | 34 | 40 | 41 | 42 | 43 | 44 | 45 | 56 | 58 | 64 | 65 | 66 | 67 | 68 | 69 | 75 | 77 | 83 | 84 | 85 | 86 | 88 | 89 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /f_groceries/pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://dart.dev/tools/pub/glossary#lockfile 3 | packages: 4 | async: 5 | dependency: transitive 6 | description: 7 | name: async 8 | url: "https://pub.dartlang.org" 9 | source: hosted 10 | version: "2.5.0" 11 | boolean_selector: 12 | dependency: transitive 13 | description: 14 | name: boolean_selector 15 | url: "https://pub.dartlang.org" 16 | source: hosted 17 | version: "2.1.0" 18 | carousel_pro: 19 | dependency: "direct main" 20 | description: 21 | name: carousel_pro 22 | url: "https://pub.dartlang.org" 23 | source: hosted 24 | version: "0.0.13" 25 | characters: 26 | dependency: transitive 27 | description: 28 | name: characters 29 | url: "https://pub.dartlang.org" 30 | source: hosted 31 | version: "1.1.0" 32 | charcode: 33 | dependency: transitive 34 | description: 35 | name: charcode 36 | url: "https://pub.dartlang.org" 37 | source: hosted 38 | version: "1.2.0" 39 | clock: 40 | dependency: transitive 41 | description: 42 | name: clock 43 | url: "https://pub.dartlang.org" 44 | source: hosted 45 | version: "1.1.0" 46 | collection: 47 | dependency: transitive 48 | description: 49 | name: collection 50 | url: "https://pub.dartlang.org" 51 | source: hosted 52 | version: "1.15.0" 53 | cupertino_icons: 54 | dependency: "direct main" 55 | description: 56 | name: cupertino_icons 57 | url: "https://pub.dartlang.org" 58 | source: hosted 59 | version: "0.1.2" 60 | fake_async: 61 | dependency: transitive 62 | description: 63 | name: fake_async 64 | url: "https://pub.dartlang.org" 65 | source: hosted 66 | version: "1.2.0" 67 | flutter: 68 | dependency: "direct main" 69 | description: flutter 70 | source: sdk 71 | version: "0.0.0" 72 | flutter_range_slider: 73 | dependency: "direct main" 74 | description: 75 | name: flutter_range_slider 76 | url: "https://pub.dartlang.org" 77 | source: hosted 78 | version: "1.0.1" 79 | flutter_test: 80 | dependency: "direct dev" 81 | description: flutter 82 | source: sdk 83 | version: "0.0.0" 84 | loader_search_bar: 85 | dependency: "direct main" 86 | description: 87 | name: loader_search_bar 88 | url: "https://pub.dartlang.org" 89 | source: hosted 90 | version: "1.0.2" 91 | matcher: 92 | dependency: transitive 93 | description: 94 | name: matcher 95 | url: "https://pub.dartlang.org" 96 | source: hosted 97 | version: "0.12.10" 98 | meta: 99 | dependency: transitive 100 | description: 101 | name: meta 102 | url: "https://pub.dartlang.org" 103 | source: hosted 104 | version: "1.3.0" 105 | path: 106 | dependency: transitive 107 | description: 108 | name: path 109 | url: "https://pub.dartlang.org" 110 | source: hosted 111 | version: "1.8.0" 112 | sky_engine: 113 | dependency: transitive 114 | description: flutter 115 | source: sdk 116 | version: "0.0.99" 117 | source_span: 118 | dependency: transitive 119 | description: 120 | name: source_span 121 | url: "https://pub.dartlang.org" 122 | source: hosted 123 | version: "1.8.1" 124 | stack_trace: 125 | dependency: transitive 126 | description: 127 | name: stack_trace 128 | url: "https://pub.dartlang.org" 129 | source: hosted 130 | version: "1.10.0" 131 | stream_channel: 132 | dependency: transitive 133 | description: 134 | name: stream_channel 135 | url: "https://pub.dartlang.org" 136 | source: hosted 137 | version: "2.1.0" 138 | string_scanner: 139 | dependency: transitive 140 | description: 141 | name: string_scanner 142 | url: "https://pub.dartlang.org" 143 | source: hosted 144 | version: "1.1.0" 145 | term_glyph: 146 | dependency: transitive 147 | description: 148 | name: term_glyph 149 | url: "https://pub.dartlang.org" 150 | source: hosted 151 | version: "1.2.0" 152 | test_api: 153 | dependency: transitive 154 | description: 155 | name: test_api 156 | url: "https://pub.dartlang.org" 157 | source: hosted 158 | version: "0.3.0" 159 | typed_data: 160 | dependency: transitive 161 | description: 162 | name: typed_data 163 | url: "https://pub.dartlang.org" 164 | source: hosted 165 | version: "1.3.0" 166 | vector_math: 167 | dependency: transitive 168 | description: 169 | name: vector_math 170 | url: "https://pub.dartlang.org" 171 | source: hosted 172 | version: "2.1.0" 173 | sdks: 174 | dart: ">=2.12.0 <3.0.0" 175 | flutter: ">=0.1.4" 176 | -------------------------------------------------------------------------------- /f_groceries/android/gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ############################################################################## 4 | ## 5 | ## Gradle start up script for UN*X 6 | ## 7 | ############################################################################## 8 | 9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 10 | DEFAULT_JVM_OPTS="" 11 | 12 | APP_NAME="Gradle" 13 | APP_BASE_NAME=`basename "$0"` 14 | 15 | # Use the maximum available, or set MAX_FD != -1 to use that value. 16 | MAX_FD="maximum" 17 | 18 | warn ( ) { 19 | echo "$*" 20 | } 21 | 22 | die ( ) { 23 | echo 24 | echo "$*" 25 | echo 26 | exit 1 27 | } 28 | 29 | # OS specific support (must be 'true' or 'false'). 30 | cygwin=false 31 | msys=false 32 | darwin=false 33 | case "`uname`" in 34 | CYGWIN* ) 35 | cygwin=true 36 | ;; 37 | Darwin* ) 38 | darwin=true 39 | ;; 40 | MINGW* ) 41 | msys=true 42 | ;; 43 | esac 44 | 45 | # Attempt to set APP_HOME 46 | # Resolve links: $0 may be a link 47 | PRG="$0" 48 | # Need this for relative symlinks. 49 | while [ -h "$PRG" ] ; do 50 | ls=`ls -ld "$PRG"` 51 | link=`expr "$ls" : '.*-> \(.*\)$'` 52 | if expr "$link" : '/.*' > /dev/null; then 53 | PRG="$link" 54 | else 55 | PRG=`dirname "$PRG"`"/$link" 56 | fi 57 | done 58 | SAVED="`pwd`" 59 | cd "`dirname \"$PRG\"`/" >/dev/null 60 | APP_HOME="`pwd -P`" 61 | cd "$SAVED" >/dev/null 62 | 63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 64 | 65 | # Determine the Java command to use to start the JVM. 66 | if [ -n "$JAVA_HOME" ] ; then 67 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 68 | # IBM's JDK on AIX uses strange locations for the executables 69 | JAVACMD="$JAVA_HOME/jre/sh/java" 70 | else 71 | JAVACMD="$JAVA_HOME/bin/java" 72 | fi 73 | if [ ! -x "$JAVACMD" ] ; then 74 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 75 | 76 | Please set the JAVA_HOME variable in your environment to match the 77 | location of your Java installation." 78 | fi 79 | else 80 | JAVACMD="java" 81 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 82 | 83 | Please set the JAVA_HOME variable in your environment to match the 84 | location of your Java installation." 85 | fi 86 | 87 | # Increase the maximum file descriptors if we can. 88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 89 | MAX_FD_LIMIT=`ulimit -H -n` 90 | if [ $? -eq 0 ] ; then 91 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 92 | MAX_FD="$MAX_FD_LIMIT" 93 | fi 94 | ulimit -n $MAX_FD 95 | if [ $? -ne 0 ] ; then 96 | warn "Could not set maximum file descriptor limit: $MAX_FD" 97 | fi 98 | else 99 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 100 | fi 101 | fi 102 | 103 | # For Darwin, add options to specify how the application appears in the dock 104 | if $darwin; then 105 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 106 | fi 107 | 108 | # For Cygwin, switch paths to Windows format before running java 109 | if $cygwin ; then 110 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 111 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 112 | JAVACMD=`cygpath --unix "$JAVACMD"` 113 | 114 | # We build the pattern for arguments to be converted via cygpath 115 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 116 | SEP="" 117 | for dir in $ROOTDIRSRAW ; do 118 | ROOTDIRS="$ROOTDIRS$SEP$dir" 119 | SEP="|" 120 | done 121 | OURCYGPATTERN="(^($ROOTDIRS))" 122 | # Add a user-defined pattern to the cygpath arguments 123 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 124 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 125 | fi 126 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 127 | i=0 128 | for arg in "$@" ; do 129 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 130 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 131 | 132 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 133 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 134 | else 135 | eval `echo args$i`="\"$arg\"" 136 | fi 137 | i=$((i+1)) 138 | done 139 | case $i in 140 | (0) set -- ;; 141 | (1) set -- "$args0" ;; 142 | (2) set -- "$args0" "$args1" ;; 143 | (3) set -- "$args0" "$args1" "$args2" ;; 144 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 145 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 146 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 147 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 148 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 149 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 150 | esac 151 | fi 152 | 153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 154 | function splitJvmOpts() { 155 | JVM_OPTS=("$@") 156 | } 157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 159 | 160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 161 | -------------------------------------------------------------------------------- /f_groceries/lib/logind_signup.dart: -------------------------------------------------------------------------------- 1 | import 'package:f_groceries/HomeScreen.dart'; 2 | import 'package:f_groceries/signup_screen.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | class Login_Screen extends StatefulWidget { 6 | final Key fieldKey; 7 | final String hintText; 8 | final String labelText; 9 | final String helperText; 10 | final FormFieldSetter onSaved; 11 | final FormFieldValidator validator; 12 | final ValueChanged onFieldSubmitted; 13 | 14 | const Login_Screen( 15 | {Key key, 16 | this.fieldKey, 17 | this.hintText, 18 | this.labelText, 19 | this.helperText, 20 | this.onSaved, 21 | this.validator, 22 | this.onFieldSubmitted}) 23 | : super(key: key); 24 | 25 | ThemeData buildTheme() { 26 | final ThemeData base = ThemeData(); 27 | return base.copyWith( 28 | hintColor: Colors.red, 29 | inputDecorationTheme: InputDecorationTheme( 30 | labelStyle: TextStyle(color: Colors.yellow, fontSize: 24.0), 31 | ), 32 | ); 33 | } 34 | 35 | @override 36 | State createState() => login(); 37 | } 38 | 39 | class login extends State { 40 | ShapeBorder shape; 41 | final scaffoldKey = GlobalKey(); 42 | final formKey = GlobalKey(); 43 | 44 | String _email; 45 | String _password; 46 | final GlobalKey _formKey = GlobalKey(); 47 | 48 | bool _autovalidate = false; 49 | bool _formWasEdited = false; 50 | 51 | String _validateName(String value) { 52 | _formWasEdited = true; 53 | if (value.isEmpty) return 'Name is required.'; 54 | final RegExp nameExp = RegExp(r'^[A-Za-z ]+$'); 55 | if (!nameExp.hasMatch(value)) 56 | return 'Please enter only alphabetical characters.'; 57 | return null; 58 | } 59 | 60 | @override 61 | Widget build(BuildContext context) { 62 | // TODO: implement build 63 | bool _obscureText = true; 64 | return Scaffold( 65 | key: scaffoldKey, 66 | appBar: AppBar( 67 | title: Text('Login'), 68 | backgroundColor: Colors.white, 69 | ), 70 | body: SafeArea( 71 | child: SingleChildScrollView( 72 | child: Column( 73 | mainAxisSize: MainAxisSize.min, 74 | children: [ 75 | Container( 76 | height: 50.0, 77 | alignment: Alignment.topLeft, 78 | margin: EdgeInsets.only(top: 7.0), 79 | child: Row( 80 | children: [ 81 | _verticalD(), 82 | GestureDetector( 83 | onTap: () { 84 | /* Navigator.push( 85 | context, 86 | MaterialPageRoute( 87 | builder: (context) => login_screen()));*/ 88 | }, 89 | child: Text( 90 | 'Login', 91 | style: TextStyle( 92 | fontSize: 20.0, 93 | color: Colors.black87, 94 | fontWeight: FontWeight.bold), 95 | ), 96 | ), 97 | _verticalD(), 98 | GestureDetector( 99 | onTap: () { 100 | Navigator.push( 101 | context, 102 | MaterialPageRoute( 103 | builder: (context) => Signup_Screen())); 104 | }, 105 | child: Text( 106 | 'Signup', 107 | style: TextStyle( 108 | fontSize: 20.0, 109 | color: Colors.black26, 110 | fontWeight: FontWeight.bold), 111 | ), 112 | ), 113 | ], 114 | ), 115 | ), 116 | SafeArea( 117 | top: false, 118 | bottom: false, 119 | child: Card( 120 | elevation: 5.0, 121 | child: Form( 122 | key: formKey, 123 | autovalidate: _autovalidate, 124 | child: SingleChildScrollView( 125 | padding: const EdgeInsets.all(16.0), 126 | child: Column( 127 | crossAxisAlignment: CrossAxisAlignment.stretch, 128 | children: [ 129 | const SizedBox(height: 24.0), 130 | TextFormField( 131 | decoration: const InputDecoration( 132 | border: UnderlineInputBorder( 133 | borderSide: BorderSide( 134 | color: Colors.black87, 135 | style: BorderStyle.solid), 136 | ), 137 | focusedBorder: UnderlineInputBorder( 138 | borderSide: BorderSide( 139 | color: Colors.black87, 140 | style: BorderStyle.solid), 141 | ), 142 | icon: Icon( 143 | Icons.email, 144 | color: Colors.black38, 145 | ), 146 | hintText: 'Your email address', 147 | labelText: 'E-mail', 148 | labelStyle: 149 | TextStyle(color: Colors.black54)), 150 | keyboardType: TextInputType.emailAddress, 151 | validator: (val) => !val.contains('@') 152 | ? 'Not a valid email.' 153 | : null, 154 | onSaved: (val) => _email = val, 155 | ), 156 | const SizedBox(height: 24.0), 157 | TextFormField( 158 | obscureText: true, 159 | decoration: const InputDecoration( 160 | border: UnderlineInputBorder( 161 | borderSide: BorderSide( 162 | color: Colors.black87, 163 | style: BorderStyle.solid), 164 | ), 165 | focusedBorder: UnderlineInputBorder( 166 | borderSide: BorderSide( 167 | color: Colors.black87, 168 | style: BorderStyle.solid), 169 | ), 170 | icon: Icon( 171 | Icons.lock, 172 | color: Colors.black38, 173 | ), 174 | hintText: 'Your password', 175 | labelText: 'Password', 176 | labelStyle: 177 | TextStyle(color: Colors.black54)), 178 | validator: (val) => val.length < 6 179 | ? 'Password too short.' 180 | : null, 181 | onSaved: (val) => _password = val, 182 | ), 183 | SizedBox( 184 | height: 35.0, 185 | ), 186 | Container( 187 | child: Row( 188 | mainAxisSize: MainAxisSize.max, 189 | mainAxisAlignment: 190 | MainAxisAlignment.spaceBetween, 191 | children: [ 192 | Container( 193 | alignment: Alignment.bottomLeft, 194 | margin: EdgeInsets.only(left: 10.0), 195 | child: GestureDetector( 196 | onTap: () {}, 197 | child: Text( 198 | 'FORGOT PASSWORD?', 199 | style: TextStyle( 200 | color: Colors.blueAccent, 201 | fontSize: 13.0), 202 | ), 203 | ), 204 | ), 205 | Container( 206 | alignment: Alignment.bottomRight, 207 | child: GestureDetector( 208 | onTap: () { 209 | _submit(); 210 | }, 211 | child: Text( 212 | 'LOGIN', 213 | style: TextStyle( 214 | color: Colors.orange, 215 | fontSize: 20.0, 216 | fontWeight: FontWeight.bold), 217 | ), 218 | ), 219 | ), 220 | ], 221 | ), 222 | ), 223 | 224 | /* const SizedBox(height:24.0), 225 | 226 | Row( 227 | crossAxisAlignment: CrossAxisAlignment.stretch, 228 | children: [ 229 | 230 | GestureDetector( 231 | onTap: (){ 232 | 233 | }, 234 | child: Text('FORGOT PASSWORD?',style: TextStyle( 235 | color: Colors.blueAccent,fontSize: 13.0 236 | ),), 237 | ), 238 | 239 | GestureDetector( 240 | onTap: (){ 241 | 242 | }, 243 | child: Text('LOGIN',style: TextStyle( 244 | color: Colors.orange,fontSize: 15.0 245 | ),), 246 | ), 247 | 248 | ], 249 | ) 250 | 251 | 252 | */ 253 | ]), 254 | )) //login, 255 | )) 256 | ], 257 | ), 258 | ))); 259 | } 260 | 261 | void _submit() { 262 | final form = formKey.currentState; 263 | 264 | if (form.validate()) { 265 | form.save(); 266 | 267 | // Email & password matched our validation rules 268 | // and are saved to _email and _password fields. 269 | _performLogin(); 270 | } else { 271 | showInSnackBar('Please fix the errors in red before submitting.'); 272 | } 273 | } 274 | 275 | void showInSnackBar(String value) { 276 | scaffoldKey.currentState.showSnackBar(SnackBar(content: Text(value))); 277 | } 278 | 279 | void _performLogin() { 280 | // This is just a demo, so no actual login here. 281 | Navigator.push( 282 | context, MaterialPageRoute(builder: (context) => Home_screen())); 283 | } 284 | 285 | _verticalD() => Container( 286 | margin: EdgeInsets.only(left: 10.0, right: 0.0, top: 0.0, bottom: 0.0), 287 | ); 288 | } 289 | -------------------------------------------------------------------------------- /f_groceries/lib/Payment_Screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Patment extends StatefulWidget { 4 | @override 5 | State createState() => payment(); 6 | } 7 | 8 | class Item { 9 | final String itemName; 10 | final String itemQun; 11 | final String itemPrice; 12 | 13 | Item({this.itemName, this.itemQun, this.itemPrice}); 14 | } 15 | 16 | class payment extends State { 17 | final GlobalKey _scaffoldKey = GlobalKey(); 18 | bool checkboxValueA = true; 19 | bool checkboxValueB = false; 20 | bool checkboxValueC = false; 21 | 22 | IconData _backIcon() { 23 | switch (Theme.of(context).platform) { 24 | case TargetPlatform.android: 25 | case TargetPlatform.fuchsia: 26 | return Icons.arrow_back; 27 | case TargetPlatform.iOS: 28 | return Icons.arrow_back_ios; 29 | } 30 | assert(false); 31 | return null; 32 | } 33 | 34 | int radioValue = 0; 35 | void handleRadioValueChanged(int value) { 36 | setState(() { 37 | radioValue = value; 38 | }); 39 | } 40 | 41 | List itemList = [ 42 | Item(itemName: 'Black Grape', itemQun: 'Qty:1', itemPrice: '\₹ 100'), 43 | Item(itemName: 'Tomato', itemQun: 'Qty:3', itemPrice: '\₹ 112'), 44 | Item(itemName: 'Mango', itemQun: 'Qty:2', itemPrice: '\₹ 105'), 45 | Item(itemName: 'Capsicum', itemQun: 'Qty:1', itemPrice: '\₹ 90'), 46 | Item(itemName: 'Lemon', itemQun: 'Qty:2', itemPrice: '\₹ 70'), 47 | Item(itemName: 'Apple', itemQun: 'Qty:1', itemPrice: '\₹ 50'), 48 | ]; 49 | String toolbarname = 'CheckOut'; 50 | 51 | @override 52 | Widget build(BuildContext context) { 53 | // TODO: implement build 54 | 55 | final double height = MediaQuery.of(context).size.height; 56 | 57 | AppBar appBar = AppBar( 58 | leading: IconButton( 59 | icon: Icon(_backIcon()), 60 | alignment: Alignment.centerLeft, 61 | tooltip: 'Back', 62 | onPressed: () { 63 | Navigator.pop(context); 64 | }, 65 | ), 66 | title: Text(toolbarname), 67 | backgroundColor: Colors.white, 68 | actions: [ 69 | Padding( 70 | padding: const EdgeInsets.all(10.0), 71 | child: Container( 72 | height: 150.0, 73 | width: 30.0, 74 | child: GestureDetector( 75 | onTap: () { 76 | /*Navigator.of(context).push( 77 | MaterialPageRoute( 78 | builder:(BuildContext context) => 79 | CartItemsScreen() 80 | ) 81 | );*/ 82 | }, 83 | ), 84 | ), 85 | ) 86 | ], 87 | ); 88 | 89 | return Scaffold( 90 | key: _scaffoldKey, 91 | appBar: appBar, 92 | body: Column( 93 | children: [ 94 | Container( 95 | margin: EdgeInsets.all(5.0), 96 | child: Card( 97 | child: Container( 98 | padding: const EdgeInsets.all(10.0), 99 | child: Row( 100 | mainAxisSize: MainAxisSize.max, 101 | mainAxisAlignment: MainAxisAlignment.center, 102 | children: [ 103 | // three line description 104 | Row( 105 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 106 | children: [ 107 | Padding( 108 | padding: const EdgeInsets.only(bottom: 8.0), 109 | child: Container( 110 | alignment: Alignment.center, 111 | child: Row( 112 | children: [ 113 | Text( 114 | 'Delivery', 115 | style: TextStyle( 116 | fontSize: 18.0, 117 | fontWeight: FontWeight.bold, 118 | color: Colors.black38), 119 | ), 120 | IconButton( 121 | icon: Icon( 122 | Icons.play_circle_outline, 123 | color: Colors.black38, 124 | ), 125 | onPressed: null) 126 | ], 127 | )), 128 | ), 129 | Padding( 130 | padding: const EdgeInsets.only(bottom: 8.0), 131 | child: Container( 132 | alignment: Alignment.center, 133 | child: Row( 134 | children: [ 135 | Text( 136 | 'Payment', 137 | style: TextStyle( 138 | fontSize: 18.0, 139 | fontWeight: FontWeight.bold, 140 | color: Colors.black), 141 | ), 142 | IconButton( 143 | icon: Icon( 144 | Icons.check_circle, 145 | color: Colors.blue, 146 | ), 147 | onPressed: null) 148 | ], 149 | )), 150 | ), 151 | ], 152 | ), 153 | ], 154 | )))), 155 | _verticalDivider(), 156 | Container( 157 | margin: EdgeInsets.all(10.0), 158 | child: Card( 159 | child: Container( 160 | color: Colors.green.shade100, 161 | child: Container( 162 | padding: 163 | const EdgeInsets.fromLTRB(15.0, 15.0, 15.0, 15.0), 164 | child: Text( 165 | "GET EXTRA 5% OFF* with MONEY bank Simply Save Credit card. T&C.", 166 | maxLines: 10, 167 | style: TextStyle( 168 | fontSize: 13.0, color: Colors.black87))), 169 | ), 170 | )), 171 | Container( 172 | alignment: Alignment.topLeft, 173 | margin: 174 | EdgeInsets.only(left: 12.0, top: 5.0, right: 0.0, bottom: 5.0), 175 | child: Text( 176 | 'Payment Method', 177 | style: TextStyle( 178 | color: Colors.black87, 179 | fontWeight: FontWeight.bold, 180 | fontSize: 18.0), 181 | ), 182 | ), 183 | _verticalDivider(), 184 | Container( 185 | height: 264.0, 186 | margin: EdgeInsets.all(10.0), 187 | child: Card( 188 | child: Container( 189 | child: Container( 190 | child: Column( 191 | children: [ 192 | Container( 193 | padding: EdgeInsets.only(left: 10.0), 194 | child: Row( 195 | mainAxisSize: MainAxisSize.max, 196 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 197 | children: [ 198 | Text("Wallet / UPI", 199 | maxLines: 10, 200 | style: TextStyle( 201 | fontSize: 15.0, color: Colors.black)), 202 | Radio( 203 | value: 0, groupValue: 0, onChanged: null), 204 | ], 205 | ), 206 | ), 207 | Divider(), 208 | _verticalD(), 209 | Container( 210 | padding: EdgeInsets.only(left: 10.0), 211 | child: Row( 212 | mainAxisSize: MainAxisSize.max, 213 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 214 | children: [ 215 | Text("Net Banking", 216 | maxLines: 10, 217 | style: TextStyle( 218 | fontSize: 15.0, color: Colors.black)), 219 | Radio( 220 | value: 0, 221 | groupValue: radioValue, 222 | onChanged: null), 223 | ], 224 | )), 225 | Divider(), 226 | _verticalD(), 227 | Container( 228 | padding: EdgeInsets.only(left: 10.0), 229 | child: Row( 230 | mainAxisSize: MainAxisSize.max, 231 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 232 | children: [ 233 | Text("Credit / Debit / ATM Card", 234 | maxLines: 10, 235 | style: TextStyle( 236 | fontSize: 15.0, color: Colors.black)), 237 | Radio( 238 | value: 0, 239 | groupValue: 0, 240 | onChanged: handleRadioValueChanged), 241 | ], 242 | )), 243 | Divider(), 244 | _verticalD(), 245 | Container( 246 | padding: EdgeInsets.only(left: 10.0), 247 | child: Row( 248 | mainAxisSize: MainAxisSize.max, 249 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 250 | children: [ 251 | Text("Cash on Delivery", 252 | maxLines: 10, 253 | style: TextStyle( 254 | fontSize: 15.0, color: Colors.black)), 255 | Radio( 256 | value: 0, groupValue: 0, onChanged: null), 257 | ], 258 | )), 259 | Divider(), 260 | ], 261 | )), 262 | ), 263 | )), 264 | Container( 265 | alignment: Alignment.bottomLeft, 266 | height: 50.0, 267 | child: Card( 268 | child: Row( 269 | mainAxisSize: MainAxisSize.max, 270 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 271 | children: [ 272 | IconButton(icon: Icon(Icons.info), onPressed: null), 273 | Text( 274 | 'Total :', 275 | style: TextStyle( 276 | fontSize: 17.0, 277 | color: Colors.black, 278 | fontWeight: FontWeight.bold), 279 | ), 280 | Text( 281 | '\₹ 524', 282 | style: TextStyle(fontSize: 17.0, color: Colors.black54), 283 | ), 284 | Padding( 285 | padding: const EdgeInsets.all(8.0), 286 | child: Container( 287 | alignment: Alignment.center, 288 | child: OutlineButton( 289 | borderSide: BorderSide(color: Colors.green), 290 | child: const Text('PROCEED TO PAY'), 291 | textColor: Colors.green, 292 | onPressed: () { 293 | // Navigator.push(context, MaterialPageRoute(builder: (context)=> Item_Details())); 294 | }, 295 | shape: OutlineInputBorder( 296 | borderRadius: BorderRadius.circular(30.0), 297 | )), 298 | ), 299 | ), 300 | ], 301 | ), 302 | )), 303 | ], 304 | ), 305 | ); 306 | } 307 | 308 | _verticalDivider() => Container( 309 | padding: EdgeInsets.all(2.0), 310 | ); 311 | 312 | _verticalD() => Container( 313 | margin: EdgeInsets.only(left: 5.0), 314 | ); 315 | } 316 | -------------------------------------------------------------------------------- /f_groceries/lib/help_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:f_groceries/Cart_Screen.dart'; 2 | import 'package:f_groceries/item_details.dart'; 3 | import 'package:flutter/material.dart'; 4 | import 'package:flutter_range_slider/flutter_range_slider.dart'; 5 | 6 | class Help_Screen extends StatefulWidget { 7 | final String toolbarname; 8 | 9 | Help_Screen({Key key, this.toolbarname}) : super(key: key); 10 | 11 | @override 12 | State createState() => Help(toolbarname); 13 | } 14 | 15 | class Help extends State { 16 | List list = ['12', '11']; 17 | 18 | bool switchValue = false; 19 | 20 | // String toolbarname = 'Fruiys & Vegetables'; 21 | final GlobalKey _scaffoldKey = GlobalKey(); 22 | String toolbarname; 23 | 24 | Help(this.toolbarname); 25 | 26 | @override 27 | Widget build(BuildContext context) { 28 | // TODO: implement build 29 | final ThemeData theme = Theme.of(context); 30 | final TextStyle dialogTextStyle = 31 | theme.textTheme.subhead.copyWith(color: theme.textTheme.caption.color); 32 | 33 | IconData _backIcon() { 34 | switch (Theme.of(context).platform) { 35 | case TargetPlatform.android: 36 | case TargetPlatform.fuchsia: 37 | return Icons.arrow_back; 38 | case TargetPlatform.iOS: 39 | return Icons.arrow_back_ios; 40 | } 41 | assert(false); 42 | return null; 43 | } 44 | 45 | final Orientation orientation = MediaQuery.of(context).orientation; 46 | return Scaffold( 47 | key: _scaffoldKey, 48 | appBar: AppBar( 49 | leading: IconButton( 50 | icon: Icon(_backIcon()), 51 | alignment: Alignment.centerLeft, 52 | tooltip: 'Back', 53 | onPressed: () { 54 | Navigator.pop(context); 55 | }, 56 | ), 57 | title: Text(toolbarname), 58 | backgroundColor: Colors.white, 59 | ), 60 | body: Container( 61 | child: Column( 62 | children: [ 63 | Container( 64 | height: 50.0, 65 | alignment: Alignment.topLeft, 66 | margin: EdgeInsets.only(top: 7.0), 67 | child: Row( 68 | children: [ 69 | _verticalD(), 70 | GestureDetector( 71 | onTap: () { 72 | /*Navigator.push( 73 | context, 74 | MaterialPageRoute( 75 | builder: (context) => signup_screen()));*/ 76 | }, 77 | child: Text( 78 | 'Contact Us', 79 | style: TextStyle( 80 | fontSize: 18.0, 81 | color: Colors.black87, 82 | fontWeight: FontWeight.bold), 83 | ), 84 | ), 85 | ], 86 | ), 87 | ), 88 | Container( 89 | margin: EdgeInsets.only(left: 10.0), 90 | child: Card( 91 | child: Container( 92 | // padding: EdgeInsets.only(left: 10.0,top: 15.0,bottom: 5.0,right: 5.0), 93 | 94 | child: Column( 95 | mainAxisSize: MainAxisSize.max, 96 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 97 | children: [ 98 | Container( 99 | padding: EdgeInsets.only( 100 | left: 10.0, top: 15.0, bottom: 15.0), 101 | child: GestureDetector( 102 | child: Row( 103 | children: [ 104 | Icon(Icons.mail, color: Colors.black54), 105 | Container( 106 | margin: EdgeInsets.only(left: 5.0), 107 | ), 108 | Text( 109 | 'Email US', 110 | style: TextStyle( 111 | fontSize: 17.0, 112 | color: Colors.black87, 113 | ), 114 | ), 115 | ], 116 | ), 117 | onTap: () { 118 | showDemoDialog( 119 | context: context, 120 | child: AlertDialog( 121 | title: const Text('Terms Use'), 122 | content: Text( 123 | "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.", 124 | style: dialogTextStyle), 125 | actions: [ 126 | FlatButton( 127 | child: const Text('DISAGREE'), 128 | onPressed: () { 129 | Navigator.pop(context, 130 | DialogDemoAction.disagree); 131 | }), 132 | /* FlatButton( 133 | child: const Text('AGREE'), 134 | onPressed: () { 135 | Navigator.pop(context, 136 | DialogDemoAction.agree); 137 | })*/ 138 | ])); 139 | }, 140 | )), 141 | Divider( 142 | height: 5.0, 143 | ), 144 | Container( 145 | padding: EdgeInsets.only( 146 | left: 10.0, top: 15.0, bottom: 15.0), 147 | child: GestureDetector( 148 | child: Row( 149 | children: [ 150 | Icon(Icons.info, color: Colors.black54), 151 | Container( 152 | margin: EdgeInsets.only(left: 5.0), 153 | ), 154 | Text( 155 | 'About US', 156 | style: TextStyle( 157 | fontSize: 17.0, color: Colors.black87), 158 | ), 159 | ], 160 | ), 161 | onTap: () { 162 | showDemoDialog( 163 | context: context, 164 | child: AlertDialog( 165 | title: const Text('About Us'), 166 | content: Text( 167 | "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.", 168 | style: dialogTextStyle), 169 | actions: [ 170 | FlatButton( 171 | child: const Text('DISAGREE'), 172 | onPressed: () { 173 | Navigator.pop(context, 174 | DialogDemoAction.disagree); 175 | }), 176 | /* FlatButton( 177 | child: const Text('AGREE'), 178 | onPressed: () { 179 | Navigator.pop(context, 180 | DialogDemoAction.agree); 181 | })*/ 182 | ])); 183 | })), 184 | Divider( 185 | height: 5.0, 186 | ), 187 | Container( 188 | padding: EdgeInsets.only( 189 | left: 10.0, top: 15.0, bottom: 15.0), 190 | child: GestureDetector( 191 | child: Row( 192 | children: [ 193 | Icon(Icons.feedback, color: Colors.black54), 194 | Container( 195 | margin: EdgeInsets.only(left: 5.0), 196 | ), 197 | Text( 198 | 'Send Feedback', 199 | style: TextStyle( 200 | fontSize: 17.0, color: Colors.black87), 201 | ), 202 | ], 203 | ), 204 | onTap: () { 205 | showDemoDialog( 206 | context: context, 207 | child: AlertDialog( 208 | title: const Text('Send Feedback'), 209 | content: Text( 210 | "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.", 211 | style: dialogTextStyle), 212 | actions: [ 213 | FlatButton( 214 | child: const Text('DISAGREE'), 215 | onPressed: () { 216 | Navigator.pop(context, 217 | DialogDemoAction.disagree); 218 | }), 219 | /* FlatButton( 220 | child: const Text('AGREE'), 221 | onPressed: () { 222 | Navigator.pop(context, 223 | DialogDemoAction.agree); 224 | })*/ 225 | ])); 226 | })), 227 | ], 228 | ), 229 | )), 230 | ) 231 | ], 232 | ), 233 | )); 234 | } 235 | 236 | void showDemoDialog({BuildContext context, Widget child}) { 237 | showDialog( 238 | context: context, 239 | builder: (BuildContext context) => child, 240 | ).then((T value) { 241 | // The value passed to Navigator.pop() or null. 242 | if (value != null) { 243 | /*_scaffoldKey.currentState.showSnackBar(SnackBar( 244 | content: Text('You selected: $value') 245 | ));*/ 246 | } 247 | }); 248 | } 249 | 250 | _verticalD() => Container( 251 | margin: EdgeInsets.only(left: 10.0, right: 0.0, top: 0.0, bottom: 0.0), 252 | ); 253 | 254 | _verticalDivider() => Container( 255 | padding: EdgeInsets.all(2.0), 256 | ); 257 | 258 | Widget _status(status) { 259 | if (status == 'Cabcel Order') { 260 | return FlatButton.icon( 261 | label: Text( 262 | status, 263 | style: TextStyle(color: Colors.red), 264 | ), 265 | icon: const Icon( 266 | Icons.highlight_off, 267 | size: 18.0, 268 | color: Colors.red, 269 | ), 270 | onPressed: () { 271 | // Perform some action 272 | }); 273 | } else { 274 | return FlatButton.icon( 275 | label: Text( 276 | status, 277 | style: TextStyle(color: Colors.green), 278 | ), 279 | icon: const Icon( 280 | Icons.check_circle, 281 | size: 18.0, 282 | color: Colors.green, 283 | ), 284 | onPressed: () { 285 | // Perform some action 286 | }); 287 | } 288 | } 289 | 290 | erticalD() => Container( 291 | margin: EdgeInsets.only(left: 10.0, right: 0.0, top: 0.0, bottom: 0.0), 292 | ); 293 | 294 | bool a = true; 295 | String mText = "Press to hide"; 296 | double _lowerValue = 1.0; 297 | double _upperValue = 100.0; 298 | 299 | void _visibilitymethod() { 300 | setState(() { 301 | if (a) { 302 | a = false; 303 | mText = "Press to show"; 304 | } else { 305 | a = true; 306 | mText = "Press to hide"; 307 | } 308 | }); 309 | } 310 | } 311 | -------------------------------------------------------------------------------- /f_groceries/lib/setting_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:f_groceries/Cart_Screen.dart'; 2 | import 'package:f_groceries/item_details.dart'; 3 | import 'package:flutter/material.dart'; 4 | import 'package:flutter_range_slider/flutter_range_slider.dart'; 5 | 6 | class Setting_Screen extends StatefulWidget { 7 | final String toolbarname; 8 | 9 | Setting_Screen({Key key, this.toolbarname}) : super(key: key); 10 | 11 | @override 12 | State createState() => Setting(toolbarname); 13 | } 14 | 15 | class Setting extends State { 16 | List list = ['12', '11']; 17 | 18 | bool switchValue = false; 19 | 20 | // String toolbarname = 'Fruiys & Vegetables'; 21 | final GlobalKey _scaffoldKey = GlobalKey(); 22 | String toolbarname; 23 | 24 | Setting(this.toolbarname); 25 | 26 | @override 27 | Widget build(BuildContext context) { 28 | // TODO: implement build 29 | final ThemeData theme = Theme.of(context); 30 | final TextStyle dialogTextStyle = 31 | theme.textTheme.subhead.copyWith(color: theme.textTheme.caption.color); 32 | 33 | IconData _backIcon() { 34 | switch (Theme.of(context).platform) { 35 | case TargetPlatform.android: 36 | case TargetPlatform.fuchsia: 37 | return Icons.arrow_back; 38 | case TargetPlatform.iOS: 39 | return Icons.arrow_back_ios; 40 | } 41 | assert(false); 42 | return null; 43 | } 44 | 45 | final Orientation orientation = MediaQuery.of(context).orientation; 46 | return Scaffold( 47 | key: _scaffoldKey, 48 | appBar: AppBar( 49 | leading: IconButton( 50 | icon: Icon(_backIcon()), 51 | alignment: Alignment.centerLeft, 52 | tooltip: 'Back', 53 | onPressed: () { 54 | Navigator.pop(context); 55 | }, 56 | ), 57 | title: Text(toolbarname), 58 | backgroundColor: Colors.white, 59 | ), 60 | body: Container( 61 | child: Column( 62 | children: [ 63 | Container( 64 | height: 50.0, 65 | alignment: Alignment.topLeft, 66 | margin: EdgeInsets.only(top: 7.0), 67 | child: Row( 68 | children: [ 69 | _verticalD(), 70 | GestureDetector( 71 | onTap: () { 72 | /*Navigator.push( 73 | context, 74 | MaterialPageRoute( 75 | builder: (context) => signup_screen()));*/ 76 | }, 77 | child: Text( 78 | 'Notification', 79 | style: TextStyle( 80 | fontSize: 18.0, 81 | color: Colors.black87, 82 | fontWeight: FontWeight.bold), 83 | ), 84 | ), 85 | ], 86 | ), 87 | ), 88 | Container( 89 | margin: EdgeInsets.only(left: 10.0), 90 | child: Card( 91 | child: Container( 92 | padding: EdgeInsets.only( 93 | left: 10.0, top: 5.0, bottom: 5.0, right: 5.0), 94 | child: Row( 95 | mainAxisSize: MainAxisSize.max, 96 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 97 | children: [ 98 | Row( 99 | children: [ 100 | Icon(Icons.notifications, color: Colors.black54), 101 | Container( 102 | margin: EdgeInsets.only(left: 5.0), 103 | ), 104 | Text( 105 | 'Notification', 106 | style: TextStyle( 107 | fontSize: 17.0, 108 | color: Colors.black87, 109 | ), 110 | ), 111 | ], 112 | ), 113 | Switch( 114 | value: switchValue, 115 | onChanged: (bool value) { 116 | setState(() { 117 | switchValue = value; 118 | }); 119 | }), 120 | ], 121 | ), 122 | )), 123 | ), 124 | Container( 125 | margin: EdgeInsets.only(top: 15.0), 126 | ), 127 | Container( 128 | height: 50.0, 129 | alignment: Alignment.topLeft, 130 | margin: EdgeInsets.only(top: 7.0), 131 | child: Row( 132 | children: [ 133 | _verticalD(), 134 | GestureDetector( 135 | onTap: () { 136 | /*Navigator.push( 137 | context, 138 | MaterialPageRoute( 139 | builder: (context) => signup_screen()));*/ 140 | }, 141 | child: Text( 142 | 'Legal', 143 | style: TextStyle( 144 | fontSize: 18.0, 145 | color: Colors.black87, 146 | fontWeight: FontWeight.bold), 147 | ), 148 | ), 149 | ], 150 | ), 151 | ), 152 | Container( 153 | margin: EdgeInsets.only(left: 10.0), 154 | child: Card( 155 | child: Container( 156 | // padding: EdgeInsets.only(left: 10.0,top: 15.0,bottom: 5.0,right: 5.0), 157 | 158 | child: Column( 159 | mainAxisSize: MainAxisSize.max, 160 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 161 | children: [ 162 | Container( 163 | padding: EdgeInsets.only( 164 | left: 10.0, top: 15.0, bottom: 15.0), 165 | child: GestureDetector( 166 | child: Row( 167 | children: [ 168 | Icon(Icons.assignment, color: Colors.black54), 169 | Container( 170 | margin: EdgeInsets.only(left: 5.0), 171 | ), 172 | Text( 173 | 'Terms Off Use', 174 | style: TextStyle( 175 | fontSize: 17.0, 176 | color: Colors.black87, 177 | ), 178 | ), 179 | ], 180 | ), 181 | onTap: () { 182 | showDemoDialog( 183 | context: context, 184 | child: AlertDialog( 185 | title: const Text('Terms Use'), 186 | content: Text( 187 | "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.", 188 | style: dialogTextStyle), 189 | actions: [ 190 | FlatButton( 191 | child: const Text('DISAGREE'), 192 | onPressed: () { 193 | Navigator.pop(context, 194 | DialogDemoAction.disagree); 195 | }), 196 | /* FlatButton( 197 | child: const Text('AGREE'), 198 | onPressed: () { 199 | Navigator.pop(context, 200 | DialogDemoAction.agree); 201 | })*/ 202 | ])); 203 | }, 204 | )), 205 | Divider( 206 | height: 5.0, 207 | ), 208 | Container( 209 | padding: EdgeInsets.only( 210 | left: 10.0, top: 15.0, bottom: 15.0), 211 | child: GestureDetector( 212 | child: Row( 213 | children: [ 214 | Icon(Icons.lock_outline, 215 | color: Colors.black54), 216 | Container( 217 | margin: EdgeInsets.only(left: 5.0), 218 | ), 219 | Text( 220 | 'Privacy Policy', 221 | style: TextStyle( 222 | fontSize: 17.0, color: Colors.black87), 223 | ), 224 | ], 225 | ), 226 | onTap: () { 227 | showDemoDialog( 228 | context: context, 229 | child: AlertDialog( 230 | title: const Text('About Us'), 231 | content: Text( 232 | "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.", 233 | style: dialogTextStyle), 234 | actions: [ 235 | FlatButton( 236 | child: const Text('DISAGREE'), 237 | onPressed: () { 238 | Navigator.pop(context, 239 | DialogDemoAction.disagree); 240 | }), 241 | /* FlatButton( 242 | child: const Text('AGREE'), 243 | onPressed: () { 244 | Navigator.pop(context, 245 | DialogDemoAction.agree); 246 | })*/ 247 | ])); 248 | })), 249 | ], 250 | ), 251 | )), 252 | ) 253 | ], 254 | ), 255 | )); 256 | } 257 | 258 | void showDemoDialog({BuildContext context, Widget child}) { 259 | showDialog( 260 | context: context, 261 | builder: (BuildContext context) => child, 262 | ).then((T value) { 263 | // The value passed to Navigator.pop() or null. 264 | if (value != null) { 265 | /*_scaffoldKey.currentState.showSnackBar(SnackBar( 266 | content: Text('You selected: $value') 267 | ));*/ 268 | } 269 | }); 270 | } 271 | 272 | _verticalD() => Container( 273 | margin: EdgeInsets.only(left: 10.0, right: 0.0, top: 0.0, bottom: 0.0), 274 | ); 275 | 276 | _verticalDivider() => Container( 277 | padding: EdgeInsets.all(2.0), 278 | ); 279 | 280 | Widget _status(status) { 281 | if (status == 'Cabcel Order') { 282 | return FlatButton.icon( 283 | label: Text( 284 | status, 285 | style: TextStyle(color: Colors.red), 286 | ), 287 | icon: const Icon( 288 | Icons.highlight_off, 289 | size: 18.0, 290 | color: Colors.red, 291 | ), 292 | onPressed: () { 293 | // Perform some action 294 | }); 295 | } else { 296 | return FlatButton.icon( 297 | label: Text( 298 | status, 299 | style: TextStyle(color: Colors.green), 300 | ), 301 | icon: const Icon( 302 | Icons.check_circle, 303 | size: 18.0, 304 | color: Colors.green, 305 | ), 306 | onPressed: () { 307 | // Perform some action 308 | }); 309 | } 310 | } 311 | 312 | erticalD() => Container( 313 | margin: EdgeInsets.only(left: 10.0, right: 0.0, top: 0.0, bottom: 0.0), 314 | ); 315 | 316 | bool a = true; 317 | String mText = "Press to hide"; 318 | double _lowerValue = 1.0; 319 | double _upperValue = 100.0; 320 | 321 | void _visibilitymethod() { 322 | setState(() { 323 | if (a) { 324 | a = false; 325 | mText = "Press to show"; 326 | } else { 327 | a = true; 328 | mText = "Press to hide"; 329 | } 330 | }); 331 | } 332 | } 333 | -------------------------------------------------------------------------------- /f_groceries/lib/orderhistory_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:f_groceries/Cart_Screen.dart'; 2 | import 'package:f_groceries/item_details.dart'; 3 | import 'package:flutter/material.dart'; 4 | import 'package:flutter_range_slider/flutter_range_slider.dart'; 5 | 6 | class Oder_History extends StatefulWidget { 7 | final String toolbarname; 8 | 9 | Oder_History({Key key, this.toolbarname}) : super(key: key); 10 | 11 | @override 12 | State createState() => oder_history(toolbarname); 13 | } 14 | 15 | class Item { 16 | final String name; 17 | final String deliveryTime; 18 | final String oderId; 19 | final String oderAmount; 20 | final String paymentType; 21 | final String address; 22 | final String cancelOder; 23 | 24 | Item( 25 | {this.name, 26 | this.deliveryTime, 27 | this.oderId, 28 | this.oderAmount, 29 | this.paymentType, 30 | this.address, 31 | this.cancelOder}); 32 | } 33 | 34 | class oder_history extends State { 35 | List list = ['12', '11']; 36 | bool checkboxValueA = true; 37 | bool checkboxValueB = false; 38 | bool checkboxValueC = false; 39 | VoidCallback _showBottomSheetCallback; 40 | List itemList = [ 41 | Item( 42 | name: 'Jhone Miller', 43 | deliveryTime: '26-5-2106', 44 | oderId: '#CN23656', 45 | oderAmount: '\₹ 650', 46 | paymentType: 'online', 47 | address: '1338 Karen Lane,Louisville,Kentucky', 48 | cancelOder: 'Cancel Order'), 49 | Item( 50 | name: 'Gautam Dass', 51 | deliveryTime: '10-8-2106', 52 | oderId: '#CN33568', 53 | oderAmount: '\₹ 900', 54 | paymentType: 'COD', 55 | address: '319 Alexander Drive,Ponder,Texas', 56 | cancelOder: 'View Receipt'), 57 | Item( 58 | name: 'Jhone Hill', 59 | deliveryTime: '23-3-2107', 60 | oderId: '#CN75695', 61 | oderAmount: '\₹ 250', 62 | paymentType: 'online', 63 | address: '92 Jarvis Street,Buffalo, York', 64 | cancelOder: 'View Receipt'), 65 | Item( 66 | name: 'Miller Root', 67 | deliveryTime: '10-5-2107', 68 | oderId: '#CN45238', 69 | oderAmount: '\₹ 500', 70 | paymentType: 'Bhim/upi', 71 | address: '103 Romrog Way,Grand Island,Nebraska', 72 | cancelOder: 'Cancel Order'), 73 | Item( 74 | name: 'Lag Gilli', 75 | deliveryTime: '26-10-2107', 76 | oderId: '#CN69532', 77 | oderAmount: '\₹ 1120', 78 | paymentType: 'online', 79 | address: '8 Clarksburg Park,Marble Canyon,Arizona', 80 | cancelOder: 'View Receipt'), 81 | ]; 82 | 83 | // String toolbarname = 'Fruiys & Vegetables'; 84 | final GlobalKey _scaffoldKey = GlobalKey(); 85 | String toolbarname; 86 | 87 | oder_history(this.toolbarname); 88 | 89 | @override 90 | Widget build(BuildContext context) { 91 | // TODO: implement build 92 | IconData _backIcon() { 93 | switch (Theme.of(context).platform) { 94 | case TargetPlatform.android: 95 | case TargetPlatform.fuchsia: 96 | return Icons.arrow_back; 97 | case TargetPlatform.iOS: 98 | return Icons.arrow_back_ios; 99 | } 100 | assert(false); 101 | return null; 102 | } 103 | 104 | var size = MediaQuery.of(context).size; 105 | 106 | /*24 is for notification bar on Android*/ 107 | final double itemHeight = (size.height - kToolbarHeight - 24) / 2; 108 | final double itemWidth = size.width / 2; 109 | 110 | final Orientation orientation = MediaQuery.of(context).orientation; 111 | return Scaffold( 112 | key: _scaffoldKey, 113 | appBar: AppBar( 114 | leading: IconButton( 115 | icon: Icon(_backIcon()), 116 | alignment: Alignment.centerLeft, 117 | tooltip: 'Back', 118 | onPressed: () { 119 | Navigator.pop(context); 120 | }, 121 | ), 122 | title: Text(toolbarname), 123 | backgroundColor: Colors.white, 124 | ), 125 | body: ListView.builder( 126 | itemCount: itemList.length, 127 | itemBuilder: (BuildContext cont, int ind) { 128 | return SafeArea( 129 | child: Column(children: [ 130 | Container( 131 | margin: EdgeInsets.only(left: 5.0, right: 5.0, bottom: 5.0), 132 | color: Colors.black12, 133 | child: Card( 134 | elevation: 4.0, 135 | child: Container( 136 | padding: const EdgeInsets.fromLTRB( 137 | 10.0, 10.0, 10.0, 10.0), 138 | child: GestureDetector( 139 | child: Column( 140 | mainAxisSize: MainAxisSize.max, 141 | mainAxisAlignment: MainAxisAlignment.start, 142 | children: [ 143 | // three line description 144 | Container( 145 | alignment: Alignment.topLeft, 146 | child: Text( 147 | itemList[ind].name, 148 | style: TextStyle( 149 | fontSize: 16.0, 150 | fontStyle: FontStyle.normal, 151 | color: Colors.black87, 152 | ), 153 | ), 154 | ), 155 | 156 | Container( 157 | margin: EdgeInsets.only(top: 3.0), 158 | ), 159 | Container( 160 | alignment: Alignment.topLeft, 161 | child: Text( 162 | 'To Deliver On :' + 163 | itemList[ind].deliveryTime, 164 | style: TextStyle( 165 | fontSize: 13.0, color: Colors.black54), 166 | ), 167 | ), 168 | Divider( 169 | height: 10.0, 170 | color: Colors.amber.shade500, 171 | ), 172 | 173 | Row( 174 | mainAxisSize: MainAxisSize.max, 175 | mainAxisAlignment: 176 | MainAxisAlignment.spaceBetween, 177 | children: [ 178 | Container( 179 | padding: EdgeInsets.all(3.0), 180 | child: Column( 181 | mainAxisAlignment: 182 | MainAxisAlignment.center, 183 | children: [ 184 | Text( 185 | 'Order Id', 186 | style: TextStyle( 187 | fontSize: 13.0, 188 | color: Colors.black54), 189 | ), 190 | Container( 191 | margin: EdgeInsets.only(top: 3.0), 192 | child: Text( 193 | itemList[ind].oderId, 194 | style: TextStyle( 195 | fontSize: 15.0, 196 | color: Colors.black87), 197 | ), 198 | ) 199 | ], 200 | )), 201 | Container( 202 | padding: EdgeInsets.all(3.0), 203 | child: Column( 204 | mainAxisAlignment: 205 | MainAxisAlignment.center, 206 | children: [ 207 | Text( 208 | 'Order Amount', 209 | style: TextStyle( 210 | fontSize: 13.0, 211 | color: Colors.black54), 212 | ), 213 | Container( 214 | margin: EdgeInsets.only(top: 3.0), 215 | child: Text( 216 | itemList[ind].oderAmount, 217 | style: TextStyle( 218 | fontSize: 15.0, 219 | color: Colors.black87), 220 | ), 221 | ), 222 | ], 223 | )), 224 | Container( 225 | padding: EdgeInsets.all(3.0), 226 | child: Column( 227 | mainAxisAlignment: 228 | MainAxisAlignment.center, 229 | children: [ 230 | Text( 231 | 'Payment Type', 232 | style: TextStyle( 233 | fontSize: 13.0, 234 | color: Colors.black54), 235 | ), 236 | Container( 237 | margin: EdgeInsets.only(top: 3.0), 238 | child: Text( 239 | itemList[ind].paymentType, 240 | style: TextStyle( 241 | fontSize: 15.0, 242 | color: Colors.black87), 243 | ), 244 | ) 245 | ], 246 | )), 247 | ], 248 | ), 249 | Divider( 250 | height: 10.0, 251 | color: Colors.amber.shade500, 252 | ), 253 | 254 | Row( 255 | mainAxisAlignment: MainAxisAlignment.start, 256 | children: [ 257 | Icon( 258 | Icons.location_on, 259 | size: 20.0, 260 | color: Colors.amber.shade500, 261 | ), 262 | Text(itemList[ind].address, 263 | style: TextStyle( 264 | fontSize: 13.0, 265 | color: Colors.black54)), 266 | ], 267 | ), 268 | Divider( 269 | height: 10.0, 270 | color: Colors.amber.shade500, 271 | ), 272 | Container( 273 | child: _status(itemList[ind].cancelOder)) 274 | ], 275 | ))))), 276 | ])); 277 | })); 278 | } 279 | 280 | _verticalDivider() => Container( 281 | padding: EdgeInsets.all(2.0), 282 | ); 283 | 284 | Widget _status(status) { 285 | if (status == 'Cancel Order') { 286 | return FlatButton.icon( 287 | label: Text( 288 | status, 289 | style: TextStyle(color: Colors.red), 290 | ), 291 | icon: const Icon( 292 | Icons.highlight_off, 293 | size: 18.0, 294 | color: Colors.red, 295 | ), 296 | onPressed: () { 297 | // Perform some action 298 | }); 299 | } else { 300 | return FlatButton.icon( 301 | label: Text( 302 | status, 303 | style: TextStyle(color: Colors.green), 304 | ), 305 | icon: const Icon( 306 | Icons.check_circle, 307 | size: 18.0, 308 | color: Colors.green, 309 | ), 310 | onPressed: () { 311 | // Perform some action 312 | }); 313 | } 314 | if (status == "3") { 315 | return Text('Process'); 316 | } else if (status == "1") { 317 | return Text('Order'); 318 | } else { 319 | return Text("Waiting"); 320 | } 321 | } 322 | 323 | erticalD() => Container( 324 | margin: EdgeInsets.only(left: 10.0, right: 0.0, top: 0.0, bottom: 0.0), 325 | ); 326 | 327 | bool a = true; 328 | String mText = "Press to hide"; 329 | double _lowerValue = 1.0; 330 | double _upperValue = 100.0; 331 | 332 | void _visibilitymethod() { 333 | setState(() { 334 | if (a) { 335 | a = false; 336 | mText = "Press to show"; 337 | } else { 338 | a = true; 339 | mText = "Press to hide"; 340 | } 341 | }); 342 | } 343 | } 344 | -------------------------------------------------------------------------------- /f_groceries/lib/item_details.dart: -------------------------------------------------------------------------------- 1 | import 'package:f_groceries/Cart_Screen.dart'; 2 | import 'package:f_groceries/checkout_screen.dart'; 3 | import 'package:flutter/material.dart'; 4 | import 'package:carousel_pro/carousel_pro.dart'; 5 | 6 | class Item_Details extends StatefulWidget { 7 | @override 8 | State createState() => item_details(); 9 | } 10 | 11 | class item_details extends State { 12 | String toolbarname = 'Fruiys & Vegetables'; 13 | final GlobalKey _scaffoldKey = GlobalKey(); 14 | List list = ['12', '11']; 15 | 16 | String itemname = 'Apple'; 17 | int item = 0; 18 | String itemprice = '\$15'; 19 | 20 | @override 21 | Widget build(BuildContext context) { 22 | // TODO: implement build 23 | final ThemeData theme = Theme.of(context); 24 | final TextStyle titleStyle = 25 | theme.textTheme.headline.copyWith(color: Colors.white); 26 | final TextStyle descriptionStyle = theme.textTheme.subhead; 27 | IconData _backIcon() { 28 | switch (Theme.of(context).platform) { 29 | case TargetPlatform.android: 30 | case TargetPlatform.fuchsia: 31 | case TargetPlatform.windows: 32 | return Icons.arrow_back; 33 | case TargetPlatform.iOS: 34 | return Icons.arrow_back_ios; 35 | } 36 | return null; 37 | } 38 | 39 | IconData _add_icon() { 40 | switch (Theme.of(context).platform) { 41 | case TargetPlatform.android: 42 | case TargetPlatform.fuchsia: 43 | case TargetPlatform.windows: 44 | return Icons.add_circle; 45 | case TargetPlatform.iOS: 46 | return Icons.add_circle; 47 | } 48 | return null; 49 | } 50 | 51 | IconData _sub_icon() { 52 | switch (Theme.of(context).platform) { 53 | case TargetPlatform.android: 54 | case TargetPlatform.fuchsia: 55 | case TargetPlatform.windows: 56 | return Icons.remove_circle; 57 | case TargetPlatform.iOS: 58 | return Icons.remove_circle; 59 | } 60 | return null; 61 | } 62 | 63 | return Scaffold( 64 | key: _scaffoldKey, 65 | appBar: AppBar( 66 | leading: IconButton( 67 | icon: Icon(_backIcon()), 68 | alignment: Alignment.centerLeft, 69 | tooltip: 'Back', 70 | onPressed: () { 71 | Navigator.pop(context); 72 | }, 73 | ), 74 | title: Text(toolbarname), 75 | backgroundColor: Colors.white, 76 | actions: [ 77 | Padding( 78 | padding: const EdgeInsets.all(10.0), 79 | child: Container( 80 | height: 150.0, 81 | width: 30.0, 82 | child: GestureDetector( 83 | onTap: () { 84 | /*Navigator.of(context).push( 85 | MaterialPageRoute( 86 | builder:(BuildContext context) => 87 | CartItemsScreen() 88 | ) 89 | );*/ 90 | }, 91 | child: Stack( 92 | children: [ 93 | IconButton( 94 | icon: Icon( 95 | Icons.shopping_cart, 96 | color: Colors.black, 97 | ), 98 | onPressed: () { 99 | Navigator.push( 100 | context, 101 | MaterialPageRoute( 102 | builder: (context) => Checkout())); 103 | }), 104 | list.length == 0 105 | ? Container() 106 | : Positioned( 107 | child: Stack( 108 | children: [ 109 | Icon(Icons.brightness_1, 110 | size: 20.0, color: Colors.orange.shade500), 111 | Positioned( 112 | top: 4.0, 113 | right: 5.5, 114 | child: Center( 115 | child: Text( 116 | list.length.toString(), 117 | style: TextStyle( 118 | color: Colors.white, 119 | fontSize: 11.0, 120 | fontWeight: FontWeight.w500), 121 | ), 122 | )), 123 | ], 124 | )), 125 | ], 126 | ), 127 | ), 128 | ), 129 | ) 130 | ], 131 | ), 132 | body: Container( 133 | padding: const EdgeInsets.all(8.0), 134 | child: SingleChildScrollView( 135 | child: Column(children: [ 136 | Card( 137 | elevation: 4.0, 138 | child: Container( 139 | color: Colors.white, 140 | child: Column( 141 | crossAxisAlignment: CrossAxisAlignment.start, 142 | children: [ 143 | // photo and title 144 | SizedBox( 145 | height: 250.0, 146 | child: Stack( 147 | alignment: Alignment.center, 148 | children: [ 149 | Container( 150 | child: Carousel( 151 | images: [ 152 | AssetImage( 153 | 'images/apple.jpg', 154 | // package: destination.assetPackage, 155 | ), 156 | AssetImage( 157 | 'images/tomato.jpg', 158 | // package: destination.assetPackage, 159 | ), 160 | AssetImage( 161 | 'images/lemons.jpg', 162 | // package: destination.assetPackage, 163 | ), 164 | AssetImage( 165 | 'images/kiwi.jpg', 166 | // package: destination.assetPackage, 167 | ), 168 | AssetImage( 169 | 'images/guava.jpg', 170 | // package: destination.assetPackage, 171 | ), 172 | AssetImage( 173 | 'images/grapes.jpg', 174 | // package: destination.assetPackage, 175 | ), 176 | ], 177 | boxFit: BoxFit.scaleDown, 178 | showIndicator: false, 179 | autoplay: false, 180 | ), 181 | ) 182 | ], 183 | ), 184 | ), 185 | ]), 186 | ), 187 | ), 188 | Container( 189 | padding: const EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 0.0), 190 | child: DefaultTextStyle( 191 | style: descriptionStyle, 192 | child: Row( 193 | mainAxisSize: MainAxisSize.max, 194 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 195 | children: [ 196 | // three line description 197 | Padding( 198 | padding: const EdgeInsets.only(bottom: 8.0), 199 | child: Text( 200 | itemname, 201 | style: descriptionStyle.copyWith( 202 | fontSize: 20.0, 203 | fontWeight: FontWeight.bold, 204 | color: Colors.black87), 205 | ), 206 | ), 207 | Padding( 208 | padding: const EdgeInsets.only(bottom: 8.0), 209 | child: Text( 210 | itemprice, 211 | style: descriptionStyle.copyWith( 212 | fontSize: 20.0, color: Colors.black54), 213 | ), 214 | ), 215 | ], 216 | ))), 217 | Container( 218 | margin: EdgeInsets.all(10.0), 219 | child: Card( 220 | child: Container( 221 | padding: 222 | const EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 20.0), 223 | child: DefaultTextStyle( 224 | style: descriptionStyle, 225 | child: Row( 226 | mainAxisSize: MainAxisSize.max, 227 | mainAxisAlignment: 228 | MainAxisAlignment.spaceBetween, 229 | children: [ 230 | // three line description 231 | Row( 232 | children: [ 233 | IconButton( 234 | icon: Icon(_add_icon(), 235 | color: Colors.amber.shade500), 236 | onPressed: () { 237 | item = item + 1; 238 | }, 239 | ), 240 | Container( 241 | margin: EdgeInsets.only(left: 2.0), 242 | ), 243 | Text( 244 | item.toString(), 245 | style: descriptionStyle.copyWith( 246 | fontSize: 20.0, 247 | color: Colors.black87), 248 | ), 249 | Container( 250 | margin: EdgeInsets.only(right: 2.0), 251 | ), 252 | IconButton( 253 | icon: Icon(_sub_icon(), 254 | color: Colors.amber.shade500), 255 | onPressed: () { 256 | if (item < 0) { 257 | } else { 258 | item = item - 1; 259 | } 260 | }, 261 | ), 262 | ], 263 | ), 264 | 265 | Padding( 266 | padding: const EdgeInsets.only(bottom: 8.0), 267 | child: Container( 268 | alignment: Alignment.center, 269 | child: OutlineButton( 270 | borderSide: BorderSide( 271 | color: Colors.amber.shade500), 272 | child: const Text('Add'), 273 | textColor: Colors.amber.shade500, 274 | onPressed: () { 275 | Navigator.push( 276 | context, 277 | MaterialPageRoute( 278 | builder: (context) => 279 | Cart_screen())); 280 | }, 281 | shape: OutlineInputBorder( 282 | borderRadius: 283 | BorderRadius.circular(30.0), 284 | )), 285 | ), 286 | ), 287 | ], 288 | ))))), 289 | Container( 290 | padding: const EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 0.0), 291 | child: DefaultTextStyle( 292 | style: descriptionStyle, 293 | child: Row( 294 | mainAxisSize: MainAxisSize.max, 295 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 296 | children: [ 297 | // three line description 298 | Padding( 299 | padding: const EdgeInsets.only(bottom: 8.0), 300 | child: Text( 301 | 'Details', 302 | style: descriptionStyle.copyWith( 303 | fontSize: 20.0, 304 | fontWeight: FontWeight.bold, 305 | color: Colors.black87), 306 | ), 307 | ), 308 | ], 309 | ))), 310 | Container( 311 | padding: const EdgeInsets.fromLTRB(20.0, 10.0, 10.0, 0.0), 312 | child: Text( 313 | "Grocery stores also offer non-perishable foods that are packaged in bottles, boxes, and cans; some also have bakeries, butchers, delis, and fresh produce. Large grocery stores that stock significant amounts of non-food products, such as clothing and household items, are called supermarkets. Some large supermarkets also include a pharmacy, and customer service, redemption, and electronics sections.", 314 | maxLines: 10, 315 | style: TextStyle(fontSize: 13.0, color: Colors.black38))), 316 | ])))); 317 | } 318 | } 319 | -------------------------------------------------------------------------------- /f_groceries/lib/signup_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:f_groceries/logind_signup.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class Signup_Screen extends StatefulWidget { 5 | final Key fieldKey; 6 | final String hintText; 7 | final String labelText; 8 | final String helperText; 9 | final FormFieldSetter onSaved; 10 | final FormFieldValidator validator; 11 | final ValueChanged onFieldSubmitted; 12 | 13 | const Signup_Screen( 14 | {Key key, 15 | this.fieldKey, 16 | this.hintText, 17 | this.labelText, 18 | this.helperText, 19 | this.onSaved, 20 | this.validator, 21 | this.onFieldSubmitted}) 22 | : super(key: key); 23 | 24 | ThemeData buildTheme() { 25 | final ThemeData base = ThemeData(); 26 | return base.copyWith( 27 | hintColor: Colors.red, 28 | inputDecorationTheme: InputDecorationTheme( 29 | labelStyle: TextStyle(color: Colors.yellow, fontSize: 24.0), 30 | ), 31 | ); 32 | } 33 | 34 | @override 35 | State createState() => signup(); 36 | } 37 | 38 | class signup extends State { 39 | ShapeBorder shape; 40 | final scaffoldKey = GlobalKey(); 41 | final formKey = GlobalKey(); 42 | 43 | String _email; 44 | String _password; 45 | String _firstname; 46 | String _lastname; 47 | String _phone; 48 | final GlobalKey _formKey = GlobalKey(); 49 | 50 | bool _autovalidate = false; 51 | bool _formWasEdited = false; 52 | 53 | @override 54 | Widget build(BuildContext context) { 55 | // TODO: implement build 56 | bool _obscureText = true; 57 | return Scaffold( 58 | key: scaffoldKey, 59 | appBar: AppBar( 60 | title: Text('Signup'), 61 | backgroundColor: Colors.white, 62 | ), 63 | body: SafeArea( 64 | child: SingleChildScrollView( 65 | child: Column( 66 | mainAxisSize: MainAxisSize.min, 67 | children: [ 68 | Container( 69 | height: 50.0, 70 | alignment: Alignment.topLeft, 71 | margin: EdgeInsets.only(top: 7.0), 72 | child: Row( 73 | children: [ 74 | _verticalD(), 75 | GestureDetector( 76 | onTap: () { 77 | Navigator.push( 78 | context, 79 | MaterialPageRoute( 80 | builder: (context) => Login_Screen())); 81 | }, 82 | child: Text( 83 | 'Login', 84 | style: TextStyle( 85 | fontSize: 20.0, 86 | color: Colors.black26, 87 | fontWeight: FontWeight.bold), 88 | ), 89 | ), 90 | _verticalD(), 91 | GestureDetector( 92 | onTap: () { 93 | /*Navigator.push( 94 | context, 95 | MaterialPageRoute( 96 | builder: (context) => signup_screen()));*/ 97 | }, 98 | child: Text( 99 | 'Signup', 100 | style: TextStyle( 101 | fontSize: 20.0, 102 | color: Colors.black87, 103 | fontWeight: FontWeight.bold), 104 | ), 105 | ), 106 | ], 107 | ), 108 | ), 109 | SafeArea( 110 | top: false, 111 | bottom: false, 112 | child: Card( 113 | elevation: 5.0, 114 | child: Form( 115 | key: formKey, 116 | autovalidate: _autovalidate, 117 | child: SingleChildScrollView( 118 | padding: const EdgeInsets.all(16.0), 119 | child: Column( 120 | crossAxisAlignment: CrossAxisAlignment.stretch, 121 | children: [ 122 | const SizedBox(height: 24.0), 123 | TextFormField( 124 | decoration: const InputDecoration( 125 | border: UnderlineInputBorder( 126 | borderSide: BorderSide( 127 | color: Colors.black87, 128 | style: BorderStyle.solid), 129 | ), 130 | focusedBorder: UnderlineInputBorder( 131 | borderSide: BorderSide( 132 | color: Colors.black87, 133 | style: BorderStyle.solid), 134 | ), 135 | icon: Icon( 136 | Icons.person, 137 | color: Colors.black38, 138 | ), 139 | hintText: 'Enter first name', 140 | labelText: 'First Name', 141 | labelStyle: 142 | TextStyle(color: Colors.black54)), 143 | keyboardType: TextInputType.text, 144 | validator: (val) => val.length < 1 145 | ? 'Enter first name' 146 | : null, 147 | onSaved: (val) => _firstname = val, 148 | ), 149 | const SizedBox(height: 24.0), 150 | TextFormField( 151 | decoration: const InputDecoration( 152 | border: UnderlineInputBorder( 153 | borderSide: BorderSide( 154 | color: Colors.black87, 155 | style: BorderStyle.solid), 156 | ), 157 | focusedBorder: UnderlineInputBorder( 158 | borderSide: BorderSide( 159 | color: Colors.black87, 160 | style: BorderStyle.solid), 161 | ), 162 | icon: Icon( 163 | Icons.perm_identity, 164 | color: Colors.black38, 165 | ), 166 | hintText: 'Enter last name', 167 | labelText: 'Last Name', 168 | labelStyle: 169 | TextStyle(color: Colors.black54)), 170 | keyboardType: TextInputType.text, 171 | validator: (val) => val.length < 1 172 | ? 'Enter last name' 173 | : null, 174 | onSaved: (val) => _lastname = val, 175 | ), 176 | const SizedBox(height: 24.0), 177 | TextFormField( 178 | decoration: const InputDecoration( 179 | border: UnderlineInputBorder( 180 | borderSide: BorderSide( 181 | color: Colors.black87, 182 | style: BorderStyle.solid), 183 | ), 184 | focusedBorder: UnderlineInputBorder( 185 | borderSide: BorderSide( 186 | color: Colors.black87, 187 | style: BorderStyle.solid), 188 | ), 189 | icon: Icon( 190 | Icons.email, 191 | color: Colors.black38, 192 | ), 193 | hintText: 'Your email address', 194 | labelText: 'E-mail', 195 | labelStyle: 196 | TextStyle(color: Colors.black54)), 197 | keyboardType: TextInputType.emailAddress, 198 | validator: validateEmail, 199 | onSaved: (String val) { 200 | _email = val; 201 | }, 202 | ), 203 | const SizedBox(height: 24.0), 204 | TextFormField( 205 | decoration: const InputDecoration( 206 | border: UnderlineInputBorder( 207 | borderSide: BorderSide( 208 | color: Colors.black87, 209 | style: BorderStyle.solid), 210 | ), 211 | focusedBorder: UnderlineInputBorder( 212 | borderSide: BorderSide( 213 | color: Colors.black87, 214 | style: BorderStyle.solid), 215 | ), 216 | icon: Icon( 217 | Icons.phone_android, 218 | color: Colors.black38, 219 | ), 220 | hintText: 'Your phone number', 221 | labelText: 'Phone', 222 | labelStyle: 223 | TextStyle(color: Colors.black54)), 224 | keyboardType: TextInputType.phone, 225 | validator: validateMobile, 226 | onSaved: (String val) { 227 | _phone = val; 228 | }, 229 | ), 230 | const SizedBox(height: 24.0), 231 | TextFormField( 232 | obscureText: true, 233 | decoration: const InputDecoration( 234 | border: UnderlineInputBorder( 235 | borderSide: BorderSide( 236 | color: Colors.black87, 237 | style: BorderStyle.solid), 238 | ), 239 | focusedBorder: UnderlineInputBorder( 240 | borderSide: BorderSide( 241 | color: Colors.black87, 242 | style: BorderStyle.solid), 243 | ), 244 | icon: Icon( 245 | Icons.lock, 246 | color: Colors.black38, 247 | ), 248 | hintText: 'Your password', 249 | labelText: 'Password', 250 | labelStyle: 251 | TextStyle(color: Colors.black54)), 252 | validator: (val) => val.length < 6 253 | ? 'Password too short.' 254 | : null, 255 | onSaved: (val) => _password = val, 256 | ), 257 | SizedBox( 258 | height: 35.0, 259 | ), 260 | Container( 261 | child: Row( 262 | mainAxisSize: MainAxisSize.max, 263 | mainAxisAlignment: MainAxisAlignment.end, 264 | children: [ 265 | Container( 266 | alignment: Alignment.bottomRight, 267 | child: GestureDetector( 268 | onTap: () { 269 | _submit(); 270 | }, 271 | child: Text( 272 | 'SIGNUP', 273 | style: TextStyle( 274 | color: Colors.orange, 275 | fontSize: 20.0, 276 | fontWeight: FontWeight.bold), 277 | ), 278 | ), 279 | ), 280 | ], 281 | ), 282 | ), 283 | 284 | /* const SizedBox(height:24.0), 285 | 286 | Row( 287 | crossAxisAlignment: CrossAxisAlignment.stretch, 288 | children: [ 289 | 290 | GestureDetector( 291 | onTap: (){ 292 | 293 | }, 294 | child: Text('FORGOT PASSWORD?',style: TextStyle( 295 | color: Colors.blueAccent,fontSize: 13.0 296 | ),), 297 | ), 298 | 299 | GestureDetector( 300 | onTap: (){ 301 | 302 | }, 303 | child: Text('LOGIN',style: TextStyle( 304 | color: Colors.orange,fontSize: 15.0 305 | ),), 306 | ), 307 | 308 | ], 309 | ) 310 | 311 | 312 | */ 313 | ]), 314 | )) //login, 315 | )) 316 | ], 317 | ), 318 | ))); 319 | } 320 | 321 | String validateEmail(String value) { 322 | Pattern pattern = 323 | r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$'; 324 | RegExp regex = RegExp(pattern); 325 | if (!regex.hasMatch(value)) 326 | return 'Enter Valid Email'; 327 | else 328 | return null; 329 | } 330 | 331 | String validateMobile(String value) { 332 | // Indian Mobile number are of 10 digit only 333 | if (value.length != 10) 334 | return 'Mobile Number must be of 10 digit'; 335 | else 336 | return null; 337 | } 338 | 339 | void _submit() { 340 | final form = formKey.currentState; 341 | 342 | if (form.validate()) { 343 | form.save(); 344 | 345 | // Email & password matched our validation rules 346 | // and are saved to _email and _password fields. 347 | _performLogin(); 348 | } else { 349 | showInSnackBar('Please fix the errors in red before submitting.'); 350 | } 351 | } 352 | 353 | void showInSnackBar(String value) { 354 | scaffoldKey.currentState.showSnackBar(SnackBar(content: Text(value))); 355 | } 356 | 357 | void _performLogin() { 358 | // This is just a demo, so no actual login here. 359 | /* final snackbar = SnackBar( 360 | content: Text('Email: $_email, password: $_password'), 361 | ); 362 | 363 | scaffoldKey.currentState.showSnackBar(snackbar);*/ 364 | Navigator.push( 365 | context, MaterialPageRoute(builder: (context) => Login_Screen())); 366 | } 367 | 368 | _verticalD() => Container( 369 | margin: EdgeInsets.only(left: 10.0, right: 0.0, top: 0.0, bottom: 0.0), 370 | ); 371 | } 372 | -------------------------------------------------------------------------------- /f_groceries/ios/Runner.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 11 | 2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */ = {isa = PBXBuildFile; fileRef = 2D5378251FAA1A9400D5DBA9 /* flutter_assets */; }; 12 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 13 | 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; 14 | 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 15 | 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; 16 | 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 17 | 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; 18 | 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; 19 | 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; 20 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 21 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 22 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; 23 | /* End PBXBuildFile section */ 24 | 25 | /* Begin PBXCopyFilesBuildPhase section */ 26 | 9705A1C41CF9048500538489 /* Embed Frameworks */ = { 27 | isa = PBXCopyFilesBuildPhase; 28 | buildActionMask = 2147483647; 29 | dstPath = ""; 30 | dstSubfolderSpec = 10; 31 | files = ( 32 | 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */, 33 | 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */, 34 | ); 35 | name = "Embed Frameworks"; 36 | runOnlyForDeploymentPostprocessing = 0; 37 | }; 38 | /* End PBXCopyFilesBuildPhase section */ 39 | 40 | /* Begin PBXFileReference section */ 41 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 42 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 43 | 2D5378251FAA1A9400D5DBA9 /* flutter_assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = flutter_assets; path = Flutter/flutter_assets; sourceTree = SOURCE_ROOT; }; 44 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 45 | 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; }; 46 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 47 | 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 48 | 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 49 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 50 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 51 | 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; }; 52 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 53 | 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 54 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 55 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 56 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 57 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 58 | /* End PBXFileReference section */ 59 | 60 | /* Begin PBXFrameworksBuildPhase section */ 61 | 97C146EB1CF9000F007C117D /* Frameworks */ = { 62 | isa = PBXFrameworksBuildPhase; 63 | buildActionMask = 2147483647; 64 | files = ( 65 | 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, 66 | 3B80C3941E831B6300D905FE /* App.framework in Frameworks */, 67 | ); 68 | runOnlyForDeploymentPostprocessing = 0; 69 | }; 70 | /* End PBXFrameworksBuildPhase section */ 71 | 72 | /* Begin PBXGroup section */ 73 | 9740EEB11CF90186004384FC /* Flutter */ = { 74 | isa = PBXGroup; 75 | children = ( 76 | 2D5378251FAA1A9400D5DBA9 /* flutter_assets */, 77 | 3B80C3931E831B6300D905FE /* App.framework */, 78 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 79 | 9740EEBA1CF902C7004384FC /* Flutter.framework */, 80 | 9740EEB21CF90195004384FC /* Debug.xcconfig */, 81 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 82 | 9740EEB31CF90195004384FC /* Generated.xcconfig */, 83 | ); 84 | name = Flutter; 85 | sourceTree = ""; 86 | }; 87 | 97C146E51CF9000F007C117D = { 88 | isa = PBXGroup; 89 | children = ( 90 | 9740EEB11CF90186004384FC /* Flutter */, 91 | 97C146F01CF9000F007C117D /* Runner */, 92 | 97C146EF1CF9000F007C117D /* Products */, 93 | CF3B75C9A7D2FA2A4C99F110 /* Frameworks */, 94 | ); 95 | sourceTree = ""; 96 | }; 97 | 97C146EF1CF9000F007C117D /* Products */ = { 98 | isa = PBXGroup; 99 | children = ( 100 | 97C146EE1CF9000F007C117D /* Runner.app */, 101 | ); 102 | name = Products; 103 | sourceTree = ""; 104 | }; 105 | 97C146F01CF9000F007C117D /* Runner */ = { 106 | isa = PBXGroup; 107 | children = ( 108 | 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, 109 | 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */, 110 | 97C146FA1CF9000F007C117D /* Main.storyboard */, 111 | 97C146FD1CF9000F007C117D /* Assets.xcassets */, 112 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 113 | 97C147021CF9000F007C117D /* Info.plist */, 114 | 97C146F11CF9000F007C117D /* Supporting Files */, 115 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 116 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 117 | ); 118 | path = Runner; 119 | sourceTree = ""; 120 | }; 121 | 97C146F11CF9000F007C117D /* Supporting Files */ = { 122 | isa = PBXGroup; 123 | children = ( 124 | 97C146F21CF9000F007C117D /* main.m */, 125 | ); 126 | name = "Supporting Files"; 127 | sourceTree = ""; 128 | }; 129 | /* End PBXGroup section */ 130 | 131 | /* Begin PBXNativeTarget section */ 132 | 97C146ED1CF9000F007C117D /* Runner */ = { 133 | isa = PBXNativeTarget; 134 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; 135 | buildPhases = ( 136 | 9740EEB61CF901F6004384FC /* Run Script */, 137 | 97C146EA1CF9000F007C117D /* Sources */, 138 | 97C146EB1CF9000F007C117D /* Frameworks */, 139 | 97C146EC1CF9000F007C117D /* Resources */, 140 | 9705A1C41CF9048500538489 /* Embed Frameworks */, 141 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */, 142 | ); 143 | buildRules = ( 144 | ); 145 | dependencies = ( 146 | ); 147 | name = Runner; 148 | productName = Runner; 149 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */; 150 | productType = "com.apple.product-type.application"; 151 | }; 152 | /* End PBXNativeTarget section */ 153 | 154 | /* Begin PBXProject section */ 155 | 97C146E61CF9000F007C117D /* Project object */ = { 156 | isa = PBXProject; 157 | attributes = { 158 | LastUpgradeCheck = 0910; 159 | ORGANIZATIONNAME = "The Chromium Authors"; 160 | TargetAttributes = { 161 | 97C146ED1CF9000F007C117D = { 162 | CreatedOnToolsVersion = 7.3.1; 163 | }; 164 | }; 165 | }; 166 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; 167 | compatibilityVersion = "Xcode 3.2"; 168 | developmentRegion = English; 169 | hasScannedForEncodings = 0; 170 | knownRegions = ( 171 | en, 172 | Base, 173 | ); 174 | mainGroup = 97C146E51CF9000F007C117D; 175 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */; 176 | projectDirPath = ""; 177 | projectRoot = ""; 178 | targets = ( 179 | 97C146ED1CF9000F007C117D /* Runner */, 180 | ); 181 | }; 182 | /* End PBXProject section */ 183 | 184 | /* Begin PBXResourcesBuildPhase section */ 185 | 97C146EC1CF9000F007C117D /* Resources */ = { 186 | isa = PBXResourcesBuildPhase; 187 | buildActionMask = 2147483647; 188 | files = ( 189 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 190 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 191 | 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */, 192 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 193 | 2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */, 194 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, 195 | ); 196 | runOnlyForDeploymentPostprocessing = 0; 197 | }; 198 | /* End PBXResourcesBuildPhase section */ 199 | 200 | /* Begin PBXShellScriptBuildPhase section */ 201 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { 202 | isa = PBXShellScriptBuildPhase; 203 | buildActionMask = 2147483647; 204 | files = ( 205 | ); 206 | inputPaths = ( 207 | ); 208 | name = "Thin Binary"; 209 | outputPaths = ( 210 | ); 211 | runOnlyForDeploymentPostprocessing = 0; 212 | shellPath = /bin/sh; 213 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; 214 | }; 215 | 9740EEB61CF901F6004384FC /* Run Script */ = { 216 | isa = PBXShellScriptBuildPhase; 217 | buildActionMask = 2147483647; 218 | files = ( 219 | ); 220 | inputPaths = ( 221 | ); 222 | name = "Run Script"; 223 | outputPaths = ( 224 | ); 225 | runOnlyForDeploymentPostprocessing = 0; 226 | shellPath = /bin/sh; 227 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; 228 | }; 229 | /* End PBXShellScriptBuildPhase section */ 230 | 231 | /* Begin PBXSourcesBuildPhase section */ 232 | 97C146EA1CF9000F007C117D /* Sources */ = { 233 | isa = PBXSourcesBuildPhase; 234 | buildActionMask = 2147483647; 235 | files = ( 236 | 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */, 237 | 97C146F31CF9000F007C117D /* main.m in Sources */, 238 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, 239 | ); 240 | runOnlyForDeploymentPostprocessing = 0; 241 | }; 242 | /* End PBXSourcesBuildPhase section */ 243 | 244 | /* Begin PBXVariantGroup section */ 245 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = { 246 | isa = PBXVariantGroup; 247 | children = ( 248 | 97C146FB1CF9000F007C117D /* Base */, 249 | ); 250 | name = Main.storyboard; 251 | sourceTree = ""; 252 | }; 253 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { 254 | isa = PBXVariantGroup; 255 | children = ( 256 | 97C147001CF9000F007C117D /* Base */, 257 | ); 258 | name = LaunchScreen.storyboard; 259 | sourceTree = ""; 260 | }; 261 | /* End PBXVariantGroup section */ 262 | 263 | /* Begin XCBuildConfiguration section */ 264 | 97C147031CF9000F007C117D /* Debug */ = { 265 | isa = XCBuildConfiguration; 266 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; 267 | buildSettings = { 268 | ALWAYS_SEARCH_USER_PATHS = NO; 269 | CLANG_ANALYZER_NONNULL = YES; 270 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 271 | CLANG_CXX_LIBRARY = "libc++"; 272 | CLANG_ENABLE_MODULES = YES; 273 | CLANG_ENABLE_OBJC_ARC = YES; 274 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 275 | CLANG_WARN_BOOL_CONVERSION = YES; 276 | CLANG_WARN_COMMA = YES; 277 | CLANG_WARN_CONSTANT_CONVERSION = YES; 278 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 279 | CLANG_WARN_EMPTY_BODY = YES; 280 | CLANG_WARN_ENUM_CONVERSION = YES; 281 | CLANG_WARN_INFINITE_RECURSION = YES; 282 | CLANG_WARN_INT_CONVERSION = YES; 283 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 284 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 285 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 286 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 287 | CLANG_WARN_STRICT_PROTOTYPES = YES; 288 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 289 | CLANG_WARN_UNREACHABLE_CODE = YES; 290 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 291 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 292 | COPY_PHASE_STRIP = NO; 293 | DEBUG_INFORMATION_FORMAT = dwarf; 294 | ENABLE_STRICT_OBJC_MSGSEND = YES; 295 | ENABLE_TESTABILITY = YES; 296 | GCC_C_LANGUAGE_STANDARD = gnu99; 297 | GCC_DYNAMIC_NO_PIC = NO; 298 | GCC_NO_COMMON_BLOCKS = YES; 299 | GCC_OPTIMIZATION_LEVEL = 0; 300 | GCC_PREPROCESSOR_DEFINITIONS = ( 301 | "DEBUG=1", 302 | "$(inherited)", 303 | ); 304 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 305 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 306 | GCC_WARN_UNDECLARED_SELECTOR = YES; 307 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 308 | GCC_WARN_UNUSED_FUNCTION = YES; 309 | GCC_WARN_UNUSED_VARIABLE = YES; 310 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 311 | MTL_ENABLE_DEBUG_INFO = YES; 312 | ONLY_ACTIVE_ARCH = YES; 313 | SDKROOT = iphoneos; 314 | TARGETED_DEVICE_FAMILY = "1,2"; 315 | }; 316 | name = Debug; 317 | }; 318 | 97C147041CF9000F007C117D /* Release */ = { 319 | isa = XCBuildConfiguration; 320 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 321 | buildSettings = { 322 | ALWAYS_SEARCH_USER_PATHS = NO; 323 | CLANG_ANALYZER_NONNULL = YES; 324 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 325 | CLANG_CXX_LIBRARY = "libc++"; 326 | CLANG_ENABLE_MODULES = YES; 327 | CLANG_ENABLE_OBJC_ARC = YES; 328 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 329 | CLANG_WARN_BOOL_CONVERSION = YES; 330 | CLANG_WARN_COMMA = YES; 331 | CLANG_WARN_CONSTANT_CONVERSION = YES; 332 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 333 | CLANG_WARN_EMPTY_BODY = YES; 334 | CLANG_WARN_ENUM_CONVERSION = YES; 335 | CLANG_WARN_INFINITE_RECURSION = YES; 336 | CLANG_WARN_INT_CONVERSION = YES; 337 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 338 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 339 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 340 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 341 | CLANG_WARN_STRICT_PROTOTYPES = YES; 342 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 343 | CLANG_WARN_UNREACHABLE_CODE = YES; 344 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 345 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 346 | COPY_PHASE_STRIP = NO; 347 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 348 | ENABLE_NS_ASSERTIONS = NO; 349 | ENABLE_STRICT_OBJC_MSGSEND = YES; 350 | GCC_C_LANGUAGE_STANDARD = gnu99; 351 | GCC_NO_COMMON_BLOCKS = YES; 352 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 353 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 354 | GCC_WARN_UNDECLARED_SELECTOR = YES; 355 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 356 | GCC_WARN_UNUSED_FUNCTION = YES; 357 | GCC_WARN_UNUSED_VARIABLE = YES; 358 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 359 | MTL_ENABLE_DEBUG_INFO = NO; 360 | SDKROOT = iphoneos; 361 | TARGETED_DEVICE_FAMILY = "1,2"; 362 | VALIDATE_PRODUCT = YES; 363 | }; 364 | name = Release; 365 | }; 366 | 97C147061CF9000F007C117D /* Debug */ = { 367 | isa = XCBuildConfiguration; 368 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; 369 | buildSettings = { 370 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 371 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 372 | ENABLE_BITCODE = NO; 373 | FRAMEWORK_SEARCH_PATHS = ( 374 | "$(inherited)", 375 | "$(PROJECT_DIR)/Flutter", 376 | ); 377 | INFOPLIST_FILE = Runner/Info.plist; 378 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 379 | LIBRARY_SEARCH_PATHS = ( 380 | "$(inherited)", 381 | "$(PROJECT_DIR)/Flutter", 382 | ); 383 | PRODUCT_BUNDLE_IDENTIFIER = com.imperialinfosys.fGroceries; 384 | PRODUCT_NAME = "$(TARGET_NAME)"; 385 | VERSIONING_SYSTEM = "apple-generic"; 386 | }; 387 | name = Debug; 388 | }; 389 | 97C147071CF9000F007C117D /* Release */ = { 390 | isa = XCBuildConfiguration; 391 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 392 | buildSettings = { 393 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 394 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 395 | ENABLE_BITCODE = NO; 396 | FRAMEWORK_SEARCH_PATHS = ( 397 | "$(inherited)", 398 | "$(PROJECT_DIR)/Flutter", 399 | ); 400 | INFOPLIST_FILE = Runner/Info.plist; 401 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 402 | LIBRARY_SEARCH_PATHS = ( 403 | "$(inherited)", 404 | "$(PROJECT_DIR)/Flutter", 405 | ); 406 | PRODUCT_BUNDLE_IDENTIFIER = com.imperialinfosys.fGroceries; 407 | PRODUCT_NAME = "$(TARGET_NAME)"; 408 | VERSIONING_SYSTEM = "apple-generic"; 409 | }; 410 | name = Release; 411 | }; 412 | /* End XCBuildConfiguration section */ 413 | 414 | /* Begin XCConfigurationList section */ 415 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { 416 | isa = XCConfigurationList; 417 | buildConfigurations = ( 418 | 97C147031CF9000F007C117D /* Debug */, 419 | 97C147041CF9000F007C117D /* Release */, 420 | ); 421 | defaultConfigurationIsVisible = 0; 422 | defaultConfigurationName = Release; 423 | }; 424 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { 425 | isa = XCConfigurationList; 426 | buildConfigurations = ( 427 | 97C147061CF9000F007C117D /* Debug */, 428 | 97C147071CF9000F007C117D /* Release */, 429 | ); 430 | defaultConfigurationIsVisible = 0; 431 | defaultConfigurationName = Release; 432 | }; 433 | /* End XCConfigurationList section */ 434 | }; 435 | rootObject = 97C146E61CF9000F007C117D /* Project object */; 436 | } 437 | --------------------------------------------------------------------------------