16fa0c9b0875cd65066082d047f617d689fd92018Jason Monk/* 26fa0c9b0875cd65066082d047f617d689fd92018Jason Monk * Copyright 2017 The Android Open Source Project 36fa0c9b0875cd65066082d047f617d689fd92018Jason Monk * 46fa0c9b0875cd65066082d047f617d689fd92018Jason Monk * Licensed under the Apache License, Version 2.0 (the "License"); 56fa0c9b0875cd65066082d047f617d689fd92018Jason Monk * you may not use this file except in compliance with the License. 66fa0c9b0875cd65066082d047f617d689fd92018Jason Monk * You may obtain a copy of the License at 76fa0c9b0875cd65066082d047f617d689fd92018Jason Monk * 86fa0c9b0875cd65066082d047f617d689fd92018Jason Monk * http://www.apache.org/licenses/LICENSE-2.0 96fa0c9b0875cd65066082d047f617d689fd92018Jason Monk * 106fa0c9b0875cd65066082d047f617d689fd92018Jason Monk * Unless required by applicable law or agreed to in writing, software 116fa0c9b0875cd65066082d047f617d689fd92018Jason Monk * distributed under the License is distributed on an "AS IS" BASIS, 126fa0c9b0875cd65066082d047f617d689fd92018Jason Monk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136fa0c9b0875cd65066082d047f617d689fd92018Jason Monk * See the License for the specific language governing permissions and 146fa0c9b0875cd65066082d047f617d689fd92018Jason Monk * limitations under the License. 156fa0c9b0875cd65066082d047f617d689fd92018Jason Monk */ 166fa0c9b0875cd65066082d047f617d689fd92018Jason Monk 1785ef1446b82c8783a50af92c4cb1389fe0d0e907Aurimas Liutikaspackage androidx.slice; 186fa0c9b0875cd65066082d047f617d689fd92018Jason Monk 196fa0c9b0875cd65066082d047f617d689fd92018Jason Monkimport static android.app.slice.Slice.HINT_LARGE; 206fa0c9b0875cd65066082d047f617d689fd92018Jason Monkimport static android.app.slice.Slice.HINT_LIST; 216fa0c9b0875cd65066082d047f617d689fd92018Jason Monkimport static android.app.slice.Slice.HINT_NO_TINT; 226fa0c9b0875cd65066082d047f617d689fd92018Jason Monkimport static android.app.slice.Slice.HINT_TITLE; 236fa0c9b0875cd65066082d047f617d689fd92018Jason Monk 246fa0c9b0875cd65066082d047f617d689fd92018Jason Monkimport android.app.PendingIntent; 256fa0c9b0875cd65066082d047f617d689fd92018Jason Monkimport android.content.Intent; 266fa0c9b0875cd65066082d047f617d689fd92018Jason Monkimport android.net.Uri; 276fa0c9b0875cd65066082d047f617d689fd92018Jason Monk 283ec422a2e2a46b51d4cc6926fcaa35caacbdf98dJason Monkimport androidx.core.graphics.drawable.IconCompat; 2985ef1446b82c8783a50af92c4cb1389fe0d0e907Aurimas Liutikasimport androidx.slice.Slice.Builder; 3085ef1446b82c8783a50af92c4cb1389fe0d0e907Aurimas Liutikasimport androidx.slice.core.test.R; 316fa0c9b0875cd65066082d047f617d689fd92018Jason Monk 3285ef1446b82c8783a50af92c4cb1389fe0d0e907Aurimas Liutikaspublic class SliceTestProvider extends androidx.slice.SliceProvider { 336fa0c9b0875cd65066082d047f617d689fd92018Jason Monk 346fa0c9b0875cd65066082d047f617d689fd92018Jason Monk @Override 356fa0c9b0875cd65066082d047f617d689fd92018Jason Monk public boolean onCreateSliceProvider() { 362e60beb64db1e59890f6a0674a93963e36629b6eJason Monk getContext().getPackageName(); 376fa0c9b0875cd65066082d047f617d689fd92018Jason Monk return true; 386fa0c9b0875cd65066082d047f617d689fd92018Jason Monk } 396fa0c9b0875cd65066082d047f617d689fd92018Jason Monk 406fa0c9b0875cd65066082d047f617d689fd92018Jason Monk @Override 416fa0c9b0875cd65066082d047f617d689fd92018Jason Monk public Slice onBindSlice(Uri sliceUri) { 426fa0c9b0875cd65066082d047f617d689fd92018Jason Monk switch (sliceUri.getPath()) { 436fa0c9b0875cd65066082d047f617d689fd92018Jason Monk case "/set_flag": 446fa0c9b0875cd65066082d047f617d689fd92018Jason Monk SliceTest.sFlag = true; 456fa0c9b0875cd65066082d047f617d689fd92018Jason Monk break; 466fa0c9b0875cd65066082d047f617d689fd92018Jason Monk case "/subslice": 476fa0c9b0875cd65066082d047f617d689fd92018Jason Monk Builder b = new Builder(sliceUri); 486fa0c9b0875cd65066082d047f617d689fd92018Jason Monk return b.addSubSlice(new Slice.Builder(b).build(), "subslice").build(); 496fa0c9b0875cd65066082d047f617d689fd92018Jason Monk case "/text": 506fa0c9b0875cd65066082d047f617d689fd92018Jason Monk return new Slice.Builder(sliceUri).addText("Expected text", "text").build(); 516fa0c9b0875cd65066082d047f617d689fd92018Jason Monk case "/icon": 526fa0c9b0875cd65066082d047f617d689fd92018Jason Monk return new Slice.Builder(sliceUri).addIcon( 533ec422a2e2a46b51d4cc6926fcaa35caacbdf98dJason Monk IconCompat.createWithResource(getContext(), R.drawable.size_48x48), 546fa0c9b0875cd65066082d047f617d689fd92018Jason Monk "icon").build(); 556fa0c9b0875cd65066082d047f617d689fd92018Jason Monk case "/action": 566fa0c9b0875cd65066082d047f617d689fd92018Jason Monk Builder builder = new Builder(sliceUri); 576fa0c9b0875cd65066082d047f617d689fd92018Jason Monk Slice subSlice = new Slice.Builder(builder).build(); 586fa0c9b0875cd65066082d047f617d689fd92018Jason Monk PendingIntent broadcast = PendingIntent.getBroadcast(getContext(), 0, 596fa0c9b0875cd65066082d047f617d689fd92018Jason Monk new Intent(getContext().getPackageName() + ".action"), 0); 606fa0c9b0875cd65066082d047f617d689fd92018Jason Monk return builder.addAction(broadcast, subSlice, "action").build(); 6198ae4f80b7244070c20d5c3a16245df5cd0c5df8Jason Monk case "/int": 6298ae4f80b7244070c20d5c3a16245df5cd0c5df8Jason Monk return new Slice.Builder(sliceUri).addInt(0xff121212, "int").build(); 636fa0c9b0875cd65066082d047f617d689fd92018Jason Monk case "/timestamp": 646fa0c9b0875cd65066082d047f617d689fd92018Jason Monk return new Slice.Builder(sliceUri).addTimestamp(43, "timestamp").build(); 656fa0c9b0875cd65066082d047f617d689fd92018Jason Monk case "/hints": 666fa0c9b0875cd65066082d047f617d689fd92018Jason Monk return new Slice.Builder(sliceUri) 676fa0c9b0875cd65066082d047f617d689fd92018Jason Monk .addHints(HINT_LIST) 686fa0c9b0875cd65066082d047f617d689fd92018Jason Monk .addText("Text", null, HINT_TITLE) 693ec422a2e2a46b51d4cc6926fcaa35caacbdf98dJason Monk .addIcon(IconCompat.createWithResource(getContext(), R.drawable.size_48x48), 706fa0c9b0875cd65066082d047f617d689fd92018Jason Monk null, HINT_NO_TINT, HINT_LARGE) 716fa0c9b0875cd65066082d047f617d689fd92018Jason Monk .build(); 726fa0c9b0875cd65066082d047f617d689fd92018Jason Monk } 736fa0c9b0875cd65066082d047f617d689fd92018Jason Monk return new Slice.Builder(sliceUri).build(); 746fa0c9b0875cd65066082d047f617d689fd92018Jason Monk } 756fa0c9b0875cd65066082d047f617d689fd92018Jason Monk 766fa0c9b0875cd65066082d047f617d689fd92018Jason Monk} 77