diff --git a/android/build.gradle b/android/build.gradle index 86925a2..18dd133 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '1.3.50' + ext.kotlin_version = '1.6.10' repositories { google() mavenCentral() diff --git a/lib/Screens/audio_screen.dart b/lib/Screens/audio_screen.dart index 9f9d503..381983e 100644 --- a/lib/Screens/audio_screen.dart +++ b/lib/Screens/audio_screen.dart @@ -51,7 +51,16 @@ class _AudioScreenState extends State { .collection("users") .doc(id) .collection(screenType.toString()) - .add({"url": url, "type": "audio", "dateTime": DateTime.now()}); + .add({ + "url": url, + "type": "audio", + "dateTime": DateTime.now() + }).then((value) async => { + FirebaseFirestore.instance + .collection("users") + .doc(id) + .update({"dateTime": DateTime.now()}) + }); } uploading = false; setState(() {}); diff --git a/lib/Screens/equipment_screen.dart b/lib/Screens/equipment_screen.dart index e42e126..cfbad97 100644 --- a/lib/Screens/equipment_screen.dart +++ b/lib/Screens/equipment_screen.dart @@ -6,7 +6,7 @@ import 'package:agri/Screens/upload_images_screen.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; import 'package:cached_network_image/cached_network_image.dart'; -import 'home_screen.dart' as home; +import 'package:agri/dashboard.dart' as dash; class EquipmentScreen extends StatefulWidget { const EquipmentScreen({Key? key}) : super(key: key); @@ -16,7 +16,7 @@ class EquipmentScreen extends StatefulWidget { } class _EquipmentScreenState extends State { - final userId = home.userId; + final userId = dash.userId; @override Widget build(BuildContext context) { diff --git a/lib/Screens/home_screen.dart b/lib/Screens/home_screen.dart index 35be638..059de38 100644 --- a/lib/Screens/home_screen.dart +++ b/lib/Screens/home_screen.dart @@ -3,14 +3,11 @@ import 'package:agri/Models/file_model.dart'; import 'package:agri/Screens/audio_screen.dart'; import 'package:agri/Screens/reply_screen.dart'; import 'package:agri/Screens/upload_images_screen.dart'; +import 'package:agri/dashboard.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; -import 'package:uuid/uuid.dart'; -import 'package:shared_preferences/shared_preferences.dart'; import 'package:cached_network_image/cached_network_image.dart'; -String userId = ""; - class HomeScreen extends StatefulWidget { static const String routeName = '/HomeScreen'; const HomeScreen({Key? key}) : super(key: key); @@ -20,47 +17,12 @@ class HomeScreen extends StatefulWidget { } class _HomeScreenState extends State { - bool isFirstLoad = true; - - getUserId() async { - SharedPreferences prefs = await SharedPreferences.getInstance(); - String id = prefs.getString('userId').toString(); - // print(id); - if (id == "null") { - // print("Empty Id"); - id = const Uuid().v4(); - prefs.setString('userId', id); - userId = id; - // print(userId); - await FirebaseFirestore.instance.collection('users').doc(id).set({ - "userId": id, - "dateTime": DateTime.now(), - }); - } else { - // print(id); - userId = id; - // print(userId); - } - // await prefs.setInt('counter', counter); - setState(() {}); - } - - @override - void didChangeDependencies() { - if (isFirstLoad) { - getUserId(); - } - isFirstLoad = false; - - super.didChangeDependencies(); - } - @override Widget build(BuildContext context) { // print(userId + "Printing User ID"); return Scaffold( appBar: AppBar( - title: const Center(child: Text('వ్యాధి నిర్వహణ')), + title: const Center(child: Text('వ్యాధి నిర్వహణ')), actions: [ IconButton( icon: const Icon(Icons.message), diff --git a/lib/Screens/upload_images_screen.dart b/lib/Screens/upload_images_screen.dart index 48bf429..6939bd8 100644 --- a/lib/Screens/upload_images_screen.dart +++ b/lib/Screens/upload_images_screen.dart @@ -81,7 +81,12 @@ class _UploadImagesScreenState extends State { "type": "image", "dateTime": DateTime.now() }); - }); + }).then((value) async => { + FirebaseFirestore.instance + .collection("users") + .doc(id) + .update({"dateTime": DateTime.now()}) + }); } uploading = false; setState(() {}); diff --git a/lib/dashboard.dart b/lib/dashboard.dart index ac9deb6..88e24d6 100644 --- a/lib/dashboard.dart +++ b/lib/dashboard.dart @@ -1,11 +1,17 @@ import 'package:agri/Screens/equipment_screen.dart'; import 'package:agri/Screens/home_screen.dart'; +import 'package:agri/Utils/Utils.dart'; import 'package:agri/diseases.dart'; import 'package:agri/fert.dart'; import 'package:agri/irri.dart'; import 'package:agri/mark.dart'; import 'package:agri/types.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:uuid/uuid.dart'; + +String userId = ""; class Dash extends StatefulWidget { const Dash({Key? key}) : super(key: key); @@ -15,6 +21,54 @@ class Dash extends StatefulWidget { } class _DashState extends State { + bool isFirstLoad = true; + + getUserId() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + String id = prefs.getString('userId').toString(); + // print(id); + if (id == "null") { + // print("Empty Id"); + DocumentSnapshot> documentSnapshot = + await FirebaseFirestore.instance + .collection('UserIndex') + .doc("UserIndexDoc") + .get(); + + int userIndex = documentSnapshot.get("userIndex") as int; + id = const Uuid().v4(); + prefs.setString('userId', id); + userId = id; + // print(userId); + await FirebaseFirestore.instance.collection('users').doc(id).set({ + "userId": id, + "dateTime": DateTime.now(), + "userIndex": userIndex + 1 + }).then((value) async => { + await FirebaseFirestore.instance + .collection('UserIndex') + .doc("UserIndexDoc") + .update({"userIndex": userIndex + 1}) + }); + } else { + // print(id); + userId = id; + // print(userId); + } + // await prefs.setInt('counter', counter); + setState(() {}); + } + + @override + void didChangeDependencies() { + if (isFirstLoad) { + getUserId(); + } + isFirstLoad = false; + + super.didChangeDependencies(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -74,7 +128,7 @@ class _DashState extends State { color: Color.fromRGBO(220, 220, 220, 50.0)), child: InkWell( onTap: () { - Navigator.push( + Navigator.push( context, MaterialPageRoute(builder: (context) => const Diseases()), ); @@ -109,9 +163,10 @@ class _DashState extends State { color: Color.fromRGBO(220, 220, 220, 50.0)), child: InkWell( onTap: () { - Navigator.push( + Navigator.push( context, - MaterialPageRoute(builder: (context) => const HomeScreen()), + MaterialPageRoute( + builder: (context) => const HomeScreen()), ); }, child: Column( @@ -144,9 +199,10 @@ class _DashState extends State { color: Color.fromRGBO(220, 220, 220, 50.0)), child: InkWell( onTap: () { - Navigator.push( + Navigator.push( context, - MaterialPageRoute(builder: (context) => const EquipmentScreen()), + MaterialPageRoute( + builder: (context) => const EquipmentScreen()), ); }, child: Column( @@ -179,7 +235,7 @@ class _DashState extends State { color: Color.fromRGBO(220, 220, 220, 50.0)), child: InkWell( onTap: () { - Navigator.push( + Navigator.push( context, MaterialPageRoute(builder: (context) => const Fert()), ); @@ -214,7 +270,7 @@ class _DashState extends State { color: Color.fromRGBO(220, 220, 220, 50.0)), child: InkWell( onTap: () { - Navigator.push( + Navigator.push( context, MaterialPageRoute(builder: (context) => const Irr()), ); @@ -249,9 +305,9 @@ class _DashState extends State { color: Color.fromRGBO(220, 220, 220, 50.0)), child: InkWell( onTap: () { - Navigator.push( + Navigator.push( context, - MaterialPageRoute(builder: (context) => const Mark()), + MaterialPageRoute(builder: (context) => const Mark()), ); }, child: Column( diff --git a/pubspec.lock b/pubspec.lock index 6e0f2d9..80395f3 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,7 +7,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.8.1" + version: "2.8.2" boolean_selector: dependency: transitive description: @@ -42,7 +42,7 @@ packages: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" charcode: dependency: transitive description: @@ -302,7 +302,14 @@ packages: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.10" + version: "0.12.11" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.3" meta: dependency: transitive description: @@ -402,12 +409,12 @@ packages: source: hosted version: "3.7.0" platform: - dependency: transitive + dependency: "direct main" description: name: platform url: "https://pub.dartlang.org" source: hosted - version: "3.0.2" + version: "3.1.0" plugin_platform_interface: dependency: transitive description: @@ -552,7 +559,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.2" + version: "0.4.8" typed_data: dependency: transitive description: @@ -573,7 +580,7 @@ packages: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" webview_flutter: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 53b3816..bdcb691 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -45,6 +45,7 @@ dependencies: cached_network_image: permission_handler: webview_flutter: ^2.3.1 + platform: ^3.1.0