GithubHelp home page GithubHelp logo

chaosbastler / opentraining Goto Github PK

View Code? Open in Web Editor NEW
79.0 79.0 56.0 48.69 MB

Android App for planing your fitness training.

License: GNU General Public License v3.0

CSS 0.72% HTML 0.07% Java 89.79% Shell 0.61% PHP 8.81%

opentraining's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opentraining's Issues

Reporting errors

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.

Little images/icons on the plan

There should be little images representing the exercises on the exported plan.

Reason: the name alone might be not enough to remember the exercise.

NullPointerException in SelectWorkoutDialogFragment

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)

Exercise Title - Case

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").

Download exercises - statusbar

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.

NullPointerException causes crash in CreateWorkoutActivity

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

Use the plan without printing

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.

Broken conversion from SVG to PNG

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?

Add Timer

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.

Add (better) descriptions

Currently there are not many descriptions.

There should be:

  • a list of instructions: how to do the exercise (1. ... 2. ...)
  • a list of things to consider (e.g. 'do not bow your arm')
  • general information about the exercise (including information about muscles)

Support super set Training

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

Synchronisation mit wger.de

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

Synchronization Error

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

How do I see the data of my exercises?

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.

How to create own training set?

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?

Keep scroll state

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.

Custom exercises

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.

Documentation

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)

  • Accessibility to Up To Date relevant information
  • Source Controlled. Can roll back if necessary
  • Can be linked from within the application for End User Help functionality
  • Can be Used as an easy means to keep valid references to Licenses
  • Perfect for Development Environment Setup Information
  • Good For General Development Documentation (i.e. details on bug-fixes)

Considerations for documentation

  • How To Articles (For Developers and End Users)
  • Exercises
  • Settings
  • Revision History (changelog - Just needs copied from already existing source)

Crash on small screens

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.

Crash on Android 2.3.3 - 2.3.7

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)

IllegalArgumentException causes crash in FExListActivity

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.