summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adrian Roos <roosa@google.com> 2016-05-26 17:17:02 -0700
committer Adrian Roos <roosa@google.com> 2016-05-26 17:57:25 -0700
commita8e18ef9110329bc3d3634d02845686de167afd0 (patch)
treeb4d9816bbed2941e638861552f671266e1afbee7
parent38b5946fae50d4e9e8f32c985983d03a4437910d (diff)
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
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java
index bc33b305432e..cdfdad464065 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java
@@ -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;