Skip to content

Commit 3302fb4

Browse files
authored
Merge pull request Circle-Of-Music-Makers#23 from Circle-Of-Music-Makers/alarm
Alarm and Sleep Timer added
2 parents ef7c88c + fa331f9 commit 3302fb4

15 files changed

+501
-69
lines changed

app/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ android {
2121
}
2222
}
2323

24+
2425
dependencies {
2526
compile 'com.android.volley:volley:1.0.0'
2627
compile 'com.j256.ormlite:ormlite-android:5.0'
@@ -30,4 +31,5 @@ dependencies {
3031
compile 'com.android.support:support-v13:25.1.0'
3132
compile 'com.android.support:design:25.1.0'
3233
compile 'com.android.support:recyclerview-v7:25.1.0'
34+
compile 'com.android.support:support-v4:25.1.0'
3335
}

app/src/main/AndroidManifest.xml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@
3737
<category android:name="android.intent.category.DEFAULT" />
3838
</intent-filter>
3939
</activity>
40+
4041
<service android:name=".services.MusicPlayerService" />
42+
4143
<receiver android:name=".helpers.MediaButtonHandler">
4244
<intent-filter>
4345
<action android:name="android.intent.action.MEDIA_BUTTON" />
@@ -54,9 +56,15 @@
5456
android:label="@string/title_activity_search"
5557
android:screenOrientation="portrait"
5658
android:theme="@style/AppTheme.NoActionBar" />
57-
<activity android:name=".ui.AlarmActivity" />
59+
<activity android:name=".ui.AlarmSettingActivity" />
5860

5961
<receiver android:name=".helpers.AlarmReciever" />
62+
63+
<activity
64+
android:name=".ui.AlarmActivity"
65+
android:configChanges="orientation|keyboardHidden|screenSize"
66+
android:label="@string/title_activity_alarm"
67+
android:theme="@style/FullscreenTheme" />
6068
</application>
6169

6270
</manifest>

app/src/main/java/com/sidzi/circleofmusic/adapters/TracksAdapter.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,11 @@ public void onClick(View v) {
120120
Intent intent = new Intent(mContext, MusicPlayerService.class);
121121
MusicServiceConnection mMusicServiceConnection = ((MainActivity) mContext).mMusicServiceConnection;
122122
mContext.bindService(intent, mMusicServiceConnection, Context.BIND_AUTO_CREATE);
123-
mMusicServiceConnection.getmMusicPlayerService().play(v.getTag(R.id.tag_track_path).toString());
123+
if (!bucketBool)
124+
mMusicServiceConnection.getmMusicPlayerService().play(v.getTag(R.id.tag_track_path).toString());
125+
else
126+
mMusicServiceConnection.getmMusicPlayerService().bucketPlay(v.getTag(R.id.tag_track_path).toString());
127+
124128
}
125129

126130
@Override

app/src/main/java/com/sidzi/circleofmusic/helpers/DatabaseSynchronization.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66

77
import com.j256.ormlite.android.apptools.OpenHelperManager;
88
import com.j256.ormlite.dao.Dao;
9+
import com.sidzi.circleofmusic.config;
910
import com.sidzi.circleofmusic.entities.Track;
1011

12+
import java.io.File;
1113
import java.sql.SQLException;
1214
import java.util.ArrayList;
1315
import java.util.List;
@@ -44,8 +46,15 @@ protected void onPostExecute(Void aVoid) {
4446
SharedPreferences settings = mContext.getSharedPreferences("com_prefs", 0);
4547
if (settings.getBoolean("init", true)) {
4648
BucketSaver bucketSaver = new BucketSaver(mContext);
47-
if (bucketSaver.importFile())
48-
settings.edit().putBoolean("init", false).apply();
49+
if (bucketSaver.importFile()) {
50+
File com_dir = new File(config.com_local_url);
51+
if (!com_dir.exists()) {
52+
if (!com_dir.mkdirs()) {
53+
throw new UnsupportedOperationException("Could not create com folder");
54+
}
55+
}
56+
}
57+
settings.edit().putBoolean("init", false).apply();
4958
}
5059
super.onPostExecute(aVoid);
5160
}

app/src/main/java/com/sidzi/circleofmusic/helpers/LocalMusicLoader.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import java.util.ArrayList;
1010

1111
public class LocalMusicLoader extends AsyncTask<Void, Void, ArrayList<Track>> {
12-
private final ArrayList<Track> mTrackList = new ArrayList<>();
1312
private Context mContext;
1413
private TracksAdapter tracksAdapter;
1514

app/src/main/java/com/sidzi/circleofmusic/services/MusicPlayerService.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ public class MusicPlayerService extends Service {
3434
private int PLAYING_TRACK_POSITION = -1;
3535
private LocalBroadcastManager localBroadcastManager;
3636
private List<Track> mTrackList;
37+
private List<Track> mBucketList;
3738
private Context mContext;
39+
private int songsTillSleep = -1;
3840

3941

4042
public MusicPlayerService() {
@@ -56,6 +58,7 @@ public void onCreate() {
5658
try {
5759
dbTrack = ormHandler.getDao(Track.class);
5860
mTrackList = dbTrack.queryForAll();
61+
mBucketList = dbTrack.queryForEq("bucket", true);
5962
} catch (SQLException e) {
6063
e.printStackTrace();
6164
}
@@ -89,6 +92,10 @@ public void onCompletion(MediaPlayer mediaPlayer) {
8992
PLAYING_TRACK_POSITION = mTrackList.indexOf(new Track(track_path));
9093
PLAYING_TRACK = mTrackList.get(PLAYING_TRACK_POSITION);
9194
uiUpdate(PLAYING_TRACK);
95+
if (songsTillSleep == 0)
96+
onDestroy();
97+
else
98+
songsTillSleep--;
9299
} catch (IOException e) {
93100
e.printStackTrace();
94101
}
@@ -109,6 +116,31 @@ public void play(String Path, String Artist, String Name) {
109116
}
110117
}
111118

119+
public void bucketPlay(String track_path) {
120+
if (mMediaPlayer == null)
121+
init();
122+
mMediaPlayer.reset();
123+
try {
124+
mMediaPlayer.setDataSource(track_path);
125+
mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
126+
@Override
127+
public void onCompletion(MediaPlayer mediaPlayer) {
128+
bucketPlay(mBucketList.get(++PLAYING_TRACK_POSITION).getPath());
129+
}
130+
});
131+
mMediaPlayer.prepare();
132+
PLAYING_TRACK_POSITION = mBucketList.indexOf(new Track(track_path));
133+
PLAYING_TRACK = mBucketList.get(PLAYING_TRACK_POSITION);
134+
uiUpdate(PLAYING_TRACK);
135+
if (songsTillSleep == 0)
136+
onDestroy();
137+
else
138+
songsTillSleep--;
139+
} catch (IOException e) {
140+
e.printStackTrace();
141+
}
142+
}
143+
112144
public void next() {
113145
play(mTrackList.get(++PLAYING_TRACK_POSITION).getPath());
114146
}
@@ -136,6 +168,10 @@ private void uiUpdate(Track track) {
136168
localBroadcastManager.sendBroadcast(intent);
137169
}
138170

171+
public void setSongsTillSleep(int count) {
172+
songsTillSleep = count;
173+
}
174+
139175
private void init() {
140176
mMediaPlayer = new MediaPlayer();
141177
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

0 commit comments

Comments
 (0)