From 259c8b35993d9b78c206c9aef42a9f3e0d5af09b Mon Sep 17 00:00:00 2001 From: antonio Date: Wed, 12 Jul 2023 09:52:57 +0200 Subject: [PATCH] refactor: added search2 method as per Subsonic API specifications --- .../tempo/repository/SearchingRepository.java | 24 ++++++++++++++++++- .../tempo/ui/fragment/SearchFragment.java | 2 +- .../tempo/viewmodel/SearchViewModel.java | 9 +++++-- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/tempo/repository/SearchingRepository.java b/app/src/main/java/com/cappielloantonio/tempo/repository/SearchingRepository.java index 1a3c5f50..9da94a16 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/repository/SearchingRepository.java +++ b/app/src/main/java/com/cappielloantonio/tempo/repository/SearchingRepository.java @@ -11,6 +11,7 @@ import com.cappielloantonio.tempo.subsonic.base.ApiResponse; import com.cappielloantonio.tempo.subsonic.models.AlbumID3; import com.cappielloantonio.tempo.subsonic.models.ArtistID3; import com.cappielloantonio.tempo.subsonic.models.Child; +import com.cappielloantonio.tempo.subsonic.models.SearchResult2; import com.cappielloantonio.tempo.subsonic.models.SearchResult3; import java.util.ArrayList; @@ -24,7 +25,28 @@ import retrofit2.Response; public class SearchingRepository { private final RecentSearchDao recentSearchDao = AppDatabase.getInstance().recentSearchDao(); - public MutableLiveData search(String query) { + public MutableLiveData search2(String query) { + MutableLiveData result = new MutableLiveData<>(); + + App.getSubsonicClientInstance(false) + .getSearchingClient() + .search3(query, 20, 20, 20) + .enqueue(new Callback() { + @Override + public void onResponse(@NonNull Call call, @NonNull Response response) { + result.setValue(response.body().getSubsonicResponse().getSearchResult2()); + } + + @Override + public void onFailure(@NonNull Call call, @NonNull Throwable t) { + + } + }); + + return result; + } + + public MutableLiveData search3(String query) { MutableLiveData result = new MutableLiveData<>(); App.getSubsonicClientInstance(false) diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SearchFragment.java b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SearchFragment.java index ccf9f7f1..82563d59 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SearchFragment.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SearchFragment.java @@ -215,7 +215,7 @@ public class SearchFragment extends Fragment implements ClickCallback { } private void performSearch(String query) { - searchViewModel.search(query).observe(getViewLifecycleOwner(), result -> { + searchViewModel.search3(query).observe(getViewLifecycleOwner(), result -> { if (bind != null) { if (result.getArtists() != null) { bind.searchArtistSector.setVisibility(!result.getArtists().isEmpty() ? View.VISIBLE : View.GONE); diff --git a/app/src/main/java/com/cappielloantonio/tempo/viewmodel/SearchViewModel.java b/app/src/main/java/com/cappielloantonio/tempo/viewmodel/SearchViewModel.java index 9e4175f0..42521a1c 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/viewmodel/SearchViewModel.java +++ b/app/src/main/java/com/cappielloantonio/tempo/viewmodel/SearchViewModel.java @@ -8,6 +8,7 @@ import androidx.lifecycle.LiveData; import com.cappielloantonio.tempo.model.RecentSearch; import com.cappielloantonio.tempo.repository.SearchingRepository; +import com.cappielloantonio.tempo.subsonic.models.SearchResult2; import com.cappielloantonio.tempo.subsonic.models.SearchResult3; import java.util.ArrayList; @@ -38,8 +39,12 @@ public class SearchViewModel extends AndroidViewModel { } } - public LiveData search(String title) { - return searchingRepository.search(title); + public LiveData search2(String title) { + return searchingRepository.search2(title); + } + + public LiveData search3(String title) { + return searchingRepository.search3(title); } public void insertNewSearch(String search) {