Merge "Fix notification badge when line 3 not shown." into lmp-dev
This commit is contained in:
@@ -2579,20 +2579,35 @@ public class Notification implements Parcelable
|
||||
return bitmap;
|
||||
}
|
||||
|
||||
private boolean addProfileBadge(RemoteViews contentView, int resId) {
|
||||
Bitmap profileBadge = getProfileBadge();
|
||||
|
||||
contentView.setViewVisibility(R.id.profile_badge_large_template, View.GONE);
|
||||
contentView.setViewVisibility(R.id.profile_badge_line2, View.GONE);
|
||||
contentView.setViewVisibility(R.id.profile_badge_line3, View.GONE);
|
||||
|
||||
if (profileBadge != null) {
|
||||
contentView.setImageViewBitmap(resId, profileBadge);
|
||||
contentView.setViewVisibility(resId, View.VISIBLE);
|
||||
|
||||
// Make sure Line 3 is visible. As badge will be here if there
|
||||
// is no text to display.
|
||||
if (resId == R.id.profile_badge_line3) {
|
||||
contentView.setViewVisibility(R.id.line3, View.VISIBLE);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private RemoteViews applyStandardTemplate(int resId) {
|
||||
Bitmap profileIcon = getProfileBadge();
|
||||
RemoteViews contentView = new BuilderRemoteViews(mContext.getPackageName(),
|
||||
mOriginatingUserId, resId);
|
||||
|
||||
boolean showLine3 = false;
|
||||
boolean showLine2 = false;
|
||||
boolean contentTextInLine2 = false;
|
||||
|
||||
if (profileIcon != null) {
|
||||
contentView.setImageViewBitmap(R.id.profile_icon, profileIcon);
|
||||
contentView.setViewVisibility(R.id.profile_icon, View.VISIBLE);
|
||||
} else {
|
||||
contentView.setViewVisibility(R.id.profile_icon, View.GONE);
|
||||
}
|
||||
if (mLargeIcon != null) {
|
||||
contentView.setImageViewBitmap(R.id.icon, mLargeIcon);
|
||||
processLargeIcon(mLargeIcon, contentView);
|
||||
@@ -2639,6 +2654,7 @@ public class Notification implements Parcelable
|
||||
contentView.setTextViewText(R.id.text2, processLegacyText(mContentText));
|
||||
contentView.setViewVisibility(R.id.text2, View.VISIBLE);
|
||||
showLine2 = true;
|
||||
contentTextInLine2 = true;
|
||||
} else {
|
||||
contentView.setViewVisibility(R.id.text2, View.GONE);
|
||||
}
|
||||
@@ -2681,6 +2697,15 @@ public class Notification implements Parcelable
|
||||
hasThreeLines(), mContext.getResources().getConfiguration().fontScale),
|
||||
0, 0);
|
||||
|
||||
// We want to add badge to first line of text.
|
||||
boolean addedBadge = addProfileBadge(contentView,
|
||||
contentTextInLine2 ? R.id.profile_badge_line2 : R.id.profile_badge_line3);
|
||||
// If we added the badge to line 3 then we should show line 3.
|
||||
if (addedBadge && !contentTextInLine2) {
|
||||
showLine3 = true;
|
||||
}
|
||||
|
||||
// Note getStandardView may hide line 3 again.
|
||||
contentView.setViewVisibility(R.id.line3, showLine3 ? View.VISIBLE : View.GONE);
|
||||
contentView.setViewVisibility(R.id.overflow_divider, showLine3 ? View.VISIBLE : View.GONE);
|
||||
return contentView;
|
||||
@@ -3347,6 +3372,8 @@ public class Notification implements Parcelable
|
||||
contentView.setViewVisibility(R.id.overflow_divider, View.VISIBLE);
|
||||
contentView.setViewVisibility(R.id.line3, View.VISIBLE);
|
||||
} else {
|
||||
// Clear text in case we use the line to show the profile badge.
|
||||
contentView.setTextViewText(R.id.text, "");
|
||||
contentView.setViewVisibility(R.id.overflow_divider, View.GONE);
|
||||
contentView.setViewVisibility(R.id.line3, View.GONE);
|
||||
}
|
||||
@@ -3507,6 +3534,9 @@ public class Notification implements Parcelable
|
||||
|
||||
applyTopPadding(contentView);
|
||||
|
||||
boolean twoTextLines = mBuilder.mSubText != null && mBuilder.mContentText != null;
|
||||
mBuilder.addProfileBadge(contentView,
|
||||
twoTextLines ? R.id.profile_badge_line2 : R.id.profile_badge_line3);
|
||||
return contentView;
|
||||
}
|
||||
|
||||
@@ -3632,6 +3662,8 @@ public class Notification implements Parcelable
|
||||
|
||||
applyTopPadding(contentView);
|
||||
|
||||
mBuilder.addProfileBadge(contentView, R.id.profile_badge_large_template);
|
||||
|
||||
return contentView;
|
||||
}
|
||||
|
||||
@@ -3769,6 +3801,8 @@ public class Notification implements Parcelable
|
||||
|
||||
applyTopPadding(contentView);
|
||||
|
||||
mBuilder.addProfileBadge(contentView, R.id.profile_badge_large_template);
|
||||
|
||||
return contentView;
|
||||
}
|
||||
|
||||
|
||||
@@ -37,14 +37,30 @@
|
||||
>
|
||||
<include layout="@layout/notification_template_part_line1" />
|
||||
<include layout="@layout/notification_template_part_line2" />
|
||||
<TextView android:id="@+id/big_text"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:singleLine="false"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
android:orientation="horizontal"
|
||||
android:gravity="top"
|
||||
>
|
||||
<TextView android:id="@+id/big_text"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:singleLine="false"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
<ImageView android:id="@+id/profile_badge_large_template"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_weight="0"
|
||||
android:layout_marginStart="4dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
</LinearLayout>
|
||||
<include
|
||||
layout="@layout/notification_template_part_line3"
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -37,14 +37,31 @@
|
||||
>
|
||||
<include layout="@layout/notification_template_part_line1" />
|
||||
<include layout="@layout/notification_template_part_line2" />
|
||||
<TextView android:id="@+id/big_text"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
android:orientation="horizontal"
|
||||
android:gravity="top"
|
||||
>
|
||||
<TextView android:id="@+id/big_text"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:singleLine="false"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
<ImageView android:id="@+id/profile_badge_large_template"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_weight="0"
|
||||
android:layout_marginStart="4dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
</LinearLayout>
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
|
||||
@@ -37,79 +37,102 @@
|
||||
>
|
||||
<include layout="@layout/notification_template_part_line1" />
|
||||
<include layout="@layout/notification_template_part_line2" />
|
||||
<TextView android:id="@+id/inbox_text0"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_text1"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_text2"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_text3"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_text4"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_text5"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_text6"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_more"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
android:text="@android:string/ellipsis"
|
||||
/>
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="top"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
<TextView android:id="@+id/inbox_text0"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_text1"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_text2"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_text3"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_text4"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_text5"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_text6"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<TextView android:id="@+id/inbox_more"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
android:text="@android:string/ellipsis"
|
||||
/>
|
||||
</LinearLayout>
|
||||
<ImageView android:id="@+id/profile_badge_large_template"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_weight="0"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
</LinearLayout>
|
||||
<FrameLayout
|
||||
android:id="@+id/inbox_end_pad"
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -16,20 +16,37 @@
|
||||
-->
|
||||
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView
|
||||
android:id="@+id/text2"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Line2"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginTop="-1dp"
|
||||
android:layout_marginBottom="-1dp"
|
||||
android:singleLine="true"
|
||||
android:fadingEdge="horizontal"
|
||||
android:ellipsize="marquee"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="0"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
>
|
||||
<TextView
|
||||
android:id="@+id/text2"
|
||||
android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Line2"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="-1dp"
|
||||
android:layout_marginBottom="-1dp"
|
||||
android:singleLine="true"
|
||||
android:fadingEdge="horizontal"
|
||||
android:ellipsize="marquee"
|
||||
android:visibility="gone"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
<ImageView android:id="@+id/profile_badge_line2"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_weight="0"
|
||||
android:layout_marginStart="4dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
</LinearLayout>
|
||||
<ProgressBar
|
||||
android:id="@android:id/progress"
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -43,13 +43,13 @@
|
||||
android:gravity="center"
|
||||
android:paddingStart="8dp"
|
||||
/>
|
||||
<ImageView android:id="@+id/profile_icon"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
<ImageView android:id="@+id/profile_badge_line3"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_weight="0"
|
||||
android:layout_marginStart="8dp"
|
||||
android:scaleType="centerInside"
|
||||
android:layout_marginStart="4dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
@@ -216,7 +216,9 @@
|
||||
<java-symbol type="id" name="pin_confirm_text" />
|
||||
<java-symbol type="id" name="pin_error_message" />
|
||||
<java-symbol type="id" name="timePickerLayout" />
|
||||
<java-symbol type="id" name="profile_icon" />
|
||||
<java-symbol type="id" name="profile_badge_large_template" />
|
||||
<java-symbol type="id" name="profile_badge_line2" />
|
||||
<java-symbol type="id" name="profile_badge_line3" />
|
||||
<java-symbol type="id" name="transitionPosition" />
|
||||
|
||||
<java-symbol type="attr" name="actionModeShareDrawable" />
|
||||
|
||||
@@ -1169,8 +1169,8 @@ public abstract class BaseStatusBar extends SystemUI implements
|
||||
|
||||
final ImageView icon = (ImageView) publicViewLocal.findViewById(
|
||||
com.android.internal.R.id.icon);
|
||||
final ImageView profileIcon = (ImageView) publicViewLocal.findViewById(
|
||||
com.android.internal.R.id.profile_icon);
|
||||
final ImageView profileBadge = (ImageView) publicViewLocal.findViewById(
|
||||
com.android.internal.R.id.profile_badge_line3);
|
||||
|
||||
final StatusBarIcon ic = new StatusBarIcon(entry.notification.getPackageName(),
|
||||
entry.notification.getUser(),
|
||||
@@ -1189,14 +1189,14 @@ public abstract class BaseStatusBar extends SystemUI implements
|
||||
icon.setPadding(padding, padding, padding, padding);
|
||||
}
|
||||
|
||||
if (profileIcon != null) {
|
||||
if (profileBadge != null) {
|
||||
Drawable profileDrawable
|
||||
= mUserManager.getBadgeForUser(entry.notification.getUser(), 0);
|
||||
if (profileDrawable != null) {
|
||||
profileIcon.setImageDrawable(profileDrawable);
|
||||
profileIcon.setVisibility(View.VISIBLE);
|
||||
profileBadge.setImageDrawable(profileDrawable);
|
||||
profileBadge.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
profileIcon.setVisibility(View.GONE);
|
||||
profileBadge.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user