| Age | Commit message (Collapse) | Author | Files | Lines |
|
- Move checkbox below message
- Add warning about anonymity
- Change from AccountToken to account-token in support message
|
|
|
|
|
|
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.
|
|
|
|
- Add support for more types of login error messages
- Add more detail to create account error message
- Show info dialog when api is unreachable
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
Also split the select hop code into select hop and modify multihop
Refactor relay list type
|
|
Also allow for using swipe to switch between enter and exit lists
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Change to new look and feel of list items
- Add support for clicking inactive relays, with info message
if relay, country or custom list is unavailable.
|
|
|
|
Also immediately update the expiry date after a successful purchase
|
|
|
|
|
|
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.
|
|
|
|
Also add support for 3 months in-app purchases
|
|
|
|
|
|
|
|
|
|
Also fixes back behavior in custom list locations
|
|
- Do not show the action on devices without vpn settings
- Handle exceptions when starting vpn settings activity
|
|
|
|
|
|
|
|
|
|
|
|
- Add Daita: Multihop feature indicator
- Make feature indicators clickable
- Add animations when accessing the features through the indicators
- Rework VpnSettings in order to support navigating to a feature in the
list
|
|
|
|
|
|
- Implements the navigation rail design for Android TV
- Implements the TV notification banner design
- Adds two new Gradle modules:
* tv: contains the Android TV specific Compose components (e.g. the
NavigationDrawerTV component)
* ui/compose: contains Compose-specific code that is needed by
both the app module and the tv module.
|
|
|
|
Joda Time has been superseded by the Java 8 java.time package
which has more or less the same API. This commit removes all
usage of Joda Time and replaces it with the java.time classes.
This is done so that we can remove the dependency on Joda Time.
|
|
Each call to Establish opens a window for leaks on android. By only
invoking Establish if the VpnConfig if any of the input has changed and
reusing it otherwise we avoid many of these leaks. This commit also
waits for android to report back that the routes have been created to
ping and verify connectivity to avoid pings going outside the tunnel.
|