@Override
  public void call(final Subscriber<? super Bitmap> subscriber) {

    Preconditions.checkUiThread();

    final Target target =
        new TargetAdapter() {
          @Override
          public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
            if (!subscriber.isUnsubscribed()) subscriber.onNext(bitmap);
          }

          @Override
          public void onBitmapFailed(Drawable errorDrawable) {
            if (!subscriber.isUnsubscribed()) subscriber.onError(new PicassoError(errorDrawable));
          }
        };

    Picasso.with(context)
        .load(resId)
        .noFade()
        .memoryPolicy(NO_CACHE, NO_STORE)
        .config(Bitmap.Config.ARGB_8888)
        .transform(new PicassoTransformation(context, radius))
        .into(target);

    subscriber.add(
        new MainThreadSubscription() {
          @Override
          protected void onUnsubscribe() {
            Picasso.with(context).cancelRequest(target);
            PicassoBlurOnSubscribe.this.context = null;
          }
        });
  }