package com.iwedia.gui.keyhandlers; import android.content.DialogInterface; import android.util.Log; import android.view.KeyEvent; import android.view.View; import com.iwedia.gui.MainActivity; import com.iwedia.gui.listeners.MainKeyListener; import com.iwedia.gui.multimedia.MultimediaHandler; import com.iwedia.gui.osd.IOSDHandler; public class MultimediaPVRKeyHandler extends AppStateKeyHandler { private final String LOG_TAG = "MultimediaPVRKeyListener"; private MainActivity activity; public MultimediaPVRKeyHandler(MainActivity activity) { this.activity = activity; } @Override public boolean onKeyPressed(View v, DialogInterface dialog, int keyCode, KeyEvent event, boolean isFromMheg) { if (event.getAction() == KeyEvent.ACTION_DOWN) { Log.d(LOG_TAG, "KeyCode: " + keyCode); switch (keyCode) { // //////////////////////////////// // PIP // //////////////////////////////// case KeyEvent.KEYCODE_PROG_YELLOW: case KeyEvent.KEYCODE_Y: { // Get active content object and stop secondary display // playback Log.d(TAG, "YELLOW KEY "); /** * Dirty hack because state is not changed when PVR playback * is ongoing, there is no difference beetween beeing in * multimedia PVR dialog and PVR recording playback!!!! FIX * THIS! */ if (((MainActivity) activity).getMultimediaHandler() .getMultimediaDialog().isShowing() == false) { if (MainActivity.activity.getDualVideoManager().isPiP()) { MainActivity.activity.getDualVideoManager().stop( MainActivity.SECONDARY_DISPLAY_UNIT_ID); return true; } } else { return false; } // TODO: move to dualVideoManager // check if renderer if (MainActivity.activity.getPrimaryMultimediaVideoView() != null) { if (MainActivity.activity.getRendererController() .getmRendererState() != 0) { MainActivity.activity.getRendererController() .stop(); } else { if (MainActivity.activity.getMultimediaMode() == MainActivity.MULTIMEDIA_PIP) { MainActivity.activity .stopMultimediaVideo(MainActivity.MULTIMEDIA_PIP); } } return true; } return false; } // //////////////////////////////// // PAP // //////////////////////////////// case KeyEvent.KEYCODE_PROG_BLUE: case KeyEvent.KEYCODE_B: { Log.d(TAG, "BLUE KEY "); /** * Dirty hack because state is not changed when PVR playback * is ongoing, there is no difference beetween beeing in * multimedia PVR dialog and PVR recording playback!!!! FIX * THIS! */ if (((MainActivity) activity).getMultimediaHandler() .getMultimediaDialog().isShowing() == false) { if (MainActivity.activity.getDualVideoManager().isPaP()) { MainActivity.activity.getDualVideoManager().stop( MainActivity.SECONDARY_DISPLAY_UNIT_ID); return true; } } else { return false; } // TODO: move to dualVideoManager // check if renderer Log.d(TAG, "IS pap returned false - check if renderer ... "); if (MainActivity.activity.getPrimaryMultimediaVideoView() != null) { if (MainActivity.activity.getRendererController() .getmRendererState() != 0) { MainActivity.activity.getRendererController() .stop(); } else { if (MainActivity.activity.getMultimediaMode() == MainActivity.MULTIMEDIA_PAP) { MainActivity.activity .stopMultimediaVideo(MainActivity.MULTIMEDIA_PAP); } } return true; } return false; } // /////////////////////////////////////////////////////////////////// // BACk // /////////////////////////////////////////////////////////////////// // Stop PlayBack case KeyEvent.KEYCODE_BACK: case KeyEvent.KEYCODE_MEDIA_STOP: { activity.getMultimediaHandler().new LoadTaskMultimediaBack( "/", MultimediaHandler.LOAD_BACK_FIRST_SCREEN_FROM_PVR) .execute(); MultimediaHandler.secondScreenFolderLevel = 0; MainKeyListener .setAppState(MainKeyListener.MULTIMEDIA_FIRST); MultimediaHandler.multimediaScreen = MultimediaHandler.MULTIMEDIA_FIRST_SCREEN; return true; } // ///////////////////////////////////////////////////// // INFO BANNER // ////////////////////////////////////////////////////// case KeyEvent.KEYCODE_I: case KeyEvent.KEYCODE_INFO: { activity.getPageCurl().info(); return true; } // /////////////////////////////////////////////////////////////////// // VOLUME UP // /////////////////////////////////////////////////////////////////// case KeyEvent.KEYCODE_F8: case KeyEvent.KEYCODE_VOLUME_UP: { IOSDHandler curlHandler = activity.getPageCurl(); curlHandler.volume(VOLUME_UP, true); return true; } // /////////////////////////////////////////////////////////////////// // VOLUME DOWN // /////////////////////////////////////////////////////////////////// case KeyEvent.KEYCODE_F7: case KeyEvent.KEYCODE_VOLUME_DOWN: { IOSDHandler curlHandler = activity.getPageCurl(); curlHandler.volume(VOLUME_DOWN, true); return true; } // /////////////////////////////////////////////////////////////////// // VOLUME MUTE // /////////////////////////////////////////////////////////////////// case KeyEvent.KEYCODE_MUTE: { IOSDHandler curlHandler = activity.getPageCurl(); curlHandler.volume(VOLUME_MUTE, true); return true; } default: { return false; } } } return false; } }