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/CancellableTask.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/CancellableTask.java')
-rw-r--r-- | subsonic-android/src/net/sourceforge/subsonic/androidapp/util/CancellableTask.java | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/subsonic-android/src/net/sourceforge/subsonic/androidapp/util/CancellableTask.java b/subsonic-android/src/net/sourceforge/subsonic/androidapp/util/CancellableTask.java deleted file mode 100644 index 9c8b06e1..00000000 --- a/subsonic-android/src/net/sourceforge/subsonic/androidapp/util/CancellableTask.java +++ /dev/null @@ -1,87 +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 java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; - -import android.util.Log; - -/** - * @author Sindre Mehus - * @version $Id$ - */ -public abstract class CancellableTask { - - private static final String TAG = CancellableTask.class.getSimpleName(); - - private final AtomicBoolean running = new AtomicBoolean(false); - private final AtomicBoolean cancelled = new AtomicBoolean(false); - private final AtomicReference<Thread> thread = new AtomicReference<Thread>(); - private final AtomicReference<OnCancelListener> cancelListener = new AtomicReference<OnCancelListener>(); - - public void cancel() { - Log.d(TAG, "Cancelling " + CancellableTask.this); - cancelled.set(true); - - OnCancelListener listener = cancelListener.get(); - if (listener != null) { - try { - listener.onCancel(); - } catch (Throwable x) { - Log.w(TAG, "Error when invoking OnCancelListener.", x); - } - } - } - - public boolean isCancelled() { - return cancelled.get(); - } - - public void setOnCancelListener(OnCancelListener listener) { - cancelListener.set(listener); - } - - public boolean isRunning() { - return running.get(); - } - - public abstract void execute(); - - public void start() { - thread.set(new Thread() { - @Override - public void run() { - running.set(true); - Log.d(TAG, "Starting thread for " + CancellableTask.this); - try { - execute(); - } finally { - running.set(false); - Log.d(TAG, "Stopping thread for " + CancellableTask.this); - } - } - }); - thread.get().start(); - } - - public static interface OnCancelListener { - void onCancel(); - } -} |