post capsule

NOTIF_CAPSULE_LDE
Lucas Delanier 2 years ago
parent 60ee9d2700
commit 497120a057

@ -16,6 +16,13 @@
</list> </list>
</value> </value>
</entry> </entry>
<entry key="another_flushbar">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/another_flushbar-1.12.30/lib" />
</list>
</value>
</entry>
<entry key="async"> <entry key="async">
<value> <value>
<list> <list>
@ -742,6 +749,7 @@
<CLASSES> <CLASSES>
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/_flutterfire_internals-1.3.4/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/_flutterfire_internals-1.3.4/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/animated_appear-0.0.4/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/animated_appear-0.0.4/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/another_flushbar-1.12.30/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/async-2.11.0/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/async-2.11.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/audioplayers-4.1.0/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/audioplayers-4.1.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/audioplayers_android-3.0.2/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/audioplayers_android-3.0.2/lib" />

@ -1,7 +1,10 @@
import 'package:another_flushbar/flushbar.dart';
import 'package:auto_size_text/auto_size_text.dart'; import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
import 'package:ionicons/ionicons.dart';
import 'package:zoom_tap_animation/zoom_tap_animation.dart';
import '../config/routes.dart'; import '../config/routes.dart';
import '../values/constants.dart'; import '../values/constants.dart';
@ -15,13 +18,59 @@ class TopNavBarComponent extends StatefulWidget {
State<TopNavBarComponent> createState() => _TopNavBarComponentState(); State<TopNavBarComponent> createState() => _TopNavBarComponentState();
} }
class _TopNavBarComponentState extends State<TopNavBarComponent> { class _TopNavBarComponentState extends State<TopNavBarComponent>
with TickerProviderStateMixin {
bool choice = true; bool choice = true;
late AnimationController _controller;
void actionSurBouton() { void actionSurBouton() {
widget.callback(choice); widget.callback(choice);
} }
@override
void initState() {
_controller = AnimationController(
vsync: this,
duration: Duration(seconds: 3),
);
super.initState();
}
void showCapsuleDot() {
Flushbar(
maxWidth: 210,
animationDuration: Duration(seconds: 1),
forwardAnimationCurve: Curves.easeOutCirc,
margin: EdgeInsets.fromLTRB(0, 0, 0, 0),
icon: Icon(
Ionicons.sparkles,
color: Colors.grey,
size: 22,
),
padding: EdgeInsets.fromLTRB(8, 8, 8, 8),
messageText: Align(
alignment: Alignment.centerLeft,
child: Text(
"Capsule disponible",
style: GoogleFonts.plusJakartaSans(color: Colors.grey, fontSize: 15),
),
),
flushbarStyle: FlushbarStyle.FLOATING,
flushbarPosition: FlushbarPosition.BOTTOM,
textDirection: Directionality.of(context),
borderRadius: BorderRadius.circular(1000),
borderWidth: 1,
borderColor: Colors.white.withOpacity(0.04),
duration: const Duration(minutes: 100),
leftBarIndicatorColor: Colors.transparent,
positionOffset: 20,
onTap: (_) {
Navigator.pop(context);
Navigator.pushNamed(context, '/post');
},
).show(context);
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Padding( return Padding(
@ -38,11 +87,12 @@ class _TopNavBarComponentState extends State<TopNavBarComponent> {
flex: 1, flex: 1,
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
Navigator.pushNamed(context, '/post'); showCapsuleDot();
}, },
child: const Image( child: const Icon(
image: AssetImage("assets/images/add_friend.png"), Icons.person_add_alt_1_rounded,
width: 25, color: Colors.white,
size: 30,
), ),
), ),
), ),
@ -51,10 +101,19 @@ class _TopNavBarComponentState extends State<TopNavBarComponent> {
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
const Image( ZoomTapAnimation(
image: AssetImage("assets/images/logo.png"), enableLongTapRepeatEvent: false,
height: 30, longTapRepeatDuration: const Duration(milliseconds: 100),
), begin: 1.0,
end: 0.97,
beginDuration: const Duration(milliseconds: 70),
endDuration: const Duration(milliseconds: 100),
beginCurve: Curves.decelerate,
endCurve: Curves.easeInOutSine,
child: Image(
image: AssetImage("assets/images/logo.png"),
height: 30,
)),
Row( Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -139,7 +198,7 @@ class _TopNavBarComponentState extends State<TopNavBarComponent> {
// Image radius // Image radius
child: const Image( child: const Image(
image: AssetImage("assets/images/exemple_profile.png"), image: AssetImage("assets/images/exemple_profile.png"),
width: 25, width: 30,
), ),
), ),
), ),

@ -1,3 +1,4 @@
import 'package:another_flushbar/flushbar.dart';
import 'package:circular_reveal_animation/circular_reveal_animation.dart'; import 'package:circular_reveal_animation/circular_reveal_animation.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -16,8 +17,7 @@ class FeedScreen extends StatefulWidget {
State<FeedScreen> createState() => _FeedScreenState(); State<FeedScreen> createState() => _FeedScreenState();
} }
class _FeedScreenState extends State<FeedScreen> class _FeedScreenState extends State<FeedScreen> with TickerProviderStateMixin {
with SingleTickerProviderStateMixin {
late AnimationController animationController; late AnimationController animationController;
late Animation<double> animation; late Animation<double> animation;
late List<PostComponent> friendFeed; late List<PostComponent> friendFeed;

@ -76,6 +76,12 @@ class _SearchSongScreenState extends State<SearchSongScreen> {
} }
} }
@override
void dispose() {
MyApp.audioPlayer.pause();
super.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double screenHeight = MediaQuery.of(context).size.height; double screenHeight = MediaQuery.of(context).size.height;

@ -17,6 +17,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.0.4" version: "0.0.4"
another_flushbar:
dependency: "direct main"
description:
name: another_flushbar
sha256: "19bf9520230ec40b300aaf9dd2a8fefcb277b25ecd1c4838f530566965befc2a"
url: "https://pub.dev"
source: hosted
version: "1.12.30"
async: async:
dependency: transitive dependency: transitive
description: description:

@ -64,6 +64,7 @@ dependencies:
geolocator: ^9.0.2 geolocator: ^9.0.2
tuple: ^2.0.2 tuple: ^2.0.2
firebase_storage: ^11.2.5 firebase_storage: ^11.2.5
another_flushbar: ^1.12.30
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:

Loading…
Cancel
Save