@Override public View getView(final int position, View convertView, ViewGroup parent) { final Context ctx = getContext(); TextView textView = new TextView(parent.getContext()); JobParameters job = getItem(position).job; List<Uri> uris = job.getTriggerReason() != null ? job.getTriggerReason().getTriggeredContentUris() : Collections.<Uri>emptyList(); textView.setText(String.format(Locale.US, CELL_FORMAT, job.getTag(), job.getService(), uris)); textView.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(ctx, JobDetailActivity.class); i.putExtra("pos", position); ctx.startActivity(i); } }); return textView; }
JobInvocation decodeIntentBundle(@NonNull Bundle bundle) { if (bundle == null) { Log.e(TAG, "Unexpected null Bundle provided"); return null; } Bundle taskExtras = bundle.getBundle(GooglePlayJobWriter.REQUEST_PARAM_EXTRAS); if (taskExtras == null) { return null; } JobInvocation.Builder builder = decode(taskExtras); List<Uri> triggeredContentUris = bundle.getParcelableArrayList(BundleProtocol.PACKED_PARAM_TRIGGERED_URIS); if (triggeredContentUris != null) { builder.setTriggerReason(new TriggerReason(triggeredContentUris)); } return builder.build(); }
@Test public void prepareJob_messenger_noExtras() { Bundle bundle = TestUtil.getBundleForContentJobExecution(); JobInvocation jobInvocation = receiver.prepareJob(callbackMock, bundle); assertEquals(jobInvocation.getTriggerReason().getTriggeredContentUris(), TestUtil.URIS); }
@Test public void prepareJob() { Intent intent = new Intent(); Bundle encode = encodeContentUriJob(getContentUriTrigger(), TestUtil.JOB_CODER); intent.putExtra(GooglePlayJobWriter.REQUEST_PARAM_EXTRAS, encode); Parcel container = Parcel.obtain(); container.writeStrongBinder(new Binder()); PendingCallback pcb = new PendingCallback(container); intent.putExtra("callback", pcb); ArrayList<Uri> uris = new ArrayList<>(); uris.add(ContactsContract.AUTHORITY_URI); uris.add(Media.EXTERNAL_CONTENT_URI); intent.putParcelableArrayListExtra(BundleProtocol.PACKED_PARAM_TRIGGERED_URIS, uris); JobInvocation jobInvocation = receiver.prepareJob(intent); assertEquals(jobInvocation.getTriggerReason().getTriggeredContentUris(), uris); }
private View createViewForJob(JobParameters job) { TableLayout tableLayout = new TableLayout(this); addRow(tableLayout, "TAG = " + job.getTag()); addRow(tableLayout, "SERVICE = " + job.getService()); if (job.getTriggerReason() != null && job.getTrigger() instanceof JobTrigger.ContentUriTrigger) { ContentUriTrigger trigger = (ContentUriTrigger) job.getTrigger(); addRow(tableLayout, "OBSERVED URIs = "); for (ObservedUri uri : trigger.getUris()) { addRow( tableLayout, "URI = " + uri.getUri() + ", flags = " + Integer.toBinaryString(uri.getFlags())); } addRow(tableLayout, "TRIGGERED URIs = "); for (Uri uri : job.getTriggerReason().getTriggeredContentUris()) { addRow(tableLayout, uri.toString()); } } ScrollView scrollView = new ScrollView(this); scrollView.addView(tableLayout); return scrollView; }
@Test public void decodeIntentBundle() { Bundle bundle = new Bundle(); ContentUriTrigger uriTrigger = getContentUriTrigger(); Bundle encode = encodeContentUriJob(uriTrigger, coder); bundle.putBundle(GooglePlayJobWriter.REQUEST_PARAM_EXTRAS, encode); ArrayList<Uri> uris = new ArrayList<>(); uris.add(ContactsContract.AUTHORITY_URI); uris.add(Media.EXTERNAL_CONTENT_URI); bundle.putParcelableArrayList(BundleProtocol.PACKED_PARAM_TRIGGERED_URIS, uris); JobInvocation jobInvocation = coder.decodeIntentBundle(bundle); assertEquals(uris, jobInvocation.getTriggerReason().getTriggeredContentUris()); assertEquals("TAG", jobInvocation.getTag()); assertEquals(uriTrigger.getUris(), ((ContentUriTrigger) jobInvocation.getTrigger()).getUris()); assertEquals(TestJobService.class.getName(), jobInvocation.getService()); assertEquals( RetryStrategy.DEFAULT_EXPONENTIAL.getPolicy(), jobInvocation.getRetryStrategy().getPolicy()); } }