コード例 #1
0
        public bool WillFinishLaunching(UIApplication application, NSDictionary launchOptions)
        {
            SQLitePCL.Batteries_V2.Init();
            var appVersion = application.GetBundleVersion();

            AppCenter.Start("60ed8f1c-4c08-4598-beef-c169eb0c2e53", typeof(Analytics), typeof(Crashes));
            Globals.Loggers = new LoggerFactory().AddSentry(config => {
                config.Dsn         = "https://[email protected]/5174354";
                config.Environment = "iOS";
                config.Release     = appVersion;
            });

            var databasePath = Path.Combine(Paths.SharedLibrary, "Preferences.sqlite3");

            Globals.Database = new SQLiteConnection(databasePath, SQLiteOpenFlags.Create | SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.FullMutex);
            Globals.Database.CreateTable <KeyValueModel>();
            Globals.Database.CreateTable <CloudModel>();
            Globals.Database.CreateTable <PLAsset>();
            Globals.Database.CreateTable <AlibabaOSS>();
            Globals.Database.CreateTable <AzureBlob>();
            Globals.Database.CreateTable <WebApp>();

            Globals.Database.SaveSetting(UserSettings.PhotoBackupInterval, "1");

            if (Globals.Database.Find <KeyValueModel>(UserSettings.EnableSharing) is null)
            {
                Globals.Database.SaveSetting(UserSettings.EnableSharing, "1");
            }

            var sharingEnabled = false;

            if (Globals.Database.CheckSetting(UserSettings.EnableSharing, "1"))
            {
                sharingEnabled = true;
                UIApplication.SharedApplication.IdleTimerDisabled = true;
            }

            Paths.CreateCommonDirectories();

            Globals.FileSystem = new SandboxedFileSystem(sharingEnabled ? Paths.Documents : null);

            if (PHPhotoLibrary.AuthorizationStatus == PHAuthorizationStatus.Authorized &&
                Globals.Database.CheckSetting(UserSettings.EnbalePhotoSharing, "1"))
            {
                Globals.FileSystem.ArePhotosShared = true;
            }

            if (PHPhotoLibrary.AuthorizationStatus == PHAuthorizationStatus.Authorized &&
                Globals.Database.CheckSetting(UserSettings.AutoBackupPhotos, "1"))
            {
                Globals.BackupWorker = new PhotoLibraryExporter();
            }

            var appsPath = Paths.WebApps;

            Directory.CreateDirectory(appsPath);
            Globals.Storage      = new AppleDataStorage();
            Globals.CloudManager = new PCLocalService(Globals.Storage, Globals.Loggers, Globals.FileSystem, appsPath);
            Task.Run(async() => {
                if (!Globals.Database.CheckSetting(UserSettings.LastInstalledVersion, appVersion))
                {
                    await Globals.CloudManager.InstallApps().ConfigureAwait(false);
                    Globals.Database.SaveSetting(UserSettings.LastInstalledVersion, appVersion);
                }

                Globals.CloudManager.StartService();
            });

            return(true);
        }