Resolved VideoPlayer Bug on IOS

merge-requests/141/head
Faiz Hashmi 3 years ago
parent 73f5fc0a9a
commit 70861807c5

@ -17,14 +17,14 @@ class SponsorVideoScreen extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
MarathonProvider provider = context.watch<MarathonProvider>(); MarathonProvider provider = context.read<MarathonProvider>();
return WillPopScope( return WillPopScope(
onWillPop: () { onWillPop: () {
provider.timerForSponsorVideo.cancel();
provider.videoController.pause(); provider.videoController.pause();
provider.disposeVideoPlayer(); provider.disposeVideoPlayer();
provider.sponsorsSecondsCounter = 0; provider.sponsorsSecondsCounter = 0;
provider.totalSponsorVideoSeconds = 0; provider.totalSponsorVideoSeconds = 0;
provider.timerForSponsorVideo.cancel();
return Future<bool>.value(true); return Future<bool>.value(true);
}, },
child: Scaffold( child: Scaffold(
@ -49,49 +49,56 @@ class SponsorVideoScreen extends StatelessWidget {
borderRadius: provider.totalSponsorVideoSeconds == 0 ? null : BorderRadius.circular(15), borderRadius: provider.totalSponsorVideoSeconds == 0 ? null : BorderRadius.circular(15),
), ),
padding: const EdgeInsets.symmetric(vertical: 5, horizontal: 8), padding: const EdgeInsets.symmetric(vertical: 5, horizontal: 8),
child: provider.totalSponsorVideoSeconds == 0 child: Consumer<MarathonProvider>(
? InkWell( builder: (BuildContext context, MarathonProvider provider, Widget? child) {
onTap: () { return provider.totalSponsorVideoSeconds == 0
Navigator.pushReplacementNamed(context, AppRoutes.marathonIntroScreen); ? InkWell(
provider.videoController.pause(); onTap: () {
provider.disposeVideoPlayer(); Navigator.pushReplacementNamed(context, AppRoutes.marathonIntroScreen);
provider.sponsorsSecondsCounter = 0; provider.videoController.pause();
provider.totalSponsorVideoSeconds = 0; provider.disposeVideoPlayer();
provider.timerForSponsorVideo.cancel(); provider.sponsorsSecondsCounter = 0;
}, provider.totalSponsorVideoSeconds = 0;
child: const Icon(Icons.close, size: 12), provider.timerForSponsorVideo.cancel();
) },
: Directionality( child: const Icon(Icons.close, size: 12),
textDirection: ui.TextDirection.ltr, )
child: ("${LocaleKeys.ourSponsor.tr()} ${provider.totalSponsorVideoSeconds < 10 ? "0" : ""}${provider.totalSponsorVideoSeconds}").toText12(color: MyColors.darkTextColor), : Directionality(
), textDirection: ui.TextDirection.ltr,
child: ("${LocaleKeys.ourSponsor.tr()} ${provider.totalSponsorVideoSeconds < 10 ? "0" : ""}${provider.totalSponsorVideoSeconds}").toText12(color: MyColors.darkTextColor),
);
},
),
), ),
).paddingOnly(top: 20, right: 18), ).paddingOnly(top: 20, right: 18),
Consumer<MarathonProvider>(
//TODO: WE WILL INCREASE THIS 2 BEFORE GOING LIVE builder: (BuildContext context, MarathonProvider provider, Widget? child) {
provider.sponsorsSecondsCounter >= 2 //TODO: WE WILL INCREASE THIS 2 BEFORE GOING LIVE
? Align( return provider.sponsorsSecondsCounter >= 2
alignment: Alignment.topLeft, ? Align(
child: InkWell( alignment: Alignment.topLeft,
onTap: () { child: InkWell(
Navigator.pushReplacementNamed(context, AppRoutes.marathonIntroScreen); onTap: () {
provider.videoController.pause(); Navigator.pushReplacementNamed(context, AppRoutes.marathonIntroScreen);
provider.disposeVideoPlayer(); provider.videoController.pause();
provider.sponsorsSecondsCounter = 0; provider.disposeVideoPlayer();
provider.totalSponsorVideoSeconds = 0; provider.sponsorsSecondsCounter = 0;
provider.timerForSponsorVideo.cancel(); provider.totalSponsorVideoSeconds = 0;
}, provider.timerForSponsorVideo.cancel();
child: Container( },
decoration: BoxDecoration(color: MyColors.white, borderRadius: BorderRadius.circular(15)), child: Container(
padding: const EdgeInsets.symmetric(vertical: 3, horizontal: 6), decoration: BoxDecoration(color: MyColors.white, borderRadius: BorderRadius.circular(15)),
child: Directionality( padding: const EdgeInsets.symmetric(vertical: 3, horizontal: 6),
textDirection: ui.TextDirection.ltr, child: Directionality(
child: LocaleKeys.skip.tr().toText11(color: MyColors.darkTextColor), textDirection: ui.TextDirection.ltr,
child: LocaleKeys.skip.tr().toText11(color: MyColors.darkTextColor),
),
),
), ),
), ).paddingOnly(top: 20, left: 18)
), : const SizedBox();
).paddingOnly(top: 20, left: 18) },
: const SizedBox(), ),
], ],
), ),
), ),

@ -523,7 +523,7 @@ class MarathonBanner extends StatelessWidget {
).onPress(() async { ).onPress(() async {
int remainingTimeInMinutes = DateTime.parse(provider.marathonDetailModel.startTime!).difference(DateTime.now()).inMinutes; int remainingTimeInMinutes = DateTime.parse(provider.marathonDetailModel.startTime!).difference(DateTime.now()).inMinutes;
if (remainingTimeInMinutes > 2 && provider.marathonDetailModel.sponsors != null && provider.marathonDetailModel.sponsors!.isNotEmpty) { if (remainingTimeInMinutes > 5 && provider.marathonDetailModel.sponsors != null && provider.marathonDetailModel.sponsors!.isNotEmpty) {
Utils.showLoading(context); Utils.showLoading(context);
try { try {
await provider.initializeVideoPlayer().then((_) { await provider.initializeVideoPlayer().then((_) {

Loading…
Cancel
Save