diff options
| author | 2016-04-05 14:54:56 -0400 | |
|---|---|---|
| committer | 2016-04-06 17:20:11 -0400 | |
| commit | 9ab3a238b3dc11a773aab1ca22c29a58d100f2d0 (patch) | |
| tree | deb720c05e995fd02c13b092a5a51e1203cba809 | |
| parent | fa305fcc6ba8f4d95b0ee33bbe8c6d9e371096e1 (diff) | |
Adds a content-intent-launching-activity flag to WearableExtender
This adds a flag to WearableExtender (and Action.WearableExtender)
indicating that the attached ContentIntent will launch an activity
on Wear, which lets the platform know that it can (and should)
generate a sleek transition for the launching of said intent (as
opposed to the intent causing change in the background).
Bug:28019194
Change-Id: Id8b422ea52c5e941e38558aaf31ce2cf4bb7c6f3
| -rw-r--r-- | api/current.txt | 4 | ||||
| -rw-r--r-- | api/system-current.txt | 4 | ||||
| -rw-r--r-- | api/test-current.txt | 4 | ||||
| -rw-r--r-- | core/java/android/app/Notification.java | 49 |
4 files changed, 61 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt index 18388b2d3a7c..57b1177954b1 100644 --- a/api/current.txt +++ b/api/current.txt @@ -5026,11 +5026,13 @@ package android.app { method public android.app.Notification.Action.Builder extend(android.app.Notification.Action.Builder); method public java.lang.CharSequence getCancelLabel(); method public java.lang.CharSequence getConfirmLabel(); + method public boolean getHintContentIntentLaunchesActivity(); method public java.lang.CharSequence getInProgressLabel(); method public boolean isAvailableOffline(); method public android.app.Notification.Action.WearableExtender setAvailableOffline(boolean); method public android.app.Notification.Action.WearableExtender setCancelLabel(java.lang.CharSequence); method public android.app.Notification.Action.WearableExtender setConfirmLabel(java.lang.CharSequence); + method public android.app.Notification.Action.WearableExtender setHintContentIntentLaunchesActivity(boolean); method public android.app.Notification.Action.WearableExtender setInProgressLabel(java.lang.CharSequence); } @@ -5207,6 +5209,7 @@ package android.app { method public android.app.PendingIntent getDisplayIntent(); method public int getGravity(); method public boolean getHintAvoidBackgroundClipping(); + method public boolean getHintContentIntentLaunchesActivity(); method public boolean getHintHideIcon(); method public int getHintScreenTimeout(); method public boolean getHintShowBackgroundOnly(); @@ -5222,6 +5225,7 @@ package android.app { method public android.app.Notification.WearableExtender setDisplayIntent(android.app.PendingIntent); method public android.app.Notification.WearableExtender setGravity(int); method public android.app.Notification.WearableExtender setHintAvoidBackgroundClipping(boolean); + method public android.app.Notification.WearableExtender setHintContentIntentLaunchesActivity(boolean); method public android.app.Notification.WearableExtender setHintHideIcon(boolean); method public android.app.Notification.WearableExtender setHintScreenTimeout(int); method public android.app.Notification.WearableExtender setHintShowBackgroundOnly(boolean); diff --git a/api/system-current.txt b/api/system-current.txt index 051ed04fcdbc..32078dbcf041 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -5159,11 +5159,13 @@ package android.app { method public android.app.Notification.Action.Builder extend(android.app.Notification.Action.Builder); method public java.lang.CharSequence getCancelLabel(); method public java.lang.CharSequence getConfirmLabel(); + method public boolean getHintContentIntentLaunchesActivity(); method public java.lang.CharSequence getInProgressLabel(); method public boolean isAvailableOffline(); method public android.app.Notification.Action.WearableExtender setAvailableOffline(boolean); method public android.app.Notification.Action.WearableExtender setCancelLabel(java.lang.CharSequence); method public android.app.Notification.Action.WearableExtender setConfirmLabel(java.lang.CharSequence); + method public android.app.Notification.Action.WearableExtender setHintContentIntentLaunchesActivity(boolean); method public android.app.Notification.Action.WearableExtender setInProgressLabel(java.lang.CharSequence); } @@ -5340,6 +5342,7 @@ package android.app { method public android.app.PendingIntent getDisplayIntent(); method public int getGravity(); method public boolean getHintAvoidBackgroundClipping(); + method public boolean getHintContentIntentLaunchesActivity(); method public boolean getHintHideIcon(); method public int getHintScreenTimeout(); method public boolean getHintShowBackgroundOnly(); @@ -5355,6 +5358,7 @@ package android.app { method public android.app.Notification.WearableExtender setDisplayIntent(android.app.PendingIntent); method public android.app.Notification.WearableExtender setGravity(int); method public android.app.Notification.WearableExtender setHintAvoidBackgroundClipping(boolean); + method public android.app.Notification.WearableExtender setHintContentIntentLaunchesActivity(boolean); method public android.app.Notification.WearableExtender setHintHideIcon(boolean); method public android.app.Notification.WearableExtender setHintScreenTimeout(int); method public android.app.Notification.WearableExtender setHintShowBackgroundOnly(boolean); diff --git a/api/test-current.txt b/api/test-current.txt index fe7b4d38a9e8..886eca70f285 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -5026,11 +5026,13 @@ package android.app { method public android.app.Notification.Action.Builder extend(android.app.Notification.Action.Builder); method public java.lang.CharSequence getCancelLabel(); method public java.lang.CharSequence getConfirmLabel(); + method public boolean getHintContentIntentLaunchesActivity(); method public java.lang.CharSequence getInProgressLabel(); method public boolean isAvailableOffline(); method public android.app.Notification.Action.WearableExtender setAvailableOffline(boolean); method public android.app.Notification.Action.WearableExtender setCancelLabel(java.lang.CharSequence); method public android.app.Notification.Action.WearableExtender setConfirmLabel(java.lang.CharSequence); + method public android.app.Notification.Action.WearableExtender setHintContentIntentLaunchesActivity(boolean); method public android.app.Notification.Action.WearableExtender setInProgressLabel(java.lang.CharSequence); } @@ -5207,6 +5209,7 @@ package android.app { method public android.app.PendingIntent getDisplayIntent(); method public int getGravity(); method public boolean getHintAvoidBackgroundClipping(); + method public boolean getHintContentIntentLaunchesActivity(); method public boolean getHintHideIcon(); method public int getHintScreenTimeout(); method public boolean getHintShowBackgroundOnly(); @@ -5222,6 +5225,7 @@ package android.app { method public android.app.Notification.WearableExtender setDisplayIntent(android.app.PendingIntent); method public android.app.Notification.WearableExtender setGravity(int); method public android.app.Notification.WearableExtender setHintAvoidBackgroundClipping(boolean); + method public android.app.Notification.WearableExtender setHintContentIntentLaunchesActivity(boolean); method public android.app.Notification.WearableExtender setHintHideIcon(boolean); method public android.app.Notification.WearableExtender setHintScreenTimeout(int); method public android.app.Notification.WearableExtender setHintShowBackgroundOnly(boolean); diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 8423de882782..25194d416d71 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -1205,6 +1205,7 @@ public class Notification implements Parcelable // Flags bitwise-ored to mFlags private static final int FLAG_AVAILABLE_OFFLINE = 0x1; + private static final int FLAG_HINT_LAUNCHES_ACTIVITY = 1 << 1; // Default value for flags integer private static final int DEFAULT_FLAGS = FLAG_AVAILABLE_OFFLINE; @@ -1367,6 +1368,30 @@ public class Notification implements Parcelable public CharSequence getCancelLabel() { return mCancelLabel; } + + /** + * Set a hint that this Action will launch an {@link Activity} directly, telling the + * platform that it can generate the appropriate transitions. + * @param hintLaunchesActivity {@code true} if the content intent will launch + * an activity and transitions should be generated, false otherwise. + * @return this object for method chaining + */ + public WearableExtender setHintContentIntentLaunchesActivity( + boolean hintLaunchesActivity) { + setFlag(FLAG_HINT_LAUNCHES_ACTIVITY, hintLaunchesActivity); + return this; + } + + /** + * Get a hint that this Action will launch an {@link Activity} directly, telling the + * platform that it can generate the appropriate transitions + * @return {@code true} if the content intent will launch an activity and transitions + * should be generated, false otherwise. The default value is {@code false} if this was + * never set. + */ + public boolean getHintContentIntentLaunchesActivity() { + return (mFlags & FLAG_HINT_LAUNCHES_ACTIVITY) != 0; + } } } @@ -4863,6 +4888,7 @@ public class Notification implements Parcelable private static final int FLAG_HINT_SHOW_BACKGROUND_ONLY = 1 << 2; private static final int FLAG_START_SCROLL_BOTTOM = 1 << 3; private static final int FLAG_HINT_AVOID_BACKGROUND_CLIPPING = 1 << 4; + private static final int FLAG_HINT_CONTENT_INTENT_LAUNCHES_ACTIVITY = 1 << 6; // Default value for flags integer private static final int DEFAULT_FLAGS = FLAG_CONTENT_INTENT_AVAILABLE_OFFLINE; @@ -5429,6 +5455,29 @@ public class Notification implements Parcelable return mHintScreenTimeout; } + /** + * Set a hint that this notification's content intent will launch an {@link Activity} + * directly, telling the platform that it can generate the appropriate transitions. + * @param hintContentIntentLaunchesActivity {@code true} if the content intent will launch + * an activity and transitions should be generated, false otherwise. + * @return this object for method chaining + */ + public WearableExtender setHintContentIntentLaunchesActivity( + boolean hintContentIntentLaunchesActivity) { + setFlag(FLAG_HINT_CONTENT_INTENT_LAUNCHES_ACTIVITY, hintContentIntentLaunchesActivity); + return this; + } + + /** + * Get a hint that this notification's content intent will launch an {@link Activity} + * directly, telling the platform that it can generate the appropriate transitions + * @return {@code true} if the content intent will launch an activity and transitions should + * be generated, false otherwise. The default value is {@code false} if this was never set. + */ + public boolean getHintContentIntentLaunchesActivity() { + return (mFlags & FLAG_HINT_CONTENT_INTENT_LAUNCHES_ACTIVITY) != 0; + } + private void setFlag(int mask, boolean value) { if (value) { mFlags |= mask; |