Merge "Made sure that templated views support RTL" into rvc-dev

This commit is contained in:
Selim Cinek
2020-03-13 20:58:52 +00:00
committed by Android (Google) Code Review
2 changed files with 30 additions and 0 deletions

View File

@@ -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());
}
}
/**

View File

@@ -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