<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mullvadvpn/android/service/src/main, branch decrease-leaks-during-reconnect</title>
<subtitle>The Mullvad VPN client app for desktop and mobile</subtitle>
<id>http://git.waynecole.info/mullvadvpn/atom?h=decrease-leaks-during-reconnect</id>
<link rel='self' href='http://git.waynecole.info/mullvadvpn/atom?h=decrease-leaks-during-reconnect'/>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/'/>
<updated>2025-10-28T14:56:09Z</updated>
<entry>
<title>Rename 'shared' to 'repository'</title>
<updated>2025-10-28T14:56:09Z</updated>
<author>
<name>Kalle Lindström</name>
<email>karl.lindstrom@mullvad.net</email>
</author>
<published>2025-10-27T10:35:42Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=d10085b894e0061138c5e0ff4b351ed04a22c65e'/>
<id>urn:sha1:d10085b894e0061138c5e0ff4b351ed04a22c65e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add option to show relay location in notification</title>
<updated>2025-10-28T14:55:52Z</updated>
<author>
<name>Kalle Lindström</name>
<email>karl.lindstrom@mullvad.net</email>
</author>
<published>2025-10-23T14:15:02Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=376372c84c6b881e0097e5dab5348adab3e5f100'/>
<id>urn:sha1:376372c84c6b881e0097e5dab5348adab3e5f100</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Move ApiEndpointOverride to its own bean in app module</title>
<updated>2025-09-11T09:00:26Z</updated>
<author>
<name>Jonatan Rhodin</name>
<email>jonatan.rhodin@mullvad.net</email>
</author>
<published>2025-09-10T09:06:22Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=99764348eb6522b1eab76b085969fcfae3afd6be'/>
<id>urn:sha1:99764348eb6522b1eab76b085969fcfae3afd6be</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Attempt to fix potential ANR</title>
<updated>2025-08-04T10:44:04Z</updated>
<author>
<name>Kalle Lindström</name>
<email>karl.lindstrom@mullvad.net</email>
</author>
<published>2025-08-04T09:19:50Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=0a12ecffef67b5a3422dcd6ae53eeca114d407d4'/>
<id>urn:sha1:0a12ecffef67b5a3422dcd6ae53eeca114d407d4</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Use AlarmManager for notifications</title>
<updated>2025-06-19T07:36:26Z</updated>
<author>
<name>Kalle Lindström</name>
<email>karl.lindstrom@mullvad.net</email>
</author>
<published>2025-06-09T15:16:45Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=cdc2c4d700cd41f37cf4b1607a0396019b1fbee5'/>
<id>urn:sha1:cdc2c4d700cd41f37cf4b1607a0396019b1fbee5</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Supply IP address when using API override</title>
<updated>2025-05-21T10:42:25Z</updated>
<author>
<name>David Göransson</name>
<email>david.goransson@mullvad.net</email>
</author>
<published>2025-05-21T09:17:25Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=7e7d6734b1c53dcc26774aebca60e5c09201152b'/>
<id>urn:sha1:7e7d6734b1c53dcc26774aebca60e5c09201152b</id>
<content type='text'>
Previously we did a DNS lookup for Stagemole and Devmole however, this
causes problem when starting the app with no internet and is different
from how the app performs in production mode. This commit removes that
logic in order to align closer to what we expect in prod.
</content>
</entry>
<entry>
<title>Add product flavor to in app logs</title>
<updated>2025-04-03T10:43:54Z</updated>
<author>
<name>Kalle Lindström</name>
<email>karl.lindstrom@mullvad.net</email>
</author>
<published>2025-04-02T16:40:42Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=0a59263d2cb00e79a206bf267c7c9c271e9fcf03'/>
<id>urn:sha1:0a59263d2cb00e79a206bf267c7c9c271e9fcf03</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove Joda Time and use java.time package instead</title>
<updated>2025-02-26T08:25:17Z</updated>
<author>
<name>Kalle Lindström</name>
<email>karl.lindstrom@mullvad.net</email>
</author>
<published>2025-02-25T09:48:50Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=da304ffedf8f8d98600f31f737cf92768c0323fa'/>
<id>urn:sha1:da304ffedf8f8d98600f31f737cf92768c0323fa</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Bundle a pre-generated relay list instead of generating one</title>
<updated>2025-01-28T09:35:15Z</updated>
<author>
<name>Jonatan Rhodin</name>
<email>jonatan.rhodin@mullvad.net</email>
</author>
<published>2025-01-24T10:15:52Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=1fd061cc62fa0b3deb56302d8d74d513345c3037'/>
<id>urn:sha1:1fd061cc62fa0b3deb56302d8d74d513345c3037</id>
<content type='text'>
The android app will try to bundle the relays.json
found under dist-assets/relays/ if it exists.
Otherwise it will rely on the relay list
downloaded by the api.

For alpha, beta and stable release builds it is required
to have a bundled relays.json file.
</content>
</entry>
<entry>
<title>Add support for blocking and disconnecting text in notification</title>
<updated>2025-01-07T15:46:39Z</updated>
<author>
<name>David Göransson</name>
<email>david.goransson@mullvad.net</email>
</author>
<published>2024-12-23T16:11:37Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/mullvadvpn/commit/?id=66be95a4daa42df2fafea20ac89357893881b745'/>
<id>urn:sha1:66be95a4daa42df2fafea20ac89357893881b745</id>
<content type='text'>
</content>
</entry>
</feed>
