package com.iwedia.gui.components.dialogs; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Color; import android.view.View; import com.iwedia.comm.system.about.IAbout; 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.mainmenu.DialogManager; import com.iwedia.gui.mainmenu.MainMenuContent; import java.util.ArrayList; /** * Product info dialog * * @author Branimir Pavlovic */ public class ProductInfoDialog extends A4TVDialog implements A4TVDialogInterface, android.view.View.OnClickListener { /** IDs for buttons */ public static final int TV_MENU_PRODUCT_INFO_SETTINGS_IP_ADDRESS = 26, // TV_MENU_PRODUCT_INFO_SETTINGS_LEGAL_INFORMATION = 27, TV_MENU_PRODUCT_INFO_SETTINGS_FIRMWARE_VERSION = 28, TV_MENU_PRODUCT_INFO_SETTINGS_MODEL_NUMBER = 29, TV_MENU_PRODUCT_INFO_SETTINGS_SOFTWARE_VERSION = 30, TV_MENU_PRODUCT_INFO_SETTINGS_MAC_ADDRESS = 31, TV_MENU_PRODUCT_INFO_SETTINGS_KERNEL_VERSION = 32, TV_MENU_PRODUCT_INFO_SETTINGS_BUILD_NUMBER = 33; // 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 buttonModelNumber, buttonAndroidFirmwareVersion, buttonIPAddr, buttonMACAddr, buttonKernelVersion, buttonBuildNumber; public ProductInfoDialog(Context context) { super(context, checkTheme(context), 0); // 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() { buttonModelNumber = (A4TVButton) findViewById(TV_MENU_PRODUCT_INFO_SETTINGS_MODEL_NUMBER); buttonAndroidFirmwareVersion = (A4TVButton) findViewById(TV_MENU_PRODUCT_INFO_SETTINGS_FIRMWARE_VERSION); buttonIPAddr = (A4TVButton) findViewById(TV_MENU_PRODUCT_INFO_SETTINGS_IP_ADDRESS); buttonMACAddr = (A4TVButton) findViewById(TV_MENU_PRODUCT_INFO_SETTINGS_MAC_ADDRESS); buttonKernelVersion = (A4TVButton) findViewById(TV_MENU_PRODUCT_INFO_SETTINGS_KERNEL_VERSION); buttonBuildNumber = (A4TVButton) findViewById(TV_MENU_PRODUCT_INFO_SETTINGS_BUILD_NUMBER); /** Set desired states to buttons */ disableBtn(buttonModelNumber); disableBtn(buttonAndroidFirmwareVersion); disableBtn(buttonIPAddr); disableBtn(buttonMACAddr); disableBtn(buttonKernelVersion); disableBtn(buttonBuildNumber); } /** Disable clicks on buttons and clear background */ private void disableBtn(A4TVButton btn) { btn.setClickable(false); btn.setBackgroundColor(Color.TRANSPARENT); } @Override public void show() { setViews(); super.show(); } /** Get informations from service and display it */ private void setViews() { IAbout about = null; try { about = MainActivity.service.getSystemControl().getAbout(); } catch (Exception e) { e.printStackTrace(); } if (about != null) { /******************************* MODEL NUMBER ***************************/ String modelNumber = null; try { modelNumber = about.getModelNumber(); } catch (Exception e) { e.printStackTrace(); } if (modelNumber != null) { buttonModelNumber.setText(modelNumber); } else { buttonModelNumber .setText(R.string.tv_menu_software_upgrade_settings_unavailable); } /******************************* ANDROID VERSION ***************************/ String androidVersion = null; try { androidVersion = about.getAndroidVersion(); } catch (Exception e) { e.printStackTrace(); } if (androidVersion != null) { buttonAndroidFirmwareVersion.setText(androidVersion); } else { buttonAndroidFirmwareVersion .setText(R.string.tv_menu_software_upgrade_settings_unavailable); } /********************************* IP ADDRESS ******************************/ String ip = null; try { ip = about.getIPAddress(); } catch (Exception e) { e.printStackTrace(); } if (ip != null && ip.length() != 0) { buttonIPAddr.setText(ip); } else { buttonIPAddr .setText(R.string.tv_menu_software_upgrade_settings_unavailable); } /********************************* MAC ADDRESS ******************************/ String mac = null; try { mac = MainActivity.service.getSystemControl() .getNetworkControl().getEthernetMacAddress(); // mac = about.getMacAddress(); } catch (Exception e) { e.printStackTrace(); } if (mac != null) { buttonMACAddr.setText(mac); } else { buttonMACAddr .setText(R.string.tv_menu_software_upgrade_settings_unavailable); } /********************************* KERNEL VERSION ******************************/ String kernel = null; try { kernel = about.getKernelVersion(); } catch (Exception e) { e.printStackTrace(); } if (kernel != null) { buttonKernelVersion.setText(kernel); } else { buttonKernelVersion .setText(R.string.tv_menu_software_upgrade_settings_unavailable); } /********************************* BUILD NUMBER ******************************/ String build = null; try { build = about.getBuildNumber(); } catch (Exception e) { e.printStackTrace(); } if (build != null) { buttonBuildNumber.setText(build); } else { buttonBuildNumber .setText(R.string.tv_menu_software_upgrade_settings_unavailable); } } } @Override public void onClick(View v) { switch (v.getId()) { case TV_MENU_PRODUCT_INFO_SETTINGS_SOFTWARE_VERSION: { ProductInfoSoftwareStatusDialog productInfoStatusDialog = MainActivity.activity .getDialogManager().getProductInfoStatusDialog(); if (productInfoStatusDialog != null) { productInfoStatusDialog.show(); } break; } default: break; } } @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; } @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_product_info_settings); // ip address****************************************** ArrayList<Integer> 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_product_info_settings_ip_address); list.add(TV_MENU_PRODUCT_INFO_SETTINGS_IP_ADDRESS); contentListIDs.add(list); // mac address****************************************** 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_product_info_settings_mac_address); list.add(TV_MENU_PRODUCT_INFO_SETTINGS_MAC_ADDRESS); contentListIDs.add(list); // kernel version****************************************** 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_product_info_settings_kernel); list.add(TV_MENU_PRODUCT_INFO_SETTINGS_KERNEL_VERSION); contentListIDs.add(list); // legal information****************************************** // 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_product_info_settings_legal_information); // list.add(TV_MENU_PRODUCT_INFO_SETTINGS_LEGAL_INFORMATION); // contentListIDs.add(list); // firmware version****************************************** 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_product_info_settings_firmware_version); list.add(TV_MENU_PRODUCT_INFO_SETTINGS_FIRMWARE_VERSION); contentListIDs.add(list); // model number****************************************** 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_product_info_settings_model_number); list.add(TV_MENU_PRODUCT_INFO_SETTINGS_MODEL_NUMBER); contentListIDs.add(list); // build number****************************************** 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_product_info_settings_build_number); list.add(TV_MENU_PRODUCT_INFO_SETTINGS_BUILD_NUMBER); contentListIDs.add(list); // software version****************************************** 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_product_info_settings_software_version); list.add(TV_MENU_PRODUCT_INFO_SETTINGS_SOFTWARE_VERSION); contentListIDs.add(list); } }