/** * Is being called, whenever a new Page in our {@link AlbumArtSwipeAdapter} has been selected/ * swiped to */ @Override public void onPageSelected(int arg0) { if (mPlaybackService != null && isByUser()) { setSwiped(true); if (arg0 == mCurrentViewPage - 1) { mPlaybackService.previous(); } else if (arg0 == mCurrentViewPage + 1) { mPlaybackService.next(); } } mCurrentViewPage = arg0; }
/** * Called every time an item inside the {@link * se.emilsjolander.stickylistheaders.StickyListHeadersListView} is clicked * * @param parent The AdapterView where the click happened. * @param view The view within the AdapterView that was clicked (this will be a view provided by * the adapter) * @param position The position of the view in the adapter. * @param id The row id of the item that was clicked. */ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Object item; TomahawkMainActivity activity = (TomahawkMainActivity) getActivity(); if (!isShowGridView()) { item = getListAdapter().getItem(position); } else { item = getGridAdapter().getItem(position); } if (item instanceof Query && ((Query) item).isPlayable()) { PlaybackService playbackService = activity.getPlaybackService(); if (playbackService != null && shouldShowPlaystate() && mQueryPositions.get(playbackService.getCurrentPlaylist().getCurrentQueryIndex()) == position) { playbackService.playPause(); } else { UserPlaylist playlist = UserPlaylist.fromQueryList( TomahawkMainActivity.getLifetimeUniqueStringId(), "", mShownQueries, mQueryPositions.keyAt(mQueryPositions.indexOfValue(position))); if (playbackService != null) { playbackService.setCurrentPlaylist(playlist); playbackService.start(); } } } else if (item instanceof Album) { FragmentUtils.replace( getActivity(), getActivity().getSupportFragmentManager(), TracksFragment.class, ((Album) item).getCacheKey(), TomahawkFragment.TOMAHAWK_ALBUM_KEY, mIsLocal); } }
/** * update the {@link Playlist} of the {@link AlbumArtSwipeAdapter} to the given {@link Playlist} */ public void updatePlaylist() { if (mPlaybackService != null) { mPlaylist = mPlaybackService.getCurrentPlaylist(); notifyDataSetChanged(); } if (mPlaylist != null && mPlaylist.getCount() > 0) { mFakeInfinityOffset = mPlaylist.getCount() * ((FAKE_INFINITY_COUNT / 2) / mPlaylist.getCount()); setByUser(false); if (mPlaylist.isRepeating()) { setCurrentItem(mPlaylist.getCurrentTrackIndex() + getFakeInfinityOffset(), false); } else { setCurrentItem(mPlaylist.getCurrentTrackIndex(), false); } setByUser(true); } }