private void notifyChanged(Action action) { ArrayObjectAdapter adapter = mPrimaryActionsAdapter; if (adapter.indexOf(action) >= 0) { adapter.notifyArrayItemRangeChanged(adapter.indexOf(action), 1); return; } adapter = mSecondaryActionsAdapter; if (adapter.indexOf(action) >= 0) { adapter.notifyArrayItemRangeChanged(adapter.indexOf(action), 1); return; } }
private void sortHeaders() { for (int i = 0; i < mRowsAdapter.size() - 1; i++) { for (int j = i + 1; j < mRowsAdapter.size() - 1; j++) { ListRow listRow1 = (ListRow) mRowsAdapter.get(i); ListRow listRow2 = (ListRow) mRowsAdapter.get(j); if ((int) listRow2.getHeaderItem().getName().charAt(0) < (int) listRow1.getHeaderItem().getName().charAt(0)) { int index1 = mRowsAdapter.indexOf(listRow1); int index2 = mRowsAdapter.indexOf(listRow2); mRowsAdapter.replace(index1, listRow2); mRowsAdapter.replace(index2, listRow1); } } } }
@Subscribe public void onFilesLoaded(ServerFilesLoadedEvent event) { List<ServerFile> serverFiles = sortFiles(event.getServerFiles()); ListRow listRow = null; ArrayObjectAdapter gridRowAdapter = new ArrayObjectAdapter(new MainTVPresenter(getActivity(), serverClient, serverFiles)); if (serverFiles.size() != 0) { String shareName = serverFiles.get(0).getParentShare().getName(); for (int i = 0; i < serverFiles.size(); i++) { gridRowAdapter.add(serverFiles.get(i)); } for (int i = 0; i < serverShareList.size(); i++) { if (shareName.matches(serverShareList.get(i).getName())) { HeaderItem headerItem = new HeaderItem(shareName); listRow = new ListRow(headerItem, gridRowAdapter); mRowsAdapter.add(listRow); serverShareList.remove(i); break; } } } if (listRow != null) { int index1 = mRowsAdapter.indexOf(listRow); int index2 = mRowsAdapter.indexOf(settingsRow); mRowsAdapter.replace(index1, settingsRow); mRowsAdapter.replace(index2, listRow); } sortHeaders(); setAdapter(mRowsAdapter); }
@Override public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, Row row) { if (item instanceof Track) { String trackUri = ((Track) item).uri; SpotifyPlayerController spotifyPlayerController = SpotifyTvApplication.getInstance().getSpotifyPlayerController(); if (spotifyPlayerController.getPlayingState().isCurrentTrack(trackUri)) { spotifyPlayerController.togglePauseResume(); } else { // get song and following ones List<String> trackUris = new ArrayList<>(); List<TrackSimple> tracks = new ArrayList<TrackSimple>(); for (int i = mTopTrackAdapter.indexOf(item); i < mTopTrackAdapter.size() && i < Constants.MAX_SONGS_PLAYED; i++) { tracks.add((TrackSimple) mTopTrackAdapter.get(i)); trackUris.add(((Track) mTopTrackAdapter.get(i)).uri); } spotifyPlayerController.play(trackUri, trackUris, tracks); } } else { SpotifyTvApplication.getInstance().launchDetailScreen(getActivity(), item); } } });
@Override public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, Row row) { if (item instanceof Track) { String trackUri = ((Track) item).uri; SpotifyPlayerController spotifyPlayerController = SpotifyTvApplication.getInstance().getSpotifyPlayerController(); if (spotifyPlayerController.getPlayingState().isCurrentTrack(trackUri)) { spotifyPlayerController.togglePauseResume(); } else { // get song and following ones List<TrackSimple> tracks = new ArrayList<>(); List<String> trackUris = new ArrayList<>(); for (int i = mTrackRowAdapter.indexOf(item); i < mTrackRowAdapter.size() && i < Constants.MAX_SONGS_PLAYED; i++) { tracks.add((TrackSimple) mTrackRowAdapter.get(i)); trackUris.add(((Track) mTrackRowAdapter.get(i)).uri); } spotifyPlayerController.play(trackUri, trackUris, tracks); } } else { SpotifyTvApplication.getInstance().launchDetailScreen(getActivity(), item); } } });