Skip to content

Commit 5a68f69

Browse files
authored
Merge branch 'develop' into feat/2911-joining-user-qss-optin-ui
2 parents b666139 + 8089591 commit 5a68f69

33 files changed

+247
-320
lines changed

.github/workflows/mobile-build-apk.yml

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ jobs:
3939
java-version: 17
4040

4141
- name: "Set up NDK"
42-
uses: nttld/setup-ndk@8c3b609ff4d54576ea420551943fd34b4d03b0dc # v1.2.0
42+
uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 # v1.5.0
4343
id: setup-ndk
4444
with:
45-
ndk-version: r25b
45+
ndk-version: r28c
4646
add-to-path: false
4747

4848
- name: "Setup environment"
@@ -81,6 +81,16 @@ jobs:
8181
name: app-standard-release.apk
8282
path: ./packages/mobile/android/app/build/outputs/apk/standard/release/app-standard-release.apk
8383

84+
- name: "Build debug .apk"
85+
run: cd ./packages/mobile/android && ENVFILE=../.env.production ./gradlew assembleStandardDebug
86+
87+
- name: "Upload debug .apk to artifacts"
88+
continue-on-error: true
89+
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
90+
with:
91+
name: app-standard-debug.apk
92+
path: ./packages/mobile/android/app/build/outputs/apk/standard/debug/app-standard-debug.apk
93+
8494
- name: "Get release"
8595
id: get_release
8696
uses: bruceadams/[email protected]
@@ -96,6 +106,16 @@ jobs:
96106
asset_path: ./packages/mobile/android/app/build/outputs/apk/standard/release/app-standard-release.apk
97107
asset_name: app-standard-release.apk
98108
asset_content_type: application/.apk
109+
110+
- name: "Upload debug release assets"
111+
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
112+
env:
113+
GITHUB_TOKEN: ${{ github.token }}
114+
with:
115+
upload_url: ${{ steps.get_release.outputs.upload_url }}
116+
asset_path: ./packages/mobile/android/app/build/outputs/apk/standard/debug/app-standard-debug.apk
117+
asset_name: app-standard-debug.apk
118+
asset_content_type: application/.apk
99119

100120
- name: Send Release Notificaton
101121
uses: ./.github/actions/release-notifier
@@ -123,10 +143,10 @@ jobs:
123143
java-version: 17
124144

125145
- name: "Set up NDK"
146+
uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 # v1.5.0
126147
id: setup-ndk
127-
uses: nttld/setup-ndk@v1
128148
with:
129-
ndk-version: r25b
149+
ndk-version: r28c
130150
add-to-path: false
131151

132152
- name: "Setup environment"

.github/workflows/mobile-deploy-android.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ jobs:
3737
java-version: 17
3838

3939
- name: "Set up NDK"
40-
uses: nttld/setup-ndk@v1
40+
uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 # v1.5.0
4141
id: setup-ndk
4242
with:
43-
ndk-version: r25b
43+
ndk-version: r28c
4444
add-to-path: false
4545

4646
- name: "Install Bundletool"

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,18 @@
1919

2020
* Update QSS flag to QSS_ALLOWED and reconfigure enabled setting/checking [#2912](https://github.com/TryQuiet/quiet/issues/2912)
2121

22+
## [6.2.0]
23+
24+
### Fixes
25+
26+
* Fix newline formatting in messages on mobile
27+
* Fix issue with keyboard hiding message input on Android
28+
* Fix issue with message send button not displaying correctly on mobile
29+
30+
### Chores
31+
32+
* Bump Android SDK to 35, NDK to 28.2.13676358, and Gradle plugin to 8.5.1 [see Google Play deadline](https://developer.android.com/google/play/requirements/target-sdk)
33+
2234
## [6.1.0]
2335

2436
### Fixes

packages/desktop/CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# Changelog
22

3+
## [6.2.0]
4+
5+
### Fixes
6+
7+
* Fix newline formatting in messages on mobile
8+
* Fix issue with keyboard hiding message input on Android
9+
* Fix issue with message send button not displaying correctly on mobile
10+
11+
### Chores
12+
13+
* Bump Android SDK to 35, NDK to 28.2.13676358, and Gradle plugin to 8.5.1 [see Google Play deadline](https://developer.android.com/google/play/requirements/target-sdk)
14+
315
## [6.1.0]
416

517
### Fixes

packages/desktop/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ Here are the steps:
1111

1212
4. In `quiet/` (project's root) install monorepo's dependencies and bootstrap the project with lerna. It will take care of the package's dependencies/submodules and trigger a prepublish script which builds them.
1313

14-
```
14+
```bash
1515
1616
17-
npm i -g [email protected] // may be needed depending on configuration
17+
npm i -g [email protected] # may be needed depending on configuration
1818
npm install
1919
npm run pull:submodules
2020
npm run bootstrap

packages/desktop/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/desktop/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
},
8181
"homepage": "https://github.com/TryQuiet",
8282
"@comment version": "To build new version for specific platform, just replace platform in version tag to one of following linux, mac, windows",
83-
"version": "6.1.0",
83+
"version": "6.2.0",
8484
"description": "Decentralized team chat",
8585
"main": "dist/main/main.js",
8686
"scripts": {

packages/mobile/CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# Changelog
22

3+
## [6.2.0]
4+
5+
### Fixes
6+
7+
* Fix newline formatting in messages on mobile
8+
* Fix issue with keyboard hiding message input on Android
9+
* Fix issue with message send button not displaying correctly on mobile
10+
11+
### Chores
12+
13+
* Bump Android SDK to 35, NDK to 28.2.13676358, and Gradle plugin to 8.5.1 [see Google Play deadline](https://developer.android.com/google/play/requirements/target-sdk)
14+
315
## [6.1.0]
416

517
### Fixes

packages/mobile/README.md

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,17 @@ Quiet Mobile is a React Native app for Android and iOS that shares a Node.js [ba
1818
1. Set `JAVA_HOME` to the Temurin install location by adding a line to your `.bashrc` or `.zshrc`:
1919
- Mac: `export JAVA_HOME="/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home"`
2020
- Linux: `export JAVA_HOME="/usr/lib/jvm/temurin-17-jdk-amd64/`
21+
22+
Alternatively, the easiest way to install The Temurin 17 JDK on Mac and Linux systems is to use [`SDKMAn`](https://sdkman.io/). This program is similar to `nvm` but for JDKs and allows you to easily install and switch between multiple JDKs on a single system.
23+
24+
```bash
25+
# downloads and installs SDKMAN
26+
curl -s "https://get.sdkman.io" | bash
27+
28+
# downloads + installs + configures JAVA_HOME for Temurin JDK 17
29+
sdk install java 17.0.0-tem
30+
```
31+
2132
1. Install [Android Studio](https://developer.android.com/studio), ensuring that all of the following items in the installation wizard are checked
2233
- Android SDK
2334
- Android SDK Platform
@@ -36,7 +47,7 @@ Quiet Mobile is a React Native app for Android and iOS that shares a Node.js [ba
3647
export PATH=$PATH:$ANDROID_HOME/platform-tools
3748
```
3849
39-
1. Confirm that the "Android 15 (VanillaIceCream)" SDK required by React Native has been installed (confusingly, it is also called "android-35")
50+
1. Confirm that the "Android 15 (VanillaIceCream)" SDK required by React Native has been installed (confusingly, it is also called "android-35" or [API level 35](https://apilevels.com/))
4051
4152
```bash
4253
ls $ANDROID_HOME/platforms
@@ -79,11 +90,12 @@ It may be convenient to run the app from Android studio, for example if you are
7990

8091
1. Open Android Studio
8192

82-
If using nvm to manage node versions, you may need to open Android studio from a terminal which has the correct node version set. This is because Android Studio may not be able to find the correct node version if it is not set in the terminal.
83-
```
93+
If using `nvm` to manage `node` versions, you may need relink the `node` installed by `nvm` in order to open Quiet in Android Studio.
94+
95+
```bash
8496
nvm install 18.20.4
8597
nvm use 18.20.4
86-
open -a "Android Studio"
98+
sudo ln -s "$(which node)" /usr/local/bin/node
8799
```
88100
1. Open the `android` directory in Android Studio.
89101
1. If necessary, sync the Gradle files by hitting the "Sync Project with Gradle Files" button in the top right corner.
@@ -109,7 +121,7 @@ _See the `node-common` README for a more detailed description of file logging in
109121

110122
Metro requires additional step for locally linking packages. After running standard `npm link` commands, update `metro.config.js` as follows
111123

112-
```bash
124+
```js
113125
const watchFolders = [
114126
...
115127
path.resolve(__dirname, '<path-to-linked-package>')

packages/mobile/android/app/build.gradle

Lines changed: 27 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ apply plugin: "kotlin-android"
44

55
apply plugin: "com.facebook.react"
66

7-
import com.android.build.OutputFile
8-
97
/**
108
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
119
* and bundleReleaseJsAndAssets).
@@ -85,19 +83,7 @@ project.ext.react = [
8583
enableHermes: false, // clean and rebuild if changing
8684
]
8785

88-
/**
89-
* Set this to true to create two separate APKs instead of one:
90-
* - An APK that only works on ARM devices
91-
* - An APK that only works on x86 devices
92-
* The advantage is the size of the APK is reduced by about 4MB.
93-
* Upload all the APKs to the Play Store and people will download
94-
* the correct one based on the CPU architecture of their device.
95-
*/
96-
def enableSeparateBuildPerCPUArchitecture = false
97-
98-
/**
99-
* Run Proguard to shrink the Java bytecode in release builds.
100-
*/
86+
// Run Proguard to shrink the Java bytecode in release builds.
10187
def enableProguardInReleaseBuilds = false
10288

10389
/**
@@ -122,14 +108,6 @@ def jscFlavor = 'org.webkit:android-jsc-intl:+'
122108
*/
123109
def enableHermes = project.ext.react.get("enableHermes", false);
124110

125-
def _nodeTargetSdkVersion = ((rootProject?.ext?.properties?.targetSdkVersion) ?: 22)
126-
def _nodeMinSdkVersion = ((rootProject?.ext?.properties?.minSdkVersion) ?: 16)
127-
def _compileNativeModulesSdkVersion = _nodeMinSdkVersion
128-
if (_compileNativeModulesSdkVersion<21) {
129-
// 21 is the minimum sdk version Node is built with.
130-
_compileNativeModulesSdkVersion=21
131-
}
132-
133111
/**
134112
* Architectures to build native code for.
135113
*/
@@ -167,18 +145,12 @@ android {
167145
compileSdkVersion rootProject.ext.compileSdkVersion
168146

169147
compileOptions {
170-
sourceCompatibility JavaVersion.VERSION_1_8
171-
targetCompatibility JavaVersion.VERSION_1_8
148+
sourceCompatibility JavaVersion.VERSION_17
149+
targetCompatibility JavaVersion.VERSION_17
172150
}
173151

174152
packagingOptions {
175-
pickFirst 'lib/x86/libc++_shared.so'
176-
pickFirst 'lib/x86_64/libc++_shared.so'
177-
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
178153
pickFirst 'lib/arm64-v8a/libc++_shared.so'
179-
pickFirst 'lib/x86/libfbjni.so'
180-
pickFirst 'lib/x86_64/libfbjni.so'
181-
pickFirst 'lib/armeabi-v7a/libfbjni.so'
182154
pickFirst 'lib/arm64-v8a/libfbjni.so'
183155

184156
jniLibs {
@@ -192,30 +164,27 @@ android {
192164
applicationId "com.quietmobile"
193165
minSdkVersion rootProject.ext.minSdkVersion
194166
targetSdkVersion rootProject.ext.targetSdkVersion
195-
versionCode 519
196-
versionName "6.1.0"
167+
versionCode 526
168+
versionName "6.2.0"
197169
resValue "string", "build_config_package", "com.quietmobile"
198170
testBuildType System.getProperty('testBuildType', 'debug')
199171
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
200172
ndk {
173+
//noinspection ChromeOsAbiSupport
201174
abiFilters "arm64-v8a"
202175
}
203176
externalNativeBuild {
204177
cmake {
205178
cppFlags ""
206179
}
207180
}
208-
externalNativeBuild {
209-
cmake {
210-
cppFlags ""
211-
}
212-
}
213181
}
214182
splits {
215183
abi {
216184
reset()
217-
enable enableSeparateBuildPerCPUArchitecture
185+
enable false
218186
universalApk false // If true, also generate a universal APK
187+
//noinspection ChromeOsAbiSupport
219188
include (*reactNativeArchitectures())
220189
}
221190
}
@@ -282,7 +251,7 @@ android {
282251
// https://developer.android.com/studio/build/configure-apk-splits.html
283252
// Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
284253
def versionCodes = ["arm64-v8a": 1]
285-
def abi = output.getFilter(OutputFile.ABI)
254+
def abi = output.getFilter("ABI")
286255
if (abi != null) { // null for the universal-debug, universal-release variants
287256
output.versionCodeOverride =
288257
defaultConfig.versionCode * 1000 + versionCodes.get(abi)
@@ -294,50 +263,43 @@ android {
294263

295264
dependencies {
296265
androidTestImplementation('com.wix:detox:+')
297-
implementation 'androidx.appcompat:appcompat:1.1.0'
298-
266+
androidTestImplementation('androidx.test:core:1.7.0')
267+
androidTestImplementation('androidx.test.ext:junit:1.1.1')
268+
implementation 'androidx.appcompat:appcompat:1.7.1'
299269
implementation fileTree(dir: "libs", include: ["*.jar", '*.so'])
300-
301-
// The version of react-native is set by the React Native Gradle Plugin
302-
implementation("com.facebook.react:react-android")
303-
270+
implementation("com.facebook.react:react-android") // version set by the React Native Gradle Plugin in npm
304271
implementation("com.facebook.react:flipper-integration")
305-
306-
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
272+
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
307273

308274
if (enableHermes) {
309275
//noinspection GradleDynamicVersion
310276
implementation("com.facebook.react:hermes-engine:+") { // From node_modules
311277
exclude group:'com.facebook.fbjni'
312278
}
313279
} else {
314-
implementation jscFlavor
280+
implementation(jscFlavor)
315281
}
316282

317-
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
318-
319-
implementation "androidx.core:core-ktx:1.9.0"
320-
321-
implementation 'com.google.code.gson:gson:2.9.1'
322-
323-
implementation project(':react-native-fs')
324-
325-
implementation group: 'commons-io', name: 'commons-io', version: '2.6'
283+
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version")
284+
implementation("androidx.core:core-ktx:1.15.0")
285+
implementation("com.google.code.gson:gson:2.13.1")
286+
implementation(project(":react-native-fs"))
287+
implementation(group: 'commons-io', name: 'commons-io', version: '2.20.0')
326288

327289
// Websockets connection
328-
implementation ('io.socket:socket.io-client:2.0.0') {
290+
implementation ('io.socket:socket.io-client:2.1.2') {
329291
exclude group: 'org.json', module: 'json'
330292
}
331293

332294
// Work manager
333-
implementation("androidx.work:work-runtime:2.7.1")
334-
implementation("androidx.work:work-runtime-ktx:2.7.1")
295+
implementation("androidx.work:work-runtime:2.10.3")
296+
implementation("androidx.work:work-runtime-ktx:2.10.3")
335297

336298
// For animated GIF support
337-
implementation 'com.facebook.fresco:fresco:2.6.0'
338-
implementation 'com.facebook.fresco:animated-gif:2.6.0'
339-
implementation "com.goterl:lazysodium-android:5.1.0@aar"
340-
implementation "net.java.dev.jna:jna:5.12.1@aar"
299+
implementation("com.facebook.fresco:fresco:3.6.0")
300+
implementation("com.facebook.fresco:animated-gif:3.6.0")
301+
implementation("com.goterl:lazysodium-android:5.2.0@aar")
302+
implementation("net.java.dev.jna:jna:5.17.0@aar")
341303
}
342304

343305
// Run this once to be able to run the application with BUCK

0 commit comments

Comments
 (0)