package com.wigwamlabs.veckify; import android.os.Bundle; import android.view.MenuItem; import android.view.Window; import android.widget.ListView; import com.wigwamlabs.spotify.PlaylistContainer; import com.wigwamlabs.spotify.Session; import com.wigwamlabs.spotify.ui.ConfigureOfflinePlaylistContainerAdapter; import com.wigwamlabs.spotify.ui.SpotifyActivity; public class OfflinePlaylistsActivity extends SpotifyActivity { private ListView mList; private PlaylistContainer mPlaylistContainer; private ConfigureOfflinePlaylistContainerAdapter mListAdapter; @Override protected void onCreate(Bundle savedInstanceState) { Debug.logLifecycle("OfflinePlaylistsActivity.onCreate()"); super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_PROGRESS); setContentView(R.layout.activity_offline_playlists); mList = (ListView) findViewById(R.id.list); bindSpotifyService(); } @Override protected void onDestroy() { Debug.logLifecycle("OfflinePlaylistsActivity.onDestroy()"); if (mPlaylistContainer != null) { mPlaylistContainer.destroy(); mPlaylistContainer = null; } super.onDestroy(); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: startActivity(getParentActivityIntent()); finish(); return true; } return super.onOptionsItemSelected(item); } @Override protected void onSpotifySessionAttached(Session spotifySession) { super.onSpotifySessionAttached(spotifySession); setAutoLogin(true); } @Override public void onConnectionStateUpdated(int state) { super.onConnectionStateUpdated(state); if (state != Session.CONNECTION_STATE_LOGGED_OUT && mPlaylistContainer == null) { mPlaylistContainer = getSpotifySession().getPlaylistContainer(); mListAdapter = new ConfigureOfflinePlaylistContainerAdapter(this, getSpotifySession(), mPlaylistContainer); mList.setAdapter(mListAdapter); } } @Override public void onOfflineTracksToSyncChanged(boolean syncing, int remainingTracks, int approxTotalTracks) { super.onOfflineTracksToSyncChanged(syncing, remainingTracks, approxTotalTracks); if (!syncing || remainingTracks == 0) { setProgressBarVisibility(false); } else { setProgressBarVisibility(true); int progress = (10000 * (approxTotalTracks - remainingTracks)) / approxTotalTracks; if (progress == 0) { progress = 1; } setProgress(progress); } if (mListAdapter != null) { mListAdapter.refresh(); } } }