/* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.example.android.directshare; import android.content.ComponentName; import android.content.IntentFilter; import android.graphics.drawable.Icon; import android.os.Bundle; import android.service.chooser.ChooserTarget; import android.service.chooser.ChooserTargetService; import java.util.ArrayList; import java.util.List; /** * Provides the Direct Share items to the system. */ public class SampleChooserTargetService extends ChooserTargetService { @Override public List<ChooserTarget> onGetChooserTargets(ComponentName targetActivityName, IntentFilter matchedFilter) { ComponentName componentName = new ComponentName(getPackageName(), SendMessageActivity.class.getCanonicalName()); // The list of Direct Share items. The system will show the items the way they are sorted // in this list. ArrayList<ChooserTarget> targets = new ArrayList<>(); for (int i = 0; i < Contact.CONTACTS.length; ++i) { Contact contact = Contact.byId(i); Bundle extras = new Bundle(); extras.putInt(Contact.ID, i); targets.add(new ChooserTarget( // The name of this target. contact.getName(), // The icon to represent this target. Icon.createWithResource(this, contact.getIcon()), // The ranking score for this target (0.0-1.0); the system will omit items with // low scores when there are too many Direct Share items. 0.5f, // The name of the component to be launched if this target is chosen. componentName, // The extra values here will be merged into the Intent when this target is // chosen. extras)); } return targets; } }