package com.iwedia.gui.multimedia;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.RemoteException;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.animation.Animation;
import android.widget.FrameLayout;
import android.widget.GridView;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.ViewFlipper;
import com.iwedia.comm.enums.FilterType;
import com.iwedia.dtv.pvr.PvrSortMode;
import com.iwedia.dtv.pvr.PvrSortOrder;
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.A4TVInfoDescriptionScrollView;
import com.iwedia.gui.components.A4TVInfoDescriptionScrollView.Scrolled;
import com.iwedia.gui.components.A4TVProgressDialog;
import com.iwedia.gui.components.A4TVTextView;
import com.iwedia.gui.components.A4TVToast;
import com.iwedia.gui.config_handler.ConfigHandler;
import com.iwedia.gui.listeners.MainKeyListener;
import com.iwedia.gui.osd.OSDGlobal;
import com.iwedia.gui.osd.OSDHandlerHelper;
import com.iwedia.gui.pvr.PVRHandler;
import java.util.ArrayList;
/**
* Handler for multimedia dialog
*
* @author Veljko Ilkic
*/
public class MultimediaHandler implements OSDGlobal {
public static final String TAG = "MultimediaHandler";
/** Multimedia modes */
public static final int MULTIMEDIA_FIRST_SCREEN = 1;
public static final int MULTIMEDIA_SECOND_SCREEN = 2;
public static final int MULTIMEDIA_PVR_SCREEN = 3;
/** Current multimedia mode */
public static int multimediaScreen = MULTIMEDIA_FIRST_SCREEN;
/** Number of columns in grids */
public static final int NUMBER_OF_COLUMNS = 6;
/** Reference of main activity */
private Activity activity;
/** Dialog holder multimedia */
private A4TVDialog multimediaDialog;
/** Dialog for showing multimedia content */
private A4TVDialog multimediaShowDialog;
/** Multimedia show handler object */
private MultimediaShowHandler multimediaShowHandler;
/** Music from DLNA layout */
private LinearLayout musicFromDlnaLayout;
private ImageView imageViewMusicReproduction;
private A4TVTextView textViewLyrics;
private A4TVInfoDescriptionScrollView scrollViewLyrics;
// /////////////////////////////////////////
// Views
// /////////////////////////////////////////
private ViewFlipper multimediaViewFlipper;
// //////////////////////////////////////////////////
// First screen
// //////////////////////////////////////////////////
/** Main layout of multimedia important for animation */
@SuppressWarnings("unused")
private LinearLayout multimediaFirstMainLayout;
/** Scroll view for filtering options */
private HorizontalScrollView multimediaFilterOptionsScroll;
/** Layout holder for filter buttons */
private LinearLayout filterButtonsHolderFirst;
/** Scroll views in multimedia first screen */
private GridView gridViewRecentlyFirstScreen, gridViewFavoritesFirstScreen,
gridViewFileBrowserFirstScreen;
/** Dividers in grid view */
private ImageView firstScreenRecentlyGridDivider,
firstScreenFavortiteGridDivider,
firstScreenBrowserFirstGridDivider,
firstScreenBrowserSecondGridDivider,
firstScreenBrowserThirdGridDivider;
/** Navigation arrows */
private ImageView firstScreenRecentlyLeftArrow,
firstScreenRecentlyRightArrow, firstScreenFavoriteLeftArrow,
firstScreenFavoriteRightArrow, firstScreenAllLeftArrow,
firstScreenAllRightArrow;
/** Handlers for drawing items */
private MultimediaRecentlyHandler multimediaRecentlyHandler;
private MultimediaFavoriteHandler mutlimediaFavoriteHandler;
private MultimediaFileBrowserHandler multimediaFileBrowserFirstHandler;
// //////////////////////////////////////////////////////////
// Second screen
// //////////////////////////////////////////////////////////
public static int secondScreenFolderLevel = 0;
/** Main layout of multimedia important for animation */
@SuppressWarnings("unused")
private LinearLayout multimediaSecondMainLayout;
/** Scroll view for filtering options */
private HorizontalScrollView multimediaSecondFilterOptionsScroll;
/** Layout holder for filter buttons */
private LinearLayout filterSecondButtonsHolder;
/** Scroll views in multimedia second screen */
private GridView gridViewPathSecondScreen, gridViewFileBrowserSecondScreen;
/** Dividers in grid view */
private ImageView secondScreenFilePathGridDivider,
secondScreenBrowserFirstGridDivider,
secondScreenBrowserSecondGridDivider,
secondScreenBrowserThirdGridDivider,
secondScreenBrowserFourthGridDivider,
secondScreenBrowserFifthGridDivider;
/** Navigation arrows */
private ImageView secondScreenFilePathLeftArrow,
secondScreenFilePathRightArrow, secondScreenAllLeftArrow,
secondScreenAllRightArrow;
/** Handler for second screen */
private MultimediaFilePathHandler filePathHandler;
private MultimediaFileBrowserHandler multimediaFileBrowserSecondHandler;
// //////////////////////////////////////////////////////////
// PVR screen
// //////////////////////////////////////////////////////////
/** Main layout of pvr multimedia important for animation */
@SuppressWarnings("unused")
private LinearLayout multimediaPvrMainLayout;
/** Scroll view for filtering options */
private HorizontalScrollView multimediaPvrFilterOptionsScroll;
/** Layout holder for filter buttons */
private LinearLayout filterPvrButtonsHolder;
/** Scroll views in multimedia pvr screen */
private GridView gridViewFileBrowserPvrScreen;
/** PVR file info */
private A4TVTextView pvrFileInfo1, pvrFileInfo2, pvrFileInfo3,
pvrFileInfo4;
public static A4TVTextView pvrFileBrowserText;
/** Dividers in grid view */
private ImageView pvrScreenBrowserFirstGridDivider,
pvrScreenBrowserSecondGridDivider,
pvrScreenBrowserThirdGridDivider,
pvrScreenBrowserFourthGridDivider,
pvrScreenBrowserFifthGridDivider;
/** Navigation arrows */
private ImageView pvrScreenAllLeftArrow, pvrScreenAllRightArrow;
/** Handler for PVR screen */
private MultimediaFileBrowserHandler multimediaFileBrowserPvrHandler;
/** Animation for content list */
@SuppressWarnings("unused")
private Animation alphaScaleIn;
/** Fade out animation for multimedia closing */
@SuppressWarnings("unused")
private Animation alphaScaleOut;
/** Layout inflater for filter buttons */
private LayoutInflater inflater;
// //////////////////////////////////////////////////////////////
// Dynamic filtering fields
// ///////////////////////////////////////////////////////////////
/** Value of current selected filtering option in list */
public static int currentSelectedFilterOptionMultimedia = 0;
public static int currentSelectedFilterOptionPvr = 0;
/** Number of possible filter options */
public static final int numberOfFilterOptionsMultimedia = 1;
public static final int numberOfFilterOptionsPvr = 2;
/** Filter options ids */
public static final int FILTER_MULTIMEDIA = 0;
public static final int FILTER_MULTIMEDIA_OFFSET = 100;
/** Filter options PVR */
public static final int FILTER_PVR_OPTION_INDEX_OFFSET = 110;
public static final int FILTER_RECORD_PVR_OPTION = 110;
public static final int FILTER_SCHEDULE_PVR_OPTION = 111;
/** Screen width */
private int screenWidth;
/** Width measure unit */
private int widthMeasureUnit;
/** Width measure unit divider */
public static final int widthMeasureUnitDivider = 12;
/** Available filter options */
private Boolean[] filterOptionsMultimedia = new Boolean[numberOfFilterOptionsMultimedia];
private Boolean[] filterOptionsPvr = new Boolean[numberOfFilterOptionsPvr];
/** Array list of filter buttons */
private ArrayList<LinearLayout> filterButtonsFirst = new ArrayList<LinearLayout>();
private ArrayList<LinearLayout> filterButtonsSecond = new ArrayList<LinearLayout>();
private ArrayList<LinearLayout> filterButtonsPvr = new ArrayList<LinearLayout>();
/** Progress dialog for loading data */
private A4TVProgressDialog progressDialog;
private LinearLayout linearLayoutSortedBy;
/** Multimedia action constants */
public static final int LOAD_BACK_LEVEL = 1;
public static final int LOAD_BACK_FIRST_SCREEN = 2;
public static final int LOAD_BACK_FIRST_SCREEN_FROM_PVR = 3;
public static final int REOPEN_MULTIMEDIA = 4;
public static String[] sortPvrFilesBy = { "NAME", "DATE", "DURATION" };
public static String[] sortPvrFilesByOrder = { "ASCENDING", "DESCENDING" };
private LinearLayout linearLayoutSortedPlaylistItemsByTitle;
private LinearLayout linearLayoutSortedPlaylistItemsByArtist;
private LinearLayout linearLayoutSortedPlaylistItemsByDuration;
private boolean detectScrollLyricsEnd = false;
private int scrollLyricsValue = 0;
/** Constructor 1 */
public MultimediaHandler(Activity activity) {
super();
// Take reference of main activity
this.activity = activity;
// Get layout iflater
this.inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// Init filter option array
initFilterOptionArray();
// Create progress dialog object
progressDialog = new A4TVProgressDialog(activity);
progressDialog.setTitleOfAlertDialog(R.string.loading_data);
progressDialog.setCancelable(false);
progressDialog.setMessage(R.string.please_wait);
}
/** Default values of filter option array */
private void initFilterOptionArray() {
// ///////////////////////////////
// Multimedia
// ///////////////////////////////
filterOptionsMultimedia[FILTER_MULTIMEDIA] = true;
// ////////////////////////////////
// PVR
// ////////////////////////////////
filterOptionsPvr[FILTER_RECORD_PVR_OPTION
- FILTER_PVR_OPTION_INDEX_OFFSET] = true;
filterOptionsPvr[FILTER_SCHEDULE_PVR_OPTION
- FILTER_PVR_OPTION_INDEX_OFFSET] = true;
}
/** Init function */
public void init() {
// Get screen width of activity
screenWidth = activity.getWindowManager().getDefaultDisplay()
.getWidth();
// Calculate width unit for filter buttons
widthMeasureUnit = screenWidth / widthMeasureUnitDivider;
// /////////////////////////////////////////
// Dialog
// /////////////////////////////////////////
// Create dialog holder for content list menu
multimediaDialog = ((MainActivity) activity).getDialogManager()
.getMultimediaDialog();
// Attach key listener
if (multimediaDialog != null)
multimediaDialog.setOnKeyListener(new MainKeyListener(
(MainActivity) activity));
// //////////////////////////////////////////////
// Views
// //////////////////////////////////////////////
// ///////////////////////////////////////////
// Get music from dlna layout
// ///////////////////////////////////////////
musicFromDlnaLayout = (LinearLayout) activity
.findViewById(R.id.musicReproductionFromDlnaLayout);
imageViewMusicReproduction = (ImageView) activity
.findViewById(R.id.imageViewMusicReproduction);
textViewLyrics = (A4TVTextView) activity
.findViewById(R.id.textViewLyrics);
scrollViewLyrics = (A4TVInfoDescriptionScrollView) activity
.findViewById(R.id.scrollViewLyrics);
scrollViewLyrics.setScrooled(new ScrollLyrics());
// if (((MainActivity) activity).isFullHD()) {
// if (multimediaDialog != null) {
// A4TVTextView topBanner = (A4TVTextView) multimediaDialog
// .findViewById(R.id.multimediatSecondText);
// topBanner
// .setTextSize(activity
// .getResources()
// .getDimension(
// com.iwedia.gui.R.dimen.a4tvdialog_button_text_size_1080p));
// topBanner = (A4TVTextView) multimediaDialog
// .findViewById(R.id.multimediatText);
// topBanner
// .setTextSize(activity
// .getResources()
// .getDimension(
// com.iwedia.gui.R.dimen.a4tvdialog_button_text_size_1080p));
// }
// }
if (multimediaDialog != null) {
multimediaViewFlipper = (ViewFlipper) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaViewFlipper);
// ////////////////////////////////////////////////
// First screen
// ////////////////////////////////////////////////
// Take reference of main content list layout
multimediaFirstMainLayout = (LinearLayout) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaMainLayout);
// Take reference of horizontal scroll view for filter options
multimediaFilterOptionsScroll = (HorizontalScrollView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaFilterOptionsScroll);
// Take reference of filter buttons holder layout
filterButtonsHolderFirst = (LinearLayout) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaInputFilterBanner);
// Load filter buttons
loadFilterOptionsLayout(filterButtonsHolderFirst, true);
// //////////////////////////////////////
// Navigation arrows first screen
// //////////////////////////////////////
firstScreenRecentlyLeftArrow = (ImageView) multimediaDialog
.findViewById(R.id.multimediaRecentlyLeftArrow);
firstScreenRecentlyRightArrow = (ImageView) multimediaDialog
.findViewById(R.id.multimediaRecentlyRightArrow);
firstScreenFavoriteLeftArrow = (ImageView) multimediaDialog
.findViewById(R.id.multimediaFavoriteLeftArrow);
firstScreenFavoriteRightArrow = (ImageView) multimediaDialog
.findViewById(R.id.multimediaFavoriteRightArrow);
firstScreenAllLeftArrow = (ImageView) multimediaDialog
.findViewById(R.id.multimediaFirstAllLeftArrow);
firstScreenAllRightArrow = (ImageView) multimediaDialog
.findViewById(R.id.multimediaFirstAllRightArrow);
// //////////////////////////////////////
// Grid dividers
// //////////////////////////////////////
firstScreenRecentlyGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaRecentlyGridDivider);
firstScreenFavortiteGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaFavoriteGridDivider);
firstScreenBrowserFirstGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaAllItemFirstGridDivider);
firstScreenBrowserSecondGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaAllItemSecondGridDivider);
firstScreenBrowserThirdGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaAllItemThirdGridDivider);
setUpDividersFirstScreen();
// /////////////////////////////////
// Grid views and drawing handlers
// /////////////////////////////////
gridViewRecentlyFirstScreen = (GridView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaRecentlyWatchedItemsGrid);
multimediaRecentlyHandler = new MultimediaRecentlyHandler(activity,
gridViewRecentlyFirstScreen);
multimediaRecentlyHandler.initView();
gridViewFavoritesFirstScreen = (GridView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaFavoriteItemsGrid);
mutlimediaFavoriteHandler = new MultimediaFavoriteHandler(activity,
gridViewFavoritesFirstScreen, false);
mutlimediaFavoriteHandler.initView();
gridViewFileBrowserFirstScreen = (GridView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaAllItemsGrid);
multimediaFileBrowserFirstHandler = new MultimediaFileBrowserHandler(
activity, gridViewFileBrowserFirstScreen,
MULTIMEDIA_FIRST_SCREEN);
multimediaFileBrowserFirstHandler.initView();
// ////////////////////////////////////////
// Attach onLong listener
// ////////////////////////////////////////
multimediaRecentlyHandler
.getMultimediaGridRecently()
.setOnItemLongClickListener(
new MultimediaGridOnLongPress(
activity,
MULTIMEDIA_FIRST_SCREEN,
MultimediaGridOnLongPress.RECENTLY_MULTIMEDIA));
mutlimediaFavoriteHandler
.getMultimediaGridFavorite()
.setOnItemLongClickListener(
new MultimediaGridOnLongPress(
activity,
MULTIMEDIA_FIRST_SCREEN,
MultimediaGridOnLongPress.FAVORITE_MULTIMEDIA));
multimediaFileBrowserFirstHandler
.getGridFileBrowser()
.setOnItemLongClickListener(
new MultimediaGridOnLongPress(
activity,
MULTIMEDIA_FIRST_SCREEN,
MultimediaGridOnLongPress.FILE_BROWSER_MULTIMEDIA));
// ////////////////////////////////////////////
// Second screen
// ////////////////////////////////////////////
// Init views in multimedia second
// Take reference of main content list layout
multimediaSecondMainLayout = (LinearLayout) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaSecondMainLayout);
// Take reference of horizontal scroll view for filter options
multimediaSecondFilterOptionsScroll = (HorizontalScrollView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaSecondFilterOptionsScroll);
multimediaSecondFilterOptionsScroll.setEnabled(false);
multimediaSecondFilterOptionsScroll.setFocusable(false);
// Take reference of filter buttons holder layout
filterSecondButtonsHolder = (LinearLayout) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaSecondInputFilterBanner);
// Load filter buttons
loadFilterOptionsLayout(filterSecondButtonsHolder, false);
// //////////////////////////////////////
// Navigation arrows first screen
// //////////////////////////////////////
secondScreenFilePathLeftArrow = (ImageView) multimediaDialog
.findViewById(R.id.multimediaSecondPathLeftArrow);
secondScreenFilePathRightArrow = (ImageView) multimediaDialog
.findViewById(R.id.multimediaSecondPathRightArrow);
secondScreenAllLeftArrow = (ImageView) multimediaDialog
.findViewById(R.id.multimediaSecondAllLeftArrow);
secondScreenAllRightArrow = (ImageView) multimediaDialog
.findViewById(R.id.multimediaSecondAllRightArrow);
// //////////////////////////////////////
// Grid dividers
// //////////////////////////////////////
secondScreenFilePathGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaSecondPathBrowserGridDivider);
secondScreenBrowserFirstGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaSecondFileBrowserItemFirstGridDivider);
secondScreenBrowserSecondGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaSecondFileBrowserItemSecondGridDivider);
secondScreenBrowserThirdGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaSecondFileBrowserItemThirdGridDivider);
secondScreenBrowserFourthGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaSecondFileBrowserItemFourthGridDivider);
secondScreenBrowserFifthGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaSecondFileBrowserItemFifthGridDivider);
setUpDividersSecondScreen();
// /////////////////////////////////
// Grid views and drawing handlers
// /////////////////////////////////
gridViewPathSecondScreen = (GridView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaSecondPathBrowserItemsGrid);
filePathHandler = new MultimediaFilePathHandler(activity,
gridViewPathSecondScreen);
filePathHandler.initView();
gridViewFileBrowserSecondScreen = (GridView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaSecondFileBrowserItemsGrid);
multimediaFileBrowserSecondHandler = new MultimediaFileBrowserHandler(
activity, gridViewFileBrowserSecondScreen,
MULTIMEDIA_SECOND_SCREEN);
multimediaFileBrowserSecondHandler.initView();
// ///////////////////////////////////////////
// Attach onLong listeners
// ///////////////////////////////////////////
filePathHandler.getGridFilePath().setOnItemLongClickListener(
new MultimediaGridOnLongPress(activity,
MULTIMEDIA_SECOND_SCREEN,
MultimediaGridOnLongPress.FILE_PATH_MULTIMEDIA));
multimediaFileBrowserSecondHandler
.getGridFileBrowser()
.setOnItemLongClickListener(
new MultimediaGridOnLongPress(
activity,
MULTIMEDIA_SECOND_SCREEN,
MultimediaGridOnLongPress.FILE_BROWSER_MULTIMEDIA));
// ///////////////////////////////////////////
// PVR Screen
// ///////////////////////////////////////////
// Take reference of main content list layout
multimediaPvrMainLayout = (LinearLayout) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPvrMainLayout);
// Take reference of horizontal scroll view for filter options
multimediaPvrFilterOptionsScroll = (HorizontalScrollView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPvrFilterOptionsScroll);
multimediaPvrFilterOptionsScroll.setEnabled(false);
multimediaPvrFilterOptionsScroll.setFocusable(false);
// Take reference of filter buttons holder layout
filterPvrButtonsHolder = (LinearLayout) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPvrInputFilterBanner);
// Load filter buttons
loadFilterOptionsPvrLayout(filterPvrButtonsHolder);
// Take reference of linear layout for sorting pvr files
linearLayoutSortedBy = (LinearLayout) multimediaDialog
.findViewById(com.iwedia.gui.R.id.linearLayoutSortedBy);
linearLayoutSortedPlaylistItemsByTitle = (LinearLayout) multimediaDialog
.findViewById(com.iwedia.gui.R.id.linearLayoutSortedPlaylistItemsByTitle);
linearLayoutSortedPlaylistItemsByArtist = (LinearLayout) multimediaDialog
.findViewById(com.iwedia.gui.R.id.linearLayoutSortedPlaylistItemsByArtist);
linearLayoutSortedPlaylistItemsByDuration = (LinearLayout) multimediaDialog
.findViewById(com.iwedia.gui.R.id.linearLayoutSortedPlaylistItemsByDuration);
// ///////////////////////////////////////
// Navigation arrows
// ///////////////////////////////////////
pvrScreenAllLeftArrow = (ImageView) multimediaDialog
.findViewById(R.id.multimediaPvrAllLeftArrow);
pvrScreenAllRightArrow = (ImageView) multimediaDialog
.findViewById(R.id.multimediaPvrAllRightArrow);
// //////////////////////////////////////
// Grid dividers
// //////////////////////////////////////
pvrScreenBrowserFirstGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPvrFileBrowserItemFirstGridDivider);
pvrScreenBrowserSecondGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPvrFileBrowserItemSecondGridDivider);
pvrScreenBrowserThirdGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPvrFileBrowserItemThirdGridDivider);
pvrScreenBrowserFourthGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPvrFileBrowserItemFourthGridDivider);
pvrScreenBrowserFifthGridDivider = (ImageView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPvrFileBrowserItemFifthGridDivider);
setUpDividersPvrScreen();
// /////////////////////////////////
// Grid views and drawing handlers
// /////////////////////////////////
gridViewFileBrowserPvrScreen = (GridView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPvrFileBrowserItemsGrid);
multimediaFileBrowserPvrHandler = new MultimediaFileBrowserHandler(
activity, gridViewFileBrowserPvrScreen,
MULTIMEDIA_PVR_SCREEN);
multimediaFileBrowserPvrHandler.initView();
// //////////////////////////////////////////////////////////////
// Attach onLong listeners
// //////////////////////////////////////////////////////////////
multimediaFileBrowserPvrHandler
.getGridFileBrowser()
.setOnItemLongClickListener(
new MultimediaGridOnLongPress(
activity,
MULTIMEDIA_PVR_SCREEN,
MultimediaGridOnLongPress.FILE_BROWSER_MULTIMEDIA));
// /////////////////////////////////////////////////////////////////
// Get references of info views
// /////////////////////////////////////////////////////////////////
pvrFileInfo1 = (A4TVTextView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPVRInfoText1);
pvrFileInfo2 = (A4TVTextView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPVRInfoText2);
pvrFileInfo3 = (A4TVTextView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPVRInfoText3);
pvrFileInfo4 = (A4TVTextView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPVRInfoText4);
// ///////////////////////////////////////////
// Multimedia show dialog
// ///////////////////////////////////////////
pvrFileBrowserText = (A4TVTextView) multimediaDialog
.findViewById(com.iwedia.gui.R.id.multimediaPvrFileBrowserText);
multimediaShowDialog = ((MainActivity) activity).getDialogManager()
.getMultimediaShowDialog();
if (multimediaShowDialog != null)
multimediaShowHandler = new MultimediaShowHandler(activity,
multimediaShowDialog);
}
}
/** Show multimedia first dialog on screen */
public void showMultimedia() {
// Show multimedia list dialog
multimediaDialog.show();
multimediaViewFlipper.setDisplayedChild(0);
// Update multimedia state
multimediaScreen = MULTIMEDIA_FIRST_SCREEN;
MainKeyListener.setAppState(MainKeyListener.MULTIMEDIA_FIRST);
}
/** Close multimedia first dialog from screen */
public void closeMultimedia() {
multimediaDialog.cancel();
MainKeyListener.returnToStoredAppState();
}
/** Hide multimedia first dialog from screen */
public void hideMultimedia() {
multimediaDialog.hide();
}
/** Show multimedia second dialog on screen */
public void showMultimediaSecond() {
// Show second screen
multimediaViewFlipper.setDisplayedChild(1);
multimediaScreen = MULTIMEDIA_SECOND_SCREEN;
MainKeyListener.setAppState(MainKeyListener.MULTIMEDIA_SECOND);
}
/** Hide multimedia second dialog from screen */
public void closeMultimediaSecond() {
// Show first screen
multimediaViewFlipper.setDisplayedChild(0);
}
/** Show multimedia pvr on screen */
public void showMultimediaPvr() {
// Show second screen
multimediaViewFlipper.setDisplayedChild(2);
multimediaScreen = MULTIMEDIA_PVR_SCREEN;
MainKeyListener.setAppState(MainKeyListener.MULTIMEDIA_PVR);
}
/** Hide multimedia pvr from screen */
public void closeMultimediaPvr() {
// Show first screen
multimediaViewFlipper.setDisplayedChild(0);
}
/** Show multimedia show dialog */
public void showMultimediaShow() {
if (multimediaShowDialog != null) {
multimediaShowDialog.show();
}
}
/** Hide multimedia show dialog */
public void closeMultimediaShow() {
if (multimediaShowDialog != null) {
multimediaShowDialog.cancel();
}
}
/** Load filter options layout */
private void loadFilterOptionsLayout(LinearLayout holderFilterButtons,
boolean init) {
// Clear lists of filter buttons
holderFilterButtons.removeAllViews();
if (init) {
filterButtonsFirst.clear();
} else {
filterButtonsSecond.clear();
}
if (filterOptionsMultimedia[FILTER_MULTIMEDIA]) {
LinearLayout filterItem = (LinearLayout) inflater.inflate(
com.iwedia.gui.R.layout.content_list_filter_item, null);
A4TVButton allButton = (A4TVButton) filterItem
.findViewById(com.iwedia.gui.R.id.filterButton);
allButton.setFocusable(false);
allButton.setText(activity.getResources().getString(
com.iwedia.gui.R.string.main_menu_content_list_filter_all));
// if (((MainActivity) activity).isFullHD()) {
// allButton.setTextSize(activity.getResources().getDimension(
// com.iwedia.gui.R.dimen.content_filter_text_size_1080p));
// } else {
// allButton.setTextSize(activity.getResources().getDimension(
// com.iwedia.gui.R.dimen.content_filter_text_size));
// }
setFilterItemParams(filterItem);
if (init) {
filterButtonsFirst.add(filterItem);
} else {
filterButtonsSecond.add(filterItem);
}
filterItem.setTag(FILTER_MULTIMEDIA);
holderFilterButtons.addView(filterItem);
}
if (init) {
// Remove divider from last filter button
ImageView filterDivider = (ImageView) filterButtonsFirst.get(
filterButtonsFirst.size() - 1).findViewById(
com.iwedia.gui.R.id.filterButtonDivider);
filterDivider.setBackgroundColor(Color.TRANSPARENT);
} else {
// Remove divider from last filter button
ImageView filterDivider = (ImageView) filterButtonsSecond.get(
filterButtonsSecond.size() - 1).findViewById(
com.iwedia.gui.R.id.filterButtonDivider);
filterDivider.setBackgroundColor(Color.TRANSPARENT);
}
holderFilterButtons.invalidate();
}
/** Load filter options for pvr filter options */
private void loadFilterOptionsPvrLayout(LinearLayout holderFilterButtons) {
// Clear lists of filter buttons
holderFilterButtons.removeAllViews();
filterButtonsPvr.clear();
// ////////////////////////////
// Record
// ////////////////////////////
if (filterOptionsPvr[FILTER_RECORD_PVR_OPTION
- FILTER_PVR_OPTION_INDEX_OFFSET]) {
LinearLayout filterItem = (LinearLayout) inflater.inflate(
com.iwedia.gui.R.layout.content_list_filter_item, null);
A4TVButton recordButton = (A4TVButton) filterItem
.findViewById(com.iwedia.gui.R.id.filterButton);
recordButton.setText(activity.getResources().getString(
com.iwedia.gui.R.string.multimedia_pvr_record));
// if (((MainActivity) activity).isFullHD()) {
// recordButton.setTextSize(activity.getResources().getDimension(
// com.iwedia.gui.R.dimen.content_filter_text_size_1080p));
// } else {
// recordButton.setTextSize(activity.getResources().getDimension(
// com.iwedia.gui.R.dimen.content_filter_text_size));
// }
recordButton.setOnClickListener(new FilterOnClick(
FILTER_RECORD_PVR_OPTION));
// Attach key listener on filter options list
recordButton.setOnKeyListener(new FilterOptionsKeyListener());
setFilterItemParams(filterItem);
filterButtonsPvr.add(filterItem);
filterItem.setTag(FILTER_RECORD_PVR_OPTION);
holderFilterButtons.addView(filterItem);
}
// //////////////////////////////////
// Schedule
// //////////////////////////////////
if (filterOptionsPvr[FILTER_SCHEDULE_PVR_OPTION
- FILTER_PVR_OPTION_INDEX_OFFSET]) {
LinearLayout filterItem = (LinearLayout) inflater.inflate(
com.iwedia.gui.R.layout.content_list_filter_item, null);
A4TVButton scheduleButton = (A4TVButton) filterItem
.findViewById(com.iwedia.gui.R.id.filterButton);
scheduleButton.setText(activity.getResources().getString(
com.iwedia.gui.R.string.multimedia_pvr_schedule));
scheduleButton.setOnClickListener(new FilterOnClick(
FILTER_SCHEDULE_PVR_OPTION));
// Attach key listener on filter options list
scheduleButton.setOnKeyListener(new FilterOptionsKeyListener());
// if (((MainActivity) activity).isFullHD()) {
// scheduleButton
// .setTextSize(activity
// .getResources()
// .getDimension(
// com.iwedia.gui.R.dimen.content_filter_text_size_1080p));
// } else {
// scheduleButton
// .setTextSize(activity
// .getResources()
// .getDimension(
// com.iwedia.gui.R.dimen.content_filter_text_size));
// }
setFilterItemParams(filterItem);
filterButtonsPvr.add(filterItem);
filterItem.setTag(FILTER_SCHEDULE_PVR_OPTION);
holderFilterButtons.addView(filterItem);
}
// Remove divider from last filter button
ImageView filterDivider = (ImageView) filterButtonsPvr.get(
filterButtonsPvr.size() - 1).findViewById(
com.iwedia.gui.R.id.filterButtonDivider);
filterDivider.setBackgroundColor(Color.TRANSPARENT);
holderFilterButtons.invalidate();
}
/** Customize filter item */
private void setFilterItemParams(LinearLayout filterItem) {
LinearLayout.LayoutParams filterItemParams = new LinearLayout.LayoutParams(
widthMeasureUnit, LayoutParams.MATCH_PARENT, Gravity.CENTER);
filterItem.setLayoutParams(filterItemParams);
filterItem.setClickable(true);
filterItem.setGravity(Gravity.CENTER);
}
/** Filter content of content list */
public void filterContent(int filter) {
// ////////////////////////////////
// Multimedia screens
// /////////////////////////////////
if (multimediaScreen == MULTIMEDIA_FIRST_SCREEN
|| multimediaScreen == MULTIMEDIA_SECOND_SCREEN) {
// Deselect all options and find index of filter option in list
for (int i = 0; i < filterButtonsFirst.size(); i++) {
filterButtonsFirst.get(i).setSelected(false);
filterButtonsSecond.get(i).setSelected(false);
if ((Integer) filterButtonsFirst.get(i).getTag() == filter) {
// Take value in local variable of current selected option
// for
// filtering
currentSelectedFilterOptionMultimedia = i;
}
}
// Select required one
filterButtonsFirst.get(currentSelectedFilterOptionMultimedia)
.setSelected(true);
filterButtonsFirst.get(currentSelectedFilterOptionMultimedia)
.setFocusable(true);
filterButtonsFirst.get(currentSelectedFilterOptionMultimedia)
.requestFocus();
filterButtonsFirst.get(currentSelectedFilterOptionMultimedia)
.setFocusable(false);
filterButtonsSecond.get(currentSelectedFilterOptionMultimedia)
.setSelected(true);
filterButtonsSecond.get(currentSelectedFilterOptionMultimedia)
.setFocusable(true);
filterButtonsSecond.get(currentSelectedFilterOptionMultimedia)
.requestFocus();
filterButtonsSecond.get(currentSelectedFilterOptionMultimedia)
.setFocusable(false);
// Proceed with filtering and loading content
try {
MainActivity.service.getContentListControl().setActiveFilter(
filter + FILTER_MULTIMEDIA_OFFSET);
} catch (RemoteException e) {
e.printStackTrace();
} catch (RuntimeException e) {
e.printStackTrace();
}
}
// ////////////////////////////////////////
// PVR screen
// ////////////////////////////////////////
if (multimediaScreen == MULTIMEDIA_PVR_SCREEN) {
// Deselect all options and find index of filter option in list
for (int i = 0; i < filterButtonsPvr.size(); i++) {
filterButtonsPvr.get(i).setSelected(false);
if ((Integer) filterButtonsPvr.get(i).getTag() == filter) {
// Take value in local variable of current selected option
// for
// filtering
currentSelectedFilterOptionPvr = i;
}
}
filterButtonsPvr.get(currentSelectedFilterOptionPvr).setSelected(
true);
// Proceed with filtering and loading content
try {
MainActivity.service.getContentListControl().setActiveFilter(
filter);
} catch (RemoteException e) {
e.printStackTrace();
} catch (RuntimeException e) {
e.printStackTrace();
}
}
}
/** Select next filter option */
public void selectNextFilter() {
// ////////////////////////////////////////
// Multimedia screens
// ////////////////////////////////////////
if (multimediaScreen == MULTIMEDIA_FIRST_SCREEN
|| multimediaScreen == MULTIMEDIA_SECOND_SCREEN) {
// Calculate next filter
currentSelectedFilterOptionMultimedia++;
if (currentSelectedFilterOptionMultimedia >= numberOfFilterOptionsMultimedia) {
currentSelectedFilterOptionMultimedia = 0;
}
// Load filter
filterContent((Integer) filterButtonsFirst.get(
currentSelectedFilterOptionMultimedia).getTag());
}
// ///////////////////////////////////////////
// PVR screen
// ///////////////////////////////////////////
else {
// Calculate next filter
currentSelectedFilterOptionPvr++;
if (currentSelectedFilterOptionPvr >= numberOfFilterOptionsPvr) {
currentSelectedFilterOptionPvr = 0;
}
// Load filter
filterContent((Integer) filterButtonsPvr.get(
currentSelectedFilterOptionPvr).getTag());
}
// Request items
requestContentItems(0);
}
/** Select previous filter option */
public void selectPreviousFilter() {
// ////////////////////////////////////////
// Multimedia screens
// ////////////////////////////////////////
if (multimediaScreen == MULTIMEDIA_FIRST_SCREEN
|| multimediaScreen == MULTIMEDIA_SECOND_SCREEN) {
// Calculate next filter
currentSelectedFilterOptionMultimedia--;
if (currentSelectedFilterOptionMultimedia < 0) {
currentSelectedFilterOptionMultimedia = numberOfFilterOptionsMultimedia - 1;
}
// Load filter
filterContent((Integer) filterButtonsFirst.get(
currentSelectedFilterOptionMultimedia).getTag());
}
// ///////////////////////////////////////////
// PVR screen
// ///////////////////////////////////////////
else {
// Calculate next filter
currentSelectedFilterOptionPvr--;
if (currentSelectedFilterOptionPvr < 0) {
currentSelectedFilterOptionPvr = numberOfFilterOptionsPvr - 1;
}
// Load filter
filterContent((Integer) filterButtonsPvr.get(
currentSelectedFilterOptionPvr).getTag());
}
// Request items
requestContentItems(0);
}
/**
* Request new content items from service
*
* @param initLoad
* If content list data needs to be initialized
*/
public void requestContentItems(int currentPageFileBrowser) {
if (MainActivity.service != null) {
if (multimediaScreen == MULTIMEDIA_FIRST_SCREEN) {
// ///////////////////////////////////
// Request first screen
// ///////////////////////////////////
try {
// Load number of contents per sublist
MultimediaRecentlyHandler.multimediaRecentlyNumberOfItems = MainActivity.service
.getContentListControl()
.getRecenltyWatchedListSize();
MultimediaFavoriteHandler.multimediaFavoriteNumberOfItems = MainActivity.service
.getContentListControl().getFavoritesSize();
MultimediaFileBrowserHandler.fileBrowserNumberOfItems = MainActivity.service
.getContentListControl().getContentListSize();
} catch (RemoteException e) {
e.printStackTrace();
}
// ////////////////////////////////////////
// Prepare data for focusing
// ////////////////////////////////////////
multimediaRecentlyHandler.setCurrentPage(0);
mutlimediaFavoriteHandler.setCurrentPage(0);
multimediaFileBrowserFirstHandler
.setCurrentPage(currentPageFileBrowser);
// //////////////////////////////////////
// Recently watched
// //////////////////////////////////////
multimediaRecentlyHandler.initData();
// //////////////////////////////////////
// Favorites
// //////////////////////////////////////
mutlimediaFavoriteHandler.initData();
// //////////////////////////////////////
// File browser
// //////////////////////////////////////
multimediaFileBrowserFirstHandler.initData();
// //////////////////////////////////////
// Focus active element
// //////////////////////////////////////
multimediaFileBrowserFirstHandler.focusActiveElement(0);
} else {
// ///////////////////////////
// Second screen request
// ////////////////////////////
if (multimediaScreen == MULTIMEDIA_SECOND_SCREEN) {
try {
MultimediaFilePathHandler.filePathNumberOfItems = MainActivity.service
.getContentListControl().getPathSize();
MultimediaFileBrowserHandler.fileBrowserNumberOfItems = MainActivity.service
.getContentListControl().getContentListSize();
// ////////////////////////////////////////
// Prepare data for focusing
// ////////////////////////////////////////
filePathHandler.setCurrentPage(0);
multimediaFileBrowserSecondHandler
.setCurrentPage(currentPageFileBrowser);
// //////////////////////////////////////
// File path
// //////////////////////////////////////
filePathHandler.initData();
// //////////////////////////////////////
// File browser
// //////////////////////////////////////
multimediaFileBrowserSecondHandler.initData();
// //////////////////////////////////////
// Focus active tv service
// //////////////////////////////////////
multimediaFileBrowserSecondHandler
.focusActiveElement(0);
} catch (RemoteException e) {
e.printStackTrace();
}
}
// ////////////////////////////////////////
// PVR screen
// ////////////////////////////////////////
else {
try {
// Check config file and if USB drive is attached
if (ConfigHandler.PVR_STORAGE_STRING
.equalsIgnoreCase(ConfigHandler.USB_TEXT)) {
// Check if USB is detected
if (PVRHandler.detectUSB()) {
// Load real number of PVR contents
MultimediaFileBrowserHandler.fileBrowserNumberOfItems = MainActivity.service
.getContentListControl()
.getContentListSize();
} else {
// Don't load number of content from NAND
MultimediaFileBrowserHandler.fileBrowserNumberOfItems = 0;
// No usb drive
new A4TVToast(activity)
.showToast(R.string.pvr_no_usb);
}
} else {
// Get list size
MultimediaFileBrowserHandler.fileBrowserNumberOfItems = MainActivity.service
.getContentListControl()
.getContentListSize();
}
// ////////////////////////////////////////
// Prepare data for focusing
// ////////////////////////////////////////
multimediaFileBrowserPvrHandler.setCurrentPage(0);
multimediaFileBrowserPvrHandler.initData();
multimediaFileBrowserPvrHandler.focusActiveElement(0);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
} else {
// ////////////////////////////////
// Show error message
// ////////////////////////////////
new Handler().post(new Runnable() {
@Override
public void run() {
A4TVToast toast = new A4TVToast(activity);
toast.showToast(com.iwedia.gui.R.string.proxy_service_is_null);
}
});
}
}
/** Hide recently navigation arrows from first screen */
public void hideFirstScreenRecentlyArrows() {
firstScreenRecentlyLeftArrow.setVisibility(View.INVISIBLE);
firstScreenRecentlyRightArrow.setVisibility(View.INVISIBLE);
}
/** Show recently navigation arrows from first screen */
public void showFirstScreenRecentlyArrows() {
firstScreenRecentlyLeftArrow.setVisibility(View.VISIBLE);
firstScreenRecentlyRightArrow.setVisibility(View.VISIBLE);
}
/** Hide favorite navigation arrows from first screen */
public void hideFirstScreenFavoriteArrows() {
firstScreenFavoriteLeftArrow.setVisibility(View.INVISIBLE);
firstScreenFavoriteRightArrow.setVisibility(View.INVISIBLE);
}
/** Show favorite navigation arrows from first screen */
public void showFirstScreenFavoriteArrows() {
firstScreenFavoriteLeftArrow.setVisibility(View.VISIBLE);
firstScreenFavoriteRightArrow.setVisibility(View.VISIBLE);
}
/** Hide all navigation arrows from first screen */
public void hideFirstScreenAllArrows() {
firstScreenAllLeftArrow.setVisibility(View.INVISIBLE);
firstScreenAllRightArrow.setVisibility(View.INVISIBLE);
}
/** Show favorite navigation arrows from first screen */
public void showFirstScreenAllArrows() {
firstScreenAllLeftArrow.setVisibility(View.VISIBLE);
firstScreenAllRightArrow.setVisibility(View.VISIBLE);
}
/** Set up position of grid dividers on first screen */
public void setUpDividersFirstScreen() {
// Check resolution and add layout params
// //////////////////////////
// 720p
// //////////////////////////
if (MainActivity.screenWidth == 1280) {
FrameLayout.LayoutParams recentlyDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
recentlyDivParams.topMargin = 35;
firstScreenRecentlyGridDivider.setLayoutParams(recentlyDivParams);
FrameLayout.LayoutParams favoriteDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
favoriteDivParams.topMargin = 35;
firstScreenFavortiteGridDivider.setLayoutParams(favoriteDivParams);
FrameLayout.LayoutParams firstDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
firstDivParams.topMargin = 35;
firstScreenBrowserFirstGridDivider.setLayoutParams(firstDivParams);
// PE Android4TV
if (MainActivity.screenHeight != MainActivity.SCREEN_HEIGHT_720P) {
FrameLayout.LayoutParams secondDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
secondDivParams.topMargin = 117;
firstScreenBrowserSecondGridDivider
.setLayoutParams(secondDivParams);
FrameLayout.LayoutParams thirdDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
thirdDivParams.topMargin = 152;
firstScreenBrowserThirdGridDivider
.setLayoutParams(thirdDivParams);
}
// AMP Android4TV
else {
FrameLayout.LayoutParams secondDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
secondDivParams.topMargin = 125;
firstScreenBrowserSecondGridDivider
.setLayoutParams(secondDivParams);
FrameLayout.LayoutParams thirdDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
thirdDivParams.topMargin = 162;
firstScreenBrowserThirdGridDivider
.setLayoutParams(thirdDivParams);
}
}
// ////////////////////////////////
// 1080p
// ////////////////////////////////
if (MainActivity.screenWidth == 1920) {
FrameLayout.LayoutParams recentlyDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
recentlyDivParams.topMargin = 50;
firstScreenRecentlyGridDivider.setLayoutParams(recentlyDivParams);
FrameLayout.LayoutParams favoriteDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
favoriteDivParams.topMargin = 50;
firstScreenFavortiteGridDivider.setLayoutParams(favoriteDivParams);
FrameLayout.LayoutParams firstDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
firstDivParams.topMargin = 50;
firstScreenBrowserFirstGridDivider.setLayoutParams(firstDivParams);
FrameLayout.LayoutParams secondDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
secondDivParams.topMargin = 194;
firstScreenBrowserSecondGridDivider
.setLayoutParams(secondDivParams);
FrameLayout.LayoutParams thirdDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
thirdDivParams.topMargin = 244;
firstScreenBrowserThirdGridDivider.setLayoutParams(thirdDivParams);
}
}
/** Hide file path navigation arrows from second screen */
public void hideSecondScreenFilePathArrows() {
secondScreenFilePathLeftArrow.setVisibility(View.INVISIBLE);
secondScreenFilePathRightArrow.setVisibility(View.INVISIBLE);
}
/** Show recently navigation arrows from second screen */
public void showSecondScreenFilePathArrows() {
secondScreenFilePathLeftArrow.setVisibility(View.VISIBLE);
secondScreenFilePathRightArrow.setVisibility(View.VISIBLE);
}
/** Hide file browser navigation arrows from second screen */
public void hideSecondScreenAllArrows() {
secondScreenAllLeftArrow.setVisibility(View.INVISIBLE);
secondScreenAllRightArrow.setVisibility(View.INVISIBLE);
}
/** Show file browser navigation arrows from second screen */
public void showSecondScreenAllArrows() {
secondScreenAllLeftArrow.setVisibility(View.VISIBLE);
secondScreenAllRightArrow.setVisibility(View.VISIBLE);
}
/** Set up position of grid dividers on second screen */
public void setUpDividersSecondScreen() {
// Check resolution and add layout params
// //////////////////////////
// 720p
// //////////////////////////
if (MainActivity.screenWidth == 1280) {
FrameLayout.LayoutParams filePathDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
filePathDivParams.topMargin = 35;
secondScreenFilePathGridDivider.setLayoutParams(filePathDivParams);
FrameLayout.LayoutParams firstDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
firstDivParams.topMargin = 35;
secondScreenBrowserFirstGridDivider.setLayoutParams(firstDivParams);
// PE Android4TV
if (MainActivity.screenHeight != MainActivity.SCREEN_HEIGHT_720P) {
FrameLayout.LayoutParams secondDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
secondDivParams.topMargin = 117;
secondScreenBrowserSecondGridDivider
.setLayoutParams(secondDivParams);
FrameLayout.LayoutParams thirdDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
thirdDivParams.topMargin = 152;
secondScreenBrowserThirdGridDivider
.setLayoutParams(thirdDivParams);
FrameLayout.LayoutParams fourthDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
fourthDivParams.topMargin = 235;
secondScreenBrowserFourthGridDivider
.setLayoutParams(fourthDivParams);
FrameLayout.LayoutParams fifthDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
fifthDivParams.topMargin = 270;
secondScreenBrowserFifthGridDivider
.setLayoutParams(fifthDivParams);
}
// AMP Android4TV
else {
FrameLayout.LayoutParams secondDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
secondDivParams.topMargin = 125;
secondScreenBrowserSecondGridDivider
.setLayoutParams(secondDivParams);
FrameLayout.LayoutParams thirdDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
thirdDivParams.topMargin = 162;
secondScreenBrowserThirdGridDivider
.setLayoutParams(thirdDivParams);
FrameLayout.LayoutParams fourthDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
fourthDivParams.topMargin = 252;
secondScreenBrowserFourthGridDivider
.setLayoutParams(fourthDivParams);
FrameLayout.LayoutParams fifthDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
fifthDivParams.topMargin = 290;
secondScreenBrowserFifthGridDivider
.setLayoutParams(fifthDivParams);
}
}
// ////////////////////////////////
// 1080p
// ////////////////////////////////
if (MainActivity.screenWidth == 1920) {
FrameLayout.LayoutParams filePathDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
filePathDivParams.topMargin = 50;
secondScreenFilePathGridDivider.setLayoutParams(filePathDivParams);
FrameLayout.LayoutParams firstDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
firstDivParams.topMargin = 50;
secondScreenBrowserFirstGridDivider.setLayoutParams(firstDivParams);
FrameLayout.LayoutParams secondDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
secondDivParams.topMargin = 194;
secondScreenBrowserSecondGridDivider
.setLayoutParams(secondDivParams);
FrameLayout.LayoutParams thirdDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
thirdDivParams.topMargin = 244;
secondScreenBrowserThirdGridDivider.setLayoutParams(thirdDivParams);
FrameLayout.LayoutParams fourthDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
fourthDivParams.topMargin = 390;
secondScreenBrowserFourthGridDivider
.setLayoutParams(fourthDivParams);
FrameLayout.LayoutParams fifthDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
fifthDivParams.topMargin = 440;
secondScreenBrowserFifthGridDivider.setLayoutParams(fifthDivParams);
}
}
/** Hide file browser navigation arrows from pvr screen */
public void hidePvrScreenAllArrows() {
pvrScreenAllLeftArrow.setVisibility(View.INVISIBLE);
pvrScreenAllRightArrow.setVisibility(View.INVISIBLE);
}
/** Show file browser navigation arrows from pvr screen */
public void showPvrScreenAllArrows() {
pvrScreenAllLeftArrow.setVisibility(View.VISIBLE);
pvrScreenAllRightArrow.setVisibility(View.VISIBLE);
}
/** Set up position of grid dividers on pvr screen */
public void setUpDividersPvrScreen() {
// Check resolution and add layout params
// //////////////////////////
// 720p
// //////////////////////////
if (MainActivity.screenWidth == 1280) {
FrameLayout.LayoutParams firstDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
firstDivParams.topMargin = 35;
pvrScreenBrowserFirstGridDivider.setLayoutParams(firstDivParams);
// PE Android4TV
if (MainActivity.screenHeight != MainActivity.SCREEN_HEIGHT_720P) {
FrameLayout.LayoutParams secondDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
secondDivParams.topMargin = 117;
pvrScreenBrowserSecondGridDivider
.setLayoutParams(secondDivParams);
FrameLayout.LayoutParams thirdDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
thirdDivParams.topMargin = 152;
pvrScreenBrowserThirdGridDivider
.setLayoutParams(thirdDivParams);
FrameLayout.LayoutParams fourthDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
fourthDivParams.topMargin = 235;
pvrScreenBrowserFourthGridDivider
.setLayoutParams(fourthDivParams);
FrameLayout.LayoutParams fifthDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
fifthDivParams.topMargin = 270;
pvrScreenBrowserFifthGridDivider
.setLayoutParams(fifthDivParams);
}
// AMP Android4TV
else {
FrameLayout.LayoutParams secondDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
secondDivParams.topMargin = 125;
pvrScreenBrowserSecondGridDivider
.setLayoutParams(secondDivParams);
FrameLayout.LayoutParams thirdDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
thirdDivParams.topMargin = 162;
pvrScreenBrowserThirdGridDivider
.setLayoutParams(thirdDivParams);
FrameLayout.LayoutParams fourthDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
fourthDivParams.topMargin = 252;
pvrScreenBrowserFourthGridDivider
.setLayoutParams(fourthDivParams);
FrameLayout.LayoutParams fifthDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
fifthDivParams.topMargin = 290;
pvrScreenBrowserFifthGridDivider
.setLayoutParams(fifthDivParams);
}
}
// ////////////////////////////////
// 1080p
// ////////////////////////////////
if (MainActivity.screenWidth == 1920) {
FrameLayout.LayoutParams firstDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
firstDivParams.topMargin = 50;
pvrScreenBrowserFirstGridDivider.setLayoutParams(firstDivParams);
FrameLayout.LayoutParams secondDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
secondDivParams.topMargin = 194;
pvrScreenBrowserSecondGridDivider.setLayoutParams(secondDivParams);
FrameLayout.LayoutParams thirdDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
thirdDivParams.topMargin = 244;
pvrScreenBrowserThirdGridDivider.setLayoutParams(thirdDivParams);
FrameLayout.LayoutParams fourthDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
fourthDivParams.topMargin = 390;
pvrScreenBrowserFourthGridDivider.setLayoutParams(fourthDivParams);
FrameLayout.LayoutParams fifthDivParams = new FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP);
fifthDivParams.topMargin = 440;
pvrScreenBrowserFifthGridDivider.setLayoutParams(fifthDivParams);
}
}
/** Reopen multimedia screen when needed */
public static void returnMultimediaToPreviousState() {
/** SetCurlHandler in Normal State */
OSDHandlerHelper.setHandlerState(CURL_HANDLER_STATE_DO_NOTHING);
// ///////////////////////////////////
// Hide multimedia music icon and overlays
// ///////////////////////////////////
MultimediaGridHelper.hideDlnaOverlays();
if (MultimediaHandler.multimediaScreen == MultimediaHandler.MULTIMEDIA_FIRST_SCREEN) {
MainActivity.activity.getMultimediaHandler().getMultimediaDialog()
.show();
// Update multimedia state
multimediaScreen = MULTIMEDIA_FIRST_SCREEN;
MainKeyListener.setAppState(MainKeyListener.MULTIMEDIA_FIRST);
}
if (MultimediaHandler.multimediaScreen == MultimediaHandler.MULTIMEDIA_SECOND_SCREEN) {
MainActivity.activity.getMultimediaHandler().getMultimediaDialog()
.show();
multimediaScreen = MULTIMEDIA_SECOND_SCREEN;
MainKeyListener.setAppState(MainKeyListener.MULTIMEDIA_SECOND);
try {
MainActivity.service.getContentListControl().setActiveFilter(
FilterType.MULTIMEDIA);
} catch (RemoteException e) {
e.printStackTrace();
}
}
if (MultimediaHandler.multimediaScreen == MultimediaHandler.MULTIMEDIA_PVR_SCREEN) {
MainActivity.activity.getMultimediaHandler().getMultimediaDialog()
.show();
multimediaScreen = MULTIMEDIA_PVR_SCREEN;
MainKeyListener.setAppState(MainKeyListener.MULTIMEDIA_PVR);
try {
MainActivity.service.getContentListControl().setActiveFilter(
FilterType.PVR_RECORDED);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/** Async Task for loading data */
public class LoadTask extends AsyncTask<Void, Void, Boolean> {
private String path;
public LoadTask(String path) {
super();
this.path = path;
}
@Override
protected void onPreExecute() {
progressDialog.show();
super.onPreExecute();
}
@Override
protected Boolean doInBackground(Void... params) {
filterContent(MultimediaHandler.FILTER_MULTIMEDIA);
try {
MainActivity.service.getContentListControl().goPath(path);
} catch (Exception e) {
Log.e(TAG, "GoPath", e);
}
return null;
}
protected void onPostExecute(Boolean result) {
// Hide main menu
if (MainKeyListener.multimediaFromMainMenu) {
((MainActivity) activity).getMainMenuHandler().closeMainMenu(
false);
}
// Show multimedia
showMultimedia();
// Delay start of loading content
Handler delay = new Handler();
delay.postDelayed(new Runnable() {
@Override
public void run() {
requestContentItems(0);
}
}, 200);
progressDialog.dismiss();
}
};
/** Async Task for loading data in multimedia */
public class LoadTaskMultimediaBack extends AsyncTask<Void, Void, Boolean> {
private String path;
private int state;
public LoadTaskMultimediaBack(String path, int state) {
super();
this.path = path;
this.state = state;
}
@Override
protected void onPreExecute() {
progressDialog.show();
super.onPreExecute();
}
@Override
protected Boolean doInBackground(Void... params) {
try {
MainActivity.service.getContentListControl().setActiveFilter(
MultimediaHandler.FILTER_MULTIMEDIA
+ MultimediaHandler.FILTER_MULTIMEDIA_OFFSET);
MainActivity.service.getContentListControl().goPath(path);
} catch (Exception e) {
Log.e("Multimedia handler", "GoPath", e);
}
return null;
}
protected void onPostExecute(Boolean result) {
((MainActivity) activity).getMultimediaHandler()
.getLinearLayoutSortedPlaylistItemsByTitle()
.setVisibility(View.INVISIBLE);
((MainActivity) activity).getMultimediaHandler()
.getLinearLayoutSortedPlaylistItemsByArtist()
.setVisibility(View.INVISIBLE);
((MainActivity) activity).getMultimediaHandler()
.getLinearLayoutSortedPlaylistItemsByDuration()
.setVisibility(View.INVISIBLE);
// ///////////////////////////////////
// Multimedia
// ///////////////////////////////////
if (state == LOAD_BACK_FIRST_SCREEN) {
closeMultimediaSecond();
}
// /////////////////////////////////////
// PVR
// /////////////////////////////////////
if (state == LOAD_BACK_FIRST_SCREEN_FROM_PVR) {
closeMultimediaPvr();
}
// ///////////////////////////////////
// ReOpen Multimedia from Player
// ///////////////////////////////////
if (state == REOPEN_MULTIMEDIA) {
showMultimedia();
}
((MainActivity) activity).getMultimediaHandler().filterContent(
MultimediaHandler.FILTER_MULTIMEDIA);
// /////////////////////////////////////////
// Request items
// /////////////////////////////////////////
// Get current navigation object
MultimediaNavigationObject navigationObject = MultimediaNavigationHandler
.getCurrentNavigationObject();
if (navigationObject != null) {
// Request contents for defined page
((MainActivity) activity).getMultimediaHandler()
.requestContentItems(navigationObject.getPage());
// Find position of focus
int focusPosition;
switch (multimediaScreen) {
case MULTIMEDIA_FIRST_SCREEN: {
focusPosition = MultimediaNavigationHandler
.findPositionOfPreviousFolder(
navigationObject,
MultimediaFileBrowserHandler.fileBrowserCurrentItemsFirstScreen);
multimediaFileBrowserFirstHandler
.focusActiveElement(focusPosition);
break;
}
case MULTIMEDIA_SECOND_SCREEN: {
focusPosition = MultimediaNavigationHandler
.findPositionOfPreviousFolder(
navigationObject,
MultimediaFileBrowserHandler.fileBrowserCurrentItemsSecondScreen);
multimediaFileBrowserSecondHandler
.focusActiveElement(focusPosition);
break;
}
}
} else {
// Request contents for defined page
((MainActivity) activity).getMultimediaHandler()
.requestContentItems(0);
}
// Return to previous folder
MultimediaNavigationHandler.returnToPreviousFolder(1);
progressDialog.dismiss();
}
};
// //////////////////////////////////////////////////
// Getters and Setters
// //////////////////////////////////////////////////
/** Get first screen dialog */
public A4TVDialog getMultimediaDialog() {
return multimediaDialog;
}
public MultimediaRecentlyHandler getMultimediaRecentlyHandler() {
return multimediaRecentlyHandler;
}
public MultimediaFavoriteHandler getMutlimediaFavoriteHandler() {
return mutlimediaFavoriteHandler;
}
public MultimediaFileBrowserHandler getMultimediaFileBrowserFirstHandler() {
return multimediaFileBrowserFirstHandler;
}
public MultimediaFileBrowserHandler getMultimediaFileBrowserSecondHandler() {
return multimediaFileBrowserSecondHandler;
}
public MultimediaFilePathHandler getFilePathHandler() {
return filePathHandler;
}
public MultimediaShowHandler getMultimediaShowHandler() {
return multimediaShowHandler;
}
public A4TVTextView getPvrFileInfo1() {
return pvrFileInfo1;
}
public A4TVTextView getPvrFileInfo2() {
return pvrFileInfo2;
}
public A4TVTextView getPvrFileInfo3() {
return pvrFileInfo3;
}
public A4TVTextView getPvrFileInfo4() {
return pvrFileInfo4;
}
public MultimediaFileBrowserHandler getMultimediaFileBrowserPvrHandler() {
return multimediaFileBrowserPvrHandler;
}
/** Get layout that shows that music is player from dlna */
public LinearLayout getMusicFromDlnaLayout() {
return musicFromDlnaLayout;
}
public ImageView getImageViewMusicReproduction() {
return imageViewMusicReproduction;
}
public A4TVTextView getTextViewLyrics() {
return textViewLyrics;
}
public A4TVInfoDescriptionScrollView getScrollViewLyrics() {
return scrollViewLyrics;
}
// /////////////////////////////////////////////
// Navigation arrows getters and setters
// /////////////////////////////////////////////
public ImageView getFirstScreenRecentlyLeftArrow() {
return firstScreenRecentlyLeftArrow;
}
public ImageView getFirstScreenRecentlyRightArrow() {
return firstScreenRecentlyRightArrow;
}
public ImageView getFirstScreenFavoriteLeftArrow() {
return firstScreenFavoriteLeftArrow;
}
public ImageView getFirstScreenFavoriteRightArrow() {
return firstScreenFavoriteRightArrow;
}
public ImageView getFirstScreenAllLeftArrow() {
return firstScreenAllLeftArrow;
}
public ImageView getFirstScreenAllRightArrow() {
return firstScreenAllRightArrow;
}
public ImageView getSecondScreenFilePathLeftArrow() {
return secondScreenFilePathLeftArrow;
}
public ImageView getSecondScreenFilePathRightArrow() {
return secondScreenFilePathRightArrow;
}
public ImageView getSecondScreenAllLeftArrow() {
return secondScreenAllLeftArrow;
}
public ImageView getSecondScreenAllRightArrow() {
return secondScreenAllRightArrow;
}
public ImageView getPvrScreenAllLeftArrow() {
return pvrScreenAllLeftArrow;
}
public ImageView getPvrScreenAllRightArrow() {
return pvrScreenAllRightArrow;
}
public A4TVDialog getMultimediaShowDialog() {
return multimediaShowDialog;
}
public LinearLayout getLinearLayoutSortedBy() {
return linearLayoutSortedBy;
}
public LinearLayout getLinearLayoutSortedPlaylistItemsByTitle() {
return linearLayoutSortedPlaylistItemsByTitle;
}
public LinearLayout getLinearLayoutSortedPlaylistItemsByArtist() {
return linearLayoutSortedPlaylistItemsByArtist;
}
public LinearLayout getLinearLayoutSortedPlaylistItemsByDuration() {
return linearLayoutSortedPlaylistItemsByDuration;
}
public boolean isDetectScrollLyricsEnd() {
return detectScrollLyricsEnd;
}
public int getScrollLyricsValue() {
return scrollLyricsValue;
}
public void setDetectScrollLyricsEnd(boolean detectScrollLyricsEnd) {
this.detectScrollLyricsEnd = detectScrollLyricsEnd;
}
public void setScrollLyricsValue(int scrollLyricsValue) {
this.scrollLyricsValue = scrollLyricsValue;
}
/** OnClick listener for filter buttons */
private class FilterOnClick implements OnClickListener {
private int tag;
public FilterOnClick(int tag) {
this.tag = tag;
}
@Override
public void onClick(View v) {
if (tag == FILTER_RECORD_PVR_OPTION) {
PvrSortMode sortMode;
PvrSortOrder sortOrder;
linearLayoutSortedBy.setVisibility(View.VISIBLE);
try {
sortMode = MainActivity.service.getPvrControl()
.getMediaListSortMode();
sortOrder = MainActivity.service.getPvrControl()
.getMediaListSortOrder();
int filterType = MainActivity.service
.getContentListControl().getActiveFilterIndex();
MainActivity.service.getContentListControl()
.setActiveFilter(FilterType.PVR_RECORDED);
int pvrSize = MainActivity.service.getContentListControl()
.getContentListSize();
if (pvrSize > 0) {
MultimediaHandler.pvrFileBrowserText
.setText("PVR playlist sorted by "
+ MultimediaHandler.sortPvrFilesBy[sortMode
.getValue()]
+ " in "
+ MultimediaHandler.sortPvrFilesByOrder[sortOrder
.getValue()] + " order");
} else {
MultimediaHandler.pvrFileBrowserText.setText(activity
.getResources().getString(
R.string.multimedia_pvr_playlist));
}
MainActivity.service.getContentListControl()
.setActiveFilter(filterType);
} catch (RemoteException e) {
e.printStackTrace();
}
} else {
linearLayoutSortedBy.setVisibility(View.INVISIBLE);
pvrFileBrowserText.setText(activity.getResources().getString(
R.string.multimedia_file_explorer));
}
// Load filter
filterContent(tag);
// Request items
requestContentItems(0);
}
}
private class FilterOptionsKeyListener implements OnKeyListener {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
multimediaFileBrowserPvrHandler.focusActiveElement(0);
} else {
return false;
}
}
return false;
}
}
private class ScrollLyrics implements Scrolled {
@Override
public void scrolled() {
}
@Override
public void detectEnd() {
detectScrollLyricsEnd = true;
}
}
public void scrollLyrics(int direction) {
if (direction == -1) {
if (detectScrollLyricsEnd) {
return;
}
scrollLyricsValue += 10;
MainActivity.activity.getMultimediaHandler().getScrollViewLyrics()
.scrollTo(0, scrollLyricsValue);
} else {
detectScrollLyricsEnd = false;
if (scrollLyricsValue == 0) {
return;
}
scrollLyricsValue -= 10;
MainActivity.activity.getMultimediaHandler().getScrollViewLyrics()
.scrollTo(0, scrollLyricsValue);
}
}
}