package com.iwedia.gui.components; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.res.TypedArray; import android.graphics.Color; import android.os.Handler; import android.os.RemoteException; import android.text.TextUtils.TruncateAt; import android.util.AttributeSet; import android.util.Log; import android.view.Gravity; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ScrollView; import com.iwedia.comm.enums.FontScale; import com.iwedia.comm.enums.ServiceListIndex; import com.iwedia.comm.system.date_time.TimeZone; import com.iwedia.dtv.io.SpdifMode; import com.iwedia.dtv.sound.SoundMode; import com.iwedia.dtv.subtitle.SubtitleMode; import com.iwedia.dtv.subtitle.SubtitleType; import com.iwedia.gui.MainActivity; import com.iwedia.gui.R; import com.iwedia.gui.ThemeUtils; import com.iwedia.gui.components.dialogs.ApplicationsManageManageAppsDialog; import com.iwedia.gui.components.dialogs.ChannelInstallationDialog; import com.iwedia.gui.components.dialogs.ChannelInstallationManualTunningDialog; import com.iwedia.gui.components.dialogs.InputDevicesSettingsDialog; import com.iwedia.gui.components.dialogs.LanguageAndKeyboardDialog; import com.iwedia.gui.components.dialogs.NetworkAdvancedManualConfigDialog; import com.iwedia.gui.components.dialogs.NetworkSettingsDialog; import com.iwedia.gui.components.dialogs.NetworkWirelessAddHiddenNetworkDialog; import com.iwedia.gui.components.dialogs.OSDSelectionDialog; import com.iwedia.gui.components.dialogs.OffTimersAddDialog; import com.iwedia.gui.components.dialogs.PVRManualEventReminderDialog; import com.iwedia.gui.components.dialogs.PVRManualScheduleDialog; import com.iwedia.gui.components.dialogs.PVRSettingsDialog; import com.iwedia.gui.components.dialogs.ParentalGuidanceDialog; import com.iwedia.gui.components.dialogs.PasswordSecurityDialog; import com.iwedia.gui.components.dialogs.PiPSettingsDialog; import com.iwedia.gui.components.dialogs.PictureSettingsDialog; import com.iwedia.gui.components.dialogs.SoundPostProcessingDialog; import com.iwedia.gui.components.dialogs.SoundSettingsDialog; import com.iwedia.gui.components.dialogs.SubtitleSettingsDialog; import com.iwedia.gui.components.dialogs.SystemSettingsDialog; import com.iwedia.gui.components.dialogs.TeletextSettingsDialog; import com.iwedia.gui.components.dialogs.TimeAndDateSettingsDialog; import com.iwedia.gui.components.dialogs.VoiceInputDialog; import com.iwedia.gui.config_handler.ConfigHandler; import com.iwedia.gui.listeners.MainKeyListener; import com.iwedia.gui.mainmenu.MainMenuContent; import com.iwedia.gui.pvr.A4TVStorageManager; import com.iwedia.gui.pvr.A4TVUSBStorage; import java.util.ArrayList; import java.util.List; /** * This is implemented for theme change * * @author Branimir Pavlovic */ public class A4TVSpinner extends Button implements OnClickListener { // Spinner // { private final String TAG = "A4TVSpinner"; private Context ctx; private int spinnerBackgroundPictureID; private int CHOOSEN_ITEM_INDEX = 0; private String[] contents; /** Dialog that act like spinners drop down list */ private A4TVDialog dialogContext; /** * Interface for notifying when item is selected in spinner context dialog * * @author Branimir Pavlovic */ public interface OnSelectA4TVSpinnerListener { public void onSelect(A4TVSpinner spinner, int index, String[] contents); } private OnSelectA4TVSpinnerListener mOnSelectA4TVSpinnerListener; public A4TVSpinner(Context context, AttributeSet attrs) { super(context, attrs); ctx = context; init(ctx); } public A4TVSpinner(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); ctx = context; init(ctx); } public A4TVSpinner(Context context) { super(context); ctx = context; init(ctx); } private void init(Context context) { setTag(MainMenuContent.TAGA4TVSpinner); TypedArray atts = context.getTheme().obtainStyledAttributes( new int[] { R.attr.A4TVSpinner }); this.spinnerBackgroundPictureID = atts.getResourceId(0, 0); setBackgroundResource(this.spinnerBackgroundPictureID); atts.recycle(); setOnClickListener(this); setMaxLines(2); // scrollable text setEllipsize(TruncateAt.MARQUEE); setMarqueeRepeatLimit(-1); setSingleLine(); setHorizontallyScrolling(true); setFocusableInTouchMode(true); initDropDownDialog(); } /** * Initialize context dialog */ private void initDropDownDialog() { dialogContext = MainActivity.activity.getDialogManager() .getContextSmallDialog(); dialogContext.setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { Log.d(TAG, "SPINNER CONTEXT DIALOG CANCEL"); A4TVSpinner.this.setSelected(false); } }); } /** * Set initial text to spinner * * @param index */ public void setInitialText() { Log.d(TAG, "SET INITIAL TEXT"); String[] strings; strings = getDialogContextItems(getId()); if (strings.length > 0) { setText(strings[0]); } } /** * Set selection to spinner * * @param index */ public void setSelection(int index) { if (contents == null) { contents = getDialogContextItems(getId()); } if (contents.length > index) { setText(contents[index]); CHOOSEN_ITEM_INDEX = index; } } /** * Set selection to spinner * * @param index */ public boolean setSelectionByString(String what) { if (contents == null) { contents = getDialogContextItems(getId()); } for (int i = 0; i < contents.length; i++) { if (what.equalsIgnoreCase(contents[i])) { Log.d(TAG, "METHOD (setSelectionByString) SELECTED: " + what); setSelection(i); return true; } } Log.d(TAG, "METHOD (setSelectionByString) NOT FOUND: " + what); return false; } /** * Again populate context dialog with refreshed elements */ public void refreshSpinnerElements() { dialogContext.setContentView(fillDialogWithElements(this)); } /** * On Spinner click listener */ @Override public void onClick(View v) { // get dialog background from theme TypedArray atts = ctx.getTheme().obtainStyledAttributes( new int[] { R.attr.A4TVDialog }); atts.recycle(); Log.d(TAG, "SPINNER ON CLICK"); // ////////////////////////////////////// // Veljko Ilkic // ////////////////////////////////////// // dialogContext = MainActivity.activity.getDialogManager() // .getContextSmallDialog(); // fill dialog with desired view dialogContext.setContentView(fillDialogWithElements(v)); // set dialog size dialogContext.getWindow().getAttributes().width = v.getWidth(); dialogContext.getWindow().getAttributes().height = MainActivity.dialogHeight / 3; int[] location = new int[2]; v.getLocationOnScreen(location); // set location dialogContext.getWindow().getAttributes().x = -MainActivity.screenWidth / 2 + location[0] + v.getWidth() / 2; // PE Android4TV if (MainActivity.screenHeight != MainActivity.SCREEN_HEIGHT_720P && MainActivity.screenHeight != MainActivity.SCREEN_HEIGHT_1080P) { dialogContext.getWindow().getAttributes().y = -MainActivity.screenHeight / 2 + location[1] + v.getHeight() / 2 + dialogContext.getWindow().getAttributes().height / 2; } // AMP Android4TV else { dialogContext.getWindow().getAttributes().y = -MainActivity.screenHeight / 2 + location[1] + v.getHeight() + dialogContext.getWindow().getAttributes().height / 2; } // show drop down dialog dialogContext.show(); setSelected(true); } /** * Creates view for context dialog * * @param spinnerID * @return */ public View fillDialogWithElements(final View v) { LinearLayout mainLinLayout = new LinearLayout(ctx); mainLinLayout.setLayoutParams(new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); mainLinLayout.setOrientation(LinearLayout.VERTICAL); // get drawable from theme for image source TypedArray atts = ctx.getTheme().obtainStyledAttributes( new int[] { R.attr.DialogContextBackground }); int backgroundID = atts.getResourceId(0, 0); atts.recycle(); mainLinLayout.setBackgroundResource(backgroundID); // create scroll view ScrollView mainScrollView = new ScrollView(ctx); mainScrollView.setLayoutParams(new LinearLayout.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); mainScrollView.setScrollbarFadingEnabled(false); mainScrollView.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET); // add scrollview to main view mainLinLayout.addView(mainScrollView); LinearLayout contentLinearLayout = new LinearLayout(ctx); contentLinearLayout.setLayoutParams(new ScrollView.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); contentLinearLayout.setOrientation(LinearLayout.VERTICAL); contentLinearLayout.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.TOP); // add content layout to scroll view mainScrollView.addView(contentLinearLayout); contents = getDialogContextItems(v.getId()); for (int i = 0; i < contents.length; i++) { // create small layout final LinearLayout smallLayoutHorizontal = new LinearLayout(ctx); smallLayoutHorizontal.setOrientation(LinearLayout.HORIZONTAL); smallLayoutHorizontal .setLayoutParams(new LinearLayout.LayoutParams( LayoutParams.MATCH_PARENT, MainActivity.dialogListElementHeight)); smallLayoutHorizontal.setPadding(10, 4, 10, 4); smallLayoutHorizontal.setGravity(Gravity.CENTER_VERTICAL); // create drop box item A4TVButton button = new A4TVButton(ctx, null); button.setLayoutParams(new LinearLayout.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); button.setText(contents[i]); button.setGravity(Gravity.CENTER); button.setId(i); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View vi) { if (CHOOSEN_ITEM_INDEX == ((A4TVButton) vi).getId()) { new A4TVToast(ctx).showToast(R.string.already_active); dialogContext.cancel(); return; } CHOOSEN_ITEM_INDEX = ((A4TVButton) vi).getId(); if (v.getId() != ParentalGuidanceDialog.TV_MENU_PARENTIAL_SECURITY_SETTINGS_PARENTIAL_GUIDANCE) { dialogContext.cancel(); A4TVSpinner.this.setText(((A4TVButton) vi).getText()); setSelected(false); } if (null != mOnSelectA4TVSpinnerListener) { mOnSelectA4TVSpinnerListener.onSelect(A4TVSpinner.this, CHOOSEN_ITEM_INDEX, contents); } } }); // set focus listener of button button.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { // get drawable from theme for small layout // background TypedArray atts = ctx.getTheme().obtainStyledAttributes( new int[] { R.attr.LayoutFocusDrawable }); int backgroundID = atts.getResourceId(0, 0); atts.recycle(); if (hasFocus) { v.setSelected(true); smallLayoutHorizontal .setBackgroundResource(backgroundID); } else { v.setSelected(false); smallLayoutHorizontal .setBackgroundColor(Color.TRANSPARENT); } } }); button.setBackgroundColor(Color.TRANSPARENT); if (i == CHOOSEN_ITEM_INDEX) { button.requestFocus(); } smallLayoutHorizontal.addView(button); contentLinearLayout.addView(smallLayoutHorizontal); if (i < contents.length - 1) { // create horizontal line ImageView horizLine = new ImageView(ctx); android.widget.LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( v.getWidth() - 10, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT); params.gravity = Gravity.CENTER_HORIZONTAL; horizLine.setLayoutParams(params); // get drawable from theme for image source atts = ctx.getTheme().obtainStyledAttributes( new int[] { R.attr.DialogContextDividerLine }); backgroundID = atts.getResourceId(0, 0); horizLine.setImageResource(backgroundID); // add view contentLinearLayout.addView(horizLine); } } return mainLinLayout; } /** * get spinner items * * @param spinnerID */ private String[] getDialogContextItems(int spinnerID) { switch (spinnerID) { case PictureSettingsDialog.PICTURE_SETTINGS_PICTURE_MODE: { return ctx.getResources().getStringArray( R.array.picture_mode_settings); } case InputDevicesSettingsDialog.tv_menu_factory_input_settings_input_labels: { // TODO: return new String[0]; } case PictureSettingsDialog.PICTURE_SETTINGS_THEME: { return ThemeUtils.getThemes(); } case PictureSettingsDialog.PICTURE_SETTINGS_NR: { return ctx.getResources().getStringArray( R.array.tv_menu_picture_settings_nr); } case PictureSettingsDialog.PICTURE_SETTINGS_ASPECT_RATIO: { switch (PictureSettingsDialog.getCurrentInputTypeGroup(0 /* * display * id */)) { case PictureSettingsDialog.DigitalInputTypeGroup: // If // digital // tuner, HDMI // or Component // source is // active the // following // picture // formats shall // be supported: // - Auto - // Normal 4:3 - // Zoom 14:9 - // Panorama - // Letterbox - // Full - Cinema // 16:9 - Cinema // 14:9 return ctx .getResources() .getStringArray( R.array.tv_menu_picture_settings_aspect_ratio_digital_group); case PictureSettingsDialog.AnalogInputTypeGroup: // * If // analog // tuner, SCART // or Composite // source is // active the // following // picture // formats shall // be supported: // - Auto - // Normal 4:3 - // Zoom 14:9 - // Panorama - // Letterbox - // Cinema 16:9 - // Cinema 14:9 return ctx .getResources() .getStringArray( R.array.tv_menu_picture_settings_aspect_ratio_analog_group); case PictureSettingsDialog.VGAInputTypeGroup: // * If VGA // (PC) // source is active, // device shall // support following // picture formats: // - Normal 4:3 - // Cinema 16:9 return ctx .getResources() .getStringArray( R.array.tv_menu_picture_settings_aspect_ratio_vga_group); } return ctx .getResources() .getStringArray( R.array.tv_menu_picture_settings_aspect_ratio_digital_group); } case ChannelInstallationDialog.TV_MENU_CHANNEL_INSTALLATION_SETTINGS_TUNER_TYPE: { // /////////////////////////// // Check config mode // /////////////////////////// ArrayList<String> spinnerOptionsList = new ArrayList<String>(); if (ConfigHandler.DVB_S) { if (ConfigHandler.ATSC) { spinnerOptionsList.add(getResources().getString( R.string.main_menu_content_list_atsc_s)); } else { spinnerOptionsList.add(getResources().getString( R.string.main_menu_content_list_dvb_s)); } } if (ConfigHandler.DVB_T) { if (ConfigHandler.ATSC) { spinnerOptionsList .add(getResources() .getString( R.string.tv_menu_channel_installation_settings_air)); } else { spinnerOptionsList.add(getResources().getString( R.string.main_menu_content_list_dvb_t)); } } if (ConfigHandler.DVB_C) { if (ConfigHandler.ATSC) { spinnerOptionsList .add(getResources() .getString( R.string.tv_menu_channel_installation_settings_cable)); } else { spinnerOptionsList.add(getResources().getString( R.string.main_menu_content_list_dvb_c)); } } if (ConfigHandler.IP) { spinnerOptionsList.add(getResources().getString( R.string.main_menu_content_list_ip)); } if (!ConfigHandler.ATSC) { if (ConfigHandler.ATV) { spinnerOptionsList.add(getResources().getString( R.string.main_menu_content_list_atv)); } } Log.d(TAG, spinnerOptionsList.toString()); String[] spinnerContent = new String[spinnerOptionsList.size()]; for (int i = 0; i < spinnerOptionsList.size(); i++) { spinnerContent[i] = spinnerOptionsList.get(i); } return spinnerContent; } case LanguageAndKeyboardDialog.TV_MENU_LANGUAGE_SETTINGS_TEXT_SIZE: { // TODO: use from proxy service return ctx.getResources().getStringArray( R.array.tv_menu_language_settings_text_size_array); } case LanguageAndKeyboardDialog.TV_MENU_LANGUAGE_SETTINGS_SELECT_COUNTRY: { // List<String> countryList = null; int count = 0; try { count = MainActivity.service.getSetupControl() .getCountryCount(); } catch (Exception e) { e.printStackTrace(); } String[] coountries = new String[count]; for (int i = 0; i < count; i++) { try { coountries[i] = MainActivity.service.getSetupControl() .getCountry(i); } catch (Exception e) { e.printStackTrace(); } } // if (countryList == null) { // countryList = new ArrayList<String>(); // countryList.add("Country 1"); // countryList.add("Country 2"); // countryList.add("Country 3"); // } // Log.d(TAG, "select country " + countryList.toString()); // String[] strarray = new String[countryList.size()]; // countryList.toArray(strarray); return coountries; } case LanguageAndKeyboardDialog.TV_MENU_LANGUAGE_SETTINGS_SELECT_LANGUAGE: { // TODO: use from proxy service List<String> languageList = null; try { languageList = MainActivity.service.getSystemControl() .getLanguageAndKeyboardControl() .getAvailableLanguages(); } catch (RemoteException e) { e.printStackTrace(); } catch (RuntimeException e) { e.printStackTrace(); } if (languageList == null) { languageList = new ArrayList<String>(); languageList.add("Language 1"); languageList.add("Language 2"); languageList.add("Language 3"); } Log.d(TAG, "Languages " + languageList.toString()); String[] strarray = new String[languageList.size()]; languageList.toArray(strarray); return strarray; } case NetworkSettingsDialog.TV_MENU_NETWORK_SETTINGS_NETWORK_TYPE: { return ctx.getResources().getStringArray( R.array.tv_menu_network_settings_network_type); } case NetworkAdvancedManualConfigDialog.TV_MENU_NETWORK_SETTINGS_ADDRESS_TYPE: { return ctx.getResources().getStringArray( R.array.tv_menu_network_settings_address_type); } case PiPSettingsDialog.PIP_SETTINGS_SET_POSITION: { return ctx.getResources().getStringArray( R.array.pip_settings_position); } case PiPSettingsDialog.PIP_SETTINGS_SET_SIZE: { return ctx.getResources().getStringArray( R.array.pip_settings_size); } case SoundSettingsDialog.TV_MENU_SOUND_SETTINGS_SOUND_MODE: { return ctx.getResources().getStringArray(R.array.sound_mode); } case SoundPostProcessingDialog.TV_MENU_SOUND_PP_SOUND_MODE: { return ctx.getResources().getStringArray( R.array.sound_mode_settings); } case SoundSettingsDialog.TV_MENU_SOUND_SETTINGS_SPDIF_MODE: { return ctx.getResources().getStringArray( R.array.tv_menu_sound_settings_spdif_mode_spinner); } case SoundSettingsDialog.TV_MENU_SOUND_SETTINGS_HEADPHONE_OUTPUT_MODE: case SoundSettingsDialog.TV_MENU_SOUND_SETTINGS_ANALOG_OUTPUT_MODE: { return ctx.getResources().getStringArray( R.array.tv_menu_sound_settings_output_mode_spinner); } case SoundSettingsDialog.TV_MENU_SOUND_SETTINGS_SECOND_AUDIO: case SoundSettingsDialog.TV_MENU_SOUND_SETTINGS_FIRST_AUDIO: { int count = 0; try { count = MainActivity.service.getSetupControl() .getLanguageCount(); } catch (Exception e) { e.printStackTrace(); } String[] languages = new String[count]; for (int i = 0; i < count; i++) { try { languages[i] = MainActivity.service.getSetupControl() .getLanguageName(i); } catch (Exception e) { e.printStackTrace(); } } return languages; } case TimeAndDateSettingsDialog.TV_MENU_TIME_AND_DATE_SETTINGS_SELECT_TIME_ZONE: { List<TimeZone> timeZones = null; try { timeZones = MainActivity.service.getSystemControl() .getDateAndTimeControl().getTimeZones(); } catch (RemoteException e) { e.printStackTrace(); } catch (RuntimeException e) { e.printStackTrace(); } if (timeZones == null) { timeZones = new ArrayList<TimeZone>(); } Log.d(TAG, "LOADED TIME ZONES: " + timeZones.size() + " " + timeZones.get(0).getDisplayName()); String[] strarray = new String[timeZones.size()]; StringBuilder builder; for (int i = 0; i < timeZones.size(); i++) { builder = new StringBuilder(); strarray[i] = builder .append(timeZones.get(i).getDisplayName()) .append("\n").append(timeZones.get(i).getGmt()) .toString(); } return strarray; } case ApplicationsManageManageAppsDialog.TV_MENU_APPLICATIONS_SETTINGS_MANAGE_APPS_SPINNER: { return ctx .getResources() .getStringArray( R.array.tv_menu_applications_settings_manage_applications); } case VoiceInputDialog.TV_MENU_VOICE_SETTINGS_LANGUAGE: { // TODO: get languages return new String[0]; } case TimeAndDateSettingsDialog.TV_MENU_TIME_AND_DATE_SETTINGS_SELECT_DATE_FORMAT: { return ctx .getResources() .getStringArray( R.array.tv_menu_time_and_date_settings_select_date_format); } case SubtitleSettingsDialog.TV_MENU_SUBTITLE_SETTINGS_SUBTITLE_SECOND_LANGUAGE: case SubtitleSettingsDialog.TV_MENU_SUBTITLE_SETTINGS_SUBTITLE_FIRST_LANGUAGE: { int count = 0; try { count = MainActivity.service.getSetupControl() .getLanguageCount(); } catch (Exception e) { e.printStackTrace(); } String[] languages = new String[count]; for (int i = 0; i < count; i++) { try { languages[i] = MainActivity.service.getSetupControl() .getLanguageName(i); } catch (Exception e) { e.printStackTrace(); } } return languages; } case SubtitleSettingsDialog.TV_MENU_SUBTITLE_SETTINGS_SUBTITLE_MODE: { return ctx.getResources().getStringArray( R.array.tv_menu_subtitle_settings_subtitle_mode); } case SubtitleSettingsDialog.TV_MENU_SUBTITLE_SETTINGS_SUBTITLE_TYPE: { return ctx.getResources().getStringArray( R.array.tv_menu_subtitle_settings_subtitle_type); } case TeletextSettingsDialog.TV_MENU_TELETEXT_SETTINGS_TELETEXT_SECOND_LANGUAGE: case TeletextSettingsDialog.TV_MENU_TELETEXT_SETTINGS_TELETEXT_FIRST_LANGUAGE: { int count = 0; try { count = MainActivity.service.getSetupControl() .getLanguageCount(); } catch (Exception e) { e.printStackTrace(); } String[] languages = new String[count]; for (int i = 0; i < count; i++) { try { languages[i] = MainActivity.service.getSetupControl() .getLanguageName(i); } catch (Exception e) { e.printStackTrace(); } } return languages; } case ChannelInstallationManualTunningDialog.TV_MENU_CHANNEL_INSTALLATION_MANUAL_TUNNING_SETTINGS_SYMBOL_RATE: { return ctx.getResources().getStringArray( R.array.manual_tunning_settings_symbol_rate); } case ChannelInstallationManualTunningDialog.TV_MENU_CHANNEL_INSTALLATION_MANUAL_TUNNING_SETTINGS_polarization: { return ctx.getResources().getStringArray( R.array.manual_tunning_settings_polarization); } case ChannelInstallationManualTunningDialog.TV_MENU_CHANNEL_INSTALLATION_MANUAL_TUNNING_SETTINGS_MODULATION: { return ctx.getResources().getStringArray( R.array.manual_tunning_settings_modulation); } case ChannelInstallationManualTunningDialog.TV_MENU_CHANNEL_INSTALLATION_MANUAL_TUNNING_SETTINGS_SCRAMBLED: { return ctx.getResources().getStringArray( R.array.manual_tunning_settings_scrambled); } case ChannelInstallationManualTunningDialog.TV_MENU_CHANNEL_INSTALLATION_MANUAL_TUNNING_SETTINGS_SYSTEM: { return ctx.getResources().getStringArray( R.array.manual_tunning_settings_system); } case ChannelInstallationManualTunningDialog.TV_MENU_CHANNEL_INSTALLATION_MANUAL_TUNNING_SETTINGS_CHANNEL_NORDIC_BAND: { return ctx.getResources().getStringArray( R.array.manual_tunning_nordic_band); } case ChannelInstallationManualTunningDialog.TV_MENU_CHANNEL_INSTALLATION_MANUAL_TUNNING_SETTINGS_FEC: { return ctx.getResources().getStringArray( R.array.manual_tunning_settings_fec); } case ChannelInstallationDialog.TV_MENU_CHANNEL_INSTALLATION_SETTINGS_TABLE_TYPE: { return ctx.getResources().getStringArray( R.array.channel_installation_table_type); } case ChannelInstallationDialog.TV_MENU_CHANNEL_INSTALLATION_SETTINGS_CHANNEL_TUNING_MODE: { return ctx.getResources().getStringArray( R.array.channel_installation_channel_tuning_mode); } // ///////////////////////////////////////////////// // Veljko Ilkic // ///////////////////////////////////////////////// case ChannelInstallationDialog.SATELLITE_NAME_SPINNER: { Log.d(TAG, "SATELLITE NAMES"); // Get scan control /* * IScanControl scanControl = MainActivity.service * .getScanControl(); */ // Get number of satellites /* int numberOfSatellites = scanControl.getNumberOfSatellites(); */ String[] satelliteNames = new String[2]; /* * for (int i = 0; i < numberOfSatellites; i++) { * Log.d("SATELLITE NAME", scanControl.getSatelliteName(i) + * ""); satelliteNames[i] = scanControl.getSatelliteName(i); } */ return satelliteNames; } case OSDSelectionDialog.CURL_TIME_DELAY_SPINNER: { return ctx .getResources() .getStringArray( R.array.picture_settings_curl_settings_delay_time_array); } case OSDSelectionDialog.CURL_ENABLED_ID: { return ctx.getResources().getStringArray( R.array.osd_selection_mode); } case PictureSettingsDialog.PICTURE_SETTINGS_COLOR_TEMPERATURE: { return ctx .getResources() .getStringArray( R.array.tv_menu_picture_settings_color_temperature_values); } case OffTimersAddDialog.TV_MENU_OFFTIMERS_SETTINGS_REPEAT_MODE: { return ctx.getResources().getStringArray( R.array.tv_menu_off_timers_repeat_mode); } case NetworkWirelessAddHiddenNetworkDialog.TV_MENU_NETWORK_WIRELESS_ADD_HIDDEN_NETWORK_SECURITY: { return ctx .getResources() .getStringArray( R.array.tv_menu_network_wireless_add_hidden_network_security); } case PVRManualEventReminderDialog.TV_MENU_PVR_MANUAL_REMINDER_CHANNEL: { int count = 0; try { count = MainActivity.service.getServiceControl() .getServiceListCount(ServiceListIndex.MASTER_LIST); } catch (Exception e) { e.printStackTrace(); } String[] channel = new String[count]; for (int i = 0; i < count; i++) { try { channel[i] = MainActivity.service .getContentListControl() .getContentByIndexInMasterList(i).getName(); } catch (Exception e) { e.printStackTrace(); } } return channel; } case PVRManualScheduleDialog.TV_MENU_PVR_SCHEDULE_REMINDER_CHANNEL: { int count = 0; try { count = MainActivity.service.getServiceControl() .getServiceListCount(ServiceListIndex.MASTER_LIST); } catch (Exception e) { e.printStackTrace(); } String[] channel = new String[count]; for (int i = 0; i < count; i++) { try { channel[i] = MainActivity.service .getContentListControl() .getContentByIndexInMasterList(i).getName(); } catch (Exception e) { e.printStackTrace(); } } return channel; } case PVRManualScheduleDialog.TV_MENU_PVR_SCHEDULE_RECORDING_REPEAT: { return ctx.getResources().getStringArray( R.array.tv_menu_manual_pvr_schedule_repeat); } case PVRManualEventReminderDialog.TV_MENU_PVR_MANUAL_REMINDER_REPEAT: { return ctx.getResources().getStringArray( R.array.tv_menu_manual_pvr_schedule_repeat); } case ParentalGuidanceDialog.TV_MENU_PARENTIAL_SECURITY_SETTINGS_PARENTIAL_GUIDANCE: { ArrayList<String> guidanceLevel = new ArrayList<String>(); // fill list // first add OFF guidanceLevel.add(ctx.getResources().getString( R.string.button_text_off)); String underString = ctx.getResources().getString( R.string.under) + " "; // add rest for (int i = 4; i < 19; i++) { guidanceLevel.add(underString + String.valueOf(i)); } String[] strarray = new String[guidanceLevel.size()]; guidanceLevel.toArray(strarray); return strarray; } case PVRSettingsDialog.TV_MENU_PVR_SETTINGS_DEVICE: { A4TVStorageManager storage = new A4TVStorageManager(); int count; count = storage.getNumberOfUSBSorages(); String[] devices = new String[count]; for (int i = 0; i < count; i++) { A4TVUSBStorage usbStorage = storage.getUSBStorage(i); if (usbStorage != null) { devices[i] = usbStorage.getDescription(); } } return devices; } case SystemSettingsDialog.TV_MENU_SYSTEM_SETTINGS_INPUT_MODE_START: { return ctx.getResources().getStringArray( R.array.tv_menu_system_settings_input_mode); } /* * case * DebuggingDataDialog.TV_MENU_DEBUGGING_DATA_NORMAL_STANDBY_CAUSE: * { return ctx.getResources().getStringArray( * R.array.tv_menu_debugging_data_normal_standby_cause); } */ default: return new String[0]; } } public int getCHOOSEN_ITEM_INDEX() { return CHOOSEN_ITEM_INDEX; } // /////////////////////////////////// // Veljko Ilkic // /////////////////////////////////// public A4TVDialog getDialogContext() { return dialogContext; } public OnSelectA4TVSpinnerListener getOnSelectA4TVSpinnerListener() { return mOnSelectA4TVSpinnerListener; } public void setOnSelectA4TVSpinnerListener( OnSelectA4TVSpinnerListener onSelectA4TVSpinnerListener) { this.mOnSelectA4TVSpinnerListener = onSelectA4TVSpinnerListener; } public String[] getContents() { return contents; } }