@Override public void onItemClicked( Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, Row row) { if (item instanceof Post) { if (NetworkUtil.isNetworkConnected(getActivity())) { Post post = (Post) item; int index = mRowsAdapter.indexOf(row); PostAdapter adapter = ((PostAdapter) ((ListRow) mRowsAdapter.get(index)).getAdapter()); ArrayList<Post> postList = (ArrayList<Post>) adapter.getAllItems(); startActivity(PlaybackActivity.newStartIntent(getActivity(), post, postList)); } else { ToastFactory.createWifiErrorToast(getActivity()).show(); } } else if (item instanceof Option) { Option option = (Option) item; if (option.title.equals(getString(R.string.title_no_videos)) || item.equals(getString(R.string.title_oops))) { int index = mRowsAdapter.indexOf(row); PostAdapter adapter = ((PostAdapter) ((ListRow) mRowsAdapter.get(index)).getAdapter()); adapter.removeReloadCard(); addPostLoadSubscription(adapter); } else { startActivity(GuidedStepActivity.getStartIntent(getActivity())); } } }
private void setupUIElements() { setBadgeDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.banner_shadow)); setHeadersState(HEADERS_ENABLED); setHeadersTransitionOnBackEnabled(true); setBrandColor(ContextCompat.getColor(getActivity(), R.color.primary)); setSearchAffordanceColor(ContextCompat.getColor(getActivity(), R.color.accent)); setHeaderPresenterSelector( new PresenterSelector() { @Override public Presenter getPresenter(Object o) { return new IconHeaderItemPresenter(); } }); boolean shouldAutoLoop = mPreferencesHelper.getShouldAutoLoop(); String optionValue = shouldAutoLoop ? getString(R.string.text_auto_loop_enabled) : getString(R.string.text_auto_loop_disabled); mAutoLoopOption = new Option(getString(R.string.text_auto_loop_title), optionValue, R.drawable.lopp); HeaderItem gridHeader = new HeaderItem(mRowsAdapter.size(), getString(R.string.header_text_options)); mOptionsAdapter = new OptionsAdapter(getActivity()); mOptionsAdapter.addOption(mAutoLoopOption); mRowsAdapter.add(new ListRow(gridHeader, mOptionsAdapter)); }
private void addOtherRows() { ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter()); for (Movie movie : mItems) { listRowAdapter.add(movie); } HeaderItem header = new HeaderItem(0, getString(R.string.related_movies)); mRowsAdapter.add(new ListRow(header, listRowAdapter)); }
public void init() { mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter()); setAdapter(mRowsAdapter); setBrandColor(getResources().getColor(R.color.primary)); setBadgeDrawable(getResources().getDrawable(R.drawable.filmi)); for (int position = 0; position < HEADERS.length; position++) { ObjectAdapter rowContents = new CursorObjectAdapter((new SinglePresenterSelector(new CardPresenter()))); VideoDataManager manager = new VideoDataManager( getActivity(), getLoaderManager(), VideoItemContract.VideoItem.buildDirUri(), rowContents); manager.startDataLoading(); HeaderItem headerItem = new HeaderItem(position, HEADERS[position], null); mRowsAdapter.add(new ListRow(headerItem, manager.getItemList())); } setOnItemViewClickedListener(getDefaultItemViewClickedListener()); setOnItemViewSelectedListener(getDefaultItemSelectedListener()); bgHelper = new BackgroundHelper(getActivity()); bgHelper.prepareBackgroundManager(); }
@Override public void onItemSelected( Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, Row row) { if (item instanceof Post) { String backgroundUrl = ((Post) item).thumbnailUrl; if (backgroundUrl != null) startBackgroundTimer(URI.create(backgroundUrl)); int index = mRowsAdapter.indexOf(row); PostAdapter adapter = ((PostAdapter) ((ListRow) mRowsAdapter.get(index)).getAdapter()); if (adapter.get(adapter.size() - 1).equals(item) && adapter.shouldLoadNextPage()) { addPostLoadSubscription(adapter); } } }
private void setupMovieListRow() { String subcategories[] = {getString(R.string.related_movies)}; HashMap<String, List<Movie>> movies = VideoProvider.getMovieList(); ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter()); for (Map.Entry<String, List<Movie>> entry : movies.entrySet()) { if (mSelectedMovie.getCategory().contains(entry.getKey())) { List<Movie> list = entry.getValue(); for (int j = 0; j < list.size(); j++) { listRowAdapter.add(list.get(j)); } } } HeaderItem header = new HeaderItem(0, subcategories[0]); mAdapter.add(new ListRow(header, listRowAdapter)); }
@Override protected void onPostExecute(DetailsOverviewRow detailRow) { ClassPresenterSelector ps = new ClassPresenterSelector(); DetailsOverviewRowPresenter dorPresenter = new DetailsOverviewRowPresenter(new DetailsDescriptionPresenter()); // set detail background and style dorPresenter.setBackgroundColor(getResources().getColor(R.color.detail_background)); dorPresenter.setStyleLarge(true); dorPresenter.setOnActionClickedListener( new OnActionClickedListener() { @Override public void onActionClicked(Action action) { if (action.getId() == ACTION_WATCH_TRAILER) { Intent intent = new Intent(getActivity(), PlayerActivity.class); intent.putExtra(getResources().getString(R.string.movie), selectedMovie); intent.putExtra(getResources().getString(R.string.should_start), true); startActivity(intent); } else { Toast.makeText(getActivity(), action.toString(), Toast.LENGTH_SHORT).show(); } } }); ps.addClassPresenter(DetailsOverviewRow.class, dorPresenter); ps.addClassPresenter(ListRow.class, new ListRowPresenter()); ArrayObjectAdapter adapter = new ArrayObjectAdapter(ps); adapter.add(detailRow); String subcategories[] = {getString(R.string.related_movies)}; List<Movie> list = MovieList.list; Collections.shuffle(list); ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter()); for (int j = 0; j < NUM_COLS; j++) { listRowAdapter.add(list.get(j % 5)); } HeaderItem header = new HeaderItem(0, subcategories[0], null); adapter.add(new ListRow(header, listRowAdapter)); setAdapter(adapter); }
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 updatePlaybackRow(int index) { if (mPlaybackControlsRow.getItem() != null) { Movie item = (Movie) mPlaybackControlsRow.getItem(); item.setTitle(mItems.get(mCurrentItem).getTitle()); item.setStudio(mItems.get(mCurrentItem).getStudio()); } if (SHOW_IMAGE) { updateVideoImage(mItems.get(mCurrentItem).getCardImageURI().toString()); } mRowsAdapter.notifyArrayItemRangeChanged(0, 1); mPlaybackControlsRow.setTotalTime(getDuration()); mPlaybackControlsRow.setCurrentTime(0); mPlaybackControlsRow.setBufferedProgress(0); }
private void setupDetailsOverviewRow() { Log.d(TAG, "doInBackground: " + mSelectedMovie.toString()); final DetailsOverviewRow row = new DetailsOverviewRow(mSelectedMovie); row.setImageDrawable(getResources().getDrawable(R.drawable.default_background)); int width = Utils.convertDpToPixel(getActivity().getApplicationContext(), DETAIL_THUMB_WIDTH); int height = Utils.convertDpToPixel(getActivity().getApplicationContext(), DETAIL_THUMB_HEIGHT); Glide.with(getActivity()) .load(mSelectedMovie.getCardImageUrl()) .centerCrop() .error(R.drawable.default_background) .into( new SimpleTarget<GlideDrawable>(width, height) { @Override public void onResourceReady( GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) { Log.d(TAG, "details overview card image url ready: " + resource); row.setImageDrawable(resource); mAdapter.notifyArrayItemRangeChanged(0, mAdapter.size()); } }); SparseArrayObjectAdapter adapter = new SparseArrayObjectAdapter(); adapter.set( ACTION_WATCH_TRAILER, new Action( ACTION_WATCH_TRAILER, getResources().getString(R.string.watch_trailer_1), getResources().getString(R.string.watch_trailer_2))); adapter.set( ACTION_RENT, new Action( ACTION_RENT, getResources().getString(R.string.rent_1), getResources().getString(R.string.rent_2))); adapter.set( ACTION_BUY, new Action( ACTION_BUY, getResources().getString(R.string.buy_1), getResources().getString(R.string.buy_2))); row.setActionsAdapter(adapter); mAdapter.add(row); }
private void addPlaybackControlsRow() { if (SHOW_DETAIL) { mPlaybackControlsRow = new PlaybackControlsRow(mSelectedMovie); } else { mPlaybackControlsRow = new PlaybackControlsRow(); } mRowsAdapter.add(mPlaybackControlsRow); updatePlaybackRow(mCurrentItem); ControlButtonPresenterSelector presenterSelector = new ControlButtonPresenterSelector(); mPrimaryActionsAdapter = new ArrayObjectAdapter(presenterSelector); mSecondaryActionsAdapter = new ArrayObjectAdapter(presenterSelector); mPlaybackControlsRow.setPrimaryActionsAdapter(mPrimaryActionsAdapter); mPlaybackControlsRow.setSecondaryActionsAdapter(mSecondaryActionsAdapter); mPlayPauseAction = new PlayPauseAction(sContext); mRepeatAction = new RepeatAction(sContext); mThumbsUpAction = new ThumbsUpAction(sContext); mThumbsDownAction = new ThumbsDownAction(sContext); mShuffleAction = new ShuffleAction(sContext); mSkipNextAction = new PlaybackControlsRow.SkipNextAction(sContext); mSkipPreviousAction = new PlaybackControlsRow.SkipPreviousAction(sContext); mFastForwardAction = new PlaybackControlsRow.FastForwardAction(sContext); mRewindAction = new PlaybackControlsRow.RewindAction(sContext); if (PRIMARY_CONTROLS > 5) { mPrimaryActionsAdapter.add(mThumbsUpAction); } else { mSecondaryActionsAdapter.add(mThumbsUpAction); } mPrimaryActionsAdapter.add(mSkipPreviousAction); if (PRIMARY_CONTROLS > 3) { mPrimaryActionsAdapter.add(new PlaybackControlsRow.RewindAction(sContext)); } mPrimaryActionsAdapter.add(mPlayPauseAction); if (PRIMARY_CONTROLS > 3) { mPrimaryActionsAdapter.add(new PlaybackControlsRow.FastForwardAction(sContext)); } mPrimaryActionsAdapter.add(mSkipNextAction); mSecondaryActionsAdapter.add(mRepeatAction); mSecondaryActionsAdapter.add(mShuffleAction); if (PRIMARY_CONTROLS > 5) { mPrimaryActionsAdapter.add(mThumbsDownAction); } else { mSecondaryActionsAdapter.add(mThumbsDownAction); } mSecondaryActionsAdapter.add(new PlaybackControlsRow.HighQualityAction(sContext)); mSecondaryActionsAdapter.add(new PlaybackControlsRow.ClosedCaptioningAction(sContext)); }
public void callNotifyChanged() { super.notifyChanged(); }
private void loadPostsFromCategory(String tag, int headerPosition) { PostAdapter listRowAdapter = new PostAdapter(getActivity(), tag); addPostLoadSubscription(listRowAdapter); HeaderItem header = new HeaderItem(headerPosition, tag); mRowsAdapter.add(new ListRow(header, listRowAdapter)); }