Пример #1
0
        /// <summary>
        /// Finished the launching.
        /// </summary>
        /// <param name="app">The app.</param>
        /// <param name="options">The options.</param>
        /// <returns>True or false.</returns>
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            Crashlytics.Instance.Initialize();
            Fabric.Instance.Initialize();

#if DEBUG
            Fabric.Instance.Debug = true;
#endif

            Window    = new UIWindow(UIScreen.MainScreen.Bounds);
            Presenter = new IosViewPresenter(this.Window);
            var setup = new Setup(this, Presenter);
            setup.Initialize();

            var culture = new System.Globalization.CultureInfo("en");
            System.Threading.Thread.CurrentThread.CurrentCulture           = culture;
            System.Threading.Thread.CurrentThread.CurrentUICulture         = culture;
            System.Globalization.CultureInfo.DefaultThreadCurrentCulture   = culture;
            System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = culture;

            // Setup theme
            UIApplication.SharedApplication.SetStatusBarStyle(UIStatusBarStyle.LightContent, true);
            Theme.Setup();

            Locator.CurrentMutable.RegisterConstant(Mvx.Resolve <IApplicationService>());
            Locator.CurrentMutable.RegisterConstant(Mvx.Resolve <IAccountsService>());
            Locator.CurrentMutable.RegisterConstant(Mvx.Resolve <IAlertDialogService>());
            Locator.CurrentMutable.RegisterConstant(Mvx.Resolve <INetworkActivityService>());
            Locator.CurrentMutable.RegisterConstant(Mvx.Resolve <IMessageService>());
            Locator.CurrentMutable.RegisterConstant(Mvx.Resolve <IInAppPurchaseService>());
            Locator.CurrentMutable.RegisterConstant(Mvx.Resolve <IFeaturesService>());
            Locator.CurrentMutable.RegisterConstant(Mvx.Resolve <ILoginService>());
            Locator.CurrentMutable.RegisterConstant(Mvx.Resolve <IMarkdownService>());
            Locator.CurrentMutable.RegisterConstant(Mvx.Resolve <IPushNotificationsService>());

            Locator.CurrentMutable.RegisterLazySingleton(
                () => new ImgurService(), typeof(IImgurService));

            var features        = Mvx.Resolve <IFeaturesService>();
            var purchaseService = Mvx.Resolve <IInAppPurchaseService>();

            purchaseService.ThrownExceptions.Subscribe(ex =>
            {
                var error = new Core.UserError("Error Purchasing", ex.Message);
                Core.Interactions.Errors.Handle(error).Subscribe();
            });

            Core.Interactions.Errors.RegisterHandler(interaction =>
            {
                var error = interaction.Input;
                AlertDialogService.ShowAlert(error.Title, error.Message);
                interaction.SetOutput(System.Reactive.Unit.Default);
            });

#if DEBUG
            features.ActivateProDirect();
#endif

            //options = new NSDictionary (UIApplication.LaunchOptionsRemoteNotificationKey,
            //new NSDictionary ("r", "octokit/octokit.net", "i", "739", "u", "thedillonb"));

            if (options != null)
            {
                if (options.ContainsKey(UIApplication.LaunchOptionsRemoteNotificationKey))
                {
                    var remoteNotification = options[UIApplication.LaunchOptionsRemoteNotificationKey] as NSDictionary;
                    if (remoteNotification != null)
                    {
                        HandleNotification(remoteNotification, true);
                    }
                }
            }

            // Set the client constructor
            GitHubSharp.Client.ClientConstructor = () => new HttpClient(new CustomHttpMessageHandler());

            if (!Core.Settings.HasSeenWelcome)
            {
                Core.Settings.HasSeenWelcome = true;
                var welcomeViewController = new ViewControllers.Walkthrough.WelcomePageViewController();
                welcomeViewController.WantsToDimiss += GoToStartupView;
                TransitionToViewController(welcomeViewController);
            }
            else
            {
                GoToStartupView();
            }

            Window.MakeKeyAndVisible();

            // Notifications don't work on teh simulator so don't bother
            if (Runtime.Arch != Arch.SIMULATOR && features.IsProEnabled)
            {
                RegisterUserForNotifications();
            }

            return(true);
        }
Пример #2
0
        /// <summary>
        /// Finished the launching.
        /// </summary>
        /// <param name="app">The app.</param>
        /// <param name="options">The options.</param>
        /// <returns>True or false.</returns>
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            Window    = new UIWindow(UIScreen.MainScreen.Bounds);
            Presenter = new IosViewPresenter(this.Window);
            var setup = new Setup(this, Presenter);

            setup.Initialize();

            // Setup theme
            UIApplication.SharedApplication.SetStatusBarStyle(UIStatusBarStyle.LightContent, true);
            Theme.Setup();

            var features            = Mvx.Resolve <IFeaturesService>();
            var defaultValueService = Mvx.Resolve <IDefaultValueService>();

            var installedDate = this.StampInstallDate("CodeHub");

            Console.WriteLine("CodeHub was installed on: " + installedDate);
            if (installedDate < new DateTime(2016, 3, 5, 1, 1, 1))
            {
                features.ActivateProDirect();
            }

            if (!features.IsProEnabled)
            {
                bool isActive;
                if (defaultValueService.TryGet(FeaturesService.EnterpriseSupport, out isActive) && isActive)
                {
                    features.ActivateProDirect();
                }
                else if (defaultValueService.TryGet(FeaturesService.PushNotifications, out isActive) && isActive)
                {
                    features.ActivateProDirect();
                }
            }
//
//            options = new NSDictionary (UIApplication.LaunchOptionsRemoteNotificationKey,
//                new NSDictionary ("r", "octokit/octokit.net", "i", "739", "u", "thedillonb"));
//
            if (options != null)
            {
                if (options.ContainsKey(UIApplication.LaunchOptionsRemoteNotificationKey))
                {
                    var remoteNotification = options[UIApplication.LaunchOptionsRemoteNotificationKey] as NSDictionary;
                    if (remoteNotification != null)
                    {
                        HandleNotification(remoteNotification, true);
                    }
                }
            }

            // Set the client constructor
            GitHubSharp.Client.ClientConstructor = () => new HttpClient(new HttpMessageHandler());

            bool hasSeenWelcome;

            if (!defaultValueService.TryGet("HAS_SEEN_WELCOME_INTRO", out hasSeenWelcome) || !hasSeenWelcome)
            {
                defaultValueService.Set("HAS_SEEN_WELCOME_INTRO", true);
                var welcomeViewController = new CodeHub.iOS.ViewControllers.Walkthrough.WelcomePageViewController();
                welcomeViewController.WantsToDimiss += GoToStartupView;
                TransitionToViewController(welcomeViewController);
            }
            else
            {
                GoToStartupView();
            }

            Window.MakeKeyAndVisible();

            // Notifications don't work on teh simulator so don't bother
            if (Runtime.Arch != Arch.SIMULATOR && features.IsPushNotificationsActivated)
            {
                RegisterUserForNotifications();
            }

            return(true);
        }
Пример #3
0
        /// <summary>
        /// Finished the launching.
        /// </summary>
        /// <param name="app">The app.</param>
        /// <param name="options">The options.</param>
        /// <returns>True or false.</returns>
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            Window    = new UIWindow(UIScreen.MainScreen.Bounds);
            Presenter = new IosViewPresenter(this.Window);
            var setup = new Setup(this, Presenter);

            setup.Initialize();

            // Initialize the error service!
            Mvx.Resolve <IErrorService>().Init();

            var culture = new System.Globalization.CultureInfo("en");

            System.Threading.Thread.CurrentThread.CurrentUICulture         = culture;
            System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = culture;

            // Setup theme
            UIApplication.SharedApplication.SetStatusBarStyle(UIStatusBarStyle.LightContent, true);
            Theme.Setup();

            var features            = Mvx.Resolve <IFeaturesService>();
            var defaultValueService = Mvx.Resolve <IDefaultValueService>();
            var purchaseService     = Mvx.Resolve <IInAppPurchaseService>();

            purchaseService.ThrownExceptions.Subscribe(ex => {
                AlertDialogService.ShowAlert("Error Purchasing", ex.Message);
            });

            #if DEBUG
            features.ActivateProDirect();
            #endif

//            options = new NSDictionary (UIApplication.LaunchOptionsRemoteNotificationKey,
//                new NSDictionary ("r", "octokit/octokit.net", "i", "739", "u", "thedillonb"));
//
            if (options != null)
            {
                if (options.ContainsKey(UIApplication.LaunchOptionsRemoteNotificationKey))
                {
                    var remoteNotification = options[UIApplication.LaunchOptionsRemoteNotificationKey] as NSDictionary;
                    if (remoteNotification != null)
                    {
                        HandleNotification(remoteNotification, true);
                    }
                }
            }

            // Set the client constructor
            GitHubSharp.Client.ClientConstructor = () => new HttpClient(new HttpMessageHandler());

            bool hasSeenWelcome;
            if (!defaultValueService.TryGet("HAS_SEEN_WELCOME_INTRO", out hasSeenWelcome) || !hasSeenWelcome)
            {
                defaultValueService.Set("HAS_SEEN_WELCOME_INTRO", true);
                var welcomeViewController = new CodeHub.iOS.ViewControllers.Walkthrough.WelcomePageViewController();
                welcomeViewController.WantsToDimiss += GoToStartupView;
                TransitionToViewController(welcomeViewController);
            }
            else
            {
                GoToStartupView();
            }

            Window.MakeKeyAndVisible();

            // Notifications don't work on teh simulator so don't bother
            if (Runtime.Arch != Arch.SIMULATOR && features.IsProEnabled)
            {
                RegisterUserForNotifications();
            }

            return(true);
        }
Пример #4
0
        /// <summary>
        /// Finished the launching.
        /// </summary>
        /// <param name="app">The app.</param>
        /// <param name="options">The options.</param>
        /// <returns>True or false.</returns>
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            Window = new UIWindow(UIScreen.MainScreen.Bounds);
            Presenter = new IosViewPresenter(this.Window);
            var setup = new Setup(this, Presenter);
            setup.Initialize();

            // Initialize the error service!
            var errorService = Mvx.Resolve<IErrorService>();
            errorService.Init();

            var culture = new System.Globalization.CultureInfo("en");
            System.Threading.Thread.CurrentThread.CurrentUICulture = culture;
            System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = culture;

            // Setup theme
            UIApplication.SharedApplication.SetStatusBarStyle(UIStatusBarStyle.LightContent, true);
            Theme.Setup();

            var features = Mvx.Resolve<IFeaturesService>();
            var defaultValueService = Mvx.Resolve<IDefaultValueService>();
            var purchaseService = Mvx.Resolve<IInAppPurchaseService>();
            purchaseService.ThrownExceptions.Subscribe(ex => {
                AlertDialogService.ShowAlert("Error Purchasing", ex.Message);
                errorService.Log(ex);
            });

            #if DEBUG
            features.ActivateProDirect();
            #endif

            //            options = new NSDictionary (UIApplication.LaunchOptionsRemoteNotificationKey,
            //                new NSDictionary ("r", "octokit/octokit.net", "i", "739", "u", "thedillonb"));
            //
            if (options != null)
            {
                if (options.ContainsKey(UIApplication.LaunchOptionsRemoteNotificationKey))
                {
                    var remoteNotification = options[UIApplication.LaunchOptionsRemoteNotificationKey] as NSDictionary;
                    if(remoteNotification != null) {
                        HandleNotification(remoteNotification, true);
                    }
                }
            }

            // Set the client constructor
            GitHubSharp.Client.ClientConstructor = () => new HttpClient(new CustomHttpMessageHandler());

            bool hasSeenWelcome;
            if (!defaultValueService.TryGet("HAS_SEEN_WELCOME_INTRO", out hasSeenWelcome) || !hasSeenWelcome)
            {
                defaultValueService.Set("HAS_SEEN_WELCOME_INTRO", true);
                var welcomeViewController = new CodeHub.iOS.ViewControllers.Walkthrough.WelcomePageViewController();
                welcomeViewController.WantsToDimiss += GoToStartupView;
                TransitionToViewController(welcomeViewController);
            }
            else
            {
                GoToStartupView();
            }

            Window.MakeKeyAndVisible();

            // Notifications don't work on teh simulator so don't bother
            if (Runtime.Arch != Arch.SIMULATOR && features.IsProEnabled)
                RegisterUserForNotifications();

            return true;
        }