Skip to content

Commit f212621

Browse files
committed
Fix media playback
1 parent cf6c19d commit f212621

File tree

14 files changed

+354
-237
lines changed

14 files changed

+354
-237
lines changed

src/Bible.Alarm/App.xaml.cs

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Bible.Alarm.ViewModels;
66
using Bible.Alarm.Views;
77
using Bible.Alarm.Views.General;
8+
using CommunityToolkit.Maui.Views;
89
using CommunityToolkit.Mvvm.Messaging;
910
using Serilog;
1011

@@ -13,8 +14,6 @@ namespace Bible.Alarm;
1314
public partial class App : Application,
1415
IRecipient<ShowAlarmModalMessage>,
1516
IRecipient<HideAlarmModalMessage>,
16-
IRecipient<ShowMediaProgressModalMessage>,
17-
IRecipient<HideMediaProgressModalMessage>,
1817
IRecipient<ShowToastMessage>,
1918
IRecipient<ClearToastsMessage>,
2019
IRecipient<InitializedMessage>
@@ -37,22 +36,20 @@ public App(ILogger logger, IServiceProvider serviceProvider, INavigationService
3736

3837
WeakReferenceMessenger.Default.Register<ShowAlarmModalMessage>(this);
3938
WeakReferenceMessenger.Default.Register<HideAlarmModalMessage>(this);
40-
WeakReferenceMessenger.Default.Register<ShowMediaProgressModalMessage>(this);
41-
WeakReferenceMessenger.Default.Register<HideMediaProgressModalMessage>(this);
4239
WeakReferenceMessenger.Default.Register<ShowToastMessage>(this);
4340
WeakReferenceMessenger.Default.Register<ClearToastsMessage>(this);
4441
}
4542

4643
protected override Window CreateWindow(IActivationState activationState)
4744
{
48-
var loadingPage = _serviceProvider.GetRequiredService<LoadingPage>();
49-
var navigationPage = new NavigationPage(loadingPage)
45+
var bootstrapPage = _serviceProvider.GetRequiredService<BootstrapPage>();
46+
var navigationPage = new NavigationPage(bootstrapPage)
5047
{
5148
BarBackgroundColor = Colors.Transparent,
5249
BarTextColor = Colors.White
5350
};
5451

55-
NavigationPage.SetHasNavigationBar(loadingPage, false);
52+
NavigationPage.SetHasNavigationBar(bootstrapPage, false);
5653

5754
var window = new Window(navigationPage);
5855

@@ -133,11 +130,16 @@ public void Receive(ShowAlarmModalMessage message)
133130
{
134131
_ = MainThread.InvokeOnMainThreadAsync(async () =>
135132
{
136-
var playbackService = _serviceProvider.GetRequiredService<IPlaybackService>();
137-
if (!playbackService.IsPlaying)
138-
return;
139-
140-
await _navigationService.OpenAlarmModalAsync();
133+
try
134+
{
135+
_logger.Information("ShowAlarmModalMessage received");
136+
await _navigationService.OpenAlarmModalAsync();
137+
_logger.Information("AlarmModal opened");
138+
}
139+
catch (Exception ex)
140+
{
141+
_logger.Error(ex, "Error showing AlarmModal");
142+
}
141143
});
142144
}
143145

@@ -149,21 +151,6 @@ public void Receive(HideAlarmModalMessage message)
149151
});
150152
}
151153

152-
public void Receive(ShowMediaProgressModalMessage message)
153-
{
154-
_ = MainThread.InvokeOnMainThreadAsync(async () =>
155-
{
156-
await _navigationService.OpenMediaProgressModalAsync();
157-
});
158-
}
159-
160-
public void Receive(HideMediaProgressModalMessage message)
161-
{
162-
_ = MainThread.InvokeOnMainThreadAsync(async () =>
163-
{
164-
await _navigationService.PopModalAsync();
165-
});
166-
}
167154

168155
public void Receive(ShowToastMessage message)
169156
{

src/Bible.Alarm/Common/Interfaces/UI/INavigationService.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using CommunityToolkit.Maui.Views;
2+
13
namespace Bible.Alarm.Common.Interfaces.UI;
24

35
public interface INavigationService
@@ -13,9 +15,9 @@ public interface INavigationService
1315
Task OpenNumberOfChaptersModalAsync(object bindingContext);
1416
Task OpenLanguageModalAsync(object bindingContext);
1517
Task OpenAlarmModalAsync();
16-
Task OpenMediaProgressModalAsync();
1718
Task OpenBatteryOptimizationModalAsync(object bindingContext);
1819
Task PopModalAsync();
1920
Task PopAsync();
21+
MediaElement GetMediaElement();
2022
}
2123

src/Bible.Alarm/MauiProgram.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -220,17 +220,18 @@ private static void RegisterCommonServices(IServiceCollection services)
220220
if (app?.Windows.Count > 0)
221221
{
222222
var window = app.Windows[0];
223-
if (window.Page is NavigationPage windowNavPage)
223+
// Window.Page is directly NavigationPage
224+
if (window?.Page is NavigationPage windowNavPage)
224225
{
225226
return windowNavPage.Navigation;
226227
}
227228
}
228229

229230
// Fallback — try MainPage for compatibility (obsolete but may be needed)
230231
#pragma warning disable CS0618 // Type or member is obsolete
231-
if (app?.MainPage is NavigationPage navPage)
232+
if (app?.MainPage is NavigationPage mainNavPage)
232233
{
233-
return navPage.Navigation;
234+
return mainNavPage.Navigation;
234235
}
235236
#pragma warning restore CS0618
236237

@@ -251,7 +252,6 @@ private static void RegisterViewModels(IServiceCollection services)
251252
services.AddTransient<BookSelectionViewModel>();
252253
services.AddTransient<ChapterSelectionViewModel>();
253254
services.AddTransient<AlarmViewModal>();
254-
services.AddTransient<MediaProgressViewModal>();
255255

256256
// Register ScheduleListItem as transient for list items
257257
services.AddTransient<ScheduleListItem>();
@@ -281,8 +281,7 @@ private static void RegisterUiComponents(IServiceCollection services)
281281
services.AddTransient<AlarmModal>();
282282
services.AddTransient<BatteryOptimizationExclusionModal>();
283283
services.AddTransient<NumberOfChaptersModal>();
284-
services.AddTransient<MediaProgressModal>();
285-
services.AddTransient<LoadingPage>();
284+
services.AddTransient<BootstrapPage>();
286285
}
287286

288287
/// <summary>

0 commit comments

Comments
 (0)