Skip to content

Commit 2e463f4

Browse files
David BritchDavid Britch
authored andcommitted
Fixed SplashScreen implementation on Android. Fixes dotnet-architecture#355
The MainTheme set the splash screen image as the window background. I’ve removed this and ensured that the SplashActivity is the launch activity. Also did some code tidy up on the Campaign page classes.
1 parent 0348d88 commit 2e463f4

14 files changed

Lines changed: 86 additions & 116 deletions

File tree

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Marketing/CampaignMockService.cs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
namespace eShopOnContainers.Core.Services.Marketing
2-
{
3-
using System;
4-
using System.Collections.ObjectModel;
5-
using System.Threading.Tasks;
6-
using Models.Marketing;
7-
using Xamarin.Forms;
8-
using System.Linq;
1+
using System;
2+
using System.Collections.ObjectModel;
3+
using System.Threading.Tasks;
4+
using System.Linq;
5+
using Xamarin.Forms;
6+
using eShopOnContainers.Core.Models.Marketing;
97

8+
namespace eShopOnContainers.Core.Services.Marketing
9+
{
1010
public class CampaignMockService : ICampaignService
1111
{
1212
private readonly ObservableCollection<CampaignItem> _mockCampaign = new ObservableCollection<CampaignItem>
@@ -39,14 +39,12 @@ public class CampaignMockService : ICampaignService
3939
public async Task<ObservableCollection<CampaignItem>> GetAllCampaignsAsync(string token)
4040
{
4141
await Task.Delay(500);
42-
4342
return _mockCampaign;
4443
}
4544

4645
public async Task<CampaignItem> GetCampaignByIdAsync(int campaignId, string token)
4746
{
4847
await Task.Delay(500);
49-
5048
return _mockCampaign.SingleOrDefault(c => c.Id == campaignId);
5149
}
5250
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Marketing/CampaignService.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
namespace eShopOnContainers.Core.Services.Marketing
1+
using System;
2+
using System.Collections.ObjectModel;
3+
using System.Threading.Tasks;
4+
using eShopOnContainers.Core.Models.Marketing;
5+
using eShopOnContainers.Core.Services.RequestProvider;
6+
using eShopOnContainers.Core.Extensions;
7+
using eShopOnContainers.Core.Helpers;
8+
9+
namespace eShopOnContainers.Core.Services.Marketing
210
{
3-
using System;
4-
using System.Collections.ObjectModel;
5-
using System.Threading.Tasks;
6-
using Models.Marketing;
7-
using RequestProvider;
8-
using Extensions;
9-
using Helpers;
10-
1111
public class CampaignService : ICampaignService
1212
{
1313
private readonly IRequestProvider _requestProvider;
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
namespace eShopOnContainers.Core.Services.Marketing
2-
{
3-
using System.Collections.ObjectModel;
4-
using System.Threading.Tasks;
5-
using Models.Marketing;
1+
using System.Collections.ObjectModel;
2+
using System.Threading.Tasks;
3+
using eShopOnContainers.Core.Models.Marketing;
64

5+
namespace eShopOnContainers.Core.Services.Marketing
6+
{
77
public interface ICampaignService
88
{
99
Task<ObservableCollection<CampaignItem>> GetAllCampaignsAsync(string token);
10-
1110
Task<CampaignItem> GetCampaignByIdAsync(int id, string token);
1211
}
1312
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CampaignDetailsViewModel.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
namespace eShopOnContainers.Core.ViewModels
1+
using System.Threading.Tasks;
2+
using System.Windows.Input;
3+
using Xamarin.Forms;
4+
using eShopOnContainers.Core.ViewModels.Base;
5+
using eShopOnContainers.Core.Helpers;
6+
using eShopOnContainers.Core.Models.Marketing;
7+
using eShopOnContainers.Core.Services.Marketing;
8+
9+
namespace eShopOnContainers.Core.ViewModels
210
{
3-
using System.Threading.Tasks;
4-
using Helpers;
5-
using Models.Marketing;
6-
using Services.Marketing;
7-
using Base;
8-
using System.Windows.Input;
9-
using Xamarin.Forms;
10-
1111
public class CampaignDetailsViewModel : ViewModelBase
1212
{
1313
private CampaignItem _campaign;
@@ -46,9 +46,9 @@ public override async Task InitializeAsync(object navigationData)
4646
IsBusy = true;
4747

4848
// Get campaign by id
49-
Campaign = await _campaignService.GetCampaignByIdAsync((int) navigationData, Settings.AuthAccessToken);
49+
Campaign = await _campaignService.GetCampaignByIdAsync((int)navigationData, Settings.AuthAccessToken);
5050

51-
IsBusy = false;
51+
IsBusy = false;
5252
}
5353
}
5454

src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CampaignViewModel.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
namespace eShopOnContainers.Core.ViewModels
1+
using System.Threading.Tasks;
2+
using System.Windows.Input;
3+
using Xamarin.Forms;
4+
using System.Collections.ObjectModel;
5+
using eShopOnContainers.Core.Models.Marketing;
6+
using eShopOnContainers.Core.Services.Marketing;
7+
using eShopOnContainers.Core.ViewModels.Base;
8+
using eShopOnContainers.Core.Helpers;
9+
10+
namespace eShopOnContainers.Core.ViewModels
211
{
3-
using System.Threading.Tasks;
4-
using System.Windows.Input;
5-
using Xamarin.Forms;
6-
using System.Collections.ObjectModel;
7-
using Models.Marketing;
8-
using Services.Marketing;
9-
using Base;
10-
using Helpers;
11-
1212
public class CampaignViewModel : ViewModelBase
1313
{
1414
private ObservableCollection<CampaignItem> _campaigns;
@@ -29,7 +29,7 @@ public ObservableCollection<CampaignItem> Campaigns
2929
}
3030
}
3131

32-
public ICommand GetCampaignDetailsCommand => new Command<CampaignItem>(async (item) => await GetCampaignDetails(item));
32+
public ICommand GetCampaignDetailsCommand => new Command<CampaignItem>(async (item) => await GetCampaignDetailsAsync(item));
3333

3434
public override async Task InitializeAsync(object navigationData)
3535
{
@@ -41,7 +41,7 @@ public override async Task InitializeAsync(object navigationData)
4141
IsBusy = false;
4242
}
4343

44-
private async Task GetCampaignDetails(CampaignItem campaign)
44+
private async Task GetCampaignDetailsAsync(CampaignItem campaign)
4545
{
4646
await NavigationService.NavigateToAsync<CampaignDetailsViewModel>(campaign.Id);
4747
}

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CampaignDetailsView.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@
150150
Style="{StaticResource CampaignAvailabilityDescriptionStyle}"/>
151151
</Grid>
152152

153-
<AbsoluteLayout
153+
<AbsoluteLayout
154154
Grid.Column="0"
155155
Grid.Row="0"
156156
Grid.RowSpan="3"

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CampaignView.xaml.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
namespace eShopOnContainers.Core.Views
2-
{
3-
using Xamarin.Forms;
1+
using Xamarin.Forms;
42

5-
public partial class CampaignView: ContentPage
3+
namespace eShopOnContainers.Core.Views
4+
{
5+
public partial class CampaignView : ContentPage
66
{
77

88
public CampaignView()

src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Activities/MainActivity.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ namespace eShopOnContainers.Droid.Activities
1717
Label = "eShopOnContainers",
1818
Icon = "@drawable/icon",
1919
Theme = "@style/MainTheme",
20-
MainLauncher = true,
2120
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
2221
public class MainActivity : FormsAppCompatActivity
2322
{

src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Activities/SplashActivity.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ namespace eShopOnContainers.Droid.Activities
1111
Icon = "@drawable/icon",
1212
Theme = "@style/Theme.Splash",
1313
NoHistory = true,
14+
MainLauncher = true,
1415
ScreenOrientation = ScreenOrientation.Portrait)]
1516
public class SplashActivity : AppCompatActivity
1617
{
@@ -23,8 +24,7 @@ protected override void OnCreate(Bundle bundle)
2324

2425
private void InvokeMainActivity()
2526
{
26-
var mainActivityIntent = new Intent(this, typeof(MainActivity));
27-
StartActivity(mainActivityIntent);
27+
StartActivity(new Intent(this, typeof(MainActivity)));
2828
}
2929
}
3030
}

src/Mobile/eShopOnContainers/eShopOnContainers.Droid/MainApplication.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,23 @@
11
using System;
2-
32
using Android.App;
43
using Android.OS;
54
using Android.Runtime;
65
using Plugin.CurrentActivity;
76

87
namespace eShopOnContainers.Droid
98
{
10-
//You can specify additional application information in this attribute
119
[Application]
1210
public class MainApplication : Application, Application.IActivityLifecycleCallbacks
1311
{
1412
public MainApplication(IntPtr handle, JniHandleOwnership transer)
15-
:base(handle, transer)
13+
: base(handle, transer)
1614
{
1715
}
1816

1917
public override void OnCreate()
2018
{
2119
base.OnCreate();
2220
RegisterActivityLifecycleCallbacks(this);
23-
//A great place to initialize Xamarin.Insights and Dependency Services!
2421
}
2522

2623
public override void OnTerminate()

0 commit comments

Comments
 (0)