public static void Initialize(App app) { if (!hasRunEarlyInit) { EarlyInitialize(); } // Navigation var navigationHelper = new TinyNavigationHelper.Forms.FormsNavigationHelper(app); navigationHelper.RegisterViewsInAssembly(mainAsm); builder.RegisterInstance <INavigationHelper>(navigationHelper); // Platform specifics Platform?.Initialize(app, builder); // Build and set var container = builder.Build(); var resolver = new AutofacResolver(container); Resolver.SetResolver(resolver); // Init TinyMvvm TinyMvvm.Forms.TinyMvvm.Initialize(); // Init TinyPubSub TinyPubSubLib.TinyPubSubForms.Init(app); // Init TinyCache var cacheFirstPolicy = new TinyCachePolicy().SetMode(TinyCacheModeEnum.CacheFirst).SetFetchTimeout(Settings.Current.FetchTimeout); TinyCache.SetCacheStore(new XamarinPropertyStorage()); TinyCache.SetBasePolicy(cacheFirstPolicy); }
public static void Initialize(App app) { var builder = new ContainerBuilder(); // Views var ass = app.GetType().Assembly; builder.RegisterAssemblyTypes(ass) .Where(x => x.Name.EndsWith("View", StringComparison.Ordinal)); // ViewModels builder.RegisterAssemblyTypes(ass) .Where(x => x.Name.EndsWith("ViewModel", StringComparison.Ordinal)); builder.RegisterAssemblyTypes(typeof(Core.Services.ShoppingService).Assembly) .Where(x => x.Name.EndsWith("Service", StringComparison.Ordinal)).SingleInstance(); // Navigation var navigationHelper = new TinyNavigationHelper.Forms.FormsNavigationHelper(app); navigationHelper.RegisterViewsInAssembly(ass); builder.RegisterInstance <INavigationHelper>(navigationHelper); // Setup translation backend https://github.com/TinyStuff/TinyTranslation for translation backend var translator = new TranslationHelper(new CustomTranslationClient()); //var translator = new TranslationHelper(new System.Uri("http://tinytranslation.azurewebsites.net"), "f17528d1-0dd0-4181-90b8-0853c62178a9"); ObjectEditor.Translate = (string arg) => { Console.WriteLine("Translate from ObjectEditor"); return(translator.Translate(arg)); }; // Register translator builder.Register <TranslationHelper>((a) => { return(translator); }).SingleInstance(); // Build and set var container = builder.Build(); var resolver = new AutofacResolver(container); Resolver.SetResolver(resolver); // Init cache and settings TinyCache.TinyCache.SetCacheStore(new XamarinPropertyStorage()); var cacheFirstPolicy = new TinyCachePolicy().SetMode(TinyCacheModeEnum.FetchFirst).SetFetchTimeout(1600); TinyCache.TinyCache.SetBasePolicy(cacheFirstPolicy); //// Enable cache for translations //var oldMethod = translator.FetchLanguageMethod; //translator.FetchLanguageMethod = async (locale) => await TinyCache.TinyCache.RunAsync<TinyTranslation.TranslationDictionary>("trans-" + locale, async () => //{ // return await oldMethod(locale); //}, new TinyCachePolicy() { // Mode = TinyCacheModeEnum.CacheFirst //}); // Set translator to markup extension ansExtension.Translator = translator; var lng = translator.CurrentLocale; translator.Init("sv"); // Init TinyMvvm TinyMvvm.Forms.TinyMvvm.Initialize(); var asm = typeof(App).GetTypeInfo().Assembly; navigationHelper.RegisterViewsInAssembly(asm); // Init TinyPubSub TinyPubSubLib.TinyPubSubForms.Init(app); // Platform specifics Platform?.Initialize(app, builder); }