tree 7283af9b6305b27fbb22033a40f90e3586fa1557
parent e0d6a6b05b0861a5aa6dd8189de61a4da8d39dae
author Griff Hazen <griff@google.com> 1400604939 -0700
committer Griff Hazen <griff@google.com> 1400604939 -0700

Add RemoteInput, Grouping, and Extender to Notification api.

RemoteInputs annotate actions and content intents to request
input from the user as part of an intent being sent. Results
are sent along using ClipData to avoid unparcel of developer
provided bundle values. A helper method is expexted to be used
to extract results.

Grouping allows notifications to be bundled together, with an optional
summary notification for display on older platforms. SortKey is an
important part of grouping since child notifications will likely have
a prescribed ordering. It is also useful in top level notifications
for apps that want to provide an ordering all other fields being equal.

Also provide a fluid way to to extend Actions and Notifications
using Extenders, e.g.:

Notification n = new NotificationCompat.Builder(context)
    .setOption1()
    .apply(new SomeExtender()
        .setOption2())
    .build();

This helps extension libraries provide a nice API experience for devs.

Change-Id: Ib3438ef854772c2c34d21bf1eb4ed7c9e032106f
