package com.iwedia.gui.components.dialogs;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.RemoteException;
import android.view.Gravity;
import android.view.View;
import com.iwedia.comm.IServiceMode;
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.graphics.PatternView;
import com.iwedia.gui.mainmenu.DialogManager;
import com.iwedia.gui.mainmenu.MainMenuContent;
import java.util.ArrayList;
/**
* Product info dialog
*
* @author Sasa Jagodin
*/
public class DebuggingDataDialog extends A4TVDialog implements
A4TVDialogInterface, android.view.View.OnClickListener {
Bitmap bitmap = Bitmap.createBitmap(500, 500, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
private static PatternView patternView;
/** IDs for buttons */
public static final int TV_MENU_DEBUGGING_DATA_MAIN_VERSION = 1,
TV_MENU_DEBUGGING_DATA_HARDWARE_VERSION = 2,
TV_MENU_DEBUGGING_DATA_STANDBY_CAUSE_RESET = 3,
TV_MENU_DEBUGGING_DATA_PATTERN = 4,
TV_MENU_DEBUGGING_DATA_NORMAL_STANDBY_CAUSE = 5;
/** ID for spinner */
// public static final int TV_MENU_DEBUGGING_DATA_NORMAL_STANDBY_CAUSE =
// 467;
private A4TVButton mainVersion, hardwareVersion, standbyCauseReset,
pattern, normalStandbyCause;
// private A4TVSpinner spinner;
private IServiceMode serviceMode;
// 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>();
public DebuggingDataDialog(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() {
mainVersion = (A4TVButton) findViewById(TV_MENU_DEBUGGING_DATA_MAIN_VERSION);
hardwareVersion = (A4TVButton) findViewById(TV_MENU_DEBUGGING_DATA_HARDWARE_VERSION);
standbyCauseReset = (A4TVButton) findViewById(TV_MENU_DEBUGGING_DATA_STANDBY_CAUSE_RESET);
pattern = (A4TVButton) findViewById(TV_MENU_DEBUGGING_DATA_PATTERN);
// normalStandbyCause = (A4TVButton)
// findViewById(TV_MENU_DEBUGGING_DATA_NORMAL_STANDBY_CAUSE);
/** Set desired states to buttons */
disableBtn(mainVersion);
disableBtn(hardwareVersion);
// disableBtn(pattern);
// disableBtn(standbyCause);
// disableBtn(normalStandbyCause);
}
/** 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() {
standbyCauseReset.setText(R.string.button_text_ok);
pattern.setText(R.string.button_text_ok);
// spinner.setSelection(0);
mainVersion.setText("Version 2");
hardwareVersion.setText("H24 Rev D");
/*
* String standbyCause = ""; try { standbyCause =
* serviceMode.getNormalStandbyCause(); } catch (Exception e) {
* e.printStackTrace(); } normalStandbyCause.setText(standbyCause);
*/
serviceMode = null;
try {
serviceMode = MainActivity.service.getServiceMode();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onClick(View v) {
// patternView = new PatternView(this.getContext());
patternView = new PatternView(MainActivity.activity
.getPrimaryVideoView().getContext());
setContentView(patternView);
getWindow().getAttributes().width = 1920;
getWindow().getAttributes().height = 1080; /* Temporary */
getWindow().setGravity(Gravity.CENTER);
// MainActivity.activity.getPrimaryVideoView().
switch (v.getId()) {
case TV_MENU_DEBUGGING_DATA_PATTERN: {
try {
patternView.invalidatePatternView();
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
case TV_MENU_DEBUGGING_DATA_STANDBY_CAUSE_RESET: {
try {
serviceMode.resetStandbyCause();
// normalStandbyCause.setText("None");
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
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_service_mode_menu_debugging_data);
// main version******************************************
ArrayList<Integer> 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_service_mode_menu_main_version);
list.add(TV_MENU_DEBUGGING_DATA_MAIN_VERSION);
contentListIDs.add(list);
// hardware 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_service_mode_menu_hardware_version);
list.add(TV_MENU_DEBUGGING_DATA_HARDWARE_VERSION);
contentListIDs.add(list);
// normal standby cause******************************************
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_service_mode_menu_normal_standby_cause);
list.add(TV_MENU_DEBUGGING_DATA_NORMAL_STANDBY_CAUSE);
contentListIDs.add(list);
// standby cause reset******************************************
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_service_mode_menu_standby_cause_reset);
list.add(TV_MENU_DEBUGGING_DATA_STANDBY_CAUSE_RESET);
contentListIDs.add(list);
// pattern******************************************
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_service_mode_menu_pattern);
list.add(TV_MENU_DEBUGGING_DATA_PATTERN);
contentListIDs.add(list);
}
}