Feature/3323 bum build

This commit is contained in:
Frank Rotermund
2022-07-18 14:30:28 +00:00
parent 72f132afe8
commit 7758c3faee
14 changed files with 873 additions and 42 deletions

View File

@@ -22,7 +22,7 @@ APPLICATION_GROUP_IDENTIFIER = group.de.messenger
APPLICATION_SCHEME = element APPLICATION_SCHEME = element
// Team // Team
DEVELOPMENT_TEAM = 7J4U792NQT DEVELOPMENT_TEAM = Q111Q11QQ1
// Provisioning profiles // Provisioning profiles

View File

@@ -16,5 +16,5 @@
// //
// Version // Version
MARKETING_VERSION = 1.22.0 MARKETING_VERSION = 1.23.0
CURRENT_PROJECT_VERSION = 20220309075454 CURRENT_PROJECT_VERSION = 20220714163152

View File

@@ -0,0 +1,39 @@
//
// Copyright 2021 Vector Creations Ltd
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// App identity
BUNDLE_DISPLAY_NAME = BuM-Beta
BASE_BUNDLE_IDENTIFIER = de.bwi.messenger-beta
APPLICATION_GROUP_IDENTIFIER = group.de.messenger-beta
APPLICATION_SCHEME = element
// Team
DEVELOPMENT_TEAM = Q111Q11QQ1
// Provisioning profiles
RIOT_PROVISIONING_PROFILE_SPECIFIER = Vector App Store
RIOT_PROVISIONING_PROFILE = 7579fa6f-9887-415e-90fc-2c7acd8812e6
NSE_PROVISIONING_PROFILE_SPECIFIER = "Vector NSE: App Store"
NSE_PROVISIONING_PROFILE = e73107b2-1bfe-4615-be3e-39fd4dcb2af0
SHARE_EXTENSION_PROVISIONING_PROFILE_SPECIFIER = "Vector Share Extension: App Store"
SHARE_EXTENSION_PROVISIONING_PROFILE = 8c797ca0-0440-49bd-be8d-11d761152995
SIRI_INTENTS_PROVISIONING_PROFILE_SPECIFIER = "Vector Siri Intents: App Store"
SIRI_INTENTS_PROVISIONING_PROFILE = 1690e81a-5ad3-4d99-b578-02693579be71

View File

@@ -0,0 +1,572 @@
//
// Copyright 2020 Vector Creations Ltd
// Copyright (c) 2021 BWI GmbH
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
import Foundation
#if LOCATION
import Keys
#endif
/// BuildSettings provides settings computed at build time.
/// In future, it may be automatically generated from xcconfig files
@objcMembers
final class BuildSettings: NSObject {
// MARK: - Bundle Settings
static var applicationGroupIdentifier: String {
guard let applicationGroupIdentifier = Bundle.app.object(forInfoDictionaryKey: "applicationGroupIdentifier") as? String else {
fatalError("applicationGroupIdentifier should be defined")
}
return applicationGroupIdentifier
}
static var baseBundleIdentifier: String {
guard let baseBundleIdentifier = Bundle.app.object(forInfoDictionaryKey: "baseBundleIdentifier") as? String else {
fatalError("baseBundleIdentifier should be defined")
}
return baseBundleIdentifier
}
static var keychainAccessGroup: String {
guard let keychainAccessGroup = Bundle.app.object(forInfoDictionaryKey: "keychainAccessGroup") as? String else {
fatalError("keychainAccessGroup should be defined")
}
return keychainAccessGroup
}
static var applicationURLScheme: String? {
guard let urlTypes = Bundle.app.object(forInfoDictionaryKey: "CFBundleURLTypes") as? [AnyObject],
let urlTypeDictionary = urlTypes.first as? [String: AnyObject],
let urlSchemes = urlTypeDictionary["CFBundleURLSchemes"] as? [AnyObject],
let externalURLScheme = urlSchemes.first as? String else {
return nil
}
return externalURLScheme
}
static var pushKitAppIdProd: String {
return baseBundleIdentifier + ".ios.voip.prod"
}
static var pushKitAppIdDev: String {
return baseBundleIdentifier + ".ios.voip.dev"
}
static var pusherAppIdProd: String {
return baseBundleIdentifier + ".ios.prod"
}
static var pusherAppIdDev: String {
return baseBundleIdentifier + ".ios.dev"
}
static var pushKitAppId: String {
#if DEBUG
return pushKitAppIdDev
#else
return pushKitAppIdProd
#endif
}
static var pusherAppId: String {
#if DEBUG
return pusherAppIdDev
#else
return pusherAppIdProd
#endif
}
// Element-Web instance for the app
static let applicationWebAppUrlString = ""
// MARK: - Localization
/// Whether to allow the app to use a right to left layout or force left to right for all languages
static let disableRightToLeftLayout = true
// MARK: - Server configuration
// Default servers proposed on the authentication screen
static let serverConfigDefaultHomeserverUrlString = ""
static let serverConfigDefaultIdentityServerUrlString = ""
static let serverConfigPreSelections = ["":""]
static let serverConfigSygnalAPIUrlString = ""
// MARK: - Legal URLs
// Note: Set empty strings to hide the related entry in application settings
static let applicationCopyrightUrlString = "https://element.io/copyright"
static let applicationPrivacyPolicyUrlString = ""
static let applicationTermsConditionsUrlString = "https://element.io/terms-of-service"
static let applicationHelpUrlString = "https://element.io/help"
// MARk: - Matrix permalinks
// Paths for URLs that will considered as Matrix permalinks. Those permalinks are opened within the app
static let permalinkSupportedHosts: [String: [String]] = [:]
// For use in clients that use a custom base url for permalinks rather than matrix.to.
// This baseURL is used to generate permalinks within the app (E.g. timeline message permalinks).
// Optional String that when set is used as permalink base, when nil matrix.to format is used.
// Example value would be "https://www.example.com", note there is no trailing '/'.
static let clientPermalinkBaseUrl: String? = ""
// MARK: - VoIP
static var allowVoIPUsage: Bool {
#if canImport(JitsiMeetSDK)
return false
#else
return false
#endif
}
static let stunServerFallbackUrlString: String? = ""
// MARK: - Public rooms Directory
// List of homeservers for the public rooms directory
static let publicRoomsDirectoryServers = [
"matrix.org",
"gitter.im"
]
// MARK: - Rooms Screen
static let roomsAllowToJoinPublicRooms: Bool = true
// MARK: - Analytics
// $$$
static let analyticsServerUrl = URL(string: "")
static let analyticsAppId = "0"
/// BWI: set host and key to nil to disable PostHog tracking
static let analyticsHost: String? = nil
static let analyticsKey: String? = nil
static let analyticsTermsURL = URL(string: "https://element.io/cookie-policy")!
static let bwiPresentAnalyticsPrompt = false
static let bwiAnalyticsServerUrlString = ""
static let bwiAnalyticsAppId = "1"
/// A type that represents how to set up the analytics module in the app.
///
/// **Note:** Analytics are disabled by default for forks.
/// If you are maintaining a fork, set custom configurations.
struct AnalyticsConfiguration {
/// Whether or not analytics should be enabled.
let isEnabled: Bool
/// The host to use for PostHog analytics.
let host: String
/// The public key for submitting analytics.
let apiKey: String
/// The URL to open with more information about analytics terms.
let termsURL: URL
}
/// The configuration to use for analytics during development. Set `isEnabled` to false to disable analytics in debug builds.
static let analyticsConfiguration = AnalyticsConfiguration(isEnabled: false,
host: "",
apiKey: "",
termsURL: URL(string: "https://element.io/cookie-policy")!)
// MARK: - Bug report
static let bugReportEndpointUrlString = ""
// Use the name allocated by the bug report server
static let bugReportApplicationId = "riot-ios"
static let bugReportUISIId = "element-auto-uisi"
// MARK: - Integrations
static let integrationsUiUrlString = "https://scalar.vector.im/"
static let integrationsRestApiUrlString = "https://scalar.vector.im/api"
// Widgets in those paths require a scalar token
static let integrationsScalarWidgetsPaths = [""]
// Jitsi server used outside integrations to create conference calls from the call button in the timeline
static let jitsiServerUrl: URL = URL(string: "https://enter.jitsi.url")!
// MARK: - Features
/// Max allowed time to continue using the app without prompting PIN
static let pinCodeGraceTimeInSeconds: TimeInterval = 180
static let allowSendingStickers: Bool = false
static let allowLocalContactsAccess: Bool = false
static let allowInviteExernalUsers: Bool = true
static let enableSideMenu: Bool = false
static let sideMenuShowInviteFriends: Bool = true
/// Whether to read the `io.element.functional_members` state event and exclude any service members when computing a room's name and avatar.
static let supportFunctionalMembers: Bool = true
// MARK: - Feature Specifics
/// Not allowed pin codes. User won't be able to select one of the pin in the list.
static let notAllowedPINs: [String] = [
"1234",
"1111",
"0000",
"1212",
"7777",
"1004",
"2000",
"4444",
"2222",
"6969",
"9999",
"3333",
"5555",
"6666",
"1122",
"1313",
"8888",
"4321",
"2001",
"1010",
"2580",
"4711",
"0815",
"0852"
]
/// Maximum number of allowed pin failures when unlocking, before force logging out the user. Defaults to `3`
static let maxAllowedNumberOfPinFailures: Int = 3
/// Maximum number of allowed biometrics failures when unlocking, before fallbacking the user to the pin if set or logging out the user. Defaults to `5`
static let maxAllowedNumberOfBiometricsFailures: Int = 5
static let allowLocalContactPresence: Bool = false
/// Indicates should the app log out the user when number of PIN failures reaches `maxAllowedNumberOfPinFailures`. Defaults to `false`
static let logOutUserWhenPINFailuresExceeded: Bool = true
/// Indicates should the app log out the user when number of biometrics failures reaches `maxAllowedNumberOfBiometricsFailures`. Defaults to `false`
static let logOutUserWhenBiometricsFailuresExceeded: Bool = true
/// If force is enabled the dialog for asking if reseting the key backup is not shown.. already asked before in mandatory verfication
static let forceResetBackupIfLost: Bool = true
/// if skip is enabled the key backup dialogs are passed through
static let skipKeyBackupStep: Bool = true
static let showNotificationsV2: Bool = true
// MARK: - Main Tabs
static let homeScreenShowHomeTab: Bool = false
static let homeScreenShowFavouritesTab: Bool = true
static let homeScreenShowPeopleTab: Bool = true
static let homeScreenShowRoomsTab: Bool = true
static let homeScreenShowCommunitiesTab: Bool = false
// MARK: - General Settings Screen
static let settingsScreenShowUserFirstName: Bool = false
static let settingsScreenShowUserSurname: Bool = false
static let settingsScreenAllowAddingLinkedEmails: Bool = false
static let settingsScreenAllowAddingPhoneNumbers: Bool = false
static let settingsScreenAllowAddingEmailThreepids: Bool = false
static let settingsScreenAllowAddingPhoneThreepids: Bool = false
static let settingsScreenShowThreepidExplanatory: Bool = false
static let settingsScreenShowDiscoverySettings: Bool = false
static let settingsScreenAllowIdentityServerConfig: Bool = false
static let settingsScreenShowConfirmMediaSize: Bool = false
static let settingsScreenShowAdvancedSettings: Bool = false
static let settingsScreenShowLabSettings: Bool = false
static let settingsScreenAllowChangingRageshakeSettings: Bool = false
static let settingsScreenAllowChangingCrashUsageDataSettings: Bool = false
static let settingsScreenAllowBugReportingManually: Bool = false
static let settingsScreenAllowDeactivatingAccount: Bool = false
static let settingsScreenEnableDecodedContentAndGlobalSettings: Bool = false
static let settingsScreenShowChangePassword:Bool = true
static let settingsScreenShowLinkPreviews:Bool = false
static let settingsScreenShowInviteFriends:Bool = false
static let settingsScreenShowSettings:Bool = true
static let settingsScreenShowFeedback:Bool = false
static let settingsScreenShowHelp:Bool = false
static let settingsScreenShowEnableStunServerFallback: Bool = true
static let settingsScreenShowNotificationDecodedContentOption: Bool = false
static let settingsScreenShowSystemSettingsOption: Bool = false
static let settingsScreenShowNsfwRoomsOption: Bool = false
static let settingsScreenShowTACSetting: Bool = false
static let settingsScreenShowSupportSetting: Bool = true
static let settingsSecurityScreenShowSessions:Bool = true
static let settingsSecurityScreenShowSetupBackup:Bool = true
static let settingsSecurityScreenShowRestoreBackup:Bool = true
static let settingsSecurityScreenShowDeleteBackup:Bool = true
/// A setting to enable the presence configuration settings section.
static let settingsScreenPresenceAllowConfiguration: Bool = false
static let settingsSecurityScreenShowCryptographyInfo:Bool = false
static let settingsSecurityScreenShowCryptographyExport:Bool = false
static let settingsSecurityScreenShowAdvancedUnverifiedDevices:Bool = false
// MARK: - Notification Settings
static let settingsNotificationsBWIDefaultSet:Bool = true
static let settingsNotificationsShowDefault:Bool = true
static let settingsNotificationsShowMentions:Bool = false
static let settingsNotificationsShowAdvanced:Bool = false
// MARK: - Timeline settings
static let roomInputToolbarCompressionMode: MediaCompressionMode = .none
enum MediaCompressionMode {
case prompt, small, medium, large, none
}
// MARK: - Room Creation Screen
static let roomCreationScreenAllowEncryptionConfiguration: Bool = false
static let roomCreationScreenRoomIsEncrypted: Bool = true
static let roomCreationScreenAllowRoomTypeConfiguration: Bool = true
static let roomCreationScreenRoomIsPublic: Bool = false
// MARK: - Room Screen
static let roomScreenAllowVoIPForDirectRoom: Bool = true
static let roomScreenAllowVoIPForNonDirectRoom: Bool = true
static let roomScreenAllowCameraAction: Bool = true
static let roomScreenAllowMediaLibraryAction: Bool = true
static let roomScreenAllowStickerAction: Bool = false
static let roomScreenAllowFilesAction: Bool = true
// Timeline style
static let roomScreenAllowTimelineStyleConfiguration: Bool = true
static let roomScreenTimelineDefaultStyleIdentifier: RoomTimelineStyleIdentifier = .plain
static var isRoomScreenEnableMessageBubblesByDefault: Bool {
return self.roomScreenTimelineDefaultStyleIdentifier == .bubble
}
static let roomScreenUseOnlyLatestUserAvatarAndName: Bool = false
/// Allow split view detail view stacking
static let allowSplitViewDetailsScreenStacking: Bool = true
// MARK: - Room Contextual Menu
static let roomContextualMenuShowMoreOptionForMessages: Bool = true
static let roomContextualMenuShowMoreOptionForStates: Bool = true
static let roomContextualMenuShowReportContentOption: Bool = true
static let roomContextualMenuShowEncryptionOption: Bool = false
// MARK: - Room Info Screen
static let roomInfoScreenShowIntegrations: Bool = false
// MARK: - Room Settings Screen
static let roomSettingsScreenShowLowPriorityOption: Bool = false
static let roomSettingsScreenShowDirectChatOption: Bool = false
static let roomSettingsScreenAllowChangingAccessSettings: Bool = false
static let roomSettingsScreenAllowChangingHistorySettings: Bool = false
static let roomSettingsScreenShowAddressSettings: Bool = false
static let roomSettingsScreenShowFlairSettings: Bool = false
static let roomSettingsScreenShowAdvancedSettings: Bool = false
static let roomSettingsScreenShowAccessSettingsBW: Bool = true
static let roomSettingsScreenRemoveLeave: Bool = true
static let roomSettingsScreenShowIntegrations: Bool = false
static let roomSettingsScreenAdvancedShowEncryptToVerifiedOption: Bool = true
static let roomSettingsScreenShowNotificationsV2: Bool = false
// MARK: - Room Member Screen
static let roomMemberScreenShowIgnore: Bool = true
// MARK: - Message
static let messageDetailsAllowShare: Bool = false
static let messageDetailsAllowPermalink: Bool = false
static let messageDetailsAllowViewSource: Bool = false
static let messageDetailsAllowSave: Bool = false
static let messageDetailsAllowCopyMedia: Bool = false
static let messageDetailsAllowPasteMedia: Bool = false
// MARK: - Notifications
static let decryptNotificationsByDefault: Bool = true
// MARK: - Authentication Screen
static let authScreenShowRegister = false
static let authScreenShowPhoneNumber = false
static let authScreenShowForgotPassword = false
static let authScreenShowCustomServerOptions = true
static let authScreenShowTestServerOptions = true
// MARK: - Authentication Options
static let authEnableRefreshTokens = false
// MARK: - Cross-signing (bwi=true)
static let disableSelfUserVerification = true
// MARK: - Antivirus scan (bwi=true)
static let enableAntivirusScan = true
// MARK: - Room Screen
static let enableRoomSearchItem = false
// MARK: - Matomo Analytics (bwi=false)
static let enableMatomoAnalytics = false
// MARK: Verification screen (bwi=false)
static let showDetailedVerificationElements : Bool = false
static let showRecoverWithKey : Bool = false
// MARK: Unified search screen (bwi=false)
static let showUnifiedSearchViewMessagesTab : Bool = false
static let showUnifiedSearchViewFilesTab : Bool = false
// MARK: - Onboarding
static let onboardingShowAccountPersonalization = false
static let onboardingEnableNewAuthenticationFlow = false
// MARK: - Secrets Recovery
static let secretsRecoveryAllowReset = true
// MARK: VoIP support (bwi=false)
static let enableVoIPSupport : Bool = false
// MARK: - UISI Autoreporting
static let cryptoUISIAutoReportingEnabled = false
// MARK: - Polls
// MARK: Last message timestamp support (bwi=false)
static let enableLastMessageTimestamp : Bool = false
// MARK: Room chat alert screen (bwi=false)
static let enableViewEncryptionAction : Bool = false
// MARK: JavaScript support in WKWebView (bwi=false)
static let enableJSInWebView : Bool = false
// MARK: Secure pin code description (bwi=false)
static let settingsSettingsSecureShowPinCodeDescription : Bool = false
// MARK: Invite friends in Direct Chat (bwi=false)
static let directChatShowInviteFriends : Bool = false
// MARK: Last admin is not allowed to leave the room (bwi=true)
static let lastAdminIsNotAllowedToLeaveRoom : Bool = true
// MARK: Room Member Details Screen (bwi=true)
static let roomMemberDetailsHideLeaveButton : Bool = true
// MARK: Room create options (bwi=false)
static let enableShowInRoomDirectory : Bool = false
// MARK: sticker in composer (bwi=false)
static let enableRoomComposerSticker : Bool = false
// Mark: Unified Search (bwi=true)
static let unifiedSearchScreenShowPublicDirectory = true
// MARK: Allows removal of uploaded avatar photos (bwi=true)
static let enableRemoveAvatarImage = true
// MARK: Add a toggle button to the login screen to make the password visible
static let passwordIndicatorOnLogin : Bool = true
// MARK: Displays the element base version on the settings screen
static let elementBaseVersion : String = "1.8.18"
static let showElementBaseVersion : Bool = true
// MARK: Bypasses the normal forgot password process by presenting the user an information alert
// (requires authScreenShowForgotPassword set to true)
static let forgotPasswordInformationAlert : Bool = true
// MARK: Promote new feature within a banner below the navigation view
static let showTopBanner : Bool = false
static let showCustomServerDisplayName : Bool = true
static let customServerDisplayName : String = ""
// MARK BWI show/hide developer menu
static let bwiShowDeveloperSettings : Bool = true
// MARK BWI personal notes room
static let bwiPersonalNotesRoom : Bool = true
static let bwiPersonalNotesRoomLeavable : Bool = false
static let bwiResetPersonalNotesAccountData : Bool = false
// MARK BWI personal state
static let bwiPersonalState : Bool = true
// MARK BWI personal notes room
static let bwiRollsAndRights : Bool = true
// MARK: Timeline
static let settingsScreenShowSimpleTimeLineOptions : Bool = false
static let settingsScreenShowTimeStampOption : Bool = true
static let settingsScreenShowDeletedMessagesOption : Bool = false
static let settingsScreenShowNameChangeOption : Bool = false
static let settingsScreenShowChatEffectsOption : Bool = false
static let settingsScreenShowRoomAvatarChangeOption : Bool = false
static let settingsScreenShowUserAvatarChangeOption : Bool = true
static let settingsScreenShowEnterRoomOption : Bool = true
static let bwiEnableVoiceMessages : Bool = true
static let bwiLastAdminCanDowngradeHimself : Bool = false
static let bwiEnableErrorTracking : Bool = false
static let bwiEnableRegisterInfo : Bool = false
static let bwiShowHappyBirthdayCampaign: Bool = false
static let bwiHappyBirthdayCampaignIdentifier: String = "one_year_anniversary"
static let bwiDisableSecuritySettingsUntrustedDevices: Bool = true
static let bwiShowMatomoInfoScreen = false
static let bwiShowMatomoSettings = false
static let bwiMatomoTrackingDefaultState = true
static let bwiShowNewFeatures = true
static let bwiSendMessageThreshold = 10.0
// MARK: - Polls
static var pollsEnabled: Bool {
guard #available(iOS 14, *) else {
return false
}
return true
}
// MARK: - Location Sharing
static let tileServerMapURL = ""
static let tileServerMapStyleURL = URL(string: "https://map.tyler.org")!
static let locationSharingEnabled = false
static var liveLocationSharingEnabled: Bool {
guard #available(iOS 14, *) else {
return false
}
guard self.locationSharingEnabled else {
return false
}
// Do not enable live location sharing atm
return false
}
}

View File

@@ -0,0 +1,39 @@
//
// Copyright 2021 Vector Creations Ltd
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// App identity
BUNDLE_DISPLAY_NAME = BundesMessenger
BASE_BUNDLE_IDENTIFIER = de.bwi.messenger
APPLICATION_GROUP_IDENTIFIER = group.de.messenger
APPLICATION_SCHEME = element
// Team
DEVELOPMENT_TEAM = Q111Q11QQ1
// Provisioning profiles
RIOT_PROVISIONING_PROFILE_SPECIFIER = Vector App Store
RIOT_PROVISIONING_PROFILE = 7579fa6f-9887-415e-90fc-2c7acd8812e6
NSE_PROVISIONING_PROFILE_SPECIFIER = "Vector NSE: App Store"
NSE_PROVISIONING_PROFILE = e73107b2-1bfe-4615-be3e-39fd4dcb2af0
SHARE_EXTENSION_PROVISIONING_PROFILE_SPECIFIER = "Vector Share Extension: App Store"
SHARE_EXTENSION_PROVISIONING_PROFILE = 8c797ca0-0440-49bd-be8d-11d761152995
SIRI_INTENTS_PROVISIONING_PROFILE_SPECIFIER = "Vector Siri Intents: App Store"
SIRI_INTENTS_PROVISIONING_PROFILE = 1690e81a-5ad3-4d99-b578-02693579be71

9
Config/copyBetaConfig.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/sh
# setConfig.sh
# Riot
#
# Created by Frank Rotermund on 25.03.21.
# Copyright © 2021 matrix.org. All rights reserved.
cp -vf ../Config/BuM-Beta/AppIdentifiers-bum-beta.xcconfig ../Config/AppIdentifiers.xcconfig

9
Config/copyReleaseConfig.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/sh
# setConfig.sh
# Riot
#
# Created by Frank Rotermund on 25.03.21.
# Copyright © 2021 matrix.org. All rights reserved.
cp -vf ../Config/BuM/AppIdentifiers-bum.xcconfig ../Config/AppIdentifiers.xcconfig

View File

@@ -20,20 +20,20 @@ GEM
artifactory (3.0.15) artifactory (3.0.15)
atomos (0.1.3) atomos (0.1.3)
aws-eventstream (1.2.0) aws-eventstream (1.2.0)
aws-partitions (1.568.0) aws-partitions (1.605.0)
aws-sdk-core (3.130.0) aws-sdk-core (3.131.2)
aws-eventstream (~> 1, >= 1.0.2) aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.525.0) aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.1)
jmespath (~> 1.0) jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.55.0) aws-sdk-kms (1.57.0)
aws-sdk-core (~> 3, >= 3.127.0) aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.113.0) aws-sdk-s3 (1.114.0)
aws-sdk-core (~> 3, >= 3.127.0) aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-kms (~> 1) aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4) aws-sigv4 (~> 1.4)
aws-sigv4 (1.4.0) aws-sigv4 (1.5.0)
aws-eventstream (~> 1, >= 1.0.2) aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4) babosa (1.0.4)
claide (1.0.3) claide (1.0.3)
@@ -92,7 +92,7 @@ GEM
escape (0.0.4) escape (0.0.4)
ethon (0.15.0) ethon (0.15.0)
ffi (>= 1.15.0) ffi (>= 1.15.0)
excon (0.92.1) excon (0.92.3)
faraday (1.10.0) faraday (1.10.0)
faraday-em_http (~> 1.0) faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0) faraday-em_synchrony (~> 1.0)
@@ -112,8 +112,8 @@ GEM
faraday-em_synchrony (1.0.0) faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0) faraday-excon (1.1.0)
faraday-httpclient (1.0.1) faraday-httpclient (1.0.1)
faraday-multipart (1.0.3) faraday-multipart (1.0.4)
multipart-post (>= 1.2, < 3) multipart-post (~> 2)
faraday-net_http (1.0.1) faraday-net_http (1.0.1)
faraday-net_http_persistent (1.2.0) faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0) faraday-patron (1.0.0)
@@ -122,7 +122,7 @@ GEM
faraday_middleware (1.2.0) faraday_middleware (1.2.0)
faraday (~> 1.0) faraday (~> 1.0)
fastimage (2.2.6) fastimage (2.2.6)
fastlane (2.205.0) fastlane (2.207.0)
CFPropertyList (>= 2.3, < 4.0.0) CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0) addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0) artifactory (~> 3.0)
@@ -171,9 +171,9 @@ GEM
fourflusher (2.3.1) fourflusher (2.3.1)
fuzzy_match (2.0.4) fuzzy_match (2.0.4)
gh_inspector (1.1.3) gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.16.0) google-apis-androidpublisher_v3 (0.25.0)
google-apis-core (>= 0.4, < 2.a) google-apis-core (>= 0.7, < 2.a)
google-apis-core (0.4.2) google-apis-core (0.7.0)
addressable (~> 2.5, >= 2.5.1) addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a) googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a) httpclient (>= 2.8.1, < 3.a)
@@ -182,19 +182,19 @@ GEM
retriable (>= 2.0, < 4.a) retriable (>= 2.0, < 4.a)
rexml rexml
webrick webrick
google-apis-iamcredentials_v1 (0.10.0) google-apis-iamcredentials_v1 (0.13.0)
google-apis-core (>= 0.4, < 2.a) google-apis-core (>= 0.7, < 2.a)
google-apis-playcustomapp_v1 (0.7.0) google-apis-playcustomapp_v1 (0.10.0)
google-apis-core (>= 0.4, < 2.a) google-apis-core (>= 0.7, < 2.a)
google-apis-storage_v1 (0.11.0) google-apis-storage_v1 (0.18.0)
google-apis-core (>= 0.4, < 2.a) google-apis-core (>= 0.7, < 2.a)
google-cloud-core (1.6.0) google-cloud-core (1.6.0)
google-cloud-env (~> 1.0) google-cloud-env (~> 1.0)
google-cloud-errors (~> 1.0) google-cloud-errors (~> 1.0)
google-cloud-env (1.5.0) google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 2.0) faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.2.0) google-cloud-errors (1.2.0)
google-cloud-storage (1.36.1) google-cloud-storage (1.37.0)
addressable (~> 2.8) addressable (~> 2.8)
digest-crc (~> 0.4) digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1) google-apis-iamcredentials_v1 (~> 0.1)
@@ -202,7 +202,7 @@ GEM
google-cloud-core (~> 1.6) google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a) googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0) mini_mime (~> 1.0)
googleauth (1.1.2) googleauth (1.2.0)
faraday (>= 0.17.3, < 3.a) faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0) jwt (>= 1.4, < 3.0)
memoist (~> 0.16) memoist (~> 0.16)
@@ -211,14 +211,14 @@ GEM
signet (>= 0.16, < 2.a) signet (>= 0.16, < 2.a)
highline (2.0.3) highline (2.0.3)
http-accept (1.7.0) http-accept (1.7.0)
http-cookie (1.0.4) http-cookie (1.0.5)
domain_name (~> 0.5) domain_name (~> 0.5)
httpclient (2.8.3) httpclient (2.8.3)
i18n (1.10.0) i18n (1.10.0)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
jmespath (1.6.1) jmespath (1.6.1)
json (2.6.1) json (2.6.2)
jwt (2.3.0) jwt (2.4.1)
memoist (0.16.2) memoist (0.16.2)
mime-types (3.4.1) mime-types (3.4.1)
mime-types-data (~> 3.2015) mime-types-data (~> 3.2015)
@@ -238,9 +238,9 @@ GEM
osx_keychain (1.0.2) osx_keychain (1.0.2)
RubyInline (~> 3) RubyInline (~> 3)
plist (3.6.0) plist (3.6.0)
public_suffix (4.0.6) public_suffix (4.0.7)
rake (13.0.6) rake (13.0.6)
representable (3.1.1) representable (3.2.0)
declarative (< 0.1.0) declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0) trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0) uber (< 0.2.0)
@@ -256,9 +256,9 @@ GEM
ruby2_keywords (0.0.5) ruby2_keywords (0.0.5)
rubyzip (2.3.2) rubyzip (2.3.2)
security (0.1.3) security (0.1.3)
signet (0.16.1) signet (0.17.0)
addressable (~> 2.8) addressable (~> 2.8)
faraday (>= 0.17.5, < 3.0) faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0) jwt (>= 1.5, < 3.0)
multi_json (~> 1.10) multi_json (~> 1.10)
simctl (1.6.8) simctl (1.6.8)
@@ -279,14 +279,14 @@ GEM
uber (0.1.0) uber (0.1.0)
unf (0.1.4) unf (0.1.4)
unf_ext unf_ext
unf_ext (0.0.8.1) unf_ext (0.0.8.2)
unicode-display_width (1.8.0) unicode-display_width (1.8.0)
webrick (1.7.0) webrick (1.7.0)
word_wrap (1.0.0) word_wrap (1.0.0)
xcode-install (2.8.0) xcode-install (2.8.0)
claide (>= 0.9.1, < 1.1.0) claide (>= 0.9.1, < 1.1.0)
fastlane (>= 2.1.0, < 3.0.0) fastlane (>= 2.1.0, < 3.0.0)
xcodeproj (1.21.0) xcodeproj (1.22.0)
CFPropertyList (>= 2.3.3, < 4.0) CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3) atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0) claide (>= 1.0.2, < 2.0)

22
Podfile
View File

@@ -139,6 +139,28 @@ abstract_target 'RiotPods' do
pod 'FLEX', '~> 4.5.0', :configurations => ['Debug'] pod 'FLEX', '~> 4.5.0', :configurations => ['Debug']
end end
target "BuM-Beta" do
import_MatrixSDK
import_MatrixKit_pods
import_SwiftUI_pods
pod 'DGCollectionViewLeftAlignFlowLayout', '~> 1.0.4'
pod 'UICollectionViewRightAlignedLayout', '~> 0.0.3'
pod 'KTCenterFlowLayout', '~> 1.3.1'
pod 'ZXingObjC', '~> 3.6.5'
pod 'FlowCommoniOS', '~> 1.12.0'
pod 'DTTJailbreakDetection', '~> 0.4.0'
pod 'ReadMoreTextView', '~> 3.0.1'
pod 'SwiftBase32', '~> 0.9.0'
pod 'SwiftJWT', '~> 3.6.200'
pod 'SideMenu', '~> 6.5'
pod 'DSWaveformImage', '~> 6.1.1'
pod 'ffmpeg-kit-ios-audio', '4.5.1'
pod 'FLEX', '~> 4.5.0', :configurations => ['Debug']
end
target "RiotShareExtension" do target "RiotShareExtension" do
import_MatrixSDK import_MatrixSDK

View File

@@ -663,10 +663,18 @@ public class VectorL10n: NSObject {
public static var bwiEditPersonalStateMyState: String { public static var bwiEditPersonalStateMyState: String {
return VectorL10n.tr("Vector", "bwi_edit_personal_state_my_state") return VectorL10n.tr("Vector", "bwi_edit_personal_state_my_state")
} }
/// Not available /// Remote
public static var bwiEditPersonalStateOptionHomeoffice: String { public static var bwiEditPersonalStateOptionHomeoffice: String {
return VectorL10n.tr("Vector", "bwi_edit_personal_state_option_homeoffice") return VectorL10n.tr("Vector", "bwi_edit_personal_state_option_homeoffice")
} }
/// Not available
public static var bwiEditPersonalStateOptionNotAvailable: String {
return VectorL10n.tr("Vector", "bwi_edit_personal_state_option_not_available")
}
/// Delete message
public static var bwiEditPersonalStateOptionReset: String {
return VectorL10n.tr("Vector", "bwi_edit_personal_state_option_reset")
}
/// Office /// Office
public static var bwiEditPersonalStateOptionWork: String { public static var bwiEditPersonalStateOptionWork: String {
return VectorL10n.tr("Vector", "bwi_edit_personal_state_option_work") return VectorL10n.tr("Vector", "bwi_edit_personal_state_option_work")
@@ -6359,7 +6367,7 @@ public class VectorL10n: NSObject {
public static var secretsRecoveryWithPassphraseTitle: String { public static var secretsRecoveryWithPassphraseTitle: String {
return VectorL10n.tr("Vector", "secrets_recovery_with_passphrase_title") return VectorL10n.tr("Vector", "secrets_recovery_with_passphrase_title")
} }
/// Enter your account password to confirm /// Confirm with your password!
public static var secretsResetAuthenticationMessage: String { public static var secretsResetAuthenticationMessage: String {
return VectorL10n.tr("Vector", "secrets_reset_authentication_message") return VectorL10n.tr("Vector", "secrets_reset_authentication_message")
} }
@@ -6391,7 +6399,7 @@ public class VectorL10n: NSObject {
public static var secretsSetupRecoveryKeyExportAction: String { public static var secretsSetupRecoveryKeyExportAction: String {
return VectorL10n.tr("Vector", "secrets_setup_recovery_key_export_action") return VectorL10n.tr("Vector", "secrets_setup_recovery_key_export_action")
} }
/// Completed!\n\nYour chats have een successfully decrypted. /// Completed!\nYour recovery key has been set successfully.
public static var secretsSetupRecoveryKeyInformation: String { public static var secretsSetupRecoveryKeyInformation: String {
return VectorL10n.tr("Vector", "secrets_setup_recovery_key_information") return VectorL10n.tr("Vector", "secrets_setup_recovery_key_information")
} }
@@ -6411,7 +6419,7 @@ public class VectorL10n: NSObject {
public static var secretsSetupRecoveryKeyTitle: String { public static var secretsSetupRecoveryKeyTitle: String {
return VectorL10n.tr("Vector", "secrets_setup_recovery_key_title") return VectorL10n.tr("Vector", "secrets_setup_recovery_key_title")
} }
/// Do not use your account password. /// Do not use your password.
public static var secretsSetupRecoveryPassphraseAdditionalInformation: String { public static var secretsSetupRecoveryPassphraseAdditionalInformation: String {
return VectorL10n.tr("Vector", "secrets_setup_recovery_passphrase_additional_information") return VectorL10n.tr("Vector", "secrets_setup_recovery_passphrase_additional_information")
} }
@@ -6771,7 +6779,7 @@ public class VectorL10n: NSObject {
public static func settingsCallsStunServerFallbackDescription(_ p1: String) -> String { public static func settingsCallsStunServerFallbackDescription(_ p1: String) -> String {
return VectorL10n.tr("Vector", "settings_calls_stun_server_fallback_description", p1) return VectorL10n.tr("Vector", "settings_calls_stun_server_fallback_description", p1)
} }
/// Change Matrix account password /// Change password
public static var settingsChangePassword: String { public static var settingsChangePassword: String {
return VectorL10n.tr("Vector", "settings_change_password") return VectorL10n.tr("Vector", "settings_change_password")
} }
@@ -7303,6 +7311,26 @@ public class VectorL10n: NSObject {
public static var settingsPasswordCondition: String { public static var settingsPasswordCondition: String {
return VectorL10n.tr("Vector", "settings_password_condition") return VectorL10n.tr("Vector", "settings_password_condition")
} }
/// The password must include at least one digit
public static var settingsPasswordHasNoDigit: String {
return VectorL10n.tr("Vector", "settings_password_has_no_digit")
}
/// The password must include at least one lowercase letter
public static var settingsPasswordHasNoLowercaseLetter: String {
return VectorL10n.tr("Vector", "settings_password_has_no_lowercase_letter")
}
/// The password must include at least one symbol
public static var settingsPasswordHasNoSymbol: String {
return VectorL10n.tr("Vector", "settings_password_has_no_symbol")
}
/// The password must include at least one uppercase letter
public static var settingsPasswordHasNoUppercaseLetter: String {
return VectorL10n.tr("Vector", "settings_password_has_no_uppercase_letter")
}
/// The password must be at least 8 characters long
public static var settingsPasswordTooShortMessage: String {
return VectorL10n.tr("Vector", "settings_password_too_short_message")
}
/// Your password has been updated /// Your password has been updated
public static var settingsPasswordUpdated: String { public static var settingsPasswordUpdated: String {
return VectorL10n.tr("Vector", "settings_password_updated") return VectorL10n.tr("Vector", "settings_password_updated")

111
Riot/target-bum-beta.yml Normal file
View File

@@ -0,0 +1,111 @@
name: BuM-Beta
schemes:
BuM-Beta:
analyze:
config: Debug
archive:
config: Release
build:
targets:
BuM-Beta:
- running
- testing
- profiling
- analyzing
- archiving
profile:
config: Release
run:
config: Debug
disableMainThreadChecker: true
test:
config: Debug
disableMainThreadChecker: true
gatherCoverageData: true
language: "de"
region: "DE"
environmentVariables:
username:
defaultpin:
defaultpassphrase:
defaultpassword:
targets:
- RiotTests
targets:
BuM-Beta:
type: application
platform: iOS
dependencies:
- target: RiotShareExtension
- target: RiotNSE
- target: DesignKit
- target: CommonKit
- package: OrderedCollections
configFiles:
Debug: Debug.xcconfig
Release: Release.xcconfig
preBuildScripts:
- name: ⚠️ SwiftLint
runOnlyWhenInstalling: false
shell: /bin/sh
script: "${PODS_ROOT}/SwiftLint/swiftlint\n"
- name: 🛠 SwiftGen
runOnlyWhenInstalling: false
shell: /bin/sh
script: "${PODS_ROOT}/SwiftGen/bin/swiftgen config run --config Tools/SwiftGen/swiftgen-config.yml\n"
sources:
- path: ../RiotSwiftUI/Modules
# Riot will provide it's own LocaleProviderType so exclude.
# Riot will provide it's own LocaleProviderType so exclude.
excludes:
- "Common/Locale/LocaleProvider.swift"
- "**/Test/**"
- "Room/LocationSharing/*"
- "Room/StaticLocationSharingViewer/*"
- "Room/LiveLocationSharingViewer/*"
- path: ../Tools
excludes:
- "Logs"
- "Release"
- "Templates/*.sh"
- path: ../Config
excludes:
- "AppIdentifiers.xcconfig"
- "BuildSettings.swift"
- "BuM"
- "*.sh"
- path: .
excludes:
- "Modules/Room/EmojiPicker/Data/EmojiMart/EmojiJSONStore.swift"
- "Modules/Analytics/Test/Unit/BWIAnalyticsTests.swift"
- "**/*.strings" # Exclude all strings files
- "Modules/Room/TimelineCells/Styles/Plain/Cells/Location/*"
- "Modules/Room/TimelineCells/Styles/Bubble/Cells/Location/*"
- "Modules/Room/Location/*"
- "Modules/Room/LocationSharing/*"
- "Modules/Room/Views/BubbleCells/Location/*"
- "Modules/Room/Views/BubbleCells/Styles/Bubble/Cells/Location/*"
- "Modules/LocationSharing/*"
- path: ../bwi
excludes:
- "Tests"
- path: ../RiotShareExtension/Shared
- path: Modules/MatrixKit
excludes:
- "**/*.md" # excludes all files with the .md extension
# Add separately localizable files
# Once a language has enough translations (>80%), it must be declared here
- path: Assets/en.lproj/InfoPlist.strings
- path: Assets/en.lproj/Localizable.strings
- path: Assets/en.lproj/Vector.strings
- path: Assets/en.lproj/Bwi.strings
- path: Assets/de.lproj/InfoPlist.strings
- path: Assets/de.lproj/Localizable.strings
- path: Assets/de.lproj/Vector.strings
- path: Assets/de.lproj/Bwi.strings

View File

@@ -75,6 +75,9 @@ targets:
- "Release" - "Release"
- "Templates/*.sh" - "Templates/*.sh"
- path: ../Config - path: ../Config
excludes:
- "BuM-Beta"
- "*.sh"
- path: . - path: .
excludes: excludes:
- "Modules/Room/EmojiPicker/Data/EmojiMart/EmojiJSONStore.swift" - "Modules/Room/EmojiPicker/Data/EmojiMart/EmojiJSONStore.swift"

View File

@@ -10,7 +10,5 @@
<array> <array>
<string>$(KEYCHAIN_ACCESS_GROUP)</string> <string>$(KEYCHAIN_ACCESS_GROUP)</string>
</array> </array>
<key>com.apple.developer.usernotifications.filtering</key>
<true/>
</dict> </dict>
</plist> </plist>

View File

@@ -29,6 +29,7 @@ options:
include: include:
- path: Riot/target.yml - path: Riot/target.yml
- path: Riot/target-messenger.yml - path: Riot/target-messenger.yml
- path: Riot/target-bum-beta.yml
- path: RiotTests/target.yml - path: RiotTests/target.yml
- path: RiotShareExtension/target.yml - path: RiotShareExtension/target.yml
- path: SiriIntents/target.yml - path: SiriIntents/target.yml