diff --git a/app/build.gradle b/app/build.gradle
index 9f0ac50..f5549e8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -8,8 +8,8 @@ android {
applicationId "com.sidzi.circleofmusic"
minSdkVersion 17
targetSdkVersion 25
- versionCode 8
- versionName "Guitar"
+ versionCode 9
+ versionName "Harpsichord"
}
buildTypes {
@@ -21,6 +21,7 @@ android {
}
}
+
dependencies {
compile 'com.android.volley:volley:1.0.0'
compile 'com.j256.ormlite:ormlite-android:5.0'
@@ -30,4 +31,5 @@ dependencies {
compile 'com.android.support:support-v13:25.1.0'
compile 'com.android.support:design:25.1.0'
compile 'com.android.support:recyclerview-v7:25.1.0'
+ compile 'com.android.support:support-v4:25.1.0'
}
\ No newline at end of file
diff --git a/app/src/androidTest/java/com/sidzi/circleofmusic/ApplicationTest.java b/app/src/androidTest/java/com/sidzi/circleofmusic/ApplicationTest.java
deleted file mode 100644
index adcfbc6..0000000
--- a/app/src/androidTest/java/com/sidzi/circleofmusic/ApplicationTest.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.sidzi.circleofmusic;
-
-import android.app.Application;
-import android.test.ApplicationTestCase;
-
-/**
- * Testing Fundamentals
- */
-public class ApplicationTest extends ApplicationTestCase {
- public ApplicationTest() {
- super(Application.class);
- }
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c5b4a0e..79139a8 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -25,6 +25,7 @@
android:name=".ui.MainActivity"
android:label="@string/title_activity_main"
android:launchMode="singleTask"
+ android:screenOrientation="portrait"
android:theme="@style/splashScreen"
android:windowSoftInputMode="adjustPan">
@@ -37,7 +38,9 @@
-
+
+
+
@@ -51,7 +54,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/ic_launcher-web.png b/app/src/main/ic_launcher-web.png
index 620d232..688b1f3 100644
Binary files a/app/src/main/ic_launcher-web.png and b/app/src/main/ic_launcher-web.png differ
diff --git a/app/src/main/java/com/sidzi/circleofmusic/adapters/PotmAdapter.java b/app/src/main/java/com/sidzi/circleofmusic/adapters/PotmAdapter.java
index b605ecb..f0cfbe2 100644
--- a/app/src/main/java/com/sidzi/circleofmusic/adapters/PotmAdapter.java
+++ b/app/src/main/java/com/sidzi/circleofmusic/adapters/PotmAdapter.java
@@ -16,8 +16,10 @@
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.Volley;
import com.sidzi.circleofmusic.R;
-import com.sidzi.circleofmusic.config;
import com.sidzi.circleofmusic.entities.Potm;
+import com.sidzi.circleofmusic.helpers.MusicServiceConnection;
+import com.sidzi.circleofmusic.services.MusicPlayerService;
+import com.sidzi.circleofmusic.ui.MainActivity;
import org.json.JSONArray;
import org.json.JSONException;
@@ -93,12 +95,10 @@ class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener
@Override
public void onClick(View v) {
- Intent ready_track = new Intent("com.sidzi.circleofmusic.PLAY_TRACK");
- ready_track.putExtra("track_path", config.com_url + v.getTag(R.id.tag_track_path).toString());
- ready_track.putExtra("track_name", v.getTag(R.id.tag_track_name).toString());
- ready_track.putExtra("track_artist", v.getTag(R.id.tag_track_artist).toString());
- ready_track.putExtra("bucket", false);
- mContext.sendBroadcast(ready_track);
+ Intent intent = new Intent(mContext, MusicPlayerService.class);
+ MusicServiceConnection mMusicServiceConnection = ((MainActivity) mContext).mMusicServiceConnection;
+ mContext.bindService(intent, mMusicServiceConnection, Context.BIND_AUTO_CREATE);
+ mMusicServiceConnection.getmMusicPlayerService().play(v.getTag(R.id.tag_track_path).toString(), v.getTag(R.id.tag_track_artist).toString(), v.getTag(R.id.tag_track_name).toString());
}
}
}
diff --git a/app/src/main/java/com/sidzi/circleofmusic/adapters/TracksAdapter.java b/app/src/main/java/com/sidzi/circleofmusic/adapters/TracksAdapter.java
index a01afc3..f088e9f 100644
--- a/app/src/main/java/com/sidzi/circleofmusic/adapters/TracksAdapter.java
+++ b/app/src/main/java/com/sidzi/circleofmusic/adapters/TracksAdapter.java
@@ -17,7 +17,10 @@
import com.j256.ormlite.stmt.QueryBuilder;
import com.sidzi.circleofmusic.R;
import com.sidzi.circleofmusic.entities.Track;
+import com.sidzi.circleofmusic.helpers.MusicServiceConnection;
import com.sidzi.circleofmusic.helpers.OrmHandler;
+import com.sidzi.circleofmusic.services.MusicPlayerService;
+import com.sidzi.circleofmusic.ui.MainActivity;
import java.sql.SQLException;
import java.util.ArrayList;
@@ -114,12 +117,14 @@ class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener
@Override
public void onClick(View v) {
- Intent ready_track = new Intent("com.sidzi.circleofmusic.PLAY_TRACK");
- ready_track.putExtra("track_path", v.getTag(R.id.tag_track_path).toString());
- ready_track.putExtra("track_name", v.getTag(R.id.tag_track_name).toString());
- ready_track.putExtra("track_artist", v.getTag(R.id.tag_track_artist).toString());
- ready_track.putExtra("bucket", bucketBool);
- mContext.sendBroadcast(ready_track);
+ Intent intent = new Intent(mContext, MusicPlayerService.class);
+ MusicServiceConnection mMusicServiceConnection = ((MainActivity) mContext).mMusicServiceConnection;
+ mContext.bindService(intent, mMusicServiceConnection, Context.BIND_AUTO_CREATE);
+ if (!bucketBool)
+ mMusicServiceConnection.getmMusicPlayerService().play(v.getTag(R.id.tag_track_path).toString());
+ else
+ mMusicServiceConnection.getmMusicPlayerService().bucketPlay(v.getTag(R.id.tag_track_path).toString());
+
}
@Override
diff --git a/app/src/main/java/com/sidzi/circleofmusic/entities/Track.java b/app/src/main/java/com/sidzi/circleofmusic/entities/Track.java
index bd5ceb8..f43759f 100644
--- a/app/src/main/java/com/sidzi/circleofmusic/entities/Track.java
+++ b/app/src/main/java/com/sidzi/circleofmusic/entities/Track.java
@@ -4,8 +4,14 @@
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Serializable;
+
@DatabaseTable(tableName = "table_tracks")
-public class Track {
+public class Track implements Serializable, Externalizable {
@DatabaseField(id = true)
private String path;
@DatabaseField
@@ -22,12 +28,23 @@ public class Track {
public Track() {
}
+ public Track(String path) {
+ this.path = path;
+ }
+
+ public Track(String name, String path, String artist) {
+ this.path = path;
+ this.name = name;
+ this.artist = artist;
+ }
+
public Track(String name, String path, String artist, String album, Boolean bucket) {
this.path = path;
this.name = name;
this.artist = artist;
this.bucket = bucket;
this.album = album;
+ this.play_count = 0;
}
public String getName() {
@@ -65,4 +82,21 @@ public void setPlay_count(Integer play_count) {
public String getAlbum() {
return album;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Track)
+ return ((Track) obj).getPath().contentEquals(this.path);
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void writeExternal(ObjectOutput objectOutput) throws IOException {
+ objectOutput.writeObject(this);
+ }
+
+ @Override
+ public void readExternal(ObjectInput objectInput) throws IOException, ClassNotFoundException {
+ objectInput.readObject();
+ }
}
diff --git a/app/src/main/java/com/sidzi/circleofmusic/helpers/AudioEventHandler.java b/app/src/main/java/com/sidzi/circleofmusic/helpers/AudioEventHandler.java
deleted file mode 100644
index e1bf9d8..0000000
--- a/app/src/main/java/com/sidzi/circleofmusic/helpers/AudioEventHandler.java
+++ /dev/null
@@ -1,267 +0,0 @@
-package com.sidzi.circleofmusic.helpers;
-
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.BitmapFactory;
-import android.graphics.PorterDuff;
-import android.media.AudioManager;
-import android.media.MediaPlayer;
-import android.support.v4.app.NotificationCompat;
-import android.view.View;
-import android.widget.FrameLayout;
-import android.widget.ImageButton;
-import android.widget.ProgressBar;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.j256.ormlite.android.apptools.OpenHelperManager;
-import com.j256.ormlite.dao.Dao;
-import com.j256.ormlite.stmt.PreparedQuery;
-import com.j256.ormlite.stmt.QueryBuilder;
-import com.j256.ormlite.stmt.SelectArg;
-import com.sidzi.circleofmusic.R;
-import com.sidzi.circleofmusic.entities.Track;
-import com.sidzi.circleofmusic.ui.MainActivity;
-
-import java.io.IOException;
-import java.sql.SQLException;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import static android.content.Context.NOTIFICATION_SERVICE;
-
-public class AudioEventHandler extends BroadcastReceiver {
- static public MediaPlayer mMediaPlayer = null;
- static public NotificationManager mNotificationManager = null;
- static public TrackProgressObserver mTrackProgressObserver = null;
- static public String mRunningTrackPath = null;
-
- static private List