Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
<activity android:name=".ui.playlist.PlaylistActivity"
android:theme="@style/MelophileTheme.Details"/>

<activity android:name=".ui.track.TrackActivity"
<activity android:name=".ui.player.PlayerActivity"
android:launchMode="singleTop"
android:theme="@style/MelophileTheme.Track"/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,18 @@
import com.vpaliy.data.source.RemoteSource;
import com.vpaliy.data.source.remote.Filter;
import com.vpaliy.domain.executor.BaseSchedulerProvider;
import com.vpaliy.domain.interactor.FollowUser;
import com.vpaliy.domain.interactor.GetMe;
import com.vpaliy.domain.interactor.FavoritePlaylistInteractor;
import com.vpaliy.domain.interactor.FavoriteTrackInteractor;
import com.vpaliy.domain.interactor.GetPlaylist;
import com.vpaliy.domain.interactor.GetPlaylists;
import com.vpaliy.domain.interactor.PlaylistHistory;
import com.vpaliy.domain.interactor.TrackHistory;
import com.vpaliy.domain.interactor.GetTrack;
import com.vpaliy.domain.interactor.GetTracks;
import com.vpaliy.domain.interactor.GetUserDetails;
import com.vpaliy.domain.interactor.GetUserFavorites;
import com.vpaliy.domain.interactor.GetUserFollowers;
import com.vpaliy.domain.interactor.LoveTrack;
import com.vpaliy.domain.interactor.HistoryPlaylistInteractor;
import com.vpaliy.domain.interactor.HistoryTrackInteractor;
import com.vpaliy.domain.interactor.PersonalUserInteractor;
import com.vpaliy.domain.interactor.PlaylistSearch;
import com.vpaliy.domain.interactor.SaveInteractor;
import com.vpaliy.domain.interactor.TrackSearch;
import com.vpaliy.domain.interactor.UserSearch;
import com.vpaliy.domain.model.Track;
Expand Down Expand Up @@ -61,19 +59,16 @@ public interface ApplicationComponent {
GetPlaylists playlistsInteractor();
GetTracks tracksInteractor();
GetPlaylist playlistInteractor();
GetTrack trackInteractor();
GetUserDetails userDetailsInteractor();
GetUserFollowers userFollowersInteractor();
GetUserFavorites userFavoritesInteractor();
TrackSearch trackSearchInteractor();
PlaylistSearch playlistSearchInteractor();
UserSearch userSearchInteractor();
SaveInteractor saveInteractor();
GetMe meInteractor();
FollowUser followUserInteractor();
LoveTrack loveTrackInteractor();
PlaylistHistory recentPlaylistsInteractor();
TrackHistory recentTracksInteractor();

GetTrack trackInteractor();
PersonalUserInteractor personalUserInteractor();
FavoritePlaylistInteractor favoritePlaylistInteractor();
FavoriteTrackInteractor favoriteTrackInteractor();
HistoryTrackInteractor historyTrackInteractor();
HistoryPlaylistInteractor historyPlaylistInteractor();
Mapper<MediaMetadataCompat,Track> mapper();
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

import com.vpaliy.melophile.di.module.PlaybackModule;
import com.vpaliy.melophile.playback.service.MusicPlaybackService;
import com.vpaliy.melophile.ui.player.PlayerActivity;
import dagger.Component;
import com.vpaliy.domain.playback.PlayerScope;
import com.vpaliy.melophile.ui.track.TrackFragment;

@PlayerScope
@Component(dependencies = ApplicationComponent.class,
modules = PlaybackModule.class)
public interface PlayerComponent {
void inject(MusicPlaybackService service);
void inject(TrackFragment fragment);
void inject(PlayerActivity fragment);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@
import com.vpaliy.melophile.di.module.PresenterModule;
import com.vpaliy.melophile.di.scope.ViewScope;
import com.vpaliy.melophile.ui.personal.PersonalFragment;
import com.vpaliy.melophile.ui.playlist.PlaylistFragment;
import com.vpaliy.melophile.ui.playlist.PlaylistActivity;
import com.vpaliy.melophile.ui.playlists.PlaylistsFragment;
import com.vpaliy.melophile.ui.search.SearchActivity;
import com.vpaliy.melophile.ui.track.TrackFragment;
import com.vpaliy.melophile.ui.tracks.TracksFragment;
import com.vpaliy.melophile.ui.user.PersonFragment;
import com.vpaliy.melophile.ui.user.info.FavoriteFragment;
Expand All @@ -21,7 +20,7 @@ public interface ViewComponent {
void inject(PlaylistsFragment fragment);
void inject(TracksFragment fragment);
void inject(PersonalFragment fragment);
void inject(PlaylistFragment fragment);
void inject(PlaylistActivity activity);
void inject(PersonFragment fragment);
void inject(FavoriteFragment fragment);
void inject(FollowersFragment fragment);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,26 @@ public ApplicationModule(Context context){
this.context=context;
}

@Singleton @Provides Context context(){
@Singleton
@Provides
Context context(){
return context;
}

@Singleton @Provides
@Singleton
@Provides
RxBus rxBus(){
return new RxBus();
}

@Singleton @Provides
@Singleton
@Provides
BaseSchedulerProvider schedulerProvider(){
return new SchedulerProvider();
}

@Singleton @Provides
@Singleton
@Provides
Navigator navigator(){
return new Navigator();
}
Expand Down
21 changes: 14 additions & 7 deletions app/src/main/java/com/vpaliy/melophile/di/module/DataModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,37 +19,44 @@

@Module
public class DataModule {
@Singleton @Provides
@Singleton
@Provides
Repository repository(MusicRepository repository){
return repository;
}

@Singleton @Provides
@Singleton
@Provides
RemoteSource remoteSource(MusicRemoteSource remote){
return remote;
}

@Singleton @Provides
@Singleton
@Provides
Filter filter(){
return new Filter();
}

@Singleton @Provides
@Singleton
@Provides
SearchRepository searchRepository(MusicSearchRepository repository){
return repository;
}

@Singleton @Provides
@Singleton
@Provides
SearchSource searchSource(RemoteSearchSource remote){
return remote;
}

@Singleton @Provides
@Singleton
@Provides
PersonalRepository personalRepository(MusicPersonalRepository repository){
return repository;
}

@Singleton @Provides
@Singleton
@Provides
LocalSource localSource(LocalMusicSource local){
return local;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
package com.vpaliy.melophile.di.module;

import com.vpaliy.domain.executor.BaseSchedulerProvider;
import com.vpaliy.domain.interactor.FavoritePlaylistInteractor;
import com.vpaliy.domain.interactor.FavoriteTrackInteractor;
import com.vpaliy.domain.interactor.GetPlaylist;
import com.vpaliy.domain.interactor.GetPlaylists;
import com.vpaliy.domain.interactor.GetTrack;
import com.vpaliy.domain.interactor.GetTracks;
import com.vpaliy.domain.interactor.GetUserFavorites;
import com.vpaliy.domain.interactor.GetUserFollowers;
import com.vpaliy.domain.interactor.HistoryPlaylistInteractor;
import com.vpaliy.domain.interactor.HistoryTrackInteractor;
import com.vpaliy.domain.interactor.PersonalUserInteractor;
import com.vpaliy.domain.interactor.PlaylistSearch;
import com.vpaliy.domain.interactor.TrackSearch;
import com.vpaliy.domain.interactor.UserSearch;
import com.vpaliy.domain.repository.PersonalRepository;
import com.vpaliy.domain.repository.Repository;
import com.vpaliy.domain.repository.SearchRepository;
import javax.inject.Singleton;
Expand All @@ -18,52 +24,98 @@

@Module
public class InteractorModule {
@Singleton @Provides
@Singleton
@Provides
GetPlaylists getPlaylists(Repository repository, BaseSchedulerProvider schedulerProvider){
return new GetPlaylists(schedulerProvider,repository);
}

@Singleton @Provides
@Singleton
@Provides
GetTracks getTracks(Repository repository, BaseSchedulerProvider schedulerProvider){
return new GetTracks(schedulerProvider,repository);
}

@Singleton @Provides
@Singleton
@Provides
GetTrack getTrack(Repository repository, BaseSchedulerProvider schedulerProvider){
return new GetTrack(schedulerProvider,repository);
}

@Singleton @Provides
@Singleton
@Provides
GetPlaylist getPlaylist(Repository repository, BaseSchedulerProvider schedulerProvider){
return new GetPlaylist(schedulerProvider,repository);
}

@Singleton
@Provides
PersonalUserInteractor personalUserInteractor(PersonalRepository repository,
BaseSchedulerProvider schedulerProvider){
return new PersonalUserInteractor(repository,schedulerProvider);
}

@Singleton
@Provides
FavoriteTrackInteractor favoriteTrackInteractor(PersonalRepository repository,
BaseSchedulerProvider schedulerProvider){
return new FavoriteTrackInteractor(repository,schedulerProvider);
}

@Singleton
@Provides
FavoritePlaylistInteractor favoritePlaylistInteractor(PersonalRepository repository,
BaseSchedulerProvider schedulerProvider){
return new FavoritePlaylistInteractor(repository,schedulerProvider);
}

@Singleton
@Provides
HistoryPlaylistInteractor historyPlaylistInteractor(PersonalRepository repository,
BaseSchedulerProvider schedulerProvider){
return new HistoryPlaylistInteractor(repository,schedulerProvider);
}

@Singleton
@Provides
HistoryTrackInteractor historyTrackInteractor(PersonalRepository repository,
BaseSchedulerProvider schedulerProvider){
return new HistoryTrackInteractor(repository,schedulerProvider);
}



/* @Singleton @Provides
GetUserDetails getUserDetails(Repository repository, BaseSchedulerProvider schedulerProvider){
return new GetUserDetails(schedulerProvider,repository);
} */

@Singleton @Provides
@Singleton
@Provides
GetUserFollowers getUserFollowers(Repository repository, BaseSchedulerProvider schedulerProvider){
return new GetUserFollowers(repository,schedulerProvider);
}

@Singleton @Provides
@Singleton
@Provides
GetUserFavorites getUserFavorites(Repository repository, BaseSchedulerProvider schedulerProvider){
return new GetUserFavorites(repository,schedulerProvider);
}

@Singleton @Provides
@Singleton
@Provides
TrackSearch trackSearch(BaseSchedulerProvider schedulerProvider, SearchRepository repository){
return new TrackSearch(repository,schedulerProvider);
}

@Singleton @Provides
@Singleton
@Provides
UserSearch userSearch(BaseSchedulerProvider schedulerProvider,SearchRepository repository){
return new UserSearch(repository,schedulerProvider);
}

@Singleton @Provides
@Singleton
@Provides
PlaylistSearch playlistSearch(BaseSchedulerProvider schedulerProvider, SearchRepository repository){
return new PlaylistSearch(repository,schedulerProvider);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import android.net.wifi.WifiManager;
import android.os.Build;
import com.vpaliy.data.mapper.Mapper;
import com.vpaliy.domain.interactor.SaveInteractor;
import com.vpaliy.domain.model.Track;
import com.vpaliy.domain.playback.Playback;
import com.vpaliy.melophile.playback.MediaPlayback;
Expand All @@ -32,7 +31,7 @@ Playback playback(Context context){
}

@PlayerScope @Provides
PlaybackManager playbackManager(Playback playback, Mapper<MediaMetadataCompat,Track> mapper, SaveInteractor saveInteractor){
return new PlaybackManager(playback,mapper,saveInteractor);
PlaybackManager playbackManager(Playback playback, Mapper<MediaMetadataCompat,Track> mapper){
return new PlaybackManager(playback,mapper);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import android.support.v4.media.session.MediaSessionCompat;
import android.support.v4.media.session.PlaybackStateCompat;
import com.vpaliy.data.mapper.Mapper;
import com.vpaliy.domain.interactor.SaveInteractor;
import com.vpaliy.domain.model.Track;
import com.vpaliy.domain.playback.Playback;
import com.vpaliy.domain.playback.QueueManager;
Expand All @@ -26,18 +25,16 @@ public class PlaybackManager implements Playback.Callback {
private MetadataUpdateListener updateListener;
private QueueManager queueManager;
private Playback playback;
private SaveInteractor saveInteractor;
private boolean isRepeat;
private boolean isShuffle;
private int lastState;

@Inject
public PlaybackManager(Playback playback, Mapper<MediaMetadataCompat,Track> mapper, SaveInteractor saveInteractor){
public PlaybackManager(Playback playback, Mapper<MediaMetadataCompat,Track> mapper){
this.mediaSessionCallback=new MediaSessionCallback();
this.playback=playback;
this.playback.setCallback(this);
this.mapper=mapper;
this.saveInteractor=saveInteractor;
}

public void setUpdateListener(MetadataUpdateListener updateListener) {
Expand All @@ -54,7 +51,7 @@ public void setQueueManager(QueueManager queueManager) {

public void handlePlayRequest(Track track){
if(track!=null) {
saveInteractor.saveTrack(track);
//saveInteractor.saveTrack(track);
playback.play(track.getStreamUrl());
updateMetadata();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import android.support.v4.media.session.PlaybackStateCompat;
import com.vpaliy.melophile.App;
import com.vpaliy.melophile.playback.PlaybackManager;
import com.vpaliy.melophile.ui.track.TrackActivity;
import com.vpaliy.melophile.ui.player.PlayerActivity;
import static com.vpaliy.melophile.playback.MediaHelper.MEDIA_ID_EMPTY_ROOT;
import static com.vpaliy.melophile.playback.MediaHelper.MEDIA_ID_ROOT;
import android.support.annotation.NonNull;
Expand Down Expand Up @@ -47,7 +47,7 @@ public void onCreate() {
MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS);
setSessionToken(mediaSession.getSessionToken());
Context context = getApplicationContext();
Intent intent = new Intent(context, TrackActivity.class);
Intent intent = new Intent(context, PlayerActivity.class);
PendingIntent pi = PendingIntent.getActivity(context, 99,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
mediaSession.setSessionActivity(pi);
Expand Down
Loading