increase auto tunnel delay to 3 seconds
optimize stats job by killing it when app is backgrounded
fix tunnel launch from background
add restart of services and tunnels after update
- Attempts to fix tunnel and auto-tunnel reliability by removing the tunnel foreground service and circumventing the limitation of starting the vpn service from by background by using a broadcast receiver.
- Removes tunnel foreground notification.
- Improves the reliability auto-tunnel start on reboot by adding an additional notification launch calls.
- Fixes bug where pin feature could be turned on without the pin being set.
- Improves quick tile reliability and sync.
- Improves reliability of app shortcuts.
- Improves kernel mode
- Improves permissions flow
- Adds support for dynamic app colors Android 12+
- Add support for light/dark system modes
Re-enabled pin lock after disablement from crashes.
Fixed crashing issues.
Closes#237
Fixed bug where pin lock will no longer initialize if never not enabled/in use.
Improved tunnel control tile performance.
Fix bad address crash when user enters bad addresses into allowedIps.
Closes#229
Disabled auto rotate
Closes#212
Add restart on boot toggle to make restart of services feature more obvious and configurable.
Fixes a bug where android backups can cause app crashes due to pin lock feature keystore.
Fixes a bug where auto tunneling to SSID tunnel was not working correctly.
Fixes a mobile data tunneling bug which was causing mobile data tunneling to not perform correctly.
Additional strictmode improvements.
Fixes a bug where mobile data tunneling was not working properly in certain scenarios.
Fixes an issue where the new floating action button was not working correctly on AndroidTV.
Improved local logging.
Additional refactors and optimizations.
Added a feature where you can now add a commented "# Name = " property to QR code configs to import them with a name. If there is no name configured, app will use the first peer's host address as a name.
Improved imports so they no longer replace an existing config if that config has the same name. Instead, they will import with a (number) appended for config name duplicates.
Closes#68
Fixed a bug where the initial state of auto tunneling may not be correct and cause unexpected behavior.
Fixed a bug where Amnezia imports were not working when being imported as a zip.
Improved/refactored error handling.
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: Gabriel Franz <gabrielfranz31@gmail.com>
Co-authored-by: Saratoga79 <ordizi79@gmail.com>
Fixes regression where tunnel is stuck in on state after x amount of toggles. Closes#163
Adds obfuscation of potentially sensitive data from logs.
Closes#160
Adds hiding of FAB on scroll to allow users to toggle tunnels when they have many tunnel configs.
Closes#161
Improved service manager stop service command to improve reliability
Closes#148
Added assets required by Google Play for AndroidTV to fix Google Play release
Added apk fingerprint hash to release to allow verification of apk signature via apksigner
Improve tile sync when tiles are first added
Bump versions
Added tunnel settings feature where users can configure a tunnel to be used on certain SSID or with mobile data.
Closes#50
Added feature where if a tunnel was active when phone restarted, the app will start that tunnel on boot.
Removed automatic auto-tunnel toggling/override from the tunnel tile and app shortcuts as it can cause undesirable behavior.
Added second tile to control auto-tunneling pause/resume state from a tile.
Added two additional static shortcuts to be able to control auto-tunneling pause/resume state from shortcuts.
Fixed bug where crashes can happen from serializing and deserializing tunnel configs by removing the need for serialization of tunnel configs.
Refactored logic of watcher and tunnel service to make state more predictable.
#127
Fixed bug where rapidly toggling tunnels can cause crashes.
Closes#145
Improved how tunnels are manually toggled from one to another.
Improved logic/storage around primary tunnel behavior.
Fixes issue where info level logs were not populating on release builds.
Increase allowed name length displayed in UI.
Closes#143
Fixes bug where androidTV could crash in certain situations.
Bump versions.
Updated screenshots.
Fixes bug where control tile tunnel did not match with tunnel being controlled Closes#132
Fixes tunnel config edit screen error message #131
Revert to official lib to fix slow speeds issue Closes#137
Adds local app lock feature Closes#88
Adds restart vpn on ping fail with 1 minute interval and 60 minute cooldown Closes#6
Adds ability to easily make a copy of a tunnel.
Fixes bug on AndroidTV where tunnels were not being deleted properly.
Fixes bug where auto tunneling could be turned on before VPN permission was given.
Fixes a bug where save button was hidden on config screen
Adds a disclaimer notification for when GrapheneOS auto enabled Always-on VPN on first app tunnel start
Closes#121#120
Migrated app to a forked version of wireguard-android to enable development work on features that require changes to the core lib, like #107#104#87#52#6
Improved first launch flow by change vpn permission to only launch on first tunnel start
Changed to proper database seeding strategy
Updated README to account for GitHub packages auth requirement
Migrated from deprecated UI components and libs
Bump versions
Added support for auto start on reboot for Always-On VPN kernel mode
Added support for adaptive theme icons
Fixed notification icon size, tile icon, AndroidTV icons
Clean up pipelines
Bump versions
Closes#96Closes#98Closes#97Closes#79
Fixes a bug where after toggling a tunnel so many times it would eventually get stuck in the on position. This was also impacting auto-tunneling reliability.
Fixes a bug where clicking the email button on the support page would not populate the "to" email field.
Fixes a bug where you could not save a tunnel without having configured DNS.
Added a dialog to prompt user if they are deleting a tunnel.
Added battery optimization disable request when first launching auto-tunneling.
Format to kotlinlang standards.
Fix ci google play deploy.
Closes#63
Improved AndroidTV navigation to be less clunky and more streamlined
Added auto-tunneling pause feature to UI to allow of quick auto tunneling pauses.
App shortcuts and quick tile also override auto tunneling by engaging pause for temporary override of VPN purposes.
Fixed bug where auto start on reboot was not working on older devices and AndroidTV.
Fixed bug where location services is prefenting some flavors of Android from using auto-tunneling.
Fixed bug where location permissions were not being detected correctly on AndroidTV versions.
Fixed bug where quick tile could become out of sync.
Improved notifications to show proper state of auto-tunneling and vpn.
Removed excessive vibration from notifications.
Improved error handling.
Closes#75Closes#73Closes#61Closes#53Closes#30
Added basic kernel support to allow users to switch between userspace and kernel wireguard
Improved location disclosure flow to only show once once per app install
Fix airplane mode bug
Improve database migration testing
Fix auto-tunneling permission bug.
Lint
Closes#67Closes#43
Added support for configuring auto-tunneling to only tunnel on mobile data with no location permissions necessary.
Improved UI on support screen and updated support resource links.
Changed UI on setting screen to hide trusted wifi networks configuration when not in use.
Changed verbiage on settings screen to make auto-tunneling configuration more intuitive.
Fixed UI bug where analytics expansion could show on deactivated tunnels.
Closes#55Closes#56
Removed Details screen and moved tunnel statistics to be shown on expansion of a tunnel config row
Fixes bug where not scanning a QR code could cause app to crash when navigating back from camera view
Remove vibrations from notifications
Improve navigation of settings screen on AndroidTV
Fixes bug where commas in SSID names were splitting into multiple SSIDs due to database type converters.
Closes#48
Fixes bug where F-Droid pipeline was failing to build due to lack of proguard rule. Closes#47
Fixes bug where crashes could happen if config QR code or file has improperly configured data.
Bump versions.
Fixes a bug where config changes were saving on the wrong thread, causing a failure to save changes.
Fixes a bug where the quick tile could cause a crash by initializing the tile state before it was ready.
Added the ability to turn on and off tunnels via intents to the shortcut activity.
Added a setting to enable or disable shortcut/intent control of tunnels.
Added an experimental battery saver setting to auto-tunneling to fix the battery drain issue caused by wakelock.
Fixes a bug where sometimes the config screen could crash if there are issues parsing the tunnel config data.
Database migration
Added support for importing zip files containing multiple config files.
Closes#33
Added support for exporting all config files to downloads folder as a zip with biometric or security pin approval.
Added support for editing or viewing private key with biometric or security pin approval.
Fixed a bug where VPN status indicator functionality was unintentionally disabled.
Other various enhancements and refactors.
Fixes bug causing crashes when importing a file that is not a .conf file.
Fixes file import on AndroidTV and FireTV
Closes#39
Fixes usability issue on AndroidTV where textboxes immediately open the keyboard on hover.
Allows users two keypress access to turning on tunnels from app load.
Closes#36
Improves service efficiencies by making coroutines lifecycle aware.
feat: Change config screen UI to accommodate editing of all fields.
Change config screen to allow the addition of new peers.
Closes#31
Change main screen to denote primary tunnel with star.
Change main screen tunnel options to allow changing tunnel to primary.
feat: Change settings screen UI to improve usability.
Closes#32
fix: Change application shortcuts to static shortcuts for the primary tunnel.
Remove dynamic shortcuts.
Closes#38
fix: Database changes from the previous version causing crashes.
#40#37
fix: bug on detail screen where tunnel name was not showing
feat: Change button color when hovering on AndroidTV to improve visibility
#36
fix: Change file importing method to fix bug on FireTV
Closes#39
docs: update README with new screenshots
Fixes bugs where trusted SSIDs were getting whitespace added every time they were saved to the DB.
Fixes file explorer bug on AndroidTV where the app crashes if they do not have a file explorer installed on the device.
Adds settings feature to enable auto tunneling on ethernet connections.
Add alphabetical sorting for split tunneling packages
Fix bug where search was not searching by displayed label but by package name
Other refactoring and improvements.
Closes#29Closes#27Closes#28
Migrated app from using ObjectBox library for db to Room as ObjectBox is not FLOSS compliant.
Migrated app to using version catalog for managing dependancies.
Added floss build flavor for F-Droid and general build flavor for all other builds. Floss build excludes google analytics and crashlytics.
Other performance improvements and refactors.
Add support for Android 8.
Fix shortcuts bug where it was toggling auto-tunneling without setting enabled.
Fix shortcuts name not updating with config edits.
Bump versions.
Closes#25
Attempt to fix startForegrounService causing crashes on some devices by not meeting the 5 second notification rule. Add notification to onCreate of services.
Limit startForeground to only be called where it is truly necessary in the TileService to allow starting the VPN while app is not running.
Attempt to manually initialize mlkit for QR code scanning to remediate some crashes caused by config scanning.
Fixes a bug where older device take a longer time to launch the foreground service and connect to the VPN. Combined with a delayed launch of foreground notification until VPN connection is confirmed, this would break foreground service,s 5 second notification rule.
Fixed by adding a new attempting connection notification to launch on vpn initial connection attempt.
Add dynamic on and off shortcuts for each new tunnel added. Shortcuts will toggle auto tunneling to allow manual override.
Add package search for split tunneling.
Add tunnel toggling from tile even while app is closed and auto tunneling is disabled.
Refactor and code cleanup.
Closes#23Closes#21
Change tile toggle behavior to also toggle auto tunnel service to allow user temporary override and re-enablement of auto tunnel from the tile.
Add tunnel name to tile.
Fix bug where wifi networks without internet access were impacting auto tunneling determinations.
Closes#22
Add quick settings tile for easy tunnel toggling and auto-tunnel override.
Fix bug on AndroidTV D-pad tunnel control for multiple tunnels.
Closes#18 , Closes#20
Fixes an issue where watcher service had the potential to crash on older devices if the job was not initialized fast enough.
Optimize imports.
Bump versions.
Added support for Android 9 by updating permission checks and wifi SSID logic.
Fix bug where setting screen was cut off on AndroidTV by updating padding values.
Bump wireguard-android library version.
Closes#13, Closes#16
Fixes issue where rapid network switching could cause unexpected VPN connections and disconnection. Fixed by changing from real time network VPN triggers to three second interval checks.
Attempts to optimize battery drain while VPN connected by switching VPN statistics gathering to 10 second intervals.
Closes#11, Closes#12, Closes#10
Allows app be fully navigated via D-pad on AndroidTV (with some quirks)
Adds precise location check to setting screen as WiFi-SSID is not readable without this permission.
Closes#2
Added support for Android TV
Added support for Always-On VPN in settings
Fixes bug where handshake notification is not dismissed after successful handshake
Fixes bug that allowed you to use Auto tunneling without Location Services enabled. Now checks for Location Services before allowing access to feature.
Closes#2, Closes#5, Closes#8
Fixes not being able to scroll when in landscape mode if content is off screen.
Fixes FAB being in the way of controlling tunnels by making it disappear on scroll down.
Bump targetSdk to 34
Adds details screen which display details of tunnel configuration as well as last handshake and rx/tx of peer.
Adds last handshake monitoring with statuses and thresholds.
Adds handshake/connection notifications based on last successful handshake.
Adds status LED next to tunnel on main screen.
Fixes bug where first click on QR code could result in nothing happening if QR code module is being downloaded. Now shows message to user.
Fixes bug where changes made after editing tunnel were not propagated to settings if that tunnel was configured as the default tunnel.
Fixes bug causing crash if wrong config file selected
Update README
Closes#7, Closes#6
This fixes a bug causing inconsistent connects and disconnects to vpn on wifi capability changes by properly associated a child job to a parent job using a SupervisorJob instead of a GlobalScope job.
This fixes a bug causing VPN to stay connected on mobile data even when the setting is disabled by adding an additional check for this situation to disable the tunnel.
Add catch for file configs that are malformed and display message to the user
Pass full tunnel config to watcher service after detecting reboot to allow watcher service to start tunnel properly.
This adds a tunnel configuration screen where user can configure split application tunneling and change tunnel name.
Additional QR code validation added to prevent adding of invalid QR codes to tunnels.
Minor UI quality-of-life changes.
Closes#3
This fixes foreground notification that was allowed to be dismissed which causes the service to eventually be killed.
Also fixes notification conflict bug where notification messages were not created separate notifications for different services.