package com.iwedia.gui.components.dialogs; import android.content.Context; import android.content.res.TypedArray; import android.view.View; import com.iwedia.comm.ITeletextControl; import com.iwedia.gui.MainActivity; import com.iwedia.gui.components.A4TVDialog; import com.iwedia.gui.components.A4TVSpinner; import com.iwedia.gui.components.A4TVSpinner.OnSelectA4TVSpinnerListener; import com.iwedia.gui.mainmenu.DialogManager; import com.iwedia.gui.mainmenu.MainMenuContent; import java.util.ArrayList; /** * Subtitle settings dialog * * @author Sasa Jagodin */ public class TeletextSettingsDialog extends A4TVDialog implements A4TVDialogInterface, android.view.View.OnClickListener { /** IDs for spinners */ public static final int TV_MENU_TELETEXT_SETTINGS_TELETEXT_FIRST_LANGUAGE = 755, TV_MENU_TELETEXT_SETTINGS_TELETEXT_SECOND_LANGUAGE = 756; // fields for creating dialogs private ArrayList<ArrayList<Integer>> contentList = new ArrayList<ArrayList<Integer>>(), contentListIDs = new ArrayList<ArrayList<Integer>>(); private ArrayList<Integer> titleIDs = new ArrayList<Integer>(); private A4TVSpinner teletextFirst, teletextSecond; public TeletextSettingsDialog(Context context) { super(context, checkTheme(context), 0); // fill lists returnArrayListsWithDialogContents(contentList, contentListIDs, titleIDs); // set content to dialog fillDialog(); // set attributes setDialogAttributes(); teletextFirst = (A4TVSpinner) findViewById(TV_MENU_TELETEXT_SETTINGS_TELETEXT_FIRST_LANGUAGE); teletextSecond = (A4TVSpinner) findViewById(TV_MENU_TELETEXT_SETTINGS_TELETEXT_SECOND_LANGUAGE); // set listeners for spinners teletextFirst .setOnSelectA4TVSpinnerListener(new OnSelectA4TVSpinnerListener() { @Override public void onSelect(A4TVSpinner spinner, int index, String[] contents) { try { MainActivity.service.getTeletextControl() .setFirstTeletextLanguage(index); } catch (Exception e) { e.printStackTrace(); } } }); teletextSecond .setOnSelectA4TVSpinnerListener(new OnSelectA4TVSpinnerListener() { @Override public void onSelect(A4TVSpinner spinner, int index, String[] contents) { try { MainActivity.service.getTeletextControl() .setSecondTeletextLanguage(index); } catch (Exception e) { e.printStackTrace(); } } }); } @Override public void show() { fillViews(); super.show(); } private void fillViews() { ITeletextControl teletextControl = null; try { teletextControl = MainActivity.service.getTeletextControl(); } catch (Exception e) { e.printStackTrace(); } /*********************** FIRST TELETEXT LANGUAGE **************************/ int first = 0; try { if (teletextControl != null) { first = teletextControl.getFirstTeletextLanguage(); } } catch (Exception e) { e.printStackTrace(); } teletextFirst.setSelection(first); /*********************** SECOND TELETEXT LANGUAGE **************************/ int second = 0; try { if (teletextControl != null) { second = teletextControl.getSecondTeletextLanguage(); } } catch (Exception e) { e.printStackTrace(); } teletextSecond.setSelection(second); } @Override public void fillDialog() { View view = DialogManager.dialogCreator.fillDialogWithContents( contentList, contentListIDs, titleIDs, null, this, null);// , // pictureBackgroundID); setContentView(view); } @Override public void setDialogAttributes() { getWindow().getAttributes().width = MainActivity.dialogWidth; getWindow().getAttributes().height = MainActivity.dialogHeight; } /** * Function that load theme * * @param ctx * @return */ private static int checkTheme(Context ctx) { TypedArray atts = ctx.getTheme().obtainStyledAttributes( new int[] { com.iwedia.gui.R.attr.A4TVDialog }); int i = atts.getResourceId(0, 0); atts.recycle(); return i; } @Override public void onClick(View v) { } @Override public void returnArrayListsWithDialogContents( ArrayList<ArrayList<Integer>> contentList, ArrayList<ArrayList<Integer>> contentListIDs, ArrayList<Integer> titleIDs) { // clear old data in lists contentList.clear(); contentListIDs.clear(); titleIDs.clear(); // title titleIDs.add(com.iwedia.gui.R.drawable.settings_icon); titleIDs.add(com.iwedia.gui.R.drawable.tv_menu_icon); titleIDs.add(com.iwedia.gui.R.string.tv_menu_teletext_settings); // subtitle mode****************************************** ArrayList<Integer> list = new ArrayList<Integer>(); // teletext first language****************************************** list.add(MainMenuContent.TAGA4TVTextView); list.add(MainMenuContent.TAGA4TVSpinner); contentList.add(list); list = new ArrayList<Integer>(); list.add(com.iwedia.gui.R.string.tv_menu_teletext_settings_language); list.add(TV_MENU_TELETEXT_SETTINGS_TELETEXT_FIRST_LANGUAGE); contentListIDs.add(list); // teletext second language****************************************** list = new ArrayList<Integer>(); list.add(MainMenuContent.TAGA4TVTextView); list.add(MainMenuContent.TAGA4TVSpinner); contentList.add(list); list = new ArrayList<Integer>(); list.add(com.iwedia.gui.R.string.tv_menu_teletext_settings_second_language); list.add(TV_MENU_TELETEXT_SETTINGS_TELETEXT_SECOND_LANGUAGE); contentListIDs.add(list); } }