diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..61b6c4d --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,29 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/.gitignore b/android/.gitignore index bc2100d..6f56801 100644 --- a/android/.gitignore +++ b/android/.gitignore @@ -5,3 +5,9 @@ gradle-wrapper.jar /gradlew.bat /local.properties GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle b/android/app/build.gradle index 56fdea7..e504d38 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -26,24 +26,28 @@ apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 28 + compileSdkVersion flutter.compileSdkVersion - sourceSets { - main.java.srcDirs += 'src/main/kotlin' + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' } - lintOptions { - disable 'InvalidPackage' + sourceSets { + main.java.srcDirs += 'src/main/kotlin' } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.doctor_booking_app" - minSdkVersion 16 - targetSdkVersion 28 + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { @@ -61,7 +65,4 @@ flutter { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' } diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index c5fbc8a..f264829 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,21 +1,25 @@ - - + + diff --git a/android/app/src/main/kotlin/com/example/doctor_booking_app/MainActivity.kt b/android/app/src/main/kotlin/com/example/doctor_booking_app/MainActivity.kt index b5105d4..191fe3c 100644 --- a/android/app/src/main/kotlin/com/example/doctor_booking_app/MainActivity.kt +++ b/android/app/src/main/kotlin/com/example/doctor_booking_app/MainActivity.kt @@ -1,12 +1,6 @@ package com.example.doctor_booking_app -import androidx.annotation.NonNull; import io.flutter.embedding.android.FlutterActivity -import io.flutter.embedding.engine.FlutterEngine -import io.flutter.plugins.GeneratedPluginRegistrant class MainActivity: FlutterActivity() { - override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { - GeneratedPluginRegistrant.registerWith(flutterEngine); - } } diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..3db14bb --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index 00fa441..d460d1e 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -1,8 +1,18 @@ - + + diff --git a/android/build.gradle b/android/build.gradle index 3100ad2..4256f91 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,12 +1,12 @@ buildscript { - ext.kotlin_version = '1.3.50' + ext.kotlin_version = '1.6.10' repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.0' + classpath 'com.android.tools.build:gradle:4.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -14,7 +14,7 @@ buildscript { allprojects { repositories { google() - jcenter() + mavenCentral() } } diff --git a/android/gradle.properties b/android/gradle.properties index 38c8d45..94adc3a 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,4 +1,3 @@ org.gradle.jvmargs=-Xmx1536M -android.enableR8=true android.useAndroidX=true android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 296b146..bc6a58a 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip diff --git a/android/settings.gradle b/android/settings.gradle index 5a2f14f..44e62bc 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,15 +1,11 @@ include ':app' -def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() -def plugins = new Properties() -def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') -if (pluginsFile.exists()) { - pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } -} +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } -plugins.each { name, path -> - def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() - include ":$name" - project(":$name").projectDir = pluginDirectory -} +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/lib/data/data.dart b/lib/data/data.dart index 913a980..426926c 100644 --- a/lib/data/data.dart +++ b/lib/data/data.dart @@ -1,9 +1,8 @@ import 'package:doctor_booking_app/model/speciality.dart'; import 'package:flutter/cupertino.dart'; -List getSpeciality(){ - - List specialities = new List(); +List getSpeciality() { + List specialities = []; SpecialityModel specialityModel = new SpecialityModel(); //1 @@ -34,4 +33,4 @@ List getSpeciality(){ specialityModel = new SpecialityModel(); return specialities; -} \ No newline at end of file +} diff --git a/lib/model/speciality.dart b/lib/model/speciality.dart index 56474fe..20c2fe6 100644 --- a/lib/model/speciality.dart +++ b/lib/model/speciality.dart @@ -2,9 +2,9 @@ import 'package:flutter/cupertino.dart'; class SpecialityModel{ - String imgAssetPath; - String speciality; - int noOfDoctors; - Color backgroundColor; + String? imgAssetPath; + String? speciality; + int? noOfDoctors; + Color? backgroundColor; SpecialityModel({this.imgAssetPath,this.speciality,this.noOfDoctors, this.backgroundColor}); } \ No newline at end of file diff --git a/lib/views/doctor_info.dart b/lib/views/doctor_info.dart index 52cad27..9882d51 100644 --- a/lib/views/doctor_info.dart +++ b/lib/views/doctor_info.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; class DoctorsInfo extends StatefulWidget { @override @@ -12,10 +13,11 @@ class _DoctorsInfoState extends State { appBar: AppBar( backgroundColor: Colors.transparent, elevation: 0.0, - brightness: Brightness.light, - iconTheme: IconThemeData( - color: Colors.black87 + systemOverlayStyle: SystemUiOverlayStyle( + systemNavigationBarColor: Colors.blue, // Navigation bar + statusBarColor: Colors.red, // Status bar ), + iconTheme: IconThemeData(color: Colors.black87), ), body: SingleChildScrollView( child: Container( @@ -108,7 +110,8 @@ class _DoctorsInfoState extends State { height: 3, ), Container( - width: MediaQuery.of(context).size.width - 268, + width: + MediaQuery.of(context).size.width - 268, child: Text( "House # 2, Road # 5, Green Road Dhanmondi, Dhaka, Bangladesh", style: TextStyle(color: Colors.grey), @@ -139,7 +142,8 @@ class _DoctorsInfoState extends State { height: 3, ), Container( - width: MediaQuery.of(context).size.width - 268, + width: + MediaQuery.of(context).size.width - 268, child: Text( '''Monday - Friday Open till 7 Pm''', @@ -171,7 +175,8 @@ Open till 7 Pm''', children: [ Expanded( child: Container( - padding: EdgeInsets.symmetric(vertical: 24,horizontal: 16), + padding: + EdgeInsets.symmetric(vertical: 24, horizontal: 16), decoration: BoxDecoration( color: Color(0xffFBB97C), borderRadius: BorderRadius.circular(20)), @@ -179,31 +184,33 @@ Open till 7 Pm''', mainAxisAlignment: MainAxisAlignment.center, children: [ Container( - padding: EdgeInsets.all(8), - decoration: BoxDecoration( - color: Color(0xffFCCA9B), - borderRadius: BorderRadius.circular(16) - ), + padding: EdgeInsets.all(8), + decoration: BoxDecoration( + color: Color(0xffFCCA9B), + borderRadius: BorderRadius.circular(16)), child: Image.asset("assets/list.png")), SizedBox( width: 16, ), Container( - width: MediaQuery.of(context).size.width/2 - 130, + width: MediaQuery.of(context).size.width / 2 - 130, child: Text( "List Of Schedule", - style: TextStyle(color: Colors.white, - fontSize: 17), + style: + TextStyle(color: Colors.white, fontSize: 17), ), ) ], ), ), ), - SizedBox(width: 16,), + SizedBox( + width: 16, + ), Expanded( child: Container( - padding: EdgeInsets.symmetric(vertical: 24,horizontal: 16), + padding: + EdgeInsets.symmetric(vertical: 24, horizontal: 16), decoration: BoxDecoration( color: Color(0xffA5A5A5), borderRadius: BorderRadius.circular(20)), @@ -214,18 +221,17 @@ Open till 7 Pm''', padding: EdgeInsets.all(8), decoration: BoxDecoration( color: Color(0xffBBBBBB), - borderRadius: BorderRadius.circular(16) - ), + borderRadius: BorderRadius.circular(16)), child: Image.asset("assets/list.png")), SizedBox( width: 16, ), Container( - width: MediaQuery.of(context).size.width/2 - 130, + width: MediaQuery.of(context).size.width / 2 - 130, child: Text( "Doctor's Daily Post", - style: TextStyle(color: Colors.white, - fontSize: 17), + style: + TextStyle(color: Colors.white, fontSize: 17), ), ) ], @@ -243,8 +249,8 @@ Open till 7 Pm''', } class IconTile extends StatelessWidget { - final String imgAssetPath; - final Color backColor; + final String? imgAssetPath; + final Color? backColor; IconTile({this.imgAssetPath, this.backColor}); @@ -258,7 +264,7 @@ class IconTile extends StatelessWidget { decoration: BoxDecoration( color: backColor, borderRadius: BorderRadius.circular(15)), child: Image.asset( - imgAssetPath, + imgAssetPath!, width: 20, ), ), diff --git a/lib/views/home.dart b/lib/views/home.dart index 08e7b6e..45cd6fd 100644 --- a/lib/views/home.dart +++ b/lib/views/home.dart @@ -2,23 +2,22 @@ import 'package:doctor_booking_app/data/data.dart'; import 'package:doctor_booking_app/model/speciality.dart'; import 'package:doctor_booking_app/views/doctor_info.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; -String selectedCategorie= "Adults"; +String? selectedCategorie = "Adults"; class HomePage extends StatefulWidget { @override - _HomePageState createState() => _HomePageState(); + HomePageState createState() => HomePageState(); } -class _HomePageState extends State { +class HomePageState extends State { + List categories = ["Adults", "Childrens", "Womens", "Mens"]; - List categories = ["Adults","Childrens","Womens","Mens"]; - - List specialities; + late List specialities; @override void initState() { - // TODO: implement initState super.initState(); specialities = getSpeciality(); @@ -30,69 +29,84 @@ class _HomePageState extends State { appBar: AppBar( backgroundColor: Colors.white, elevation: 0.0, - brightness: Brightness.light, - iconTheme: IconThemeData( - color: Colors.black87 + systemOverlayStyle: SystemUiOverlayStyle( + systemNavigationBarColor: Colors.blue, // Navigation bar + statusBarColor: Colors.red, // Status bar ), + iconTheme: IconThemeData(color: Colors.black87), ), - drawer: Drawer( - child: Container()// Populate the Drawer in the next step. - ), + drawer: Drawer(child: Container() // Populate the Drawer in the next step. + ), body: SingleChildScrollView( child: Container( color: Colors.white, - padding: EdgeInsets.symmetric(vertical: 10,horizontal: 24), + padding: EdgeInsets.symmetric(vertical: 10, horizontal: 24), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - SizedBox(height: 10,), - Text("Find Your \nConsultation", style: TextStyle( - color: Colors.black87.withOpacity(0.8), - fontSize: 30, - fontWeight: FontWeight.w600 - ),), - SizedBox(height: 40,), + SizedBox( + height: 10, + ), + Text( + "Find Your \nConsultation", + style: TextStyle( + color: Colors.black87.withOpacity(0.8), + fontSize: 30, + fontWeight: FontWeight.w600), + ), + SizedBox( + height: 40, + ), Container( padding: EdgeInsets.symmetric(horizontal: 24), height: 50, decoration: BoxDecoration( - color: Color(0xffEFEFEF), - borderRadius: BorderRadius.circular(14) - ), + color: Color(0xffEFEFEF), + borderRadius: BorderRadius.circular(14)), child: Row( children: [ Icon(Icons.search), - SizedBox(width: 10,), - Text("Search", style: TextStyle( - color: Colors.grey, - fontSize: 19 - ),) + SizedBox( + width: 10, + ), + Text( + "Search", + style: TextStyle(color: Colors.grey, fontSize: 19), + ) ], ), ), - SizedBox(height: 30,), - Text("Categories", style: TextStyle( - color: Colors.black87.withOpacity(0.8), - fontSize: 25, - fontWeight: FontWeight.w600 - ),), - SizedBox(height: 20,), + SizedBox( + height: 30, + ), + Text( + "Categories", + style: TextStyle( + color: Colors.black87.withOpacity(0.8), + fontSize: 25, + fontWeight: FontWeight.w600), + ), + SizedBox( + height: 20, + ), Container( height: 30, child: ListView.builder( - itemCount: categories.length, + itemCount: categories.length, shrinkWrap: true, physics: ClampingScrollPhysics(), scrollDirection: Axis.horizontal, - itemBuilder: (context, index){ - return CategorieTile( - categorie: categories[index], - isSelected: selectedCategorie == categories[index], - context: this, - ); + itemBuilder: (context, index) { + return CategorieTile( + categorie: categories[index], + isSelected: selectedCategorie == categories[index], + context: this, + ); }), ), - SizedBox(height: 20,), + SizedBox( + height: 20, + ), Container( height: 250, child: ListView.builder( @@ -100,7 +114,7 @@ class _HomePageState extends State { shrinkWrap: true, physics: ClampingScrollPhysics(), scrollDirection: Axis.horizontal, - itemBuilder: (context, index){ + itemBuilder: (context, index) { return SpecialistTile( imgAssetPath: specialities[index].imgAssetPath, speciality: specialities[index].speciality, @@ -109,13 +123,19 @@ class _HomePageState extends State { ); }), ), - SizedBox(height: 20,), - Text("Doctos", style: TextStyle( - color: Colors.black87.withOpacity(0.8), - fontSize: 25, - fontWeight: FontWeight.w600 - ),), - SizedBox(height: 20,), + SizedBox( + height: 20, + ), + Text( + "Doctos", + style: TextStyle( + color: Colors.black87.withOpacity(0.8), + fontSize: 25, + fontWeight: FontWeight.w600), + ), + SizedBox( + height: 20, + ), DoctorsTile() ], ), @@ -126,11 +146,10 @@ class _HomePageState extends State { } class CategorieTile extends StatefulWidget { - - final String categorie; - final bool isSelected; - _HomePageState context; - CategorieTile({this.categorie, this.isSelected,this.context}); + final String? categorie; + final bool? isSelected; + final HomePageState? context; + CategorieTile({this.categorie, this.isSelected, this.context}); @override _CategorieTileState createState() => _CategorieTileState(); @@ -140,8 +159,8 @@ class _CategorieTileState extends State { @override Widget build(BuildContext context) { return GestureDetector( - onTap: (){ - widget.context.setState(() { + onTap: () { + widget.context!.setState(() { selectedCategorie = widget.categorie; }); }, @@ -151,25 +170,29 @@ class _CategorieTileState extends State { margin: EdgeInsets.only(left: 8), height: 30, decoration: BoxDecoration( - color: widget.isSelected ? Color(0xffFFD0AA) : Colors.white, - borderRadius: BorderRadius.circular(30) + color: widget.isSelected! ? Color(0xffFFD0AA) : Colors.white, + borderRadius: BorderRadius.circular(30)), + child: Text( + widget.categorie!, + style: TextStyle( + color: + widget.isSelected! ? Color(0xffFC9535) : Color(0xffA1A1A1)), ), - child: Text(widget.categorie, style: TextStyle( - color: widget.isSelected ? Color(0xffFC9535) : Color(0xffA1A1A1) - ),), ), ); } } class SpecialistTile extends StatelessWidget { - - final String imgAssetPath; - final String speciality; - final int noOfDoctors; - final Color backColor; - SpecialistTile({@required this.imgAssetPath,@required this.speciality - ,@required this.noOfDoctors, @required this.backColor}); + final String? imgAssetPath; + final String? speciality; + final int? noOfDoctors; + final Color? backColor; + SpecialistTile( + {required this.imgAssetPath, + required this.speciality, + required this.noOfDoctors, + required this.backColor}); @override Widget build(BuildContext context) { @@ -177,23 +200,27 @@ class SpecialistTile extends StatelessWidget { width: 150, margin: EdgeInsets.only(right: 16), decoration: BoxDecoration( - color: backColor, - borderRadius: BorderRadius.circular(24) - ), - padding: EdgeInsets.only(top: 16,right: 16,left: 16), + color: backColor, borderRadius: BorderRadius.circular(24)), + padding: EdgeInsets.only(top: 16, right: 16, left: 16), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text(speciality, style: TextStyle( - color: Colors.white, - fontSize: 20 - ),), - SizedBox(height: 6,), - Text("$noOfDoctors Doctors", style: TextStyle( - color: Colors.white, - fontSize: 13 - ),), - Image.asset(imgAssetPath, height: 160,fit: BoxFit.fitHeight,) + Text( + speciality!, + style: TextStyle(color: Colors.white, fontSize: 20), + ), + SizedBox( + height: 6, + ), + Text( + "$noOfDoctors Doctors", + style: TextStyle(color: Colors.white, fontSize: 13), + ), + Image.asset( + imgAssetPath!, + height: 160, + fit: BoxFit.fitHeight, + ) ], ), ); @@ -204,55 +231,56 @@ class DoctorsTile extends StatelessWidget { @override Widget build(BuildContext context) { return GestureDetector( - onTap: (){ - Navigator.push(context, MaterialPageRoute( - builder: (context) => DoctorsInfo() - )); + onTap: () { + Navigator.push( + context, MaterialPageRoute(builder: (context) => DoctorsInfo())); }, child: Container( decoration: BoxDecoration( - color: Color(0xffFFEEE0), - borderRadius: BorderRadius.circular(20) - ), - padding: EdgeInsets.symmetric(horizontal: 24, - vertical: 18), + color: Color(0xffFFEEE0), borderRadius: BorderRadius.circular(20)), + padding: EdgeInsets.symmetric(horizontal: 24, vertical: 18), child: Row( children: [ - Image.asset("assets/doctor_pic.png", height: 50,), - SizedBox(width: 17,), + Image.asset( + "assets/doctor_pic.png", + height: 50, + ), + SizedBox( + width: 17, + ), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text("Dr. Stefeni Albert", style: TextStyle( - color: Color(0xffFC9535), - fontSize: 19 - ),), - SizedBox(height: 2,), - Text("Heart Speailist", style: TextStyle( - fontSize: 15 - ),) + Text( + "Dr. Stefeni Albert", + style: TextStyle(color: Color(0xffFC9535), fontSize: 19), + ), + SizedBox( + height: 2, + ), + Text( + "Heart Speailist", + style: TextStyle(fontSize: 15), + ) ], ), Spacer(), Container( - padding: EdgeInsets.symmetric(horizontal: 15, - vertical: 9), + padding: EdgeInsets.symmetric(horizontal: 15, vertical: 9), decoration: BoxDecoration( - color: Color(0xffFBB97C), - borderRadius: BorderRadius.circular(13) + color: Color(0xffFBB97C), + borderRadius: BorderRadius.circular(13)), + child: Text( + "Call", + style: TextStyle( + color: Colors.white, + fontSize: 13, + fontWeight: FontWeight.w500), ), - child: Text("Call", style: TextStyle( - color: Colors.white, - fontSize: 13, - fontWeight: FontWeight.w500 - ),), ) ], ), ), - ); + ); } } - - - diff --git a/pubspec.lock b/pubspec.lock index fcf6763..22baa65 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,69 +1,62 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: - archive: - dependency: transitive - description: - name: archive - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.11" - args: - dependency: transitive - description: - name: args - url: "https://pub.dartlang.org" - source: hosted - version: "1.5.2" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.4.0" + version: "2.8.2" boolean_selector: dependency: transitive description: name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" - charcode: + version: "2.1.0" + characters: dependency: transitive description: - name: charcode + name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.1.2" - collection: + version: "1.2.0" + charcode: dependency: transitive description: - name: collection + name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.14.11" - convert: + version: "1.3.1" + clock: dependency: transitive description: - name: convert + name: clock url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" - crypto: + version: "1.1.0" + collection: dependency: transitive description: - name: crypto + name: collection url: "https://pub.dartlang.org" source: hosted - version: "2.1.3" + version: "1.15.0" cupertino_icons: dependency: "direct main" description: name: cupertino_icons url: "https://pub.dartlang.org" source: hosted - version: "0.1.3" + version: "1.0.4" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" flutter: dependency: "direct main" description: flutter @@ -74,55 +67,34 @@ packages: description: flutter source: sdk version: "0.0.0" - image: + matcher: dependency: transitive description: - name: image + name: matcher url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" - matcher: + version: "0.12.11" + material_color_utilities: dependency: transitive description: - name: matcher + name: material_color_utilities url: "https://pub.dartlang.org" source: hosted - version: "0.12.6" + version: "0.1.3" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.1.8" + version: "1.7.0" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.6.4" - pedantic: - dependency: transitive - description: - name: pedantic - url: "https://pub.dartlang.org" - source: hosted - version: "1.8.0+1" - petitparser: - dependency: transitive - description: - name: petitparser - url: "https://pub.dartlang.org" - source: hosted - version: "2.4.0" - quiver: - dependency: transitive - description: - name: quiver - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.5" + version: "1.8.0" sky_engine: dependency: transitive description: flutter @@ -134,62 +106,55 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.5.5" + version: "1.8.1" stack_trace: dependency: transitive description: name: stack_trace url: "https://pub.dartlang.org" source: hosted - version: "1.9.3" + version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "1.1.0" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.11" + version: "0.4.8" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.1.6" + version: "1.3.0" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.0.8" - xml: - dependency: transitive - description: - name: xml - url: "https://pub.dartlang.org" - source: hosted - version: "3.5.0" + version: "2.1.1" sdks: - dart: ">=2.4.0 <3.0.0" + dart: ">=2.16.1 <3.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 86cc28a..1f97336 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,7 +14,7 @@ description: A new Flutter project. version: 1.0.0+1 environment: - sdk: ">=2.1.0 <3.0.0" + sdk: '>=2.16.1 <3.0.0' dependencies: flutter: @@ -22,7 +22,7 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^0.1.2 + cupertino_icons: ^1.0.4 dev_dependencies: flutter_test: diff --git a/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000..8aaa46a Binary files /dev/null and b/web/favicon.png differ diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png new file mode 100644 index 0000000..b749bfe Binary files /dev/null and b/web/icons/Icon-192.png differ diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png new file mode 100644 index 0000000..88cfd48 Binary files /dev/null and b/web/icons/Icon-512.png differ diff --git a/web/icons/Icon-maskable-192.png b/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000..eb9b4d7 Binary files /dev/null and b/web/icons/Icon-maskable-192.png differ diff --git a/web/icons/Icon-maskable-512.png b/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000..d69c566 Binary files /dev/null and b/web/icons/Icon-maskable-512.png differ diff --git a/web/index.html b/web/index.html index 9730bb3..8972329 100644 --- a/web/index.html +++ b/web/index.html @@ -1,10 +1,104 @@ + + + + + + + + + + + + + + + doctor_booking_app + - + + diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..3de8760 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "doctor_booking_app", + "short_name": "doctor_booking_app", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +}