17fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay/*
27fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay * Copyright 2017 The Android Open Source Project
37fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay *
47fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay * Licensed under the Apache License, Version 2.0 (the "License");
57fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay * you may not use this file except in compliance with the License.
67fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay * You may obtain a copy of the License at
77fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay *
87fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay *      http://www.apache.org/licenses/LICENSE-2.0
97fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay *
107fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay * Unless required by applicable law or agreed to in writing, software
117fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay * distributed under the License is distributed on an "AS IS" BASIS,
127fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay * See the License for the specific language governing permissions and
147fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay * limitations under the License.
157fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay */
167fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay
172a32c7e1264b14a20ed900abadea828b804a46ceAurimas Liutikaspackage androidx.recyclerview.selection;
187fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay
197fb763509e07f98d650efc25c91bff8b1cb239acSteve McKayimport android.view.MotionEvent;
207fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay
2160dadaeed4f5cee272b575dfde6c02e3506a2fa0Aurimas Liutikasimport androidx.annotation.NonNull;
222a32c7e1264b14a20ed900abadea828b804a46ceAurimas Liutikasimport androidx.recyclerview.selection.ItemDetailsLookup.ItemDetails;
237fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay
247fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay/**
257fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay * Register an OnItemActivatedListener to be notified when an item is activated
267fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay * (tapped or double clicked).
277fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay *
287fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay * @param <K> Selection key type. @see {@link StorageStrategy} for supported types.
297fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay */
307fb763509e07f98d650efc25c91bff8b1cb239acSteve McKaypublic interface OnItemActivatedListener<K> {
317fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay
327fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay    /**
337fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay     * Called when an item is "activated". An item is activated, for example, when no selection
347fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay     * exists and the user taps an item with her finger, or double clicks an item with a
357fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay     * pointing device like a Mouse.
367fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay     *
377fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay     * @param item details of the item.
387fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay     * @param e the event associated with item.
397fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay     *
407fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay     * @return true if the event was handled.
417fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay     */
427fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay    boolean onItemActivated(@NonNull ItemDetails<K> item, @NonNull MotionEvent e);
437fb763509e07f98d650efc25c91bff8b1cb239acSteve McKay}
44