summaryrefslogtreecommitdiffhomepage
path: root/android
AgeCommit message (Collapse)AuthorFilesLines
2022-03-14Ensure JNI directory exist during buildAlbin1-0/+11
Adds a Gradle task that checks whether the JNI directory used for Mullvad native libs exist. The task is set to run before the pre-build task.
2022-03-14Update Rust-end JNI and Android IPCDavid Lönnhager1-8/+6
2022-03-09Suppress false positive Android CVEAlbin2-0/+10
The CVE (CVE-2022-24329) only affects "Multiplatform Gradle Projects" according to the CVE description, which this is not, and therefore it's considered a false positive.
2022-03-01Remove API address rotationDavid Lönnhager2-3/+0
2022-03-01Updating version in package filesAlbin1-2/+2
2022-02-24Update android stringsOskar Nyberg20-10/+29
2022-02-22Remove unused/dead code from Android tun providerDavid Lönnhager1-10/+0
2022-02-17Add Android memory leak detection build typeAlbin4-2/+17
Adds a new build type which can be used to identify memory leaks by using the Leak Canary dependency/tool.
2022-02-08Fix missing fdroid metadataAlbin15-0/+1
F-Droid requires the metadata to be present in a specific location which isn't compatible with our mono-repo structure, therefore this change moves the Gradle Play Publisher (GPP) directories to a location compatible with F-Droid and adds a symlink at the location GPP expects, which leads to the F-Droid location. The reason for doing it this way rather than symlinking the other way around is that we don't use GPP itself atm. Even if we start using it, it's still easier to make sure everything is working (in regards to the symlink) in the GPP build environment compared to the F-Droid build environment.
2022-02-04Fix tile service crashAlbin1-1/+6
Fixes tile service crash that occurred when the tile service tries to unbind even though there are no binding or pending binding.
2022-01-28Empty Google Play release notesAlbin1-1/+0
As releases usually are built from release branches, the current strategy will be to keep this file empty on master.
2022-01-27Fix app startup crash on Android TVsAlbin4-35/+7
The main activity and tv activity are both designed to be running as singleTask and the app would crash if both were started. This would not be common, but possible, on a phone or tablet, however this can potentially occur frequently on Android TV (perhaps depending on OEM), as both categories LAUNCHER and LEANBACK_LAUNCHER are used. E.g.the tv launcher would use LEANBACK_LAUNCHER whereas the settings app would use LAUNCHER. As the tv activity isn't used for any customization atm, this was fixed by simply removing the tv activity and adding the LEANBACK_LAUNCHER category to the main activity.
2022-01-24Specify default notification vibration behaviorAlbin3-3/+7
Default vibration behavior: * Vibration enabled for account expiration notification. * Vibration disabled for tunnel state notification. These defaults can be overridden in system settings.
2022-01-24Hide tunnel state notification from lock screenAlbin5-37/+8
The tunnel state notification is hidden from the lock screen by using the Android notification visibility mechanism.
2022-01-24Refactor to use NotificationChannelCompatAlbin1-10/+12
2022-01-24Cleanup notification when task removedAlbin2-0/+5
Remove the tunnel state notification if the task is removed (app swiped away from recent apps) while the tunnel is disconnected.
2022-01-24Skip updating notification when service is killedAlbin1-2/+0
Skip creating/updating the tunnel state notification when the vpn service is killed.
2022-01-20Fix auto-connect on app removed from recent appsAlbin2-1/+12
By default in Android, a service will be automatically killed if it belongs to a task that was removed (i.e. from recent apps) without a chance to run any cleanup logic. In this case, the lack of cleanup would lead to a crash and auto-restart (triggered by the system) resulting in a auto-connect. To fix this, a graceful stop will be ran if the task is removed while the tunnel is disconnected (service not running as foreground). However if the tunnel is in other states than disconnected (service running as foreground), the service should continue to run as it's bound by the system.
2022-01-13Add Android version check pluginAlbin4-0/+26
2022-01-10Fix Android website link buttonsAlbin5-1/+16
Fixes an issue with url buttons keeping an old reference to service dependent instances, even after the service connection is no longer available. The fix ensures that the reference is updated once there is a new service connection.
2022-01-10Extract Android dependencies to constantsAlbin6-60/+164
Extracts Android dependency names/versions/repos to Kotlin constants in source code. The purpose of this change is to minimize duplication, unify versions and prepare the project to be split into multiple sub-projects/modules.
2022-01-07Fix Android build asset inclusionAlbin1-4/+2
2022-01-07Fix gradle kotlin release buildAlbin1-2/+2
2022-01-05Migrade gradle scripts to kotlin/ktsAlbin5-91/+92
2022-01-05Apply gradle plugins declarativelyAlbin1-4/+6
2022-01-05Prepare gradle scripts for kotlin migrationAlbin2-76/+75
2022-01-04Fix invalid path in Android release buildAlbin1-1/+1
Fixes the invalid path to 'keystore.properties' introduced in the previous split of the android/root project and app module.
2021-12-20Add Android dependency auditAlbin2-0/+14
Adds the OWASP Dependency-Check tool to the project to detect potentially vulnerable dependencies. Gradle is configured to skip the lintClassPath configuration, which relies on many dependencies that has been flagged to have CVEs, as it's related to the lint tooling rather than the project's compilation class path. The alternative would be to suppress specific CVEs, however that could potentially result in suppressed CVEs in project compilation class path.
2021-12-20Clarify Android tile textAlbin3-1/+11
Change Android tile title/label to "Toggle VPN" to better inform the user about the tile action. Also set the subtitle (on Android Q and above) to match the state shown in the notification.
2021-12-16Split Android project and app moduleAlbin432-179/+186
The purpose of this is to: * Comply better with the default Android project structure (see https://developer.android.com/studio/build). * Avoid conflicts between project and app dependencies and plugins.
2021-12-07Fix custom dns toggle not working after resumeAlbin2-64/+92
Fixes an issue with the custom dns toggle and server list not not working after the app is resumed, due to the logic not being aware of new service connections. The issue was fixed by moving some responsibility from the adapter to the fragment and making sure new service connections triggers new data subscriptions to be set up.
2021-12-07Fix resume navigates backAlbin1-9/+2
Fixes the automatic back navigation when the Android app is resumed by simplifying the state handling (redudant state removed).
2021-11-26Fix banner sometimes incorrectly showingAlbin1-7/+4
2021-11-26Improve tile service connectionAlbin4-23/+79
If the connection from the MullvadTileService to the MullvadVpnService has been lost, the tile service will now detect this and both change the tile state as well as try to reconnect.
2021-11-26Remove notification delete intentAlbin1-10/+1
This change removes the delete intent from the connection state notification, which means that the service will no longer be killed by swiping the notification (when it's not in foreground).
2021-11-26Skip removing notification when service stoppedAlbin1-1/+0
2021-11-26Avoid running in foreground when not connectedAlbin4-35/+5
This change makes the Android service (MullvadVpnService) only run in foreground when connected, compared to previously when it also ran in foreground when the app/ui was in foreground. This change reduces the amount of potential states after the previous work of splitting the app/ui and service into separate processes. It also makes the app/service better aligned with the Android platform, as foreground services only should be used for ongoing operations/work.
2021-11-10Cleanup leftover SDK version checksAlbin5-42/+12
Removes SDK checks for non-supported versions (below version 26).
2021-11-08Prevent the Android translations converter crate from being publishedLinus Färnstrand1-2/+1
2021-11-08Set all Rust crates to edition 2021Linus Färnstrand1-1/+1
2021-11-03Automatically disable custom dns when no added serversAlbin2-5/+18
2021-10-25Update Android translationsOskar Nyberg19-20/+39
2021-10-08Fix scrolling of Android logsAlbin1-12/+18
Fixes scrolling behavior and adds a scrollbar.
2021-10-08Drop support for Android 7/7.1Albin1-1/+1
Android 8/API level 26 or later is now required.
2021-10-07Skip translation of app nameAlbin21-20/+2
2021-10-07Remove logic for generating translated URLsAlbin1-37/+2
2021-10-07Remove translated URLsAlbin18-90/+0
2021-10-07Separate non-translatable stringsAlbin2-9/+16
2021-10-07Clarify custom dns hintAlbin21-21/+21
When the user adds a custom dns, the input field hint will say "Enter IP" rather than "e.g. 10.0.0.4" to avoid confusion.
2021-10-06Fix reconnect on app resumeAlbin1-3/+5
Fixes an issue with the app automatically reconnecting each time it's resumed from the background. The issue was caused by the app and service being out-of-sync in terms of split tunneling state during app resume, which was fixed by comparing the new and old state in the service before notifying other components.