diff options
author | Scott Jackson <daneren2005@gmail.com> | 2012-07-07 08:29:52 -0700 |
---|---|---|
committer | Scott Jackson <daneren2005@gmail.com> | 2012-07-07 08:29:52 -0700 |
commit | 6ebae86dfbb7fa79d81e6b2485f395eeab7267ef (patch) | |
tree | bc26b39df3c6a666bcac960042f2ac8cb06ad202 /subsonic-android/src/net/sourceforge/subsonic/androidapp/util/ModalBackgroundTask.java | |
parent | 8a7bb33f73d4fab1e380adf972efc2f3a7ee8b3e (diff) | |
download | dsub-6ebae86dfbb7fa79d81e6b2485f395eeab7267ef.tar.gz dsub-6ebae86dfbb7fa79d81e6b2485f395eeab7267ef.tar.bz2 dsub-6ebae86dfbb7fa79d81e6b2485f395eeab7267ef.zip |
Changed project package to github.daneren2005.subphonic
Diffstat (limited to 'subsonic-android/src/net/sourceforge/subsonic/androidapp/util/ModalBackgroundTask.java')
-rw-r--r-- | subsonic-android/src/net/sourceforge/subsonic/androidapp/util/ModalBackgroundTask.java | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/subsonic-android/src/net/sourceforge/subsonic/androidapp/util/ModalBackgroundTask.java b/subsonic-android/src/net/sourceforge/subsonic/androidapp/util/ModalBackgroundTask.java deleted file mode 100644 index 15e2add2..00000000 --- a/subsonic-android/src/net/sourceforge/subsonic/androidapp/util/ModalBackgroundTask.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - This file is part of Subsonic. - - Subsonic is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Subsonic is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Subsonic. If not, see <http://www.gnu.org/licenses/>. - - Copyright 2009 (C) Sindre Mehus - */ -package net.sourceforge.subsonic.androidapp.util; - -import android.app.Activity; -import android.app.AlertDialog; -import android.content.DialogInterface; -import android.util.Log; -import net.sourceforge.subsonic.androidapp.R; - -/** - * @author Sindre Mehus - */ -public abstract class ModalBackgroundTask<T> extends BackgroundTask<T> { - - private static final String TAG = ModalBackgroundTask.class.getSimpleName(); - - private final AlertDialog progressDialog; - private Thread thread; - private final boolean finishActivityOnCancel; - private boolean cancelled; - - public ModalBackgroundTask(Activity activity, boolean finishActivityOnCancel) { - super(activity); - this.finishActivityOnCancel = finishActivityOnCancel; - progressDialog = createProgressDialog(); - } - - public ModalBackgroundTask(Activity activity) { - this(activity, true); - } - - private AlertDialog createProgressDialog() { - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setIcon(android.R.drawable.ic_dialog_info); - builder.setTitle(R.string.background_task_wait); - builder.setMessage(R.string.background_task_loading); - builder.setCancelable(true); - builder.setOnCancelListener(new DialogInterface.OnCancelListener() { - @Override - public void onCancel(DialogInterface dialogInterface) { - cancel(); - } - }); - builder.setPositiveButton(R.string.common_cancel, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - cancel(); - } - }); - - return builder.create(); - } - - public void execute() { - cancelled = false; - progressDialog.show(); - - thread = new Thread() { - @Override - public void run() { - try { - final T result = doInBackground(); - if (cancelled) { - progressDialog.dismiss(); - return; - } - - getHandler().post(new Runnable() { - @Override - public void run() { - progressDialog.dismiss(); - done(result); - } - }); - - } catch (final Throwable t) { - if (cancelled) { - return; - } - getHandler().post(new Runnable() { - @Override - public void run() { - progressDialog.dismiss(); - error(t); - } - }); - } - } - }; - thread.start(); - } - - protected void cancel() { - cancelled = true; - if (thread != null) { - thread.interrupt(); - } - - if (finishActivityOnCancel) { - getActivity().finish(); - } - } - - protected boolean isCancelled() { - return cancelled; - } - - protected void error(Throwable error) { - Log.w(TAG, "Got exception: " + error, error); - new ErrorDialog(getActivity(), getErrorMessage(error), finishActivityOnCancel); - } - - @Override - public void updateProgress(final String message) { - getHandler().post(new Runnable() { - @Override - public void run() { - progressDialog.setMessage(message); - } - }); - } -} |