Skip to content

Commit

Permalink
Android 3.0.4
Browse files Browse the repository at this point in the history
  • Loading branch information
laurent22 committed Jun 12, 2024
1 parent de96614 commit a0e3e4f
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 2 deletions.
4 changes: 2 additions & 2 deletions packages/app-mobile/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ android {
applicationId "net.cozic.joplin"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 2097742
versionName "3.0.3"
versionCode 2097743
versionName "3.0.4"
ndk {
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
Expand Down
30 changes: 30 additions & 0 deletions readme/about/changelog/android.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,35 @@
# Joplin Android Changelog

## [android-v3.0.4](https://github.com/laurent22/joplin/releases/tag/android-v3.0.4) (Pre-release) - 2024-06-12T20:38:44Z

- New: Add Joplin Cloud account information to configuration screen (#10553 by [@pedr](https://github.com/pedr))
- New: Add button on Synchronization to Joplin Cloud login screen (#10569 by [@pedr](https://github.com/pedr))
- Improved: Dismiss dialogs on background tap (#10557 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Hide links to login after process is successful (#10571 by [@pedr](https://github.com/pedr))
- Improved: Implement plugin screen redesign (#10465 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Improve dialog styling on large and notched screens (#10470 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Improves formatting of log statements (aac8d58)
- Improved: Plugin API: Implement the `newNote` command (#10524 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Plugins: Make panel opening/closing more consistent with desktop (#10385 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Plugins: Show information page before enabling plugin support (#10348 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Settings screen: Show touch feedback when pressing a tab (#10544 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Share screen: Update headings and labels for consistency with desktop (#10395 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Show WebView version in settings (#10518 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Simplify Dropbox sync workaround (#10415 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Update Mermaid to v10.9.1 (#10475 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Update js-draw to version 1.20.2 (#10438 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Updated packages react, react-native-device-info (v10.12.1), react-native-document-picker (v9.1.1), react-native-paper (v5.12.3), sass (v1.70.0), tesseract.js (v5.0.5)
- Improved: Upgrade KaTeX to v0.16.10 (#10570 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Upgrade to React Native 0.74.1 (#10401 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Fixed: Automatically set focus on title or body when creating a new note (#10237)
- Fixed: Fix Dropbox sync (#10400) (#10396 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Fixed: Fix accepting encrypted shared notebooks (#10429) (#10409 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Fixed: Fix logger tests by adding time (#10433 by [@pedr](https://github.com/pedr))
- Fixed: Fix nonbreaking spaces and CRLF break search for adjacent words (#10417 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Fixed: Fix plugins aren't visible after switching to a new profile (#10386 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Fixed: Fix plugins not reloaded when the plugin runner reloads (#10540 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Fixed: Maintain cursor position when changing list indentation (#10441) (#10439 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))

## [android-v3.0.3](https://github.com/laurent22/joplin/releases/tag/android-v3.0.3) (Pre-release) - 2024-04-27T11:21:48Z

- Improved: Display a message when Joplin Cloud user don't have access to email to note feature (#10322 by [@pedr](https://github.com/pedr))
Expand Down

5 comments on commit a0e3e4f

@personalizedrefrigerator
Copy link
Collaborator

@personalizedrefrigerator personalizedrefrigerator commented on a0e3e4f Jun 12, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: The larger APK size (100 MB) is a result of the upgrade to React Native 0.74.

According to the React Native team, despite the larger APK size, the app should take less space on-device. See facebook/react-native#44291 (comment) for details.

If we need to revert this, adding extractNativeLibs="true" reduces the APK size back to the previous 45 MB. However, according to the React Native team, it makes the app slower. According to the Android documentation, extractNativeLibs has different default values depending on the minSdkVersion. React Native 0.74 increased the minSdkVersion, which may have changed the default value of extractNativeLibs.

For future reference, this diff would set extractNativeLibs to true, resulting in a 45 MB APK.
diff --git a/packages/app-mobile/android/app/src/main/AndroidManifest.xml b/packages/app-mobile/android/app/src/main/AndroidManifest.xml
index 3972acaf8..489dd5ee1 100644
--- a/packages/app-mobile/android/app/src/main/AndroidManifest.xml
+++ b/packages/app-mobile/android/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
 		android:networkSecurityConfig="@xml/network_security_config"
 		android:requestLegacyExternalStorage="true"
 		android:resizeableActivity="true"
+		android:extractNativeLibs="true"
 		android:theme="@style/AppTheme">
 
 		<!--
If necessary, we can also decrease the APK size even further.

It's also possible to get the generated APK down to 40.7 MB by — in addition to setting extractNativeLibs to true — enabling code and resource minification.

diff --git a/packages/app-mobile/android/app/build.gradle b/packages/app-mobile/android/app/build.gradle
index 88f5a4b2f..32da498e7 100644
--- a/packages/app-mobile/android/app/build.gradle
+++ b/packages/app-mobile/android/app/build.gradle
@@ -54,7 +54,7 @@ react {
 /**
  * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
  */
-def enableProguardInReleaseBuilds = false
+def enableProguardInReleaseBuilds = true
 
 /**
  * The preferred build flavor of JavaScriptCore (JSC)
@@ -116,6 +116,7 @@ android {
             // see https://reactnative.dev/docs/signed-apk-android.
             signingConfig signingConfigs.release
             minifyEnabled enableProguardInReleaseBuilds
+            shrinkResources true
             proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
         }
     }
diff --git a/packages/app-mobile/android/app/proguard-rules.pro b/packages/app-mobile/android/app/proguard-rules.pro
index 11b025724..85afbe17d 100644
--- a/packages/app-mobile/android/app/proguard-rules.pro
+++ b/packages/app-mobile/android/app/proguard-rules.pro
@@ -8,3 +8,10 @@
 #   http://developer.android.com/guide/developing/tools/proguard.html
 
 # Add any project specific keep options here:
+-dontwarn com.samsung.android.fingerprint.FingerprintEvent
+-dontwarn com.samsung.android.fingerprint.FingerprintIdentifyDialog$FingerprintListener
+-dontwarn com.samsung.android.fingerprint.FingerprintManager$EnrollFinishListener
+-dontwarn com.samsung.android.fingerprint.FingerprintManager
+-dontwarn com.samsung.android.fingerprint.IFingerprintClient$Stub
+-dontwarn com.samsung.android.fingerprint.IFingerprintClient
+-dontwarn java.awt.Component
\ No newline at end of file
diff --git a/packages/app-mobile/android/app/src/main/AndroidManifest.xml b/packages/app-mobile/android/app/src/main/AndroidManifest.xml
index 3972acaf8..489dd5ee1 100644
--- a/packages/app-mobile/android/app/src/main/AndroidManifest.xml
+++ b/packages/app-mobile/android/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
 		android:networkSecurityConfig="@xml/network_security_config"
 		android:requestLegacyExternalStorage="true"
 		android:resizeableActivity="true"
+		android:extractNativeLibs="true"
 		android:theme="@style/AppTheme">
 
 		<!--

Without the `extractNativeLibs="true", the APK size is still roughly 94 MB.

@personalizedrefrigerator
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm mentioning @IzzySoft because of the APK size requirements described in #8710.

@IzzySoft
Copy link

@IzzySoft IzzySoft commented on a0e3e4f Jun 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @personalizedrefrigerator – that will indeed be a problem. I can make exceptions when the size limit is slightly exceeded – but 100 MB is 3 times above it, that's too much. Is that per-ABI, or the "fat build" only? If the latter, what will be the size for per-ABI builds then? That's what the updater here currently picks.

And PS, there was no Android release since 11/2022: https://github.com/laurent22/joplin-android/releases

@laurent22
Copy link
Owner Author

@laurent22 laurent22 commented on a0e3e4f Jun 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the build that includes all ABIs since we don't have separate builds anymore. As mentioned in the other threads, the package size in most cases is not too important, for example because it's going to be gzipped when downloaded and that will be around 45 MB. Could that help in your particular situation?

We publish an Android release every time but GitHub broke sorting of releases a while back and as I understand it's a "won't fix". You'll find the most recent releases after page 6. But to view the releases in the correct order you can go to the Tags tab instead.

@IzzySoft
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the package size in most cases is not too important

It is for the IzzyOnDroid repo, sorry.

GitHub broke sorting of releases a while back

Ah! Now that you mention it I remember, we've talked about that in the past (and meanwhile I found at least 3 or 4 other projects with the same issue). I just see all tags are from 2020-08-08 in the tag list, while the date is correct when opening the tag, yay. So the IoD updater just fetched none of the newer releases as ApkMatch: /32bit\.apk$/i found no matches anymore… What shall we do with the IoD listing then, @laurent22?

Please sign in to comment.