Prevent unnecessary free disk calculations on initialisation #409
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Goal
On initialisation of bugsnag-android,
calculateFreeDisk
was indirectly invoked, which performs IO on the main thread. This triggers unnecessary StrictMode violations, which can be observed by integrating the SDK into any app, and viewing logcat output on launch.Design
getDeviceData()
triggers these calculations. In the case of initialisation, the free disk information is not actually required, so theDeviceData
class was adapted to add accessors for only the necessary information.It's worth noting that there will still be a violation when notifying of an error, as we need to calculate the freeDisk information each time at this point.
Changeset
Added accessors for
device.id
anddevice.cpuAbi
.Tests
Enabled StrictMode in the example app and verified that stacktraces were no longer logged on initialisation, when filtering by 'calculateFreeDisk'.