Мне нужно показать больше данных, чем могли бы показать срезы, поэтому я использовал метод setSeeMoreAction (PendingIntent intent), который добавляет возможность «видеть больше» в конце слайса, и мы можем установить, какое действие вызывать при касании егопри помощи PendingIntent.
При тестировании моих слайсов в приложении для просмотра слайсов я вижу возможность «показать больше» и щелкаю на том, который работает, как и ожидалось, но когда я тестирую его с помощью «App Actions Test Tool», это не показывает эту возможность «увидеть больше».Вместо этого иногда (хотя иногда ничего не отображается) он показывает нажатие кнопки «Открыть приложение», при которой не запускается ожидающее намерение, о котором я упоминал в setSeeMoreAction, вместо этого он запускает SliceAction, упомянутый в setPrimaryAction () RowBuilder.
Вот мой код:
override fun onBindSlice(sliceUri: Uri): Slice? {
if(!isLoggedIn()) // if user is not logged in
{
return createLoginSlice(sliceUri).build()
}
var head = ListBuilder.HeaderBuilder()
.setTitle("Slice Title")
var slice = ListBuilder(context,sliceUri,ListBuilder.INFINITY)
.setSeeMoreAction(orderActivityPendingIntent())
.setHeader(head)
for(i in 0 .. 6) {
icon = IconCompat.createWithResource(context.applicationContext, R.drawable.placeholder)
var row = ListBuilder.RowBuilder()
.setTitleItem(icon!!,ListBuilder.LARGE_IMAGE,true)
.setTitle(orderName.get(i),true)
.setSubtitle(orderStatus.get(i),true)
.addEndItem(IconCompat.createWithResource(context, colorScheme.get(i)),ListBuilder.SMALL_IMAGE)
.setPrimaryAction(openOrderActivity(orderId.get(i)))
slice.addRow(row)
}
return slice.build()
}
@RequiresApi(Build.VERSION_CODES.KITKAT)
private fun openOrderActivity(orderNo: String?): SliceAction {
val intent = Intent(Intent.ACTION_VIEW,
Uri.parse(context.getString(R.string.orderURI)+orderNo))
return SliceAction.create(
PendingIntent.getActivity(context, 0, intent, 0),
IconCompat.createWithResource(context, R.drawable.abc_ic_star_black_36dp),
ListBuilder.ICON_IMAGE,
"Open Order Activity."
)
}
private fun orderActivityPendingIntent(): PendingIntent {
// create intent for order page here
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(context.getString(R.string.orderPageURI)))
return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
}