summaryrefslogtreecommitdiffhomepage
path: root/android
AgeCommit message (Collapse)AuthorFilesLines
2025-06-24Enable support for creating a custom list with locationsJonatan Rhodin4-26/+19
2025-06-19Update lockfileJonatan Rhodin3-743/+796
2025-06-19Replace mocked lists with normal lists with mocked itemsJonatan Rhodin2-4/+4
2025-06-19Remove deprecated junit platformJonatan Rhodin1-7/+0
2025-06-19Update dependenciesJonatan Rhodin1-9/+9
2025-06-19Use AlarmManager for notificationsKalle Lindström37-424/+645
Instead of scheduling system notifications from a flow we now schedule them independently from the app lifecycle via AlarmManager. This is done so that for example an expiry notification that the user dismissed won't get redisplayed if the app process gets killed and then restarted. When the account exiry time is fetched we schedule an alarm that will show a notification 3 days before the account time expires. This alarm then also schedules a new alarm to show the following notification and so on. To make this work this PR also introduces two new broadcast receivers; one on boot received listener and one on time time/timezone changed listener. Beause Android clears alarms when the devices is rebooted/the time is changed we need these listeners to re-trigger the alarm. To enable the broadcast receivers to re-trigger the alarm we also have to persist the expiry time in the DataStore preferences.
2025-06-18Update changelog for android/2025.5-beta1Jonatan Rhodin1-0/+15
2025-06-18Enable opt-in to MTE async modeCameron Aaron1-0/+2
2025-06-16Sort split tunneling apps in the correct orderJonatan Rhodin2-2/+20
2025-06-16Remove google pay iconJonatan Rhodin2-31/+0
2025-06-13Bump netty related vulnsJonatan Rhodin1-3/+3
2025-06-13Add instructions on how to update SDK versionJonatan Rhodin1-1/+3
2025-06-13Update sdk version to 36Jonatan Rhodin2-27/+2
2025-06-12Update android sdk command line tools to latestJonatan Rhodin1-2/+2
2025-06-12Update container version sdk and build tools version to 36Jonatan Rhodin1-2/+2
2025-06-09Update payment flow within the appJonatan Rhodin67-2038/+2325
Also add support for 3 months in-app purchases
2025-06-05Update verification metadataJonatan Rhodin2-418/+453
2025-06-05Update lint ignoreJonatan Rhodin1-1/+1
2025-06-05Update gradle plugin to 8.10.1Jonatan Rhodin1-1/+1
2025-06-05Add lint ignore for page sizeJonatan Rhodin1-0/+2
2025-06-05Update junit to 5.13.0Jonatan Rhodin1-1/+1
2025-06-05Update grpc to 1.73.0Jonatan Rhodin1-1/+1
2025-06-05Update protobuf to 4.31.1Jonatan Rhodin1-1/+1
2025-06-05Update lifecycle to 2.9.1Jonatan Rhodin1-1/+1
2025-06-05Update appcompat to 1.7.1Jonatan Rhodin1-1/+1
2025-06-05Fix typosomahs2-2/+2
2025-06-04Fix incorrectly showing time left when data n/aKalle Lindström1-14/+20
2025-06-04Fix connectivity manager util testsJonatan Rhodin2-4/+5
2025-06-03Listen for all network events to fix missing default network eventsJonatan Rhodin2-39/+116
2025-06-02Update changelog for android/2025.4Jonatan Rhodin1-0/+4
2025-05-30Update lockfileJonatan Rhodin1-5/+0
2025-05-30Exclude common bean utilsJonatan Rhodin1-1/+10
2025-05-28Fix arg order lost when adding to messages.potKalle Lindström4-72/+154
Currently when we add new strings from strings.xml in the android app and these gets added to message.pot by the translation script the arguments get added only as "%s" and "%d" and any ordering is lost. This means that if you would add a string to the android app that is something like "%1$s %2$s %1$s" this would be added to messages.pot as msgid "%s %s %s" and it would treat it as the string has 3 different arguments instead of 2. This PR changes the code so that when the Android strings.xml strings are added to messages.pot the argument index (if it exists) is not removed as it was previously. So the Android string "%1$s %2$s %1$s" will now result in the exact same string being added to messages.pot. However, the current normalizaion behavior is kept when it comes to checking if an Android string already exists in messages.pot, so e.g. the string `"Not all our servers are %1$s-enabled. Therefore, we use multihop automatically to enable %1$s with any server."` will still match the current value in the pot file which is: `"Not all our servers are %(daita)s-enabled. Therefore, we use multihop automatically to enable %(daita)s with any server."` and no new string is added to messages.pot.
2025-05-28Disable Firebase billing loggingKalle Lindström1-0/+9
2025-05-28Add `SuggestedUpgrade` gRPC mapper typeMarkus Pettersson1-1/+1
2025-05-27Update translationsJonatan Rhodin39-0/+306
2025-05-26Add BoringtunJoakim Hulthe2-2/+12
Co-authored-by: Joakim Hulthe <joakim.hulthe@mullvad.net> Co-authored-by: Sebastian Holmin <sebastian.holmin@mullvad.net> Co-authored-by: David Göransson <david.goransson@mullvad.net> Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net> Co-authored-by: David Lönnhager <david.l@mullvad.net>
2025-05-26Update lockfileDavid Göransson2-386/+784
2025-05-26Update lint baselineDavid Göransson1-1/+19
2025-05-26Fix and update lint baselineDavid Göransson10-145/+45
2025-05-26Update baseline to suppress 16kb page size warning for mockkDavid Göransson1-93/+12
Will be fixed in an upcoming version, see: https://github.com/mockk/mockk/pull/1394
2025-05-26Bump lifecycle to 2.9.0David Göransson1-1/+1
2025-05-26Bump agp to 8.10.0David Göransson1-4/+4
2025-05-26Fix issue linkDavid Göransson1-1/+1
2025-05-26Make aapt version references more logicalDavid Göransson2-4/+3
2025-05-26Migrate remaining deps and versions to version catalogsDavid Göransson25-164/+154
2025-05-24Fix version code safeguardAlbin2-17/+11
Moving the version code safeguard in order to make it configuration cache compliant.
2025-05-24Enable parallel gradle executionAlbin1-0/+1
2025-05-23Increase timeout for long testDavid Göransson1-43/+45
2025-05-23Update lockfileDavid Göransson1-609/+672