Beispiel #1
0
 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;
 }
Beispiel #2
0
        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>())));
        }