Resolved VideoPlayer Bug on IOS

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

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

Loading…
Cancel
Save