<NME> AsyncTaskWithProgressText.java
<BEF> ADDFILE
<MSG> Introduce AsyncTaskWithProgressText

AsyncTaskWithProgressText could be used as AsyncTask and automatically show a
progress dialog. The background process progress could be tracked using text messages.

Created new AbstractAsyncTaskWithProgress based on AsyncTaskWithProgress. Then
derivated into AsyncTaskWithProgress and AsyncTaskWithProgressText.

<DFF> @@ -0,0 +1,42 @@
+package cgeo.geocaching.utils;
+
+import org.apache.commons.lang3.StringUtils;
+
+import android.app.Activity;
+
+/**
+ * AsyncTask which automatically shows a progress dialog. The progress is tracked with text messages.
+ *
+ * Use it like the {@code AsyncTask} class, but leave away the middle template parameter. Override
+ * {@link #doInBackgroundInternal(Object[])} and related methods.
+ *
+ * <p>
+ * Use {@code publishProgress(String)} to change the text message.
+ * </p>
+ *
+ */
+public abstract class AsyncTaskWithProgressText<Params, Result> extends AbstractAsyncTaskWithProgress<Params, String, Result> {
+
+    /**
+     * Creates an AsyncTask with progress dialog.
+     *
+     */
+    public AsyncTaskWithProgressText(final Activity activity, final String progressTitle, final String progressMessage) {
+        super(activity, progressTitle, progressMessage);
+    }
+
+    /**
+     * Define the progress logic.
+     *
+     * @param status
+     *          The new progress status
+     */
+    @Override
+    protected final void onProgressUpdate(final String... status) {
+        final String progressValue = status[0];
+        if (null != activity && StringUtils.isNotBlank(progressValue)) {
+            progress.setMessage(progressValue);
+        }
+        onProgressUpdateInternal(progressValue);
+    }
+}
\ No newline at end of file

Introduce AsyncTaskWithProgressText