Skip to content

Commit

Permalink
Merge pull request #40 from ashutoshsingh05/tinderPage
Browse files Browse the repository at this point in the history
something
  • Loading branch information
thecodepapaya committed Oct 20, 2019
2 parents 47ed714 + 6fa9029 commit cf5f79a
Show file tree
Hide file tree
Showing 4 changed files with 169 additions and 35 deletions.
8 changes: 4 additions & 4 deletions lib/models/participant.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ class Participant {
double experience;
String role;
double rating;
List<String> rightSwiped = new List<String>();
List<String> rightSwipes = new List<String>();
List<String> leftSwipes = new List<String>();
List<String> skills = new List<String>();
List<String> photos = new List<String>();

Expand Down Expand Up @@ -81,8 +81,8 @@ class Participant {
this.experience = snapshot["experience"];
this.role = snapshot["role"];
this.rating = snapshot["rating"];
this.rightSwiped = snapshot["rightSwiped"];
this.rightSwipes = snapshot["rightSwipes"];
this.rightSwipes = snapshot["rightSwiped"];
this.leftSwipes = snapshot["leftSwipes"];
this.skills = snapshot["skills"];
this.photos = snapshot["photos"];
}
Expand Down Expand Up @@ -111,7 +111,7 @@ class Participant {
"experience": this.experience,
"role": this.role,
"rating": this.rating,
"rightSwiped": <String>[],
"leftSwipes": <String>[],
"rightSwipes": <String>[],
"skills": <String>[],
};
Expand Down
85 changes: 84 additions & 1 deletion lib/screens/requestNotifications.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:timder/Utils/timder.dart';
import 'package:timder/Utils/timderScaffold.dart';
import 'package:timder/models/participant.dart';

class RequestNotification extends StatefulWidget {
@override
Expand All @@ -12,7 +15,87 @@ class _RequestNotificationState extends State<RequestNotification> {
return TimderScaffold(
title: "Matches",
showNotificationIcon: false,
body: Container(),
body: Container(
child: FutureBuilder<QuerySnapshot>(
future: Firestore.instance
.collection("participants")
.where("rightSwipes",
arrayContains: Timder.prefs.getString(Timder.emailPref))
.getDocuments(),
builder:
(BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.connectionState == ConnectionState.none ||
snapshot.connectionState == ConnectionState.waiting) {
return Center(
child: CircularProgressIndicator(),
);
} else {
if (snapshot.hasError) {
return Text("Error: ${snapshot.error}");
} else {
print(snapshot.data.documents.first.data["email"]);
List<Participant> matches =
List<Participant>(snapshot.data.documents.length);

return ListView.builder(
itemCount: snapshot.data.documents.length,
itemBuilder: (context, i) {
return ListTile(
title: Text(
snapshot.data.documents[i].data["displayName"]),
isThreeLine: true,
subtitle: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(snapshot.data.documents[i].data["bio"]),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
SizedBox(
width: 3,
),
snapshot.data.documents[i].data["backend"]
? Text("Backend")
: Text(""),
SizedBox(
width: 3,
),
snapshot.data.documents[i].data["design"]
? Text("design")
: Text(""),
SizedBox(
width: 3,
),
snapshot.data.documents[i].data["frontend"]
? Text("frontend")
: Text(""),
SizedBox(
width: 3,
),
snapshot.data.documents[i].data["mobile"]
? Text("mobile")
: Text(""),
SizedBox(
width: 3,
),
snapshot.data.documents[i].data["blockchain"]
? Text("blockchain")
: Text(""),
SizedBox(
width: 3,
),
],
),
],
));
},
);
}
}
},
),
),
);
}
}
2 changes: 1 addition & 1 deletion lib/screens/signInPage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ class _SignInPageState extends State<SignInPage> {
.document(user.email)
.setData(
{
"display_name": user.displayName,
"displayName": user.displayName,
"email": user.email,
"uid": user.uid,
"photoUrl": user.photoUrl,
Expand Down
109 changes: 80 additions & 29 deletions lib/screens/timderSwipe.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:timder/models/participant.dart';
import 'package:tinder_card/cards.dart';
import 'package:timder/Utils/timder.dart';
import 'package:timder/Utils/timderScaffold.dart';
import 'package:flutter_tindercard/flutter_tindercard.dart';

Expand All @@ -12,10 +11,6 @@ class TimderSwipe extends StatefulWidget {

class _TimderSwipeState extends State<TimderSwipe> {
bool isRight = false;
List<String> cards = [
"https://hackinout.co/img/hero.png",
"https://hackinout.co/img/hero.png",
];
CardController controller = CardController();
@override
Widget build(BuildContext context) {
Expand All @@ -39,51 +34,107 @@ class _TimderSwipeState extends State<TimderSwipe> {
child: Text("Error: ${snapshot.error}"),
);
}

/// else {
// List<Participant> individualParticipants =
// List<Participant>(snapshot.data.documents.length);
// for (int i = 0; i < snapshot.data.documents.length; i++) {
// individualParticipants[i] =
// Participant.fromJSON(snapshot.data.documents[i].data);
// }
// print(snapshot.data.documents[0].data);
// return TinderSwapCard(
// demoProfiles: individualParticipants,
// myCallback: (decision) {
// print("Desision ${decision.index}");
// },
// );
return TinderSwapCard(
orientation: AmassOrientation.TOP,
totalNum: 2,
stackNum: 2,
totalNum: snapshot.data.documents.length,
stackNum: snapshot.data.documents.length,
swipeEdge: 4.0,
maxWidth: MediaQuery.of(context).size.width * 0.9,
maxHeight: MediaQuery.of(context).size.width * 0.9,
maxHeight: MediaQuery.of(context).size.height * 0.8,
minWidth: MediaQuery.of(context).size.width * 0.8,
minHeight: MediaQuery.of(context).size.width * 0.8,
cardBuilder: (context, index) => Card(
child: Image.network(
snapshot.data.documents[index].data["photoUrl"]),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Image.network(
snapshot.data.documents[index].data["photoUrl"],
),
SizedBox(
height: 10,
),
Text(snapshot.data.documents[index].data["displayName"]),
SizedBox(
height: 10,
),
Text(snapshot.data.documents[index].data["bio"]),
SizedBox(
height: 10,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
SizedBox(
width: 3,
),
snapshot.data.documents[index].data["backend"]
? Text("Backend")
: Text(""),
SizedBox(
width: 3,
),
snapshot.data.documents[index].data["design"]
? Text("design")
: Text(""),
SizedBox(
width: 3,
),
snapshot.data.documents[index].data["frontend"]
? Text("frontend")
: Text(""),
SizedBox(
width: 3,
),
snapshot.data.documents[index].data["mobile"]
? Text("mobile")
: Text(""),
SizedBox(
width: 3,
),
snapshot.data.documents[index].data["blockchain"]
? Text("blockchain")
: Text(""),
SizedBox(
width: 3,
),
],
),
],
),
),
cardController: controller,
swipeUpdateCallback:
(DragUpdateDetails details, Alignment align) async{
(DragUpdateDetails details, Alignment align) {
/// Get swiping card's alignment
if (align.x < 0) {
isRight = false;
//Card is LEFT swiping
} else if (align.x > 0) {
isRight = true;
//Card is RIGHT swiping
// await Firestore.instance.collection("")
}
},
swipeCompleteCallback:
(CardSwipeOrientation orientation, int index) {
(CardSwipeOrientation orientation, int index) async {
/// Get orientation & index of swiped card!
print("Just Swiped Right $isRight");
if (isRight) {
await Firestore.instance
.collection("participants")
.document(snapshot.data.documents[index].data["email"])
.updateData({
"rightSwipes": FieldValue.arrayUnion(
[Timder.prefs.getString(Timder.emailPref)]),
});
} else {
await Firestore.instance
.collection("participants")
.document(snapshot.data.documents[index].data["email"])
.updateData({
"leftSwipes": FieldValue.arrayUnion(
[Timder.prefs.getString(Timder.emailPref)]),
});
}
},
);
}
Expand Down

0 comments on commit cf5f79a

Please sign in to comment.