docs: public Builder cancelAndEdit() {
          // create a temporary variable, because .cancel() will reset mScheduledAt
          long scheduledAt = mScheduledAt;
  
          JobManager.instance().cancel(getJobId());
          Builder builder = new Builder(this.mBuilder);
          mStarted = false;
  
          if (!isPeriodic()) {
              long offset = JobConfig.getClock().currentTimeMillis() - scheduledAt;
              long minValue = 1L; // 1ms
              builder.setExecutionWindow(Math.max(minValue, getStartMs() - offset), Math.max(minValue, getEndMs() - offset));
          }
  
          return builder;
      }