77 lines
3.2 KiB
Swift
77 lines
3.2 KiB
Swift
//
|
|
// AppDelegate.swift
|
|
// GLKittutorial
|
|
//
|
|
// Created by Mathieu Labbe on 2020-12-28.
|
|
//
|
|
|
|
import UIKit
|
|
import ARKit
|
|
|
|
func setDefaultsFromSettingsBundle() {
|
|
|
|
let plistFiles = ["Root", "Mapping", "Assembling"]
|
|
|
|
for plistName in plistFiles {
|
|
//Read PreferenceSpecifiers from Root.plist in Settings.Bundle
|
|
if let settingsURL = Bundle.main.url(forResource: plistName, withExtension: "plist", subdirectory: "Settings.bundle"),
|
|
let settingsPlist = NSDictionary(contentsOf: settingsURL),
|
|
let preferences = settingsPlist["PreferenceSpecifiers"] as? [NSDictionary] {
|
|
|
|
for prefSpecification in preferences {
|
|
|
|
if let key = prefSpecification["Key"] as? String, let value = prefSpecification["DefaultValue"] {
|
|
|
|
//If key doesn't exists in userDefaults then register it, else keep original value
|
|
if UserDefaults.standard.value(forKey: key) == nil {
|
|
|
|
UserDefaults.standard.set(value, forKey: key)
|
|
NSLog("registerDefaultsFromSettingsBundle: Set following to UserDefaults - (key: \(key), value: \(value), type: \(type(of: value)))")
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
NSLog("registerDefaultsFromSettingsBundle: Could not find Settings.bundle")
|
|
}
|
|
}
|
|
}
|
|
|
|
@main
|
|
class AppDelegate: UIResponder, UIApplicationDelegate {
|
|
|
|
var window: UIWindow?
|
|
|
|
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
|
|
|
// Always set Version to default
|
|
let defaults = UserDefaults.standard
|
|
defaults.removeObject(forKey: "Version")
|
|
|
|
setDefaultsFromSettingsBundle()
|
|
|
|
// Override point for customization after application launch.
|
|
if !ARWorldTrackingConfiguration.supportsFrameSemantics(.sceneDepth) {
|
|
// Ensure that the device supports scene depth and present
|
|
// an error-message view controller, if not.
|
|
let storyboard = UIStoryboard(name: "Main", bundle: nil)
|
|
window?.rootViewController = storyboard.instantiateViewController(withIdentifier: "unsupportedDeviceMessage")
|
|
}
|
|
return true
|
|
}
|
|
|
|
// MARK: UISceneSession Lifecycle
|
|
|
|
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
|
|
// Called when a new scene session is being created.
|
|
// Use this method to select a configuration to create the new scene with.
|
|
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
|
|
}
|
|
|
|
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
|
|
// Called when the user discards a scene session.
|
|
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
|
|
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
|
|
}
|
|
}
|
|
|