All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.telly.groundy.AttachedTaskHandlerImpl Maven / Gradle / Ivy

/**
 * Copyright Telly, Inc. and other Groundy contributors.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to permit
 * persons to whom the Software is furnished to do so, subject to the
 * following conditions:
 *
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
 * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
 * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

package com.telly.groundy;

import android.content.Context;
import android.os.Parcel;

class AttachedTaskHandlerImpl implements TaskHandler {

  private boolean mTaskEnded = false;
  private final long mId;
  private final Class mGroundyServiceClass;
  private final CallbacksReceiver mCallbacksReceiver;
  private final Class mGroundyTaskClass;

  AttachedTaskHandlerImpl(long id, Class groundyServiceClass,
      CallbacksReceiver callbacksReceiver, Class groundyTaskClass) {
    mId = id;
    mGroundyServiceClass = groundyServiceClass;
    mCallbacksReceiver = callbacksReceiver;
    mGroundyTaskClass = groundyTaskClass;
  }

  @Override public void cancel(Context context, int reason,
      GroundyManager.SingleCancelListener cancelListener) {
    if (!mTaskEnded) {
      GroundyManager.cancelTaskById(context, mId, reason, cancelListener, mGroundyServiceClass);
    } else if (cancelListener != null) {
      cancelListener.onCancelResult(mId, GroundyService.COULD_NOT_CANCEL);
    }
  }

  @Override public void clearCallbacks() {
    if (mCallbacksReceiver != null) {
      mCallbacksReceiver.clearHandlers();
    }
  }

  @Override public boolean taskAlreadyEnded() {
    return mTaskEnded;
  }

  @Override public void appendCallbacks(Object... handlers) {
    if (mCallbacksReceiver != null) {
      mCallbacksReceiver.appendCallbackHandlers(handlers);
    }
  }

  @Override public void removeCallbacks(Object... handlers) {
    if (mCallbacksReceiver != null) {
      mCallbacksReceiver.removeCallbackHandlers(mGroundyTaskClass, handlers);
    }
  }

  @Override public long getTaskId() {
    return mId;
  }

  void onTaskEnded() {
    mTaskEnded = true;
  }

  @SuppressWarnings("UnusedDeclaration")
  public static final Creator CREATOR =
      new Creator() {
        @Override public AttachedTaskHandlerImpl createFromParcel(Parcel source) {
          //Groundy groundy = source.readParcelable(Groundy.class.getClassLoader());
          ////noinspection unchecked
          //return new AttachedTaskHandlerImpl(groundy);
          return null;
        }

        @Override public AttachedTaskHandlerImpl[] newArray(int size) {
          return new AttachedTaskHandlerImpl[size];
        }
      };

  @Override public int describeContents() {
    return 0;
  }

  @Override public void writeToParcel(Parcel dest, int flags) {
    //dest.writeParcelable(groundy, flags);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy