-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[DPM-2282] Unable to create service net.gotev.uploadservice.UploadService: java.lang.IllegalArgumentException #12
base: main
Are you sure you want to change the base?
Conversation
@angel-rs looks good, couple q's
|
@timjbray Really good questions! cc @site-mate/mobile-team
Yes. Used this tool to get the most popular forks of the original lib & Skimmed through the commits they did on top of the original lib. Found that the appfolio's fork is the most popular among the forks & uses the
Should be as reliable as the original library. IMO should be better as it now uses the WorkManager api to schedule the uploads & it also increases the config for network timeouts
I've copied + extended the tests we performed when first released background uploading (They are in the QA notes section in the ticket):
The most reliable way would be with manual testing with as many scenarios as possible, with multiple devices, etc.
Agree. Doesn't make sense to include in
Like that idea. We can't really roll this out dynamically easily as it's a native library.
Then implement something like: // uploader.ts
import Upload1 from 'react-native-background-upload'
import Upload2 from 'react-native-background-upload2'
let Upload = Upload1 // start with the current one.
// on app boot, fetch some public bucket file that stores a boolean if we want to enable the new uploader
// this way we would have a 'kill switch' of this new uploader implementation.
fetch(...).then((res) => {
if (res.enableNewUploader) {
Upload = Upload2
}
})
export { Upload } But not 100% sure it would work, would need to put the work & test. |
@angel-rs solid answers. Having both bg uploading libraries might be more risk that it solves. Let's release as a hot fix slowly after a major DPM release:
I'm slightly concerned this library is responsible for some of our ANR's. So moving to the work manager might need to be fast tracked. Still could releasing straight after DPM 24.1, as long as we can get it out soon. cc @site-mate/mobile-team |
@timjbray Sounds like a plan. Once DPM 24.1 passes regressions - I can then finish the work here & move to UAT. But then we'll need to decide when it goes live. Perhaps once DPM 24.1 is rolled out at 100%, or when we force upgrade to 24.1? |
Objective *
Unable to create service net.gotev.uploadservice.UploadService: java.lang.IllegalArgumentException
errorDetails and Context *
Changes made:
com.vydia.RNUploader
tocom.sitemate.uploader
WorkManager
api to perform the uploads inside of a job. This should allow the uploads to be more reliable & for there to not be errors/crashes when putting the app in background/locking the device.DPM-2282
https://www.loom.com/share/cd0b3d1c030c4dda9854e599d5cfe4b2
Pre-Submission Checklist *
Tests
Risks and uncertainty (optional)
Additional Information
Feedback Ladder Reminder
Pull Request Standards