This decorator is provided to create a ProgressDialog.
It takes the same arguments as ProgressDialog's constructor. This decorator modifies the decorated function: You need to have an argument called "progress" which will be set to the ProgressDialog object managed by this decorator. It's best to put this progress argument at the end of your argument list. It won't change the way in which you call the function. You should use that object normally. It will be cleaned up when the function exits, even if an exception exits the function.