17149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas/* 27149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * Copyright (C) 2017 The Android Open Source Project 37149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * 47149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * Licensed under the Apache License, Version 2.0 (the "License"); 57149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * you may not use this file except in compliance with the License. 67149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * You may obtain a copy of the License at 77149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * 87149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * http://www.apache.org/licenses/LICENSE-2.0 97149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * 107149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * Unless required by applicable law or agreed to in writing, software 117149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * distributed under the License is distributed on an "AS IS" BASIS, 127149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * See the License for the specific language governing permissions and 147149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * limitations under the License. 157149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas */ 167149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas 177149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikaspackage com.android.internal.widget.helper; 187149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas 197149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikasimport android.graphics.Canvas; 207149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikasimport android.view.View; 217149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas 227149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikasimport com.android.internal.widget.RecyclerView; 237149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas 247149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas/** 257149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * Utility class for {@link ItemTouchHelper} which handles item transformations for different 267149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * API versions. 277149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * <p/> 287149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * This class has methods that map to {@link ItemTouchHelper.Callback}'s drawing methods. Default 297149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * implementations in {@link ItemTouchHelper.Callback} call these methods with 307149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * {@link RecyclerView.ViewHolder#itemView} and {@link ItemTouchUIUtil} makes necessary changes 317149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * on the View depending on the API level. You can access the instance of {@link ItemTouchUIUtil} 327149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * via {@link ItemTouchHelper.Callback#getDefaultUIUtil()} and call its methods with the children 337149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * of ViewHolder that you want to apply default effects. 347149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * 357149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * @see ItemTouchHelper.Callback#getDefaultUIUtil() 367149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas */ 377149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikaspublic interface ItemTouchUIUtil { 387149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas 397149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas /** 407149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * The default implementation for {@link ItemTouchHelper.Callback#onChildDraw(Canvas, 417149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * RecyclerView, RecyclerView.ViewHolder, float, float, int, boolean)} 427149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas */ 437149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas void onDraw(Canvas c, RecyclerView recyclerView, View view, 447149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas float dX, float dY, int actionState, boolean isCurrentlyActive); 457149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas 467149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas /** 477149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * The default implementation for {@link ItemTouchHelper.Callback#onChildDrawOver(Canvas, 487149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * RecyclerView, RecyclerView.ViewHolder, float, float, int, boolean)} 497149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas */ 507149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas void onDrawOver(Canvas c, RecyclerView recyclerView, View view, 517149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas float dX, float dY, int actionState, boolean isCurrentlyActive); 527149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas 537149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas /** 547149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * The default implementation for {@link ItemTouchHelper.Callback#clearView(RecyclerView, 557149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * RecyclerView.ViewHolder)} 567149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas */ 577149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas void clearView(View view); 587149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas 597149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas /** 607149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * The default implementation for {@link ItemTouchHelper.Callback#onSelectedChanged( 617149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas * RecyclerView.ViewHolder, int)} 627149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas */ 637149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas void onSelected(View view); 647149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas} 657149a63961c5fe6706160bc717a3b6cbb083ca54Aurimas Liutikas 66