private void addFunctionRow() { String headerName = getResources().getString(R.string.app_header_function_name); ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new FunctionCardPresenter()); List<FunctionModel> functionModels = FunctionModel.getFunctionList(mContext); int cardCount = functionModels.size(); for (int i = 0; i < cardCount; i++) { listRowAdapter.add(functionModels.get(i)); } HeaderItem header = new HeaderItem(0, headerName); rowsAdapter.add(new ListRow(header, listRowAdapter)); } }
private void buildRowsAdapter() { rowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
/** * Override this method in case you need to add different secondary actions. * * @param secondaryActionsAdapter The adapter you need to add the {@link Action}s to. */ protected void addSecondaryActions(ArrayObjectAdapter secondaryActionsAdapter) { secondaryActionsAdapter.add(mShuffleAction); secondaryActionsAdapter.add(mRepeatAction); /* secondaryActionsAdapter.add(mThumbsDownAction); secondaryActionsAdapter.add(mThumbsUpAction); */ }
/** * Method implementations from SearchContentMvpView */ @Override public void showCats(List<Cat> cats) { final ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter()); listRowAdapter.addAll(0, cats); HeaderItem header = new HeaderItem(0, getString(R.string.header_title_cats)); mRowsAdapter.add(new ListRow(header, listRowAdapter)); }
@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); }
private void searchCats(String query) { mResultsAdapter.clear(); HeaderItem resultsHeader = new HeaderItem(0, getString(R.string.text_search_results)); mSearchObjectAdapter = new ArrayObjectAdapter(new CardPresenter()); ListRow listRow = new ListRow(resultsHeader, mSearchObjectAdapter); mResultsAdapter.add(listRow); mSearchObjectAdapter.clear(); searchCats(); }
protected void setupTracksRows(List<TrackSimple> tracks) { if (mRowsAdapter.size() < 2) { mRowsAdapter.add(new TracksHeaderRow()); List<TrackRow> trackRows = new ArrayList<>(tracks.size()); for (TrackSimple track : tracks) { trackRows.add(new TrackRow(track)); } mRowsAdapter.addAll(mRowsAdapter.size(), trackRows); } }
@SuppressWarnings("unused") @Subscribe public void onTrackChanged(OnTrackChanged onTrackChanged) { ContentState contentState = onTrackChanged.getPlayingState(); mNowPlayingAdapter.removeItems(0, mNowPlayingAdapter.size()); if (contentState.getCurrentTrack() != null) { mNowPlayingAdapter.add(0, contentState.getCurrentTrack()); } if (mNowPlayingListRow == null) { mNowPlayingListRow = new ListRow(mNowPlayingHeader, mNowPlayingAdapter); mRowsAdapter.add(0, mNowPlayingListRow); } }
@Override public void success(Pager<Album> albumPager, Response response) { for (Album album : albumPager.items) { try { AlbumType albumType = AlbumType.valueOf(album.album_type.toUpperCase()); // add to corresponding adapter ArrayObjectAdapter adapter = mAlbumsAdapters.get(albumType); adapter.add(adapter.size(), album); } catch (IllegalArgumentException e) { Log.d(TAG, String.format("Album Type %s is unknown", album.album_type), e); } } if (albumPager.next != null) { loadAlbums(albumPager.offset + Constants.PAGE_LIMIT); } }
@Override public void refreshFragmentScreenshot(int fragmentPosition) { mRowsAdapter.notifyArrayItemRangeChanged(0, mRowsAdapter.size()); }
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); } } } }
@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); } } });
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; } }
public boolean hasResults() { return mRowsAdapter.size() > 0; }
public void onPlayerStateChanged(PlayerStateChanged playerStateChanged) { PlayerState playerState = playerStateChanged.getPlayerState(); boolean playlistPlaying = isContentPlaying() && playerState.playing; Action action = (Action) actionsAdapter.get(0); action.setLabel1(playlistPlaying ? getResources().getString(R.string.lb_playback_controls_pause) : getResources().getString(R.string.lb_playback_controls_play)); actionsAdapter.notifyArrayItemRangeChanged(0, 1); }
@Override public void success(CategoriesPager categoriesPager, Response response) { mCategoriesAdapter.addAll(0, categoriesPager.categories.items); }
@Override protected void onRowChanged(PlaybackControlsRow row) { if (mRowsAdapter == null) return; mRowsAdapter.notifyArrayItemRangeChanged(0, 1); } };
private void setupAdapter() { mPresenterSelector = new ClassPresenterSelector(); mAdapter = new ArrayObjectAdapter(mPresenterSelector); setAdapter(mAdapter); }
@Override protected void onCreatePrimaryActions(ArrayObjectAdapter primaryActionsAdapter) { // Order matters, super.onCreatePrimaryActions() will create the play / pause action. // Will display as follows: // play/pause, previous, rewind, fast forward, next // > /|| |< << >> >| super.onCreatePrimaryActions(primaryActionsAdapter); primaryActionsAdapter.add(mSkipPreviousAction); primaryActionsAdapter.add(mRewindAction); primaryActionsAdapter.add(mFastForwardAction); primaryActionsAdapter.add(mSkipNextAction); }