Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d06306c5 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Made sure that templated views support RTL" into rvc-dev am: 83cf8551

Change-Id: I7a336153a29c70e03109ec992d601eef014d1215
parents 2ac35817 83cf8551
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -6221,6 +6221,17 @@ public class Notification implements Parcelable
            }
            return loadHeaderAppName();
        }

        /**
         * @return if this builder uses a template
         *
         * @hide
         */
        public boolean usesTemplate() {
            return (mN.contentView == null && mN.headsUpContentView == null
                    && mN.bigContentView == null)
                    || (mStyle != null && mStyle.displayCustomViewInline());
        }
    }

    /**
+19 −0
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.Notification;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.pm.ApplicationInfo;
import android.os.AsyncTask;
import android.os.CancellationSignal;
import android.service.notification.StatusBarNotification;
@@ -716,6 +718,10 @@ public class NotificationContentInflater implements NotificationRowContentBinder
                        sbn.getNotification());

                Context packageContext = sbn.getPackageContext(mContext);
                if (recoveredBuilder.usesTemplate()) {
                    // For all of our templates, we want it to be RTL
                    packageContext = new RtlEnabledContext(packageContext);
                }
                Notification notification = sbn.getNotification();
                if (notification.isMediaNotification()) {
                    MediaNotificationProcessor processor = new MediaNotificationProcessor(mContext,
@@ -782,6 +788,19 @@ public class NotificationContentInflater implements NotificationRowContentBinder
            // try to purge unnecessary cached entries.
            mRow.getImageResolver().purgeCache();
        }

        private class RtlEnabledContext extends ContextWrapper {
            private RtlEnabledContext(Context packageContext) {
                super(packageContext);
            }

            @Override
            public ApplicationInfo getApplicationInfo() {
                ApplicationInfo applicationInfo = super.getApplicationInfo();
                applicationInfo.flags |= ApplicationInfo.FLAG_SUPPORTS_RTL;
                return applicationInfo;
            }
        }
    }

    @VisibleForTesting