diff options
author | 2018-05-31 16:35:21 -0700 | |
---|---|---|
committer | 2018-05-31 16:35:21 -0700 | |
commit | 38bec182d2ac52f6a5e1c63c659b17d9def93e0f (patch) | |
tree | 4478e4ea68b3e80fd1d8c94f1dea541148a40e51 | |
parent | b841d0dc95b6095d23cb00b43fe11f529c002f36 (diff) | |
parent | 6f4f0da87ee3b11094b7e678db7637ed870a3df5 (diff) |
Merge "Add a primary action to slices from keyguard slice provider" into pi-dev am: 1031bf5f76
am: 6f4f0da87e
Change-Id: I0a9c0243b87bad281776b5560c8c57945934f855
-rw-r--r-- | packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java | 11 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java | 17 |
2 files changed, 27 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java index 5a84fa523f67..b7a562bfac5d 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java @@ -52,6 +52,7 @@ import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.tuner.TunerService; import com.android.systemui.util.wakelock.KeepAwakeAnimationListener; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.function.Consumer; @@ -158,7 +159,15 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe ListContent lc = new ListContent(getContext(), mSlice, null, 0, 0); mHasHeader = lc.hasHeader(); - List<SliceItem> subItems = lc.getRowItems(); + List<SliceItem> subItems = new ArrayList<SliceItem>(); + for (int i = 0; i < lc.getRowItems().size(); i++) { + SliceItem subItem = lc.getRowItems().get(i); + String itemUri = subItem.getSlice().getUri().toString(); + // Filter out the action row + if (!KeyguardSliceProvider.KEYGUARD_ACTION_URI.equals(itemUri)) { + subItems.add(subItem); + } + } if (!mHasHeader) { mTitle.setVisibility(GONE); } else { diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java index 8b9bf776332b..fe8ea34f34c5 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java @@ -19,6 +19,7 @@ package com.android.systemui.keyguard; import android.app.ActivityManager; import android.app.AlarmManager; import android.app.NotificationManager; +import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; @@ -48,6 +49,7 @@ import androidx.slice.Slice; import androidx.slice.SliceProvider; import androidx.slice.builders.ListBuilder; import androidx.slice.builders.ListBuilder.RowBuilder; +import androidx.slice.builders.SliceAction; /** * Simple Slice provider that shows the current date. @@ -60,6 +62,8 @@ public class KeyguardSliceProvider extends SliceProvider implements public static final String KEYGUARD_NEXT_ALARM_URI = "content://com.android.systemui.keyguard/alarm"; public static final String KEYGUARD_DND_URI = "content://com.android.systemui.keyguard/dnd"; + public static final String KEYGUARD_ACTION_URI = + "content://com.android.systemui.keyguard/action"; /** * Only show alarms that will ring within N hours. @@ -127,9 +131,22 @@ public class KeyguardSliceProvider extends SliceProvider implements builder.addRow(new RowBuilder(builder, mDateUri).setTitle(mLastText)); addNextAlarm(builder); addZenMode(builder); + addPrimaryAction(builder); return builder.build(); } + protected void addPrimaryAction(ListBuilder builder) { + // Add simple action because API requires it; Keyguard handles presenting + // its own slices so this action + icon are actually never used. + PendingIntent pi = PendingIntent.getActivity(getContext(), 0, new Intent(), 0); + Icon icon = Icon.createWithResource(getContext(), R.drawable.ic_access_alarms_big); + SliceAction action = new SliceAction(pi, icon, mLastText); + + RowBuilder primaryActionRow = new RowBuilder(builder, Uri.parse(KEYGUARD_ACTION_URI)) + .setPrimaryAction(action); + builder.addRow(primaryActionRow); + } + protected void addNextAlarm(ListBuilder builder) { if (TextUtils.isEmpty(mNextAlarm)) { return; |