mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-10-31 16:24:11 +00:00
dd0de4d7b0
* added foundation for custom notifications * feat: add localizations for tone names also, if available, include the pro sound in the element x sound list * use a static file location to store the notification tone and update the file at that location when selected * if there's a problem previewing or setting the alert tone, toast the user with the error * rename tone directory * create NotificationToneManager to handle tone business logic * conform to project formatting * assign custom sound to actual notifications * dry up notification generation in the nse * add compilation condition for including notification alert tone and remove from share extension * swift format had some opinions * flatten the notification tone ui, removing system/elementx designations * fix stored file url breaking due to sandbox path changes * tone manager can import custom tones and provide a list of imported tones * ui support for custom tones * can delete custom imported tones * sort the custom tones * add additional preset sounds * can choose caf files for custom sounds and fix location persistence issues * store sound locations with relative links this is a better solution than storing bookmarks since bookmark resolution can be variable and differ from freshly derived urls * add docs for new notification features * run tone conversion in background * resolved several ai found issues * added protocol and mocks for notification tone manager * added tests for notification settings screen vm interactions with the tone manager * add tests for notification tone manager * rename element tone names per feedback * move custom tone option to the top of the notification tone list * rename Tone to Sound for consistency with Android * remove additional bundled tones * restore accidentally deleted Element Default sound file * system alert tones are filtered by what's available on the system prior to finalizing the collection * Add a couple more caf file conversion log statements * Simplify the notification sound conversion logic * Update notification sound strings in sync with Android * update xcodeproj after rebase * remove conditional compilation and include NotificationAlertSound in share extension * Use AudioPlayer instead of custom tone previewer and remove the previewer * rename NotificationTone * Consolidate and move errors to top of NotificationToneManager * tone manager no longer depends on userinterfacecontroller * Move static Tone properties to NotificationToneManager * resolve view model initializer feedback * update xcodeproj * fatalerror when tone manager cannot init * Remove banner icon on alert tone error * fixup review feedback * Moved URL handling to NotificationToneManager
106 lines
4.0 KiB
YAML
106 lines
4.0 KiB
YAML
name: ShareExtension
|
|
|
|
schemes:
|
|
ShareExtension:
|
|
analyze:
|
|
config: Debug
|
|
archive:
|
|
config: Release
|
|
build:
|
|
targets:
|
|
ShareExtension:
|
|
- running
|
|
- testing
|
|
- profiling
|
|
- analyzing
|
|
- archiving
|
|
profile:
|
|
config: Release
|
|
run:
|
|
askForAppToLaunch: true
|
|
config: Debug
|
|
debugEnabled: false
|
|
disableMainThreadChecker: false
|
|
launchAutomaticallySubstyle: 2
|
|
test:
|
|
config: Debug
|
|
disableMainThreadChecker: false
|
|
|
|
targets:
|
|
ShareExtension:
|
|
type: app-extension
|
|
platform: iOS
|
|
|
|
dependencies:
|
|
- package: MatrixRustSDK
|
|
- package: Compound
|
|
- package: Collections
|
|
- package: KeychainAccess
|
|
|
|
info:
|
|
path: Info.plist
|
|
properties:
|
|
CFBundleDisplayName: $(PRODUCT_DISPLAY_NAME)
|
|
CFBundleShortVersionString: $(MARKETING_VERSION)
|
|
CFBundleVersion: $(CURRENT_PROJECT_VERSION)
|
|
appGroupIdentifier: $(APP_GROUP_IDENTIFIER)
|
|
baseBundleIdentifier: $(BASE_BUNDLE_IDENTIFIER)
|
|
keychainAccessGroupIdentifier: $(KEYCHAIN_ACCESS_GROUP_IDENTIFIER)
|
|
productionAppName: $(PRODUCTION_APP_NAME)
|
|
NSExtension:
|
|
NSExtensionPointIdentifier: com.apple.share-services
|
|
NSExtensionPrincipalClass: $(PRODUCT_MODULE_NAME).ShareExtensionViewController
|
|
NSExtensionAttributes:
|
|
IntentsSupported: [INSendMessageIntent]
|
|
NSExtensionActivationRule:
|
|
NSExtensionActivationSupportsFileWithMaxCount: 10
|
|
NSExtensionActivationSupportsImageWithMaxCount: 10
|
|
NSExtensionActivationSupportsMovieWithMaxCount: 10
|
|
NSExtensionActivationSupportsText: true
|
|
NSExtensionActivationSupportsWebURLWithMaxCount: 10
|
|
|
|
entitlements:
|
|
path: ShareExtension.entitlements
|
|
properties:
|
|
com.apple.security.application-groups:
|
|
- $(APP_GROUP_IDENTIFIER)
|
|
keychain-access-groups:
|
|
- $(KEYCHAIN_ACCESS_GROUP_IDENTIFIER)
|
|
|
|
settings:
|
|
base:
|
|
PRODUCT_NAME: ShareExtension
|
|
PRODUCT_DISPLAY_NAME: $(APP_DISPLAY_NAME)
|
|
PRODUCT_BUNDLE_IDENTIFIER: ${BASE_BUNDLE_IDENTIFIER}.shareextension
|
|
MARKETING_VERSION: $(MARKETING_VERSION)
|
|
CURRENT_PROJECT_VERSION: $(CURRENT_PROJECT_VERSION)
|
|
DEVELOPMENT_TEAM: $(DEVELOPMENT_TEAM)
|
|
|
|
sources:
|
|
- path: ../Sources
|
|
- path: ../SupportingFiles
|
|
- path: ../../ElementX/Sources/ShareExtension
|
|
- path: ../../ElementX/Sources/AppHooks/AppHooks.swift
|
|
- path: ../../ElementX/Sources/AppHooks/Hooks/TracingHook.swift
|
|
- path: ../../ElementX/Sources/AppHooks/Hooks/ClientBuilderHook.swift
|
|
- path: ../../ElementX/Sources/AppHooks/Hooks/RemoteSettingsHook.swift
|
|
- path: ../../Secrets/Secrets.swift
|
|
- path: ../../ElementX/Sources/Application/Settings
|
|
- path: ../../ElementX/Sources/Application/TargetConfiguration.swift
|
|
- path: ../../ElementX/Sources/Services/AlertTones/NotificationTone.swift
|
|
- path: ../../ElementX/Sources/Services/Keychain/KeychainController.swift
|
|
- path: ../../ElementX/Sources/Services/Keychain/KeychainControllerProtocol.swift
|
|
- path: ../../ElementX/Sources/Services/UserSession/RestorationToken.swift
|
|
- path: ../../ElementX/Sources/Services/UserSession/SessionDirectories.swift
|
|
- path: ../../ElementX/Sources/Other/Extensions/Bundle.swift
|
|
- path: ../../ElementX/Sources/Other/Extensions/Dictionary.swift
|
|
- path: ../../ElementX/Sources/Other/Extensions/FileManager.swift
|
|
- path: ../../ElementX/Sources/Other/Extensions/NSItemProvider.swift
|
|
- path: ../../ElementX/Sources/Other/Extensions/ProcessInfo.swift
|
|
- path: ../../ElementX/Sources/Other/Extensions/UIView.swift
|
|
- path: ../../ElementX/Sources/Other/Extensions/URL.swift
|
|
- path: ../../ElementX/Sources/Other/InfoPlistReader.swift
|
|
- path: ../../ElementX/Sources/Other/CurrentValuePublisher.swift
|
|
- path: ../../ElementX/Sources/Other/Logging
|
|
- path: ../../ElementX/Sources/UITests/UITestsScreenIdentifier.swift
|