chaosbastler / opentraining Goto Github PK
View Code? Open in Web Editor NEWAndroid App for planing your fitness training.
License: GNU General Public License v3.0
Android App for planing your fitness training.
License: GNU General Public License v3.0
User should be able to report errors concerning the exercises.
There should be an easy way to report wrong names, wrong equipment, wrong muscles or missing images.
There should be little images representing the exercises on the exported plan.
Reason: the name alone might be not enough to remember the exercise.
Reported via Google Developer Console (Stack-Trace below).
The NullPointerException occurs at:
Intent intent = new Intent(getActivity(), FExListActivity.class);
It seems like getActivity()
returns null. Unfortunately I could not reproduce this bug and I don't know why it occurs or how to fix it. So issue-status will be set to cantfix.
Stack-Trace:
java.lang.NullPointerException
at android.content.ComponentName.(ComponentName.java:75)
at android.content.Intent.(Intent.java:3677)
at de.skubware.opentraining.activity.SelectWorkoutDialogFragment.startTraining(SelectWorkoutDialogFragment.java:162)
at de.skubware.opentraining.activity.SelectWorkoutDialogFragment.access$4(SelectWorkoutDialogFragment.java:130)
at de.skubware.opentraining.activity.SelectWorkoutDialogFragment$2.onClick(SelectWorkoutDialogFragment.java:101)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:181)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5338)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Case on "axe hold" does not match the case standard presented by the others. (for example "Arnold Shoulder Press" and "Bear Walk"). There are a few others with capitalization defects. ("Barbell shrugs instead of "Barbell Shrugs").
Actually, i'm not sure if there is something downloading i let it now run for about 30 minutens and its still not finished.
Maybe let it fetch online how much is available and then drop a 14/60 kind of statusbar.
But the author wrote already that he does not intend to maintain it anymore.
java.lang.RuntimeException: Unable to start activity ComponentInfo{de.skubware.opentraining/de.skubware.opentraining.activity.create_workout.ExerciseTypeDetailActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
at android.app.ActivityThread.access$600(ActivityThread.java:128)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4517)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:995)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at de.skubware.opentraining.activity.create_workout.ExerciseTypeDetailFragment.onCreateOptionsMenu(ExerciseTypeDetailFragment.java:259)
at android.support.v4.app.Fragment.performCreateOptionsMenu(Fragment.java:1582)
at android.support.v4.app.FragmentManagerImpl.dispatchCreateOptionsMenu(FragmentManager.java:1956)
at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:225)
at android.support.v7.app.ActionBarActivity.superOnCreatePanelMenu(ActionBarActivity.java:232)
at android.support.v7.app.ActionBarActivityDelegateICS.onCreatePanelMenu(ActionBarActivityDelegateICS.java:147)
at android.support.v7.app.ActionBarActivity.onCreatePanelMenu(ActionBarActivity.java:199)
at android.support.v7.app.ActionBarActivityDelegateICS$WindowCallbackWrapper.onCreatePanelMenu(ActionBarActivityDelegateICS.java:285)
at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:420)
at com.android.internal.policy.impl.PhoneWindow.invalidatePanelMenu(PhoneWindow.java:773)
at android.app.Activity.invalidateOptionsMenu(Activity.java:2664)
at android.support.v4.app.ActivityCompatHoneycomb.invalidateOptionsMenu(ActivityCompatHoneycomb.java:29)
at android.support.v4.app.FragmentActivity.supportInvalidateOptionsMenu(FragmentActivity.java:648)
at android.support.v7.app.ActionBarActivity.supportInvalidateOptionsMenu(ActionBarActivity.java:170)
at android.support.v4.app.Fragment.setHasOptionsMenu(Fragment.java:803)
at de.skubware.opentraining.activity.create_workout.ExerciseTypeDetailFragment.onCreate(ExerciseTypeDetailFragment.java:111)
at android.support.v4.app.Fragment.performCreate(Fragment.java:1477)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:893)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:570)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1137)
at android.app.Activity.performStart(Activity.java:4607)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1943)
... 11 more
App Version: 0.7
Android Version: 4.0.3
Add high resolution exercise images for high resolution devices(like Nexus 5)
The app should display the description of the exercise when there is no image but an description.
Currently the plan cannot be used without printing. Once exported you can't change anything anymore.
In future, the user should be able to enter his training data while using the app.
https://github.com/chaosbastler/opentraining/blob/master/app/svg/exercises/xport-width%3D1200
is actually PNG file, but the file name suggest it was actually meant as an commandline option. Could you check this?
App crashes when you try to download exercises without an internet connection
When a set is finished, the timer should signal the user when to continue with the next set. When an exercise is finished, the timer should signal the user when to continue with the next exercise.
The user should be able to set both periods and it should be possible to disable this feature.
Is there a way to change the 30sec time?
Many thanks
The gradle file says task wrapper (type: Wrapper) { gradleVersion = "1.11" }
, but plug-in requires 2.2.1.
Currently there are not many descriptions.
There should be:
A user requested to be able to set weights up to 400 kg (e.g. for leg press).
Implement cloud backup: http://developer.android.com/training/cloudsync/backupapi.html
Some ideas:
1: When you create a plan, select which exercises belong together to a super set
2: When you train a super set and finished ex. no 1, directly open the next exercise of the super set
Hallo,,
wie ich oben bereits schrieb funktioniert die Synchronisation mit wger.de nicht.
Allerdings stellt sich beim Verfolgen die Frage ob diese App noch gepflegt wird.
Es lohnt sonst nicht, dass ich mich mit ihr beschäftige.
Gruß
Volker
Version: 0.6.2
Device: Asus - Nexus 7
Description of Issue:
I came across this issue on my android tablet when attempting to sync exercises in a production release environment. Application (Version above) was downloaded from Google Play Store.
The Error Received:
Error during synchronization:
org.json.JSONException: Value /api/v1/license/1/ at license of type java.lang.String cannot be converted to int
Currently exercises cannot be translated. At least english should be supported.
App shows no menu entry to view past exercises. This seems very weird. Why am I asked to input weights and durations when my data is not going to be useful later?
Versoin 0.7.5 F-Droid.
The action 'unselect all muscles'(in activity "SelectExercisesActivity" ) causes the application to crash.
The readme tells to git submodule init
and git submodule update
, but I cannot find any references to submodules.
When starting training, I can only select the example training set. Howcan I define my own training set? E.g. how can I select the desired muscle groups to target and exercises?
When a new workout is created, the exercise list does not save the scroll state (which exercises are visible?). When returning to the exercise list the list is always reset. Same happens when orientation changes.
The user should be able to create custom exercises.
It should be possible to add self-made photos, e.g. a photo of a book that describes the exercise.
The app does not create an icon for a custom exercise
When the user creates a new workout, the selected exercises should be highlighted/marked.
Documentation should be maintained for both the End Users and the Developers. Github provides a basic wiki system which should be sufficient for now. Depending on the growth of the application, there may need to be consideration given to move on to something a bit more flexible.
The benefits of documenting in a single location (i.e. the wiki)
Considerations for documentation
Users should be able to edit their created exercises
On a smaller screen(-> no tablet) the app crashes after selecting an exercise.
This is probably a problem concerning handling fragments.
I tried to fix this bug for hours - but I could not fix it :-(
Smaller screens cannot be supported as long as this bug is not fixed.
Received 2 crash reports, here's the error message:
java.lang.IllegalArgumentException: contentIntent required: pkg=de.skubware.opentraining id=0 notification=Notification(vibrate=null,sound=null,defaults=0x0,flags=0x0)
at android.os.Parcel.readException(Parcel.java:1326)
at android.os.Parcel.readException(Parcel.java:1276)
at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:322)
at android.app.NotificationManager.notify(NotificationManager.java:111)
at android.app.NotificationManager.notify(NotificationManager.java:91)
at de.skubware.opentraining.activity.start_training.RecoveryTimerManager$1.run(RecoveryTimerManager.java:161)
at java.util.Timer$TimerImpl.run(Timer.java:284)
When selecting a workout the date of the last training should be shown(-> split training)
java.lang.RuntimeException: Unable to start activity ComponentInfo{de.skubware.opentraining/de.skubware.opentraining.activity.start_training.FExListActivity}: java.lang.IllegalArgumentException: Entry not contained.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2359)
at android.app.ActivityThread.access$700(ActivityThread.java:165)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1326)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5455)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Entry not contained.
at de.skubware.opentraining.basic.FitnessExercise.isTrainingEntryFinished(FitnessExercise.java:327)
at de.skubware.opentraining.activity.start_training.FExListFragment.setWorkout(FExListFragment.java:135)
at de.skubware.opentraining.activity.start_training.FExListActivity.onCreate(FExListActivity.java:81)
at android.app.Activity.performCreate(Activity.java:5372)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267)
... 11 more
App Version: 0.6.2
Android Version: 4.3
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.