diff --git a/app/src/main/java/com/cappielloantonio/play/App.java b/app/src/main/java/com/cappielloantonio/play/App.java index 3d3e7584..8ad34ead 100644 --- a/app/src/main/java/com/cappielloantonio/play/App.java +++ b/app/src/main/java/com/cappielloantonio/play/App.java @@ -47,7 +47,10 @@ public class App extends Application { String token = PreferenceUtil.getInstance(context).getToken(); String salt = PreferenceUtil.getInstance(context).getSalt(); - SubsonicPreferences preferences = new SubsonicPreferences(server, username, password, token, salt); + SubsonicPreferences preferences = new SubsonicPreferences(); + preferences.setServerUrl(server); + preferences.setUsername(username); + preferences.setAuthentication(password, token, salt); return new Subsonic(preferences); } diff --git a/app/src/main/java/com/cappielloantonio/play/repository/ArtistRepository.java b/app/src/main/java/com/cappielloantonio/play/repository/ArtistRepository.java index e3154133..ed654dc0 100644 --- a/app/src/main/java/com/cappielloantonio/play/repository/ArtistRepository.java +++ b/app/src/main/java/com/cappielloantonio/play/repository/ArtistRepository.java @@ -2,13 +2,10 @@ package com.cappielloantonio.play.repository; import android.app.Application; -import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import com.cappielloantonio.play.App; -import com.cappielloantonio.play.database.AppDatabase; import com.cappielloantonio.play.model.Artist; -import com.cappielloantonio.play.subsonic.api.albumsonglist.AlbumSongListClient; import com.cappielloantonio.play.subsonic.models.ResponseStatus; import com.cappielloantonio.play.subsonic.models.SubsonicResponse; import com.cappielloantonio.play.util.MappingUtil; @@ -21,20 +18,16 @@ import retrofit2.Callback; import retrofit2.Response; public class ArtistRepository { - private AlbumSongListClient albumSongListClient; - - private LiveData> listLiveArtists; - private LiveData> listLiveSampleArtist; - private LiveData> searchListLiveArtist; + private Application application; private MutableLiveData> starredArtists = new MutableLiveData<>(); public ArtistRepository(Application application) { - albumSongListClient = App.getSubsonicClientInstance(application, false).getAlbumSongListClient(); + this.application = application; } public MutableLiveData> getStarredArtists() { - albumSongListClient + App.getSubsonicClientInstance(application, false).getAlbumSongListClient() .getStarred2() .enqueue(new Callback() { @Override diff --git a/app/src/main/java/com/cappielloantonio/play/repository/SongRepository.java b/app/src/main/java/com/cappielloantonio/play/repository/SongRepository.java index 13278025..73c1c9b4 100644 --- a/app/src/main/java/com/cappielloantonio/play/repository/SongRepository.java +++ b/app/src/main/java/com/cappielloantonio/play/repository/SongRepository.java @@ -7,8 +7,6 @@ import androidx.lifecycle.MutableLiveData; import com.cappielloantonio.play.App; import com.cappielloantonio.play.interfaces.MediaCallback; import com.cappielloantonio.play.model.Song; -import com.cappielloantonio.play.subsonic.api.albumsonglist.AlbumSongListClient; -import com.cappielloantonio.play.subsonic.api.browsing.BrowsingClient; import com.cappielloantonio.play.subsonic.models.ResponseStatus; import com.cappielloantonio.play.subsonic.models.SubsonicResponse; import com.cappielloantonio.play.util.MappingUtil; @@ -23,18 +21,16 @@ import retrofit2.Response; public class SongRepository { private static final String TAG = "SongRepository"; - private AlbumSongListClient albumSongListClient; - private BrowsingClient browsingClient; + private Application application; private MutableLiveData> starredSongs = new MutableLiveData<>(); public SongRepository(Application application) { - albumSongListClient = App.getSubsonicClientInstance(application, false).getAlbumSongListClient(); - browsingClient = App.getSubsonicClientInstance(application, false).getBrowsingClient(); + this.application = application; } public MutableLiveData> getStarredSongs() { - albumSongListClient + App.getSubsonicClientInstance(application, false).getAlbumSongListClient() .getStarred2() .enqueue(new Callback() { @Override @@ -55,7 +51,7 @@ public class SongRepository { } public void getInstantMix(Song song, int count, MediaCallback callback) { - browsingClient + App.getSubsonicClientInstance(application, false).getBrowsingClient() .getSimilarSongs2(song.getId(), count) .enqueue(new Callback() { @Override @@ -81,7 +77,7 @@ public class SongRepository { } public void getRandomSample(int number, MediaCallback callback) { - albumSongListClient + App.getSubsonicClientInstance(application, false).getAlbumSongListClient() .getRandomSongs(number) .enqueue(new Callback() { @Override diff --git a/app/src/main/java/com/cappielloantonio/play/repository/SystemRepository.java b/app/src/main/java/com/cappielloantonio/play/repository/SystemRepository.java index 2c696eaf..e2362777 100644 --- a/app/src/main/java/com/cappielloantonio/play/repository/SystemRepository.java +++ b/app/src/main/java/com/cappielloantonio/play/repository/SystemRepository.java @@ -14,14 +14,14 @@ import retrofit2.Callback; public class SystemRepository { private static final String TAG = "SongRepository"; - private SystemClient systemClient; + private Application application; public SystemRepository(Application application) { - systemClient = App.getSubsonicClientInstance(application, false).getSystemClient(); + this.application = application; } public void checkUserCredential(SystemCallback callback) { - systemClient + App.getSubsonicClientInstance(application, false).getSystemClient() .ping() .enqueue(new Callback() { @Override diff --git a/app/src/main/java/com/cappielloantonio/play/subsonic/Subsonic.java b/app/src/main/java/com/cappielloantonio/play/subsonic/Subsonic.java index 133a49e7..bf6cf238 100644 --- a/app/src/main/java/com/cappielloantonio/play/subsonic/Subsonic.java +++ b/app/src/main/java/com/cappielloantonio/play/subsonic/Subsonic.java @@ -13,11 +13,10 @@ import java.util.HashMap; import java.util.Map; public class Subsonic { - private final SubsonicPreferences preferences; - private static final Version API_MAX_VERSION = Version.of("1.15.0"); private Version apiVersion = API_MAX_VERSION; + private SubsonicPreferences preferences; private SystemClient systemClient; private BrowsingClient browsingClient; @@ -30,10 +29,6 @@ public class Subsonic { this.preferences = preferences; } - public SubsonicPreferences getPreferences() { - return preferences; - } - public Version getApiVersion() { return apiVersion; } diff --git a/app/src/main/java/com/cappielloantonio/play/subsonic/SubsonicPreferences.java b/app/src/main/java/com/cappielloantonio/play/subsonic/SubsonicPreferences.java index faea3034..12daa574 100644 --- a/app/src/main/java/com/cappielloantonio/play/subsonic/SubsonicPreferences.java +++ b/app/src/main/java/com/cappielloantonio/play/subsonic/SubsonicPreferences.java @@ -8,16 +8,8 @@ public class SubsonicPreferences { private String serverUrl; private String username; private String clientName = "Play for Subsonic"; - private SubsonicAuthentication authentication; - public SubsonicPreferences(String serverUrl, String username, String password, String token, String salt) { - this.serverUrl = serverUrl; - this.username = username; - if(password != null) this.authentication = new SubsonicAuthentication(password); - if(token != null && salt != null) this.authentication = new SubsonicAuthentication(token, salt); - } - public String getServerUrl() { return serverUrl; } @@ -34,8 +26,21 @@ public class SubsonicPreferences { return authentication; } - public void setPassword(String password) { - authentication.update(password); + public void setServerUrl(String serverUrl) { + this.serverUrl = serverUrl; + } + + public void setUsername(String username) { + this.username = username; + } + + public void setClientName(String clientName) { + this.clientName = clientName; + } + + public void setAuthentication(String password, String token, String salt) { + if(password != null) this.authentication = new SubsonicAuthentication(password); + if(token != null && salt != null) this.authentication = new SubsonicAuthentication(token, salt); } public static class SubsonicAuthentication {