DragLayer.java revision 0e26059548e429e5d1c973bebe4c561bead2926f
131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project/* 231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * 431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * you may not use this file except in compliance with the License. 631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * You may obtain a copy of the License at 731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * 831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * 1031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 1231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * See the License for the specific language governing permissions and 1431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * limitations under the License. 1531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */ 1631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 17a5902524d4403885eb4c50360bf3465c6be796efJoe Onoratopackage com.android.launcher2; 1831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 1931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.content.Context; 2031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.util.AttributeSet; 2131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.view.KeyEvent; 220e26059548e429e5d1c973bebe4c561bead2926fMichael Jurkaimport android.view.MotionEvent; 23ea3763c2672f77539538af8cdd395ad97058eaabRomain Guyimport android.view.View; 2431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.widget.FrameLayout; 2531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 2631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project/** 270e26059548e429e5d1c973bebe4c561bead2926fMichael Jurka * A ViewGroup that coordinates dragging across its descendants 2831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */ 2900acb123c5100f06b8e89e8ec8978ebafc6f6d26Joe Onoratopublic class DragLayer extends FrameLayout { 3000acb123c5100f06b8e89e8ec8978ebafc6f6d26Joe Onorato DragController mDragController; 3131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 3231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project /** 3331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Used to create a new DragLayer from XML. 3431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * 3531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * @param context The application's context. 360e26059548e429e5d1c973bebe4c561bead2926fMichael Jurka * @param attrs The attributes set containing the Workspace's customization values. 3731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */ 3831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public DragLayer(Context context, AttributeSet attrs) { 3931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project super(context, attrs); 4031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 4131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 4200acb123c5100f06b8e89e8ec8978ebafc6f6d26Joe Onorato public void setDragController(DragController controller) { 4300acb123c5100f06b8e89e8ec8978ebafc6f6d26Joe Onorato mDragController = controller; 4431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 4500acb123c5100f06b8e89e8ec8978ebafc6f6d26Joe Onorato 4631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project @Override 4731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public boolean dispatchKeyEvent(KeyEvent event) { 4800acb123c5100f06b8e89e8ec8978ebafc6f6d26Joe Onorato return mDragController.dispatchKeyEvent(event) || super.dispatchKeyEvent(event); 4931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 5031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 5131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project @Override 5231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public boolean onInterceptTouchEvent(MotionEvent ev) { 534db52312c10e822162a21c60404f06f6e507f0d6Joe Onorato return mDragController.onInterceptTouchEvent(ev); 5431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 5531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 5631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project @Override 5731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public boolean onTouchEvent(MotionEvent ev) { 584db52312c10e822162a21c60404f06f6e507f0d6Joe Onorato return mDragController.onTouchEvent(ev); 5991a9c9636f10f1e12cd1f660b2e330634fbdc7dcRomain Guy } 60ea3763c2672f77539538af8cdd395ad97058eaabRomain Guy 61ea3763c2672f77539538af8cdd395ad97058eaabRomain Guy @Override 62ea3763c2672f77539538af8cdd395ad97058eaabRomain Guy public boolean dispatchUnhandledMove(View focused, int direction) { 63ea3763c2672f77539538af8cdd395ad97058eaabRomain Guy return mDragController.dispatchUnhandledMove(focused, direction); 64ea3763c2672f77539538af8cdd395ad97058eaabRomain Guy } 6531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project} 66