History log of /frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e326592ec414dfe4c002e2840d9fc4aef0ee8747 08-Jun-2018 Rahul Ravikumar <rahulrav@google.com> Make the scheduler limit configurable.

- on API 23, use half the scheduler limit to take into account of double scheduling.

Test: Unit tests pass on both scheduler implementations.

Change-Id: Ie7ba6e056d9e8911261599ed1fbb1dddf6af99fb
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
b24ef38a0b526b524e3e6a7849f62f934a6ad58c 01-Jun-2018 Sumir Kataria <sumir@google.com> Expose current run attempt count in Worker.

Developers can use this to implement their own
max retry count behavior. (We don't want to
provide that as a WorkRequest.Builder API
because it's not clear what state work that
has exceeded its max retry count should be in.
Should it be CANCELLED? FAILED? Something
new? It's better to let the developer deal
with this themselves.)

Change-Id: Ifc22207f71a8880fb725c0cec80281bceff1af44
Fixes: 79716516
Test: Added and ran tests
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
11a7c26af63674a21787696e509e9a43d0bd7acf 01-Jun-2018 Sumir Kataria <sumir@google.com> Rename Worker#WorkerResult -> Worker#Result.

Change-Id: Icbe7b588a933412b277e8ee8902b86254d701a61
Fixes: 80217775
Test: Ran tests.
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
5d373d376edddb57cd822dd06ed54f97ef949586 31-May-2018 Sumir Kataria <sumir@google.com> Breaking change: Tell Worker if it's been cancelled.

Currently, Worker#onStopped doesn't know if it's been
cancelled or merely pre-empted by the system. b/79632247
points out some reasons why an explicit signal for
cancellation may be useful. #onStopped now gets a
boolean argument indicating if the Worker has been
cancelled and will never run again. A new method,
Worker#isCancelled, is also provided.

Change-Id: I19424fe718c95e2fd374f40b0afc8a79194c6100
Fixes: 79632247
Test: Added and ran tests.
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
dd5f33cd6b98eba208ac7c69d3d6314d3115e2d2 24-May-2018 Sumir Kataria <sumir@google.com> Breaking change: Worker.getId now returns a UUID.

This was an artifact of the old API that never got
fixed.

Also added Javadoc.

Test: Reran tests.
Change-Id: I9173ab1e58c5262f4767a426f53f388faadaf1a4
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
bf4f4f72fd27f110b95cc9867fb5dc695d2689b1 22-May-2018 Sumir Kataria <sumir@google.com> Add Worker interruption-related methods.

- Worker#isStopped indicates if the Worker is
currently considered interrupted and should stop
its processing.
- Worker#onStopped is called upon interruption
for lightweight cleanup operations.

Change-Id: Idb656029f6594fe6b9953571113c972f39e43cd6
Fixes: 79632247
Test: Added and a ran testInterruption_isMarkedOnRunningWorker
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
7b5c560e4098585f73564951621060de708e441f 22-May-2018 Sumir Kataria <sumir@google.com> Expose tags in Worker.

Plumb tags all the way through. Change the signature
of internalInit so it takes one data-holding parameter
(Extras, which now contains input Data, tags, and
RuntimeExtras). This way, we don't need to change the
internalInit signature. This means we won't need
dagger updates.

Change-Id: I4deff0dda7518d8c253b899922eee647cccef756
Fixes: 79631815
Test: Added and ran tests.
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
d874811ee5f3275e6022115a03aa6001dc1830a9 11-May-2018 Sumir Kataria <sumir@google.com> Handle WorkSpec deletion in WorkerWrapper.

Change-Id: I85a1bd4b5c75ba778851408a30c690144997570a
Fixes: 79550068
Test: Added testWorkerWrapper_handlesWorkSpecDeletion
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
3f0c0fbaf4be127488fc900d915d1c966813a4e6 08-May-2018 Sumir Kataria <sumir@google.com> Treat exceptions and errors in Worker#doWork as failures.

Change-Id: Iea7712c1916084894f89334e0ec808c2f6910406
Fixes: 79374987
Test: Added and ran tests.
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
d5121becc52eb1783594c1e88a834ef526fa6d7e 04-May-2018 Sumir Kataria <sumir@google.com> Merge "Revert "Change `CANCELLED` to `CANCELED`."" into pi-preview1-androidx-dev
5b84f5ce59c65703ce6d5cdb1133185cd93e1862 04-May-2018 Sumir Kataria <sumir@google.com> Revert "Change `CANCELLED` to `CANCELED`."

This reverts commit 8586b66cab89a0bef12fd5e5d097a6d0e31fb9e7.

Reason for revert: Matching AsyncTask.isCancelled and other
async cancellations.

Change-Id: Ib95ccf193e5b4de87e4615595282fb24b52c8fd4
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
7c6d9ea93d3677b1fbe15bca3e8ee16dbd4797ce 04-May-2018 android-build-team Robot <android-build-team-robot@google.com> Merge "Change `CANCELLED` to `CANCELED`." into pi-preview1-androidx-dev
8586b66cab89a0bef12fd5e5d097a6d0e31fb9e7 04-May-2018 Rahul Ravikumar <rahulrav@google.com> Change `CANCELLED` to `CANCELED`.

Test: Unit tests pass.
Change-Id: I908c8e2c253ccee894e7c41cb9df7e6b6eca03e3
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
1b87cb6abe29d752f0594bf5afe96fcd8f4e9ae2 04-May-2018 Rahul Ravikumar <rahulrav@google.com> Check for `null` states in WorkerWrapper#run().

- When using `beginUniqueWork()` with a `REPLACE` its possible, that a
call to `WorkSpecDao#getState()` can return `null`.

Test: Unit tests pass.

Change-Id: I427af1cbcf1a37c3ea8e699ff16b6cf614a0fb67
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
b0a0d7b4910f8733c04bc9dd98ec05da7247bdce 17-Apr-2018 Sumir Kataria <sumir@google.com> Add WorkerWrapper interruption; remove usage of Futures.

This is part 1 of removing ExecutorService and using
Executor instead. Here we add an explicit interrupt()
method to WorkerWrapper and check it when deciding if
the work finished successfully.

Also cleaned up a broken state where ALL non-cancelled
states could lead to handleResult being called.

Removed blocking cancellation in WorkManagerImplTests
due to thread contention issues because of synchronous
execution rules.

Removed Worker.isInterrupted. Need to come up with a
suitable alternative.

Removed Processor.stopWork's second argument (may
interrupt thread) because it's not relevant anymore.

Test: Added and ran tests.
Change-Id: I28de5081e8d30c3d9147b1d74008ab931963fa81
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
c0cdcc4dd56871adda73862153063f49925fbc04 17-Apr-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Use the standard Android (android.util.Log) logger." into flatfoot-background
697d6a4a3797bc71d0dd8685937a318e9934066b 17-Apr-2018 Rahul Ravikumar <rahulrav@google.com> Use the standard Android (android.util.Log) logger.

- Rename Logger to InternalLogger so we can start adding internal only
logs.
- Remove redundant logs in AlarmManager based implementation.

Test: Existing tests pass.
Change-Id: I44babc42dafbce0311f439ffaca6bf40fc058be0
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
b9701e2752b53221501cfaeb247256f1ae12baec 17-Apr-2018 Sumir Kataria <sumir@google.com> Add nullability annotations to Worker.

Set output to Data.EMPTY by default and
made it mandatory to be @NonNull to match
input.

Test: Ran tests.
Change-Id: Iacd38c755200cf018a212c2616861454418e270d
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
dcbf20db18e3e93a13e9fa75fa4b723255b87c54 16-Apr-2018 Sumir Kataria <sumir@google.com> Change WW.setRunning to check the current state.

Since we don't want to do input merging in the middle
of a transaction, we need to verify we are still
enqueued before starting the work and setting the
state to running.

Test: Updated tests.

Change-Id: I9c4dc8d8ba41098ae68bdc7de267d3bf811894a6
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
64e6bd86c786f1cb1b0c3dbc2b5307cca5c0d1f6 29-Mar-2018 Sumir Kataria <sumir@google.com> Rename Arguments to Data.

- Rename setOutput to setOutputData
- Rename BaseWork.Builder.withArguments to withInputData.

Change-Id: Idf490663c9639b9a90d0327d7f164534b0a0b2a4
Fixes: 76438322
Test: Updated and ran tests.
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
1c59c3abb41961321d514539195c3935dd45918d 22-Mar-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Keep track of the number of scheduled workers." into flatfoot-background
9f91ee8c71606f36a51177cd0b5c3005834be1ff 21-Mar-2018 Rahul Ravikumar <rahulrav@google.com> Keep track of the number of scheduled workers.

- Scheduling of workers (via the Scheduler) should honor the
Scheduler#MAX_SCHEDULER_LIMIT.
- If we exceed the MAX_SCHEDULER_LIMIT, schedule_requested_at remains at -1.
- WorkerWrapper on succeeding or failing should try and schedule workers
which were pending execution previously.
- Cancelling of work via Scheduler#cancel() should try and schedule
work that was pending to be scheduled.
- Force stops should reset the scheduling bits, and try and
reschedule everything while honoring the MAX_SCHEDULER_LIMIT.

Test: Added unit tests, and existing tests pass.
Fixes: b/73730203

Change-Id: Icc30045ea058a9f27ca07297771d9062fca8beec
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
681a8d809fe41189c9d590d33b986b98170e4963 21-Mar-2018 Sumir Kataria <sumir@google.com> Create RuntimeExtras. Put content uri info in it.

RuntimeExtras contains information that is not cacheable and
is only available when we decide to run a job. In this case,
the class contains triggered content URI information; in the
future, the triggered Network info will also be available
here.

RuntimeExtras is piped all the way to the Worker.

Change-Id: I24b73da267d16f661a138b4aa652f34bdb9cedf5
Fixes: 71909029
Test: Added and ran tests.
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
b5728f4e1a4b3f4f1fabf033b1363ca6b1cffdef 19-Mar-2018 Sumir Kataria <sumir@google.com> Remove WorkSpec getters/setters.

The war on method count continues.

Test: Updated and ran tests.
Change-Id: Idaf80b08e415beab107c3f564d02b846a987008a
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
d64a1a65bd138cfeeb9ae6a595120b85e77a57f6 07-Mar-2018 Rahul Ravikumar <rahulrav@google.com> Add support requiresStorageNotLow() and requiresBatteryNotLow() in API 23-25.
- API 23-25, JobScheduler does not support these constraints. So we delegate the work to a ConstraintTrackingWorker, which
uses WorkConstraintTracker to delegate to the real worker.
Test: Added unit tests.
Fixes: b/73786136

Change-Id: I47a21b790b0b9943963df780bdc888b7fc89d54b
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
c1ba633e4668bbf02097a76261ebcee8f3b59e06 07-Mar-2018 Sumir Kataria <sumir@google.com> Recursively fail dependents on work failure.

Work failures should trickle downstream just like cancellations.
This is also going to be needed in an upcoming CL where we will
add a minimum time to retain. Since this CL removes the need
for explicit checking of dangling blocked work when starting
WorkDatabase, we will be able to change the prune code to be:

prune if timeToRetain < now
&& (cancelled|failed|succeeded)
&& dependents.size() == 0

Test: Updated and ran tests.
Change-Id: I630898e906ac3aa3c601124ba7a816619ddbe573
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
5611e083e6e2713f155fbdea091c1fa13c479b5c 20-Feb-2018 Sumir Kataria <sumir@google.com> Schedule dependent work after endTransaction.

Previously was being set after setTransactionSuccessful. :-/

Test: found this in the integration app; need to make some
tests for this. Ran the integration test app (Sherlock Holmes)
to verify.

Change-Id: I131a6dfaf9c01282f9c906f1335d95999c77d016
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java
188b6fb0e5da3723f28c23289b5b55086210e82c 16-Feb-2018 Sumir Kataria <sumir@google.com> Rename directories and references from background -> work.

Test: Ran tests.

Change-Id: Ibde6b2f3c7ecbc2490d4225418a1e24119e4a72a
/frameworks/support/work/workmanager/src/main/java/androidx/work/impl/WorkerWrapper.java