Skip to content

Instantly share code, notes, and snippets.

@DivS-15
Created July 18, 2022 10:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DivS-15/3d57892241cef35f298e179a1210dac6 to your computer and use it in GitHub Desktop.
Save DivS-15/3d57892241cef35f298e179a1210dac6 to your computer and use it in GitHub Desktop.
@HiltWorker
class BlurWorker @AssistedInject constructor(
@Assisted ctx: Context,
@Assisted params: WorkerParameters
) : CoroutineWorker(
ctx,
params
) {
override suspend fun doWork(): Result {
val applicationContext = applicationContext
val resourceUri = inputData.getString(KEY_IMAGE_URI)
makeStatusNotification("Sit tight, Image getting blurred", applicationContext)
return try {
if (TextUtils.isEmpty(resourceUri)) {
Log.e("Debug for Uri", "Invalid input uri")
throw IllegalArgumentException("Invalid input uri")
}
val picture =
BitmapFactory.decodeStream(
applicationContext.contentResolver.openInputStream(
Uri.parse(
resourceUri
)
)
)
val output = blurBitmap(picture, applicationContext)
val blurredImageUri = writeBitmapToFile(applicationContext, output)
val outputData = workDataOf(KEY_IMAGE_URI to blurredImageUri.toString())
makeStatusNotification("$blurredImageUri", applicationContext)
Result.success(outputData)
} catch (e: Throwable) {
Log.e("BlurWorker", "Error blurring the image")
Result.failure()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment