Compare commits

...

9 commits

Author SHA1 Message Date
unified-ci-app[bot]
45efa42375
Bump app build and version number (#7810)
Some checks failed
github-release / test (push) Has been cancelled
github-release / build-ios-unsigned (push) Has been cancelled
github-release / build-android-unsigned (push) Has been cancelled
github-release / release (push) Has been cancelled
* Bump app build number to 506

* Bump app version number to 2.12.2

---------

Co-authored-by: runner <runner@Mac-1706873749400.local>
2024-02-02 13:08:47 +01:00
Mattermost Build
08207cbfa3
Update iOS permissions texts (#7805) (#7806)
* Update iOS permissions texts

* Add missing changes

(cherry picked from commit 41113ce857)

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2024-02-02 10:24:04 +01:00
Mattermost Build
950f5e7551
revert change to allow arbitrary loads (#7801) (#7802) 2024-02-01 21:07:37 +08:00
unified-ci-app[bot]
0958bdd875
Bump app build number to 505 (#7798)
Some checks failed
github-release / test (push) Has been cancelled
github-release / build-ios-unsigned (push) Has been cancelled
github-release / build-android-unsigned (push) Has been cancelled
github-release / release (push) Has been cancelled
Co-authored-by: runner <runner@Mac-1706614730474.local>
2024-01-30 13:02:31 +01:00
Mattermost Build
590f74efdd
Remove motion reducer from critical animations (#7786) (#7793)
Co-authored-by: Mattermost Build <build@mattermost.com>
(cherry picked from commit 780f623274)

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2024-01-30 12:40:38 +01:00
unified-ci-app[bot]
28cc827344
Bump app build and version number (#7777)
* Bump app build number to 502

* Bump app version number to 2.12.1

---------

Co-authored-by: runner <runner@Mac-1705927024817.local>
2024-01-22 15:00:30 +01:00
Mattermost Build
3eea0cc939
Improves get roles by names requests to batch them following the new endpoint limit (#7650) (#7749)
(cherry picked from commit 4095212d86)

Co-authored-by: Miguel de la Cruz <mgdelacroix@gmail.com>
2024-01-11 12:24:10 +01:00
Mattermost Build
164b006971
Fix build script failure (#7740) (#7745)
Some checks failed
github-release / test (push) Has been cancelled
github-release / build-ios-unsigned (push) Has been cancelled
github-release / build-android-unsigned (push) Has been cancelled
github-release / release (push) Has been cancelled
(cherry picked from commit 0a8f3cebb8)

Co-authored-by: Mario Vitale <mvitale1989@hotmail.com>
2024-01-08 16:09:08 +01:00
Mattermost Build
db13ff5c01
Bump to version 2.12.0 build 499 (#7705) (#7706)
(cherry picked from commit c90ed51981)

Co-authored-by: Mario Vitale <mvitale1989@hotmail.com>
2023-12-08 15:40:04 +01:00
17 changed files with 85 additions and 31 deletions

View file

@ -111,8 +111,8 @@ android {
applicationId "com.mattermost.rnbeta"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 498
versionName "2.11.0"
versionCode 506
versionName "2.12.2"
testBuildType System.getProperty('testBuildType', 'debug')
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}

View file

@ -1,6 +1,7 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {General} from '@constants';
import DatabaseManager from '@database/manager';
import NetworkManager from '@managers/network_manager';
import {queryRoles} from '@queries/servers/role';
@ -42,7 +43,13 @@ export const fetchRolesIfNeeded = async (serverUrl: string, updatedRoles: string
return {roles: []};
}
const roles = await client.getRolesByNames(newRoles);
const getRolesRequests = [];
for (let i = 0; i < newRoles.length; i += General.MAX_GET_ROLES_BY_NAMES) {
const chunk = newRoles.slice(i, i + General.MAX_GET_ROLES_BY_NAMES);
getRolesRequests.push(client.getRolesByNames(chunk));
}
const roles = (await Promise.all(getRolesRequests)).flat();
if (!fetchOnly) {
await operator.handleRole({
roles,

View file

@ -32,6 +32,7 @@ export default {
MAX_USERS_IN_GM: 7,
MIN_USERS_IN_GM: 3,
MAX_GROUP_CHANNELS_FOR_PROFILES: 50,
MAX_GET_ROLES_BY_NAMES: 100,
DEFAULT_AUTOLINKED_URL_SCHEMES: ['http', 'https', 'ftp', 'mailto', 'tel', 'mattermost'],
PROFILE_CHUNK_SIZE: 100,
SEARCH_TIMEOUT_MILLISECONDS: 500,

View file

@ -18,7 +18,7 @@ export const iosPermissions = defineMessages({
},
NSCameraUsageDescription: {
id: 'mobile.ios.plist.NSCameraUsageDescription',
defaultMessage: 'Enabling access to your device cameras means you can take photos or videos and upload them to {applicationName}.',
defaultMessage: 'Allowing access to your camera enables you to take photos or videos and attach them to messages.',
},
NSFaceIDUsageDescription: {
id: 'mobile.ios.plist.NSFaceIDUsageDescription',
@ -42,7 +42,7 @@ export const iosPermissions = defineMessages({
},
NSPhotoLibraryUsageDescription: {
id: 'mobile.ios.plist.NSPhotoLibraryUsageDescription',
defaultMessage: 'Enabling read access to your photo library means you can upload photos and videos from your device to {applicationName}.',
defaultMessage: 'Allowing access to your photo library enables you to select photos or videos and attach them to messages.',
},
NSSpeechRecognitionUsageDescription: {
id: 'mobile.ios.plist.NSSpeechRecognitionUsageDescription',

View file

@ -5,7 +5,7 @@ import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';
import {Platform, useWindowDimensions, View, type LayoutChangeEvent} from 'react-native';
import {KeyboardAwareScrollView} from 'react-native-keyboard-aware-scroll-view';
import {Navigation} from 'react-native-navigation';
import Animated, {useAnimatedStyle, useSharedValue, withTiming} from 'react-native-reanimated';
import Animated, {ReduceMotion, useAnimatedStyle, useSharedValue, withTiming} from 'react-native-reanimated';
import {SafeAreaView} from 'react-native-safe-area-context';
import FormattedText from '@components/formatted_text';
@ -134,7 +134,7 @@ const LoginOptions = ({
const transform = useAnimatedStyle(() => {
const duration = Platform.OS === 'android' ? 250 : 350;
return {
transform: [{translateX: withTiming(translateX.value, {duration})}],
transform: [{translateX: withTiming(translateX.value, {duration, reduceMotion: ReduceMotion.Never})}],
};
}, []);

View file

@ -14,7 +14,7 @@ import {
BackHandler,
} from 'react-native';
import {Navigation} from 'react-native-navigation';
import Animated, {useAnimatedStyle, useDerivedValue, useSharedValue, withTiming} from 'react-native-reanimated';
import Animated, {ReduceMotion, useAnimatedStyle, useDerivedValue, useSharedValue, withTiming} from 'react-native-reanimated';
import {storeOnboardingViewedValue} from '@actions/app/global';
import {Screens} from '@constants';
@ -108,7 +108,7 @@ const Onboarding = ({
const transform = useAnimatedStyle(() => {
const duration = Platform.OS === 'android' ? 250 : 350;
return {
transform: [{translateX: withTiming(translateX.value, {duration})}],
transform: [{translateX: withTiming(translateX.value, {duration, reduceMotion: ReduceMotion.Never})}],
};
}, []);

View file

@ -7,7 +7,7 @@ import {useIntl} from 'react-intl';
import {Alert, BackHandler, Platform, useWindowDimensions, View} from 'react-native';
import {KeyboardAwareScrollView} from 'react-native-keyboard-aware-scroll-view';
import {Navigation} from 'react-native-navigation';
import Animated, {useAnimatedStyle, useSharedValue, withTiming} from 'react-native-reanimated';
import Animated, {ReduceMotion, useAnimatedStyle, useSharedValue, withTiming} from 'react-native-reanimated';
import {SafeAreaView} from 'react-native-safe-area-context';
import {doPing} from '@actions/remote/general';
@ -350,7 +350,7 @@ const Server = ({
const transform = useAnimatedStyle(() => {
const duration = Platform.OS === 'android' ? 250 : 350;
return {
transform: [{translateX: withTiming(translateX.value, {duration})}],
transform: [{translateX: withTiming(translateX.value, {duration, reduceMotion: ReduceMotion.Never})}],
};
}, []);

View file

@ -578,13 +578,13 @@
"mobile.ios.plist.NSAppleMusicUsageDescription": "Enabling access to your media library means you can attach files from your media library to your messages in {applicationName}.",
"mobile.ios.plist.NSBluetoothAlwaysUsageDescription": "Enabling access to Bluetooth means we can synchronize content across your devices and clients.",
"mobile.ios.plist.NSBluetoothPeripheralUsageDescription": "Enabling access to Bluetooth means we can connect to audio peripherals for calls, and synchronize content across your devices and clients.",
"mobile.ios.plist.NSCameraUsageDescription": "Enabling access to your device cameras means you can take photos or videos and upload them to {applicationName}.",
"mobile.ios.plist.NSCameraUsageDescription": "Allowing access to your camera enables you to take photos or videos and attach them to messages.",
"mobile.ios.plist.NSFaceIDUsageDescription": "Enabling access to your Face ID means we can restrict unauthorized users from accessing {applicationName} on your device.",
"mobile.ios.plist.NSLocationAlwaysUsageDescription": "Enabling access to your location data means we can add location metadata to pictures and videos you share in {applicationName}.",
"mobile.ios.plist.NSLocationWhenInUseUsageDescription": "Enabling access to your location data means we can add location metadata to pictures and videos you share in {applicationName}.",
"mobile.ios.plist.NSMicrophoneUsageDescription": "Enabling access to your device's microphones means you can capture audio for calls or videos to share in {applicationName}.",
"mobile.ios.plist.NSPhotoLibraryAddUsageDescription": "Enabling write access to your photo library means you can save downloaded photos and videos from {applicationName} to your device.",
"mobile.ios.plist.NSPhotoLibraryUsageDescription": "Enabling read access to your photo library means you can upload photos and videos from your device to {applicationName}.",
"mobile.ios.plist.NSPhotoLibraryUsageDescription": "Allowing access to your photo library enables you to select photos or videos and attach them to messages.",
"mobile.ios.plist.NSSpeechRecognitionUsageDescription": "Enabling your device to send user data to Apple means you can send voice messages to {applicationName}.",
"mobile.join_channel.error": "We couldn't join the channel {displayName}.",
"mobile.leave_and_join_confirmation": "Leave & Join",

View file

@ -1,3 +1,9 @@
GIT
remote: https://github.com/jonathanneilritchie/fastlane-plugin-find_replace_string
revision: 1b71026318ad40abc710d601be48d67bcb353ddf
specs:
fastlane-plugin-find_replace_string (0.1.0)
GEM
remote: https://rubygems.org/
specs:
@ -108,7 +114,6 @@ GEM
fastlane-plugin-android_change_package_identifier (0.1.0)
fastlane-plugin-android_change_string_app_name (0.1.1)
nokogiri
fastlane-plugin-find_replace_string (0.1.0)
fastlane-plugin-versioning_android (0.1.1)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.53.0)
@ -216,6 +221,7 @@ GEM
PLATFORMS
arm64-darwin-22
arm64-darwin-23
x86_64-darwin-20
x86_64-darwin-23
DEPENDENCIES
@ -223,7 +229,7 @@ DEPENDENCIES
fastlane
fastlane-plugin-android_change_package_identifier
fastlane-plugin-android_change_string_app_name
fastlane-plugin-find_replace_string
fastlane-plugin-find_replace_string!
fastlane-plugin-versioning_android
nokogiri

View file

@ -4,5 +4,5 @@
gem 'fastlane-plugin-android_change_package_identifier'
gem 'fastlane-plugin-android_change_string_app_name'
gem 'fastlane-plugin-find_replace_string'
gem 'fastlane-plugin-find_replace_string', git: "https://github.com/jonathanneilritchie/fastlane-plugin-find_replace_string"
gem 'fastlane-plugin-versioning_android'

View file

@ -1931,7 +1931,7 @@
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 498;
CURRENT_PROJECT_VERSION = 506;
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
ENABLE_BITCODE = NO;
HEADER_SEARCH_PATHS = (
@ -1975,7 +1975,7 @@
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 498;
CURRENT_PROJECT_VERSION = 506;
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
ENABLE_BITCODE = NO;
HEADER_SEARCH_PATHS = (
@ -2118,7 +2118,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 498;
CURRENT_PROJECT_VERSION = 506;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
GCC_C_LANGUAGE_STANDARD = gnu11;
@ -2167,7 +2167,7 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 498;
CURRENT_PROJECT_VERSION = 506;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
GCC_C_LANGUAGE_STANDARD = gnu11;

View file

@ -21,7 +21,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>2.11.0</string>
<string>2.12.2</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
@ -37,7 +37,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>498</string>
<string>506</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSRequiresIPhoneOS</key>
@ -47,7 +47,7 @@
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
@ -58,7 +58,7 @@
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Enabling access to Bluetooth means we can connect to audio peripherals for calls, and synchronize content across your devices and clients.</string>
<key>NSCameraUsageDescription</key>
<string>Enabling access to your device cameras means you can take photos or videos and upload them to $(PRODUCT_NAME).</string>
<string>Allowing access to your camera enables you to take photos or videos and attach them to messages.</string>
<key>NSFaceIDUsageDescription</key>
<string>Enabling access to your Face ID means we can restrict unauthorized users from accessing $(PRODUCT_NAME) on your device.</string>
<key>NSLocationAlwaysUsageDescription</key>
@ -70,7 +70,7 @@
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Enabling write access to your photo library means you can save downloaded photos and videos from $(PRODUCT_NAME) to your device.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Enabling read access to your photo library means you can upload photos and videos from your device to $(PRODUCT_NAME).</string>
<string>Allowing access to your photo library enables you to select photos or videos and attach them to messages.</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>Enabling your device to send user data to Apple means you can send voice messages to $(PRODUCT_NAME).</string>
<key>NSUserActivityTypes</key>

View file

@ -19,9 +19,9 @@
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleShortVersionString</key>
<string>2.11.0</string>
<string>2.12.2</string>
<key>CFBundleVersion</key>
<string>498</string>
<string>506</string>
<key>UIAppFonts</key>
<array>
<string>OpenSans-Bold.ttf</string>

View file

@ -19,9 +19,9 @@
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleShortVersionString</key>
<string>2.11.0</string>
<string>2.12.2</string>
<key>CFBundleVersion</key>
<string>498</string>
<string>506</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>

2
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "mattermost-mobile",
"version": "2.11.0",
"version": "2.12.2",
"lockfileVersion": 3,
"requires": true,
"packages": {

View file

@ -1,6 +1,6 @@
{
"name": "mattermost-mobile",
"version": "2.11.0",
"version": "2.12.2",
"description": "Mattermost Mobile with React Native",
"repository": "git@github.com:mattermost/mattermost-mobile.git",
"author": "Mattermost, Inc.",

View file

@ -0,0 +1,40 @@
diff --git a/node_modules/@gorhom/bottom-sheet/src/hooks/useBottomSheetTimingConfigs.ts b/node_modules/@gorhom/bottom-sheet/src/hooks/useBottomSheetTimingConfigs.ts
index 9d2f61d..ac91e40 100644
--- a/node_modules/@gorhom/bottom-sheet/src/hooks/useBottomSheetTimingConfigs.ts
+++ b/node_modules/@gorhom/bottom-sheet/src/hooks/useBottomSheetTimingConfigs.ts
@@ -1,5 +1,5 @@
import { useMemo } from 'react';
-import type { WithTimingConfig } from 'react-native-reanimated';
+import { ReduceMotion, type WithTimingConfig } from 'react-native-reanimated';
import { ANIMATION_DURATION, ANIMATION_EASING } from '../constants';
/**
@@ -14,6 +14,7 @@ export const useBottomSheetTimingConfigs = (configs: WithTimingConfig) => {
const _configs: WithTimingConfig = {
easing: configs.easing || ANIMATION_EASING,
duration: configs.duration || ANIMATION_DURATION,
+ reduceMotion: ReduceMotion.Never,
};
return _configs;
diff --git a/node_modules/@gorhom/bottom-sheet/src/utilities/animate.ts b/node_modules/@gorhom/bottom-sheet/src/utilities/animate.ts
index 0ce4c9a..c01a069 100644
--- a/node_modules/@gorhom/bottom-sheet/src/utilities/animate.ts
+++ b/node_modules/@gorhom/bottom-sheet/src/utilities/animate.ts
@@ -4,6 +4,7 @@ import {
withTiming,
withSpring,
AnimationCallback,
+ ReduceMotion,
} from 'react-native-reanimated';
import { ANIMATION_CONFIGS, ANIMATION_METHOD } from '../constants';
@@ -26,6 +27,8 @@ export const animate = ({
configs = ANIMATION_CONFIGS;
}
+ configs = {...configs, reduceMotion: ReduceMotion.Never};
+
// detect animation type
const type =
'duration' in configs || 'easing' in configs