Refinement of the print service APIs.

1. Factored out the printer discovery APIs of a print service in a
   dedicated session object that is created by the print service on
   demand. This ensures that added/removed/updated printers from
   one session do not interfere with another session.

2. Updated the app facing APIs to pass in a document info along
   with a printed file. Also exposed the print file adapter so
   apps that create a temporary file for printing can intercept
   when it is read by the system so the file can be deleted.

3. Updated the print service documentation.

Change-Id: I3473d586c26d8bda1cf7e2bdacb441aa9df982ed
diff --git a/core/java/android/printservice/PrintDocument.java b/core/java/android/printservice/PrintDocument.java
index 2a1581a..7437dc5 100644
--- a/core/java/android/printservice/PrintDocument.java
+++ b/core/java/android/printservice/PrintDocument.java
@@ -55,14 +55,14 @@
     }
 
     /**
-     * Gets the data associated with this document. It is a responsibility of the
-     * client to open a stream to the returned file descriptor and fully read the
-     * data.
+     * Gets the data associated with this document.
      * <p>
-     * <strong>Note:</strong> It is your responsibility to close the file descriptor.
+     * <strong>Note: </strong> It is a responsibility of the client to open a
+     * stream to the returned file descriptor, fully read the data, and close
+     * the file descriptor.
      * </p>
      *
-     * @return A file descriptor for reading the data or <code>null</code>.
+     * @return A file descriptor for reading the data.
      */
     public FileDescriptor getData() {
         ParcelFileDescriptor source = null;