summaryrefslogtreecommitdiffhomepage
path: root/android/app/src/main
AgeCommit message (Collapse)AuthorFilesLines
2025-11-04Fix highlight for LWO and QUICDavid Göransson1-9/+9
2025-11-04Keep expand state while securedDavid Göransson3-41/+55
2025-11-04Show all obfuscation methodsDavid Göransson1-4/+4
2025-11-04Fix resource nameDavid Göransson2-2/+2
2025-11-04Fix design issues with include account tokenJonatan Rhodin1-7/+12
2025-11-03Update include account token in problem reportsJonatan Rhodin6-92/+225
- Move checkbox below message - Add warning about anonymity - Change from AccountToken to account-token in support message
2025-10-28Update baseline-prof.txtKalle Lindström1-1025/+2155
2025-10-28Rename 'shared' to 'repository'Kalle Lindström33-52/+52
2025-10-28Add option to show relay location in notificationKalle Lindström18-76/+183
This PR adds the following: - An option to show the relay location in the connection notification. - A new submenu under Settings called Notifications. - In the new Notifications screen a toggle to enable/disable showing the location in the notification.
2025-10-27Update ktfmt to 0.25.0Jonatan Rhodin4-8/+4
2025-10-22Add entry and exit no relay errorsJonatan Rhodin2-7/+5
The old no relay error is still kept for single hop
2025-10-22Clear OOT notification on login/revoke screensKalle Lindström8-25/+35
There are cases when a user may get to the login or device revoked screens without their previously scheduled account expiry notification being cancelled. This can happen if for some reason the dameon has not sent the logged out/revoked event, for example if the account is logged out via the website while the app is not running. This PR cancels the notification when the user gets to the login or device revoked screens.
2025-10-15Enable the user to include their account token in problem reportsJonatan Rhodin5-18/+106
2025-10-14Improve login and create account error messagesJonatan Rhodin17-64/+689
- Add support for more types of login error messages - Add more detail to create account error message - Show info dialog when api is unreachable
2025-10-09Fix obfuscation order in vpn settingsJonatan Rhodin1-2/+2
2025-10-09Implement LWO on androidJonatan Rhodin13-12/+88
2025-10-09Increase severity of some purchase logsJonatan Rhodin1-2/+2
2025-10-06Warn users about android 16 upgrade issueDavid Göransson26-86/+338
2025-10-03Improve the qucik setting tileJonatan Rhodin1-0/+2
- Set category as toggleable - Set title as the app name when active to align more with how other tiles look on newer versions of Android
2025-10-03Allow of refreshing of server listDavid Göransson3-2/+35
2025-10-01Sort custom lists alphabeticallyJonatan Rhodin1-1/+4
2025-09-30Align state in behavior for all view modelsJonatan Rhodin40-40/+203
2025-09-30Improve account data fetchingJonatan Rhodin5-8/+14
Add a new account data fetch every time a user enters the connect screen This is limited to at a maximum one fetch every minute. Add a check that the user is still logged in to the same account before updating the account data cache. Change account fetching behavior in the account screen to fetch on every enter instead of init.
2025-09-30Adjust most dimensions to a 8pt grid systems in most casesJonatan Rhodin8-55/+42
2025-09-29Format codeJonatan Rhodin2-2/+3
2025-09-29Fix material api changesJonatan Rhodin3-5/+6
2025-09-25Improve no locations found error messageJonatan Rhodin1-5/+16
2025-09-25Fix select location testJonatan Rhodin1-0/+2
2025-09-12Update baseline prof fileJonatan Rhodin1-342/+7279
2025-09-11Fix screen animation not working from settingsDavid Göransson1-4/+6
2025-09-11Move ApiEndpointOverride to its own bean in app moduleJonatan Rhodin2-2/+10
2025-09-11Use androidContext instead of get() for MullvadProblemReportJonatan Rhodin1-1/+7
2025-09-10Add inital baseline profile generationKalle Lindström1-0/+20326
To improve startup performance this PR adds a baseline profile generation module in test/baselineprofile. The baseline profile plugin requires Junit4 so that is also added as a dependency. A baseline-prof.txt was also generated by running `./gradlew generatePlayProdReleaseBaselineProfile` and checked in. The tests that generate the baselineprofile currently only start the app and accepts the privacy policy. This should be improved later on to improve the startup performance.
2025-09-09Do not block exit relays when daita is enabledJonatan Rhodin5-9/+36
If a entry relay is selected it should be blocked in the exit list when daita is enabled and direct only is disabled. This is because the entry relay is automatically selected in these circumstances.
2025-09-09Fix issue with select location if settings is null at initJonatan Rhodin1-17/+21
2025-09-08Remove autogenerated locale config due to crashJonatan Rhodin1-1/+2
Instead use a static file
2025-09-04Fix select location not workingDavid Göransson1-18/+11
If a user upgraded from 2022.2 (where multihop entry was Any by default in settings) select location would be broken because it was unable to and when multihop was enabled and the entry was set as Any.
2025-09-03Add connection test for QUICDavid Göransson2-1/+6
2025-09-03Add UI support for QUIC settingJonatan Rhodin23-123/+265
2025-08-22Improve connect on start up informationJonatan Rhodin5-23/+83
2025-08-15Improve compose stack traceJonatan Rhodin1-0/+6
2025-08-15Fix lint issuesJonatan Rhodin2-3/+5
2025-08-12Move expiry notification handling to applicationKalle Lindström3-30/+49
2025-08-08Fix issue with with the select location list navigationJonatan Rhodin1-1/+2
2025-08-08Clear account expiry datastore pref on logoutKalle Lindström2-2/+13
2025-08-08Replace select hop code with use casesJonatan Rhodin27-231/+592
Also split the select hop code into select hop and modify multihop Refactor relay list type
2025-08-05Use HorizontalPager on TV devices in select locationDavid Göransson4-51/+108
Also allow for using swipe to switch between enter and exit lists
2025-08-04Use goAsync() api and remove TimeChangedReceiverKalle Lindström5-59/+6
The TimeChangedReceiver was not actually needed because AlarmManager.RTC uses a UTC timestamp that we convert the triggerAt ZonedDateTime to. So the trigger time is scheduled in UTC+0 and will thus trigger at the correct time redardless of time zone changes.
2025-08-04Attempt to fix potential ANRKalle Lindström2-3/+27
In onReceive in NotificationAlarmReceiver onBlocking() was used which could potentially take too much time and cause an ANR. This PR changes the onBlocking() call to instead use the goAsync() API so that the onReceive method can return immediately.
2025-08-04Add additional logging on login failureDavid Göransson1-2/+7