2021.1

The first update for the year 2021 has been in beta for many months. It has many important improvements, so what’s taking so long.

Background location permissions

Applications that target Android 11 must include a notice when requiring background notification permission and the developers must also convince Google that the app really needs it. From users perspective, this is probably a good thing, but for developers, it can take quite a lot of time. Also the way background location is granted is terrible. Users now need to go to application settings in Android and grant the permission manually, application can no longer ask for it directly. This has caused many months of delay because it really annoyed me and I lost the drive to develop the application.

Android R

It has become somewhat normal for Google to make things hard for developers. With each version there are number of changes. Sometimes developers have to put in a lot of work to adapt to these changes. It was especially laborious to adapt Advention to it, because quite a few things changed and in the end not everything was completely adapted.

Some changes in Android R that affected Advention: Background Location, Scoped Storage (backlog from Android 10, but enforced in Android 11), Keyboard API, Navbar and Notification bar API. Each of these required quite a bit of work.

Improvements

Statistics caching

Statistics now use caching to improve subsequent loads. While this slows down the initial load a little, subsequent loads are much faster, especially with more data.

Rewritten statistics list

Statistics are finally paged so you can explore all your sessions just by scrolling down. Some filtering options should come in a future update.

GPX for everyone

GPX export can now finally be used on all supported Android version. This was previously not the case, because the library used required Java 8 features. Thankfully it is now possible to bring these to older Android devices

Java 8 time api

With the support of some Java 8 features. Time was rewritten to use the newer API.

No more external storage permissions

The storage permission is still required by some external library, but the application will not request it.

New features

Goals

Goals allow you to set daily and weekly targets for steps taken. To get the update out quicker, it is currently possible to only set goals for steps, but much more universal goals are coming in the following update.

Points

Points are rewarded from goals and challenges. Points are currently not balanced and will be tweaked in the next release.

Scope

Unfortunately the scope of the next update got big again even after attempting to make it smaller. There are many more internal changes and everything together caused delays. I have used the update for months and have not seen any major issues so hopefully after testing the latest updates for Android 12 the release can go live.