@Override
    protected Boolean doInBackground(LabelUpdateRequest... requests) {
      if (requests == null || requests.length != 1) {
        throw new IllegalArgumentException("Update task supports only single Label updates.");
      }

      mRequest = requests[0];

      LogUtils.log(
          this,
          Log.VERBOSE,
          "Spawning new LabelUpdateTask(%d) for label: %s",
          hashCode(),
          mRequest.getLabel());

      Label label = mRequest.getLabel();
      return label != null && label.getId() != Label.NO_ID && mClient.updateLabel(label);
    }
    @Override
    protected void onPostExecute(Boolean result) {
      LogUtils.log(
          this, Log.VERBOSE, "LabelUpdateTask(%d) complete. Result: %s", hashCode(), result);

      if (result) {
        sendCacheRefreshIntent(mRequest.getLabel().getPackageName());
      }

      super.onPostExecute(result);
    }