- // Use the file URI last path segment as the file name string.
- fileNameString = fileUri.lastPathSegment!!
- }
+ // Close the cursor.
+ contentResolverCursor.close()
// Create a saving image snackbar.
val savingImageSnackbar = Snackbar.make(nestedScrollWebView, activity.getString(R.string.processing_image, fileNameString), Snackbar.LENGTH_INDEFINITE)
// Create a saving image snackbar.
val savingImageSnackbar = Snackbar.make(nestedScrollWebView, activity.getString(R.string.processing_image, fileNameString), Snackbar.LENGTH_INDEFINITE)
@@ -69,7+59,8 @@ class SaveWebpageImageCoroutine {
// Display the saving image snackbar.
savingImageSnackbar.show()
// Display the saving image snackbar.
savingImageSnackbar.show()
- // Create a webpage bitmap. Once the Minimum API >= 26 Bitmap.Config.RBGA_F16 can be used instead of ARGB_8888. The nested scroll WebView commands must be run on the UI thread.
+ // Create a webpage bitmap. Once the Minimum API >= 33 Bitmap.Config.RGBA_1010102 can be used instead of ARGB_8888.
+ // RGBA_F16 can't be used because it produces black output for the part of page not currently visible on the screen.
val webpageBitmap = Bitmap.createBitmap(nestedScrollWebView.getHorizontalScrollRange(), nestedScrollWebView.getVerticalScrollRange(), Bitmap.Config.ARGB_8888)
// Create a canvas.
val webpageBitmap = Bitmap.createBitmap(nestedScrollWebView.getHorizontalScrollRange(), nestedScrollWebView.getVerticalScrollRange(), Bitmap.Config.ARGB_8888)
// Create a canvas.
@@ -115,8+106,7 @@ class SaveWebpageImageCoroutine {