Fix spurious crashes in StatusBarIconView
Fixes a crash that happens when we cannot look up a package's resources for reasons. Change-Id: I4884536a3eefa8fe82bd274925241f4c798e08e3 Fixes: 28982204
This commit is contained in:
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar;
|
||||
|
||||
import android.app.Notification;
|
||||
import android.content.Context;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Canvas;
|
||||
@@ -25,6 +26,7 @@ import android.graphics.Paint;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.Icon;
|
||||
import android.os.Parcelable;
|
||||
import android.os.UserHandle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.AttributeSet;
|
||||
@@ -325,8 +327,20 @@ public class StatusBarIconView extends AnimatedImageView {
|
||||
|
||||
|
||||
public static String contentDescForNotification(Context c, Notification n) {
|
||||
Notification.Builder builder = Notification.Builder.recoverBuilder(c, n);
|
||||
String appName = builder.loadHeaderAppName();
|
||||
String appName = "";
|
||||
try {
|
||||
Notification.Builder builder = Notification.Builder.recoverBuilder(c, n);
|
||||
appName = builder.loadHeaderAppName();
|
||||
} catch (RuntimeException e) {
|
||||
Log.e(TAG, "Unable to recover builder", e);
|
||||
// Trying to get the app name from the app info instead.
|
||||
Parcelable appInfo = n.extras.getParcelable(
|
||||
Notification.EXTRA_BUILDER_APPLICATION_INFO);
|
||||
if (appInfo instanceof ApplicationInfo) {
|
||||
appName = String.valueOf(((ApplicationInfo) appInfo).loadLabel(
|
||||
c.getPackageManager()));
|
||||
}
|
||||
}
|
||||
|
||||
CharSequence title = n.extras.getCharSequence(Notification.EXTRA_TITLE);
|
||||
CharSequence ticker = n.tickerText;
|
||||
|
||||
Reference in New Issue
Block a user