Fixes failure to send ACKs when the game receiving the message isn't
open. The problem was that though background processing was saving the
game it wasn't telling comms to change the lastMsgReceived variable
which meant the ACK sent didn't include the message that had just been
processed.
Trying to address
androidx.preference.PreferenceManager.getDefaultSharedPreferences
sometimes failing on Android 12. Using newer version of the library
probably won't hurt.
Two branches doesn't work because they can't have the same
tag. Duh. I'll do two releases, and two tags, complete with version
code change, to support pre-Kitkat and everybody else.
I'm getting a lot of crashes deep in the MQTT client. Upgrading may not fix
it, but it does crash on launch for JellyBean and before. So this
release will have the new MQTT client AND not get installed on the six
or so users I have running too-old Android. If the crashes continue
perhaps I don't orphen them. TBD.
I had a scheme where, as on WinMobile, I could download localization
data based on the local of the device I was on. Saved a lot of
space. Google didn't care about space, and I haven't for a while
either, so it's coming out except for the API that did in-place
translation of UI elements.
Attempting to stop calling the relay, but to let relay-only games finish
and issue invitations. Big changes are that relay is removed from games
if they have viable mqtt connections, and relay timers fire less often,
then eventually stop getting set if there are no active games. Result is
that a relay-only invitation won't likely be received, but there should
be few or none of those now.
Main goal is to not fire RelayService timer when mqtt timer fires and
there are not any active relay games at all. Adds new class that keeps
a timer for each client, sets the closest each time, and dispatches only
that one.
I was determining I need to check the relay for messages if I have open
games using it. But they can also use mqtt, and the goal's go stop using
the relay. So only force the connection if the games can only connect
via relay. Once I've confirmed via a study of relevant databases that
all recent relay games are also connecting via mqtt this can ship, and
should stop nearly all relay traffic .