protected void selectItem(T item) { deselectAll(); item.setSelected(true); selectedItem = item; selectedIndex = itemList.indexOf(selectedItem); lc.updateHorizontalScrollbar(item, scroll); }
public void changeSelection(int delta, int keyCode) { boolean sideways = keyCode == KeyEvent.VK_LEFT || keyCode == KeyEvent.VK_RIGHT; T item = lc.changeSelection(itemList, selectedItem, delta, sideways); if (item != null) { selectItem(item); } }
public void onActivityResume(Activity activity) { super.onActivityResume(activity); if (mVideoManager != null) { mVideoManager.setController(this); } if (mControlManager != null) { mControlManager.setController(this); } }
public void onActivityPause() { if (mVideoManager != null) { mVideoManager.setController(null); } if (mTvShowManager != null) { mTvShowManager.setController(null); } super.onActivityPause(); }
public void onActivityPause() { if (mVideoManager != null) { mVideoManager.setController(null); mVideoManager.postActivity(); } if (mControlManager != null) { mControlManager.setController(null); } super.onActivityPause(); }
public void onActivityResume(Activity activity) { super.onActivityResume(activity); ConnectionFactory.getNowPlayingPoller(activity.getApplicationContext()) .subscribe(mNowPlayingHandler); if (mEventClient != null) { mEventClient.setController(this); } if (mMusicManager != null) { mMusicManager.setController(this); } if (mControlManager != null) { mControlManager.setController(this); } }
public void onActivityPause() { ConnectionFactory.getNowPlayingPoller(mActivity.getApplicationContext()) .unSubscribe(mNowPlayingHandler); if (mMusicManager != null) { mMusicManager.setController(null); mMusicManager.postActivity(); } if (mControlManager != null) { mControlManager.setController(null); } if (mEventClient != null) { mEventClient.setController(null); } super.onActivityPause(); }
public void onCreate(Activity activity, Handler handler, AbsListView list) { mMusicManager = ManagerFactory.getMusicManager(this); mControlManager = ManagerFactory.getControlManager(this); ((ISortableManager) mMusicManager).setSortKey(AbstractManager.PREF_SORT_KEY_ALBUM); ((ISortableManager) mMusicManager) .setPreferences(activity.getPreferences(Context.MODE_PRIVATE)); final String sdError = ImportUtilities.assertSdCard(); mLoadCovers = sdError == null; if (!isCreated()) { super.onCreate(activity, handler, list); if (!mLoadCovers) { Toast toast = Toast.makeText( activity, sdError + " Displaying place holders only.", Toast.LENGTH_LONG); toast.show(); } mArtist = (Artist) activity.getIntent().getSerializableExtra(ListController.EXTRA_ARTIST); mGenre = (Genre) activity.getIntent().getSerializableExtra(ListController.EXTRA_GENRE); activity.registerForContextMenu(mList); mFallbackBitmap = BitmapFactory.decodeResource(activity.getResources(), R.drawable.default_album); setupIdleListener(); mList.setOnItemClickListener( new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (isLoading()) return; Intent nextActivity; final Album album = (Album) mList.getAdapter().getItem(((ThreeLabelsItemView) view).position); nextActivity = new Intent(view.getContext(), ListActivity.class); nextActivity.putExtra(ListController.EXTRA_LIST_CONTROLLER, new SongListController()); nextActivity.putExtra(ListController.EXTRA_ALBUM, album); mActivity.startActivity(nextActivity); } }); mList.setOnKeyListener(new ListControllerOnKeyListener<Album>()); fetch(); } }
public void onCreate(Activity activity, Handler handler, AbsListView list) { mVideoManager = ManagerFactory.getVideoManager(this); mControlManager = ManagerFactory.getControlManager(this); ((ISortableManager) mVideoManager).setSortKey(AbstractManager.PREF_SORT_KEY_MOVIE); ((ISortableManager) mVideoManager) .setPreferences(activity.getPreferences(Context.MODE_PRIVATE)); final String sdError = ImportUtilities.assertSdCard(); mLoadCovers = sdError == null; if (!isCreated()) { super.onCreate(activity, handler, list); if (!mLoadCovers) { Toast toast = Toast.makeText( activity, sdError + " Displaying place holders only.", Toast.LENGTH_LONG); toast.show(); } mActor = (Actor) mActivity.getIntent().getSerializableExtra(ListController.EXTRA_ACTOR); mGenre = (Genre) mActivity.getIntent().getSerializableExtra(ListController.EXTRA_GENRE); activity.registerForContextMenu(mList); mFallbackBitmap = BitmapFactory.decodeResource(activity.getResources(), R.drawable.default_poster); mWatchedBitmap = BitmapFactory.decodeResource(activity.getResources(), R.drawable.check_mark); setupIdleListener(); mList.setOnItemClickListener( new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (isLoading()) return; final Movie movie = (Movie) mList.getAdapter().getItem(((FiveLabelsItemView) view).position); Intent nextActivity = new Intent(view.getContext(), MovieDetailsActivity.class); nextActivity.putExtra(ListController.EXTRA_MOVIE, movie); mActivity.startActivity(nextActivity); } }); mList.setOnKeyListener(new ListControllerOnKeyListener<Movie>()); fetch(); } }
protected void layoutItems() { Insets insets = main.getInsets(); Dimension size = new Dimension(); int xOff = 12 + insets.left; int yOff = 57; xOff += layoutXOffAdjustment; yOff += layoutYOffAdjustment; int x = 0; int y = yOff; Rectangle b = main.getBounds(); for (T item : itemList) { size = item.getPreferredSize(); lc.itemsPerRow = (b.height - yOff) / (size.height + layoutItemHeightAdjustment); item.setBounds(xOff + x, y + insets.top, size.width, size.height); y += size.height + layoutItemHeightAdjustment; if (!layoutHeightOnly) { if (y + size.height > b.height) { x += size.width + xOff; y = yOff; } } } Dimension d = main.getPreferredSize(); d.width = x + size.width + xOff * 2; if (layoutHeightOnly) { d.height = y + size.height + yOff; } main.setPreferredSize(d); main.repaint(); }
@Override public void onOptionsItemSelected(MenuItem item) { final SharedPreferences.Editor ed; switch (item.getItemId()) { case MENU_PLAY_ALL: break; case MENU_SORT_BY_TITLE_ASC: ed = mActivity.getPreferences(Context.MODE_PRIVATE).edit(); ed.putInt( AbstractManager.PREF_SORT_BY_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.TITLE); ed.putString( AbstractManager.PREF_SORT_ORDER_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.ORDER_ASC); ed.commit(); fetch(); break; case MENU_SORT_BY_TITLE_DESC: ed = mActivity.getPreferences(Context.MODE_PRIVATE).edit(); ed.putInt( AbstractManager.PREF_SORT_BY_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.TITLE); ed.putString( AbstractManager.PREF_SORT_ORDER_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.ORDER_DESC); ed.commit(); fetch(); break; case MENU_SORT_BY_YEAR_ASC: ed = mActivity.getPreferences(Context.MODE_PRIVATE).edit(); ed.putInt( AbstractManager.PREF_SORT_BY_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.YEAR); ed.putString( AbstractManager.PREF_SORT_ORDER_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.ORDER_ASC); ed.commit(); fetch(); break; case MENU_SORT_BY_YEAR_DESC: ed = mActivity.getPreferences(Context.MODE_PRIVATE).edit(); ed.putInt( AbstractManager.PREF_SORT_BY_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.YEAR); ed.putString( AbstractManager.PREF_SORT_ORDER_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.ORDER_DESC); ed.commit(); fetch(); break; case MENU_SORT_BY_RATING_ASC: ed = mActivity.getPreferences(Context.MODE_PRIVATE).edit(); ed.putInt( AbstractManager.PREF_SORT_BY_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.RATING); ed.putString( AbstractManager.PREF_SORT_ORDER_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.ORDER_ASC); ed.commit(); fetch(); break; case MENU_SORT_BY_RATING_DESC: ed = mActivity.getPreferences(Context.MODE_PRIVATE).edit(); ed.putInt( AbstractManager.PREF_SORT_BY_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.RATING); ed.putString( AbstractManager.PREF_SORT_ORDER_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.ORDER_DESC); ed.commit(); fetch(); break; case MENU_SORT_BY_DATE_ADDED_ASC: ed = mActivity.getPreferences(Context.MODE_PRIVATE).edit(); ed.putInt( AbstractManager.PREF_SORT_BY_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.DATE_ADDED); ed.putString( AbstractManager.PREF_SORT_ORDER_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.ORDER_ASC); ed.commit(); fetch(); break; case MENU_SORT_BY_DATE_ADDED_DESC: ed = mActivity.getPreferences(Context.MODE_PRIVATE).edit(); ed.putInt( AbstractManager.PREF_SORT_BY_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.DATE_ADDED); ed.putString( AbstractManager.PREF_SORT_ORDER_PREFIX + AbstractManager.PREF_SORT_KEY_MOVIE, SortType.ORDER_DESC); ed.commit(); fetch(); break; default: super.onOptionsItemSelected(item); } }
public void onCreate(Activity activity, Handler handler, AbsListView list) { mVideoManager = ManagerFactory.getVideoManager(this); mTvShowManager = ManagerFactory.getTvManager(this); if (!isCreated()) { super.onCreate(activity, handler, list); final String sdError = ImportUtilities.assertSdCard(); mLoadCovers = sdError == null; if (!mLoadCovers) { Toast toast = Toast.makeText( activity, sdError + " Displaying place holders only.", Toast.LENGTH_LONG); toast.show(); } mFallbackBitmap = BitmapFactory.decodeResource(activity.getResources(), R.drawable.person_black_small); setupIdleListener(); final String title = mType == TYPE_MOVIE ? "Movie " : mType == TYPE_TVSHOW ? "TV " : "" + "Actors"; DataResponse<ArrayList<Actor>> response = new DataResponse<ArrayList<Actor>>() { @SuppressLint("") public void run() { if (value.size() > 0) { setTitle(title + " (" + value.size() + ")"); ((ListView) mList).setAdapter(new ActorAdapter(mActivity, value)); } else { setTitle(title); setNoDataMessage("No actors found.", R.drawable.icon_artist_dark); } } }; mList.setOnKeyListener(new ListControllerOnKeyListener<Artist>()); showOnLoading(); setTitle(title + "..."); switch (mType) { case TYPE_MOVIE: mVideoManager.getMovieActors(response, mActivity.getApplicationContext()); break; case TYPE_TVSHOW: mTvShowManager.getTvShowActors(response, mActivity.getApplicationContext()); break; case TYPE_EPISODE: break; } mList.setOnItemClickListener( new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (isLoading()) return; Intent nextActivity; final Actor actor = (Actor) mList.getAdapter().getItem(((OneLabelItemView) view).position); nextActivity = new Intent(view.getContext(), ListActivity.class); if (mType == TYPE_TVSHOW) nextActivity.putExtra( ListController.EXTRA_LIST_CONTROLLER, new TvShowListController()); else nextActivity.putExtra( ListController.EXTRA_LIST_CONTROLLER, new MovieListController()); nextActivity.putExtra(ListController.EXTRA_ACTOR, actor); mActivity.startActivity(nextActivity); } }); } }
public void onActivityResume(Activity activity) { super.onActivityResume(activity); mVideoManager = ManagerFactory.getVideoManager(this); mTvShowManager = ManagerFactory.getTvManager(this); }
public abstract class ToolbarList<T extends Component & ToolbarList.ToolbarListItem> extends BackgroundPanel { interface ToolbarListItem { public void setSelected(boolean b); } protected List<T> itemList = Factory.newArrayList(); protected ListController<T> lc = ListController.newInstance(); private static Image hLine, noteToolsTrash; protected JPanel main; protected JButton bNew; protected SearchTextField search; protected JScrollPane scroll; protected JButton trash; protected boolean isEditing; protected T selectedItem; protected int selectedIndex; protected int layoutItemHeightAdjustment = 0; protected int layoutXOffAdjustment = 0; protected int layoutYOffAdjustment = 0; protected boolean layoutHeightOnly = false; private Image newButtonImage; private String searchHint; static { Iterator<Image> i = Images.iterator(new String[] {"notebooksHLine", "noteToolsTrash"}); hLine = i.next(); noteToolsTrash = i.next(); } public ToolbarList(Image img, Image newButtonImage, String searchHint) { super(img); this.newButtonImage = newButtonImage; this.searchHint = searchHint; } protected void initialize() { createComponents(); update(); addComponentListener( new ResizeListener() { @Override public void componentResized(ComponentEvent e) { layoutItems(); } }); } protected void createComponents() { main = new JPanel(); main.setLayout(null); int divY = 42; BackgroundPanel div = new BackgroundPanel(hLine); div.setBounds(0, divY, 1920, 2); div.setStyle(BackgroundPanel.SCALED_X); JPanel tools = new JPanel(null); tools.setBounds(0, 0, 800, divY); bNew = new JButton(""); bNew.setIcon(new ImageIcon(newButtonImage)); bNew.setBorderPainted(false); bNew.setBounds(10, 10, newButtonImage.getWidth(null), newButtonImage.getHeight(null)); search = new SearchTextField(searchHint, ElephantWindow.fontMedium); search.setBorder(BorderFactory.createEmptyBorder(0, 22, 0, 20)); search.setBounds(newButtonImage.getWidth(null) + 10, 8, 160, 26); search.setFont(ElephantWindow.fontMedium); search.setFixedColor(Color.decode("#e9e9e9")); search.useV2(); search.windowFocusGained(); trash = new JButton(""); trash.setBorderPainted(false); trash.setContentAreaFilled(false); trash.setIcon(new ImageIcon(noteToolsTrash)); trash.setVisible(this instanceof Notebooks); trash.setBounds( newButtonImage.getWidth(null) + 177, 10, noteToolsTrash.getWidth(null), noteToolsTrash.getHeight(null)); tools.add(bNew); tools.add(search); tools.add(trash); scroll = new JScrollPane(main); scroll.setBorder(ElephantWindow.emptyBorder); scroll.getHorizontalScrollBar().setUnitIncrement(5); scroll.getVerticalScrollBar().setUnitIncrement(5); add(tools); add(div); add(scroll); addComponentListeners(); } protected abstract List<T> queryFilter(String text); protected abstract void newButtonAction(); protected abstract void trashButtonAction(); protected void vkEnter() {} protected void update() { for (T item : itemList) { item.setVisible(false); } main.removeAll(); itemList.clear(); deselectAll(); List<T> list = queryFilter(search.getText()); for (T item : list) { main.add(item); itemList.add(item); } } protected void layoutItems() { Insets insets = main.getInsets(); Dimension size = new Dimension(); int xOff = 12 + insets.left; int yOff = 57; xOff += layoutXOffAdjustment; yOff += layoutYOffAdjustment; int x = 0; int y = yOff; Rectangle b = main.getBounds(); for (T item : itemList) { size = item.getPreferredSize(); lc.itemsPerRow = (b.height - yOff) / (size.height + layoutItemHeightAdjustment); item.setBounds(xOff + x, y + insets.top, size.width, size.height); y += size.height + layoutItemHeightAdjustment; if (!layoutHeightOnly) { if (y + size.height > b.height) { x += size.width + xOff; y = yOff; } } } Dimension d = main.getPreferredSize(); d.width = x + size.width + xOff * 2; if (layoutHeightOnly) { d.height = y + size.height + yOff; } main.setPreferredSize(d); main.repaint(); } protected void refresh() { update(); layoutItems(); } protected void deselectAll() { if (selectedItem != null) { selectedItem.setSelected(false); selectedItem = null; } } public boolean isEditing() { return isEditing || (search != null && search.hasFocus()); } protected void addComponentListeners() { main.addMouseListener( new CustomMouseListener() { @Override public void mouseClicked(MouseEvent e) { deselectAll(); search.setFocusable(false); } }); if (bNew != null) { bNew.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { newButtonAction(); } }); } search .getDocument() .addDocumentListener( new DocumentListener() { @Override public void insertUpdate(DocumentEvent e) { refresh(); } @Override public void removeUpdate(DocumentEvent e) { refresh(); } @Override public void changedUpdate(DocumentEvent e) { refresh(); } }); search.addKeyListener( new KeyListener() { @Override public void keyTyped(KeyEvent e) {} @Override public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_UP: if (search.hasFocus()) { search.setFocusable(false); changeSelection(-1, 0); } break; case KeyEvent.VK_DOWN: if (search.hasFocus()) { search.setFocusable(false); changeSelection(1, 0); } break; } } @Override public void keyReleased(KeyEvent e) {} }); if (this instanceof Notebooks) { trash.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { trashButtonAction(); } }); } } public void changeSelection(int delta, int keyCode) { boolean sideways = keyCode == KeyEvent.VK_LEFT || keyCode == KeyEvent.VK_RIGHT; T item = lc.changeSelection(itemList, selectedItem, delta, sideways); if (item != null) { selectItem(item); } } protected void selectItem(T item) { deselectAll(); item.setSelected(true); selectedItem = item; selectedIndex = itemList.indexOf(selectedItem); lc.updateHorizontalScrollbar(item, scroll); } protected JTextField setEditable(final T item, String name) { final JTextField edit = new JTextField(); edit.setText(name); edit.setSelectionStart(0); edit.setSelectionEnd(name.length()); edit.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { isEditing = false; doneEditing(item, edit.getText()); } }); edit.addKeyListener( new KeyListener() { @Override public void keyTyped(KeyEvent e) {} @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { isEditing = false; cancelEditing(item); } } @Override public void keyReleased(KeyEvent e) {} }); isEditing = true; return edit; } protected abstract void doneEditing(T item, String text); protected abstract void cancelEditing(T item); static final Timer t = new Timer(); public void handleKeyEvent(final KeyEvent e) { switch (e.getID()) { case KeyEvent.KEY_PRESSED: switch (e.getKeyCode()) { case KeyEvent.VK_ENTER: vkEnter(); break; default: if (e.getKeyCode() != KeyEvent.VK_ESCAPE && e.getKeyCode() != KeyEvent.VK_BACK_SPACE) { if (e.getModifiers() == 0) { if (!search.hasFocus()) { final Document d = search.getDocument(); final int pos = search.getCaretPosition(); // Avoid inserted character to be highlighted and // wiped by succeeding keystrokes. hack. TimerTask tt = new TimerTask() { @Override public void run() { EventQueue.invokeLater( new Runnable() { @Override public void run() { try { d.insertString(pos, String.valueOf(e.getKeyChar()), null); search.setCaretPosition(search.getCaretPosition() + 1); } catch (BadLocationException e1) { } catch (IllegalArgumentException e2) { } } }); } }; t.schedule(tt, 50); search.setFocusable(true); search.requestFocusInWindow(); } } } } break; } } }
public void onCreate(final PlaylistActivity activity, Handler handler, final AbsListView list) { mPlaylistActivity = activity; mMusicManager = ManagerFactory.getMusicManager(this); mControlManager = ManagerFactory.getControlManager(this); mEventClient = ManagerFactory.getEventClientManager(this); mNowPlayingHandler = new Handler(this); if (!isCreated()) { super.onCreate(activity, handler, list); activity.registerForContextMenu(mList); mFallbackBitmap = BitmapFactory.decodeResource(activity.getResources(), R.drawable.icon_song_light); sPlayingBitmap = BitmapFactory.decodeResource(activity.getResources(), R.drawable.icon_play); mMusicManager.getPlaylistPosition( new DataResponse<Integer>() { public void run() { mCurrentPosition = value; } }, mActivity.getApplicationContext()); mMusicManager.getPlaylist( new DataResponse<ArrayList<String>>() { public void run() { if (value.size() > 0) { final ArrayList<PlaylistItem> items = new ArrayList<PlaylistItem>(); int i = 0; for (String path : value) { items.add(new PlaylistItem(path, i++)); } setTitle( "Music playlist (" + (value.size() > MusicClient.PLAYLIST_LIMIT ? MusicClient.PLAYLIST_LIMIT + "+" : value.size()) + ")"); mSongAdapter = new SongAdapter(activity, items); mList.setAdapter(mSongAdapter); if (mCurrentPosition >= 0) { mList.setSelection(mCurrentPosition); } } else { setTitle("Music playlist"); setNoDataMessage("No tracks in playlist.", R.drawable.icon_playlist_dark); } } }, mActivity.getApplicationContext()); mList.setOnItemClickListener( new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { final PlaylistItem item = (PlaylistItem) mList.getAdapter().getItem(((OneLabelItemView) view).position); final DataResponse<Boolean> doNothing = new DataResponse<Boolean>(); mControlManager.setPlaylistId( doNothing, mPlayListId < 0 ? 0 : mPlayListId, mActivity.getApplicationContext()); mMusicManager.setPlaylistSong( doNothing, item.position, mActivity.getApplicationContext()); } }); mList.setOnKeyListener(new ListControllerOnKeyListener<Song>()); setTitle("Music playlist..."); } }