package com.iwedia.gui.components; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnKeyListener; import android.content.res.TypedArray; import android.view.Gravity; import android.view.KeyEvent; import android.view.View; import android.widget.FrameLayout; import android.widget.FrameLayout.LayoutParams; import android.widget.LinearLayout; import com.iwedia.gui.MainActivity; import com.iwedia.gui.R; import com.iwedia.gui.osd.IOSDHandler; import com.iwedia.gui.osd.OSDGlobal; /** * Custom alert dialog builder class * * @author Branimir Pavlovic */ public class A4TVAlertDialog extends Dialog implements OnKeyListener, OSDGlobal { private A4TVTextView title = null; private A4TVTextView message = null; private A4TVButton positiveButton, negativeButton; private View layoutView; private LinearLayout layoutActionsButtons, layoutMain; public A4TVAlertDialog(Context arg0) { super(arg0, checkTheme(arg0)); setContentView(R.layout.alert_dialog_layout); getWindow().getAttributes().width = MainActivity.screenWidth; getWindow().getAttributes().height = MainActivity.screenHeight; /** Get references from layouts */ layoutMain = (LinearLayout) findViewById(R.id.main); layoutActionsButtons = (LinearLayout) findViewById(R.id.actionButtons); layoutView = (LinearLayout) findViewById(R.id.view); positiveButton = (A4TVButton) findViewById(R.id.aTVButtonPositive); negativeButton = (A4TVButton) findViewById(R.id.aTVButtonNegative); title = (A4TVTextView) findViewById(R.id.aTVTextViewTitle); message = (A4TVTextView) findViewById(R.id.aTVTextViewMessage); layoutView.setVisibility(View.GONE); layoutActionsButtons.setVisibility(View.GONE); message.setVisibility(View.GONE); layoutMain.setLayoutParams(new FrameLayout.LayoutParams( MainActivity.dialogWidth + 10, LayoutParams.WRAP_CONTENT, Gravity.CENTER)); setOnKeyListener(this); } @Override public void show() { findViewById(R.id.aTVButtonPositive).requestFocus(); super.show(); } public A4TVAlertDialog setPositiveButton(int textResId, android.view.View.OnClickListener listener) { layoutActionsButtons.setVisibility(View.VISIBLE); positiveButton.setVisibility(View.VISIBLE); positiveButton.setText(textResId); positiveButton.setOnClickListener(listener); return this; } public A4TVAlertDialog setNegativeButton(int textResId, android.view.View.OnClickListener listener) { layoutActionsButtons.setVisibility(View.VISIBLE); negativeButton.setVisibility(View.VISIBLE); negativeButton.setText(textResId); negativeButton.setOnClickListener(listener); return this; } public A4TVAlertDialog setTitleOfAlertDialog(int textResId) { title.setText(textResId); return this; } public A4TVAlertDialog setTitleOfAlertDialog(CharSequence text) { title.setText(text); return this; } public A4TVAlertDialog setMessage(int textResId) { layoutView.setVisibility(View.VISIBLE); message.setVisibility(View.VISIBLE); message.setText(textResId); return this; } public A4TVAlertDialog setMessage(CharSequence text) { layoutView.setVisibility(View.VISIBLE); message.setVisibility(View.VISIBLE); message.setText(text); return this; } public A4TVAlertDialog setView(View view) { layoutView.setVisibility(View.VISIBLE); ((LinearLayout) layoutView).removeAllViews(); // layoutMain.removeViewInLayout(layoutView); ((LinearLayout) layoutView).addView(view); return this; } /** * Function that load theme * * @param ctx * @return */ private static int checkTheme(Context ctx) { TypedArray atts = ctx.getTheme().obtainStyledAttributes( new int[] { R.attr.A4TVDialogTransparent }); int i = atts.getResourceId(0, 0); atts.recycle(); return i; } public A4TVButton getPositiveButton() { return positiveButton; } public A4TVButton getNegativeButton() { return negativeButton; } public A4TVTextView getTitle() { return title; } public A4TVTextView getMessage() { return message; } public void setPositiveButton(A4TVButton positiveButton) { this.positiveButton = positiveButton; } @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { switch (keyCode) { // /////////////////////////////////////////////////////////////////// // VOLUME UP // /////////////////////////////////////////////////////////////////// // case KeyEvent.KEYCODE_F6: case KeyEvent.KEYCODE_VOLUME_UP: { IOSDHandler curlHandler = MainActivity.activity.getPageCurl(); curlHandler.volume(VOLUME_UP, false); return true; } // /////////////////////////////////////////////////////////////////// // VOLUME DOWN // /////////////////////////////////////////////////////////////////// // case 135: { // case KeyEvent.KEYCODE_F5: { case KeyEvent.KEYCODE_VOLUME_DOWN: { IOSDHandler curlHandler = MainActivity.activity.getPageCurl(); curlHandler.volume(VOLUME_DOWN, false); return true; } // /////////////////////////////////////////////////////////////////// // VOLUME MUTE // /////////////////////////////////////////////////////////////////// case KeyEvent.KEYCODE_MUTE: { IOSDHandler curlHandler = MainActivity.activity.getPageCurl(); curlHandler.volume(VOLUME_MUTE, false); return true; } case KeyEvent.KEYCODE_BACK: return false; default: break; } return super.onKeyDown(keyCode, event); } }