Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flutter updated #153

Merged
merged 3 commits into from
Jan 20, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"dart.flutterSdkPath": "/Users/mac/fvm/versions/1.22.6"
"dart.flutterSdkPath": "E:\\flutter_windows_2.8.1-stable\\flutter",
"dart.sdkPath": "E:\\flutter_windows_2.8.1-stable\\flutter\\bin\\cache\\dart-sdk"
}
12 changes: 6 additions & 6 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
compileSdkVersion 29
compileSdkVersion 31

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
Expand All @@ -40,7 +40,7 @@ android {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.books_app"
minSdkVersion 23
targetSdkVersion 29
targetSdkVersion 31
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName

Expand Down Expand Up @@ -68,15 +68,15 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation platform('com.google.firebase:firebase-bom:26.3.0')
implementation 'com.google.firebase:firebase-analytics'
implementation "androidx.browser:browser:1.3.0"
implementation "androidx.browser:browser:1.4.0"
// implementation 'androidx.multidex:multidex:2.0.1'

// if you are using AndroidX its better to use above dependence for multiDex
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.google.firebase:firebase-auth'
implementation 'com.google.android.gms:play-services-auth:19.0.0'
implementation 'com.facebook.android:facebook-android-sdk:[5,6)'
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'com.google.android.gms:play-services-auth:20.0.0'
implementation 'com.facebook.android:facebook-android-sdk:5.15.3'
implementation 'androidx.appcompat:appcompat:1.4.0'

//implementation 'com.android.support:1.0.3'
// https://firebase.google.com/docs/android/setup#available-libraries
Expand Down
4 changes: 2 additions & 2 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ buildscript {

dependencies {
// classpath "com.android.tools.build:gradle:3.5.4"
classpath "com.android.tools.build:gradle:4.1.0"
classpath "com.android.tools.build:gradle:4.0.2"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.5'
classpath 'com.google.gms:google-services:4.3.10'
}
}

Expand Down
4 changes: 3 additions & 1 deletion android/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
org.gradle.jvmargs=-Xmx1536M
# org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
android.enableD8=true
MAPBOX_DOWNLOADS_TOKEN='sk.eyJ1IjoiZXhwbHIiLCJhIjoiY2tsa3oxamczMDlqdDJvbXd4dWFuZmNyNCJ9.Qf1XIwZtjuKfmoKgzI4I5g'
org.gradle.jvmargs=-Xmx1024m
# org.gradle.jvmargs=-Xmx1024M
3 changes: 2 additions & 1 deletion android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\:https://services.gradle.org/distributions/gradle-6.5-all.zip
#distributionUrl=https\:https://services.gradle.org/distributions/gradle-6.5-all.zip
distributionUrl=https\:https://services.gradle.org/distributions/gradle-6.6.1-all.zip
5 changes: 5 additions & 0 deletions gen/GradleException.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
class GradleException {
GradleException(String s) {

}
}
10 changes: 5 additions & 5 deletions lib/providers/book.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import 'package:flutter/cupertino.dart';
class Book with ChangeNotifier {
// final String id;
final String? isbn;
final String? title;
final String title;
final String? author;
final String? imageUrl;
final String? userid;
Expand All @@ -20,11 +20,11 @@ class Book with ChangeNotifier {
Book({
// this.id,
this.isbn,
this.title='',
this.author,
this.imageUrl = '',
required this.title ,
this.author = '',
this.imageUrl,
this.userid,
this.description,
this.description = '',
this.genre,
this.rating = 0,
this.isBookMarked = false,
Expand Down
12 changes: 6 additions & 6 deletions lib/providers/books.dart
Original file line number Diff line number Diff line change
Expand Up @@ -184,13 +184,13 @@ class Books with ChangeNotifier {
final String? infoLink =
result['items'][0]['volumeInfo']['infoLink'] as String?;
final int? pages = result['items'][0]['volumeInfo']['pageCount'] as int?;
String? imageLink, title, author;
String imageLink, title = '', author = '';
try {
title = result['items'][0]['volumeInfo']['title'] as String?;
author = result['items'][0]['volumeInfo']['authors'][0] as String?;
imageLink = result['items'][0]['volumeInfo']['imageLinks']['thumbnail']
as String?;
imageLink = imageLink!.replaceFirst('http', 'https', 0);
title = result['items'][0]['volumeInfo']['title'] as String;
author = result['items'][0]['volumeInfo']['authors'][0] as String;
imageLink =
result['items'][0]['volumeInfo']['imageLinks']['thumbnail'] as String;
imageLink = imageLink.replaceFirst('http', 'https', 0);
} catch (e) {
imageLink =
'https://upload.wikimedia.org/wikipedia/commons/thumb/6/65/No-Image-Placeholder.svg/1200px-No-Image-Placeholder.svg.png';
Expand Down
1 change: 0 additions & 1 deletion lib/screens/add_book.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import 'package:books_app/services/auth.dart';
import 'package:books_app/services/database_service.dart';
import 'package:books_app/widgets/button.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';

Expand Down
55 changes: 37 additions & 18 deletions lib/screens/book_desciption.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import 'package:books_app/widgets/rating.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:readmore/readmore.dart';
import 'package:url_launcher/url_launcher.dart';

class BookDescription extends StatefulWidget {
final Book? bookFromList;
Expand Down Expand Up @@ -113,7 +114,7 @@ class _BookDescriptionState extends State<BookDescription>
),
),
Text(
widget.bookFromList!.title!,
widget.bookFromList!.title,
textAlign: TextAlign.center,
style: GoogleFonts.poppins(
color: Colors.black,
Expand Down Expand Up @@ -234,7 +235,7 @@ class _BookDescriptionState extends State<BookDescription>
],
),
)
else
else if (widget.bookFromList!.userid != null)
Button(
// color: blackButton,
name: 'Exchange this Book',
Expand All @@ -249,22 +250,37 @@ class _BookDescriptionState extends State<BookDescription>
padding: const EdgeInsets.all(15.0),
child: Column(
children: <Widget>[
Button(
name: 'Exchange this Book',
color: Theme.of(context).colorScheme.onSecondary,
textColor: Colors.white,
myFunction: () => showErrorDialog(
context,
'Note : The exchange will be done on the consent of both the users and an autogenerated mail will be sent to both when the exchange gets finally completed',
),
),
Button(
// color: blackButton,
name: 'Visit Profile',
myFunction: () async {
Navigator.pushNamed(context, Routes.PUBLIC_PROFILE);
},
)
// if(widget.bookFromList!.userid !=null){}
if (widget.bookFromList!.userid != null)
Column(
children: [
Button(
name: 'Exchange this Book',
color: Theme.of(context).colorScheme.onSecondary,
textColor: Colors.white,
myFunction: () => showErrorDialog(
context,
'Note : The exchange will be done on the consent of both the users and an autogenerated mail will be sent to both when the exchange gets finally completed',
),
),
Button(
// color: blackButton,
name: 'Visit Profile',
myFunction: () async {
Navigator.pushNamed(
context, Routes.PUBLIC_PROFILE);
},
)
],
)
else
Button(
name: 'Purchase Ebook',
color: Theme.of(context).colorScheme.onSecondary,
textColor: Colors.white,
myFunction: () => _canLaunchUrl(
'${widget.bookFromList!.infoLink}'))

// Button(context, blackButton, 'Visit Profile',
// Routes.PUBLIC_PROFILE),
// button(context, greenButton, 'Exchange this Book',
Expand Down Expand Up @@ -292,6 +308,9 @@ class _BookDescriptionState extends State<BookDescription>
super.initState();
}

Future<void> _canLaunchUrl(String url) async => canLaunch(url) != null
? await launch(url)
: throw 'Could not open the play store link';
// Widget ratings() {
// return Padding(
// padding: const EdgeInsets.all(15.0),
Expand Down
24 changes: 22 additions & 2 deletions lib/screens/chat.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,29 @@
import 'package:books_app/widgets/empty_page.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';

class ChatScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return const EmptyPageWidget(headline: 'No chats available');
return Scaffold(
body: ListView.builder(
itemCount: 7,
itemBuilder: (BuildContext ctx, int idx) => Container(
padding: const EdgeInsets.all(5),
child: Text('Chat testing'),
)),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.message),
onPressed: () {
//We'll fetch data from Firestore here
//So with this, we're telling Firestore that we want to get access to the messages collection inside the chat collection
FirebaseFirestore.instance
.collection('chats/gJIMmk9z08nPa2Y3cYJ8/messages')
.snapshots()
.listen((QuerySnapshot<Map<String, dynamic>> event) {
print(event.docs[0]['text']);
event.docs.forEach((QueryDocumentSnapshot<Map<String, dynamic>> element) {print(element['text']);});
});
}),
);
}
}
2 changes: 1 addition & 1 deletion lib/screens/dashboard/bookcard.dart
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class BookCard extends StatelessWidget {
padding: const EdgeInsets.all(5),
width: getProportionateScreenWidth(100),
child: Text(
book.title!,
book.title,
softWrap: true,
textWidthBasis: TextWidthBasis.parent,
style: GoogleFonts.poppins(
Expand Down
1 change: 1 addition & 0 deletions lib/screens/home.dart
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ class _HomeState extends State<Home> {
),
StreamProvider<List<Book>>.value(
value: _databaseService.booksData,
catchError: (_, Object? e) => <Book>[],
initialData: const <Book>[],
),
],
Expand Down
1 change: 0 additions & 1 deletion lib/screens/more.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';

Expand Down
1 change: 0 additions & 1 deletion lib/screens/profile/public_profile.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'package:books_app/constants/routes.dart';
import 'package:books_app/providers/books.dart';
import 'package:books_app/widgets/button.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
Expand Down
61 changes: 37 additions & 24 deletions lib/services/database_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -161,12 +161,12 @@ class DatabaseService {
.doc(uid)
.collection('ownedBooks')
.get()
.then((QuerySnapshot <Object?>value) => booksList(value));
.then((QuerySnapshot<Object?> value) => booksList(value));
return res;
}

Stream<UserData> getUserData(String? userid) {
return userDataCollection.doc(userid).snapshots().map(
return userDataCollection.doc(userid ?? '').snapshots().map(
(DocumentSnapshot<dynamic> snapshot) =>
_userDataFromSnapShot(snapshot as DocumentSnapshot<Object>));
// .map(_userDataFromSnapShot);
Expand Down Expand Up @@ -233,20 +233,28 @@ class DatabaseService {

// final DocumentReference docReference =
// booksCollection.doc(uid).collection('ownedBooks').doc(book.isbn);
await userDataCollection
.doc(uid)
.collection('ownedBooks')
.doc(book.isbn)
.update(<String, bool?>{
await userDataCollection.doc(uid).collection('ownedBooks').doc(book.isbn)
// .update(<String, bool?>{
.set(<String, dynamic>{
'isBookMarked': book.isBookMarked,
'title': book.title,
'description': book.description,
'author': book.author,
'isbn': book.isbn,
'imageUrl': book.imageUrl,
});

await booksCollection
.doc(uid)
.collection('ownedBooks')
.doc(book.isbn)
.update(<String, bool?>{
.set(<String, dynamic>{
'isBookMarked': book.isBookMarked,
'title': book.title,
'description': book.description,
'author': book.author,
'isbn': book.isbn,
'imageUrl': book.imageUrl,
});
}

Expand Down Expand Up @@ -335,27 +343,32 @@ class DatabaseService {
}, SetOptions(merge: true));
}

List<Book> _bookFromQuerySnapShot(QuerySnapshot <Object?>snapshot) {
return snapshot.docs.map((QueryDocumentSnapshot <Object?>doc) {
List<Book> _bookFromQuerySnapShot(QuerySnapshot<Object?> snapshot) {
return snapshot.docs.map((QueryDocumentSnapshot<Object?> doc) {
return Book(
// rating: doc.data()['rating'] as double,
isOwned: (doc.data()! as Map<String, dynamic>)['isOwned'] as bool?,
userid: (doc.data()! as Map<String, dynamic>)['userid'] as String?,
isBookMarked:
(doc.data()! as Map<String, dynamic>)['isBookMarked'] as bool?,
imageUrl:
(doc.data()! as Map<String, dynamic>)['imageUrl'] as String?,
title: (doc.data()! as Map<String, dynamic>)['title'] as String?,
isbn: (doc.data()! as Map<String, dynamic>)['isbn'] as String?,
author: (doc.data()! as Map<String, dynamic>)['author'] as String?,
description:
(doc.data()! as Map<String, dynamic>)['description'] as String?);
// rating: doc.data()['rating'] as double,
isOwned: (doc.data()! as Map<String, dynamic>)['isOwned'] as bool?,
userid: (doc.data()! as Map<String, dynamic>)['userid'] as String?,
isBookMarked:
(doc.data()! as Map<String, dynamic>)['isBookMarked'] as bool?,
imageUrl: (doc.data()! as Map<String, dynamic>)['imageUrl']
as String? ??
'https://images.unsplash.com/photo-1541963463532-d68292c34b19?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=388&q=80',
// 'assets/images/Explr Logo.png',
title: (doc.data()! as Map<String, dynamic>)['title'] as String,

isbn: (doc.data()! as Map<String, dynamic>)['isbn'] as String?,

author: (doc.data()! as Map<String, dynamic>)['author'] as String?,
description:
(doc.data()! as Map<String, dynamic>)['description'] as String?,
);
}).toList();
}

UserData _userDataFromSnapShot(DocumentSnapshot <Object?>documentSnapshot) {
UserData _userDataFromSnapShot(DocumentSnapshot<Object?> documentSnapshot) {
return UserData(
uid: uid,
uid: uid ?? '',
displayName: (documentSnapshot.data()!
as Map<String, dynamic>)['displayName'] as String? ??
'Enter Name',
Expand Down
Loading