From a4a1bb7dcac6aaa3dabdc38614318dd896d87b5e Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Mon, 21 Mar 2016 13:31:34 -0700 Subject: [PATCH] Add sample for observing only photos changes. Change-Id: I954fb466fb21d73f88b1dd1bc86eac617a628073 --- samples/ApiDemos/AndroidManifest.xml | 3 + .../res/layout/media_content_observer.xml | 20 ++- .../android/apis/content/MediaContentJob.java | 11 +- .../apis/content/MediaContentObserver.java | 45 +++++-- .../apis/content/PhotosContentJob.java | 116 ++++++++++++++++++ 5 files changed, 177 insertions(+), 18 deletions(-) create mode 100644 samples/ApiDemos/src/com/example/android/apis/content/PhotosContentJob.java diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml index d614acdcc..d97b59337 100644 --- a/samples/ApiDemos/AndroidManifest.xml +++ b/samples/ApiDemos/AndroidManifest.xml @@ -1275,6 +1275,9 @@ + + diff --git a/samples/ApiDemos/res/layout/media_content_observer.xml b/samples/ApiDemos/res/layout/media_content_observer.xml index 63292e6f2..cacb9b15d 100644 --- a/samples/ApiDemos/res/layout/media_content_observer.xml +++ b/samples/ApiDemos/res/layout/media_content_observer.xml @@ -21,13 +21,25 @@ - - + + + + diff --git a/samples/ApiDemos/src/com/example/android/apis/content/MediaContentJob.java b/samples/ApiDemos/src/com/example/android/apis/content/MediaContentJob.java index 4c788e06d..16c81a38e 100644 --- a/samples/ApiDemos/src/com/example/android/apis/content/MediaContentJob.java +++ b/samples/ApiDemos/src/com/example/android/apis/content/MediaContentJob.java @@ -25,6 +25,7 @@ import android.content.Context; import android.net.Uri; import android.os.Handler; import android.provider.MediaStore; +import android.util.Log; import android.widget.Toast; import com.example.android.apis.R; @@ -49,11 +50,12 @@ public class MediaContentJob extends JobService { public static void scheduleJob(Context context) { JobScheduler js = context.getSystemService(JobScheduler.class); - JobInfo.Builder builder = new JobInfo.Builder(R.id.schedule_job, + JobInfo.Builder builder = new JobInfo.Builder(R.id.schedule_media_job, new ComponentName(context, MediaContentJob.class)); builder.addTriggerContentUri(new JobInfo.TriggerContentUri(MEDIA_URI, JobInfo.TriggerContentUri.FLAG_NOTIFY_FOR_DESCENDANTS)); js.schedule(builder.build()); + Log.i("MediaContentJob", "JOB SCHEDULED!"); } public static boolean isScheduled(Context context) { @@ -63,7 +65,7 @@ public class MediaContentJob extends JobService { return false; } for (int i=0; i jobs = js.getAllPendingJobs(); + if (jobs == null) { + return false; + } + for (int i=0; i