async void RegisterTypes(Injection injection) { injection.Register <Resampler>(i => new Resampler()); injection.RegisterSingleton <IAudioSource>(i => new AAudioSource(i.Get <Resampler>())); injection.RegisterSingleton <IAudioPlayer>(i => new AAudioPlayer(i.Get <Resampler>())); await Task.CompletedTask; }
void RegisterTypes(Injection injection) { const ushort ControlPortStarting = 5061; injection .RegisterSingleton <IClientSettings>(i => new FormsClientSettings()) .RegisterSingleton <ICredentialsProvider>(i => i.Get <XamarinSettingsManager>()) .RegisterSingleton <XamarinSettingsManager>(i => new XamarinSettingsManager(i.Get <IClientSettings>(), i.Get <ICredentialsStore>())) .RegisterSingleton(i => new UsersClient(i.Get <RopuWebClient>())) .RegisterSingleton(i => new RopuWebClient("https://192.168.1.9:5001/", i.Get <ICredentialsProvider>())) .RegisterSingleton <INavigationService>(i => new Navigator()) .RegisterSingleton <INavigator>(i => i.Get <INavigationService>()) .RegisterSingleton <ICredentialsStore>(i => new CredentialsStore()) .RegisterSingleton <ISettingsManager>(i => i.Get <XamarinSettingsManager>()) .RegisterSingleton(i => new LoginViewModel(i.Get <INavigationService>(), i.Get <RopuWebClient>(), i.Get <ISettingsManager>())) .RegisterSingleton(i => new LoginPage(i.Get <LoginViewModel>())) .RegisterSingleton(i => new SignupViewModel(i.Get <INavigator>(), i.Get <UsersClient>())) .RegisterSingleton(i => new SignupPage(i.Get <SignupViewModel>())) .RegisterSingleton(i => new MainViewModel(i.Get <ISettingsManager>(), i.Get <INavigationService>())) .RegisterSingleton(i => new BrowseGroupsViewModel(i.Get <IGroupsClient>(), i.Get <INavigationService>())) .RegisterSingleton(i => new BrowseGroupsPage(i.Get <BrowseGroupsViewModel>())) .RegisterSingleton(i => new MainPage(i.Get <MainViewModel>(), () => i.Get <BrowseGroupsPage>())) .RegisterSingleton(i => new ImageClient(i.Get <RopuWebClient>())) .RegisterSingleton <IGroupsClient>(i => new GroupsClient(i.Get <RopuWebClient>(), i.Get <ImageClient>())) .RegisterSingleton <Func <byte[], IAesGcm> >(i => key => new AesGcmOpenSslWrapper(key)) .RegisterSingleton <Func <EncryptionKey, CachedEncryptionKey> >(i => encryptionKey => new CachedEncryptionKey(encryptionKey, i.Get <Func <byte[], IAesGcm> >())) .RegisterSingleton(i => new KeysClient(i.Get <RopuWebClient>(), false, i.Get <Func <EncryptionKey, CachedEncryptionKey> >())) .RegisterSingleton(i => new PacketEncryption(i.Get <KeysClient>())) .RegisterSingleton(i => new ProtocolSwitch(ControlPortStarting, i.Get <IPortFinder>(), i.Get <PacketEncryption>(), i.Get <KeysClient>(), i.Get <ISettingsManager>().ClientSettings)) .RegisterSingleton(i => new ServingNodeClient(i.Get <ProtocolSwitch>())) .RegisterSingleton <IJitterBuffer>(i => new AdaptiveJitterBuffer(2, 50)) .RegisterSingleton <IAudioCodec>(i => new OpusCodec()) .RegisterSingleton <IPortFinder>(i => new MobilePortFinder()) .RegisterSingleton <IMediaClient>(i => new MediaClient( i.Get <ProtocolSwitch>(), i.Get <IAudioSource>(), i.Get <IAudioPlayer>(), i.Get <IAudioCodec>(), i.Get <IJitterBuffer>(), i.Get <IClientSettings>())) .RegisterSingleton(i => new LoadBalancerProtocol(i.Get <IPortFinder>(), 5079, i.Get <PacketEncryption>(), i.Get <KeysClient>())) .RegisterSingleton <IBeepPlayer>(i => new BeepPlayer(i.Get <IAudioPlayer>())) .RegisterSingleton(i => new RopuClient( i.Get <ProtocolSwitch>(), i.Get <ServingNodeClient>(), i.Get <IMediaClient>(), i.Get <LoadBalancerProtocol>(), i.Get <IClientSettings>(), i.Get <IBeepPlayer>(), i.Get <RopuWebClient>(), i.Get <KeysClient>())) .Register <IUsersClient>(i => new UsersClient(i.Get <RopuWebClient>())) .Register <IPermissionService>(i => new PermissionService()) .Register <IColorService <Color> >(i => new ColorService()) .RegisterSingleton(i => new PttViewModel <Color>( i.Get <RopuClient>(), i.Get <ISettingsManager>(), i.Get <IGroupsClient>(), i.Get <IUsersClient>(), i.Get <ImageClient>(), i.Get <IColorService <Color> >(), toDo => Device.BeginInvokeOnMainThread(async() => await toDo()), i.Get <IPermissionService>(), i.Get <RopuWebClient>(), i.Get <INavigator>())) .RegisterSingleton(i => new ImageService()) .Register(i => new PttPage()) .Register <Func <Group, BrowseGroupPage> >(i => group => new BrowseGroupPage(new BrowseGroupViewModel(group, i.Get <IGroupsClient>(), i.Get <IClientSettings>(), i.Get <INavigator>()))); }