Naim App (Android) 2.1

Posted by: Huge on 19 July 2017

Well it's arrived, but not fixed the connectivity issues.


Pegatron Hudl2 - Android 5.1

First issue:  As soon as it's disconnected from the WiFi (e.g. by the tablet going to sleep or WiFi disconnected through the UI) the volume control on the app stops working.
This has 2 symptoms.

1  It gets the wrong max volume setting (the full scale on the slider becomes somewhere between 25 and 30 something, instead of the 50% max volume setting in the 272)
2  Although the volume on the 272 can be set (at least between 0 and 25%), the app doesn't believe this is possible and immediately returns the slider control to the position it was when the app was last successfully connected to the 272.

As the same symptoms can be recreated by manually disconnecting the tablet from the WiFi as well as by the tablet OS, this appears to be an error in the code used to restore a network connection.

This type of application behaviour is sometimes shown by code that's trying to 'repair' an existing but broken network connection.
If it is trying to do that, then that's a fundamental design flaw, broken connections should be dropped and a new connection created to replace the old one.

 

OK further research - it's actually got worse than before

It now does the same thing if the app is sent to sleep while the WiFi remains connected - it can now be recreated as follows:

Navigate to the app's home screen.
Use <Back> to return the tablet UI to the main screen
Open the App using the icon

The Volume control fails as above.

Posted on: 19 July 2017 by Streamz

Ok, let's use this one for thelatest version.

 

Streamz posted:

Ok, version 2.1 is released. And I'm happy to report that the search function in Tidal works again. Not in the way that it worked previously, it still searches on the fly, so you cannot press "enter" to initiate the search. You have to wait a second for the results to come up. Pressing enter will result in no results. 

I would have seen it otherwise, but it works. So more a matter of preference. 

Also, searches are not all stored. Tried 10 or so, only one was kept under "recent searches." The layout is also a bit strange, I use the black backgroud, but the recent search area is changing in size and is dak blue.

The result area is also changing, sometimes I see artist and album, sometimes a tile layout is displayed with just album covers and three dots so you can't see which artist it is. In both portrait or landscape mode. 

In short, feels like a rushed release. But at least I can use Tidal and UPNP seaching again, so thanks for that.

Posted on: 19 July 2017 by Huge

OK it's actually even worse than that.

After miserably failing to reconnect to the 272 hardware's status interface, then neither will the app connect to the NAS drive - the worker thread just crashes when it tries to connect.  Neither the NAS nor the 272 are affected as music can be restarted from a paused position; the only thing affected is the app.

2.0 had major network connection issues and this version is worse.
There are several possibilities including: More code (& slightly slower response to the resume event) or more optimisation (& a faster response to the resume event causing a race error).
In any case the OnResume() handler is not fit for purpose.

 

The app is failing to restore network connectivity after the OnPause() and OnResume() event handlers.
An OnStop(), OnRestart() and OnStart() cycle restores functionality.

The fix is clear:

1  Move the network connection release (i.e. close connection) routines from OnStop() to OnPause().

2  Move the network connection open routines from OnStart() to OnResume().

This will reliably reconnect to the network when the app is paused (e.g. by Android OS sleeping), at the expense of the app taking 1-2 seconds longer to wake up.
It's not worth sacrificing network stability for the sake of a couple of seconds faster response to the Resume event.

Posted on: 19 July 2017 by Huge

Reselecting the 272 from the first page of the app doesn't fix it either.

(I would have expected that to reinitialise all the connections in case a different device was selected, but no, it doesn't actually do anything).

 

Other things that don't fix it

Clearing the image cache or clearing the UPnP cache (not that I expected they would fix it).
Clearing the cached data using the Android OS.

 

On the other hand clearing ALL the app data using the Android OS causes the app to terminate reinitialise fully and restores functionality when it's re-launched from the Android main screen.  (This action probably causes the app to terminate completely, hence OnCreate() may have to be called and OnStart() will be called when the app is launched again.)

Posted on: 20 July 2017 by Streamz

Before anyone makes a comment that only a few people have issues with the latest two versions of the app, just take a look at the Play Store reviews. Ouch.