Skip to content

Commit 9a41470

Browse files
authored
Merge branch 'develop' into fix-mobile-breaking-on-open-files
2 parents c11f0dd + e4bb1a8 commit 9a41470

File tree

181 files changed

+1501
-1148
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

181 files changed

+1501
-1148
lines changed

.circleci/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ orbs:
1212

1313
macos: &macos
1414
macos:
15-
xcode: "15.2.0"
15+
xcode: "16.2.0"
1616
resource_class: macos.m1.medium.gen1
1717

1818
bash-env: &bash-env

.detoxrc.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ module.exports = {
1919
type: 'ios.app',
2020
binaryPath: 'ios/build/Build/Products/Debug-iphonesimulator/Rocket.Chat Experimental.app',
2121
build:
22-
'xcodebuild -workspace ios/RocketChatRN.xcworkspace -scheme RocketChatRN -configuration Debug -destination \'generic/platform=iphonesimulator\' -derivedDataPath ios/build'
22+
"xcodebuild -workspace ios/RocketChatRN.xcworkspace -scheme RocketChatRN -configuration Debug -destination 'generic/platform=iphonesimulator' -derivedDataPath ios/build"
2323
},
2424
'ios.release': {
2525
type: 'ios.app',
2626
binaryPath: 'ios/build/Build/Products/Release-iphonesimulator/Rocket.Chat Experimental.app',
2727
build:
28-
'xcodebuild -workspace ios/RocketChatRN.xcworkspace -scheme RocketChatRN -configuration Release -destination \'generic/platform=iphonesimulator\' -derivedDataPath ios/build'
28+
"xcodebuild -workspace ios/RocketChatRN.xcworkspace -scheme RocketChatRN -configuration Release -destination 'generic/platform=iphonesimulator' -derivedDataPath ios/build"
2929
},
3030
'android.debug': {
3131
type: 'android.apk',
@@ -45,7 +45,7 @@ module.exports = {
4545
simulator: {
4646
type: 'ios.simulator',
4747
device: {
48-
type: 'iPhone 14'
48+
type: 'iPhone 16'
4949
}
5050
},
5151
attached: {
+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: "Bug Report"
2+
description: "Report a bug to help us improve."
3+
title: "bug: "
4+
labels: ["🐛 bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
## Thank you for taking the time to report this bug!
10+
Before submitting, please check if a similar issue exists.
11+
12+
- type: textarea
13+
id: description
14+
attributes:
15+
label: "Describe the Bug"
16+
description: "A clear and concise description of the issue."
17+
placeholder: "A bug happened!"
18+
validations:
19+
required: true
20+
21+
- type: textarea
22+
id: steps
23+
attributes:
24+
label: "Steps to Reproduce"
25+
description: "List the steps to reproduce the issue."
26+
placeholder: |
27+
1. Go to '...'
28+
2. Click on '...'
29+
3. Observe the issue
30+
validations:
31+
required: true
32+
33+
- type: textarea
34+
id: expected-behavior
35+
attributes:
36+
label: "Expected Behavior"
37+
description: "What should have happened?"
38+
placeholder: "Describe the expected outcome."
39+
40+
- type: textarea
41+
id: actual-behavior
42+
attributes:
43+
label: "Actual Behavior"
44+
description: "What actually happened?"
45+
placeholder: "Describe what actually happens."
46+
47+
- type: input
48+
id: server-version
49+
attributes:
50+
label: "Rocket.Chat Server Version"
51+
placeholder: "Enter the server version"
52+
validations:
53+
required: true
54+
55+
- type: input
56+
id: app-version
57+
attributes:
58+
label: "Rocket.Chat App Version"
59+
placeholder: "Enter the app version"
60+
validations:
61+
required: true
62+
63+
- type: input
64+
id: device-name
65+
attributes:
66+
label: "Device Name"
67+
placeholder: "e.g., iPhone 13, Samsung Galaxy S22"
68+
validations:
69+
required: true
70+
71+
- type: input
72+
id: os-version
73+
attributes:
74+
label: "OS Version"
75+
placeholder: "e.g., iOS 17, Android 14"
76+
validations:
77+
required: true
78+
79+
- type: textarea
80+
id: additional-context
81+
attributes:
82+
label: "Additional Context"
83+
description: "Provide any other relevant information about the problem."
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: "Feature Suggestion"
2+
description: "Suggest a new feature to improve our mobile application."
3+
title: "feature request: "
4+
labels: ["🎉 feature"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
## Thank you for suggesting a new feature for our mobile application!
10+
Please provide as much detail as possible below so we can evaluate your idea.
11+
12+
- type: textarea
13+
id: feature-description
14+
attributes:
15+
label: "Feature Description"
16+
description: "A clear and concise description of the proposed feature."
17+
placeholder: "Describe the feature you are proposing..."
18+
validations:
19+
required: true
20+
21+
- type: textarea
22+
id: motivation
23+
attributes:
24+
label: "Motivation and Use Case"
25+
description: "Explain why this feature would improve the mobile experience and describe any specific use cases or issues it addresses."
26+
placeholder: "Explain the benefits and use case for the feature..."
27+
validations:
28+
required: true
29+
30+
- type: textarea
31+
id: implementation-ideas
32+
attributes:
33+
label: "Implementation Ideas"
34+
description: "Share any thoughts on how this feature might be implemented."
35+
placeholder: "Share your ideas or potential solutions..."
36+
validations:
37+
required: false
38+
39+
- type: dropdown
40+
id: existing-feature
41+
attributes:
42+
label: "Is this feature available in the API or web version?"
43+
description: "Select an option if this feature is already present elsewhere."
44+
options:
45+
- "Available in API"
46+
- "Available in Web Version"
47+
- "Not available"
48+
- "Not sure"
49+
validations:
50+
required: true
51+
52+
- type: input
53+
id: server-version
54+
attributes:
55+
label: "Rocket.Chat Server Version"
56+
placeholder: "Enter the server version"
57+
validations:
58+
required: false
59+
60+
- type: input
61+
id: app-version
62+
attributes:
63+
label: "Rocket.Chat App Version"
64+
placeholder: "Enter the app version"
65+
validations:
66+
required: false
67+
68+
- type: input
69+
id: device-name
70+
attributes:
71+
label: "Device Name"
72+
placeholder: "e.g., iPhone 13, Samsung Galaxy S22"
73+
validations:
74+
required: false
75+
76+
- type: input
77+
id: os-version
78+
attributes:
79+
label: "OS Version"
80+
placeholder: "e.g., iOS 17, Android 14"
81+
validations:
82+
required: false
83+
84+
- type: textarea
85+
id: additional-context
86+
attributes:
87+
label: "Additional Context"
88+
description: "Any additional information or context to help us better understand your suggestion."

.github/ISSUE_TEMPLATE/config.yml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: true
2+
contact_links:
3+
- name: Community Support
4+
url: https://open.rocket.chat/channel/react-native
5+
about: Please ask and answer questions here.

.github/workflows/prettier.yml

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Format Code with Prettier
2+
3+
on:
4+
push:
5+
branches:
6+
- '*'
7+
8+
concurrency:
9+
group: ${{ github.workflow }}-${{ github.ref }}
10+
cancel-in-progress: true
11+
12+
jobs:
13+
format:
14+
if: ${{ github.repository != 'RocketChat/Rocket.Chat.ReactNative' || (github.ref != 'refs/heads/master' && github.ref != 'refs/heads/develop' && github.ref != 'refs/heads/single-server') }}
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
with:
21+
fetch-depth: 0
22+
23+
- name: Set up Node.js
24+
uses: actions/setup-node@v4
25+
with:
26+
node-version: '22'
27+
cache: 'yarn'
28+
29+
- name: Cache node_modules
30+
uses: actions/cache@v4
31+
with:
32+
path: node_modules
33+
key: ${{ runner.os }}-node-modules-${{ hashFiles('**/yarn.lock') }}
34+
restore-keys: |
35+
${{ runner.os }}-node-modules-${{ hashFiles('**/yarn.lock') }}
36+
37+
- name: Install dependencies
38+
run: yarn install
39+
40+
- name: Run Prettier
41+
run: yarn prettier --write .
42+
43+
- name: Check for changes
44+
id: check_changes
45+
run: |
46+
if git diff --quiet; then
47+
echo "No code format changes detected"
48+
echo "changes=false" >> $GITHUB_OUTPUT
49+
else
50+
echo "Code format changes detected"
51+
echo "changes=true" >> $GITHUB_OUTPUT
52+
fi
53+
54+
- name: Commit and push changes
55+
if: env.changes == 'true'
56+
run: |
57+
git config user.name "${{ github.actor }}"
58+
git config user.email "${{ github.actor }}@users.noreply.github.com"
59+
git add .
60+
git commit -m "chore: format code with Prettier [skip ci]"
61+
git push origin ${{ github.ref_name }}

android/app/build.gradle

+2-6
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ android {
9393
minSdkVersion rootProject.ext.minSdkVersion
9494
targetSdkVersion rootProject.ext.targetSdkVersion
9595
versionCode VERSIONCODE as Integer
96-
versionName "4.58.0"
96+
versionName "4.59.0"
9797
vectorDrawables.useSupportLibrary = true
9898
if (!isFoss) {
9999
manifestPlaceholders = [BugsnagAPIKey: BugsnagAPIKey as String]
@@ -106,6 +106,7 @@ android {
106106

107107
signingConfigs {
108108
release {
109+
v1SigningEnabled false
109110
if (project.hasProperty('KEYSTORE')) {
110111
storeFile file(KEYSTORE)
111112
storePassword KEYSTORE_PASSWORD
@@ -195,7 +196,6 @@ dependencies {
195196
}
196197

197198
implementation project(':@react-native-community_viewpager')
198-
// implementation "androidx.core:core-splashscreen:1.0.0"
199199
playImplementation project(':react-native-notifications')
200200
playImplementation "com.google.firebase:firebase-messaging:23.3.1"
201201
playImplementation project(':@react-native-firebase_app')
@@ -204,14 +204,10 @@ dependencies {
204204
implementation project(':watermelondb-jsi')
205205

206206
implementation "com.google.code.gson:gson:2.8.9"
207-
implementation "com.github.bumptech.glide:glide:4.9.0"
208-
annotationProcessor "com.github.bumptech.glide:compiler:4.9.0"
209207
implementation "com.tencent:mmkv-static:1.2.10"
210208
androidTestImplementation('com.wix:detox:+')
211209
implementation 'androidx.appcompat:appcompat:1.1.0'
212210
implementation 'com.facebook.soloader:soloader:0.10.4'
213-
implementation("com.facebook.fresco:animated-gif:2.5.0")
214-
implementation "com.facebook.fresco:imagepipeline-okhttp3:3.1.3"
215211
}
216212

217213
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

android/app/src/main/AndroidManifest.xml

-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
1818

1919
<!-- android 13 media permission -->
20-
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
21-
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
2220
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
2321

2422
<application
424 Bytes
Binary file not shown.

android/app/src/main/java/chat/rocket/reactnative/networking/SSLPinningModule.java

+8-7
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,9 @@
3636

3737
import com.reactnativecommunity.webview.RNCWebViewManager;
3838

39-
import com.dylanvann.fastimage.FastImageOkHttpUrlLoader;
40-
4139
import expo.modules.av.player.datasource.SharedCookiesDataSourceFactory;
4240
import expo.modules.filesystem.FileSystemModule;
41+
import expo.modules.image.okhttp.ExpoImageOkHttpClientGlideModule;
4342

4443
public class SSLPinningModule extends ReactContextBaseJavaModule implements KeyChainAliasCallback {
4544

@@ -98,24 +97,26 @@ public void alias(String alias) {
9897
@ReactMethod
9998
public void setCertificate(String data, Promise promise) {
10099
this.alias = data;
100+
OkHttpClient client = getOkHttpClient();
101101

102102
// HTTP Fetch react-native layer
103103
NetworkingModule.setCustomClientBuilder(new CustomClient());
104104
// Websocket react-native layer
105105
WebSocketModule.setCustomClientBuilder(new CustomClient());
106106
// Image networking react-native layer
107107
ImagePipelineConfig config = OkHttpImagePipelineConfigFactory
108-
.newBuilder(this.reactContext, getOkHttpClient())
108+
.newBuilder(this.reactContext, client)
109109
.build();
110110
Fresco.initialize(this.reactContext, config);
111111
// RNCWebView onReceivedClientCertRequest
112112
RNCWebViewManager.setCertificateAlias(data);
113-
// FastImage Glide network layer
114-
FastImageOkHttpUrlLoader.setOkHttpClient(getOkHttpClient());
113+
115114
// Expo AV network layer
116-
SharedCookiesDataSourceFactory.setOkHttpClient(getOkHttpClient());
115+
SharedCookiesDataSourceFactory.setOkHttpClient(client);
117116
// Expo File System network layer
118-
FileSystemModule.setOkHttpClient(getOkHttpClient());
117+
FileSystemModule.setOkHttpClient(client);
118+
// Expo Image network layer
119+
ExpoImageOkHttpClientGlideModule.Companion.setOkHttpClient(client);
119120

120121
promise.resolve(null);
121122
}

android/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ buildscript {
44

55
ext {
66
buildToolsVersion = "34.0.0"
7-
minSdkVersion = 23
7+
minSdkVersion = 24
88
compileSdkVersion = 34
99
targetSdkVersion = 34
1010
ndkVersion = "25.1.8937393"

app/containers/ActionSheet/BottomSheetContent.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ const BottomSheetContent = React.memo(({ options, hasCancel, hide, children, onL
2828
<Touch
2929
onPress={hide}
3030
style={[styles.button, { backgroundColor: colors.surfaceHover }]}
31-
accessibilityLabel={I18n.t('Cancel')}
32-
>
31+
accessibilityLabel={I18n.t('Cancel')}>
3332
<Text style={[styles.text, { color: colors.fontDefault }]}>{I18n.t('Cancel')}</Text>
3433
</Touch>
3534
) : null;

0 commit comments

Comments
 (0)