refactor: added search2 method as per Subsonic API specifications

This commit is contained in:
antonio 2023-07-12 09:52:57 +02:00
parent ba1295440b
commit 259c8b3599
3 changed files with 31 additions and 4 deletions

View file

@ -11,6 +11,7 @@ import com.cappielloantonio.tempo.subsonic.base.ApiResponse;
import com.cappielloantonio.tempo.subsonic.models.AlbumID3; import com.cappielloantonio.tempo.subsonic.models.AlbumID3;
import com.cappielloantonio.tempo.subsonic.models.ArtistID3; import com.cappielloantonio.tempo.subsonic.models.ArtistID3;
import com.cappielloantonio.tempo.subsonic.models.Child; import com.cappielloantonio.tempo.subsonic.models.Child;
import com.cappielloantonio.tempo.subsonic.models.SearchResult2;
import com.cappielloantonio.tempo.subsonic.models.SearchResult3; import com.cappielloantonio.tempo.subsonic.models.SearchResult3;
import java.util.ArrayList; import java.util.ArrayList;
@ -24,7 +25,28 @@ import retrofit2.Response;
public class SearchingRepository { public class SearchingRepository {
private final RecentSearchDao recentSearchDao = AppDatabase.getInstance().recentSearchDao(); private final RecentSearchDao recentSearchDao = AppDatabase.getInstance().recentSearchDao();
public MutableLiveData<SearchResult3> search(String query) { public MutableLiveData<SearchResult2> search2(String query) {
MutableLiveData<SearchResult2> result = new MutableLiveData<>();
App.getSubsonicClientInstance(false)
.getSearchingClient()
.search3(query, 20, 20, 20)
.enqueue(new Callback<ApiResponse>() {
@Override
public void onResponse(@NonNull Call<ApiResponse> call, @NonNull Response<ApiResponse> response) {
result.setValue(response.body().getSubsonicResponse().getSearchResult2());
}
@Override
public void onFailure(@NonNull Call<ApiResponse> call, @NonNull Throwable t) {
}
});
return result;
}
public MutableLiveData<SearchResult3> search3(String query) {
MutableLiveData<SearchResult3> result = new MutableLiveData<>(); MutableLiveData<SearchResult3> result = new MutableLiveData<>();
App.getSubsonicClientInstance(false) App.getSubsonicClientInstance(false)

View file

@ -215,7 +215,7 @@ public class SearchFragment extends Fragment implements ClickCallback {
} }
private void performSearch(String query) { private void performSearch(String query) {
searchViewModel.search(query).observe(getViewLifecycleOwner(), result -> { searchViewModel.search3(query).observe(getViewLifecycleOwner(), result -> {
if (bind != null) { if (bind != null) {
if (result.getArtists() != null) { if (result.getArtists() != null) {
bind.searchArtistSector.setVisibility(!result.getArtists().isEmpty() ? View.VISIBLE : View.GONE); bind.searchArtistSector.setVisibility(!result.getArtists().isEmpty() ? View.VISIBLE : View.GONE);

View file

@ -8,6 +8,7 @@ import androidx.lifecycle.LiveData;
import com.cappielloantonio.tempo.model.RecentSearch; import com.cappielloantonio.tempo.model.RecentSearch;
import com.cappielloantonio.tempo.repository.SearchingRepository; import com.cappielloantonio.tempo.repository.SearchingRepository;
import com.cappielloantonio.tempo.subsonic.models.SearchResult2;
import com.cappielloantonio.tempo.subsonic.models.SearchResult3; import com.cappielloantonio.tempo.subsonic.models.SearchResult3;
import java.util.ArrayList; import java.util.ArrayList;
@ -38,8 +39,12 @@ public class SearchViewModel extends AndroidViewModel {
} }
} }
public LiveData<SearchResult3> search(String title) { public LiveData<SearchResult2> search2(String title) {
return searchingRepository.search(title); return searchingRepository.search2(title);
}
public LiveData<SearchResult3> search3(String title) {
return searchingRepository.search3(title);
} }
public void insertNewSearch(String search) { public void insertNewSearch(String search) {