Propagete document meta-data to custom print UI.

Change-Id: I3f122224e1b311a222969253ae0336177989a414
diff --git a/api/current.txt b/api/current.txt
index 55b14db..567b172 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -24477,6 +24477,7 @@
     method protected abstract void onPrintJobQueued(android.printservice.PrintJob);
     method protected abstract void onRequestCancelPrintJob(android.printservice.PrintJob);
     field public static final java.lang.String EXTRA_PRINTER_INFO = "android.intent.extra.print.EXTRA_PRINTER_INFO";
+    field public static final java.lang.String EXTRA_PRINT_DOCUMENT_INFO = "android.printservice.extra.PRINT_DOCUMENT_INFO";
     field public static final java.lang.String EXTRA_PRINT_JOB_INFO = "android.intent.extra.print.PRINT_JOB_INFO";
     field public static final java.lang.String SERVICE_INTERFACE = "android.printservice.PrintService";
     field public static final java.lang.String SERVICE_META_DATA = "android.printservice";
diff --git a/api/system-current.txt b/api/system-current.txt
index 67bcdf5..a4e4848 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -26415,6 +26415,7 @@
     method protected abstract void onPrintJobQueued(android.printservice.PrintJob);
     method protected abstract void onRequestCancelPrintJob(android.printservice.PrintJob);
     field public static final java.lang.String EXTRA_PRINTER_INFO = "android.intent.extra.print.EXTRA_PRINTER_INFO";
+    field public static final java.lang.String EXTRA_PRINT_DOCUMENT_INFO = "android.printservice.extra.PRINT_DOCUMENT_INFO";
     field public static final java.lang.String EXTRA_PRINT_JOB_INFO = "android.intent.extra.print.PRINT_JOB_INFO";
     field public static final java.lang.String SERVICE_INTERFACE = "android.printservice.PrintService";
     field public static final java.lang.String SERVICE_META_DATA = "android.printservice";
diff --git a/core/java/android/printservice/PrintService.java b/core/java/android/printservice/PrintService.java
index 527c8ae..6295822 100644
--- a/core/java/android/printservice/PrintService.java
+++ b/core/java/android/printservice/PrintService.java
@@ -231,6 +231,19 @@
      */
     public static final String EXTRA_PRINTER_INFO = "android.intent.extra.print.EXTRA_PRINTER_INFO";
 
+    /**
+     * If you declared an optional activity with advanced print options via the
+     * {@link android.R.attr#advancedPrintOptionsActivity advancedPrintOptionsActivity}
+     * attribute, this extra is used to pass in the meta-data for the currently printed
+     * document as a {@link android.print.PrintDocumentInfo} to your activity allowing
+     * you to inspect it.
+     *
+     * @see #EXTRA_PRINT_JOB_INFO
+     * @see #EXTRA_PRINTER_INFO
+     */
+    public static final String EXTRA_PRINT_DOCUMENT_INFO =
+            "android.printservice.extra.PRINT_DOCUMENT_INFO";
+
     private Handler mHandler;
 
     private IPrintServiceClient mClient;
diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
index 4ba04e5..3c5dae3 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
@@ -679,6 +679,8 @@
         if (resolvedActivities.get(0).activityInfo.exported) {
             intent.putExtra(PrintService.EXTRA_PRINT_JOB_INFO, mPrintJob);
             intent.putExtra(PrintService.EXTRA_PRINTER_INFO, printer);
+            intent.putExtra(PrintService.EXTRA_PRINT_JOB_INFO,
+                    mPrintedDocument.getDocumentInfo().info);
 
             // This is external activity and may not be there.
             try {