Skip to content
This repository was archived by the owner on Jan 10, 2025. It is now read-only.

Android s #1065

Open
wants to merge 2 commits into
base: codingjeremy-patch-1
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion WorkManagerSample/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ android {
useSupportLibrary true
}
// Switching to Renderscript support provided by framework.
minSdkVersion 18
minSdkVersion build_versions.min_sdk
targetSdkVersion build_versions.target_sdk
versionCode 1
versionName "1.0"
Expand Down
13 changes: 9 additions & 4 deletions WorkManagerSample/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,18 @@
android:theme="@style/AppTheme">

<provider
android:name="androidx.work.impl.WorkManagerInitializer"
android:authorities="${applicationId}.workmanager-init"
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:directBootAware="false"
android:exported="false"
android:multiprocess="true"
tools:node="remove"
tools:targetApi="n" />
tools:targetApi="n"
tools:node="merge">
<meta-data
android:name="androidx.work.WorkManagerInitializer"
android:value="androidx.startup"
tools:node="remove" />
</provider>

<activity android:name=".SelectImageActivity">
<intent-filter>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class FilterActivity : AppCompatActivity() {
setContentView(root)
bindViews(this)
// Check to see if we have output.
viewModel.workInfo.observe(this@FilterActivity) { info ->
viewModel.workInfo?.observe(this@FilterActivity) { info ->
onStateChange(info, this)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,11 @@ class FilterViewModel(application: Application) : ViewModel() {
private val workManager = WorkManager.getInstance(application)

internal val workInfo =
workManager.getWorkInfosByTagLiveData(Constants.TAG_OUTPUT).map { it[0] }
workManager.getWorkInfosByTagLiveData(Constants.TAG_OUTPUT).takeIf {
it.value != null
}?.map {
it[0]
}

internal fun apply(imageOperations: ImageOperations) {
imageOperations.continuation.enqueue()
Expand Down
2 changes: 1 addition & 1 deletion WorkManagerSample/lib/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ android {
useSupportLibrary true
}
// Switching to Renderscript support provided by framework.
minSdkVersion 18
minSdkVersion build_versions.min_sdk
targetSdkVersion build_versions.target_sdk
versionCode 1
versionName "1.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,7 @@ package com.example.background
import android.annotation.SuppressLint
import android.content.Context
import android.net.Uri
import androidx.work.Data
import androidx.work.ExistingWorkPolicy
import androidx.work.ListenableWorker
import androidx.work.OneTimeWorkRequest
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkContinuation
import androidx.work.WorkManager
import androidx.work.workDataOf
import androidx.work.*
import com.example.background.workers.CleanupWorker
import com.example.background.workers.SaveImageToGalleryWorker
import com.example.background.workers.UploadWorker
Expand Down Expand Up @@ -90,6 +83,7 @@ class ImageOperations(
) =
OneTimeWorkRequestBuilder<T>().apply {
setInputData(inputData)
setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
if (!tag.isNullOrEmpty()) {
addTag(tag)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,7 @@ import android.util.Log
import androidx.annotation.StringRes
import androidx.annotation.VisibleForTesting
import androidx.core.app.NotificationCompat.Builder
import androidx.work.CoroutineWorker
import androidx.work.ForegroundInfo
import androidx.work.WorkManager
import androidx.work.WorkerParameters
import androidx.work.workDataOf
import androidx.work.*
import com.example.background.Constants
import com.example.background.library.R
import java.io.File
Expand All @@ -55,7 +51,6 @@ abstract class BaseFilterWorker(context: Context, parameters: WorkerParameters)
val resourceUri = inputData.getString(Constants.KEY_IMAGE_URI) ?:
throw IllegalArgumentException("Invalid input uri")
return try {
setForeground(createForegroundInfo())
val inputStream = inputStreamFor(applicationContext, resourceUri)
val bitmap = BitmapFactory.decodeStream(inputStream)
val output = applyFilter(bitmap)
Expand Down Expand Up @@ -109,7 +104,7 @@ abstract class BaseFilterWorker(context: Context, parameters: WorkerParameters)
/**
* Create ForegroundInfo required to run a Worker in a foreground service.
*/
private fun createForegroundInfo(): ForegroundInfo {
override suspend fun getForegroundInfo(): ForegroundInfo {
// For a real world app you might want to use a different id for each Notification.
val notificationId = 1
return ForegroundInfo(notificationId, createNotification())
Expand Down
6 changes: 3 additions & 3 deletions WorkManagerSample/versions.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,12 @@ versions.rxjava2 = "2.1.3"
versions.timber = "4.7.1"
versions.transition = "1.3.0"
versions.truth = "1.0.1"
versions.work = "2.4.0"
versions.work = "2.7.0-beta01"
ext.versions = versions

def build_versions = [:]
build_versions.min_sdk = 14
build_versions.compile_sdk = 29
build_versions.min_sdk = 21
build_versions.compile_sdk = 'android-S'
build_versions.target_sdk = 29
build_versions.build_tools = "29.0.3"
ext.build_versions = build_versions
Expand Down