diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..8306744 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 00fe803..0795c78 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,12 @@ + + + + + + dogList = new ArrayList(); ItemArrayAdapter itemArrayAdapter = new ItemArrayAdapter(R.layout.list_item, dogList); @@ -28,10 +45,10 @@ protected void onCreate(Bundle savedInstanceState) { recyclerView.setAdapter(itemArrayAdapter); // Populating list items - for(int i=0; i<100; i++) { - dogList.add(new Dog("Dog: " + i, R.mipmap.ic_launcher)); + for(int i=0; i<5; i++) { + dogList.add(new Dog(radioNames[i], radioList[i])); } - } + } diff --git a/app/src/main/java/me/thankstoken/a2020_04_21e/model/Dog.java b/app/src/main/java/me/thankstoken/a2020_04_21e/model/Dog.java index a45ae81..789ee57 100644 --- a/app/src/main/java/me/thankstoken/a2020_04_21e/model/Dog.java +++ b/app/src/main/java/me/thankstoken/a2020_04_21e/model/Dog.java @@ -3,22 +3,22 @@ public class Dog { private String name; - private int myPhoto; + private String link; - public Dog(String n, int imageNumber) { + public Dog(String n, String l) { name = n; - myPhoto = imageNumber; + link = l; } public String getName() { return name; } - public int getImage() { return myPhoto; } + public String getImage() { return link; } public void setName(String name) { this.name = name; } - public void setImage(int imageNumber) { - this.myPhoto = imageNumber; + public void setImage(String link) { + this.link = link; } } diff --git a/app/src/main/java/me/thankstoken/a2020_04_21e/model/ItemArrayAdapter.java b/app/src/main/java/me/thankstoken/a2020_04_21e/model/ItemArrayAdapter.java index 2f5f973..fe5d25e 100644 --- a/app/src/main/java/me/thankstoken/a2020_04_21e/model/ItemArrayAdapter.java +++ b/app/src/main/java/me/thankstoken/a2020_04_21e/model/ItemArrayAdapter.java @@ -1,23 +1,37 @@ package me.thankstoken.a2020_04_21e.model; +import android.media.AudioAttributes; +import android.media.AudioManager; +import android.media.MediaPlayer; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.ImageView; +import android.widget.ImageButton; + import android.widget.TextView; +import java.io.IOException; import java.util.ArrayList; import androidx.recyclerview.widget.RecyclerView; import androidx.cardview.widget.*; + +import me.thankstoken.a2020_04_21e.MainActivity; import me.thankstoken.a2020_04_21e.R; + public class ItemArrayAdapter extends RecyclerView.Adapter { //All methods in this adapter are required for a bare minimum recyclerview adapter private int listItemLayout; private ArrayList dogList; + private ViewHolder holder; + + MediaPlayer radio = new MediaPlayer(); + String streamURL = ""; + + // Constructor of the class public ItemArrayAdapter(int layoutId, ArrayList dogList) { listItemLayout = layoutId; @@ -40,25 +54,43 @@ public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // load data in each row element @Override public void onBindViewHolder(final ViewHolder holder, final int listPosition) { + TextView item = holder.item; - ImageView picture = holder.image; item.setText(dogList.get(listPosition).getName()); - picture.setImageResource(dogList.get(listPosition).getImage()); + streamURL = dogList.get(listPosition).getImage(); + ImageButton playButton = holder.image; + playButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + try { + radio.setDataSource(streamURL); + radio.prepareAsync(); + } + catch (IllegalArgumentException e){ + Log.d("IllegalArgument", e.getMessage()); + }catch (IOException e){ + Log.d("IOException", e.getMessage()); + } + radio.start(); + } + }); } // Static inner class to initialize the views of rows static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { public TextView item; - public ImageView image; + public ImageButton image; public ViewHolder(View itemView) { super(itemView); itemView.setOnClickListener(this); - item = (TextView) itemView.findViewById(R.id.row_item); - image = (ImageView) itemView.findViewById(R.id.dog_pic); + item = (TextView) itemView.findViewById(R.id.radioName); + image = (ImageButton) itemView.findViewById(R.id.playButton); } @Override public void onClick(View view) { Log.d("onclick", "onClick " + getLayoutPosition() + " " + item.getText()); } } + } \ No newline at end of file diff --git a/app/src/main/res/layout/list_item.xml b/app/src/main/res/layout/list_item.xml index f1c4802..ba4b79d 100644 --- a/app/src/main/res/layout/list_item.xml +++ b/app/src/main/res/layout/list_item.xml @@ -16,27 +16,20 @@ android:orientation="horizontal"> - - - - + android:layout_weight="1" + app:srcCompat="@android:drawable/ic_media_play" />