diff --git a/.github/workflows/ci-ui-tests.yml b/.github/workflows/ci-ui-tests.yml
new file mode 100644
index 000000000..eb2dde14d
--- /dev/null
+++ b/.github/workflows/ci-ui-tests.yml
@@ -0,0 +1,57 @@
+name: UI Tests CI
+
+on:
+ # Triggers the workflow on any pull request
+ pull_request:
+
+ # Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+env:
+ # Make the git branch for a PR available to our Fastfile
+ MX_GIT_BRANCH: ${{ github.event.pull_request.head.ref }}
+
+jobs:
+ tests:
+ name: UI Tests
+ runs-on: macos-11
+
+ concurrency:
+ # Only allow a single run of this workflow on each branch, automatically cancelling older runs.
+ group: ui-tests-${{ github.head_ref }}
+ cancel-in-progress: true
+
+ steps:
+ - uses: actions/checkout@v2
+
+ # Common cache
+ # Note: GH actions do not support yaml anchor yet. We need to duplicate this for every job
+ - uses: actions/cache@v2
+ with:
+ path: Pods
+ key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-pods-
+ - uses: actions/cache@v2
+ with:
+ path: vendor/bundle
+ key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-gems-
+
+ # Make sure we use the latest version of MatrixSDK
+ - name: Reset MatrixSDK pod
+ run: rm -rf Pods/MatrixSDK
+
+ # Common setup
+ # Note: GH actions do not support yaml anchor yet. We need to duplicate this for every job
+ - name: Bundle install
+ run: |
+ bundle config path vendor/bundle
+ bundle install --jobs 4 --retry 3
+ - name: Use right MatrixSDK versions
+ run: bundle exec fastlane point_dependencies_to_related_branches
+
+ # Main step
+ - name: Unit tests
+ run: bundle exec fastlane uitest
diff --git a/.github/workflows/release-alpha.yml b/.github/workflows/release-alpha.yml
index c952f6a4a..acdfa1b1d 100644
--- a/.github/workflows/release-alpha.yml
+++ b/.github/workflows/release-alpha.yml
@@ -25,7 +25,7 @@ jobs:
if: "${{ env.P12_KEY != '' || env.P12_PASSWORD_KEY != '' }}"
run: echo "::set-output name=defined::true"
build:
- # Run job if secrets are avilable (not avaiable for forks).
+ # Run job if secrets are available (not available for forks).
needs: [check-secret]
if: needs.check-secret.outputs.out-key == 'true'
name: Release
@@ -84,7 +84,7 @@ jobs:
- name: Build Ad-hoc release and send it to Diawi
run: bundle exec fastlane alpha
env:
- # Automaticaly bypass 2FA upgrade if possible on Apple account.
+ # Automatically bypass 2FA upgrade if possible on Apple account.
SPACESHIP_SKIP_2FA_UPGRADE: true
APPLE_ID: ${{ secrets.FASTLANE_USER }}
FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
diff --git a/.github/workflows/triage-move-labelled.yml b/.github/workflows/triage-move-labelled.yml
index d1e110540..994a13941 100644
--- a/.github/workflows/triage-move-labelled.yml
+++ b/.github/workflows/triage-move-labelled.yml
@@ -11,7 +11,6 @@ jobs:
if: >
contains(github.event.issue.labels.*.name, 'A-Maths') ||
contains(github.event.issue.labels.*.name, 'A-Message-Pinning') ||
- contains(github.event.issue.labels.*.name, 'A-Threads') ||
contains(github.event.issue.labels.*.name, 'A-Polls') ||
contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
diff --git a/Config/Project.xcconfig b/Config/Project.xcconfig
index 331f7b44f..95b6295d6 100644
--- a/Config/Project.xcconfig
+++ b/Config/Project.xcconfig
@@ -25,10 +25,10 @@
KEYCHAIN_ACCESS_GROUP = $(AppIdentifierPrefix)$(BASE_BUNDLE_IDENTIFIER).keychain.shared
// Build settings
-IPHONEOS_DEPLOYMENT_TARGET = 12.1
+IPHONEOS_DEPLOYMENT_TARGET = 14.0
SDKROOT = iphoneos
TARGETED_DEVICE_FAMILY = 1,2
-SWIFT_VERSION = 5.3.1
+SWIFT_VERSION = 5.6
ENABLE_BITCODE = NO
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @executable_path/../../Frameworks
diff --git a/Podfile b/Podfile
index 8c6a75f18..1ab2e77df 100644
--- a/Podfile
+++ b/Podfile
@@ -1,7 +1,7 @@
source 'https://cdn.cocoapods.org/'
# Uncomment this line to define a global platform for your project
-platform :ios, '12.1'
+platform :ios, '14.0'
# Use frameworks to allow usage of pods written in Swift
use_frameworks!
@@ -57,6 +57,7 @@ end
def import_SwiftUI_pods
pod 'Introspect', '~> 0.1'
+ pod 'DSBottomSheet', '~> 0.3'
end
abstract_target 'RiotPods' do
@@ -151,4 +152,4 @@ post_install do |installer|
config.build_settings['OTHER_SWIFT_FLAGS'] ||= ['$(inherited)', '-Xcc', '-Wno-nullability-completeness']
end
end
-end
\ No newline at end of file
+end
diff --git a/Podfile.lock b/Podfile.lock
index 76519dbe5..1cc3bd2e1 100644
--- a/Podfile.lock
+++ b/Podfile.lock
@@ -20,6 +20,7 @@ PODS:
- BlueRSA (1.0.200)
- DGCollectionViewLeftAlignFlowLayout (1.0.4)
- Down (0.11.0)
+ - DSBottomSheet (0.3.0)
- DSWaveformImage (6.1.1)
- DTCoreText (1.6.26):
- DTCoreText/Core (= 1.6.26)
@@ -105,6 +106,7 @@ DEPENDENCIES:
- AnalyticsEvents (from `https://github.com/matrix-org/matrix-analytics-events.git`, branch `release/swift`)
- DGCollectionViewLeftAlignFlowLayout (~> 1.0.4)
- Down (~> 0.11.0)
+ - DSBottomSheet (~> 0.3)
- DSWaveformImage (~> 6.1.1)
- DTCoreText (~> 1.6.25)
- ffmpeg-kit-ios-audio (= 4.5.1)
@@ -139,6 +141,7 @@ SPEC REPOS:
- BlueRSA
- DGCollectionViewLeftAlignFlowLayout
- Down
+ - DSBottomSheet
- DSWaveformImage
- DTCoreText
- DTFoundation
@@ -191,6 +194,7 @@ SPEC CHECKSUMS:
BlueRSA: dfeef51db96bcc4edec654956c1581adbda4e6a3
DGCollectionViewLeftAlignFlowLayout: a0fa58797373ded039cafba8133e79373d048399
Down: b6ba1bc985c9d2f4e15e3b293d2207766fa12612
+ DSBottomSheet: ca0ac37eb5af2dd54663f86b84382ed90a59be2a
DSWaveformImage: 3c718a0cf99291887ee70d1d0c18d80101d3d9ce
DTCoreText: ec749e013f2e1f76de5e7c7634642e600a7467ce
DTFoundation: a53f8cda2489208cbc71c648be177f902ee17536
@@ -225,6 +229,6 @@ SPEC CHECKSUMS:
zxcvbn-ios: fef98b7c80f1512ff0eec47ac1fa399fc00f7e3c
ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb
-PODFILE CHECKSUM: 8055bae15b82bd29b1d12c64ff038fe6f86a8ca0
+PODFILE CHECKSUM: 39feedaf75b9a9287e4fe5309200e0493a9251a3
-COCOAPODS: 1.11.2
+COCOAPODS: 1.11.3
diff --git a/Riot/Assets/Images.xcassets/Common/share_action_button.imageset/Contents.json b/Riot/Assets/Images.xcassets/Common/share_action_button.imageset/Contents.json
index a6bb96098..1f52d4d2c 100644
--- a/Riot/Assets/Images.xcassets/Common/share_action_button.imageset/Contents.json
+++ b/Riot/Assets/Images.xcassets/Common/share_action_button.imageset/Contents.json
@@ -19,5 +19,8 @@
"info" : {
"author" : "xcode",
"version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
}
}
diff --git a/Riot/Assets/en.lproj/Vector.strings b/Riot/Assets/en.lproj/Vector.strings
index 9c0a6f89a..b3ad37b6b 100644
--- a/Riot/Assets/en.lproj/Vector.strings
+++ b/Riot/Assets/en.lproj/Vector.strings
@@ -2143,7 +2143,13 @@ Tap the + to start adding people.";
"location_sharing_static_share_title" = "Send my current location";
"location_sharing_pin_drop_share_title" = "Send this location";
"location_sharing_live_map_callout_title" = "Share location";
-"location_sharing_live_timer_outgoing" = "%@ left";
+"location_sharing_live_viewer_title" = "Location";
+"location_sharing_live_list_item_time_left" = "%@ left";
+"location_sharing_live_list_item_sharing_expired" = "Sharing expired";
+"location_sharing_live_list_item_last_update" = "Updated %@ ago";
+"location_sharing_live_list_item_last_update_invalid" = "Unknown last update";
+"location_sharing_live_list_item_current_user_display_name" = "You";
+"location_sharing_live_list_item_stop_sharing_action" = "Stop sharing";
"location_sharing_live_timer_incoming" = "Live until %@";
"location_sharing_live_loading" = "Loading Live location...";
"location_sharing_live_error" = "Live location error";
diff --git a/Riot/Assets/third_party_licenses.html b/Riot/Assets/third_party_licenses.html
index 8d973a9a6..bfbc72922 100644
--- a/Riot/Assets/third_party_licenses.html
+++ b/Riot/Assets/third_party_licenses.html
@@ -1950,6 +1950,31 @@ Library.
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+