Compare commits
10 Commits
master
...
DEPLOY_GOO
Author | SHA1 | Date |
---|---|---|
|
e818e70ab5 | 2 years ago |
|
0c2ef92b89 | 2 years ago |
|
6af66779c7 | 2 years ago |
|
673f2c5846 | 2 years ago |
|
0f46d2303c | 2 years ago |
|
63d073a005 | 2 years ago |
|
7c0ff5ddf0 | 2 years ago |
|
0b87f2bfba | 2 years ago |
|
e70e0dc407 | 2 years ago |
|
640c20b341 | 2 years ago |
Before Width: | Height: | Size: 162 KiB |
Before Width: | Height: | Size: 844 KiB |
@ -1,5 +0,0 @@
|
||||
{
|
||||
"projects": {
|
||||
"default": "justmusic-435d5"
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 22 KiB |
@ -1,17 +0,0 @@
|
||||
{
|
||||
"hosting": {
|
||||
"site": "justmusic-435d5",
|
||||
"public": "build/web",
|
||||
"ignore": [
|
||||
"firebase.json",
|
||||
"**/.*",
|
||||
"**/node_modules/**"
|
||||
],
|
||||
"rewrites": [
|
||||
{
|
||||
"source": "**",
|
||||
"destination": "/index.html"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 295 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 406 B |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 450 B |
Before Width: | Height: | Size: 729 B After Width: | Height: | Size: 282 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 462 B |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 704 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 406 B |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 586 B |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 862 B |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 862 B |
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 762 B |
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 1.4 KiB |
@ -1,36 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CLIENT_ID</key>
|
||||
<string>994903990520-n6jd98ena56kb1tvtrd67tvb5et3nfbf.apps.googleusercontent.com</string>
|
||||
<key>REVERSED_CLIENT_ID</key>
|
||||
<string>com.googleusercontent.apps.994903990520-n6jd98ena56kb1tvtrd67tvb5et3nfbf</string>
|
||||
<key>ANDROID_CLIENT_ID</key>
|
||||
<string>994903990520-073l30b0afj0uq7apsvc8p8ukantpu6q.apps.googleusercontent.com</string>
|
||||
<key>API_KEY</key>
|
||||
<string>AIzaSyBbYqsR6t7JTi8_XFNEHd43IRuKlYGeI3U</string>
|
||||
<key>GCM_SENDER_ID</key>
|
||||
<string>994903990520</string>
|
||||
<key>PLIST_VERSION</key>
|
||||
<string>1</string>
|
||||
<key>BUNDLE_ID</key>
|
||||
<string>com.example.justmusic</string>
|
||||
<key>PROJECT_ID</key>
|
||||
<string>justmusic-435d5</string>
|
||||
<key>STORAGE_BUCKET</key>
|
||||
<string>justmusic-435d5.appspot.com</string>
|
||||
<key>IS_ADS_ENABLED</key>
|
||||
<false></false>
|
||||
<key>IS_ANALYTICS_ENABLED</key>
|
||||
<false></false>
|
||||
<key>IS_APPINVITE_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_GCM_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_SIGNIN_ENABLED</key>
|
||||
<true></true>
|
||||
<key>GOOGLE_APP_ID</key>
|
||||
<string>1:994903990520:ios:93188f32e320babe0a9b0d</string>
|
||||
</dict>
|
||||
</plist>
|
@ -1,34 +0,0 @@
|
||||
import 'package:tuple/tuple.dart';
|
||||
|
||||
import 'Music.dart';
|
||||
|
||||
class Capsule {
|
||||
final String _id;
|
||||
late Music _music;
|
||||
Tuple2<String?,String?> _location;
|
||||
DateTime _date;
|
||||
|
||||
// Constructor
|
||||
Capsule(this._id, this._location, this._date);
|
||||
|
||||
//Getters and setters
|
||||
String get id => _id;
|
||||
|
||||
Music get music => _music;
|
||||
|
||||
set music(Music value) {
|
||||
_music = value;
|
||||
}
|
||||
|
||||
Tuple2<String?, String?> get location => _location;
|
||||
|
||||
set location(Tuple2<String?, String?> value) {
|
||||
_location = value;
|
||||
}
|
||||
|
||||
DateTime get date => _date;
|
||||
|
||||
set date(DateTime value) {
|
||||
_date = value;
|
||||
}
|
||||
}
|
@ -1,98 +1,98 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:justmusic/values/constants.dart';
|
||||
|
||||
import '../components/join_button.dart';
|
||||
|
||||
class WellcomeScreen extends StatelessWidget {
|
||||
const WellcomeScreen({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Container(
|
||||
padding: EdgeInsets.all(defaultPadding),
|
||||
width: double.infinity,
|
||||
height: double.infinity,
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/wellcome_background.png"),
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
child: Align(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 10,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(bottom: 100),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Bienvenue sur,",
|
||||
style: GoogleFonts.plusJakartaSans(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 34),
|
||||
),
|
||||
Image(
|
||||
image: AssetImage("assets/images/logo.png"),
|
||||
width: 230,
|
||||
),
|
||||
SizedBox(
|
||||
height: 25,
|
||||
),
|
||||
ConstrainedBox(
|
||||
constraints: BoxConstraints(maxWidth: 520),
|
||||
child: Text(
|
||||
"Explore les nouvelles découvertes musicales de tes amis, et partage leur ton mood.",
|
||||
style: GoogleFonts.plusJakartaSans(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w200,
|
||||
fontSize: 15),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
flex: 3,
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
JoinButton(),
|
||||
SizedBox(
|
||||
height: defaultPadding,
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Navigator.pushNamed(context, '/login');
|
||||
},
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(3.0),
|
||||
child: Text(
|
||||
"Tu as déja un compte ? Connexion",
|
||||
style: GoogleFonts.plusJakartaSans(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w400,
|
||||
fontSize: 15),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
) /* add child content here */,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:justmusic/values/constants.dart';
|
||||
|
||||
import '../components/join_button.dart';
|
||||
|
||||
class WellcomeScreen extends StatelessWidget {
|
||||
const WellcomeScreen({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Container(
|
||||
padding: EdgeInsets.all(defaultPadding),
|
||||
width: double.infinity,
|
||||
height: double.infinity,
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/wellcome_background.png"),
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
child: Align(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 10,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(bottom: 100),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Bienvenue sur,",
|
||||
style: GoogleFonts.plusJakartaSans(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 34),
|
||||
),
|
||||
Image(
|
||||
image: AssetImage("assets/images/logo.png"),
|
||||
width: 230,
|
||||
),
|
||||
SizedBox(
|
||||
height: 25,
|
||||
),
|
||||
ConstrainedBox(
|
||||
constraints: BoxConstraints(maxWidth: 520),
|
||||
child: Text(
|
||||
"Explore les nouvelles découvertes musicales de tes amis, et partage leur ton mood.",
|
||||
style: GoogleFonts.plusJakartaSans(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w200,
|
||||
fontSize: 15),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
flex: 3,
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
JoinButton(),
|
||||
SizedBox(
|
||||
height: defaultPadding,
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Navigator.pushNamed(context, '/login');
|
||||
},
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(3.0),
|
||||
child: Text(
|
||||
"Tu as déja un compte? Connexion",
|
||||
style: GoogleFonts.plusJakartaSans(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w400,
|
||||
fontSize: 15),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
) /* add child content here */,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -1,33 +0,0 @@
|
||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||
|
||||
class CapsuleService {
|
||||
Future<List<bool>> recapSevenDays(String id) async {
|
||||
List<bool> recapList = [];
|
||||
|
||||
DateTime sevenDaysAgo = DateTime.now().subtract(Duration(days: 6));
|
||||
|
||||
QuerySnapshot<Map<String, dynamic>> response = await FirebaseFirestore
|
||||
.instance
|
||||
.collection("capsules")
|
||||
.where("user_id", isEqualTo: id)
|
||||
.get();
|
||||
|
||||
List<Map<String, dynamic>?> capsuleList = response.docs
|
||||
.map((DocumentSnapshot<Map<String, dynamic>> doc) => doc.data())
|
||||
.toList();
|
||||
|
||||
for (int i = 0; i < 7; i++) {
|
||||
DateTime date = sevenDaysAgo.add(Duration(days: i));
|
||||
bool capsuleExists = capsuleList.any((post) =>
|
||||
post?["date"] != null &&
|
||||
post?["date"].toDate().year == date.year &&
|
||||
post?["date"].toDate().month == date.month &&
|
||||
post?["date"].toDate().day == date.day);
|
||||
|
||||
recapList.add(capsuleExists);
|
||||
}
|
||||
|
||||
return recapList;
|
||||
}
|
||||
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
const geoKey = "85a2724ad38b3994c2b7ebe1d239bbff";
|
||||
const clientId = "d9b82921bbdf43efa15d0c34c28c6f93";
|
||||
const clientSecret = "ba01687f59ea4ab7ad00c769e89e44d8";
|
||||
const keyApiFirebase =
|
||||
"AAAA56TmIPg:APA91bFeKMr_i6CbUuuUdFI1XkdaNE2A7OVHzxrPIsOSlDfhR6qzZwof7JNGxthWUKj1dRHQMheWNYaLbf3AtXUp9o4DX_gB2073yR4urqUEh9CjvnxVws_9g1cWMgmFS3EpaQEA3icC";
|
Before Width: | Height: | Size: 480 B |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 41 KiB |
@ -1,81 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<!--
|
||||
If you are serving your web app in a path other than the root, change the
|
||||
href value below to reflect the base path you are serving from.
|
||||
|
||||
The path provided below has to start and end with a slash "/" in order for
|
||||
it to work correctly.
|
||||
|
||||
For more details:
|
||||
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
|
||||
|
||||
This is a placeholder for base href that will be replaced by the value of
|
||||
the `--base-href` argument provided to `flutter build`.
|
||||
-->
|
||||
<base href="$FLUTTER_BASE_HREF">
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
|
||||
<meta name="description" content="A new Flutter project.">
|
||||
<meta name="google-signin-client_id" content="994903990520-pravk8o6o9ehkhe6asjrao4fmlve0lel.apps.googleusercontent.com">
|
||||
<!-- iOS meta tags & icons -->
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="apple-mobile-web-app-title" content="justmusic">
|
||||
<link rel="apple-touch-icon" href="icons/icon-192.png">
|
||||
|
||||
<!-- Favicon -->
|
||||
<link rel="icon" type="image/png" href="favicon.png"/>
|
||||
|
||||
<title>justmusic</title>
|
||||
<link rel="manifest" href="manifest.json">
|
||||
|
||||
<script>
|
||||
// The value below is injected by flutter build, do not touch.
|
||||
const serviceWorkerVersion = null;
|
||||
</script>
|
||||
<!-- This script adds the flutter initialization JS code -->
|
||||
<script src="flutter.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
window.addEventListener('load', function(ev) {
|
||||
// Download main.dart.js
|
||||
_flutter.loader.loadEntrypoint({
|
||||
serviceWorker: {
|
||||
serviceWorkerVersion: serviceWorkerVersion,
|
||||
},
|
||||
onEntrypointLoaded: function(engineInitializer) {
|
||||
engineInitializer.initializeEngine().then(function(appRunner) {
|
||||
appRunner.runApp();
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
<style>
|
||||
/* Centers flutter canvas with a size of the viewport*/
|
||||
flt-glass-pane {
|
||||
position: fixed !important; /* Overrides absolute from flutter */
|
||||
top: 50vh !important;
|
||||
left: 50vw !important;
|
||||
max-width: 100vw !important;
|
||||
max-height: 100vh !important;
|
||||
transform: translate(-50vw, -50vh) !important;
|
||||
}
|
||||
|
||||
/*
|
||||
Scrollbar hide doesn't work on iOS, they add a default one when overflow:true and -webkit-overflow-scrolling: touch;
|
||||
Sadly since iOS 13, this value is forced on iOS -> https://developer.apple.com/documentation/safari-release-notes/safari-13-release-notes
|
||||
*/
|
||||
::-webkit-scrollbar {
|
||||
display: false;
|
||||
width: 0px;
|
||||
height: 0px; /* Remove scrollbar space */
|
||||
background: transparent; /* Optional: just make scrollbar invisible */
|
||||
}
|
||||
</style>
|
@ -1,35 +0,0 @@
|
||||
{
|
||||
"name": "justmusic",
|
||||
"short_name": "justmusic",
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"background_color": "#0175C2",
|
||||
"theme_color": "#0175C2",
|
||||
"description": "A new Flutter project.",
|
||||
"orientation": "portrait-primary",
|
||||
"prefer_related_applications": false,
|
||||
"icons": [
|
||||
{
|
||||
"src": "icons/Icon-192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "icons/Icon-512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "icons/Icon-maskable-192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "icons/Icon-maskable-512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
}
|
||||
]
|
||||
}
|