Fixed
Status Update
Comments
su...@google.com <su...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 80c8907809c42e53332740c692b032c5d3279aa8
Author: husaynhakeem <husaynhakeem@google.com>
Date: Thu Sep 03 11:57:35 2020
Fail fast and notify user if image capture destination is invalid
This CL verifies the image save destination is valid and can be written to before triggering the image capture pipeline. This prevents taking a picture if the capture result cannot be saved.
Bug: b/167697553
Test: ImageSaveLocationValidatorTest.kt
Change-Id: Ic61cda8781d028162ef98ba74d12f0ff872eb211
M camera/camera-core/src/main/java/androidx/camera/core/ImageCapture.java
A camera/camera-core/src/main/java/androidx/camera/core/ImageSaveLocationValidator.java
A camera/camera-core/src/test/java/androidx/camera/core/ImageSaveLocationValidatorTest.java
https://android-review.googlesource.com/1419729
https://goto.google.com/android-sha1/80c8907809c42e53332740c692b032c5d3279aa8
Branch: androidx-master-dev
commit 80c8907809c42e53332740c692b032c5d3279aa8
Author: husaynhakeem <husaynhakeem@google.com>
Date: Thu Sep 03 11:57:35 2020
Fail fast and notify user if image capture destination is invalid
This CL verifies the image save destination is valid and can be written to before triggering the image capture pipeline. This prevents taking a picture if the capture result cannot be saved.
Bug:
Test: ImageSaveLocationValidatorTest.kt
Change-Id: Ic61cda8781d028162ef98ba74d12f0ff872eb211
M camera/camera-core/src/main/java/androidx/camera/core/ImageCapture.java
A camera/camera-core/src/main/java/androidx/camera/core/ImageSaveLocationValidator.java
A camera/camera-core/src/test/java/androidx/camera/core/ImageSaveLocationValidatorTest.java
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-master-dev
commit ee9fa116b553b77b17badd7cac58374c99651753
Author: husaynhakeem <husaynhakeem@google.com>
Date: Fri Sep 11 00:24:35 2020
Fix bug in validating file save destination for image capture
To validate the save destination of image capture when the outputOption contains a file, try opening a write stream to the file. If it succeeds, the file is writable and the image capture save location is valid, otherwise it's invalid.
This validation previously used File.canWrite(), this works correctly for files that are actually created (e.g. using File.createTemp()). When creating a file object with `new File(...)`, the method constantly returns false. This was causing the tests in the rotation test app (uiwidgets/rotations) to fail.
Bug: 167697553
Test: ImageSaveLocationValidatorTest.java + ImageCapture rotation tests
Change-Id: I8c5656fcc5da0c477203b3b5c8bb450be148b323
M camera/camera-core/src/main/java/androidx/camera/core/ImageSaveLocationValidator.java
M camera/camera-core/src/test/java/androidx/camera/core/ImageSaveLocationValidatorTest.java
https://android-review.googlesource.com/1425243
https://goto.google.com/android-sha1/ee9fa116b553b77b17badd7cac58374c99651753
Branch: androidx-master-dev
commit ee9fa116b553b77b17badd7cac58374c99651753
Author: husaynhakeem <husaynhakeem@google.com>
Date: Fri Sep 11 00:24:35 2020
Fix bug in validating file save destination for image capture
To validate the save destination of image capture when the outputOption contains a file, try opening a write stream to the file. If it succeeds, the file is writable and the image capture save location is valid, otherwise it's invalid.
This validation previously used File.canWrite(), this works correctly for files that are actually created (e.g. using File.createTemp()). When creating a file object with `new File(...)`, the method constantly returns false. This was causing the tests in the rotation test app (uiwidgets/rotations) to fail.
Bug: 167697553
Test: ImageSaveLocationValidatorTest.java + ImageCapture rotation tests
Change-Id: I8c5656fcc5da0c477203b3b5c8bb450be148b323
M camera/camera-core/src/main/java/androidx/camera/core/ImageSaveLocationValidator.java
M camera/camera-core/src/test/java/androidx/camera/core/ImageSaveLocationValidatorTest.java
ra...@google.com <ra...@google.com>
li...@pinterest.com <li...@pinterest.com> #4
Project: platform/frameworks/support
Branch: snap-temp-L87300000695801067
commit 5b7a369fa062c0593e549e8fe2fc10a06617baa3
Author: husaynhakeem <husaynhakeem@google.com>
Date: Fri Sep 11 00:24:35 2020
Fix bug in validating file save destination for image capture
To validate the save destination of image capture when the outputOption contains a file, try opening a write stream to the file. If it succeeds, the file is writable and the image capture save location is valid, otherwise it's invalid.
This validation previously used File.canWrite(), this works correctly for files that are actually created (e.g. using File.createTemp()). When creating a file object with `new File(...)`, the method constantly returns false. This was causing the tests in the rotation test app (uiwidgets/rotations) to fail.
Bug: 167697553
Test: ImageSaveLocationValidatorTest.java + ImageCapture rotation tests
Change-Id: I8c5656fcc5da0c477203b3b5c8bb450be148b323
(cherry picked from commit ee9fa116b553b77b17badd7cac58374c99651753)
M camera/camera-core/src/main/java/androidx/camera/core/ImageSaveLocationValidator.java
M camera/camera-core/src/test/java/androidx/camera/core/ImageSaveLocationValidatorTest.java
https://android-review.googlesource.com/1432092
Branch: snap-temp-L87300000695801067
commit 5b7a369fa062c0593e549e8fe2fc10a06617baa3
Author: husaynhakeem <husaynhakeem@google.com>
Date: Fri Sep 11 00:24:35 2020
Fix bug in validating file save destination for image capture
To validate the save destination of image capture when the outputOption contains a file, try opening a write stream to the file. If it succeeds, the file is writable and the image capture save location is valid, otherwise it's invalid.
This validation previously used File.canWrite(), this works correctly for files that are actually created (e.g. using File.createTemp()). When creating a file object with `new File(...)`, the method constantly returns false. This was causing the tests in the rotation test app (uiwidgets/rotations) to fail.
Bug: 167697553
Test: ImageSaveLocationValidatorTest.java + ImageCapture rotation tests
Change-Id: I8c5656fcc5da0c477203b3b5c8bb450be148b323
(cherry picked from commit ee9fa116b553b77b17badd7cac58374c99651753)
M camera/camera-core/src/main/java/androidx/camera/core/ImageSaveLocationValidator.java
M camera/camera-core/src/test/java/androidx/camera/core/ImageSaveLocationValidatorTest.java
su...@google.com <su...@google.com> #5
Project: platform/frameworks/support
Branch: snap-temp-L72800000695805814
commit 240338b47aaa714601dd53aa83f4430d3b950f42
Author: husaynhakeem <husaynhakeem@google.com>
Date: Fri Sep 11 00:24:35 2020
Fix bug in validating file save destination for image capture
To validate the save destination of image capture when the outputOption contains a file, try opening a write stream to the file. If it succeeds, the file is writable and the image capture save location is valid, otherwise it's invalid.
This validation previously used File.canWrite(), this works correctly for files that are actually created (e.g. using File.createTemp()). When creating a file object with `new File(...)`, the method constantly returns false. This was causing the tests in the rotation test app (uiwidgets/rotations) to fail.
Bug: 167697553
Test: ImageSaveLocationValidatorTest.java + ImageCapture rotation tests
Change-Id: I8c5656fcc5da0c477203b3b5c8bb450be148b323
(cherry picked from commit ee9fa116b553b77b17badd7cac58374c99651753)
M camera/camera-core/src/main/java/androidx/camera/core/ImageSaveLocationValidator.java
M camera/camera-core/src/test/java/androidx/camera/core/ImageSaveLocationValidatorTest.java
https://android-review.googlesource.com/1432094
Branch: snap-temp-L72800000695805814
commit 240338b47aaa714601dd53aa83f4430d3b950f42
Author: husaynhakeem <husaynhakeem@google.com>
Date: Fri Sep 11 00:24:35 2020
Fix bug in validating file save destination for image capture
To validate the save destination of image capture when the outputOption contains a file, try opening a write stream to the file. If it succeeds, the file is writable and the image capture save location is valid, otherwise it's invalid.
This validation previously used File.canWrite(), this works correctly for files that are actually created (e.g. using File.createTemp()). When creating a file object with `new File(...)`, the method constantly returns false. This was causing the tests in the rotation test app (uiwidgets/rotations) to fail.
Bug: 167697553
Test: ImageSaveLocationValidatorTest.java + ImageCapture rotation tests
Change-Id: I8c5656fcc5da0c477203b3b5c8bb450be148b323
(cherry picked from commit ee9fa116b553b77b17badd7cac58374c99651753)
M camera/camera-core/src/main/java/androidx/camera/core/ImageSaveLocationValidator.java
M camera/camera-core/src/test/java/androidx/camera/core/ImageSaveLocationValidatorTest.java
li...@pinterest.com <li...@pinterest.com> #6
Project: platform/frameworks/support
Branch: snap-temp-L56300000695806117
commit 34655560b066fc448da6d1360a39b60c382a3894
Author: husaynhakeem <husaynhakeem@google.com>
Date: Fri Sep 11 00:24:35 2020
Fix bug in validating file save destination for image capture
To validate the save destination of image capture when the outputOption contains a file, try opening a write stream to the file. If it succeeds, the file is writable and the image capture save location is valid, otherwise it's invalid.
This validation previously used File.canWrite(), this works correctly for files that are actually created (e.g. using File.createTemp()). When creating a file object with `new File(...)`, the method constantly returns false. This was causing the tests in the rotation test app (uiwidgets/rotations) to fail.
Bug: 167697553
Test: ImageSaveLocationValidatorTest.java + ImageCapture rotation tests
Change-Id: I8c5656fcc5da0c477203b3b5c8bb450be148b323
(cherry picked from commit ee9fa116b553b77b17badd7cac58374c99651753)
M camera/camera-core/src/main/java/androidx/camera/core/ImageSaveLocationValidator.java
M camera/camera-core/src/test/java/androidx/camera/core/ImageSaveLocationValidatorTest.java
https://android-review.googlesource.com/1432097
Branch: snap-temp-L56300000695806117
commit 34655560b066fc448da6d1360a39b60c382a3894
Author: husaynhakeem <husaynhakeem@google.com>
Date: Fri Sep 11 00:24:35 2020
Fix bug in validating file save destination for image capture
To validate the save destination of image capture when the outputOption contains a file, try opening a write stream to the file. If it succeeds, the file is writable and the image capture save location is valid, otherwise it's invalid.
This validation previously used File.canWrite(), this works correctly for files that are actually created (e.g. using File.createTemp()). When creating a file object with `new File(...)`, the method constantly returns false. This was causing the tests in the rotation test app (uiwidgets/rotations) to fail.
Bug: 167697553
Test: ImageSaveLocationValidatorTest.java + ImageCapture rotation tests
Change-Id: I8c5656fcc5da0c477203b3b5c8bb450be148b323
(cherry picked from commit ee9fa116b553b77b17badd7cac58374c99651753)
M camera/camera-core/src/main/java/androidx/camera/core/ImageSaveLocationValidator.java
M camera/camera-core/src/test/java/androidx/camera/core/ImageSaveLocationValidatorTest.java
cr...@gmail.com <cr...@gmail.com> #7
The following changes were cherrypicked through
Release Track:
Changes: aosp/1425243
Description
Version used: 1.0.0-beta05
Devices/Android versions reproduced on: all devices
The context of this ticket is to support initializing WorkManager a bit later after the application cold start in order to keep cold start fast. I am aware that:
1. WorkManager has this auto-initialization support through the WorkManagerInitializer provider.
2. It can be disabled and replaced by a custom provider to call WorkManager.initialize() directly or call it from Application.onCreate().
3. A number of services and receivers are registered by WorkManager and they rely on the early initialization of the WorkManager.
During testing, I realized the WorkManager.initialize() spends non-trivial time, it could be 50ms on some low end devices. So I want to avoid that delay during the cold start and have an option to initialize WorkManager a bit later. The request is to add code into the receivers and services to initialize WorkManager by themselves if WorkManager has not been initialized. This will help to cover the time from the application startup to the time that the application initialize the WorkManager manually.
Currently, a crash will happen in those receivers and services if they are triggered before the WorkManager is initialized in the application.
03-04 22:35:15.552 5784-5784/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.pinterest, PID: 5784
java.lang.RuntimeException: Unable to create service androidx.work.impl.background.systemjob.SystemJobService: java.lang.IllegalStateException: WorkManager needs to be initialized via a ContentProvider#onCreate() or an Application#onCreate().
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3172)
at android.app.ActivityThread.-wrap5(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1550)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.IllegalStateException: WorkManager needs to be initialized via a ContentProvider#onCreate() or an Application#onCreate().
at androidx.work.impl.background.systemjob.SystemJobService.onCreate(SystemJobService.java:68)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3162)
at android.app.ActivityThread.-wrap5(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1550)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)