diff --git a/android/settings.gradle b/android/settings.gradle index 1d6d19b..bd546eb 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,26 +1,26 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - } - settings.ext.flutterSdkPath = flutterSdkPath() - - includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false - id "org.jetbrains.kotlin.android" version "1.7.10" apply false -} - -include ":app" +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + } + settings.ext.flutterSdkPath = flutterSdkPath() + + includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.3.0" apply false + id "org.jetbrains.kotlin.android" version "1.9.24" apply false +} + +include ":app" diff --git a/lib/screens/ChatPage.dart b/lib/screens/ChatPage.dart index aa83c89..1219fde 100644 --- a/lib/screens/ChatPage.dart +++ b/lib/screens/ChatPage.dart @@ -1,166 +1,319 @@ -// ignore_for_file: file_names - -import 'package:flutter/material.dart'; - -class ChatPage extends StatefulWidget { - const ChatPage({super.key, required this.name, required this.image}); - final String name, image; - - @override - State createState() => _ChatPageState(); -} - -class _ChatPageState extends State { - final ScrollController _scrollController = ScrollController(); - @override - void initState() { - super.initState(); - WidgetsBinding.instance.addPostFrameCallback((_) { - _scrollController.jumpTo(_scrollController.position.maxScrollExtent); - }); - } - - List messages = [ - { - "message": "Hola!", - "sent": false, - }, - { - "message": "Nevermind!", - "sent": false, - }, - { - "message": "Hello!", - "sent": true, - }, - { - "message": "Hi!", - "sent": false, - }, - { - "message": "How are you?", - "sent": true, - }, - { - "message": "All good! What about you?", - "sent": false, - }, - { - "message": "Same here!", - "sent": true, - }, - { - "message": "Had lunch?", - "sent": false, - }, - { - "message": "Yes! What about you?", - "sent": true, - }, - { - "message": "Not yet, Please order me a pizza", - "sent": false, - }, - { - "message": "Hahaha, Sure!", - "sent": true, - }, - { - "message": "From where do you want to eat?", - "sent": true, - }, - { - "message": "Dominos would be good!", - "sent": false, - }, - { - "message": "Okay!", - "sent": true, - }, - { - "message": "Which one?", - "sent": true, - }, - { - "message": "Golden corn with cheese burst would be great!", - "sent": false, - }, - { - "message": "Sure!", - "sent": true, - }, - { - "message": "I am ordering a Large Golden corn cheese burst", - "sent": true, - }, - ]; - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - backgroundColor: Theme.of(context).colorScheme.inversePrimary, - centerTitle: false, - title: ListTile( - leading: CircleAvatar( - backgroundColor: Colors.white, - backgroundImage: AssetImage(widget.image), - ), - title: Text(widget.name), - subtitle: const Text("Online"), - trailing: SizedBox( - width: MediaQuery.of(context).size.width * 0.2, - child: const Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Icon(Icons.video_call), - Icon(Icons.call), - Icon(Icons.more_vert), - ], - ), - ), - ), - ), - body: Padding( - padding: const EdgeInsets.all(8.0), - child: ListView.builder( - controller: _scrollController, - itemCount: messages.length, - itemBuilder: (context, index) { - int previous = index - 1 >= 0 ? index - 1 : 0; - int current = index; - return Padding( - padding: messages[previous]["sent"] == messages[current]["sent"] - ? const EdgeInsets.only(left: 8, right: 8, top: 4) - : const EdgeInsets.only(left: 8, right: 8, top: 8), - child: Align( - alignment: messages[index]["sent"] - ? Alignment.centerRight - : Alignment.centerLeft, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: messages[index]["sent"] - ? Colors.amber[200] - : Colors.blue[200], - ), - child: Padding( - padding: const EdgeInsets.all(10), - child: ConstrainedBox( - constraints: BoxConstraints( - maxWidth: MediaQuery.of(context).size.width * 0.8, - ), - child: Text( - messages[index]["message"], - style: const TextStyle(fontSize: 18), - ), - ), - ), - ), - ), - ); - }), - ), - ); - } -} +// ignore_for_file: file_names, prefer_const_constructors + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:test_app/screens/locationpage.dart'; + +class ChatPage extends StatefulWidget { + const ChatPage({super.key, required this.name, required this.image}); + final String name, image; + + @override + State createState() => _ChatPageState(); +} + +class _ChatPageState extends State { + final ScrollController _scrollController = ScrollController(); + @override + void initState() { + super.initState(); + WidgetsBinding.instance.addPostFrameCallback((_) { + _scrollController.jumpTo(_scrollController.position.maxScrollExtent); + }); + } + + bool attachmentBoxShow = false; + void _showAttachmentBox() { + setState(() { + attachmentBoxShow = !attachmentBoxShow; // + }); + } + + TextEditingController _textEditingController = TextEditingController(); + List messages = [ + { + "message": "Hola!", + "sent": false, + }, + { + "message": "Nevermind!", + "sent": false, + }, + { + "message": "Hello!", + "sent": true, + }, + { + "message": "Hi!", + "sent": false, + }, + { + "message": "How are you?", + "sent": true, + }, + { + "message": "All good! What about you?", + "sent": false, + }, + { + "message": "Same here!", + "sent": true, + }, + { + "message": "Had lunch?", + "sent": false, + }, + { + "message": "Yes! What about you?", + "sent": true, + }, + { + "message": "Not yet, Please order me a pizza", + "sent": false, + }, + { + "message": "Hahaha, Sure!", + "sent": true, + }, + { + "message": "From where do you want to eat?", + "sent": true, + }, + { + "message": "Dominos would be good!", + "sent": false, + }, + { + "message": "Okay!", + "sent": true, + }, + { + "message": "Which one?", + "sent": true, + }, + { + "message": "Golden corn with cheese burst would be great!", + "sent": false, + }, + { + "message": "Sure!", + "sent": true, + }, + { + "message": "I am ordering a Large Golden corn cheese burst", + "sent": true, + }, + ]; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Theme.of(context).colorScheme.inversePrimary, + centerTitle: false, + title: ListTile( + leading: CircleAvatar( + backgroundColor: Colors.white, + backgroundImage: AssetImage(widget.image), + ), + title: Text(widget.name), + subtitle: const Text("Online"), + trailing: SizedBox( + width: MediaQuery.of(context).size.width * 0.2, + child: const Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Icon(Icons.video_call), + Icon(Icons.call), + Icon(Icons.more_vert), + ], + ), + ), + ), + ), + body: Padding( + padding: const EdgeInsets.all(8.0), + child: GestureDetector( + onTap: () { + setState(() { + attachmentBoxShow = false; + FocusScope.of(context).unfocus(); + }); + }, + child: Column( + children: [ + Expanded( + child: ListView.builder( + controller: _scrollController, + itemCount: messages.length, + itemBuilder: (context, index) { + int previous = index - 1 >= 0 ? index - 1 : 0; + int current = index; + return Padding( + padding: messages[previous]["sent"] == + messages[current]["sent"] + ? const EdgeInsets.only(left: 8, right: 8, top: 4) + : const EdgeInsets.only(left: 8, right: 8, top: 8), + child: Align( + alignment: messages[index]["sent"] + ? Alignment.centerRight + : Alignment.centerLeft, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: messages[index]["sent"] + ? Colors.amber[200] + : Colors.blue[200], + ), + child: Padding( + padding: const EdgeInsets.all(10), + child: ConstrainedBox( + constraints: BoxConstraints( + maxWidth: + MediaQuery.of(context).size.width * 0.8, + ), + child: Text( + messages[index]["message"], + style: const TextStyle(fontSize: 18), + ), + ), + ), + ), + ), + ); + }), + ), + Row( + children: [ + Expanded( + child: TextField( + keyboardType: TextInputType.text, + controller: _textEditingController, + decoration: InputDecoration( + border: OutlineInputBorder(), + suffixIcon: IconButton( + icon: Icon(Icons.attachment_sharp), + onPressed: _showAttachmentBox, + ), + hintText: "Type a message", + ), + ), + ), + TextButton( + onPressed: () { + if (_textEditingController.text.isNotEmpty) { + setState(() { + messages.add({ + "message": _textEditingController.text, + "sent": true, + }); + _textEditingController.clear(); + }); + } + }, + child: const Icon(Icons.send)), + ], + ), + attachmentBoxShow + ? Container( + padding: EdgeInsets.only(top: 25), + height: MediaQuery.of(context).size.width * 0.5, + decoration: BoxDecoration( + color: const Color.fromARGB(255, 37, 37, 37), + borderRadius: BorderRadius.circular(10), + ), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.all(25.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + SizedBox( + child: Icon( + Icons.photo, + color: Color.fromARGB(255, 66, 108, 117), + size: 30, + ), + ), + SizedBox( + child: Icon( + Icons.camera, + color: Color.fromARGB(255, 66, 108, 117), + size: 30, + ), + ), + SizedBox( + child: GestureDetector( + onTap: () => Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + LocationPage())), + child: Icon( + Icons.location_pin, + color: Color.fromARGB(255, 66, 108, 117), + size: 30, + ), + ), + ), + SizedBox( + child: Icon( + Icons.contact_phone, + color: Color.fromARGB(255, 66, 108, 117), + size: 30, + ), + ) + ], + ), + ), + Padding( + padding: const EdgeInsets.all(25.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + SizedBox( + child: Icon( + Icons.document_scanner, + color: Color.fromARGB(255, 66, 108, 117), + size: 30, + ), + ), + SizedBox( + child: Icon( + Icons.audio_file, + color: Color.fromARGB(255, 66, 108, 117), + size: 30, + ), + ), + SizedBox( + child: Icon( + Icons.poll, + color: Color.fromARGB(255, 66, 108, 117), + size: 30, + ), + ), + SizedBox( + child: Icon( + Icons.payment, + color: Color.fromARGB(255, 66, 108, 117), + size: 30, + ), + ) + ], + ), + ), + ], + ), + ) + : SizedBox( + height: 0, + ) + ], + ), + ), + ), + ); + } +} diff --git a/lib/screens/HomePage.dart b/lib/screens/HomePage.dart index 5266eb5..8524a88 100644 --- a/lib/screens/HomePage.dart +++ b/lib/screens/HomePage.dart @@ -1,160 +1,160 @@ -// ignore_for_file: file_names - -import 'package:flutter/material.dart'; -import 'package:test_app/screens/ChatPage.dart'; - -class HomePage extends StatefulWidget { - const HomePage({super.key}); - - @override - State createState() => _HomePageState(); -} - -class _HomePageState extends State { - List menuItems = [ - "New Group", - "New Broadcast", - "Linked devices", - "Starred message", - "Payment", - "Settings" - ]; - List chats = [ - { - "name": "Ram", - "Message": "I have reached Lanka", - "time": "11:11", - "readStatus": true, - "sent": false - }, - { - "name": "Lakshman", - "Message": "Bhrata, mujhe aadesh dein, sabko mai akele maar dunga!", - "time": "11:11", - "readStatus": true, - "sent": false - }, - { - "name": "Bharat", - "Message": "Kila fateh karke aaiye! Rajya aapka intezar kar raha hai!", - "time": "11:15", - "readStatus": true, - "sent": false - }, - { - "name": "Shatrughna", - "Message": "ALl the best bhrata shree!", - "time": "11:12", - "readStatus": true, - "sent": false - }, - { - "name": "Hanuman", - "Message": "Jai Shree Ram. On your command, my lord!", - "time": "11:11", - "readStatus": true, - "sent": false - }, - { - "name": "Sita", - "Message": "I am waiting, Come soon!", - "time": "11:11", - "readStatus": true, - "sent": false - }, - { - "name": "Dashrath", - "Message": "All the best!", - "time": "11:20", - "readStatus": true, - "sent": true - }, - ]; - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - backgroundColor: Theme.of(context).colorScheme.inversePrimary, - // Here we take the value from the MyHomePage object that was created by - // the App.build method, and use it to set our appbar title. - title: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text("What's UP"), - Row( - children: [ - Icon(Icons.search), - PopupMenuButton( - onSelected: (value) => {print(value)}, - itemBuilder: (BuildContext context) => - >[ - PopupMenuItem( - value: "New Group", - child: Text("New Group"), - ), - PopupMenuItem( - value: "New Broadcast", - child: Text("New Broadcast"), - ), - PopupMenuItem( - value: "Linked devices", - child: Text("Linked devices"), - ), - PopupMenuItem( - value: "Starred message", - child: Text("Starred message"), - ), - PopupMenuItem( - value: "Payment", - child: Text("Payment"), - ), - PopupMenuItem( - value: "Settings", - child: Text("Settings"), - ), - ]) - ], - ), - ], - ), - ), - body: ListView.builder( - itemCount: chats.length, - itemBuilder: (context, index) { - return ListTile( - title: Text(chats[index]["name"]), - subtitle: chats[index]["sent"] - ? Row( - children: [ - const Icon(Icons.done_all), - Text( - chats[index]["Message"], - style: const TextStyle( - overflow: TextOverflow.ellipsis), - ), - ], - ) - : Text( - chats[index]["Message"], - style: const TextStyle(overflow: TextOverflow.ellipsis), - ), - leading: ClipRRect( - borderRadius: BorderRadius.circular(40), - child: index % 2 == 0 - ? Image.asset("assets/srk.png") - : Image.asset("assets/srk1.png"), - ), - trailing: Text(chats[index]["time"]), - onTap: () => Navigator.push(context, - MaterialPageRoute(builder: (context) { - return ChatPage( - name: chats[index]["name"], - image: - index % 2 == 0 ? "assets/srk.png" : "assets/srk1.png", - ); - })), - ); - })); - } -} +// ignore_for_file: file_names + +import 'package:flutter/material.dart'; +import 'package:test_app/screens/ChatPage.dart'; + +class HomePage extends StatefulWidget { + const HomePage({super.key}); + + @override + State createState() => _HomePageState(); +} + +class _HomePageState extends State { + List menuItems = [ + "New Group", + "New Broadcast", + "Linked devices", + "Starred message", + "Payment", + "Settings" + ]; + List chats = [ + { + "name": "Ram", + "Message": "I have reached Lanka", + "time": "11:11", + "readStatus": true, + "sent": false + }, + { + "name": "Lakshman", + "Message": "Bhrata, mujhe aadesh dein, sabko mai akele maar dunga!", + "time": "11:11", + "readStatus": true, + "sent": false + }, + { + "name": "Bharat", + "Message": "Kila fateh karke aaiye! Rajya aapka intezar kar raha hai!", + "time": "11:15", + "readStatus": true, + "sent": false + }, + { + "name": "Shatrughna", + "Message": "ALl the best bhrata shree!", + "time": "11:12", + "readStatus": true, + "sent": false + }, + { + "name": "Hanuman", + "Message": "Jai Shree Ram. On your command, my lord!", + "time": "11:11", + "readStatus": true, + "sent": false + }, + { + "name": "Sita", + "Message": "I am waiting, Come soon!", + "time": "11:11", + "readStatus": true, + "sent": false + }, + { + "name": "Dashrath", + "Message": "All the best!", + "time": "11:20", + "readStatus": true, + "sent": true + }, + ]; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Theme.of(context).colorScheme.inversePrimary, + // Here we take the value from the MyHomePage object that was created by + // the App.build method, and use it to set our appbar title. + title: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text("What's UP"), + Row( + children: [ + Icon(Icons.search), + PopupMenuButton( + onSelected: (value) => {print(value)}, + itemBuilder: (BuildContext context) => + >[ + PopupMenuItem( + value: "New Group", + child: Text("New Group"), + ), + PopupMenuItem( + value: "New Broadcast", + child: Text("New Broadcast"), + ), + PopupMenuItem( + value: "Linked devices", + child: Text("Linked devices"), + ), + PopupMenuItem( + value: "Starred message", + child: Text("Starred message"), + ), + PopupMenuItem( + value: "Payment", + child: Text("Payment"), + ), + PopupMenuItem( + value: "Settings", + child: Text("Settings"), + ), + ]) + ], + ), + ], + ), + ), + body: ListView.builder( + itemCount: chats.length, + itemBuilder: (context, index) { + return ListTile( + title: Text(chats[index]["name"]), + subtitle: chats[index]["sent"] + ? Row( + children: [ + const Icon(Icons.done_all), + Text( + chats[index]["Message"], + style: const TextStyle( + overflow: TextOverflow.ellipsis), + ), + ], + ) + : Text( + chats[index]["Message"], + style: const TextStyle(overflow: TextOverflow.ellipsis), + ), + leading: ClipRRect( + borderRadius: BorderRadius.circular(40), + child: index % 2 == 0 + ? Image.asset("assets/srk.png") + : Image.asset("assets/srk1.png"), + ), + trailing: Text(chats[index]["time"]), + onTap: () => Navigator.push(context, + MaterialPageRoute(builder: (context) { + return ChatPage( + name: chats[index]["name"], + image: + index % 2 == 0 ? "assets/srk.png" : "assets/srk1.png", + ); + })), + ); + })); + } +} diff --git a/lib/screens/locationpage.dart b/lib/screens/locationpage.dart new file mode 100644 index 0000000..307667a --- /dev/null +++ b/lib/screens/locationpage.dart @@ -0,0 +1,41 @@ +import 'package:flutter/material.dart'; +import 'package:geolocator/geolocator.dart'; + +class LocationPage extends StatefulWidget { + const LocationPage({super.key}); + + @override + State createState() => _LocationPageState(); +} + +class _LocationPageState extends State { + currentlocation() async { + LocationPermission permission = await Geolocator.checkPermission(); + if (permission == LocationPermission.deniedForever || + permission == LocationPermission.denied) { + print("You are not allowed to acess location"); + LocationPermission ask = await Geolocator.requestPermission(); + } else { + Position location = await Geolocator.getCurrentPosition(); + print(location.latitude); + print(location.longitude); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("location"), + ), + body: Container( + child: Center( + child: ElevatedButton( + onPressed: currentlocation, + child: Text("Get Location"), + ), + ), + ), + ); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index f83b8c5..03529d9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,91 +1,91 @@ -name: test_app -description: "A new Flutter project." -# The following line prevents the package from being accidentally published to -# pub.dev using `flutter pub publish`. This is preferred for private packages. -publish_to: 'none' # Remove this line if you wish to publish to pub.dev - -# The following defines the version and build number for your application. -# A version number is three numbers separated by dots, like 1.2.43 -# followed by an optional build number separated by a +. -# Both the version and the builder number may be overridden in flutter -# build by specifying --build-name and --build-number, respectively. -# In Android, build-name is used as versionName while build-number used as versionCode. -# Read more about Android versioning at https://developer.android.com/studio/publish/versioning -# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. -# Read more about iOS versioning at -# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -# In Windows, build-name is used as the major, minor, and patch parts -# of the product and file versions while build-number is used as the build suffix. -version: 1.0.0+1 - -environment: - sdk: '>=3.3.0 <4.0.0' - -# Dependencies specify other packages that your package needs in order to work. -# To automatically upgrade your package dependencies to the latest versions -# consider running `flutter pub upgrade --major-versions`. Alternatively, -# dependencies can be manually updated by changing the version numbers below to -# the latest version available on pub.dev. To see which dependencies have newer -# versions available, run `flutter pub outdated`. -dependencies: - flutter: - sdk: flutter - - - # The following adds the Cupertino Icons font to your application. - # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^1.0.6 - -dev_dependencies: - flutter_test: - sdk: flutter - - # The "flutter_lints" package below contains a set of recommended lints to - # encourage good coding practices. The lint set provided by the package is - # activated in the `analysis_options.yaml` file located at the root of your - # package. See that file for information about deactivating specific lint - # rules and activating additional ones. - flutter_lints: ^3.0.0 - -# For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec - -# The following section is specific to Flutter packages. -flutter: - - # The following line ensures that the Material Icons font is - # included with your application, so that you can use the icons in - # the material Icons class. - uses-material-design: true - - # To add assets to your application, add an assets section, like this: - assets: - - assets/srk.png - - assets/srk1.png - # - images/a_dot_ham.jpeg - - # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.dev/assets-and-images/#resolution-aware - - # For details regarding adding assets from package dependencies, see - # https://flutter.dev/assets-and-images/#from-packages - - # To add custom fonts to your application, add a fonts section here, - # in this "flutter" section. Each entry in this list should have a - # "family" key with the font family name, and a "fonts" key with a - # list giving the asset and other descriptors for the font. For - # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 - # - # For details regarding fonts from package dependencies, - # see https://flutter.dev/custom-fonts/#from-packages +name: test_app +description: "A new Flutter project." +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: '>=3.3.0 <4.0.0' + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + geolocator: ^12.0.0 + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.6 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^3.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + - assets/srk.png + - assets/srk1.png + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages