diff options
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/app/Notification.java | 73 | ||||
| -rw-r--r-- | core/java/com/android/internal/widget/CallLayout.java | 1 |
2 files changed, 52 insertions, 22 deletions
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 2b45723dae55..b31048cafbd7 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -5011,9 +5011,13 @@ public class Notification implements Parcelable boolean showProgress = handleProgressBar(contentView, ex, p); boolean hasSecondLine = showProgress; if (p.hasTitle()) { - contentView.setViewVisibility(R.id.title, View.VISIBLE); - contentView.setTextViewText(R.id.title, processTextSpans(p.title)); - setTextViewColorPrimary(contentView, R.id.title, p); + contentView.setViewVisibility(p.mTitleViewId, View.VISIBLE); + contentView.setTextViewText(p.mTitleViewId, processTextSpans(p.title)); + setTextViewColorPrimary(contentView, p.mTitleViewId, p); + } else if (p.mTitleViewId != R.id.title) { + // This alternate title view ID is not cleared by resetStandardTemplate + contentView.setViewVisibility(p.mTitleViewId, View.GONE); + contentView.setTextViewText(p.mTitleViewId, null); } if (p.text != null && p.text.length() != 0 && (!showProgress || p.mAllowTextWithProgress)) { @@ -5441,6 +5445,11 @@ public class Notification implements Parcelable // keep the divider visible between that title and the next text element. return true; } + if (p.mHideAppName) { + // The app name is being hidden, so we definitely want to return here. + // Assume that there is a title which will replace it in the header. + return p.hasTitle(); + } contentView.setViewVisibility(R.id.app_name_text, View.VISIBLE); contentView.setTextViewText(R.id.app_name_text, loadHeaderAppName()); contentView.setTextColor(R.id.app_name_text, getSecondaryTextColor(p)); @@ -5817,7 +5826,7 @@ public class Notification implements Parcelable * * @hide */ - public RemoteViews makeNotificationHeader() { + public RemoteViews makeNotificationGroupHeader() { return makeNotificationHeader(mParams.reset() .viewType(StandardTemplateParams.VIEW_TYPE_GROUP_HEADER) .fillTextsFrom(this)); @@ -6583,10 +6592,6 @@ public class Notification implements Parcelable return R.layout.notification_template_material_conversation; } - private int getCallLayoutResource() { - return R.layout.notification_template_material_call; - } - private int getActionLayoutResource() { return R.layout.notification_material_action; } @@ -9329,7 +9334,7 @@ public class Notification implements Parcelable */ @Override public RemoteViews makeContentView(boolean increasedHeight) { - return makeCallLayout(); + return makeCallLayout(StandardTemplateParams.VIEW_TYPE_NORMAL); } /** @@ -9337,14 +9342,14 @@ public class Notification implements Parcelable */ @Override public RemoteViews makeHeadsUpContentView(boolean increasedHeight) { - return makeCallLayout(); + return makeCallLayout(StandardTemplateParams.VIEW_TYPE_HEADS_UP); } /** * @hide */ public RemoteViews makeBigContentView() { - return makeCallLayout(); + return makeCallLayout(StandardTemplateParams.VIEW_TYPE_BIG); } @NonNull @@ -9443,8 +9448,10 @@ public class Notification implements Parcelable return resultActions; } - private RemoteViews makeCallLayout() { + private RemoteViews makeCallLayout(int viewType) { + final boolean isCollapsed = viewType == StandardTemplateParams.VIEW_TYPE_NORMAL; Bundle extras = mBuilder.mN.extras; + CharSequence title = mPerson != null ? mPerson.getName() : null; CharSequence text = mBuilder.processLegacyText(extras.getCharSequence(EXTRA_TEXT)); if (text == null) { text = getDefaultText(); @@ -9452,20 +9459,30 @@ public class Notification implements Parcelable // Bind standard template StandardTemplateParams p = mBuilder.mParams.reset() - .viewType(StandardTemplateParams.VIEW_TYPE_BIG) + .viewType(viewType) .callStyleActions(true) .allowTextWithProgress(true) .hideLargeIcon(true) + .hideAppName(isCollapsed) + .titleViewId(R.id.conversation_text) + .title(title) .text(text) .summaryText(mBuilder.processLegacyText(mVerificationText)); mBuilder.mActions = getActionsListWithSystemActions(); - RemoteViews contentView = mBuilder.applyStandardTemplateWithActions( - mBuilder.getCallLayoutResource(), p, null /* result */); + final RemoteViews contentView; + if (isCollapsed) { + contentView = mBuilder.applyStandardTemplate( + R.layout.notification_template_material_call, p, null /* result */); + } else { + contentView = mBuilder.applyStandardTemplateWithActions( + R.layout.notification_template_material_big_call, p, null /* result */); + } // Bind some extra conversation-specific header fields. - mBuilder.setTextViewColorPrimary(contentView, R.id.conversation_text, p); - mBuilder.setTextViewColorSecondary(contentView, R.id.app_name_divider, p); - contentView.setViewVisibility(R.id.app_name_divider, View.VISIBLE); + if (!p.mHideAppName) { + mBuilder.setTextViewColorSecondary(contentView, R.id.app_name_divider, p); + contentView.setViewVisibility(R.id.app_name_divider, View.VISIBLE); + } bindCallerVerification(contentView, p); // Bind some custom CallLayout properties @@ -12142,12 +12159,13 @@ public class Notification implements Parcelable public static int VIEW_TYPE_NORMAL = 1; public static int VIEW_TYPE_BIG = 2; public static int VIEW_TYPE_HEADS_UP = 3; - public static int VIEW_TYPE_MINIMIZED = 4; - public static int VIEW_TYPE_PUBLIC = 5; - public static int VIEW_TYPE_GROUP_HEADER = 6; + public static int VIEW_TYPE_MINIMIZED = 4; // header only for minimized state + public static int VIEW_TYPE_PUBLIC = 5; // header only for automatic public version + public static int VIEW_TYPE_GROUP_HEADER = 6; // header only for top of group int mViewType = VIEW_TYPE_UNSPECIFIED; boolean mHeaderless; + boolean mHideAppName; boolean mHideTitle; boolean mHideActions; boolean mHideProgress; @@ -12155,6 +12173,7 @@ public class Notification implements Parcelable boolean mPromotePicture; boolean mCallStyleActions; boolean mAllowTextWithProgress; + int mTitleViewId; int mTextViewId; CharSequence title; CharSequence text; @@ -12168,6 +12187,7 @@ public class Notification implements Parcelable final StandardTemplateParams reset() { mViewType = VIEW_TYPE_UNSPECIFIED; mHeaderless = false; + mHideAppName = false; mHideTitle = false; mHideActions = false; mHideProgress = false; @@ -12175,6 +12195,7 @@ public class Notification implements Parcelable mPromotePicture = false; mCallStyleActions = false; mAllowTextWithProgress = false; + mTitleViewId = R.id.title; mTextViewId = R.id.text; title = null; text = null; @@ -12200,6 +12221,11 @@ public class Notification implements Parcelable return this; } + public StandardTemplateParams hideAppName(boolean hideAppName) { + mHideAppName = hideAppName; + return this; + } + final StandardTemplateParams hideActions(boolean hideActions) { this.mHideActions = hideActions; return this; @@ -12235,6 +12261,11 @@ public class Notification implements Parcelable return this; } + public StandardTemplateParams titleViewId(int titleViewId) { + mTitleViewId = titleViewId; + return this; + } + public StandardTemplateParams textViewId(int textViewId) { mTextViewId = textViewId; return this; diff --git a/core/java/com/android/internal/widget/CallLayout.java b/core/java/com/android/internal/widget/CallLayout.java index 6cc5a4aacda5..83345dad8ed9 100644 --- a/core/java/com/android/internal/widget/CallLayout.java +++ b/core/java/com/android/internal/widget/CallLayout.java @@ -100,7 +100,6 @@ public class CallLayout extends FrameLayout { } // TODO(b/179178086): crop/clip the icon to a circle? mConversationIconView.setImageIcon(icon); - mConversationText.setText(callerName); } @RemotableViewMethod |
