package com.iwedia.gui.components.dialogs; import android.content.Context; import android.content.res.TypedArray; import android.view.View; import com.iwedia.comm.enums.NetworkType; import com.iwedia.gui.MainActivity; import com.iwedia.gui.R; import com.iwedia.gui.components.A4TVButton; import com.iwedia.gui.components.A4TVDialog; import com.iwedia.gui.components.A4TVSpinner; import com.iwedia.gui.config_handler.ConfigHandler; import com.iwedia.gui.mainmenu.DialogCreatorClass; import com.iwedia.gui.mainmenu.DialogManager; import com.iwedia.gui.mainmenu.MainMenuContent; import java.util.ArrayList; /** * Network settings dialog * * @author Mladen Ilic */ public class NetworkSettingsDialog extends A4TVDialog implements A4TVDialogInterface, android.view.View.OnClickListener { /** IDs for spinners */ public static final int TV_MENU_NETWORK_SETTINGS_NETWORK_TYPE = 9; /** IDs for buttons */ public static final int TV_MENU_NETWORK_SETTINGS_WIRELESS_SETTINGS = 37, TV_MENU_NETWORK_SETTINGS_ADVANCED_SETTINGS = 38, TV_MENU_NETWORK_SETTINGS_NETWORK_INFORMATION = 39, TV_MENU_NETWORK_SETTINGS_NETWORK_TEST = 40, FIRST_TIME_INSTALL_NEXT_BUTTON = 10001; // 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 A4TVButton buttonFirstInstallNext; private A4TVSpinner spinnerNetworkType; public NetworkSettingsDialog(Context context) { super(context, checkTheme(context), 0); // fill lists returnArrayListsWithDialogContents(contentList, contentListIDs, titleIDs); // set content to dialog fillDialog(); // set attributes setDialogAttributes(); init(); } @Override public void show() { fillViews(); super.show(); } @Override public void onBackPressed() { if (MainActivity.isInFirstTimeInstall) { PictureSettingsDialog picSettingsDialog = MainActivity.activity .getDialogManager().getPictureSettingsDialog(); if (picSettingsDialog != null) { picSettingsDialog.show(); } } super.onBackPressed(); } public void fillViews() { // /////////////////////////////////// // Normal mode // /////////////////////////////////// if (!MainActivity.isInFirstTimeInstall) { findViewById(R.string.first_time_install_next).setVisibility( View.GONE); if (ConfigHandler.TV_FEATURES) { findViewById(DialogCreatorClass.LINES_BASE_ID + 4) .setVisibility(View.GONE); } else { findViewById(DialogCreatorClass.LINES_BASE_ID + 3) .setVisibility(View.GONE); } } // /////////////////////////////////// // First time install mode // /////////////////////////////////// else { findViewById(R.string.first_time_install_next).setVisibility( View.VISIBLE); if (ConfigHandler.TV_FEATURES) { findViewById(DialogCreatorClass.LINES_BASE_ID + 3) .setVisibility(View.VISIBLE); } else { findViewById(DialogCreatorClass.LINES_BASE_ID + 2) .setVisibility(View.VISIBLE); } buttonFirstInstallNext = (A4TVButton) findViewById(FIRST_TIME_INSTALL_NEXT_BUTTON); buttonFirstInstallNext .setText(R.string.first_time_install_next_button_text); if (MainActivity.activity.getFirstTimeInfoText() != null) { MainActivity.activity.getFirstTimeInfoText().setText( R.string.first_time_install_setup_network); } } /******************* SPINNER NETWORK TYPE *********************/ int networkType = NetworkType.ETHERNET; try { networkType = MainActivity.service.getSystemControl() .getNetworkControl().getActiveNetworkType(); } catch (Exception e) { e.printStackTrace(); } if (networkType == NetworkType.WIRELESS) { spinnerNetworkType.setSelection(1); } else { spinnerNetworkType.setSelection(0); } } @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[] { R.attr.A4TVDialog }); int i = atts.getResourceId(0, 0); atts.recycle(); return i; } private void init() { spinnerNetworkType = (A4TVSpinner) findViewById(TV_MENU_NETWORK_SETTINGS_NETWORK_TYPE); if (!ConfigHandler.TV_FEATURES) { findViewById(R.string.tv_menu_network_wired_test).setVisibility( View.GONE); findViewById(DialogCreatorClass.LINES_BASE_ID + 4).setVisibility( View.GONE); } } @Override public void onClick(View v) { switch (v.getId()) { case FIRST_TIME_INSTALL_NEXT_BUTTON: { StoreModeSettingsDialog sMSettingsDialog = MainActivity.activity .getDialogManager().getStoreModeSettingsDialog(); if (sMSettingsDialog != null) { sMSettingsDialog.show(); } NetworkSettingsDialog.this.cancel(); break; } case TV_MENU_NETWORK_SETTINGS_ADVANCED_SETTINGS: { try { NetworkAdvancedSettingsDialog netSettingsDialog = MainActivity.activity .getDialogManager() .getNetworkAdvancedSettingsDialog(); if (netSettingsDialog != null) { netSettingsDialog.show(); } } catch (Exception e) { e.printStackTrace(); } break; } case TV_MENU_NETWORK_SETTINGS_WIRELESS_SETTINGS: { NetworkWirelessSettingsDialog netWirelessSettDialog = MainActivity.activity .getDialogManager().getNetworkWirelessSettingsDialog(); if (netWirelessSettDialog != null) { netWirelessSettDialog.show(); } break; } case TV_MENU_NETWORK_SETTINGS_NETWORK_INFORMATION: { if (spinnerNetworkType.getCHOOSEN_ITEM_INDEX() == 0) { NetworkWiredInformationDialog netWiredInfoDialog = MainActivity.activity .getDialogManager() .getNetworkWiredInformationDialog(); if (netWiredInfoDialog != null) { netWiredInfoDialog.show(); } } else { NetworkWirelessInformationDialog netWirelessInfoDialog = MainActivity.activity .getDialogManager() .getNetworkWirelessInformationDialog(); if (netWirelessInfoDialog != null) { netWirelessInfoDialog.show(); } } break; } case TV_MENU_NETWORK_SETTINGS_NETWORK_TEST: { MainActivity.activity.getDialogManager().getNetworkTestDialog() .show(); break; } default: break; } } @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(R.drawable.settings_icon); titleIDs.add(R.string.tv_menu_network_settings); // network type****************************************** ArrayList<Integer> list = new ArrayList<Integer>(); list.add(MainMenuContent.TAGA4TVTextView); list.add(MainMenuContent.TAGA4TVSpinner); contentList.add(list); list = new ArrayList<Integer>(); list.add(R.string.tv_menu_network_settings_network_type); list.add(TV_MENU_NETWORK_SETTINGS_NETWORK_TYPE); contentListIDs.add(list); // wireless settings****************************************** list = new ArrayList<Integer>(); list.add(MainMenuContent.TAGA4TVTextView); list.add(MainMenuContent.TAGA4TVButton); contentList.add(list); list = new ArrayList<Integer>(); list.add(R.string.tv_menu_network_settings_wireless_settings); list.add(TV_MENU_NETWORK_SETTINGS_WIRELESS_SETTINGS); contentListIDs.add(list); // wired settings****************************************** list = new ArrayList<Integer>(); list.add(MainMenuContent.TAGA4TVTextView); list.add(MainMenuContent.TAGA4TVButton); contentList.add(list); list = new ArrayList<Integer>(); list.add(R.string.tv_menu_network_settings_advanced_settings); list.add(TV_MENU_NETWORK_SETTINGS_ADVANCED_SETTINGS); contentListIDs.add(list); list = new ArrayList<Integer>(); list.add(MainMenuContent.TAGA4TVTextView); list.add(MainMenuContent.TAGA4TVButton); contentList.add(list); list = new ArrayList<Integer>(); list.add(R.string.tv_menu_network_wired_info); list.add(TV_MENU_NETWORK_SETTINGS_NETWORK_INFORMATION); contentListIDs.add(list); list = new ArrayList<Integer>(); list.add(MainMenuContent.TAGA4TVTextView); list.add(MainMenuContent.TAGA4TVButton); contentList.add(list); list = new ArrayList<Integer>(); list.add(R.string.tv_menu_network_wired_test); list.add(TV_MENU_NETWORK_SETTINGS_NETWORK_TEST); contentListIDs.add(list); // first time install next *********************************** list = new ArrayList<Integer>(); list.add(MainMenuContent.TAGA4TVTextView); list.add(MainMenuContent.TAGA4TVButton); contentList.add(list); list = new ArrayList<Integer>(); list.add(R.string.first_time_install_next); list.add(FIRST_TIME_INSTALL_NEXT_BUTTON); contentListIDs.add(list); } }