Skip to content

Commit ecdd9c8

Browse files
committed
Merge branch 'main' of github.com:22nd-Hoondong/Re-Frame
2 parents 351c090 + 7fe0e7d commit ecdd9c8

13 files changed

+384
-303
lines changed

lib/Bloc/friend_bloc.dart

+28-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import 'dart:async';
22

3+
import 'package:flutter/foundation.dart';
4+
35
import '../Models/friend_model.dart';
46
import '../Repository/friend_repository.dart';
57

68
class FriendBloc {
79
final _streamController = StreamController<List<FriendInfo>>.broadcast();
8-
Stream<List<FriendInfo>> get stream => _streamController.stream.asBroadcastStream();
10+
Stream<List<FriendInfo>> get stream =>
11+
_streamController.stream.asBroadcastStream();
912

1013
final repository = FriendRepository();
1114

@@ -25,14 +28,31 @@ class FriendBloc {
2528
return;
2629
}
2730

28-
var oldFriends = (await repository.getFriends()).map((e) => FriendInfo.fromJson(e)).toList();
29-
for (var element in oldFriends) {print(element.name);}
31+
var oldFriends = (await repository.getFriends())
32+
.map((e) => FriendInfo.fromJson(e))
33+
.toList();
34+
for (var element in oldFriends) {
35+
if (kDebugMode) {
36+
print(element.name);
37+
}
38+
}
3039

31-
var newFriends = (await repository.searchFriends(searchText)).map((e) => FriendInfo.fromJson(e)).toList();
32-
for (var element in newFriends) {print(element.name);}
40+
var newFriends = (await repository.searchFriends(searchText))
41+
.map((e) => FriendInfo.fromJson(e))
42+
.toList();
43+
for (var element in newFriends) {
44+
if (kDebugMode) {
45+
print(element.name);
46+
}
47+
}
3348

34-
var result = newFriends.where((element) => !oldFriends.contains(element)).toList();
35-
for (var element in result) {print(element.name);}
49+
var result =
50+
newFriends.where((element) => !oldFriends.contains(element)).toList();
51+
for (var element in result) {
52+
if (kDebugMode) {
53+
print(element.name);
54+
}
55+
}
3656

3757
result.removeWhere((element) => element.uid == repository.uid);
3858

@@ -46,4 +66,4 @@ class FriendBloc {
4666
void removeFriend(FriendInfo friend) async {
4767
await repository.removeFriend(friend.toSnapshot());
4868
}
49-
}
69+
}

lib/Models/friend_model.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:cloud_firestore/cloud_firestore.dart';
22
import 'package:equatable/equatable.dart';
33

4-
class FriendInfo extends Equatable{
4+
class FriendInfo extends Equatable {
55
late String name;
66
late String uid;
77
late String email;
@@ -39,4 +39,4 @@ class FriendInfo extends Equatable{
3939
@override
4040
// TODO: implement props
4141
List<Object?> get props => [name, email, uid];
42-
}
42+
}

lib/Models/photo_model.dart

+7-11
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
import 'package:cloud_firestore/cloud_firestore.dart';
22
import 'package:re_frame/Models/post_model.dart';
3-
import 'package:re_frame/Models/friend_model.dart';
43

54
class Photo {
65
late int colSize;
76
late int rowSize;
87
late Post post;
98
late String id;
109

11-
Photo({
12-
required this.colSize,
13-
required this.rowSize,
14-
required this.post,
15-
required this.id
16-
});
10+
Photo(
11+
{required this.colSize,
12+
required this.rowSize,
13+
required this.post,
14+
required this.id});
1715

1816
Photo.fromSnapshot(DocumentSnapshot snapshot) {
1917
Map<String, dynamic> data = snapshot.data() as Map<String, dynamic>;
@@ -30,9 +28,7 @@ class Photo {
3028
data['id'] = id;
3129
data['colSize'] = colSize;
3230
data['rowSize'] = rowSize;
33-
if (post != null) {
34-
data['post'] = post.toSnapshot();
35-
}
31+
data['post'] = post.toSnapshot();
3632
return data;
3733
}
38-
}
34+
}

lib/Models/post_model.dart

+4-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'package:cloud_firestore/cloud_firestore.dart';
2-
import 'package:re_frame/Models/photo_model.dart';
32
import 'package:re_frame/Models/friend_model.dart';
3+
import 'package:re_frame/Models/photo_model.dart';
44

55
class Post {
66
late String content;
@@ -41,12 +41,8 @@ class Post {
4141
data['id'] = id;
4242
data['content'] = content;
4343
data['date'] = date;
44-
if (people != null) {
45-
data['people'] = people.map((person) => person.toSnapshot()).toList();
46-
}
47-
if (photos != null) {
48-
data['photos'] = photos.map((photo) => photo.toSnapshot()).toList();
49-
}
44+
data['people'] = people.map((person) => person.toSnapshot()).toList();
45+
data['photos'] = photos.map((photo) => photo.toSnapshot()).toList();
5046
return data;
5147
}
52-
}
48+
}

lib/Pages/add_friends.dart

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'package:flutter/cupertino.dart';
21
import 'package:flutter/material.dart';
32
import 'package:re_frame/main.dart';
43

lib/Pages/calendar.dart

+34-18
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,19 @@ class _CalendarState extends State<Calendar> with MyHomePageStateMixin {
4242
Timestamp firebaseDate = postData["date"];
4343
DateTime postDate = DateTime.parse(firebaseDate.toDate().toString());
4444
Post newPostObj = Post(
45-
title: postData["title"],
46-
content: postData["content"],
47-
date: postDate,
48-
people: postData["people"],
49-
photos: postData["photos"]);
45+
title: postData["title"],
46+
content: postData["content"],
47+
date: postDate,
48+
people: postData["people"],
49+
photos: postData["photos"],
50+
id: element.id,
51+
);
5052
setState(() {
5153
if (kEvents.containsKey(postDate)) {
52-
kEvents[postDate]!.add(newPostObj);
54+
if (!kEvents[postDate]!
55+
.any((element) => newPostObj.isSameId(element))) {
56+
kEvents[postDate]!.add(newPostObj);
57+
}
5358
} else {
5459
kEvents[postDate] = [newPostObj];
5560
}
@@ -135,9 +140,18 @@ class _CalendarState extends State<Calendar> with MyHomePageStateMixin {
135140
rangeSelectionMode: _rangeSelectionMode,
136141
eventLoader: _getEventsForDay,
137142
startingDayOfWeek: StartingDayOfWeek.monday,
138-
calendarStyle: const CalendarStyle(
143+
calendarStyle: CalendarStyle(
139144
// Use `CalendarStyle` to customize the UI
140145
outsideDaysVisible: false,
146+
selectedDecoration: BoxDecoration(
147+
color: darkBackgroundColor,
148+
shape: BoxShape.circle,
149+
),
150+
// today 모양 조정
151+
todayDecoration: BoxDecoration(
152+
color: darkBackgroundColor.withOpacity(0.7),
153+
shape: BoxShape.circle,
154+
),
141155
),
142156
onDaySelected: _onDaySelected,
143157
onRangeSelected: _onRangeSelected,
@@ -151,18 +165,20 @@ class _CalendarState extends State<Calendar> with MyHomePageStateMixin {
151165
onPageChanged: (focusedDay) {
152166
_focusedDay = focusedDay;
153167
},
154-
calendarBuilders:
155-
CalendarBuilders(markerBuilder: (context, date, dynamic event) {
156-
if (event.isNotEmpty) {
157-
return Container(
158-
width: 35,
159-
decoration: BoxDecoration(
168+
calendarBuilders: CalendarBuilders(
169+
markerBuilder: (context, date, dynamic event) {
170+
if (event.isNotEmpty) {
171+
return Container(
172+
width: 35,
173+
decoration: BoxDecoration(
160174
color: pointColor.withOpacity(0.2),
161-
shape: BoxShape.circle),
162-
);
163-
}
164-
return null;
165-
}),
175+
shape: BoxShape.circle,
176+
),
177+
);
178+
}
179+
return null;
180+
},
181+
),
166182
),
167183
const SizedBox(height: 8.0),
168184
Expanded(

lib/Pages/friends.dart

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import 'package:flutter/material.dart';
2-
32
import 'package:re_frame/Bloc/friend_bloc.dart';
4-
import 'package:re_frame/main.dart';
53
import 'package:re_frame/Models/friend_model.dart';
64
import 'package:re_frame/Pages/add_friends.dart';
5+
import 'package:re_frame/main.dart';
76

87
class Friends extends StatefulWidget {
98
const Friends({super.key});
@@ -72,9 +71,9 @@ class _FriendsState extends State<Friends> with MyHomePageStateMixin {
7271
},
7372
background: Container(
7473
color: Colors.red,
75-
child: Icon(Icons.delete, color: Colors.white),
7674
alignment: Alignment.centerRight,
77-
padding: EdgeInsets.only(right: 16.0),
75+
padding: const EdgeInsets.only(right: 16.0),
76+
child: const Icon(Icons.delete, color: Colors.white),
7877
),
7978
child: ListTile(
8079
title: Text(result[index].name),

lib/Pages/login.dart

+21-17
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
import 'package:cloud_firestore/cloud_firestore.dart';
12
import 'package:firebase_auth/firebase_auth.dart';
3+
import 'package:flutter/foundation.dart';
24
import 'package:flutter/material.dart';
35
import 'package:google_sign_in/google_sign_in.dart';
4-
import 'package:cloud_firestore/cloud_firestore.dart';
56
import 'package:re_frame/main.dart';
67

78
class LoginPage extends StatefulWidget {
@@ -28,44 +29,48 @@ class _LoginPageState extends State<LoginPage> with MyHomePageStateMixin {
2829
child: Column(
2930
mainAxisAlignment: MainAxisAlignment.center,
3031
children: [
31-
Image.asset('images/Re-Frame_Logo.png',
32-
width: 300,
33-
height: 300,
32+
Image.asset(
33+
'images/Re-Frame_Logo.png',
34+
width: 300,
35+
height: 300,
36+
),
37+
const SizedBox(
38+
height: 60,
3439
),
35-
SizedBox(height: 60,),
3640
GestureDetector(
3741
onTap: () {
3842
signInWithGoogle();
3943
},
40-
child: Image.asset('images/[email protected]',
44+
child: Image.asset(
45+
4146
width: 250,
4247
),
4348
),
4449
],
4550
),
4651
),
47-
)
48-
);
52+
));
4953
}
5054

5155
Future<UserCredential> signInWithGoogle() async {
5256
// Trigger the authentication flow
5357
final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();
5458

5559
// Obtain the auth details from the request
56-
final GoogleSignInAuthentication? googleAuth = await googleUser?.authentication;
60+
final GoogleSignInAuthentication? googleAuth =
61+
await googleUser?.authentication;
5762

5863
// Create a new credential
5964
final credential = GoogleAuthProvider.credential(
6065
accessToken: googleAuth?.accessToken,
6166
idToken: googleAuth?.idToken,
6267
);
6368

64-
final UserCredential loginResult = await FirebaseAuth.instance.signInWithCredential(credential);
65-
final String? uid = loginResult.user?.uid; // firestore key 값
66-
final String? displayName = loginResult.user?.displayName; // name으로 필드에 추가
69+
final UserCredential loginResult =
70+
await FirebaseAuth.instance.signInWithCredential(credential);
71+
final String? uid = loginResult.user?.uid; // firestore key 값
72+
final String? displayName = loginResult.user?.displayName; // name으로 필드에 추가
6773
final String? email = loginResult.user?.email;
68-
print(uid);
6974

7075
// 별도 회원가입 로직 XX
7176
DocumentSnapshot signedUpUser = await db.collection("users").doc(uid).get();
@@ -81,9 +86,8 @@ class _LoginPageState extends State<LoginPage> with MyHomePageStateMixin {
8186

8287
@override
8388
void onPageVisible() {
84-
print('changed to login');
89+
if (kDebugMode) {
90+
print('changed to login');
91+
}
8592
}
8693
}
87-
88-
89-

0 commit comments

Comments
 (0)