Merge "Add a primary action to slices from keyguard slice provider" into pi-dev am: 1031bf5f76

am: 6f4f0da87e

Change-Id: I0a9c0243b87bad281776b5560c8c57945934f855
This commit is contained in:
Mady Mellor
2018-05-31 16:35:21 -07:00
committed by android-build-merger
2 changed files with 27 additions and 1 deletions

View File

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

View File

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