Fixed
Status Update
Comments
pe...@gmail.com <pe...@gmail.com> #2
A correction. The problem happens only for Floats, for Doubles works as expected.
gg...@google.com <gg...@google.com>
gg...@google.com <gg...@google.com> #3
Can you provide the below requested information to better understand the issue:
Android build
Which Android build are you using? (e.g. KVT49L)
Device used
Which device did you use to reproduce this issue?
Steps to reproduce
Please provide sample project to reproduce the issue.
Also mention the steps to be followed for reproducing the issue with the given sample project
Expected output
What do you expect to occur?
Current output
What do you see instead?
Android build
Which Android build are you using? (e.g. KVT49L)
Device used
Which device did you use to reproduce this issue?
Steps to reproduce
Please provide sample project to reproduce the issue.
Also mention the steps to be followed for reproducing the issue with the given sample project
Expected output
What do you expect to occur?
Current output
What do you see instead?
al...@gmail.com <al...@gmail.com> #4
Can confirm, Float is missing in the if statement at line 608.
PS: can you guys please _read_ the issue before asking for templates? It's really frustrating when a developer takes the time to dig into a library, basically gives you the fix, and then a useless template is asked.
PS: can you guys please _read_ the issue before asking for templates? It's really frustrating when a developer takes the time to dig into a library, basically gives you the fix, and then a useless template is asked.
gg...@google.com <gg...@google.com> #5
We have shared this with our engineering team and will update this issue with more information as it becomes available.
Description
Version used: 1.0.0-alpha01
Devices/Android versions reproduced on: Nexus 5X
How to reproduce:
Create and enqueue a data worker with a float or a double value:
Data.Builder builder = new Data.Builder();
builder.putFloat("test", 1.0f);
.... // create a request
WorkManager workManager = WorkManager.getInstance();
workManager.enqueue(request)
Read the value in the doWork() call:
public Worker.WorkerResult doWork()
{
this.getInputData().getFloat("test", 0f);
}
java.lang.IllegalArgumentException: Key intensity has invalid type class java.lang.Float
at androidx.work.Data$Builder.putAll(Data.java:632)
at androidx.work.OverwritingInputMerger.merge(OverwritingInputMerger.java:43)
at androidx.work.impl.WorkerWrapper.run(WorkerWrapper.java:120)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
The problem seems to be that the androidx.work.Data$Builder.putAll method though is handling all data types including float/double arrays, is actually missing float and double primitive types.