Merge "Tag classes with Maven artifact, migrate to per-project API versioning" into oc-mr1-dev
diff --git a/compat/api20/android/support/v4/app/NotificationCompatApi20.java b/compat/api20/android/support/v4/app/NotificationCompatApi20.java
index 05883fa..7db98fd 100644
--- a/compat/api20/android/support/v4/app/NotificationCompatApi20.java
+++ b/compat/api20/android/support/v4/app/NotificationCompatApi20.java
@@ -39,8 +39,6 @@
     public static class Builder extends NotificationCompatKitKat.Builder {
         protected int mGroupAlertBehavior;
 
-        private Bundle mExtras;
-
         public Builder(Context context, Notification n,
                 CharSequence contentTitle, CharSequence contentText, CharSequence contentInfo,
                 RemoteViews tickerView, int number,
@@ -59,14 +57,6 @@
                 .setGroup(groupKey)
                 .setGroupSummary(groupSummary)
                 .setSortKey(sortKey);
-            mExtras = new Bundle();
-            if (extras != null) {
-                mExtras.putAll(extras);
-            }
-            if (people != null && !people.isEmpty()) {
-                mExtras.putStringArray(Notification.EXTRA_PEOPLE,
-                        people.toArray(new String[people.size()]));
-            }
 
             mGroupAlertBehavior = groupAlertBehavior;
         }
diff --git a/compat/api21/android/support/v4/app/NotificationCompatApi21.java b/compat/api21/android/support/v4/app/NotificationCompatApi21.java
index fcfde6f..944cb87 100644
--- a/compat/api21/android/support/v4/app/NotificationCompatApi21.java
+++ b/compat/api21/android/support/v4/app/NotificationCompatApi21.java
@@ -34,7 +34,6 @@
 @RequiresApi(21)
 class NotificationCompatApi21 {
     public static class Builder extends NotificationCompatApi20.Builder {
-        private Bundle mExtras;
         private RemoteViews mHeadsUpContentView;
 
         public Builder(Context context, Notification n,
@@ -56,10 +55,7 @@
                     .setColor(color)
                     .setVisibility(visibility)
                     .setPublicVersion(publicVersion);
-            mExtras = new Bundle();
-            if (extras != null) {
-                mExtras.putAll(extras);
-            }
+
             for (String person: people) {
                 mBuilder.addPerson(person);
             }
diff --git a/compat/java/android/support/v4/app/NotificationCompat.java b/compat/java/android/support/v4/app/NotificationCompat.java
index 41569e4..011ba8b 100644
--- a/compat/java/android/support/v4/app/NotificationCompat.java
+++ b/compat/java/android/support/v4/app/NotificationCompat.java
@@ -2211,13 +2211,16 @@
         @Override
         public void apply(NotificationBuilderWithBuilderAccessor builder) {
             if (Build.VERSION.SDK_INT >= 16) {
-                NotificationCompatJellybean.addBigPictureStyle(builder,
-                        mBigContentTitle,
-                        mSummaryTextSet,
-                        mSummaryText,
-                        mPicture,
-                        mBigLargeIcon,
-                        mBigLargeIconSet);
+                Notification.BigPictureStyle style =
+                        new Notification.BigPictureStyle(builder.getBuilder())
+                                .setBigContentTitle(mBigContentTitle)
+                                .bigPicture(mPicture);
+                if (mBigLargeIconSet) {
+                    style.bigLargeIcon(mBigLargeIcon);
+                }
+                if (mSummaryTextSet) {
+                    style.setSummaryText(mSummaryText);
+                }
             }
         }
     }
@@ -2287,11 +2290,13 @@
         @Override
         public void apply(NotificationBuilderWithBuilderAccessor builder) {
             if (Build.VERSION.SDK_INT >= 16) {
-                NotificationCompatJellybean.addBigTextStyle(builder,
-                        mBigContentTitle,
-                        mSummaryTextSet,
-                        mSummaryText,
-                        mBigText);
+                Notification.BigTextStyle style =
+                        new Notification.BigTextStyle(builder.getBuilder())
+                                .setBigContentTitle(mBigContentTitle)
+                                .bigText(mBigText);
+                if (mSummaryTextSet) {
+                    style.setSummaryText(mSummaryText);
+                }
             }
         }
     }
@@ -2496,11 +2501,9 @@
                         }
                         completeMessage.insert(0, line);
                     }
-                    NotificationCompatJellybean.addBigTextStyle(builder,
-                            null,
-                            false,
-                            null,
-                            completeMessage);
+                    new Notification.BigTextStyle(builder.getBuilder())
+                            .setBigContentTitle(null)
+                            .bigText(completeMessage);
                 }
             }
         }
@@ -2833,11 +2836,15 @@
         @Override
         public void apply(NotificationBuilderWithBuilderAccessor builder) {
             if (Build.VERSION.SDK_INT >= 16) {
-                NotificationCompatJellybean.addInboxStyle(builder,
-                        mBigContentTitle,
-                        mSummaryTextSet,
-                        mSummaryText,
-                        mTexts);
+                Notification.InboxStyle style =
+                        new Notification.InboxStyle(builder.getBuilder())
+                                .setBigContentTitle(mBigContentTitle);
+                if (mSummaryTextSet) {
+                    style.setSummaryText(mSummaryText);
+                }
+                for (CharSequence text: mTexts) {
+                    style.addLine(text);
+                }
             }
         }
     }
diff --git a/compat/jellybean/android/support/v4/app/NotificationCompatJellybean.java b/compat/jellybean/android/support/v4/app/NotificationCompatJellybean.java
index b639c55..a8e49c7 100644
--- a/compat/jellybean/android/support/v4/app/NotificationCompatJellybean.java
+++ b/compat/jellybean/android/support/v4/app/NotificationCompatJellybean.java
@@ -20,6 +20,7 @@
 import android.app.PendingIntent;
 import android.content.Context;
 import android.graphics.Bitmap;
+import android.os.Build;
 import android.os.Bundle;
 import android.support.annotation.RequiresApi;
 import android.util.Log;
@@ -60,11 +61,10 @@
 
     public static class Builder extends NotificationCompat.NotificationCompatBaseImpl.BuilderBase
             implements NotificationBuilderWithActions {
-        protected RemoteViews mContentView;
-        protected RemoteViews mBigContentView;
-        protected List<Bundle> mActionExtrasList = new ArrayList<>();
-
-        private final Bundle mExtras;
+        protected final RemoteViews mContentView;
+        protected final RemoteViews mBigContentView;
+        protected final List<Bundle> mActionExtrasList = new ArrayList<>();
+        protected final Bundle mExtras = new Bundle();
 
         public Builder(Context context, Notification n,
                 CharSequence contentTitle, CharSequence contentText, CharSequence contentInfo,
@@ -80,24 +80,27 @@
             mBuilder.setSubText(subText)
                 .setUsesChronometer(useChronometer)
                 .setPriority(priority);
-            mExtras = new Bundle();
+
             if (extras != null) {
                 mExtras.putAll(extras);
             }
-            if (localOnly) {
-                mExtras.putBoolean(NotificationCompatExtras.EXTRA_LOCAL_ONLY, true);
-            }
-            if (groupKey != null) {
-                mExtras.putString(NotificationCompatExtras.EXTRA_GROUP_KEY, groupKey);
-                if (groupSummary) {
-                    mExtras.putBoolean(NotificationCompatExtras.EXTRA_GROUP_SUMMARY, true);
-                } else {
-                    mExtras.putBoolean(NotificationManagerCompat.EXTRA_USE_SIDE_CHANNEL, true);
+            if (Build.VERSION.SDK_INT < 20) {
+                if (localOnly) {
+                    mExtras.putBoolean(NotificationCompatExtras.EXTRA_LOCAL_ONLY, true);
+                }
+                if (groupKey != null) {
+                    mExtras.putString(NotificationCompatExtras.EXTRA_GROUP_KEY, groupKey);
+                    if (groupSummary) {
+                        mExtras.putBoolean(NotificationCompatExtras.EXTRA_GROUP_SUMMARY, true);
+                    } else {
+                        mExtras.putBoolean(NotificationManagerCompat.EXTRA_USE_SIDE_CHANNEL, true);
+                    }
+                }
+                if (sortKey != null) {
+                    mExtras.putString(NotificationCompatExtras.EXTRA_SORT_KEY, sortKey);
                 }
             }
-            if (sortKey != null) {
-                mExtras.putString(NotificationCompatExtras.EXTRA_SORT_KEY, sortKey);
-            }
+
             mContentView = contentView;
             mBigContentView = bigContentView;
         }
@@ -136,45 +139,6 @@
         }
     }
 
-    public static void addBigTextStyle(NotificationBuilderWithBuilderAccessor b,
-            CharSequence bigContentTitle, boolean useSummary,
-            CharSequence summaryText, CharSequence bigText) {
-        Notification.BigTextStyle style = new Notification.BigTextStyle(b.getBuilder())
-            .setBigContentTitle(bigContentTitle)
-            .bigText(bigText);
-        if (useSummary) {
-            style.setSummaryText(summaryText);
-        }
-    }
-
-    public static void addBigPictureStyle(NotificationBuilderWithBuilderAccessor b,
-            CharSequence bigContentTitle, boolean useSummary,
-            CharSequence summaryText, Bitmap bigPicture, Bitmap bigLargeIcon,
-            boolean bigLargeIconSet) {
-        Notification.BigPictureStyle style = new Notification.BigPictureStyle(b.getBuilder())
-            .setBigContentTitle(bigContentTitle)
-            .bigPicture(bigPicture);
-        if (bigLargeIconSet) {
-            style.bigLargeIcon(bigLargeIcon);
-        }
-        if (useSummary) {
-            style.setSummaryText(summaryText);
-        }
-    }
-
-    public static void addInboxStyle(NotificationBuilderWithBuilderAccessor b,
-            CharSequence bigContentTitle, boolean useSummary,
-            CharSequence summaryText, ArrayList<CharSequence> texts) {
-        Notification.InboxStyle style = new Notification.InboxStyle(b.getBuilder())
-            .setBigContentTitle(bigContentTitle);
-        if (useSummary) {
-            style.setSummaryText(summaryText);
-        }
-        for (CharSequence text: texts) {
-            style.addLine(text);
-        }
-    }
-
     /** Return an SparseArray for action extras or null if none was needed. */
     public static SparseArray<Bundle> buildActionExtrasMap(List<Bundle> actionExtrasList) {
         SparseArray<Bundle> actionExtrasMap = null;
diff --git a/compat/kitkat/android/support/v4/app/NotificationCompatKitKat.java b/compat/kitkat/android/support/v4/app/NotificationCompatKitKat.java
index 8586bfc..9541e306 100644
--- a/compat/kitkat/android/support/v4/app/NotificationCompatKitKat.java
+++ b/compat/kitkat/android/support/v4/app/NotificationCompatKitKat.java
@@ -20,20 +20,17 @@
 import android.app.PendingIntent;
 import android.content.Context;
 import android.graphics.Bitmap;
+import android.os.Build;
 import android.os.Bundle;
 import android.support.annotation.RequiresApi;
 import android.util.SparseArray;
 import android.widget.RemoteViews;
 
 import java.util.ArrayList;
-import java.util.List;
 
 @RequiresApi(19)
 class NotificationCompatKitKat {
     public static class Builder extends NotificationCompatJellybean.Builder {
-        private Bundle mExtras;
-        private List<Bundle> mActionExtrasList = new ArrayList<Bundle>();
-
         public Builder(Context context, Notification n,
                 CharSequence contentTitle, CharSequence contentText, CharSequence contentInfo,
                 RemoteViews tickerView, int number,
@@ -50,30 +47,12 @@
                     channelId);
             mBuilder.setShowWhen(showWhen);
 
-            mExtras = new Bundle();
-            if (extras != null) {
-                mExtras.putAll(extras);
-            }
-            if (people != null && !people.isEmpty()) {
-                mExtras.putStringArray(Notification.EXTRA_PEOPLE,
-                        people.toArray(new String[people.size()]));
-            }
-            if (localOnly) {
-                mExtras.putBoolean(NotificationCompatExtras.EXTRA_LOCAL_ONLY, true);
-            }
-            if (groupKey != null) {
-                mExtras.putString(NotificationCompatExtras.EXTRA_GROUP_KEY, groupKey);
-                if (groupSummary) {
-                    mExtras.putBoolean(NotificationCompatExtras.EXTRA_GROUP_SUMMARY, true);
-                } else {
-                    mExtras.putBoolean(NotificationManagerCompat.EXTRA_USE_SIDE_CHANNEL, true);
+            if (Build.VERSION.SDK_INT < 21) {
+                if (people != null && !people.isEmpty()) {
+                    mExtras.putStringArray(Notification.EXTRA_PEOPLE,
+                            people.toArray(new String[people.size()]));
                 }
             }
-            if (sortKey != null) {
-                mExtras.putString(NotificationCompatExtras.EXTRA_SORT_KEY, sortKey);
-            }
-            mContentView = contentView;
-            mBigContentView = bigContentView;
         }
 
         @Override
diff --git a/room/common/src/main/java/android/arch/persistence/room/TypeConverter.java b/room/common/src/main/java/android/arch/persistence/room/TypeConverter.java
index bea68c8..850481c 100644
--- a/room/common/src/main/java/android/arch/persistence/room/TypeConverter.java
+++ b/room/common/src/main/java/android/arch/persistence/room/TypeConverter.java
@@ -22,7 +22,7 @@
 import java.lang.annotation.Target;
 
 /**
- * Marks a method as a type converter. A class can have as many @Converter methods as it needs.
+ * Marks a method as a type converter. A class can have as many @TypeConverter methods as it needs.
  * <p>
  * Each converter method should receive 1 parameter and have non-void return type.
  *