Loading core/java/android/app/Notification.java +12 −1 Original line number Original line Diff line number Diff line Loading @@ -3556,7 +3556,8 @@ public class Notification implements Parcelable mStyle.buildStyled(mN); mStyle.buildStyled(mN); } } if (mContext.getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.N) { if (mContext.getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.N && (mStyle == null || !mStyle.displayCustomViewInline())) { if (mN.contentView == null) { if (mN.contentView == null) { mN.contentView = createContentView(); mN.contentView = createContentView(); mN.extras.putInt(EXTRA_REBUILD_CONTENT_VIEW_ACTION_COUNT, mN.extras.putInt(EXTRA_REBUILD_CONTENT_VIEW_ACTION_COUNT, Loading Loading @@ -4570,6 +4571,11 @@ public class Notification implements Parcelable private void buildIntoRemoteViewContent(RemoteViews remoteViews, private void buildIntoRemoteViewContent(RemoteViews remoteViews, RemoteViews customContent) { RemoteViews customContent) { remoteViews.removeAllViews(R.id.notification_main_column); remoteViews.removeAllViews(R.id.notification_main_column); // Need to clone customContent before adding, because otherwise it can no longer be // parceled independently of remoteViews. if (customContent != null) { customContent = customContent.clone(); } remoteViews.addView(R.id.notification_main_column, customContent); remoteViews.addView(R.id.notification_main_column, customContent); // also update the end margin if there is an image // also update the end margin if there is an image int endMargin = mBuilder.mContext.getResources().getDimensionPixelSize( int endMargin = mBuilder.mContext.getResources().getDimensionPixelSize( Loading Loading @@ -4674,6 +4680,11 @@ public class Notification implements Parcelable private RemoteViews buildIntoRemoteView(RemoteViews remoteViews, int id, private RemoteViews buildIntoRemoteView(RemoteViews remoteViews, int id, RemoteViews customContent) { RemoteViews customContent) { remoteViews.removeAllViews(id); remoteViews.removeAllViews(id); // Need to clone customContent before adding, because otherwise it can no longer be // parceled independently of remoteViews. if (customContent != null) { customContent = customContent.clone(); } remoteViews.addView(id, customContent); remoteViews.addView(id, customContent); return remoteViews; return remoteViews; } } Loading core/java/android/service/notification/NotificationListenerService.java +11 −3 Original line number Original line Diff line number Diff line Loading @@ -42,6 +42,7 @@ import android.os.ServiceManager; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.ArraySet; import android.util.ArraySet; import android.util.Log; import android.util.Log; import android.widget.RemoteViews; import java.lang.annotation.Retention; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -754,9 +755,16 @@ public abstract class NotificationListenerService extends Service { private void maybePopulateRemoteViews(Notification notification) { private void maybePopulateRemoteViews(Notification notification) { if (getContext().getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.N) { if (getContext().getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.N) { Builder builder = Builder.recoverBuilder(getContext(), notification); Builder builder = Builder.recoverBuilder(getContext(), notification); notification.contentView = builder.createContentView(); notification.bigContentView = builder.createBigContentView(); // Some styles wrap Notification's contentView, bigContentView and headsUpContentView. notification.headsUpContentView = builder.createHeadsUpContentView(); // First inflate them all, only then set them to avoid recursive wrapping. RemoteViews content = builder.createContentView(); RemoteViews big = builder.createBigContentView(); RemoteViews headsUp = builder.createHeadsUpContentView(); notification.contentView = content; notification.bigContentView = big; notification.headsUpContentView = headsUp; } } } } Loading Loading
core/java/android/app/Notification.java +12 −1 Original line number Original line Diff line number Diff line Loading @@ -3556,7 +3556,8 @@ public class Notification implements Parcelable mStyle.buildStyled(mN); mStyle.buildStyled(mN); } } if (mContext.getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.N) { if (mContext.getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.N && (mStyle == null || !mStyle.displayCustomViewInline())) { if (mN.contentView == null) { if (mN.contentView == null) { mN.contentView = createContentView(); mN.contentView = createContentView(); mN.extras.putInt(EXTRA_REBUILD_CONTENT_VIEW_ACTION_COUNT, mN.extras.putInt(EXTRA_REBUILD_CONTENT_VIEW_ACTION_COUNT, Loading Loading @@ -4570,6 +4571,11 @@ public class Notification implements Parcelable private void buildIntoRemoteViewContent(RemoteViews remoteViews, private void buildIntoRemoteViewContent(RemoteViews remoteViews, RemoteViews customContent) { RemoteViews customContent) { remoteViews.removeAllViews(R.id.notification_main_column); remoteViews.removeAllViews(R.id.notification_main_column); // Need to clone customContent before adding, because otherwise it can no longer be // parceled independently of remoteViews. if (customContent != null) { customContent = customContent.clone(); } remoteViews.addView(R.id.notification_main_column, customContent); remoteViews.addView(R.id.notification_main_column, customContent); // also update the end margin if there is an image // also update the end margin if there is an image int endMargin = mBuilder.mContext.getResources().getDimensionPixelSize( int endMargin = mBuilder.mContext.getResources().getDimensionPixelSize( Loading Loading @@ -4674,6 +4680,11 @@ public class Notification implements Parcelable private RemoteViews buildIntoRemoteView(RemoteViews remoteViews, int id, private RemoteViews buildIntoRemoteView(RemoteViews remoteViews, int id, RemoteViews customContent) { RemoteViews customContent) { remoteViews.removeAllViews(id); remoteViews.removeAllViews(id); // Need to clone customContent before adding, because otherwise it can no longer be // parceled independently of remoteViews. if (customContent != null) { customContent = customContent.clone(); } remoteViews.addView(id, customContent); remoteViews.addView(id, customContent); return remoteViews; return remoteViews; } } Loading
core/java/android/service/notification/NotificationListenerService.java +11 −3 Original line number Original line Diff line number Diff line Loading @@ -42,6 +42,7 @@ import android.os.ServiceManager; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.ArraySet; import android.util.ArraySet; import android.util.Log; import android.util.Log; import android.widget.RemoteViews; import java.lang.annotation.Retention; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -754,9 +755,16 @@ public abstract class NotificationListenerService extends Service { private void maybePopulateRemoteViews(Notification notification) { private void maybePopulateRemoteViews(Notification notification) { if (getContext().getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.N) { if (getContext().getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.N) { Builder builder = Builder.recoverBuilder(getContext(), notification); Builder builder = Builder.recoverBuilder(getContext(), notification); notification.contentView = builder.createContentView(); notification.bigContentView = builder.createBigContentView(); // Some styles wrap Notification's contentView, bigContentView and headsUpContentView. notification.headsUpContentView = builder.createHeadsUpContentView(); // First inflate them all, only then set them to avoid recursive wrapping. RemoteViews content = builder.createContentView(); RemoteViews big = builder.createBigContentView(); RemoteViews headsUp = builder.createHeadsUpContentView(); notification.contentView = content; notification.bigContentView = big; notification.headsUpContentView = headsUp; } } } } Loading