[Android app][Open Beta] Volumio Control native android application

I can see that this is potentially quite complex, especially given the variety of devices.

My phone struggles with battery consumption, so it is definitely worth ensuring power efficiency where possible.

I don’t know how the back ground service works, but one strategy would be to vary the execution or check interval. Something like this:

  1. Just lost connection? Try to regain repeatedly with ever increasing randomised intervals until some max period is reached, eg 2 minutes

  2. On WiFi with no connection? Try at random infrequent intervals to reconnect.

  3. No WiFi? Do not attempt to connect.

1 Like

I had something very similar in my mind, there is not too many options on how to implement it, so that it would be battery friendly.

But that is in the list after series of bug fixes, besides i still haven’t implemented the options page for the app which need to be in there before this kind of stuff, so that one can opt-out from these possible battery inefficient options.

Well, thanks for all the work you’re putting in. The app works really well for me in it’s current state.

In fact, right now it’s good enough that any improvements are, for me, icing on the cake. It’s certainly much better to use than the volumio app.

2 Likes

Great to hear that someone likes it, besides me :slight_smile:

The official app would be great if it got working navigation with the native back button of the OS, without that i just find it unusable, because i can’t stop pressing the back button when i want to navigate back. This same goes to the web browser interface, which is a reason im thinking about creating windows client software aswell, if i happen to find time for that.

I believe that all the current client apps for volumio do have their own pro’s and con’s, none of the apps is the “way to go” for all users, and it’s up to personal preference which one you decide to use.

(let’s not make this official vs this app or any other discussion)

1 Like

Not an issue for me because the app is so blazingly fast in connecting. Would be nice though to be able to set a default IP for connecting (for when you only got one box)

1 Like

I add that option back for the next version, it was there already but at some point changing the UI, i believe i forgot to put it back. (It’s actually implemented so that it will connect to first device it finds without need to enter default IP address, this will allow the option to work even if the volumio does have dynamic IP address which could chance at any point)

Some stuff for next update is.
-increased the gesture area for portrait user.
-fixed UI bug on back navigation(it was flashing error/loading screen very briefly)
-all the dialogs changed to “bottom sheet dialogs”, so these will come from bottom of the screen for better usability on portrait mode.
-local playlist stuff fixed.
-bring auto connect option back.
-make the retry button work on error screens.
-and probably many more tweaks i forget about.

Status update.

Last update seemed to cause some serious state restoration proplem’s when coming back to the app when it was killed, many of you propably did see the empty “music service” list in the home screen, i’m sorry for that.(for time being force closing the app fixes this, and propably using the device switching functionality aswell)

I believe i found a cure for that, and at the same time fixed one similar bug which did happen from time to time since version 1 of the app, the fix was actually so obvious that i feel bit stupid right now.

private val connectionStatus : SharedFlow<ConnectionResults> = connectionState
        .shareIn(externalScope, SharingStarted.WhileSubscribed(), 1)
        .onSubscription {
        if(isConnected())
            connectionState.value = ConnectionResults(ConnectionStatus.Connected)
        else
            connectionState.value = ConnectionResults(ConnectionStatus.Disconnected)
    }

So basically the fix was to force checking the socket connecting status from the socket object itself, instead of relying the cached state :man_facepalming:, and since the first very first thing the app does when it launches is to start listening this event, it should now always receive a state which it can safely use determinate what it should do.(before the state could be restored somewhere in between connected and disconnected, which in rare occasion was false state and we got stuck)

i will try to do my best on testing bit more and release the update today later.

1 Like

I’ve done some progress on killing bugs aswell as designing the UI on certain screen bit better.

I’ve had something like this in my mind for an album view.(this is not final, but more like what it will be)


The top gradient color is dynamically selected from the albumart and then blends to the background color, this makes the color bit different for all the albums, so it’s not so boring.(Spotify app does the same i think)

Also the album name scrolls once when the view is opened, if it’s too long to fit on the screen.

Not at the album screen, but also added song progress indicator between the bottom action bar and content.(it is not possible to fast forward etc from that, because it’s too close to other clickable content, and would cause missclicks)*only for portrait currently.

Good to see the changes; I do like the ‘album view.’

1 Like

Yeah, slowly but surely.

UI rework has been in my mind for long time already, but its slow like a lot slower than writing some new feature or so, because i have to account for all the different screen sizes best i can.(most of the screens in the app only have 2 layouts, portrait and landscape which then scales on different screen sizes)
And then the variety of android versions in the mix…

I’m daily trying to make some progress with the app, but most of days i have only hour or so time available for that, which is not much at all and even i feel like no progress is happening.

E: Another variant for album view.

Removed all the stuff that kept repeating itself, which makes it more clean and nice overall in my opinion, also experimenting with different action button placements.

1 Like

Personally, I like the tracklist background colour being a transition between the gradient and the stark solid black of the controls background, but things like this will come down to subjective taste.

1 Like

I believe you are completely right on that, control area and content background can’t both be same color.

I believe this is what i will settle with for now, hope someone else also finds it better than what it was before, open to any feedback. (Still need to refresh the other views with same/similar look)


i still got some small fixes to do, then will release an update.

Edit:
Update is live now (ver code 37, 0.96)

  • album and playlist views reworked.
  • fix startup bug on Android 12
  • app internal rework of core flow(yeah, more bugs for sure)
  • dialog colors should be fine on light system theme now.
  • Fix crash if someone fast tapped “random button” before content was loaded.
  • handles radio stations on a playlist now.
  • multiple crash bugs fixed.

Love the gradient when it shows, but doesn’t appear on all albums. What would affect this?

2 Likes

Currently it’s looking for “light vibrant” color from the art, if it does not find one it fallbacks to black color and build the top gradient based on that.(you need max brightness in screen to see that one)


(Pic from Google docs)

I was thinking about making the fallback color user adjustable, to give some customisation options, or then look for dark variant of the color if the light one is not present, but i don’t know which is better in the end, perhaps just give both options in the end?

For the next update i was planning of implementing

  • application settings
  • artist screen rework
  • along with fixing more bugs/quirks.

An old bug seems to be back, that the app doesn’t respect the playback mode setting.

I’ve both restarted Volumio and the app (incl. clearing data + cache)

1 Like

So it seems, will try to provide hotfix tomorrow for that one.

1 Like

Besides the playback mode bug the new UI looks good!

Only noticed one thing when songs have long titles in the pop up menu (on small screens in portrait mode)

Also noticed that in portrait mode on the phone the home button is very close to the pull down menu - but that’s a rather minor thing.

1 Like

0.96.3 fixed the playback mode bug :white_check_mark:

I stumbled over another small UI quirk when I for some reason opened the system page in portrait mode on my phone.

1 Like

Need to fix that aswell, or more like remove it all together and add another kind of indication that settings was retrieved and smaller indication of the currently connected device.

Thx for reports!

Any feedback is very welcome, let’s try to make it ready for first non-beta build by the time of volumio3 launch, after that all the builds will go throught the beta stage and then to production when i see it working.