1
0
mirror of https://github.com/bitwarden/mobile.git synced 2024-07-08 12:35:24 +02:00
bitwarden-mobile/src/Android/MainActivity.cs

71 lines
3.1 KiB
C#
Raw Normal View History

2016-05-02 08:52:09 +02:00
using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Microsoft.Practices.Unity;
using Bit.App.Abstractions;
using Bit.App.Services;
using XLabs.Ioc.Unity;
using XLabs.Ioc;
using Bit.Android.Services;
2016-05-02 23:50:16 +02:00
using Plugin.Settings;
2016-05-03 08:08:50 +02:00
using Plugin.Connectivity;
using Acr.UserDialogs;
using Bit.App.Repositories;
2016-05-02 08:52:09 +02:00
namespace Bit.Android
{
[Activity(Label = "bitwarden", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
if(!Resolver.IsSet)
{
SetIoc();
}
LoadApplication(new App.App(Resolver.Resolve<IAuthService>(), Resolver.Resolve<IDatabaseService>()));
}
private void SetIoc()
{
var container = new UnityContainer();
container
// Services
2016-05-02 08:52:09 +02:00
.RegisterType<IDatabaseService, DatabaseService>(new ContainerControlledLifetimeManager())
.RegisterType<ISqlService, SqlService>(new ContainerControlledLifetimeManager())
2016-05-02 08:52:09 +02:00
.RegisterType<ISecureStorageService, KeyStoreStorageService>(new ContainerControlledLifetimeManager())
.RegisterType<ICryptoService, CryptoService>(new ContainerControlledLifetimeManager())
.RegisterType<IAuthService, AuthService>(new ContainerControlledLifetimeManager())
.RegisterType<IFolderService, FolderService>(new ContainerControlledLifetimeManager())
2016-05-03 08:08:50 +02:00
.RegisterType<ISiteService, SiteService>(new ContainerControlledLifetimeManager())
.RegisterType<ISyncService, SyncService>(new ContainerControlledLifetimeManager())
2016-05-07 04:29:03 +02:00
.RegisterType<IClipboardService, ClipboardService>(new ContainerControlledLifetimeManager())
// Repositories
.RegisterType<IFolderRepository, FolderRepository>(new ContainerControlledLifetimeManager())
.RegisterType<IFolderApiRepository, FolderApiRepository>(new ContainerControlledLifetimeManager())
.RegisterType<ISiteRepository, SiteRepository>(new ContainerControlledLifetimeManager())
.RegisterType<ISiteApiRepository, SiteApiRepository>(new ContainerControlledLifetimeManager())
.RegisterType<IAuthApiRepository, AuthApiRepository>(new ContainerControlledLifetimeManager())
// Other
.RegisterInstance(CrossSettings.Current, new ContainerControlledLifetimeManager())
2016-05-03 08:08:50 +02:00
.RegisterInstance(CrossConnectivity.Current, new ContainerControlledLifetimeManager())
.RegisterInstance(UserDialogs.Instance, new ContainerControlledLifetimeManager());
2016-05-02 08:52:09 +02:00
Resolver.SetResolver(new UnityResolver(container));
2016-05-03 08:08:50 +02:00
UserDialogs.Init(this);
2016-05-02 08:52:09 +02:00
}
}
}