Compare commits
9 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
45efa42375 | ||
|
|
08207cbfa3 | ||
|
|
950f5e7551 | ||
|
|
0958bdd875 | ||
|
|
590f74efdd | ||
|
|
28cc827344 | ||
|
|
3eea0cc939 | ||
|
|
164b006971 | ||
|
|
db13ff5c01 |
17 changed files with 85 additions and 31 deletions
|
|
@ -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'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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})}],
|
||||
};
|
||||
}, []);
|
||||
|
||||
|
|
|
|||
|
|
@ -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})}],
|
||||
};
|
||||
}, []);
|
||||
|
||||
|
|
|
|||
|
|
@ -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})}],
|
||||
};
|
||||
}, []);
|
||||
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
2
package-lock.json
generated
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "mattermost-mobile",
|
||||
"version": "2.11.0",
|
||||
"version": "2.12.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
|
|
|||
|
|
@ -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.",
|
||||
|
|
|
|||
40
patches/@gorhom+bottom-sheet+4.5.1.patch
Normal file
40
patches/@gorhom+bottom-sheet+4.5.1.patch
Normal 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
|
||||
Loading…
Reference in a new issue