package com.iwedia.gui.keyhandlers;
import android.content.DialogInterface;
import android.os.RemoteException;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import com.iwedia.comm.teletext.TeletextMode;
import com.iwedia.dtv.types.UserControl;
import com.iwedia.gui.MainActivity;
import com.iwedia.gui.graphics.TeletextDialogView;
import com.iwedia.gui.listeners.MainKeyListener;
public class TeletextKeyHandler extends AppStateKeyHandler {
private final String LOG_TAG = "TeletextKeyListener";
private MainActivity activity;
public TeletextKeyHandler(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);
TeletextDialogView teletextDialogView = activity
.getTeletextDialogView();
TeletextMode teletextMode;
// if app receives TELETEXT key while in teletext state - change
// teletext mode or turn it off (FULL MODE -> MIX MODE -> OFF).
if ((keyCode == KeyEvent.KEYCODE_F2)
|| (keyCode == KeyEvent.KEYCODE_F5)) {
try {
teletextMode = teletextDialogView.getMode();
Log.d(TAG, "Teletext mode - " + teletextMode);
if (teletextMode == TeletextMode.FULL) {
teletextDialogView.show(TeletextMode.HALF, 0);
} else if (teletextMode == TeletextMode.HALF) {
teletextDialogView.show(TeletextMode.MIX, 0);
// MainActivity.service.getTeletextControl().setTeletextMode(TeletextMode.MIX);
// MainActivity.service.getTeletextControl().show(TeletextMode.MIX);
} else {
if (!teletextDialogView.hide()) {
Log.d(TAG, "Problem hiding teletext!");
} else {
if (MainActivity.activity.getSubtitleDialogView()
.isOn()) {
int index = MainActivity.service
.getSubtitleControl()
.getCurrentSubtitleTrackIndex();
if (index > -1) {
MainActivity.activity
.getSubtitleDialogView()
.show(index);
}
}
/*
* if (MainActivity.showSubtitleWhenTeletextHide &&
* MainActivity.subtitleTitleTrackIndex >= 0 &&
* MainActivity.subtitleON == true) {
* MainActivity.showSubtitleDialog
* (MainActivity.subtitleTitleTrackIndex);
* MainActivity.subtitleTitleTrackIndex = -1;
* MainActivity.showSubtitleWhenTeletextHide =
* false; }
*/
}
teletextDialogView.setMode(TeletextMode.OFF);
MainKeyListener.returnToStoredAppState();
}
} catch (RemoteException e) {
System.out.println("Teletext can't be displayed/hidden!");
e.printStackTrace();
}
} else { // send key to teletext module.
try {
MainActivity.service.getTeletextControl().sendInputControl(
keyCode, UserControl.PRESSED);
} catch (RemoteException e) {
System.out
.println("Problem sending input control to teletext.");
e.printStackTrace();
}
}
return true;
}
return false;
}
}