Started testing the use of gson library.
Merge branch 'master' into rewrite-REST-access

Conflicts:
	app/.classpath
	app/res/menu/exercise_detail_menu.xml
	app/src/de/skubware/opentraining/activity/create_workout/ExerciseTypeDetailFragment.java
Continued implementing uploading exercises.

Posting an exercise with dummy data works so far.
Disabled ACRA for debug builds.
Fixed equals()/hashcode() in Translatable (bug if you use HashMap).
Improved handling errors when uploading an exercise to wger.
Bugfix: crash on tablets in settings activity when using Android 4.4 or newer.
Bugfix: trying to fix a ConcurrentModificationException.
Could not reproduce the bug, stack trace below:

java.util.ConcurrentModificationException
at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:569)
at de.skubware.opentraining.db.parser.XMLSaver.writeTrainingPlan(XMLSaver.java:136)
at de.skubware.opentraining.db.DataProvider.saveWorkout(DataProvider.java:595)
at de.skubware.opentraining.db.DataProvider$5.run(DataProvider.java:629)
Bugfix: trying to fix a IndexOutOfBoundsException of SwipeDismissListViewTouchListener. Could not reproduce the bug, stack trace below:

	java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
	at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
	at java.util.ArrayList.get(ArrayList.java:308)
	at android.widget.ArrayAdapter.getItem(ArrayAdapter.java:337)
	at de.skubware.opentraining.activity.create_exercise.SimpleDataFragment$1.onDismiss(SimpleDataFragment.java:95)
	at de.skubware.opentraining.activity.start_training.SwipeDismissListViewTouchListener$3.onAnimationEnd(SwipeDismissListViewTouchListener.java:329)
	at com.nineoldandroids.animation.ValueAnimator.endAnimation(ValueAnimator.java:1034)
	at com.nineoldandroids.animation.ValueAnimator.access$900(ValueAnimator.java:43)
	at com.nineoldandroids.animation.ValueAnimator$AnimationHandler.handleMessage(ValueAnimator.java:669)
	at android.os.Handler.dispatchMessage(Handler.java:102)
	at android.os.Looper.loop(Looper.java:136)
	at android.app.ActivityThread.main(ActivityThread.java:5017)
	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:779)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
	at dalvik.system.NativeStart.main(Native Method)
Bugfix: main activity crashed before because of "bitmap size exceeds VM budget" (only on older hardware).
Simply added the main activity background with a lower resolution.

For high-res devices nothing should change.
Bugfix of NullPointerException in DataProvider. Could not reproduce bug, stack trace below.

java.lang.NullPointerException
	at de.skubware.opentraining.db.DataProvider.saveSyncedExercises(DataProvider.java:190)
	at de.skubware.opentraining.activity.settings.sync.SyncFinishedDialog.saveExercises(SyncFinishedDialog.java:228)
	at de.skubware.opentraining.activity.settings.sync.SyncFinishedDialog.access$000(SyncFinishedDialog.java:57)
	at de.skubware.opentraining.activity.settings.sync.SyncFinishedDialog$1.onClick(SyncFinishedDialog.java:91)
	at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
	at android.os.Handler.dispatchMessage(Handler.java:102)
	at android.os.Looper.loop(Looper.java:136)
	at android.app.ActivityThread.main(ActivityThread.java:5001)
	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:785)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
	at dalvik.system.NativeStart.main(Native Method)
Bugfixe: NullPointerException in DataProvider. Could not reproduce, stack trace below.

java.lang.NullPointerException
	at de.skubware.opentraining.db.DataProvider.saveSyncedExercises(DataProvider.java:190)
	at de.skubware.opentraining.activity.settings.sync.SyncFinishedDialog.saveExercises(SyncFinishedDialog.java:228)
	at de.skubware.opentraining.activity.settings.sync.SyncFinishedDialog.access$000(SyncFinishedDialog.java:57)
	at de.skubware.opentraining.activity.settings.sync.SyncFinishedDialog$1.onClick(SyncFinishedDialog.java:91)
	at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
	at android.os.Handler.dispatchMessage(Handler.java:102)
	at android.os.Looper.loop(Looper.java:136)
	at android.app.ActivityThread.main(ActivityThread.java:5001)
	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:785)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
	at dalvik.system.NativeStart.main(Native Method)
Refactoring: moved AsyncTask and interface to own files.
Preparing release v0.7.2
Merge branch 'master' of github.com:chaosbastler/opentraining