1
0
mirror of https://github.com/bitwarden/mobile synced 2025-12-05 23:53:33 +00:00

service container

This commit is contained in:
Kyle Spearrin
2019-04-11 14:14:34 -04:00
parent e1080f9be4
commit b9838ecc4e
4 changed files with 98 additions and 3 deletions

View File

@@ -1,6 +1,13 @@
using System;
using System.IO;
using Android.App;
using Android.Runtime;
using Bit.App.Abstractions;
using Bit.App.Services;
using Bit.Core.Abstractions;
using Bit.Core.Services;
using Bit.Core.Utilities;
using Bit.Droid.Services;
namespace Bit.Droid
{
@@ -14,12 +21,34 @@ namespace Bit.Droid
{
public MainApplication(IntPtr handle, JniHandleOwnership transer)
: base(handle, transer)
{ }
{
if(ServiceContainer.RegisteredServices.Count == 0)
{
RegisterLocalServices();
ServiceContainer.Init();
}
}
public override void OnCreate()
{
base.OnCreate();
Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this);
}
public void RegisterLocalServices()
{
var preferencesStorage = new PreferencesStorageService(null);
var documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var liteDbStorage = new LiteDbStorageService(Path.Combine(documentsPath, "bitwarden.db"));
var deviceActionService = new DeviceActionService();
ServiceContainer.Register<ICryptoPrimitiveService>("cryptoPrimitiveService", new CryptoPrimitiveService());
ServiceContainer.Register<IStorageService>("storageService",
new MobileStorageService(preferencesStorage, liteDbStorage));
ServiceContainer.Register<IStorageService>("secureStorageService", new SecureStorageService());
ServiceContainer.Register<IDeviceActionService>("deviceActionService", deviceActionService);
ServiceContainer.Register<IPlatformUtilsService>("platformUtilsService",
new MobilePlatformUtilsService(deviceActionService));
}
}
}