summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java33
1 files changed, 20 insertions, 13 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
index dbaa297b7b43..68a252b2caba 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
@@ -37,6 +37,7 @@ import android.provider.Settings;
import android.service.notification.ZenModeConfig;
import android.text.TextUtils;
import android.text.style.StyleSpan;
+import android.util.Log;
import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice;
@@ -212,21 +213,27 @@ public class KeyguardSliceProvider extends SliceProvider implements
@AnyThread
@Override
public Slice onBindSlice(Uri sliceUri) {
- Trace.beginSection("KeyguardSliceProvider#onBindSlice");
- Slice slice;
- synchronized (this) {
- ListBuilder builder = new ListBuilder(getContext(), mSliceUri, ListBuilder.INFINITY);
- if (needsMediaLocked()) {
- addMediaLocked(builder);
- } else {
- builder.addRow(new RowBuilder(mDateUri).setTitle(mLastText));
+ Slice slice = null;
+ try {
+ Trace.beginSection("KeyguardSliceProvider#onBindSlice");
+ synchronized (this) {
+ ListBuilder builder = new ListBuilder(getContext(), mSliceUri,
+ ListBuilder.INFINITY);
+ if (needsMediaLocked()) {
+ addMediaLocked(builder);
+ } else {
+ builder.addRow(new RowBuilder(mDateUri).setTitle(mLastText));
+ }
+ addNextAlarmLocked(builder);
+ addZenModeLocked(builder);
+ addPrimaryActionLocked(builder);
+ slice = builder.build();
}
- addNextAlarmLocked(builder);
- addZenModeLocked(builder);
- addPrimaryActionLocked(builder);
- slice = builder.build();
+ } catch (IllegalStateException e) {
+ Log.w(TAG, "Could not initialize slice", e);
+ } finally {
+ Trace.endSection();
}
- Trace.endSection();
return slice;
}