package com.iwedia.gui.components.dialogs; import android.content.Context; import android.content.res.TypedArray; import android.os.RemoteException; import android.util.Log; import android.view.View; import com.iwedia.comm.enums.ScanSignalType; import com.iwedia.gui.MainActivity; import com.iwedia.gui.R; import com.iwedia.gui.components.A4TVAlertDialog; import com.iwedia.gui.components.A4TVButton; import com.iwedia.gui.components.A4TVDialog; import com.iwedia.gui.components.A4TVEditText; import com.iwedia.gui.components.A4TVToast; import com.iwedia.gui.mainmenu.DialogManager; import com.iwedia.gui.mainmenu.MainMenuContent; import java.util.ArrayList; /** * Pvr settings dialog * * @author Sasa Jagodin */ public class NetworkIdDialog extends A4TVDialog implements A4TVDialogInterface, android.view.View.OnClickListener { /** IDs for edit texts */ public static final int NETWORK_ID_MENU_NETWORK_ID = 1; /** IDs for buttons */ public static final int NETWORK_ID_MENU_START_SEARCH = 2; private Context ctx; // 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 A4TVEditText editNetworkId; private A4TVButton buttonStartSearch; private A4TVAlertDialog alertDialog; private String networkId; public NetworkIdDialog(Context context) { super(context, checkTheme(context), 0); ctx = context; // fill lists returnArrayListsWithDialogContents(contentList, contentListIDs, titleIDs); // set content to dialog fillDialog(); // set attributes setDialogAttributes(); init(); } /** Get references from views and set look and feel */ private void init() { editNetworkId = (A4TVEditText) findViewById(NETWORK_ID_MENU_NETWORK_ID); buttonStartSearch = (A4TVButton) findViewById(NETWORK_ID_MENU_START_SEARCH); buttonStartSearch.setText(R.string.button_text_start); } @Override public void show() { setViews(); super.show(); } /** Get informations from service and display it */ private void setViews() { editNetworkId.setText(""); // init alert dialog alertDialog = new A4TVAlertDialog(ctx); alertDialog.setCancelable(true); alertDialog.setTitleOfAlertDialog(R.string.manual_scan_prompt); alertDialog.setNegativeButton(R.string.button_text_no, new android.view.View.OnClickListener() { @Override public void onClick(View v) { alertDialog.cancel(); } }); } @Override public void onClick(View v) { switch (v.getId()) { case NETWORK_ID_MENU_START_SEARCH: { networkId = editNetworkId.getText().toString(); if (networkId.length() > 0) { if (MainActivity.isInFirstTimeInstall) { autoTuneClicked(false); } else { alertDialog.setPositiveButton(R.string.button_text_yes, new android.view.View.OnClickListener() { @Override public void onClick(View v) { // call click function autoTuneClicked(false); alertDialog.cancel(); } }); alertDialog.show(); } } else { new A4TVToast(ctx).showToast(R.string.network_id__error); } break; } default: break; } } /** Auto scan procedure button click function */ private void autoTuneClicked(boolean isOperatorScan) { // create scan dialog ChannelScanDialog dialogScan = MainActivity.activity.getDialogManager() .getChannelScanDialog(); if (MainActivity.service != null) { /** Start scan procedure */ try { try { MainActivity.service.getScanControl().setNetNumber( Integer.valueOf(networkId)); ChannelScanDialog.setScanning(MainActivity.service .getScanControl().scanAll( ScanSignalType.SIGNAL_TYPE_CABLE, false)); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (RuntimeException e) { A4TVToast toast = new A4TVToast(getContext()); toast.showToast(R.string.null_pointer_error); e.printStackTrace(); } } else { A4TVToast toast = new A4TVToast(getContext()); toast.showToast(R.string.null_pointer_error); } if (ChannelScanDialog.isScanning()) { if (dialogScan != null) { dialogScan .getTextTopBanner() .setText( ctx.getResources() .getText( R.string.tv_menu_channel_installation_settings_auto_tunning)); Log.d(TAG, "SHOW SCAN DIALOG"); // hide layout for messages MainActivity.activity.findViewById(R.id.linLayMessages) .setVisibility(View.GONE); // show scan dialog dialogScan.show(); dialogScan.selectFilter(ChannelScanDialog.FILTER_DVB_C_OPTION); // hide others ChannelInstallationDialog chDialog = MainActivity.activity .getDialogManager().getChannelInstallationDialog(); if (chDialog != null) { chDialog.cancel(); } } NetworkIdDialog.this.cancel(); MainActivity.activity.getMainMenuHandler().closeMainMenu(false); } else { // A4TVToast toast = new A4TVToast(getContext()); // toast.showToast(R.string.no_signal); } } @Override public void fillDialog() { View view = DialogManager.dialogCreator.fillDialogWithContents( contentList, contentListIDs, titleIDs, null, this, null); 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; } @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_id_selection); ArrayList<Integer> list; // network id ****************************************** list = new ArrayList<Integer>(); list.add(MainMenuContent.TAGA4TVTextView); list.add(MainMenuContent.TAGA4TVEditText); contentList.add(list); list = new ArrayList<Integer>(); list.add(R.string.tv_menu_channel_installation_manual_tunning_settings_network_id); list.add(NETWORK_ID_MENU_NETWORK_ID); contentListIDs.add(list); // store ****************************************** 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_channel_installation_manual_tunning_settings_start_search); list.add(NETWORK_ID_MENU_START_SEARCH); contentListIDs.add(list); } }