-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
22 changed files
with
909 additions
and
86 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 0 additions & 38 deletions
38
app/src/main/java/org/williamwong/spotifystreamer/MainActivity.java
This file was deleted.
Oops, something went wrong.
22 changes: 0 additions & 22 deletions
22
app/src/main/java/org/williamwong/spotifystreamer/MainActivityFragment.java
This file was deleted.
Oops, something went wrong.
36 changes: 36 additions & 0 deletions
36
app/src/main/java/org/williamwong/spotifystreamer/activities/MainActivity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
package org.williamwong.spotifystreamer.activities; | ||
|
||
import android.content.Intent; | ||
import android.os.Bundle; | ||
import android.support.v7.app.AppCompatActivity; | ||
|
||
import org.williamwong.spotifystreamer.R; | ||
import org.williamwong.spotifystreamer.fragments.ArtistFragment; | ||
|
||
public class MainActivity extends AppCompatActivity implements ArtistFragment.Callbacks { | ||
|
||
public static final String SPOTIFY_ID_KEY = "spotifyId"; | ||
public static final String ARTIST_NAME_KEY = "artistName"; | ||
|
||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
setContentView(R.layout.activity_main); | ||
} | ||
|
||
/** | ||
* Handles artist selected and start new activity with track results. | ||
* This is a callback from the {@link org.williamwong.spotifystreamer.fragments.ArtistFragment.Callbacks} | ||
* class. | ||
* | ||
* @param spotifyId a Spotify id representing the artist | ||
* @param artistName the name of the artist | ||
*/ | ||
@Override | ||
public void onArtistSelected(String spotifyId, String artistName) { | ||
Intent trackIntent = new Intent(this, TrackActivity.class); | ||
trackIntent.putExtra(SPOTIFY_ID_KEY, spotifyId); | ||
trackIntent.putExtra(ARTIST_NAME_KEY, artistName); | ||
startActivity(trackIntent); | ||
} | ||
} |
42 changes: 42 additions & 0 deletions
42
app/src/main/java/org/williamwong/spotifystreamer/activities/TrackActivity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package org.williamwong.spotifystreamer.activities; | ||
|
||
import android.os.Bundle; | ||
import android.support.v4.app.FragmentTransaction; | ||
import android.support.v7.app.AppCompatActivity; | ||
|
||
import org.williamwong.spotifystreamer.R; | ||
import org.williamwong.spotifystreamer.fragments.TrackFragment; | ||
|
||
public class TrackActivity extends AppCompatActivity { | ||
|
||
private static final String TRACK_FRAGMENT_TAG = "trackFragment"; | ||
private TrackFragment mTrackFragment; | ||
|
||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
setContentView(R.layout.activity_track); | ||
|
||
// Retrieve arguments from intent | ||
String spotifyId = getIntent().getStringExtra(MainActivity.SPOTIFY_ID_KEY); | ||
String artistName = getIntent().getStringExtra(MainActivity.ARTIST_NAME_KEY); | ||
|
||
// Find fragment if exists. If not, create new instance of fragment | ||
if (savedInstanceState != null) { | ||
mTrackFragment = (TrackFragment) getSupportFragmentManager().findFragmentByTag(TRACK_FRAGMENT_TAG); | ||
} else if (mTrackFragment == null) { | ||
mTrackFragment = TrackFragment.newInstance(spotifyId); | ||
} | ||
|
||
// Set subtitle to be the artist name | ||
if (getSupportActionBar() != null) { | ||
getSupportActionBar().setSubtitle(artistName); | ||
} | ||
|
||
// Insert fragment into container | ||
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); | ||
ft.replace(R.id.tracksContainer, mTrackFragment, TRACK_FRAGMENT_TAG); | ||
ft.commit(); | ||
} | ||
|
||
} |
60 changes: 60 additions & 0 deletions
60
app/src/main/java/org/williamwong/spotifystreamer/adapters/ArtistAdapter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
package org.williamwong.spotifystreamer.adapters; | ||
|
||
import android.content.Context; | ||
import android.view.LayoutInflater; | ||
import android.view.View; | ||
import android.view.ViewGroup; | ||
import android.widget.ArrayAdapter; | ||
import android.widget.ImageView; | ||
import android.widget.TextView; | ||
|
||
import com.squareup.picasso.Picasso; | ||
|
||
import org.williamwong.spotifystreamer.R; | ||
import org.williamwong.spotifystreamer.models.ArtistModel; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* List adapter for artist search results | ||
* Created by w.wong on 6/14/2015. | ||
*/ | ||
public class ArtistAdapter extends ArrayAdapter<ArtistModel> { | ||
|
||
public ArtistAdapter(Context context, List<ArtistModel> objects) { | ||
super(context, 0, objects); | ||
} | ||
|
||
@Override | ||
public View getView(int position, View convertView, ViewGroup parent) { | ||
ArtistModel artist = getItem(position); | ||
|
||
ViewHolder viewHolder; | ||
if (convertView == null) { | ||
convertView = LayoutInflater.from(getContext()) | ||
.inflate(R.layout.list_item_artist, parent, false); | ||
viewHolder = new ViewHolder(convertView); | ||
convertView.setTag(viewHolder); | ||
} else { | ||
viewHolder = (ViewHolder) convertView.getTag(); | ||
} | ||
|
||
viewHolder.artistNameTextView.setText(artist.getName()); | ||
Picasso.with(getContext()) | ||
.load(artist.getImageUrl()) | ||
.fit().centerCrop() | ||
.into(viewHolder.artistThumbnailImageView); | ||
|
||
return convertView; | ||
} | ||
|
||
private static class ViewHolder { | ||
TextView artistNameTextView; | ||
ImageView artistThumbnailImageView; | ||
|
||
public ViewHolder(View v) { | ||
artistNameTextView = (TextView) v.findViewById(R.id.artistNameTextView); | ||
artistThumbnailImageView = (ImageView) v.findViewById(R.id.artistThumbnailImageView); | ||
} | ||
} | ||
} |
62 changes: 62 additions & 0 deletions
62
app/src/main/java/org/williamwong/spotifystreamer/adapters/TrackAdapter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
package org.williamwong.spotifystreamer.adapters; | ||
|
||
import android.content.Context; | ||
import android.view.LayoutInflater; | ||
import android.view.View; | ||
import android.view.ViewGroup; | ||
import android.widget.ArrayAdapter; | ||
import android.widget.ImageView; | ||
import android.widget.TextView; | ||
|
||
import com.squareup.picasso.Picasso; | ||
|
||
import org.williamwong.spotifystreamer.R; | ||
import org.williamwong.spotifystreamer.models.TrackModel; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* List adapter for track list. | ||
* Created by w.wong on 6/19/2015. | ||
*/ | ||
public class TrackAdapter extends ArrayAdapter<TrackModel> { | ||
|
||
public TrackAdapter(Context context, List<TrackModel> objects) { | ||
super(context, 0, objects); | ||
} | ||
|
||
@Override | ||
public View getView(int position, View convertView, ViewGroup parent) { | ||
TrackModel track = getItem(position); | ||
|
||
ViewHolder viewHolder; | ||
if (convertView == null) { | ||
convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item_track, parent, false); | ||
viewHolder = new ViewHolder(convertView); | ||
convertView.setTag(viewHolder); | ||
} else { | ||
viewHolder = (ViewHolder) convertView.getTag(); | ||
} | ||
|
||
viewHolder.trackNameTextView.setText(track.getTrackName()); | ||
viewHolder.albumNameTextView.setText(track.getAlbumName()); | ||
Picasso.with(getContext()) | ||
.load(track.getImageUrl()) | ||
.fit().centerCrop() | ||
.into(viewHolder.trackThumbnailImageView); | ||
|
||
return convertView; | ||
} | ||
|
||
private static class ViewHolder { | ||
TextView trackNameTextView; | ||
TextView albumNameTextView; | ||
ImageView trackThumbnailImageView; | ||
|
||
public ViewHolder(View v) { | ||
trackNameTextView = (TextView) v.findViewById(R.id.trackNameTextView); | ||
albumNameTextView = (TextView) v.findViewById(R.id.albumNameTextView); | ||
trackThumbnailImageView = (ImageView) v.findViewById(R.id.trackThumbnailImageView); | ||
} | ||
} | ||
} |
Oops, something went wrong.