package com.iwedia.gui.epg; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; import android.widget.Gallery; public class EPGDownGallery extends Gallery { public static final String TAG = "EPGDownGallery"; private EPGHandlingClass epgHandler; public EPGDownGallery(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } public EPGDownGallery(Context context, AttributeSet attrs) { super(context, attrs); init(); } public EPGDownGallery(Context context) { super(context); init(); } private void init() { setFocusable(false); setEnabled(false); setClickable(false); setFocusableInTouchMode(false); } @Override public boolean onTouchEvent(MotionEvent event) { return true; } @Override public boolean onSingleTapUp(MotionEvent e) { return true; } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return true; } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (hasFocus()) { switch (keyCode) { case KeyEvent.KEYCODE_BACK: case KeyEvent.KEYCODE_SEARCH: { epgHandler.hideEPGDialog(); return true; } case KeyEvent.KEYCODE_DPAD_LEFT: { epgHandler.goLeft(false); break; } case KeyEvent.KEYCODE_DPAD_RIGHT: { epgHandler.goRigth(false); break; } case KeyEvent.KEYCODE_DPAD_UP: case KeyEvent.KEYCODE_DPAD_DOWN: { if (epgHandler.getMainLayout().getChildCount() > 2) { epgHandler.getMainLayout().getChildAt(2).requestFocus(); } break; } default: break; } if (epgHandler != null) { epgHandler.giveFocusToDesiredChild(); } Log.d(TAG, "GALLERY ON KEY DOWN HAS FOCUS"); return true; } else { Log.d(TAG, "GALLERY ON KEY DOWN DONT HAS FOCUS"); return super.onKeyDown(keyCode, event); } } public void setEpgHandler(EPGHandlingClass epgHandler) { this.epgHandler = epgHandler; } }