Fixed
Status Update
Comments
ra...@google.com <ra...@google.com>
ra...@google.com <ra...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 7b17505c2e3679330cf386efe69f1aa95b6ae9e9
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jan 06 14:47:42 2022
Update safeArgs to AGP 7.0.4
Updating safeArgs to depend on AGP 7.0.4.
Removing the use of reflection from the plugin since we no longer
needed.
RelNote: "Safe Args now depends on Android Gradle Plugin version 7.0.4.
This means that Navigation Safe Args will no longer be compatible with
Android Studio versions prior to 7.0."
Test: ./gradlew --rerun-tasks navigation:navigation-safe-args-gradle-plugin:test
Bug: 213086135
Bug: 207670704
Change-Id: I41c88ee06ad827c61cb1bbdc5ba58b3d56155caf
M navigation/navigation-safe-args-gradle-plugin/build.gradle
M navigation/navigation-safe-args-gradle-plugin/src/main/kotlin/androidx/navigation/safeargs/gradle/SafeArgsPlugin.kt
https://android-review.googlesource.com/1940534
Branch: androidx-main
commit 7b17505c2e3679330cf386efe69f1aa95b6ae9e9
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jan 06 14:47:42 2022
Update safeArgs to AGP 7.0.4
Updating safeArgs to depend on AGP 7.0.4.
Removing the use of reflection from the plugin since we no longer
needed.
RelNote: "Safe Args now depends on Android Gradle Plugin version 7.0.4.
This means that Navigation Safe Args will no longer be compatible with
Android Studio versions prior to 7.0."
Test: ./gradlew --rerun-tasks navigation:navigation-safe-args-gradle-plugin:test
Bug: 213086135
Bug: 207670704
Change-Id: I41c88ee06ad827c61cb1bbdc5ba58b3d56155caf
M navigation/navigation-safe-args-gradle-plugin/build.gradle
M navigation/navigation-safe-args-gradle-plugin/src/main/kotlin/androidx/navigation/safeargs/gradle/SafeArgsPlugin.kt
su...@google.com <su...@google.com>
da...@gmail.com <da...@gmail.com> #3
Do you know if I can try this out in a snapshot or has it been published under a version name? (sorry, things in gerrit still confuse me so maybe its already clear that this is fixed and shipped!)
Description
I recently switched my JobManager TriggerContentUri implementation to WorkManager and am noticing a major slowdown in the speed at which it responds to ContentUri changes vs. JobManager.
In JobManager, there is an api call to builder.setTriggerContentMaxDelay() that I use as follows to ensure a response within 3 seconds of the content change - this allows my widget UI to be responsive and show a new calendar event created in the Google Calendar app quickly.
public static void scheduleJob(Context context) {
JobScheduler js = context.getSystemService(JobScheduler.class);
JobInfo.Builder builder = new JobInfo.Builder(JOB_TAG_CALENDAR,
new ComponentName(context, CalendarContentTriggerJob.class));
builder.addTriggerContentUri(new JobInfo.TriggerContentUri(CalendarContract.CONTENT_URI,
JobInfo.TriggerContentUri.FLAG_NOTIFY_FOR_DESCENDANTS));
builder.setTriggerContentUpdateDelay(DateUtils.SECOND_IN_MILLIS);
builder.setTriggerContentMaxDelay(3 * DateUtils.SECOND_IN_MILLIS);
js.schedule(builder.build());
}
My WorkManager implementation looks as follows. There is no way of specifying a Max Delay and as a result the response to the content change is significantly slower than the JobManager implementation.
fun scheduleJob() {
// Define the constraints
val constraints = Constraints.Builder()
.addContentUriTrigger(CalendarContract.CONTENT_URI, true)
.build()
// Create the job definition
val calendarSync = OneTimeWorkRequest.Builder(CalendarContentTriggerWorker::class.java)
.setConstraints(constraints)
.addTag(JOB_TAG_CALENDAR)
.build()
// Start the job
WorkManager.getInstance().enqueueUniqueWork(JOB_TAG_CALENDAR, ExistingWorkPolicy.REPLACE,
calendarSync)
}