mrksbrg / racketghost Goto Github PK
View Code? Open in Web Editor NEWAndroid Open Source Ghosting Coach for Squash, Badminton and Racketlon
License: MIT License
Android Open Source Ghosting Coach for Squash, Badminton and Racketlon
License: MIT License
Add a background image that reflects the squash/badminton setting.
Add a proper list view to present all previous sessions in the results acivity.
Implement the audio announcements.
After patching to 1.5.0 a crash has been reported on Samsung Galaxy Express 2:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.markusborg.test/com.markusborg.ui.MainActivity}: java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2447)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2507)
at android.app.ActivityThread.access$900(ActivityThread.java:172)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5692)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
at com.markusborg.logic.Setting.(Setting.java:53)
at com.markusborg.logic.LogHandler.(LogHandler.java:44)
at com.markusborg.ui.MainActivity.onCreate(MainActivity.java:66)
at android.app.Activity.performCreate(Activity.java:5541)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2411)
... 11 more
Very low sound (but sound at least!) on a Sony Xperia M device. Could the default volume be increased in the app?
User request:
Add sound to the last 5 seconds ... I am often walking around the Court recovering between reps -The sound would bring me back to the T!
For the 'GO!' button, play a squash or badminton hit.
User request:
The font size for the countdown timer is too small, thus hard to see.
Pressing stop to kill the ghosting session doesn't make sense unless you can resume it again. In v1.1 you must press back as the next step, there is no other option.
Granularity of millisecond really not needed. Change it to decisecond.
The special edition for Swedish Open has a splash screen. Add one also for the standard version of RacketGhost.
The list of the three most recent settings used is only populated when the app starts, not between sessions in an open app.
Configuring ghosting sessions using text fields requires a power user. Replace them with sliders that suggest what is "slow" and "fast".
It takes a while to put the device in a good position on the court and return to the starting position. Add a longer count down before the first set, maybe 10 s?
Despite toggling audio in the settings, I hear no sounds during ghosting sessions.
When the device is far away it is hard to know when the final corner has been given. It would make sense to play a distinct sound when it is time for the break, and also to flash the screen if the sound is not enabled.
Replace everything by a new Android Studio project.
Replace the current RacketGhost icon, introduce an alpha channel.
Should not be editable.
No numbers presented for interval and break time after new install. Numbers appear first when using sliders.
The project should have a regression suite of autotests to catch defects before new code is introduced.
The log handler always adds (SQ) to ghosting sessions in the history view.
Or an even higher version. Must be done before November 1, 2018.
Some friends are using API 16. Add support for all Jellybean versions.
Add optional "push" sound when there is only a few more reps to go. Make it an option in the settings.
Update to the latest Gradle version
User request:
Start the on-screen timer between reps immediately, rather than giving a 5 second countdown.
When stopping a ghosting session, the following restart doesn't start from scratch.
The gray text is hard to read in the Settings activity, especially with new background. Increase the contrast, e.g., black text.
The app should store the setting using SharedPreferences, and load it in OnCreate. There should also be a Reset button to get the default (recommended) setting.
Update project to the new Gradle version
Add a fourth bullet.
Running to the four real corners takes some time; Doing the volleys is significantly faster. The interval time should reflect this. Possibly 2/3 of the time?
On Samsung Galaxy Express 2, crash when opening new listview on v. 1.5.1. Linking appears wrong, getBallIcon is not found.
Do clean and rebuild?
"Volley left/right" is appropriate for squash, but not for badminton. It should be replaced by "Smash left/right".
Add the apk for the the release v.1.32.
On some devices the layout of the six court areas look strange.
Uncommon to hit a short stop from the back corners. Make drives more common with some occational boosts or crosses.
Create a special edition of RacketGhost with pictures from Hyllie Sportcenter.
The break between sets appears strange. Also, there is a 0 in the summary log for the break timer.
The screenshots on Google Play are outdated, replace them with new images.
Update the target build version and make sure everything works.
The setting menu doesn't make sense. Instead, it could be replaced by a simple about option. Popup with link to Github repo?
Time to truly make RacketGhost a multi-racket coach. Allow the user to switch between squash and badminton mode, and present the ball image view accordingly.
Prior to IWT Casino Heroes Swedish Open 2016, it would be nice to branch the project. I plan to distribute a special edition with the tournament logo in the middle during ghosting sessions.
Play from left or right depending on ghosting. Might give a useful effect on some devices.
The current about box is not very nice. Replace it by something more appealing.
Time for a summer release. Increment the version number and create a matching tag for the release.
The AsyncTask does not stop, but continues in the background. The same happens when switching to another app or pressing 'home'; The activity continues in the background and keeps playing sounds, but it cannot become active again.
Such operations should stop the ghosting session.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.