Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
fd7f036
Update .gitignore
maksymmalyhin Jan 26, 2021
bf1a1e6
MulticastAppDelegate introduced
maksymmalyhin Jan 27, 2021
7df5b36
Merge remote-tracking branch 'origin/main' into mm/app-delegate
maksymmalyhin Jan 28, 2021
adf3c7b
Merge remote-tracking branch 'origin/main' into mm/app-delegate
maksymmalyhin Feb 12, 2021
f0487b6
WIP
maksymmalyhin Feb 12, 2021
9a14433
A sample app
maksymmalyhin Feb 12, 2021
e141b27
Merge remote-tracking branch 'origin/mm/app-delegate-proxy' into mm/a…
maksymmalyhin Feb 12, 2021
9142473
Forward all unknown messages to the original app delegate
maksymmalyhin Feb 12, 2021
721bb30
Define a separate GoogleMulticastAppDelegate package
maksymmalyhin Feb 12, 2021
2fa7d37
MulticastAppDelegate fixes
maksymmalyhin Feb 22, 2021
edbaff8
TODO
maksymmalyhin Feb 22, 2021
1b80aa0
Swift UI sample app
maksymmalyhin Feb 22, 2021
9e9f29f
Use a separate tag for GoogleMulticastAppDelegate
maksymmalyhin Feb 22, 2021
7a7a230
Exclude macOS and watchOS temporary
maksymmalyhin Feb 22, 2021
f830bd4
MulticastAppDelegate: prepare for Auth use case
maksymmalyhin Feb 23, 2021
54b221e
Merge branch 'main' into app-delegate-main
maksymmalyhin Jul 15, 2021
a45ecdf
Merge branch 'app-delegate-main' into mm/app-delegate-sample
maksymmalyhin Jul 15, 2021
a23952f
Bump version to 7.5.0
maksymmalyhin Jul 16, 2021
7de3a2b
Cleanup
maksymmalyhin Jul 16, 2021
b05faa9
SPM definition
maksymmalyhin Jul 16, 2021
395df6c
Fix MulticastAppDelegate for SwiftUI @UIApplicationDelegateAdaptor. S…
maksymmalyhin Jul 20, 2021
6fd24d9
Specify Swift versions
maksymmalyhin Aug 11, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions GoogleMulticastAppDelegate.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
Pod::Spec.new do |s|
# TODO: Is `GoogleMulticastAppDelegate` name fine?
s.name = 'GoogleMulticastAppDelegate'
s.version = '7.5.0'
s.summary = 'GoogleMulticastAppDelegate'

s.description = <<-DESC
GoogleMulticastAppDelegate
DESC

s.homepage = 'https://github.com/google/GoogleUtilities'
s.license = { :type => 'Apache', :file => 'LICENSE' }
s.authors = 'Google, Inc.'

s.source = {
:git => 'https://github.com/google/GoogleUtilities.git',
:tag => 'MulticastAppDelegate-' + s.version.to_s
}

ios_deployment_target = '9.0'
osx_deployment_target = '10.12'
tvos_deployment_target = '10.0'
watchos_deployment_target = '6.0'

s.ios.deployment_target = ios_deployment_target
# s.osx.deployment_target = osx_deployment_target
# s.tvos.deployment_target = tvos_deployment_target
# s.watchos.deployment_target = watchos_deployment_target

s.swift_versions = ['5.0', '5.2']

s.cocoapods_version = '>= 1.4.0'
s.prefix_header_file = false

s.pod_target_xcconfig = {
'GCC_C_LANGUAGE_STANDARD' => 'c99',
'HEADER_SEARCH_PATHS' => '"${PODS_TARGET_SRCROOT}"',
}

base_dir = "GoogleMulticastAppDelegate/"
s.source_files = [
base_dir + 'Sources/**/*.swift',
]

# s.test_spec 'unit' do |unit_tests|
# unit_tests.scheme = { :code_coverage => true }
# unit_tests.platforms = {
# :ios => ios_deployment_target,
# :osx => osx_deployment_target,
# :tvos => tvos_deployment_target
# }
# unit_tests.source_files = [
# base_dir + 'Tests/Unit/**/*.[mh]',
# ]
# unit_tests.requires_app_host = true
# unit_tests.dependency 'OCMock'
# end

# s.test_spec 'unit-swift' do |unit_tests_swift|
# unit_tests_swift.scheme = { :code_coverage => true }
# unit_tests_swift.platforms = {
# :ios => ios_deployment_target,
# :osx => osx_deployment_target,
# :tvos => tvos_deployment_target
# }
# unit_tests_swift.source_files = [
# base_dir + 'Tests/Unit/**/*.swift',
# ]

# unit_tests_swift.requires_app_host = true
# end
end

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
//
// AppDelegate.swift
// AppDelegateSample
//
// Created by Maksym Malyhin on 2021-01-28.
//

import UIKit

import GoogleUtilities

@UIApplicationMain
class MulticastAppDelegate: GoogleUtilities.MulticastAppDelegate {
override init() {
super.init()
self.addInterceptor(AppDelegate())
}
}


class AppDelegate: UIResponder, UIApplicationDelegate {

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
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.
}


}

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
{
"images" : [
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" xcode11CocoaTouchSystemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" xcode11CocoaTouchSystemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
</document>
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<false/>
<key>UISceneConfigurations</key>
<dict>
<key>UIWindowSceneSessionRoleApplication</key>
<array>
<dict>
<key>UISceneConfigurationName</key>
<string>Default Configuration</string>
<key>UISceneDelegateClassName</key>
<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
<key>UISceneStoryboardFile</key>
<string>Main</string>
</dict>
</array>
</dict>
</dict>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>
Loading