60 Commits

Author SHA1 Message Date
Zoltan Papp 2536a835e4 Replace VPNServiceRepository with ServiceAccessor pattern (#114)
VPNServiceRepository created its own service binding which caused conflicts
when unbinding - it would disconnect other components relying on the service.

Now NetworksFragmentViewModel uses ServiceAccessor from MainActivity, which
maintains a single shared service binding across all components.
v0.2.3
2025-12-03 22:46:56 +01:00
Diego Romar a7be16204b Update submodule to tag v0.60.5 (#119) 2025-12-03 17:52:01 -03:00
Diego Romar 8ba078f0b1 Capture local listener reference to avoid race condition (#118) 2025-12-03 13:59:52 -03:00
Diego Romar bf4ece69cd bug: bottom dialog fragment attached not attached to activity (#117)
* Remove onClickListener from peersBtn

When HomeFragment is destroyed

* Remove unused imports

* Check if BottomDialogFragment is attached to Activity

When setting its onShowListener
2025-12-01 16:41:22 -03:00
Zoltan Papp f9376e3991 Allow http and https as url (#116) 2025-12-01 13:00:36 +01:00
shuuri-labs 267ace7964 Added 'TV is in beta' message to first install fragment (#113)
* Added 'TV is in beta' message to first install fragment
v0.2.2 v0.2.1.1
2025-11-27 13:58:46 +01:00
Zoltan Papp bb0d250681 Support 16Kb pages (#111) v0.2.1 2025-11-26 19:04:38 +01:00
Zoltan Papp 518b3a5fcb Remove route change notification UI elements (#110)
This restores the intent of PR #105 which removed the route change
notification feature. PR #100 accidentally reintroduced these elements
due to a force push that overwrote PR #105 changes."
v0.2.0
2025-11-26 17:44:26 +01:00
Zoltan Papp a66064783e Update submodule (#109) 2025-11-26 17:15:07 +01:00
Diego Romar 8dbfc8acf0 Use force relay connection by default (#108) 2025-11-25 13:13:23 -03:00
shuuri-labs 227979ce15 feat/add-android-tv-support (#100)
* feat/add-android-tv-support

Add android TV support with the following changes:
- Implement new URLOpener interface with updated open method that accepts UserCode
- Add logic to MainActivity.java to detect Android TV, adjust UI and SSO flow accordingly
- Add QRCodeDialog.java to handle QR code/user code display logic
- Updated relevant layout xml files
- Add TV banner icon

---------

Co-authored-by: Ashley Mensah <ashleymensah@Ashleys-MBP.fritz.box>
2025-11-25 16:25:20 +01:00
Maycon Santos d50164314d build debug bundles when pushing to main (#107) 2025-11-25 14:19:32 +01:00
Maycon Santos 1602f54125 Update Go setup and gomobile version in Android build action (#104)
* Update Go setup and gomobile version in Android build action

* Update netbird file configuration

* update submodule
2025-11-22 11:29:54 +01:00
Zoltan Papp 92627d5ccb Wide screen fixes (#106)
- Fix the background color of the peers view in the light theme.
- Extend the background mask.
- Set a maximum width for the peers button.
- Change the shadow of the peers button in the dark theme.
2025-11-21 21:19:49 +01:00
Zoltan Papp 84b0501598 Remove unnecessary "route changed" notification (#105) 2025-11-21 19:21:49 +01:00
Diego Romar 4ea63dfb28 allow device registration with setup keys (#101) 2025-11-21 18:29:23 +01:00
Zoltan Papp 0c609f8393 Revert submodule changes (#103) 2025-11-21 15:33:42 +01:00
Diego Romar 79cf6e6a55 allow users to select/deselect network resources (#86) 2025-11-21 14:43:56 +01:00
Diego Romar d277cf686d restart go engine on network change (#97)
* Add network change detector and listeners

* Add network toggle listener to VPNService

* Add unit tests for ConcreteNetworkChangeListener

* Rename NetworkChangeListener to NetworkAvailabilityListener

* Change EngineRunner's Set implementation

From HashSet to ConcurrentHashMap's KeySet,
which is thread-safe.

* Update submodule to the latest tag (v0.59.6)

* Add EngineRestarter to restart the Go engine

* Add LOGTAG to NetworkChangeDetector

* Add some documentation to NetworkToggleListener

* Use EngineRestarter as implementation of NetworkToggleListener

When subscribing to ConcreteNetworkAvailabilityListener

* Replace HashMap usage with ConcurrentHashMap

The availableNetworkTypes HashMap is accessed from network
callback threads without synchronization

* Wrap connectivityManager.unregisterNetworkCallback with try-catch

* Add restart runnable and timeout callback to EngineRestarter

Restart runnable is used as a debouncing mechanism to
prevent concurrent restarts
Timeout callback is to reset the isRestartInProgress flag's
value if the engine takes too long to restart

* Update git submodule reference to latest tag

* Reverse cleanup order on VPNService's onDestroy

Now it disposes of network listener components
before stopping engineRunner

* Ci tests (#99)

Add testing steps for CI

* Remove line break

---------

Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2025-11-18 18:31:34 -03:00
hakansa 1e33b70593 fix: improve version normalization in build script (#90) v0.1.11 2025-10-06 21:31:40 +07:00
Zoltan Papp 5635540b97 Update submodule to v0.59.1 (#89) v0.1.10 2025-10-02 14:12:35 -03:00
Diego Romar 6301f77a30 Bring app to foreground after authentication (#85)
* Add onLoginSuccess implementation to CustomTabURLOpener

This will bring the app's main activity to foreground
after successful authentication

* Check isOpened is set to true on 'onLoginSuccess' callback

* Update submodule reference and URL to forked repo

Once the forked repo's PR is approved, it will be
changed back to the original URL

* Update submodule reference and URL back to main
2025-09-18 10:33:32 -03:00
Zoltan Papp 4ff23561d1 Update submodule to v0.57.0 (#84) v0.1.9 2025-09-13 22:31:22 +02:00
nev-al 62861bf20f fix: (AdvancedFragment.java) save pre-shared key correctly (#79) 2025-09-13 15:58:22 +02:00
Diego Romar 449db69f93 Add force relay connection option (#77)
This adds a new switch control to the advanced settings so that users may opt to force usage of relay when connecting to peers.
It also warns the user that this configuration change will only be applied the next time they connect to the VPN.
2025-09-10 19:21:04 +02:00