/** * Specify the content URI to execute the command against. * * <p> * * <p>Must be called before trying to use {@link #execute()} or {@link #executeAsync(int, * Callback)} * * @param uri required. The content URI to target. * @return the current instance. * @since 1.0 */ @NonNull public RC onUri(@NonNull Uri uri) { Preconditions.argumentNotNull(uri, "Uri can't be null"); mUri = uri; //noinspection unchecked return (RC) this; }
protected BaseResolverCommand(@NonNull ContentResolver contentResolver) { Preconditions.argumentNotNull(contentResolver, "ContentResolver can't be null"); synchronized (BaseResolverCommand.class) { if (sLooper == null) { HandlerThread workerThread = new HandlerThread("ResolverCommandWorker"); workerThread.start(); sLooper = workerThread.getLooper(); } } //noinspection unchecked mWorkerHandler = new WorkerHandler(sLooper, this); mResolverRef = new WeakReference<>(contentResolver); }
/** * Validate the state of the command before execution. * * @throws IllegalStateException if the command can't be executed with the current state. * @since 1.0 */ @CallSuper protected void validateStatePreExecute() { Preconditions.stateNotNull(mUri, "Uri not set. Did you call onUri()?"); }