Skip to content

Commit dcd1fa2

Browse files
authored
Merge pull request #27 from alikaakati/master
Fixed currenttrack persisting after being removed from playlist / from current track, disable range bar and play button in case no current track exist
2 parents f3c72da + cc30832 commit dcd1fa2

4 files changed

Lines changed: 92 additions & 52 deletions

File tree

widget/assets/css/widget.app.css

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,19 @@
11
/* Plugin CSS */
2+
3+
.media-button-container{
4+
display: flex;
5+
flex: 1;
6+
justify-content: center;
7+
align-items: center;
8+
}
9+
.media-container{
10+
display: flex;
11+
justify-content: center;
12+
align-items: center;
13+
flex-direction: row;
14+
width: 100% !important;
15+
}
16+
217
.media-center-plugin.layout2 .people-banner .people-bg{
318
background:rgba(0,0,0,0.8);
419
}
@@ -285,7 +300,6 @@ html[browser="Firefox"] .layout3 .list-layout .list-item-media .list-media-holde
285300
.holder.now-playing .media-player-btns .icon.icon-sm{
286301
font-size:22px;
287302
position:relative;
288-
top:-7px;
289303
color:#999;
290304
}
291305
.holder.now-playing .media-player-btns .icon{
@@ -297,7 +311,6 @@ html[browser="Firefox"] .layout3 .list-layout .list-item-media .list-media-holde
297311
.holder.now-playing .media-player-btns .icon.icon-main{
298312
font-size:58px;
299313
position:relative;
300-
top:6px;
301314
}
302315

303316
/* Media Player Playlist Overlay */
@@ -358,7 +371,7 @@ html[browser="Firefox"] .layout3 .list-layout .list-item-media .list-media-holde
358371
font-size:52px;
359372
}
360373
.holder.now-playing .media-player-btns .icon.icon-sm{
361-
top:-5px;
374+
top:0;
362375
}
363376
}
364377

widget/controllers/widget.home.controller.js

Lines changed: 51 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,34 @@
1010
var WidgetHome = this;
1111
WidgetHome.currentTime = 0.0;
1212
WidgetHome.volume = 1;
13+
WidgetHome.isRangeDisabled = true;
1314
$rootScope.openPlaylist = false;
14-
15+
var audioPlayer = Buildfire.services.media.audioPlayer;
16+
WidgetHome.playList = [];
17+
audioPlayer.getPlaylist((err,data) =>{
18+
if(data && data.tracks) WidgetHome.playList = data.tracks;
19+
audioPlayer.getCurrentTrack(function (track, err) {
20+
if (track) {
21+
if(WidgetHome.playList.findIndex(i => i.url === track) >= 0 ){
22+
WidgetHome.currentTrack = track;
23+
WidgetHome.isRangeDisabled = false;
24+
console.log("Current track set");
25+
$scope.$digest();
26+
}
27+
else{
28+
console.log("current track null");
29+
WidgetHome.currentTrack = null;
30+
$scope.$digest();
31+
}
32+
}
33+
else WidgetHome.currentTrack = null;
34+
console.log('audioPlayer.getCurrentTrack method called--------------------------------', track, err);
35+
});
36+
})
1537

1638
/**
1739
* audioPlayer is Buildfire.services.media.audioPlayer.
1840
*/
19-
var audioPlayer = Buildfire.services.media.audioPlayer;
20-
21-
audioPlayer.getCurrentTrack(function (track, err) {
22-
console.log('audioPlayer.getCurrentTrack method called--------------------------------', track, err);
23-
if (track) {
24-
WidgetHome.currentTrack = track;
25-
$scope.$digest();
26-
}
27-
});
2841

2942
audioPlayer.settings.get(function (err, data) {
3043
console.log('Got player settings first time-----------------------', err, data);
@@ -46,28 +59,7 @@
4659
if (WidgetHome.settings && WidgetHome.settings.isPlayingCurrentTrack && WidgetHome.currentTrack) {
4760
WidgetHome.playing = true;
4861
} else {
49-
audioPlayer.getCurrentTrack(function (track, err) {
50-
console.log('audioPlayer.getCurrentTrack method called- from timeupdate event-------------------------------', track, err);
51-
if (track) {
52-
audioPlayer.settings.get(function (err, data) {
53-
console.log('Got settings - from --timeupdate event-------------------', err, data);
54-
if (data) {
55-
WidgetHome.settings = data;
56-
if (data.isPlayingCurrentTrack) {
57-
WidgetHome.playing = true;
58-
}
59-
}
60-
/*else{
61-
var newSettings=new AudioSettings({autoPlayNext:false,loopPlaylist:false,autoJumpToLastPosition:false,shufflePlaylist:false,isPlayingCurrentTrack:true});
62-
WidgetHome.settings=newSettings;
63-
audioPlayer.settings.set(newSettings);
64-
WidgetHome.playing = true;
65-
}*/
66-
});
67-
WidgetHome.currentTrack = track;
68-
$scope.$digest();
69-
}
70-
});
62+
7163
}
7264
WidgetHome.currentTime = e.data.currentTime;
7365
WidgetHome.duration = e.data.duration;
@@ -98,11 +90,13 @@
9890
* Player related method and variables
9991
*/
10092
WidgetHome.playTrack = function () {
93+
if(WidgetHome.currentTrack == null) return;
10194
if (WidgetHome.settings) {
10295
WidgetHome.settings.isPlayingCurrentTrack = true;
10396
audioPlayer.settings.set(WidgetHome.settings);
10497
}
10598
WidgetHome.playing = true;
99+
WidgetHome.isRangeDisabled = false;
106100
WidgetHome.currentTrack.isPlaying = true;
107101
if (WidgetHome.paused) {
108102
audioPlayer.play();
@@ -111,6 +105,7 @@
111105
}
112106
};
113107
WidgetHome.playlistPlay = function (track, index) {
108+
WidgetHome.isRangeDisabled = false;
114109
if (WidgetHome.settings) {
115110
WidgetHome.settings.isPlayingCurrentTrack = true;
116111
audioPlayer.settings.set(WidgetHome.settings);
@@ -206,32 +201,53 @@
206201
}
207202
};
208203
WidgetHome.addToPlaylist = function () {
209-
console.log('AddToPlaylist called-------------------------------');
210204
audioPlayer.addToPlaylist(WidgetHome.currentTrack);
211205
};
212206
WidgetHome.removeFromPlaylist = function (track) {
207+
213208
Modals.removeTrackModal().then(function (data) {
214209
if (WidgetHome.playList) {
215210
var trackIndex = 0;
216211
WidgetHome.playList.some(function (val, index) {
212+
console.log(WidgetHome.playList);
217213
if ((val.url == track.url) && (trackIndex == 0)) {
218214
audioPlayer.removeFromPlaylist(index);
219215
//trackIndex++;
220216
}
221217
return (val.url == track.url);
222-
218+
223219
});
224220
console.log('indexes------------track Index----------------------track==========', trackIndex);
225221
}
222+
if(WidgetHome.currentTrack && track.url == WidgetHome.currentTrack.url){
223+
WidgetHome.currentTrack = null;
224+
WidgetHome.currentTime = 0.0;
225+
WidgetHome.playing = false;
226+
WidgetHome.isRangeDisabled = true;
227+
WidgetHome.playList[index].playing = false;
228+
WidgetHome.settings.isPlayingCurrentTrack = false;
229+
WidgetHome.setSettings(WidgetHome.settings);
230+
}
226231
console.log('Remove caleedddddddddddddddddddd----------------------------------------', data);
227232
}, function (err) {
228233
console.log('Error--------------While removing-------------', err);
229234
});
235+
230236
console.log('removeFromPlaylist called-------------------------------');
231237
};
232238
WidgetHome.removeTrackFromPlayList = function (index) {
239+
233240
Modals.removeTrackModal().then(function (data) {
234241
audioPlayer.removeFromPlaylist(index);
242+
if(WidgetHome.playList && WidgetHome.currentTrack && WidgetHome.playList[index].url == WidgetHome.currentTrack.url ){
243+
WidgetHome.currentTrack = null;
244+
WidgetHome.currentTime = 0.0;
245+
WidgetHome.settings.isPlayingCurrentTrack = false;
246+
WidgetHome.playing = false;
247+
WidgetHome.playList[index].playing = false;
248+
WidgetHome.isRangeDisabled = true;
249+
WidgetHome.setSettings(WidgetHome.settings);
250+
}
235251
console.log('Remove caleedddddddddddddddddddd----------------------------------------', data);
236252
}, function (err) {
237253
console.log('Error--------------While removing-------------', err);
@@ -250,6 +266,7 @@
250266
trackIndex++;
251267
console.log('Url MAtched--------------------------------- --------------');
252268
track.playing = true;
269+
WidgetHome.isRangeDisabled = false;
253270
return true;
254271
}
255272
});

widget/css/style.css

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,6 @@
224224
.holder.now-playing .media-player-btns .icon.icon-main{
225225
font-size:58px;
226226
position:relative;
227-
top:6px;
228227
}
229228

230229
.ecommerce-plugin .list-layout.has-cart .list-item,
@@ -480,7 +479,7 @@ html[browser="Firefox"] .layout3 .list-layout .list-item-media .list-media-holde
480479
font-size:52px;
481480
}
482481
.holder.now-playing .media-player-btns .icon.icon-sm{
483-
top:-5px;
482+
top:0px;
484483
}
485484
}
486485

widget/index.html

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ <h4 class="margin-zero ellipsis whiteTheme">No Audio Currently Selected</h4>
8181
min="0.0"
8282
max="{{WidgetHome.duration || 163.94449}}"
8383
ng-model="WidgetHome.currentTime"
84+
ng-disabled="WidgetHome.isRangeDisabled"
8485
ng-change="WidgetHome.changeTime(WidgetHome.currentTime)"
8586
style="height:30px; border-radius:4px;background-color: transparent !important;"/>
8687
</div>
@@ -114,19 +115,29 @@ <h4 class="margin-zero ellipsis whiteTheme">No Audio Currently Selected</h4>
114115
<span class="icon icon-ellipsis icon-sm whiteTheme" ng-click="WidgetHome.openMoreInfoOverlay()"></span>
115116
<span class="icon icon-cog icon-sm whiteTheme" ng-click="WidgetHome.getSettings()"></span>
116117
</div>
117-
<div class="media-player-btns margin-top-ten">
118-
<span ng-class="(WidgetHome.settings && WidgetHome.settings.shufflePlaylist) ? 'primaryTheme bold' : 'whiteTheme'"
119-
class="icon icon-shuffle icon-sm " ng-click="WidgetHome.shufflePlaylist()"></span>
120-
<span class="icon icon-backward-circle whiteTheme" ng-click="WidgetHome.backward()"></span>
121-
<span ng-if="!WidgetHome.playing" class="icon icon-play-circle icon-main whiteTheme"
122-
ng-click="WidgetHome.playTrack()"></span>
123-
<span ng-if="WidgetHome.playing" class="icon icon-pause-circle icon-main whiteTheme"
124-
ng-click="WidgetHome.pauseTrack()"></span>
125-
<span class="icon icon-forward-circle whiteTheme" ng-click="WidgetHome.forward()"></span>
126-
<span ng-class="(WidgetHome.settings && WidgetHome.settings.loopPlaylist) ? 'primaryTheme bold' : 'whiteTheme'"
127-
class="icon icon-repeat icon-sm" ng-click="WidgetHome.loopPlaylist()"></span>
128-
<span class="icon icon-repeat-one icon-sm primaryTheme hidden whiteTheme"></span>
129-
<span class="icon icon-repeat icon-sm primaryTheme hidden whiteTheme"></span>
118+
<div class="media-player-btns margin-top-ten media-container">
119+
<div class = "media-button-container">
120+
<span ng-class="(WidgetHome.settings && WidgetHome.settings.shufflePlaylist) ? 'primaryTheme bold' : 'whiteTheme'"
121+
class="icon icon-shuffle icon-sm " ng-click="WidgetHome.shufflePlaylist()"></span>
122+
</div>
123+
<div class = "media-button-container">
124+
<span class="icon icon-backward-circle whiteTheme" ng-click="WidgetHome.backward()"></span>
125+
</div>
126+
<div class = "media-button-container">
127+
<span ng-if="!WidgetHome.playing" class="icon icon-play-circle icon-main whiteTheme"
128+
ng-click="WidgetHome.playTrack()"></span>
129+
<span ng-if="WidgetHome.playing" class="icon icon-pause-circle icon-main whiteTheme"
130+
ng-click="WidgetHome.pauseTrack()"></span>
131+
</div>
132+
<div class = "media-button-container">
133+
<span class="icon icon-forward-circle whiteTheme" ng-click="WidgetHome.forward()"></span>
134+
</div>
135+
<div class = "media-button-container">
136+
<span ng-class="(WidgetHome.settings && WidgetHome.settings.loopPlaylist) ? 'primaryTheme bold' : 'whiteTheme'"
137+
class="icon icon-repeat icon-sm" ng-click="WidgetHome.loopPlaylist()"></span>
138+
<span class="icon icon-repeat-one icon-sm primaryTheme hidden whiteTheme"></span>
139+
<span class="icon icon-repeat icon-sm primaryTheme hidden whiteTheme"></span>
140+
</div>
130141
</div>
131142
</div>
132143

0 commit comments

Comments
 (0)