“Sente - Online GO” App for Android

That change did not come in the latest version, but the one before that. I have limited the number of games that appear in there when I introduced the “show chat in main screen” as connecting to every finished game to check the chat (even if only when scrolling to it) would be expensive in terms of battery and performance. So I had to introduce a cut-off point for “recent games”. If you’re interested in the exact criterion, it’s this:

  • games in which you are one of the players
  • games that are in the finished phase
  • games that have an end date in the past 5 days
  • if there are more than 25 games that meet these criteria, then the most recent 25 (as judged by the end date) are displayed

There is something to be said about displaying the other, older games in a fashion that is less taxing on resources (and not check the chat anymore). For example, I was thinking of doing something like the horizontal carousel for the older games:

image

4 Likes

If we’d be running out of memory on that bad boy then we’d be in trouble… :slight_smile:

1 Like

I like the idea!

Yeah true s10 should be fine otherwise… :scream:

1 Like

Amazing, thank you. And the carousel view could be good.
The thing about old games is that because the app is so much easier to navigate old games in used to use it to find particular games (scrolling through thumbnail view) and then go to main site to analyse.
The main site game history is too hard to navigate unless you know quite a bit of info about the game you are looking for.
I suppose it’s getting a bit beyond the scope of the app but a way of requesting the display of older games would be great. That way most people who don’t care about them would be troubled and no battery/performance issues. But weirdos like me could bring them up on demand (I don’t mind spending battery on your app!)

I mean if you ever managed to show variations then I’d probably never need to main site at all! I love the way the app scrolls through positions in a game. The speed change with press duration is perfect and way easier than on the main site. The only issue is the inability to move through different variations.

Anyway getting a bit off topic. Thank you again for improving my life with your app!

2 Likes

Hi @MrAlex I’ve just had a game finish and disappear from the recent list.

I don’t know if it’s because it was timeout or annulled and I’m not interested in having it in the finished game list anyway but I thought I’d mention it since you previously asked about games that this happens to.

1 Like

The carousel would be a means of displaying old(er) games than 5 days. I will work on that next probably, after the current batch of pressing issues.

We’d have to clearly define what we mean by “variations”. I think that a full variation tree and analysis tools would be quite hard to implement. Displaying chat variations or starting “what ifs” from previous positions might be doable do (but we’d have to specify clearly what subset of features we want).

I have a theory about what causes this and I’ve been working over the past few days to fix this (and also drastically reduce the number of calls to OGS in the process). Will probably have a fix soon.

Don’t worry man, it’s my pleasure. Thank you for your support as well, you’re still the only guy that is actually donating money to the project :slight_smile:

3 Likes

New version is going to be up shortly. This one was a lot of work, even if there are very few changes that are directly visible to the user. Thanks to @Popz for his contributions. Here’s what’s new:

  • @Popz Added setting to show/hide rank as requested by @teapoweredrobot. Please give it a go and let us know what you think.
  • @Popz Added a few more settings and bugfixes to the challenge system. You can now make games public/private, the ranked toggle works correctly, etc
  • Added a carousel to show old(er) games. Please note that if you scroll too quickly to the right the first time I am throttling the requests (you will start seeing a loading indicator for 15+ seconds if that happens) so as not to overload the server. Note that once the games are fetched from the server this is no longer and issue and the games are loaded from the local database almost instantly.
  • Greatly reduced the number of calls to the OGS server thus reducing the load on the server and making it much less likely to hit the “request was throttled” that was causing the app to stop updating sometimes when people had a lot of active games.
  • Yet more improvements to the game scrolling speed and to the loading time
  • Major code refactoring (@Popz don’t forget to pull the changes if you start working on something new)
  • The “finished game sometimes not appearing” bug should also be fixed now.

As always, feedback is welcome!

5 Likes

Sounds amazing, thank you!

1 Like

big release! awesome :slight_smile:

1 Like

Yup! The caroussel is super and shows a lot of games! Really cool update!

2 Likes

Thank you for these big improvements !

Unfortunately, this update (alpha_b244) no longer works on Android v6. The app crashes all the time when I try to open it. I didn’t encounter this problem on the previous release (alpha_b231).

I hope there will be a solution.

Thanks for all your work and thanks to the contributors.

1 Like

Damn, shoot… you are right, it was a dodgy build that doesn’t work on Android 6 and older. I think I know what the problem is, I’ll try to get it fixed tomorrow.

Sorry for that, I definitely need some sort of automated tests because once every 3 or so updates I release one of these duds that REALLY hurts app adoption…

2 Likes

Hi @MrAlex, great update! While you fixing the V6 issue could you also look into a display bug I think I found?
I played a move but my stone looked like it was placed in a different place. When I went back to the list of games the same board was there as my move to play and it tuned out that my opponent had a conditional move at the spot that the stone of my colour was seemingly wrongly placed.
So I guess that the new way of getting moves from OGS is somehow too slow to keep up properly with conditional moves. The board then doesn’t display the played move, only the conditional move and in the wrong colour!
Good luck!

1 Like

Yes, I know that bug, it has been there since… forever. But it only manifests with conditional moves and (sometimes) live bot games. Somehow the server responds with the opponent moves before acknowledging your move. But the difference is usually less than a second, the game should “pop back” to the correct state almost instantly. I will try to have a look but it’s not a simple fix.

2 Likes

The fix for the crash is on the way, but it will be a few hours before it makes its way through Google’s server so it’s available for download. Changelist:

  • Fixed crash on android 5 and 6. @V.III please try it out and let me know if it works for you
  • Since it was related, I updated all games ended dates to use microsecond precision since that’s what the server expects. Not sure why you would need such crazy precision, but there it is.

This sadly requires another local database wipe so all the messages will appear unread again. Sorry, I keep trying to figure something out for that one, but the way the server sends the messages is rather hard…

3 Likes

Hi @MrAlex, it works again with the today’s update (alpha_b247) !
Great thanks for you prompt fix !

For tests automation, I think it should not be very difficult to do that via GitHub Actions.
Here is an example for building and testing Java with Gradle.
The free plan allows to execute Actions for 2000 free minutes per month, which should be enough for now.

Thanks again !

1 Like

Thanks for the hint, but the problem lies not with the test setup itself, but with the difficulties of actually connecting to the server with a test account and playing out a few moves. This would probably require some sort of bot to give the moves back (?) I will have to figure it out…

2 Likes

I didn’t see that, but you are already using Bitrise for CI/CD.

@MrAlex, I don’t know if you have noticed that, when the clock of a game is configured to pause on weekends, the Android client doesn’t seem to take this parameter into account and continues to count down. However, I’ve noticed that client’s clock synchronizes correctly every monday and still correct for the rest of the week.

1 Like

I am and I’m investigating adding some simple smoke tests over the weekend. It will probably not play any moves, but it will just log in and go into a game to check that it doesn’t crash. Should catch the nastiest of issues.

Yes, it’s a known issue: start timers, paused timers and absolute timers are not implemented. I will look at this over the weekend as well…

3 Likes

It is really helpful to get notifications on my mobile phone, thanks for making this app @MrAlex. What is the polling frequency for notifications? As well as a sensible default value, it would be useful to have options for different polling frequencies in the settings. That way people would be able to adjust the frequency to suit their needs. Thanks again.

2 Likes