Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2312 commits
Select commit Hold shift + click to select a range
313de3a
Search: add # when detecting server name [VPNAND-2156].
msimonides-proton Apr 8, 2025
e6a0ffd
Remote server search for truncated list [VPNAND-2156]
msimonides-proton Apr 8, 2025
fc3425e
Include search results in server must-haves [VPNAND-2156].
msimonides-proton Apr 9, 2025
52a4644
Move some search functions out of data adapter.
msimonides-proton Apr 11, 2025
5dab1cb
Add basic tests for CustomDnsViewModel [VPNAND-2125].
msimonides-proton Apr 15, 2025
b177dae
Don't auto-toggle Custom DNS settings in settings manager [VPNAND-2125].
msimonides-proton Apr 15, 2025
f8f75e8
Fix crash with non-serializable CustomDnsSettings.
msimonides-proton Apr 16, 2025
62c2d6f
Simplify some weird code in profile navigation.
msimonides-proton Apr 16, 2025
0d84ade
Set profile Custom DNS "off" in migration [VPNAND-2183].
msimonides-proton Apr 16, 2025
fac0d66
Catch crash in getHistoricalProcessStartReasons on some devices [VPNA…
msimonides-proton Apr 17, 2025
d38a1db
Move some code out of AddEditProfileScreen.
msimonides-proton Apr 17, 2025
94d6545
Fix navigation to Custom DNS in profiles [VPNAND-2188].
msimonides-proton Apr 17, 2025
7886230
Fix custom DNS toggle on migration from older version [VPNAND-2184].
msimonides-proton Apr 17, 2025
f62dea7
Fix specific country connection SLI test case
Apr 11, 2025
011ec14
i18n: Upgrade translations from crowdin (f62dea74).
Apr 18, 2025
2b2773d
i18n: Upgrade translations from crowdin (011ec143).
Apr 22, 2025
f52c433
Fix NetShield Private DNS status in profiles [VPNAND-2172].
msimonides-proton Apr 18, 2025
40690f6
Update copy: bug report [VPNAND-2044].
msimonides-proton Apr 18, 2025
c76ac58
Copy update: NetShield, remove unnecessary sentence [VPNAND-2045].
msimonides-proton Apr 18, 2025
85b9055
Copy update: capitalization [VPNAND-2041].
msimonides-proton Apr 18, 2025
1170c36
Update screenshots after strings.xml changes
mateusz-markowicz Apr 22, 2025
cc437a1
Add a test for LocalUserSettings changes [VPNAND-2125].
msimonides-proton Apr 18, 2025
8ba2630
Remove unused field.
msimonides-proton Apr 18, 2025
7f466d7
VPNAND-2191: fix unresponsive cancel button in profile reconnect dialog
mateusz-markowicz Apr 22, 2025
e465638
Refactor UI tests structure to follow the same structure between Espr…
Apr 24, 2025
df9f1d8
feat: Easy device migration (login with a QR code).
armatys Apr 8, 2025
06bb4de
i18n: Upgrade translations from crowdin (df9f1d8c).
Apr 25, 2025
a8fdf85
Rename "Help Center" to "Support center" [VPNAND-2041].
msimonides-proton Apr 28, 2025
c4d69eb
Fix NetShield profile chip when Custom DNS is enabled [VPNAND-2198]
msimonides-proton Apr 28, 2025
36f419e
Use fake instead of mock profiles DAO in tests.
msimonides-proton Apr 28, 2025
7bac0fe
i18n: Upgrade translations from crowdin (36f419ec).
Apr 29, 2025
395aec6
Add new countries [VPNAND-2199].
msimonides-proton Apr 29, 2025
566380b
Add a debug assert to check for missing continent [VPNAND-2199]
msimonides-proton Apr 29, 2025
f02794e
Use NDK 28 to support 16KB page size [VPNAND-2190]
mateusz-markowicz Apr 25, 2025
ac41eda
Make release_tests have same signature as tested app
mateusz-markowicz Apr 29, 2025
1bc8ae4
Add more countries [VPNAND-2199].
msimonides-proton Apr 30, 2025
3448498
Move tests readme to top level folder
Apr 28, 2025
89db102
i18n: Upgrade translations from crowdin (34484982).
May 2, 2025
ed68009
Remove not needed CHANGE_WIFI_STATE permission [VPNAND-2201]
mateusz-markowicz May 5, 2025
c6ffd99
Add logs for LAN setting
mateusz-markowicz May 5, 2025
d5d1804
Update NetShield bottom sheet [VPNAND-2196].
msimonides-proton Apr 30, 2025
f796bb9
Remove a TODO.
msimonides-proton May 5, 2025
a7b2000
i18n: Upgrade translations from crowdin (f796bb97).
May 6, 2025
e30d7ff
i18n: Upgrade translations from crowdin (f9c70b9f).
May 9, 2025
188e6f9
Make local IP ranges from IPUtils public [VPNAND-348]
mateusz-markowicz Apr 22, 2025
6a896a6
Add feature flag for LAN direct connections [VPNAND-348]
mateusz-markowicz May 6, 2025
42100c9
Extend LAN setting with direct device connections [VPNAND-348]
mateusz-markowicz Apr 11, 2025
1a84121
Telemetry for LAN direct mode [VPNAND-348]
mateusz-markowicz May 6, 2025
835aa5c
Add tests for direct LAN connections [VPNAND-348]
mateusz-markowicz May 8, 2025
ffc9827
Check feature flags when applying SettingsForConnection
mateusz-markowicz May 8, 2025
767222f
Remove potential deadlock from cached SettingsForConnection
mateusz-markowicz May 9, 2025
9dfc859
Gather stats about must-have server IDs [VPNAND-2157]
mateusz-markowicz Apr 15, 2025
e392de1
i18n: Upgrade translations from crowdin (9dfc8590).
May 13, 2025
23ff7e2
Introduce UI theme setting [VPNAND-2202].
msimonides-proton May 7, 2025
7436a9b
Add dark/light previews and screenshot tests [VPNAND-2202].
msimonides-proton May 8, 2025
6835bfb
i18n: Upgrade translations from crowdin (d2d6242c).
May 16, 2025
3d8e93d
Light theme: bottom sheet fixes [VPNAND-2203].
msimonides-proton May 9, 2025
fa29f6c
Light theme: small fixes [VPNAND-2203].
msimonides-proton May 9, 2025
806b0b7
Improve switch server dialog layout on large screens.
msimonides-proton May 12, 2025
a1ffd18
Implement Proton theme for RadioButton.
msimonides-proton May 13, 2025
4d716b9
Update Core to 32.0.2.
msimonides-proton May 14, 2025
1635e15
i18n: Upgrade translations from crowdin (4d716b93).
May 20, 2025
ac8eb02
Add telemetry for UI theme settings [VPNAND-2205].
msimonides-proton May 14, 2025
41204d8
Add support for light theme promo offers [VPNAND-2204].
msimonides-proton May 15, 2025
120c365
Fix navigation bar colors [VPNAND-2216].
msimonides-proton May 20, 2025
d4793f6
Update loading state animation for light theme [VPNAND-2209].
msimonides-proton May 20, 2025
c26bc64
Split the licenses HTML into smaller files [VPNAND-2207].
msimonides-proton May 21, 2025
a218efd
Add light theme and update colors for licenses [VPNAND-2207].
msimonides-proton May 21, 2025
afb0ae8
Update licenses.
msimonides-proton May 21, 2025
ebe3998
i18n: Upgrade translations from crowdin (afb0ae84).
May 23, 2025
a2d54d0
Fix navbar color under server list bottom sheet [VPNAND-2219].
msimonides-proton May 22, 2025
585b236
Fix save percent badge in light mode [VPNAND-2219].
msimonides-proton May 22, 2025
d953552
Fix gradient for VPN Plus upsell dialog [VPNAND-2219].
msimonides-proton May 22, 2025
5e1c0d1
Update the color of SC arc under the fastest flag [VPNAND-2219].
msimonides-proton May 23, 2025
1841681
Fix a typo in upsell screen.
msimonides-proton May 23, 2025
8fad77f
i18n: Upgrade translations from crowdin (18416811).
May 30, 2025
b8ee904
Update flags with white background [VPNAND-2222].
msimonides-proton Jun 2, 2025
234ec22
Don't restart activity for theme change [VPNAND-2226].
msimonides-proton Jun 2, 2025
393db16
Fix SC arc cut off for greyed out servers [VPNAND-2223].
msimonides-proton Jun 2, 2025
4f43e84
i18n: Upgrade translations from crowdin (393db16e).
Jun 3, 2025
908bd47
Fix the expression for sentryDsns in build script.
msimonides-proton May 21, 2025
8b7f341
Fix quick tile icon size [VPNAND-2181].
msimonides-proton Jun 3, 2025
9899a3a
Fix "split tunneling" capital case [VPNAND-2230].
msimonides-proton Jun 3, 2025
c9ad511
Fix quick tile icon size in manifest [VPNAND-2181].
msimonides-proton Jun 4, 2025
517358e
Fix guest hole generation script [VPNAND-2185]
mateusz-markowicz May 19, 2025
79ca5ac
i18n: Upgrade translations from crowdin (517358e1).
Jun 6, 2025
5d3b5ca
chore: Update Core to 32.2.0.
armatys May 22, 2025
8f6b8d9
Update OpenVPN to 0.7.61.
msimonides-proton Jun 5, 2025
a49e64f
Reintroduce Proton integration on top of OpenVPN sources
AlgirdasPundzius Feb 17, 2021
222b464
End OpenVPN service when disconnecting
mateusz-markowicz Feb 15, 2022
831ec41
Extend OpenVPN cert name verification with alternative names
AlgirdasPundzius Feb 17, 2021
a353316
Don't apply LAN setting to network with public ranges
mateusz-markowicz Jul 6, 2023
c70adb3
Remove unused FOREGROUND_SERVICE_SPECIAL_USE permission from OpenVPN …
mateusz-markowicz Jun 12, 2024
8e220d0
Disable openvpn keep-alive service
mateusz-markowicz Oct 4, 2024
8c04d62
Fix OpenVPN memory leaks.
msimonides-proton Feb 14, 2025
83781bc
OpenVPN: reproducible release builds.
msimonides-proton Feb 27, 2025
185bd0a
OpenVPN: support IPv6 LAN and split tunneling [VPNAND-2072]
mateusz-markowicz Feb 21, 2025
2bd5670
Support IPv6 LAN and split tunneling [VPNAND-2072]
msimonides-proton Jun 5, 2025
cfaccad
Add custom custom dns list support for OpenVPN [VPNAND-2090]
AlgirdasPundzius Mar 13, 2025
02e4736
Use the same NDK for the whole project.
msimonides-proton Apr 3, 2025
88d75cb
Add logs for LAN setting
mateusz-markowicz May 5, 2025
42c3e88
Make local IP ranges from IPUtils public [VPNAND-348]
mateusz-markowicz Apr 22, 2025
f3d629e
Increase max DNS server count for OpenVPN [VPNAND-2224].
msimonides-proton Jun 6, 2025
b766699
Ignore custom DNS servers above the limit for OpenVPN [VPNAND-2224].
msimonides-proton Jun 6, 2025
71c419e
Catch ApiExceptions from getUser.
msimonides-proton Jun 6, 2025
7599600
Fix remote search FF condition [VPNAND-2234].
msimonides-proton Jun 6, 2025
beb3031
Remove RestrictionsConfig [VPNAND-2120].
msimonides-proton May 22, 2025
7105436
Order Hilt bindings alphabetically.
msimonides-proton May 22, 2025
9c5691f
Remove NewProfilesMvp feature flag [VPNAND-2120].
msimonides-proton May 22, 2025
88d795d
Remove custom DNS feature flag [VPNAND-2120].
msimonides-proton May 22, 2025
6fee4c8
i18n: Upgrade translations from crowdin (88d795de).
Jun 9, 2025
b8bba49
i18n: Upgrade translations from crowdin (6fee4c8a).
Jun 10, 2025
ac51b55
Remove flag overrides...
msimonides-proton Jun 6, 2025
1c0e7d1
Add -dev suffix to all debug builds.
msimonides-proton Jun 3, 2025
75e892b
Pass test env via variables for UI tests [VPNAND-1923].
msimonides-proton May 23, 2025
5b9798b
Fix test user data for end-to-end tests [VPNAND-1923].
msimonides-proton Jun 5, 2025
8e15b24
Add missing tests to test suite.
msimonides-proton Jun 10, 2025
7bf0f9c
Add missing country.
msimonides-proton Jun 12, 2025
a0461ad
i18n: Upgrade translations from crowdin (7bf0f9c8).
Jun 13, 2025
813e88f
i18n: Upgrade translations from crowdin (a0461ad3).
Jun 17, 2025
a9e430e
Hide NetShield in profiles from the Essential plan [VPNAND-2238].
msimonides-proton Jun 10, 2025
576a4f8
Fix effective settings in SettingsForConnection [VPNAND-2238].
msimonides-proton Jun 13, 2025
69b6c4c
Update Core to 33.0.0.
msimonides-proton Jun 18, 2025
ea7d8e5
Remove runBlocking from DohEnabled [VPNAND-2241].
msimonides-proton Jun 18, 2025
7528807
i18n: Upgrade translations from crowdin (ea7d8e54).
Jun 20, 2025
9e6487b
Remove invalid assert from updateTier
mateusz-markowicz Jun 20, 2025
b30d2c4
Fix profile updates in SettingsForConnection [VPNAND-2258].
msimonides-proton Jun 23, 2025
48072a7
Bump go-vpn-lib to 0.1.67
mateusz-markowicz Jun 24, 2025
a33dcf8
Update utls to 1.7.3 and go to 1.24.4
mateusz-markowicz Jun 27, 2025
8eca722
i18n: Upgrade translations from crowdin (a33dcf8b).
Jul 1, 2025
8015627
Enable LAN by default for paid users [VPNAND-2264]
mateusz-markowicz Jul 4, 2025
7f5470c
Correct invalid "disconnecting unrecoverably" log message
mateusz-markowicz Jul 4, 2025
59edb58
i18n: Upgrade translations from crowdin (8eca7220).
Jul 4, 2025
45a7067
Remove unused Server field [VPNAND-2267].
msimonides-proton Jul 4, 2025
f2e7d04
Revert "Update utls to 1.7.3 and go to 1.24.4"
mateusz-markowicz Jul 7, 2025
52388a8
Test for Secure Core Profile
Jun 12, 2025
81d7bb1
i18n: Upgrade translations from crowdin (45a7067c).
Jul 8, 2025
a55a69f
Fix recents' direct connections [VPNAND-2276]
msimonides-proton Jul 10, 2025
a954430
Workaround for LAN default value change [VPNAND-2264]
mateusz-markowicz Jul 11, 2025
877f216
i18n: Upgrade translations from crowdin (a954430b).
Jul 15, 2025
585bcb8
i18n: Upgrade translations from crowdin (877f2163).
Jul 22, 2025
9eb892a
Make full server list refresh when triggered from debug tools.
msimonides-proton Jul 23, 2025
9bab462
Fix logs for "fastest excluding my country" [VPNAND-2295].
msimonides-proton Jul 23, 2025
5378939
chore(feature-flags): cleanup light theme feature flag [VPNAND-2278]
AlexanderTalledo Jul 22, 2025
65ce73d
i18n: Upgrade translations from crowdin (9bab462e).
Jul 25, 2025
a7b416d
Exclude user's country based on MCC [VPNAND-2296].
msimonides-proton Jul 24, 2025
19e52ad
i18n: Upgrade translations from crowdin (a7b416db).
Jul 29, 2025
4991d06
chore: Update custom DNS telemetry [VPNAND-2280]
AlexanderTalledo Jul 24, 2025
603d9e7
chore(telemetry): align Settings telemetry events [VPNAND-2280]
AlexanderTalledo Jul 29, 2025
9889d84
Enable stack protector for all OpenVPN libs [VPNAND-2269].
msimonides-proton Aug 1, 2025
c37e378
feat(netshield): Remove the distinctions for B2B Essentials plan [VPN…
AlexanderTalledo Aug 1, 2025
40bb599
chore: bump core version to 34.1.0 [VPNAND-2307]
AlexanderTalledo Aug 5, 2025
f4eeb91
i18n: Upgrade translations from crowdin (c37e3787).
Aug 5, 2025
71b6e90
i18n: Upgrade translations from crowdin (f4eeb917).
Aug 8, 2025
800b86c
Update go-vpn-lib to 0.1.77
mateusz-markowicz Aug 11, 2025
5222f0c
Update test automation users.
msimonides-proton Aug 14, 2025
6cceee9
i18n: Upgrade translations from crowdin (5222f0c1).
Aug 15, 2025
4c5c170
Remove OneClickUnlimitedPlan feature flag [VPNAND-2308].
msimonides-proton Aug 5, 2025
3a3251b
Remove PaymentDisplayRenewPrice kill switch [VPNAND-2308].
msimonides-proton Aug 5, 2025
37eee67
Remove OneClickPayments feature flag [VPNAND-2308].
msimonides-proton Aug 5, 2025
7d50fa7
Add promo notifications for introductory price [VPNAND-2311].
msimonides-proton Aug 6, 2025
d69df8e
Customize payment button label for notifications [VPNAND-2311].
msimonides-proton Aug 11, 2025
49ec453
Ensure that offer is still valid when opening notification [VPNAND-23…
msimonides-proton Aug 11, 2025
8821034
Update targetSdkVersion to 35 [VPNAND-2150].
msimonides-proton Aug 13, 2025
0087915
IAP promo banner non-dismissible [VPNAND-2311].
msimonides-proton Aug 19, 2025
d39ceb1
feat: support no shared servers connections available [VPNAND-2314]
AlexanderTalledo Aug 14, 2025
7e927e6
Use HTML-based strings for links [VPNAND-2314].
msimonides-proton Aug 18, 2025
37f42b0
chore: Do not display countries bottom bar item when no countries are…
AlexanderTalledo Aug 7, 2025
b8be6cc
Update buildTools and release tests target sdk
AlgirdasPundzius Aug 19, 2025
133f336
Improve load caused by generating intro price notifications [VPNAND-2…
msimonides-proton Aug 21, 2025
f26eafd
i18n: Upgrade translations from crowdin (82ccdb6d).
Aug 22, 2025
2f15799
Call setup_orchestrators from UpgradeActivityHelper [VPNAND-2330].
msimonides-proton Aug 25, 2025
49a2be0
i18n: Upgrade translations from crowdin (46b96807).
Aug 26, 2025
3f8c66e
Shorten the f-droid description.
msimonides-proton Aug 25, 2025
0d225fb
Don't use deprecated EncryptedSharedPreferences for cert storage [VPN…
mateusz-markowicz Aug 18, 2025
0904764
Disallow cert storage fallback for users with organization [VPNAND-2324]
mateusz-markowicz Aug 19, 2025
adb43c8
Don't catch generic exception in ObjectStore.read
mateusz-markowicz Aug 28, 2025
1876184
Add FF for the binary server status [VPNAND-2192].
msimonides-proton Jul 1, 2025
665d94e
Update PeriodicUpdateManager to allow for nullable results.
msimonides-proton Jul 1, 2025
0493ff1
Split the class for API and domain-layer Server.
msimonides-proton Jul 9, 2025
41b3566
Move classes representing API responses to servers.api.
msimonides-proton Jul 16, 2025
7574aff
Remove the "servers" argument to updateWithMutex.
msimonides-proton Jul 11, 2025
9b49071
Update responses for new logicals endpoint [VPNAND-2194].
msimonides-proton Jul 14, 2025
95a3f33
Filter out hidden servers.
msimonides-proton Jul 14, 2025
2c05e7b
Add support for binary server status updates [VPNAND-2194].
msimonides-proton Jul 16, 2025
9f86785
Provide location data to compute loads [VPNAND-2193].
msimonides-proton Jul 22, 2025
635a95a
Clean up ServerListUpdater's return value type [VPNAND-2193]
msimonides-proton Jul 22, 2025
c339769
Delete the server() method from test utils.
msimonides-proton Jul 23, 2025
a813851
Move more code away from ServerListUpdater.
msimonides-proton Jul 24, 2025
9407466
Use extension function to convert to PeriodicActionResult.
msimonides-proton Aug 7, 2025
e84e497
i18n: Upgrade translations from crowdin (94074660).
Aug 29, 2025
692dcc9
Remove server count from lists [VPNAND-2336].
msimonides-proton Sep 1, 2025
5ff0122
Add develocity for build scans
AlgirdasPundzius Aug 18, 2025
a056e87
Use proton gradle cache
AlgirdasPundzius Aug 18, 2025
7127e6a
Remove gitlab cache
AlgirdasPundzius Aug 19, 2025
1275cf3
Enable core FFs in UI tests.
msimonides-proton Aug 22, 2025
3ade7c1
Increase Java heap.
msimonides-proton Aug 27, 2025
e2062ae
Increase idling resource timeout.
msimonides-proton Aug 27, 2025
f8dac8d
Show TV settings to free users [VPNAND-2337].
msimonides-proton Sep 2, 2025
125859c
Move "sign out" to the end of the row on TV [VPNAND-2337].
msimonides-proton Aug 28, 2025
5cc64fe
i18n: Upgrade translations from crowdin (125859cf).
Sep 5, 2025
481eb2b
Add NetShield setting on TV [VPNAND-2334].
msimonides-proton Aug 28, 2025
6f98435
Add allow LAN connections setting to TV [VPNAND-2334].
msimonides-proton Aug 28, 2025
530c91b
Update TV list row padding [VPNAND-2334].
msimonides-proton Sep 2, 2025
7e5cfe4
Migrate TV LAN setting [VPNAND-2334].
msimonides-proton Sep 5, 2025
256c808
Allow fallback cert storage unconditionally for now [VPNAND-2347]
mateusz-markowicz Sep 5, 2025
76b6bcb
Trigger proton DNS for our API when connected [VPNAND-2344]
mateusz-markowicz Sep 10, 2025
c2f23e8
Trigger fetching new certificate after removing old storage [VPNAND-2…
mateusz-markowicz Sep 10, 2025
6d5cf70
i18n: Upgrade translations from crowdin (c2f23e81).
Sep 12, 2025
8cdcdfa
Update core to 34.3.0 and goopenpgp to v2.9.0-proton.1 [VPNAND-2331]
mateusz-markowicz Aug 25, 2025
17e28b5
feat(TV): Add custom DNS settings option
AlexanderTalledo Sep 10, 2025
4f02e1c
feat(TV): display custom DNS list [VPNAND-2352]
AlexanderTalledo Sep 11, 2025
cb8971f
feat(TV): support adding custom DNS [VPNAND-2353]
AlexanderTalledo Sep 11, 2025
b00a248
i18n: Upgrade translations from crowdin (6d5cf70d).
Sep 16, 2025
8da38e8
Base auto-connect functionality for TV [VPNAND-2339].
msimonides-proton Sep 3, 2025
f871cfc
Disable LeakCanary in Firebase Test Lab.
msimonides-proton Aug 19, 2025
2657a35
feat(TV): support custom DNS edit options [VPNAND-2354]
AlexanderTalledo Sep 12, 2025
aeb9fe2
feat: add NetShield settings learn more infor drawer [VPNAND-2338]
AlexanderTalledo Sep 9, 2025
74c6b64
feat(TV): redesigned upsell screens
AlexanderTalledo Sep 17, 2025
8906ffd
feat(TV): redesigned upsell screens
AlexanderTalledo Sep 17, 2025
507d808
feat(TV): support custom DNS edit options [VPNAND-2354]
AlexanderTalledo Sep 12, 2025
03f8aad
feat(TV) Handle NetShield and Custom DNS conflicts [VPNAND-2359]
AlexanderTalledo Sep 19, 2025
0687c19
Update to core 35.0.0, AGP to 8.9.1 and compile SDK to 36 [VPNAND-2363]
mateusz-markowicz Sep 15, 2025
fc19795
i18n: Upgrade translations from crowdin (b00a2483).
Sep 19, 2025
0c0d13f
Support opening apps for profile's Auto Open [VPNAND-2358]
mateusz-markowicz Sep 17, 2025
375079e
Support Auto Open url private mode with ephemeral Custom Tabs [VPNAND…
mateusz-markowicz Sep 17, 2025
b8d38fb
Connect and Go: show toast when app is not found [VPNAND-2358]
mateusz-markowicz Sep 18, 2025
4ae33e2
Fix foreground activity tracker in scenarios involving dialog activities
mateusz-markowicz Sep 18, 2025
a2c0a78
Fallback to other browser if default doesn't support private custom t…
mateusz-markowicz Sep 18, 2025
7cc6181
Don't show private mode switch for auto-open when no supporting brows…
mateusz-markowicz Sep 18, 2025
6d4bfe8
Add telemetry for auto-open private mode [VPNAND-2357]
mateusz-markowicz Sep 18, 2025
e819c98
Truncation: change remote search delay to 2.5s [VPNAND-2368]
mateusz-markowicz Sep 22, 2025
262ea0a
Use more informative message when VpnDns fail [VPNAND-2344]
mateusz-markowicz Sep 22, 2025
aaebe53
fix(TV): show re-connection when custom DNS settings change
AlexanderTalledo Sep 22, 2025
0106850
fix(TV): Show reconnect dialog when turning Custom DNS off from NetSh…
AlexanderTalledo Sep 22, 2025
e43c595
TV auto-connect: support only connect-on-boot [VPNAND-2339]
mateusz-markowicz Sep 22, 2025
db13e60
Check private mode availability for new profiles [VPNAND-2357]
mateusz-markowicz Sep 22, 2025
1f8f37c
Rename IsPrivateBrowsingAvailable to GetPrivateBrowsingAvailability
mateusz-markowicz Sep 23, 2025
8436fbe
i18n: Upgrade translations from crowdin (e43c5950).
Sep 23, 2025
4ab6a9d
style(TV): align text field error status style to guidelines
AlexanderTalledo Sep 23, 2025
c246e32
Switch back to KSP for Room, keep generating Java code.
msimonides-proton Sep 23, 2025
efc4bcf
Fix screenshot tests [VPNAND-2364].
msimonides-proton Sep 23, 2025
9314246
fix(TV): avoid resetting focus to the first element on Main screen wh…
AlexanderTalledo Sep 23, 2025
0887a2a
Report auto connect with settings telemetry [VPNAND-2348].
msimonides-proton Sep 23, 2025
e35ea76
Introduce FF for Connect and Go private browsing [VPNAND-2357]
mateusz-markowicz Sep 23, 2025
9915f99
Use stateIn for tv's mainViewState to fix focus issues on navigating …
mateusz-markowicz Sep 23, 2025
e6736fc
chore(TV): show re-connect toast the first time that custom DNS setti…
AlexanderTalledo Sep 23, 2025
671466c
Update guesthole servers
proton-ci Oct 1, 2025
bb99f47
Add fdroid metadata
proton-ci Oct 1, 2025
b0788cb
Create android.yml
tabrezahmed51 Oct 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
*.psd filter=lfs diff=lfs merge=lfs -text
*.aar filter=lft diff=lfs merge=lfs -text
detekt.yml text eol=lf
app/src/*/screenshotTest/** filter=lfs diff=lfs merge=lfs -text
26 changes: 26 additions & 0 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Android CI

on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
cache: gradle

- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@
/.idea
.DS_Store
/build
/config
strongswan-android-complete/build/**
/config/detekt/config.yml
/config/detekt/reports
/observability/domain/build
openvpn/build/**
/captures
.externalNativeBuild
openvpn/src/main/cpp/asio/asio/src/doc/
openvpn/.cxx/
pmcrypto/build/
app/src/androidTest/assets/sensitive/
27 changes: 27 additions & 0 deletions .gitleaks.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[extend]
path = "/etc/gitleaks/proton.toml"

[allowlist]
paths = [
# OpenVPN test data
'''^openvpn/src/main/cpp/asio/asio/src/examples/(.*)''',
'''^openvpn/src/main/cpp/openvpn/doc/(.*)''',
'''^openvpn/src/main/cpp/openvpn/sample/(.*)''',
'''^openvpn/src/main/cpp/openvpn/tests/(.*)''',
'''^openvpn/src/test/(.*)''',
'''^openvpn/src/main/cpp/openvpn3/doc/(.*)''',
'''^openvpn/src/main/cpp/openvpn3/test/(.*)''',
# OpenSSL and mbedtls - never modified by us.
'''^openvpn/src/main/cpp/openssl/(.*)$''',
'''^openvpn/src/main/cpp/mbedtls/(.*)''',
# A patch file with false positive - never modified by us.
'''^openvpn/src/main/cpp/openvpn/contrib/vcpkg-ports/pkcs11-helper/pkcs11-helper-001-RFC7512.patch''',
# R8 mapping file, contains function names, line numbers and other symbols that can be picked as false positives.
'''^app/build/outputs/mapping/(.*)/mapping.txt$''',
'''^app/build/outputs/mapping/(.*)/seeds.txt$''',
'''^app/build/outputs/mapping/(.*)/usage.txt$''',
# Semgrep configuration file
'''^custom/semgrep/rules.yaml$''',
# Added by CI job
'''^appetize-information.json$''',
]
7 changes: 7 additions & 0 deletions .gitleaksignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Code searching for "BEGIN RSA..."
openvpn/src/main/cpp/openvpn3/openvpn/client/cliopthelper.hpp:private-key:211
# Sample HTTP auth header in comment
openvpn/src/main/cpp/openvpn3/openvpn/ws/httpcreds.hpp:authorization-header:42
# HTTP authorization code
openvpn/src/main/cpp/openvpn3/openvpn/transport/client/httpcli.hpp:authorization-header:697
openvpn/src/main/cpp/openvpn3/openvpn/ws/httpcli.hpp:authorization-header:1154
3 changes: 0 additions & 3 deletions .gitmodules

This file was deleted.

1 change: 1 addition & 0 deletions .grype.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# This file was created to make grype job always pass.
15 changes: 15 additions & 0 deletions .idea/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions .semgrep.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
exclude:
# we already run gitleaks separately, no need for duplicate reports
- generic.secrets.gitleaks.
# semgrepignore changes are being reviewed in MRs
- generic.ci.audit.changed-semgrepignore.changed-semgrepignore
# low quality rules with high number of false positives
- MSTG-
# low quality rules that trigger on words like 'key' or 'Log'
- mobsf.mobsfscan.android.
7 changes: 7 additions & 0 deletions .semgrepignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/.gradle/
/.sec/
/openvpn/

# oss_licenses is embedded in the app, it has JS for generating 3rd party licenses HTML
# from a JSON data file. No external input.
/app/src/main/assets/oss_licenses
2 changes: 2 additions & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# ownership: tight
* @ProtonVPN/groups/android-developers
87 changes: 0 additions & 87 deletions Dockerfile

This file was deleted.

69 changes: 33 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,36 @@
# ProtonVPN for Android

Copyright (c) 2019 Proton Technologies AG
Copyright (c) 2019 Proton AG

## Download

<p align="center">
<img src="https://raw.githubusercontent.com/ProtonVPN/android-app/master/metadata/en-US/images/phoneScreenshots/2.jpg" height="400">
<img src="https://raw.githubusercontent.com/ProtonVPN/android-app/master/metadata/en-US/images/phoneScreenshots/3.jpg" height="400">
<img src="https://raw.githubusercontent.com/ProtonVPN/android-app/master/metadata/en-US/images/phoneScreenshots/4.jpg" height="400">
<img src="https://raw.githubusercontent.com/ProtonVPN/android-app/master/metadata/en-US/images/phoneScreenshots/5.jpg" height="400">
</p>

<p align="center">
<a href="https://play.google.com/store/apps/details?id=ch.protonvpn.android">
<img src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png" alt="Get it on Google Play" height="80">
</a>
<a href="https://f-droid.org/packages/ch.protonvpn.android">
<img src="https://f-droid.org/badge/get-it-on.png" alt="Get it on F-Droid" height="80">
</a>
<a href="https://github.com/ProtonVPN/android-app/releases">
<img src="https://i.postimg.cc/kXfbyWjL/get-it-on-github.png" alt="Get it on GitHub" height="80">
</a>
</p>

## Build instructions
- Install sdk, ndk, cmake, swig
- Clone this repository
- `./gradlew assembleProdDebug` or open and build in Android Studio
- `./gradlew assembleProductionVanillaOpenSourceDebug` or open and build in Android Studio

### Build release
To complete a release build signing keys need to be provided:
./gradlew assembleProdRelease -PkeyStoreFilePath=<keystore> -PkeyStoreKeyAlias=<alias> -PkeyStorePassword=<pass> -PkeyStoreKeyPassword=<key-pass>`

### Rebuild strongswan
This project is using native libraries from [open-source project Strongswan](https://www.strongswan.org/).
To simplify the build process we include prebuilt copies of those libraries [here](app/src/main/jniLibs). To rebuild them follow these steps:
- `git submodule init` followed by `git submodule update` in the main directory (we include original Strongswan repository as a git submodule)
- `cd strongswan` and follow [build instructions](https://wiki.strongswan.org/projects/strongswan/wiki/AndroidVPNClientBuild) from Strongswan to rebuild native libraries
- after a successful build, run `cp -r strongswan/src/frontends/android/app/src/main/libs/* app/src/main/jniLibs` in our main directory to copy the prebuilt libraries and rebuild the ProtonVPN client
- `./gradlew assembleProductionVanillaOpenSourceRelease -PkeyStoreFilePath=<keystore> -PkeyStoreKeyAlias=<alias> -PkeyStorePassword=<pass> -PkeyStoreKeyPassword=<key-pass>`

## Code style
Project uses agreed code style ProtonStyle.xml for java. Import it in Android studio via ```File>>Settings>>Editor>>Code style>>Import Scheme```
Expand All @@ -30,7 +44,7 @@ If you would like to contribute, please keep in mind the following rules:
- After adding/updating open source dependencies run `gradlew updateLicensesJson` to update attributions.

Internally our CI automatically checks all pull requests for code style issues, and runs our tests. However you can run those locally as well.
```bash
```
gradlew checkstyle
gradlew detekt
gradlew test
Expand All @@ -39,41 +53,24 @@ gradlew androidTest

By making a contribution to this project you agree to the following:

1. I assign any and all copyright related to the contribution to Proton Technologies AG;
1. I assign any and all copyright related to the contribution to Proton AG;
2. I certify that the contribution was created in whole by me;
3. I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it) is maintained indefinitely and may be redistributed with this project or the open source license(s) involved.

## Manage Image for the CI

### Create an image NAME_IMAGE:branch-<branch>

```sh
$ make image [branch=name]
```

### For the dev ~ Build the image on your computer: output ci-android:latest
## Signature

```sh
$ make local
All our builds (except for F-droid) will be signed with same key.
SHA256 fingerprint for signing certificate
```

### Run the image built via make local on your compute so you can inspect its content

```sh
$ make debug-local
```

### Deploy the image of the CI from your computer

```sh
$ make deploy-local: login-deploy imag
ch.protonvpn.android
DC:C9:43:9E:C1:A6:C6:A8:D0:20:3F:34:23:EE:42:BC:C8:B9:70:62:8E:53:CB:73:A0:39:3F:39:8D:D5:B8:53
```

## Versioning
- Version matches format: `[major][minor][patch]`
- Version matches format: `[major][minor][patch][hotfix]`

## License

The code and datafiles in this distribution are licensed under the terms of the GPLv3 as published by the Free Software Foundation. See <https://www.gnu.org/licenses/> for a copy of this license.

Copyright (c) 2019 Proton Technologies AG
Copyright (c) 2019 Proton AG
Loading