merge in klp-release history after reset to klp-dev
diff --git a/api/current.txt b/api/current.txt
index 8e69592..054f1cd 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -22,7 +22,6 @@
     field public static final java.lang.String BIND_APPWIDGET = "android.permission.BIND_APPWIDGET";
     field public static final java.lang.String BIND_DEVICE_ADMIN = "android.permission.BIND_DEVICE_ADMIN";
     field public static final java.lang.String BIND_INPUT_METHOD = "android.permission.BIND_INPUT_METHOD";
-    field public static final java.lang.String BIND_NFC_SERVICE = "android.permission.BIND_NFC_SERVICE";
     field public static final java.lang.String BIND_NOTIFICATION_LISTENER_SERVICE = "android.permission.BIND_NOTIFICATION_LISTENER_SERVICE";
     field public static final java.lang.String BIND_PRINT_SERVICE = "android.permission.BIND_PRINT_SERVICE";
     field public static final java.lang.String BIND_REMOTEVIEWS = "android.permission.BIND_REMOTEVIEWS";
@@ -3084,18 +3083,18 @@
     method public void cancel(android.app.PendingIntent);
     method public void set(int, long, android.app.PendingIntent);
     method public void setExact(int, long, android.app.PendingIntent);
-    method public void setInexactRepeating(int, long, long, android.app.PendingIntent);
+    method public deprecated void setInexactRepeating(int, long, long, android.app.PendingIntent);
     method public void setRepeating(int, long, long, android.app.PendingIntent);
     method public void setTime(long);
     method public void setTimeZone(java.lang.String);
     method public void setWindow(int, long, long, android.app.PendingIntent);
     field public static final int ELAPSED_REALTIME = 3; // 0x3
     field public static final int ELAPSED_REALTIME_WAKEUP = 2; // 0x2
-    field public static final long INTERVAL_DAY = 86400000L; // 0x5265c00L
-    field public static final long INTERVAL_FIFTEEN_MINUTES = 900000L; // 0xdbba0L
-    field public static final long INTERVAL_HALF_DAY = 43200000L; // 0x2932e00L
-    field public static final long INTERVAL_HALF_HOUR = 1800000L; // 0x1b7740L
-    field public static final long INTERVAL_HOUR = 3600000L; // 0x36ee80L
+    field public static final deprecated long INTERVAL_DAY = 86400000L; // 0x5265c00L
+    field public static final deprecated long INTERVAL_FIFTEEN_MINUTES = 900000L; // 0xdbba0L
+    field public static final deprecated long INTERVAL_HALF_DAY = 43200000L; // 0x2932e00L
+    field public static final deprecated long INTERVAL_HALF_HOUR = 1800000L; // 0x1b7740L
+    field public static final deprecated long INTERVAL_HOUR = 3600000L; // 0x36ee80L
     field public static final int RTC = 1; // 0x1
     field public static final int RTC_WAKEUP = 0; // 0x0
   }
@@ -13228,7 +13227,6 @@
     field public static final java.util.UUID EFFECT_TYPE_BASS_BOOST;
     field public static final java.util.UUID EFFECT_TYPE_ENV_REVERB;
     field public static final java.util.UUID EFFECT_TYPE_EQUALIZER;
-    field public static final java.util.UUID EFFECT_TYPE_LOUDNESS_ENHANCER;
     field public static final java.util.UUID EFFECT_TYPE_NS;
     field public static final java.util.UUID EFFECT_TYPE_PRESET_REVERB;
     field public static final java.util.UUID EFFECT_TYPE_VIRTUALIZER;
@@ -13386,7 +13384,6 @@
   }
 
   public class LoudnessEnhancer extends android.media.audiofx.AudioEffect {
-    ctor public LoudnessEnhancer(int) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.RuntimeException, java.lang.UnsupportedOperationException;
     method public float getTargetGain() throws java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.UnsupportedOperationException;
     method public void setTargetGain(int) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.UnsupportedOperationException;
     field public static final int PARAM_TARGET_GAIN_MB = 0; // 0x0
@@ -25635,8 +25632,10 @@
     ctor public TransitionManager();
     method public static void beginDelayedTransition(android.view.ViewGroup);
     method public static void beginDelayedTransition(android.view.ViewGroup, android.transition.Transition);
+    method public static android.transition.Transition getDefaultTransition();
     method public static void go(android.transition.Scene);
     method public static void go(android.transition.Scene, android.transition.Transition);
+    method public void setDefaultTransition(android.transition.Transition);
     method public void setTransition(android.transition.Scene, android.transition.Transition);
     method public void setTransition(android.transition.Scene, android.transition.Scene, android.transition.Transition);
     method public void transitionTo(android.transition.Scene);
diff --git a/core/java/android/app/AlarmManager.java b/core/java/android/app/AlarmManager.java
index 0cf7ad0..5c3a3e5 100644
--- a/core/java/android/app/AlarmManager.java
+++ b/core/java/android/app/AlarmManager.java
@@ -48,15 +48,6 @@
  * etc) it is easier and much more efficient to use
  * {@link android.os.Handler}.</b>
  *
- * <p class="caution"><strong>Note:</strong> Beginning with API 19
- * ({@link android.os.Build.VERSION_CODES#KITKAT}) alarm delivery is inexact:
- * the OS will shift alarms in order to minimize wakeups and battery use.  There are
- * new APIs to support applications which need strict delivery guarantees; see
- * {@link #setWindow(int, long, long, PendingIntent)} and
- * {@link #setExact(int, long, PendingIntent)}.  Applications whose {@code targetSdkVersion}
- * is earlier than API 19 will continue to see the previous behavior in which all
- * alarms are delivered exactly when requested.
- *
  * <p>You do not
  * instantiate this class directly; instead, retrieve it through
  * {@link android.content.Context#getSystemService
@@ -118,19 +109,21 @@
     }
 
     /**
-     * <p>Schedule an alarm.  <b>Note: for timing operations (ticks, timeouts,
-     * etc) it is easier and much more efficient to use {@link android.os.Handler}.</b>
-     * If there is already an alarm scheduled for the same IntentSender, that previous
-     * alarm will first be canceled.
+     * TBW: discussion of fuzzy nature of alarms in KLP+.
      *
-     * <p>If the stated trigger time is in the past, the alarm will be triggered
+     * <p>Schedule an alarm.  <b>Note: for timing operations (ticks, timeouts,
+     * etc) it is easier and much more efficient to use
+     * {@link android.os.Handler}.</b>  If there is already an alarm scheduled
+     * for the same IntentSender, it will first be canceled.
+     *
+     * <p>If the time occurs in the past, the alarm will be triggered
      * immediately.  If there is already an alarm for this Intent
      * scheduled (with the equality of two intents being defined by
      * {@link Intent#filterEquals}), then it will be removed and replaced by
      * this one.
      *
      * <p>
-     * The alarm is an Intent broadcast that goes to a broadcast receiver that
+     * The alarm is an intent broadcast that goes to a broadcast receiver that
      * you registered with {@link android.content.Context#registerReceiver}
      * or through the &lt;receiver&gt; tag in an AndroidManifest.xml file.
      *
@@ -140,34 +133,9 @@
      * how many past alarm events have been accumulated into this intent
      * broadcast.  Recurring alarms that have gone undelivered because the
      * phone was asleep may have a count greater than one when delivered.  
-     *
-     * <div class="note">
-     * <p>
-     * <b>Note:</b> Beginning in API 19, the trigger time passed to this method
-     * is treated as inexact: the alarm will not be delivered before this time, but
-     * may be deferred and delivered some time later.  The OS will use
-     * this policy in order to "batch" alarms together across the entire system,
-     * minimizing the number of times the device needs to "wake up" and minimizing
-     * battery use.  In general, alarms scheduled in the near future will not
-     * be deferred as long as alarms scheduled far in the future.
-     *
-     * <p>
-     * With the new batching policy, delivery ordering guarantees are not as
-     * strong as they were previously.  If the application sets multiple alarms,
-     * it is possible that these alarms' <em>actual</em> delivery ordering may not match
-     * the order of their <em>requested</em> delivery times.  If your application has
-     * strong ordering requirements there are other APIs that you can use to get
-     * the necessary behavior; see {@link #setWindow(int, long, long, PendingIntent)}
-     * and {@link #setExact(int, long, PendingIntent)}.
-     *
-     * <p>
-     * Applications whose {@code targetSdkVersion} is before API 19 will
-     * continue to get the previous alarm behavior: all of their scheduled alarms
-     * will be treated as exact.
-     * </div>
-     *
-     * @param type One of {@link #ELAPSED_REALTIME}, {@link #ELAPSED_REALTIME_WAKEUP},
-     *        {@link #RTC}, or {@link #RTC_WAKEUP}.
+     *  
+     * @param type One of ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP, RTC or
+     *             RTC_WAKEUP.
      * @param triggerAtMillis time in milliseconds that the alarm should go
      * off, using the appropriate clock (depending on the alarm type).
      * @param operation Action to perform when the alarm goes off;
@@ -197,10 +165,10 @@
      * {@link android.os.Handler}.</b>  If there is already an alarm scheduled
      * for the same IntentSender, it will first be canceled.
      *
-     * <p>Like {@link #set}, except you can also supply a period at which
-     * the alarm will automatically repeat.  This alarm continues
-     * repeating until explicitly removed with {@link #cancel}.  If the stated
-     * trigger time is in the past, the alarm will be triggered immediately, with an
+     * <p>Like {@link #set}, except you can also
+     * supply a rate at which the alarm will repeat.  This alarm continues
+     * repeating until explicitly removed with {@link #cancel}.  If the time
+     * occurs in the past, the alarm will be triggered immediately, with an
      * alarm count depending on how far in the past the trigger time is relative
      * to the repeat interval.
      *
@@ -217,15 +185,8 @@
      * between alarms, then the approach to take is to use one-time alarms, 
      * scheduling the next one yourself when handling each alarm delivery.
      *
-     * <p class="note">
-     * <b>Note:</b> as of API 19, all repeating alarms are inexact.  If your
-     * application needs precise delivery times then it must use one-time
-     * exact alarms, rescheduling each time as described above. Legacy applications
-     * whose {@code targetSdkVersion} is earlier than API 19 will continue to have all
-     * of their alarms, including repeating alarms, treated as exact.
-     *
-     * @param type One of {@link #ELAPSED_REALTIME}, {@link #ELAPSED_REALTIME_WAKEUP},
-     *        {@link #RTC}, or {@link #RTC_WAKEUP}.
+     * @param type One of ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP}, RTC or
+     *             RTC_WAKEUP.
      * @param triggerAtMillis time in milliseconds that the alarm should first
      * go off, using the appropriate clock (depending on the alarm type).
      * @param intervalMillis interval in milliseconds between subsequent repeats
@@ -253,33 +214,18 @@
     }
 
     /**
-     * Schedule an alarm to be delivered within a given window of time.  This method
-     * is similar to {@link #set(int, long, PendingIntent)}, but allows the
-     * application to precisely control the degree to which its delivery might be
-     * adjusted by the OS. This method allows an application to take advantage of the
-     * battery optimizations that arise from delivery batching even when it has
-     * modest timeliness requirements for its alarms.
+     * Schedule an alarm to be delivered within a given window of time.
      *
-     * <p>
-     * This method can also be used to achieve strict ordering guarantees among
-     * multiple alarms by ensuring that the windows requested for each alarm do
-     * not intersect.
+     * TBW: clean up these docs
      *
-     * <p>
-     * When precise delivery is not required, applications should use the standard
-     * {@link #set(int, long, PendingIntent)} method.  This will give the OS the most
-     * flexibility to minimize wakeups and battery use.  For alarms that must be delivered
-     * at precisely-specified times with no acceptable variation, applications can use
-     * {@link #setExact(int, long, PendingIntent)}.
-     *
-     * @param type One of {@link #ELAPSED_REALTIME}, {@link #ELAPSED_REALTIME_WAKEUP},
-     *        {@link #RTC}, or {@link #RTC_WAKEUP}.
+     * @param type One of ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP, RTC or
+     *        RTC_WAKEUP.
      * @param windowStartMillis The earliest time, in milliseconds, that the alarm should
      *        be delivered, expressed in the appropriate clock's units (depending on the alarm
      *        type).
      * @param windowLengthMillis The length of the requested delivery window,
      *        in milliseconds.  The alarm will be delivered no later than this many
-     *        milliseconds after {@code windowStartMillis}.  Note that this parameter
+     *        milliseconds after the windowStartMillis time.  Note that this parameter
      *        is a <i>duration,</i> not the timestamp of the end of the window.
      * @param operation Action to perform when the alarm goes off;
      *        typically comes from {@link PendingIntent#getBroadcast
@@ -303,38 +249,8 @@
     }
 
     /**
-     * Schedule an alarm to be delivered precisely at the stated time.
-     *
-     * <p>
-     * This method is like {@link #set(int, long, PendingIntent)}, but does not permit
-     * the OS to adjust the delivery time.  The alarm will be delivered as nearly as
-     * possible to the requested trigger time.
-     *
-     * <p>
-     * <b>Note:</b> only alarms for which there is a strong demand for exact-time
-     * delivery (such as an alarm clock ringing at the requested time) should be
-     * scheduled as exact.  Applications are strongly discouraged from using exact
-     * alarms unnecessarily as they reduce the OS's ability to minimize battery use.
-     *
-     * @param type One of {@link #ELAPSED_REALTIME}, {@link #ELAPSED_REALTIME_WAKEUP},
-     *        {@link #RTC}, or {@link #RTC_WAKEUP}.
-     * @param triggerAtMillis time in milliseconds that the alarm should go
-     *        off, using the appropriate clock (depending on the alarm type).
-     * @param operation Action to perform when the alarm goes off;
-     *        typically comes from {@link PendingIntent#getBroadcast
-     *        IntentSender.getBroadcast()}.
-     *
-     * @see #set
-     * @see #setRepeating
-     * @see #setWindow
-     * @see #cancel
-     * @see android.content.Context#sendBroadcast
-     * @see android.content.Context#registerReceiver
-     * @see android.content.Intent#filterEquals
-     * @see #ELAPSED_REALTIME
-     * @see #ELAPSED_REALTIME_WAKEUP
-     * @see #RTC
-     * @see #RTC_WAKEUP
+     * TBW: new 'exact' alarm that must be delivered as nearly as possible
+     * to the precise time specified.
      */
     public void setExact(int type, long triggerAtMillis, PendingIntent operation) {
         setImpl(type, triggerAtMillis, WINDOW_EXACT, 0, operation, null);
@@ -367,82 +283,74 @@
     }
 
     /**
-     * Available inexact recurrence interval recognized by
-     * {@link #setInexactRepeating(int, long, long, PendingIntent)}
-     * when running on Android prior to API 19.
+     * @deprecated setInexactRepeating() is deprecated; as of API 19 all
+     * repeating alarms are inexact.
      */
+    @Deprecated
     public static final long INTERVAL_FIFTEEN_MINUTES = 15 * 60 * 1000;
 
     /**
-     * Available inexact recurrence interval recognized by
-     * {@link #setInexactRepeating(int, long, long, PendingIntent)}
-     * when running on Android prior to API 19.
+     * @deprecated setInexactRepeating() is deprecated; as of API 19 all
+     * repeating alarms are inexact.
      */
+    @Deprecated
     public static final long INTERVAL_HALF_HOUR = 2*INTERVAL_FIFTEEN_MINUTES;
 
     /**
-     * Available inexact recurrence interval recognized by
-     * {@link #setInexactRepeating(int, long, long, PendingIntent)}
-     * when running on Android prior to API 19.
+     * @deprecated setInexactRepeating() is deprecated; as of API 19 all
+     * repeating alarms are inexact.
      */
+    @Deprecated
     public static final long INTERVAL_HOUR = 2*INTERVAL_HALF_HOUR;
 
     /**
-     * Available inexact recurrence interval recognized by
-     * {@link #setInexactRepeating(int, long, long, PendingIntent)}
-     * when running on Android prior to API 19.
+     * @deprecated setInexactRepeating() is deprecated; as of API 19 all
+     * repeating alarms are inexact.
      */
+    @Deprecated
     public static final long INTERVAL_HALF_DAY = 12*INTERVAL_HOUR;
 
     /**
-     * Available inexact recurrence interval recognized by
-     * {@link #setInexactRepeating(int, long, long, PendingIntent)}
-     * when running on Android prior to API 19.
+     * @deprecated setInexactRepeating() is deprecated; as of API 19 all
+     * repeating alarms are inexact.
      */
+    @Deprecated
     public static final long INTERVAL_DAY = 2*INTERVAL_HALF_DAY;
 
     /**
      * Schedule a repeating alarm that has inexact trigger time requirements;
      * for example, an alarm that repeats every hour, but not necessarily at
      * the top of every hour.  These alarms are more power-efficient than
-     * the strict recurrences traditionally supplied by {@link #setRepeating}, since the
-     * system can adjust alarms' delivery times to cause them to fire simultaneously,
+     * the strict recurrences supplied by {@link #setRepeating}, since the
+     * system can adjust alarms' phase to cause them to fire simultaneously,
      * avoiding waking the device from sleep more than necessary.
-     *
+     * 
      * <p>Your alarm's first trigger will not be before the requested time,
      * but it might not occur for almost a full interval after that time.  In
      * addition, while the overall period of the repeating alarm will be as
      * requested, the time between any two successive firings of the alarm
      * may vary.  If your application demands very low jitter, use
-     * one-shot alarms with an appropriate window instead; see {@link
-     * #setWindow(int, long, long, PendingIntent)} and
-     * {@link #setExact(int, long, PendingIntent)}.
+     * {@link #setRepeating} instead.
      *
-     * <p class="note">
-     * As of API 19, all repeating alarms are inexact.  Because this method has
-     * been available since API 3, your application can safely call it and be
-     * assured that it will get similar behavior on both current and older versions
-     * of Android.
-     *
-     * @param type One of {@link #ELAPSED_REALTIME}, {@link #ELAPSED_REALTIME_WAKEUP},
-     *        {@link #RTC}, or {@link #RTC_WAKEUP}.
+     * @param type One of ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP}, RTC or
+     *             RTC_WAKEUP.
      * @param triggerAtMillis time in milliseconds that the alarm should first
      * go off, using the appropriate clock (depending on the alarm type).  This
      * is inexact: the alarm will not fire before this time, but there may be a
      * delay of almost an entire alarm interval before the first invocation of
      * the alarm.
      * @param intervalMillis interval in milliseconds between subsequent repeats
-     * of the alarm.  Prior to API 19, if this is one of INTERVAL_FIFTEEN_MINUTES,
+     * of the alarm.  If this is one of INTERVAL_FIFTEEN_MINUTES,
      * INTERVAL_HALF_HOUR, INTERVAL_HOUR, INTERVAL_HALF_DAY, or INTERVAL_DAY
      * then the alarm will be phase-aligned with other alarms to reduce the
      * number of wakeups.  Otherwise, the alarm will be set as though the
-     * application had called {@link #setRepeating}.  As of API 19, all repeating
-     * alarms will be inexact and subject to batching with other alarms regardless
-     * of their stated repeat interval.
+     * application had called {@link #setRepeating}.
      * @param operation Action to perform when the alarm goes off;
      * typically comes from {@link PendingIntent#getBroadcast
      * IntentSender.getBroadcast()}.
      *
+     * @deprecated As of API 19, all repeating alarms are inexact.
+     *
      * @see android.os.Handler
      * @see #set
      * @see #cancel
@@ -459,6 +367,7 @@
      * @see #INTERVAL_HALF_DAY
      * @see #INTERVAL_DAY
      */
+    @Deprecated
     public void setInexactRepeating(int type, long triggerAtMillis,
             long intervalMillis, PendingIntent operation) {
         setImpl(type, triggerAtMillis, WINDOW_HEURISTIC, intervalMillis, operation, null);
diff --git a/core/java/android/print/PageRange.java b/core/java/android/print/PageRange.java
index d6320f0..cdcd0c7 100644
--- a/core/java/android/print/PageRange.java
+++ b/core/java/android/print/PageRange.java
@@ -39,8 +39,9 @@
      * @param start The start page index (zero based and inclusive).
      * @param end The end page index (zero based and inclusive).
      *
-     * @throws IllegalArgumentException If start is less than zero or end
-     * is less than zero or start greater than end.
+     * @throws IllegalArgumentException If start is less than zero.
+     * @throws IllegalArgumentException If end is less than zero.
+     * @throws IllegalArgumentException If start greater than end.
      */
     public PageRange(int start, int end) {
         if (start < 0) {
diff --git a/core/java/android/print/PrintAttributes.java b/core/java/android/print/PrintAttributes.java
index 93a8c80..e1a9cb7 100644
--- a/core/java/android/print/PrintAttributes.java
+++ b/core/java/android/print/PrintAttributes.java
@@ -30,11 +30,7 @@
 import java.util.Map;
 
 /**
- * This class represents the attributes of a print job. These attributes
- * describe how the printed content should be laid out. For example, the
- * print attributes may state that the content should be laid out on a
- * letter size with 300 DPI (dots per inch) resolution, have a margin of
- * 10 mills (thousand of an inch) on all sides, and be black and white.
+ * This class represents the attributes of a print job.
  */
 public final class PrintAttributes implements Parcelable {
     /** Color mode: Monochrome color scheme, for example one color is used. */
@@ -281,7 +277,7 @@
          * Unknown media size in portrait mode.
          * <p>
          * <strong>Note: </strong>This is for specifying orientation without media
-         * size. You should not use the dimensions reported by this instance.
+         * size. You should not use the dimensions reported by this class.
          * </p>
          */
         public static final MediaSize UNKNOWN_PORTRAIT =
@@ -292,7 +288,7 @@
          * Unknown media size in landscape mode.
          * <p>
          * <strong>Note: </strong>This is for specifying orientation without media
-         * size. You should not use the dimensions reported by this instance.
+         * size. You should not use the dimensions reported by this class.
          * </p>
          */
         public static final MediaSize UNKNOWN_LANDSCAPE =
@@ -619,7 +615,9 @@
         private final int mHeightMils;
 
         /**
-         * Creates a new instance.
+         * Creates a new instance. This is the preferred constructor since
+         * it enables the media size label to be shown in a localized fashion
+         * on a locale change.
          *
          * @param id The unique media size id.
          * @param packageName The name of the creating package.
@@ -627,9 +625,10 @@
          * @param widthMils The width in mils (thousands of an inch).
          * @param heightMils The height in mils (thousands of an inch).
          *
-         * @throws IllegalArgumentException If the id is empty or the label
-         * is empty or the widthMils is less than or equal to zero or the
-         * heightMils is less than or equal to zero.
+         * @throws IllegalArgumentException If the id is empty.
+         * @throws IllegalArgumentException If the label is empty.
+         * @throws IllegalArgumentException If the widthMils is less than or equal to zero.
+         * @throws IllegalArgumentException If the heightMils is less than or equal to zero.
          *
          * @hide
          */
@@ -668,13 +667,14 @@
          *
          * @param id The unique media size id. It is unique amongst other media sizes
          *        supported by the printer.
-         * @param label The <strong>localized</strong> human readable label.
+         * @param label The <strong>internationalized</strong> human readable label.
          * @param widthMils The width in mils (thousands of an inch).
          * @param heightMils The height in mils (thousands of an inch).
          *
-         * @throws IllegalArgumentException If the id is empty or the label is empty
-         * or the widthMils is less than or equal to zero or the heightMils is less
-         * than or equal to zero.
+         * @throws IllegalArgumentException If the id is empty.
+         * @throws IllegalArgumentException If the label is empty.
+         * @throws IllegalArgumentException If the widthMils is less than or equal to zero.
+         * @throws IllegalArgumentException If the heightMils is less than or equal to zero.
          */
         public MediaSize(String id, String label, int widthMils, int heightMils) {
             if (TextUtils.isEmpty(id)) {
@@ -776,11 +776,10 @@
         }
 
         /**
-         * Returns a new media size instance in a portrait orientation,
+         * Returns a new media size in a portrait orientation
          * which is the height is the greater dimension.
          *
-         * @return New instance in landscape orientation if this one
-         * is in landscape, otherwise this instance.
+         * @return New instance in landscape orientation.
          */
         public MediaSize asPortrait() {
             return new MediaSize(mId, mLabel, mPackageName,
@@ -790,11 +789,10 @@
         }
 
         /**
-         * Returns a new media size instance in a landscape orientation,
+         * Returns a new media size in a landscape orientation
          * which is the height is the lesser dimension.
          *
-         * @return New instance in landscape orientation if this one
-         * is in portrait, otherwise this instance.
+         * @return New instance in landscape orientation.
          */
         public MediaSize asLandscape() {
             return new MediaSize(mId, mLabel, mPackageName,
@@ -883,8 +881,8 @@
      * This class specifies a supported resolution in DPI (dots per inch).
      * Resolution defines how many points with different color can be placed
      * on one inch in horizontal or vertical direction of the target media.
-     * For example, a printer with 600 DPI can produce higher quality images
-     * the one with 300 DPI resolution.
+     * For example, a printer with 600DIP can produce higher quality images
+     * the one with 300DPI resolution.
      */
     public static final class Resolution {
         private final String mId;
@@ -897,13 +895,14 @@
          *
          * @param id The unique resolution id. It is unique amongst other resolutions
          *        supported by the printer.
-         * @param label The <strong>localized</strong> human readable label.
+         * @param label The <strong>internationalized</strong> human readable label.
          * @param horizontalDpi The horizontal resolution in DPI (dots per inch).
          * @param verticalDpi The vertical resolution in DPI (dots per inch).
          *
-         * @throws IllegalArgumentException If the id is empty or the label is empty
-         * or the horizontalDpi is less than or equal to zero or the verticalDpi is
-         * less than or equal to zero.
+         * @throws IllegalArgumentException If the id is empty.
+         * @throws IllegalArgumentException If the label is empty.
+         * @throws IllegalArgumentException If the horizontalDpi is less than or equal to zero.
+         * @throws IllegalArgumentException If the verticalDpi is less than or equal to zero.
          */
         public Resolution(String id, String label, int horizontalDpi, int verticalDpi) {
             if (TextUtils.isEmpty(id)) {
diff --git a/core/java/android/print/PrintDocumentAdapter.java b/core/java/android/print/PrintDocumentAdapter.java
index 9e811a6..4113ac7 100644
--- a/core/java/android/print/PrintDocumentAdapter.java
+++ b/core/java/android/print/PrintDocumentAdapter.java
@@ -38,46 +38,15 @@
  * </li>
  * <li>
  * After every call to {@link #onLayout(PrintAttributes, PrintAttributes,
- * CancellationSignal, LayoutResultCallback, Bundle)}, you <strong>may</strong> get
- * a call to {@link #onWrite(PageRange[], ParcelFileDescriptor, CancellationSignal,
- * WriteResultCallback)} asking you to write a PDF file with the content for
- * specific pages.
+ * CancellationSignal, LayoutResultCallback, Bundle)}, you may get a call to
+ * {@link #onWrite(PageRange[], ParcelFileDescriptor, CancellationSignal, WriteResultCallback)}
+ * asking you to write a PDF file with the content for specific pages.
  * </li>
  * <li>
  * Finally, you will receive a call to {@link #onFinish()}. You can use this
  * callback to release resources allocated in {@link #onStart()}.
  * </li>
  * </ul>
- * <p>
- * The {@link #onStart()} callback is always the first call you will receive and
- * is useful for doing one time setup or resource allocation before printing. You
- * will not receive a subsequent call here.
- * </p>
- * <p>
- * The {@link #onLayout(PrintAttributes, PrintAttributes, CancellationSignal,
- * LayoutResultCallback, Bundle)} callback requires that you layout the content
- * based on the current {@link PrintAttributes}. The execution of this method is
- * not considered completed until you invoke one of the methods on the passed in
- * callback instance. Hence, you will not receive a subsequent call to any other
- * method of this class until the execution of this method is complete by invoking
- * one of the callback methods.
- * </p>
- * <p>
- * The {@link #onWrite(PageRange[], ParcelFileDescriptor, CancellationSignal,
- * WriteResultCallback)} requires that you render and write the content of some
- * pages to the provided destination. The execution of this method is not
- * considered complete until you invoke one of the methods on the passed in
- * callback instance. Hence, you will not receive a subsequent call to any other
- * method of this class until the execution of this method is complete by invoking
- * one of the callback methods. You will never receive a sequence of one or more
- * calls to this method without a previous call to {@link #onLayout(PrintAttributes,
- * PrintAttributes, CancellationSignal, LayoutResultCallback, Bundle)}.
- * </p>
- * <p>
- * The {@link #onFinish()} callback is always the last call you will receive and
- * is useful for doing one time cleanup or resource deallocation after printing.
- * You will not receive a subsequent call here.
- * </p>
  * </p>
  * <h3>Implementation</h3>
  * <p>
@@ -85,11 +54,7 @@
  * of the work on an arbitrary thread. For example, if the printed content
  * does not depend on the UI state, i.e. on what is shown on the screen, then
  * you can offload the entire work on a dedicated thread, thus making your
- * application interactive while the print work is being performed. Note that
- * while your activity is covered by the system print UI and a user cannot
- * interact with it, doing the printing work on the main application thread
- * may affect the performance of your other application components as they
- * are also executed on that thread.
+ * application interactive while the print work is being performed.
  * </p>
  * <p>
  * You can also do work on different threads, for example if you print UI
@@ -99,7 +64,7 @@
  * This will ensure that the UI does not change while you are laying out the
  * printed content. Then you can handle {@link #onWrite(PageRange[], ParcelFileDescriptor,
  * CancellationSignal, WriteResultCallback)} and {@link #onFinish()} on another
- * thread. This will ensure that the main thread is busy for a minimal amount of
+ * thread. This will ensure that the UI is frozen for the minimal amount of
  * time. Also this assumes that you will generate the printed content in
  * {@link #onLayout(PrintAttributes, PrintAttributes, CancellationSignal,
  * LayoutResultCallback, Bundle)} which is not mandatory. If you use multiple
@@ -111,12 +76,6 @@
     /**
      * Extra: mapped to a boolean value that is <code>true</code> if
      * the current layout is for a print preview, <code>false</code> otherwise.
-     * This extra is provided in the {@link Bundle} argument of the {@link
-     * #onLayout(PrintAttributes, PrintAttributes, CancellationSignal,
-     * LayoutResultCallback, Bundle)} callback.
-     *
-     * @see #onLayout(PrintAttributes, PrintAttributes, CancellationSignal,
-     * LayoutResultCallback, Bundle)
      */
     public static final String EXTRA_PRINT_PREVIEW = "EXTRA_PRINT_PREVIEW";
 
@@ -136,20 +95,17 @@
      * After you are done laying out, you <strong>must</strong> invoke: {@link
      * LayoutResultCallback#onLayoutFinished(PrintDocumentInfo, boolean)} with
      * the last argument <code>true</code> or <code>false</code> depending on
-     * whether the layout changed the content or not, respectively; or {@link
-     * LayoutResultCallback#onLayoutFailed(CharSequence)}, if an error occurred;
-     * or {@link LayoutResultCallback#onLayoutCancelled()} if layout was
-     * cancelled in a response to a cancellation request via the passed in
-     * {@link CancellationSignal}. Note that you <strong>must</strong> call one of
-     * the methods of the given callback for this method to be considered complete.
+     * whether the layout changed the content or not, respectively; and {@link
+     * LayoutResultCallback#onLayoutFailed(CharSequence)}, if an error occurred.
+     * Note that you must call one of the methods of the given callback.
      * </p>
      * <p>
      * <strong>Note:</strong> If the content is large and a layout will be
      * performed, it is a good practice to schedule the work on a dedicated
      * thread and register an observer in the provided {@link
      * CancellationSignal} upon invocation of which you should stop the
-     * layout. The cancellation callback <strong>will not</strong> be made on
-     * the main thread.
+     * layout. The cancellation callback will not be made on the main
+     * thread.
      * </p>
      *
      * @param oldAttributes The old print attributes.
@@ -172,12 +128,10 @@
      * on the main thread.
      *<p>
      * After you are done writing, you should close the file descriptor and
-     * invoke {@link WriteResultCallback#onWriteFinished(PageRange[])}, if writing
+     * invoke {@link WriteResultCallback #onWriteFinished(PageRange[]), if writing
      * completed successfully; or {@link WriteResultCallback#onWriteFailed(
-     * CharSequence)}, if an error occurred; or {@link WriteResultCallback#onWriteCancelled()},
-     * if writing was cancelled in a response to a cancellation request via the passed
-     * in {@link CancellationSignal}. Note that you <strong>must</strong> call one of
-     * the methods of the given callback for this method to be considered complete.
+     * CharSequence)}, if an error occurred. Note that you must call one of
+     * the methods of the given callback.
      * </p>
      * <p>
      * <strong>Note:</strong> If the printed content is large, it is a good
@@ -224,8 +178,7 @@
         /**
          * Notifies that all the data was written.
          *
-         * @param pages The pages that were written. Cannot be <code>null</code>
-         * or empty.
+         * @param pages The pages that were written. Cannot be null or empty.
          */
         public void onWriteFinished(PageRange[] pages) {
             /* do nothing - stub */
@@ -234,8 +187,7 @@
         /**
          * Notifies that an error occurred while writing the data.
          *
-         * @param error The <strong>localized</strong> error message.
-         * shown to the user. May be <code>null</code> if error is unknown.
+         * @param error Error message. May be null if error is unknown.
          */
         public void onWriteFailed(CharSequence error) {
             /* do nothing - stub */
@@ -266,7 +218,7 @@
         /**
          * Notifies that the layout finished and whether the content changed.
          *
-         * @param info An info object describing the document. Cannot be <code>null</code>.
+         * @param info An info object describing the document. Cannot be null.
          * @param changed Whether the layout changed.
          *
          * @see PrintDocumentInfo
@@ -278,8 +230,7 @@
         /**
          * Notifies that an error occurred while laying out the document.
          *
-         * @param error The <strong>localized</strong> error message.
-         * shown to the user. May be <code>null</code> if error is unknown.
+         * @param error Error message. May be null if error is unknown.
          */
         public void onLayoutFailed(CharSequence error) {
             /* do nothing - stub */
diff --git a/core/java/android/print/PrintDocumentInfo.java b/core/java/android/print/PrintDocumentInfo.java
index 4ebf3b3..b721ef4 100644
--- a/core/java/android/print/PrintDocumentInfo.java
+++ b/core/java/android/print/PrintDocumentInfo.java
@@ -21,56 +21,12 @@
 import android.text.TextUtils;
 
 /**
- * This class encapsulates information about a document for printing
- * purposes. This meta-data is used by the platform and print services,
- * components that interact with printers. For example, this class
- * contains the number of pages contained in the document it describes and
- * this number of pages is shown to the user allowing him/her to select
- * the range to print. Also a print service may optimize the printing
- * process based on the content type, such as document or photo.
- * <p>
- * Instances of this class are created by the printing application and
- * passed to the {@link PrintDocumentAdapter.LayoutResultCallback#onLayoutFinished(
- * PrintDocumentInfo, boolean) PrintDocumentAdapter.LayoutResultCallback.onLayoutFinished(
- * PrintDocumentInfo, boolean)} callback after successfully laying out the
- * content which is performed in {@link PrintDocumentAdapter#onLayout(PrintAttributes,
- * PrintAttributes, android.os.CancellationSignal, PrintDocumentAdapter.LayoutResultCallback,
- * android.os.Bundle) PrintDocumentAdapter.onLayout(PrintAttributes,
- * PrintAttributes, android.os.CancellationSignal,
- * PrintDocumentAdapter.LayoutResultCallback, android.os.Bundle)}.
- * </p>
- * <p>
- * An example usage looks like this:
- * <pre>
- *
- * . . .
- *
- * public void onLayout(PrintAttributes oldAttributes, PrintAttributes newAttributes,
- *         CancellationSignal cancellationSignal, LayoutResultCallback callback,
- *         Bundle metadata) {
- *
- *        // Assume the app defined a LayoutResult class which contains
- *        // the layout result data and that the content is a document.
- *        LayoutResult result = doSomeLayoutWork();
- *
- *        PrintDocumentInfo info = new PrintDocumentInfo
- *                .Builder("printed_file.pdf")
- *                .setContentType(PrintDocumentInfo.CONTENT_TYPE_DOCUMENT)
- *                .setPageCount(result.getPageCount())
- *                .build();
- *
- *       callback.onLayoutFinished(info, result.getContentChanged());
- *   }
- *
- *   . . .
- *
- * </pre>
- * </p>
+ * This class encapsulates information about a printed document.
  */
 public final class PrintDocumentInfo implements Parcelable {
 
     /**
-     * Constant for unknown page count.
+     * Constant for unknown page count..
      */
     public static final int PAGE_COUNT_UNKNOWN = -1;
 
@@ -81,23 +37,11 @@
 
     /**
      * Content type: document.
-     * <p>
-     * A print service may use normal paper to print the content instead
-     * of dedicated photo paper. Also it may use a lower quality printing
-     * process as the content is not as sensitive to print quality variation
-     * as a photo is.
-     * </p>
      */
     public static final int CONTENT_TYPE_DOCUMENT = 0;
 
     /**
      * Content type: photo.
-     * <p>
-     * A print service may use dedicated photo paper to print the content
-     * instead of normal paper. Also it may use a higher quality printing
-     * process as the content is more sensitive to print quality variation
-     * than a document.
-     * </p>
      */
     public static final int CONTENT_TYPE_PHOTO = 1;
 
@@ -138,8 +82,7 @@
     }
 
     /**
-     * Gets the document name. This name may be shown to
-     * the user.
+     * Gets the document name.
      *
      * @return The document name.
      */
@@ -270,23 +213,20 @@
     }
 
     /**
-     * Builder for creating a {@link PrintDocumentInfo}.
+     * Builder for creating an {@link PrintDocumentInfo}.
      */
     public static final class Builder {
         private final PrintDocumentInfo mPrototype;
 
         /**
          * Constructor.
-         *
          * <p>
-         * The values of the relevant properties are initialized with defaults.
-         * Please refer to the documentation of the individual setters for
-         * information about the default values.
+         * The values of the relevant properties are initialized with default
+         * values. Please refer to the documentation of the individual setters
+         * for information about the default values.
          * </p>
          *
-         * @param name The document name which may be shown to the user and
-         * is the file name if the content it describes is saved as a PDF.
-         * Cannot be empty.
+         * @param name The document name. Cannot be empty. 
          */
         public Builder(String name) {
             if (TextUtils.isEmpty(name)) {
diff --git a/core/java/android/print/PrintJob.java b/core/java/android/print/PrintJob.java
index 0abe2193..535ae43 100644
--- a/core/java/android/print/PrintJob.java
+++ b/core/java/android/print/PrintJob.java
@@ -17,13 +17,8 @@
 package android.print;
 
 /**
- * This class represents a print job from the perspective of an
- * application. It contains behavior methods for performing operations
- * on it as well as methods for querying its state. A snapshot of the
- * print job state is represented by the {@link PrintJobInfo} class.
- * The state of a print job may change over time. An application receives
- * instances of this class when creating a print job or querying for
- * its print jobs.
+ * This class represents a print job from the perspective of
+ * an application.
  */
 public final class PrintJob {
 
@@ -150,12 +145,11 @@
     /**
      * Gets whether this print job is failed. Such a print job is
      * not successfully printed due to an error. You can request
-     * a restart via {@link #restart()} or cancel via {@link #cancel()}.
+     * a restart via {@link #restart()}.
      *
      * @return Whether the print job is failed.
      *
      * @see #restart()
-     * @see #cancel()
      */
     public boolean isFailed() {
         return getInfo().getState() == PrintJobInfo.STATE_FAILED;
diff --git a/core/java/android/print/PrintJobInfo.java b/core/java/android/print/PrintJobInfo.java
index c2f190d..c6f0a68 100644
--- a/core/java/android/print/PrintJobInfo.java
+++ b/core/java/android/print/PrintJobInfo.java
@@ -22,10 +22,7 @@
 import java.util.Arrays;
 
 /**
- * This class represents the description of a print job. The print job
- * state includes properties such as its id, print attributes used for
- * generating the content, and so on. Note that the print jobs state may
- * change over time and this class represents a snapshot of this state.
+ * This class represents the description of a print job.
  */
 public final class PrintJobInfo implements Parcelable {
 
@@ -96,7 +93,7 @@
     public static final int STATE_BLOCKED = 4;
 
     /**
-     * Print job state: The print job is successfully printed.
+     * Print job state: The print job was successfully printed.
      * This is a terminal state.
      * <p>
      * Next valid states: None
@@ -106,14 +103,15 @@
 
     /**
      * Print job state: The print job was printing but printing failed.
+     * This is a terminal state.
      * <p>
-     * Next valid states: {@link #STATE_CANCELED}, {@link #STATE_STARTED}
+     * Next valid states: None
      * </p>
      */
     public static final int STATE_FAILED = 6;
 
     /**
-     * Print job state: The print job is canceled.
+     * Print job state: The print job was canceled.
      * This is a terminal state.
      * <p>
      * Next valid states: None
@@ -299,14 +297,6 @@
      * Gets the current job state.
      *
      * @return The job state.
-     *
-     * @see #STATE_CREATED
-     * @see #STATE_QUEUED
-     * @see #STATE_STARTED
-     * @see #STATE_COMPLETED
-     * @see #STATE_BLOCKED
-     * @see #STATE_FAILED
-     * @see #STATE_CANCELED
      */
     public int getState() {
         return mState;
@@ -621,7 +611,7 @@
          * Constructor.
          *
          * @param prototype Prototype to use as a starting point.
-         * Can be <code>null</code>.
+         * Can be null.
          */
         public Builder(PrintJobInfo prototype) {
             mPrototype = (prototype != null)
diff --git a/core/java/android/print/PrintManager.java b/core/java/android/print/PrintManager.java
index 9efb7de..dbd8278 100644
--- a/core/java/android/print/PrintManager.java
+++ b/core/java/android/print/PrintManager.java
@@ -53,48 +53,6 @@
  * PrintManager printManager =
  *         (PrintManager) context.getSystemService(Context.PRINT_SERVICE);
  * </pre>
- * <h3>Print mechanics</h3>
- * <p>
- * The key idea behind printing on the platform is that the content to be printed
- * should be laid out for the currently selected print options resulting in an
- * optimized output and higher user satisfaction. To achieve this goal the platform
- * declares a contract that the printing application has to follow which is defined
- * by the {@link PrintDocumentAdapter} class. At a higher level the contract is that
- * when the user selects some options from the print UI that may affect the way
- * content is laid out, for example page size, the application receives a callback
- * allowing it to layout the content to better fit these new constraints. After a
- * layout pass the system may ask the application to render one or more pages one
- * or more times. For example, an application may produce a single column list for
- * smaller page sizes and a multi-column table for larger page sizes.
- * </p>
- * <h3>Print jobs</h3>
- * <p>
- * Print jobs are started by calling the {@link #print(String, PrintDocumentAdapter,
- * PrintAttributes)} from an activity which results in bringing up the system print
- * UI. Once the print UI is up, when the user changes a selected print option that
- * affects the way content is laid out the system starts to interact with the
- * application following the mechanics described the section above.
- * </p>
- * <p>
- * Print jobs can be in {@link PrintJobInfo#STATE_CREATED created}, {@link
- * PrintJobInfo#STATE_QUEUED queued}, {@link PrintJobInfo#STATE_STARTED started},
- * {@link PrintJobInfo#STATE_BLOCKED blocked}, {@link PrintJobInfo#STATE_COMPLETED
- * completed}, {@link PrintJobInfo#STATE_FAILED failed}, and {@link
- * PrintJobInfo#STATE_CANCELED canceled} state. Print jobs are stored in dedicated
- * system spooler until they are handled which is they are cancelled or completed.
- * Active print jobs, ones that are not cancelled or completed, are considered failed
- * if the device reboots as the new boot may be after a very long time. The user may
- * choose to restart such print jobs. Once a print job is queued all relevant content
- * is stored in the system spooler and its lifecycle becomes detached from this of
- * the application that created it.
- * </p>
- * <p>
- * An applications can query the print spooler for current print jobs it created
- * but not print jobs created by other applications.
- * </p>
- *
- * @see PrintJob
- * @see PrintJobInfo
  */
 public final class PrintManager {
 
@@ -332,39 +290,11 @@
     /**
      * Creates a print job for printing a {@link PrintDocumentAdapter} with
      * default print attributes.
-     * <p>
-     * Calling this method brings the print UI allowing the user to customize
-     * the print job and returns a {@link PrintJob} object without waiting for the
-     * user to customize or confirm the print job. The returned print job instance
-     * is in a {@link PrintJobInfo#STATE_CREATED created} state.
-     * <p>
-     * This method can be called only from an {@link Activity}. The rationale is that
-     * printing from a service will create an inconsistent user experience as the print
-     * UI would appear without any context.
-     * </p>
-     * <p>
-     * Also the passed in {@link PrintDocumentAdapter} will be considered invalid if
-     * your activity is finished. The rationale is that once the activity that
-     * initiated printing is finished, the provided adapter may be in an inconsistent
-     * state as it may depend on the UI presented by the activity.
-     * </p>
-     * <p>
-     * The default print attributes are a hint to the system how the data is to
-     * be printed. For example, a photo editor may look at the photo aspect ratio
-     * to determine the default orientation and provide a hint whether the printing
-     * should be in portrait or landscape. The system will do a best effort to
-     * selected the hinted options in the print dialog, given the current printer
-     * supports them.
-     * </p>
-     *
-     * @param printJobName A name for the new print job which is shown to the user.
+     * 
+     * @param printJobName A name for the new print job.
      * @param documentAdapter An adapter that emits the document to print.
-     * @param attributes The default print job attributes or <code>null</code>.
+     * @param attributes The default print job attributes.
      * @return The created print job on success or null on failure.
-     * @throws IllegalStateException If not called from an {@link Activity}.
-     * @throws IllegalArgumentException If the print job name is empty or the
-     * document adapter is null.
-     *
      * @see PrintJob
      */
     public PrintJob print(String printJobName, PrintDocumentAdapter documentAdapter,
diff --git a/core/java/android/print/PrinterCapabilitiesInfo.java b/core/java/android/print/PrinterCapabilitiesInfo.java
index 87a6b29..df51ec1 100644
--- a/core/java/android/print/PrinterCapabilitiesInfo.java
+++ b/core/java/android/print/PrinterCapabilitiesInfo.java
@@ -24,17 +24,10 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 
 /**
- * This class represents the capabilities of a printer. Instances
- * of this class are created by a print service to report the
- * capabilities of a printer it manages. The capabilities of a
- * printer specify how it can print content. For example, what
- * are the media sizes supported by the printer, what are the
- * minimal margins of the printer based on its technical design,
- * etc.
+ * This class represents the capabilities of a printer.
  */
 public final class PrinterCapabilitiesInfo implements Parcelable {
     /**
@@ -142,9 +135,9 @@
     }
 
     /**
-     * Gets the bit mask of supported color modes.
+     * Gets the supported color modes.
      *
-     * @return The bit mask of supported color modes.
+     * @return The color modes.
      *
      * @see PrintAttributes#COLOR_MODE_COLOR
      * @see PrintAttributes#COLOR_MODE_MONOCHROME
@@ -362,10 +355,9 @@
     }
 
     /**
-     * Builder for creating of a {@link PrinterCapabilitiesInfo}. This class is
-     * responsible to enforce that all required attributes have at least one
-     * default value. In other words, this class creates only well-formed {@link
-     * PrinterCapabilitiesInfo}s.
+     * Builder for creating of a {@link PrinterInfo}. This class is responsible
+     * to enforce that all required attributes have at least one default value.
+     * In other words, this class creates only well-formed {@link PrinterInfo}s.
      * <p>
      * Look at the individual methods for a reference whether a property is
      * required or if it is optional.
@@ -377,9 +369,9 @@
         /**
          * Creates a new instance.
          *
-         * @param printerId The printer id. Cannot be <code>null</code>.
+         * @param printerId The printer id. Cannot be null.
          *
-         * @throws IllegalArgumentException If the printer id is <code>null</code>.
+         * @throws IllegalArgumentException If the printer id is null.
          */
         public Builder(PrinterId printerId) {
             if (printerId == null) {
@@ -500,7 +492,7 @@
 
         /**
          * Crates a new {@link PrinterCapabilitiesInfo} enforcing that all
-         * required properties have been specified. See individual methods
+         * required properties have need specified. See individual methods
          * in this class for reference about required attributes.
          *
          * @return A new {@link PrinterCapabilitiesInfo}.
diff --git a/core/java/android/print/PrinterInfo.java b/core/java/android/print/PrinterInfo.java
index 9fcc5fb..ad79a38 100644
--- a/core/java/android/print/PrinterInfo.java
+++ b/core/java/android/print/PrinterInfo.java
@@ -21,12 +21,7 @@
 import android.text.TextUtils;
 
 /**
- * This class represents the description of a printer. Instances of
- * this class are created by print services to report to the system
- * the printers they manage. The information of this class has two
- * major components, printer properties such as name, id, status,
- * description and printer capabilities which describe the various
- * print modes a printer supports such as media sizes, margins, etc.
+ * This class represents the description of a printer.
  */
 public final class PrinterInfo implements Parcelable {
 
@@ -101,10 +96,6 @@
      * Gets the printer status.
      *
      * @return The status.
-     *
-     * @see #STATUS_BUSY
-     * @see #STATUS_IDLE
-     * @see #STATUS_UNAVAILABLE
      */
     public int getStatus() {
         return mStatus;
@@ -225,8 +216,6 @@
          * @param printerId The printer id. Cannot be null.
          * @param name The printer name. Cannot be empty.
          * @param status The printer status. Must be a valid status.
-         * @throws IllegalArgumentException If the printer id is null, or the
-         * printer name is empty or the status is not a valid one.
          */
         public Builder(PrinterId printerId, String name, int status) {
             if (printerId == null) {
@@ -270,8 +259,7 @@
         }
 
         /**
-         * Sets the <strong>localized</strong> printer name which
-         * is shown to the user
+         * Sets the printer name.
          *
          * @param name The name.
          * @return This builder.
@@ -282,8 +270,7 @@
         }
 
         /**
-         * Sets the <strong>localized</strong> printer description
-         * which is shown to the user
+         * Sets the printer description.
          *
          * @param description The description.
          * @return This builder.
@@ -305,7 +292,7 @@
         }
 
         /**
-         * Creates a new {@link PrinterInfo}.
+         * Crates a new {@link PrinterInfo}.
          *
          * @return A new {@link PrinterInfo}.
          */
diff --git a/core/java/android/print/package.html b/core/java/android/print/package.html
deleted file mode 100644
index 579567d..0000000
--- a/core/java/android/print/package.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<HTML>
-<BODY>
-<h3>Overview</h3>
-<p>
-Provides classes for implementing print support in applications and also contains all
-base classes and abstractions involved in printing. These base classes are also used
-by other more specialized printing related packages.
-</p>
-<p>
-The entry point for interacting with the print system is the {@link android.print.PrintManager}
-which is a system service that can be obtained from the current context. The print manager
-provides APIs for printing, querying the state of print jobs, etc.
-<p/>
-<h3>Print contract</h3>
-<p>
-An application that wants to implement printing must extend
-{@link android.print.PrintDocumentAdapter} which defines the contract between the system
-and the application.The key idea behind this adapter is that the printed content may change
-based on the selected print options, such as media size, orientation, which
-requires the content to be re-laid out. The constraints according to which the content has
-to be laid out are encapsulated in the {@link android.print.PrintAttributes} class. Once
-layout is completed the application calls back to the system passing a
-{@link android.print.PrintDocumentInfo} instance which describes the generated content. After
-the content has been laid out the application may be asked to render some pages of that content
-for preview or printing. The range of pages that have to be rendered is abstracted by the
-{@link android.print.PageRange} class.
-</p>
-<h3>Print jobs</h3>
-<p>
-A print job is represented by the {@link android.print.PrintJob} class which has behavior
-methods as well as methods for querying its state. Each print job has a unique id represented
-by the {@link android.print.PrintJobId} class and exposes APIs for obtaining a {@link
-android.print.PrintJobInfo} which is a snapshot of its state. The print job state may
-change over time.
-</p>
-<h3>Printers</h3>
-<p>
-An available printer represented by the {@link android.print.PrinterInfo} class has a
-unique id which is abstracted by the {@link android.print.PrinterId} class. The {@link
-android.print.PrinterInfo} contains printer properties such as id, name, description, status,
-and printer capabilities encapsulated in the {@link android.print.PrinterCapabilitiesInfo}
-class. Printer capabilities describe how a printer can print content, for example what are
-the supported media sizes, color modes, resolutions, etc.
-<p>
-</BODY>
-</HTML>
diff --git a/core/java/android/printservice/PrintService.java b/core/java/android/printservice/PrintService.java
index eb0ac2e..0fc5f7f 100644
--- a/core/java/android/printservice/PrintService.java
+++ b/core/java/android/printservice/PrintService.java
@@ -209,14 +209,6 @@
      * PrintJob#getAdvancedStringOption(String) PrintJob.getAdvancedStringOption(String)}
      * and {@link PrintJob#getAdvancedIntOption(String) PrintJob.getAdvancedIntOption(String)}.
      * </p>
-     * <p>
-     * If the advanced print options activity offers changes to the standard print
-     * options, you can get the current {@link android.print.PrinterInfo} using the
-     * "android.intent.extra.print.EXTRA_PRINTER_INFO" extra which will allow you to
-     * present the user with UI options supported by the current printer. For example,
-     * if the current printer does not support a give media size, you should not
-     * offer it in the advanced print options dialog.
-     * </p>
      */
     public static final String EXTRA_PRINT_JOB_INFO = "android.intent.extra.print.PRINT_JOB_INFO";
 
diff --git a/core/java/android/transition/TransitionManager.java b/core/java/android/transition/TransitionManager.java
index 82789b8..404709c 100644
--- a/core/java/android/transition/TransitionManager.java
+++ b/core/java/android/transition/TransitionManager.java
@@ -81,8 +81,6 @@
      * an {@link AutoTransition} instance.
      *
      * @param transition The default transition to be used for scene changes.
-     *
-     * @hide pending later changes
      */
     public void setDefaultTransition(Transition transition) {
         sDefaultTransition = transition;
@@ -94,8 +92,6 @@
      *
      * @return The current default transition.
      * @see #setDefaultTransition(Transition)
-     *
-     * @hide pending later changes
      */
     public static Transition getDefaultTransition() {
         return sDefaultTransition;
@@ -108,7 +104,7 @@
      * transition to run.
      * @param transition The transition that will play when the given scene is
      * entered. A value of null will result in the default behavior of
-     * using the default transition instead.
+     * using the {@link #getDefaultTransition() default transition} instead.
      */
     public void setTransition(Scene scene, Transition transition) {
         mSceneTransitions.put(scene, transition);
@@ -124,7 +120,7 @@
      * be run
      * @param transition The transition that will play when the given scene is
      * entered. A value of null will result in the default behavior of
-     * using the default transition instead.
+     * using the {@link #getDefaultTransition() default transition} instead.
      */
     public void setTransition(Scene fromScene, Scene toScene, Transition transition) {
         ArrayMap<Scene, Transition> sceneTransitionMap = mScenePairTransitions.get(toScene);
@@ -142,8 +138,8 @@
      *
      * @param scene The scene being entered
      * @return The Transition to be used for the given scene change. If no
-     * Transition was specified for this scene change, the default transition
-     * will be used instead.
+     * Transition was specified for this scene change, the {@link #getDefaultTransition()
+     * default transition} will be used instead.
      */
     private Transition getTransition(Scene scene) {
         Transition transition = null;
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index bd52f49..eba6231 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -1958,7 +1958,8 @@
 
     <!-- Must be required by a {@link android.nfc.cardemulation.HostApduService}
          or {@link android.nfc.cardemulation.OffHostApduService} to ensure that only
-         the system can bind to it. -->
+         the system can bind to it.
+         @hide -->
     <permission android:name="android.permission.BIND_NFC_SERVICE"
         android:label="@string/permlab_bindNfcService"
         android:description="@string/permdesc_bindNfcService"
diff --git a/core/tests/coretests/apks/version_nosys/Android.mk b/core/tests/coretests/apks/version_nosys/Android.mk
deleted file mode 100644
index bbc8e12..0000000
--- a/core/tests/coretests/apks/version_nosys/Android.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-LOCAL_PACKAGE_NAME := version_1_nosys
-LOCAL_AAPT_FLAGS := --version-code 1 --version-name 1.0
-LOCAL_CERTIFICATE := $(LOCAL_PATH)/../../certs/unit_test
-include $(FrameworkCoreTests_BUILD_PACKAGE)
-
diff --git a/core/tests/coretests/apks/version_nosys/AndroidManifest.xml b/core/tests/coretests/apks/version_nosys/AndroidManifest.xml
deleted file mode 100644
index 46aac38..0000000
--- a/core/tests/coretests/apks/version_nosys/AndroidManifest.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.frameworks.coretests.version_test">
-
-    <!-- Do not ask for this system permission -->
-<!--    <uses-permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM" />
--->
-    <!-- Which permission it uses is not important as long as it's a normal
-         permission -->
-    <uses-permission android:name="android.permission.VIBRATE" />
-
-    <application android:hasCode="false"/>
-</manifest>
diff --git a/core/tests/coretests/apks/version_nosys/res/values/strings.xml b/core/tests/coretests/apks/version_nosys/res/values/strings.xml
deleted file mode 100644
index 3b8b3b1..0000000
--- a/core/tests/coretests/apks/version_nosys/res/values/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!-- Just need this dummy file to have something to build. -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <string name="dummy">dummy</string>
-</resources>
diff --git a/core/tests/coretests/apks/version_nosys/src/com/android/frameworks/coretests/version_test/NullProvider.java b/core/tests/coretests/apks/version_nosys/src/com/android/frameworks/coretests/version_test/NullProvider.java
deleted file mode 100644
index f5742f0..0000000
--- a/core/tests/coretests/apks/version_nosys/src/com/android/frameworks/coretests/version_test/NullProvider.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.android.frameworks.coretests.version_test;
-
-import android.content.ContentProvider;
-import android.content.ContentValues;
-import android.database.Cursor;
-import android.net.Uri;
-
-public class NullProvider extends ContentProvider {
-    @Override
-    public boolean onCreate() {
-        return true;
-    }
-
-    @Override
-    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
-            String sortOrder) {
-        return null;
-    }
-
-    @Override
-    public Uri insert(Uri uri, ContentValues values) {
-        return null;
-    }
-
-    @Override
-    public int delete(Uri uri, String selection, String[] selectionArgs) {
-        return 0;
-    }
-
-    @Override
-    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
-        return 0;
-    }
-
-    @Override
-    public String getType(Uri uri) {
-        return "text/plain";
-    }
-}
diff --git a/media/java/android/media/audiofx/AudioEffect.java b/media/java/android/media/audiofx/AudioEffect.java
index 1e1ef8c..12f7bd9 100644
--- a/media/java/android/media/audiofx/AudioEffect.java
+++ b/media/java/android/media/audiofx/AudioEffect.java
@@ -120,6 +120,8 @@
             .fromString("58b4b260-8e06-11e0-aa8e-0002a5d5c51b");
 
     /**
+     * @hide
+     * CANDIDATE FOR PUBLIC API
      * UUID for Loudness Enhancer
      */
     public static final UUID EFFECT_TYPE_LOUDNESS_ENHANCER = UUID
diff --git a/media/java/android/media/audiofx/LoudnessEnhancer.java b/media/java/android/media/audiofx/LoudnessEnhancer.java
index 7dc4175..eb2fb75 100644
--- a/media/java/android/media/audiofx/LoudnessEnhancer.java
+++ b/media/java/android/media/audiofx/LoudnessEnhancer.java
@@ -65,6 +65,7 @@
     private final Object mParamListenerLock = new Object();
 
     /**
+     * @hide
      * Class constructor.
      * @param audioSession system-wide unique audio session identifier. The LoudnessEnhancer
      * will be attached to the MediaPlayer or AudioTrack in the same audio session.