mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 17:43:32 +00:00
String extraction from everywhere
This commit is contained in:
parent
d169e3b188
commit
b28c230f5a
53 changed files with 333 additions and 170 deletions
17
.idea/misc.xml
generated
17
.idea/misc.xml
generated
|
|
@ -41,22 +41,32 @@
|
||||||
<entry key="app/src/main/res/drawable/ui_empty_list.xml" value="0.28055555555555556" />
|
<entry key="app/src/main/res/drawable/ui_empty_list.xml" value="0.28055555555555556" />
|
||||||
<entry key="app/src/main/res/layout/activity_main.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/activity_main.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/bottom_sheet_album_dialog.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/bottom_sheet_album_dialog.xml" value="0.3229166666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/bottom_sheet_artist_dialog.xml" value="0.225" />
|
||||||
<entry key="app/src/main/res/layout/bottom_sheet_song_dialog.xml" value="0.21666666666666667" />
|
<entry key="app/src/main/res/layout/bottom_sheet_song_dialog.xml" value="0.21666666666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/chip_search_filter_genre.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/dialog_playlist_chooser.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/dialog_playlist_chooser.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/dialog_playlist_creator.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/dialog_playlist_creator.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/dialog_playlist_editor.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/dialog_playlist_editor.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/dialog_rating.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/dialog_rating.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/dialog_server_signup.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/dialog_server_signup.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/fragment_album_catalogue.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/fragment_album_catalogue.xml" value="0.3229166666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_album_list_page.xml" value="0.225" />
|
||||||
<entry key="app/src/main/res/layout/fragment_album_page.xml" value="0.2769409038238702" />
|
<entry key="app/src/main/res/layout/fragment_album_page.xml" value="0.2769409038238702" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_artist_catalogue.xml" value="0.3229166666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_artist_list_page.xml" value="0.225" />
|
||||||
<entry key="app/src/main/res/layout/fragment_artist_page.xml" value="0.1" />
|
<entry key="app/src/main/res/layout/fragment_artist_page.xml" value="0.1" />
|
||||||
<entry key="app/src/main/res/layout/fragment_download.xml" value="0.283363802559415" />
|
<entry key="app/src/main/res/layout/fragment_download.xml" value="0.283363802559415" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_filter.xml" value="0.3229166666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_genre_catalogue.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/fragment_home.xml" value="0.283363802559415" />
|
<entry key="app/src/main/res/layout/fragment_home.xml" value="0.283363802559415" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_landing.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/fragment_library.xml" value="0.1" />
|
<entry key="app/src/main/res/layout/fragment_library.xml" value="0.1" />
|
||||||
<entry key="app/src/main/res/layout/fragment_login.xml" value="0.3166496424923391" />
|
<entry key="app/src/main/res/layout/fragment_login.xml" value="0.3166496424923391" />
|
||||||
<entry key="app/src/main/res/layout/fragment_player_bottom_sheet.xml" value="0.3166496424923391" />
|
<entry key="app/src/main/res/layout/fragment_player_bottom_sheet.xml" value="0.3166496424923391" />
|
||||||
<entry key="app/src/main/res/layout/fragment_playlist_catalogue.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/fragment_playlist_catalogue.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/fragment_playlist_page.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/fragment_playlist_page.xml" value="0.3229166666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_settings.xml" value="0.3229166666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_song_list_page.xml" value="0.225" />
|
||||||
<entry key="app/src/main/res/layout/item_home_album_placeholder.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/item_home_album_placeholder.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/item_home_discover_song.xml" value="0.3166496424923391" />
|
<entry key="app/src/main/res/layout/item_home_discover_song.xml" value="0.3166496424923391" />
|
||||||
<entry key="app/src/main/res/layout/item_home_discovery_placeholder.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/item_home_discovery_placeholder.xml" value="0.3229166666666667" />
|
||||||
|
|
@ -72,7 +82,14 @@
|
||||||
<entry key="app/src/main/res/layout/item_horizontal_playlist_dialog_track.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/item_horizontal_playlist_dialog_track.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/item_horizontal_track.xml" value="0.5557163531114327" />
|
<entry key="app/src/main/res/layout/item_horizontal_track.xml" value="0.5557163531114327" />
|
||||||
<entry key="app/src/main/res/layout/item_library_album.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/item_library_album.xml" value="0.3229166666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/item_library_artist.xml" value="0.3229166666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/item_library_artist_page_or_similar_album.xml" value="0.3229166666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/item_library_catalogue_album.xml" value="0.3229166666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/item_library_catalogue_artist.xml" value="0.3229166666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/item_library_catalogue_genre.xml" value="0.3229166666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/item_library_catalogue_playlist.xml" value="0.225" />
|
||||||
<entry key="app/src/main/res/layout/item_library_genre.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/item_library_genre.xml" value="0.3229166666666667" />
|
||||||
|
<entry key="app/src/main/res/layout/item_library_similar_artist.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/item_login_server.xml" value="0.25" />
|
<entry key="app/src/main/res/layout/item_login_server.xml" value="0.25" />
|
||||||
<entry key="app/src/main/res/layout/item_placehoder_discovery.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/item_placehoder_discovery.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/item_placeholder_album.xml" value="0.1" />
|
<entry key="app/src/main/res/layout/item_placeholder_album.xml" value="0.1" />
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter<DiscoverSongAdapte
|
||||||
songRepository.getInstantMix(songs.get(getBindingAdapterPosition()), 20, new MediaCallback() {
|
songRepository.getInstantMix(songs.get(getBindingAdapterPosition()), 20, new MediaCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onError(Exception exception) {
|
public void onError(Exception exception) {
|
||||||
Log.e(TAG, "onError: " + exception.getMessage());
|
Log.e(TAG, "onError() " + exception.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ public class PlaylistAdapter extends RecyclerView.Adapter<PlaylistAdapter.ViewHo
|
||||||
Playlist playlist = playlists.get(position);
|
Playlist playlist = playlists.get(position);
|
||||||
|
|
||||||
holder.textPlaylistName.setText(MusicUtil.getReadableString(playlist.getName()));
|
holder.textPlaylistName.setText(MusicUtil.getReadableString(playlist.getName()));
|
||||||
holder.textPlaylistSongCount.setText("Song count: " + playlist.getSongCount());
|
holder.textPlaylistSongCount.setText(R.string.playlist_info_song_count + playlist.getSongCount());
|
||||||
|
|
||||||
CustomGlideRequest.Builder
|
CustomGlideRequest.Builder
|
||||||
.from(context, playlist.getPrimary(), CustomGlideRequest.PLAYLIST_PIC, null)
|
.from(context, playlist.getPrimary(), CustomGlideRequest.PLAYLIST_PIC, null)
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ public class PlaylistHorizontalAdapter extends RecyclerView.Adapter<PlaylistHori
|
||||||
Playlist playlist = playlists.get(position);
|
Playlist playlist = playlists.get(position);
|
||||||
|
|
||||||
holder.playlistTitle.setText(MusicUtil.getReadableString(playlist.getName()));
|
holder.playlistTitle.setText(MusicUtil.getReadableString(playlist.getName()));
|
||||||
holder.playlistTrackCount.setText(MusicUtil.getReadableString(playlist.getSongCount() + " tracks"));
|
holder.playlistTrackCount.setText(playlist.getSongCount() + R.string.playlist_counted_tracks);
|
||||||
holder.playlistDuration.setText(MusicUtil.getReadableDurationString(playlist.getDuration(), false));
|
holder.playlistDuration.setText(MusicUtil.getReadableDurationString(playlist.getDuration(), false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ public class SimilarTrackAdapter extends RecyclerView.Adapter<SimilarTrackAdapte
|
||||||
songRepository.getInstantMix(songs.get(getBindingAdapterPosition()), 20, new MediaCallback() {
|
songRepository.getInstantMix(songs.get(getBindingAdapterPosition()), 20, new MediaCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onError(Exception exception) {
|
public void onError(Exception exception) {
|
||||||
Log.e(TAG, "onError: " + exception.getMessage());
|
Log.e(TAG, "onError() " + exception.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -91,9 +91,9 @@ public class AlbumCatalogueFragment extends Fragment {
|
||||||
|
|
||||||
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
||||||
if ((bind.albumInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
if ((bind.albumInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
||||||
bind.toolbar.setTitle("Albums");
|
bind.toolbar.setTitle(R.string.album_catalogue_title);
|
||||||
} else {
|
} else {
|
||||||
bind.toolbar.setTitle("");
|
bind.toolbar.setTitle(R.string.empty_string);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.cappielloantonio.play.ui.fragment;
|
package com.cappielloantonio.play.ui.fragment;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
@ -11,6 +12,7 @@ import androidx.fragment.app.Fragment;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
|
import com.cappielloantonio.play.R;
|
||||||
import com.cappielloantonio.play.adapter.AlbumHorizontalAdapter;
|
import com.cappielloantonio.play.adapter.AlbumHorizontalAdapter;
|
||||||
import com.cappielloantonio.play.databinding.FragmentAlbumListPageBinding;
|
import com.cappielloantonio.play.databinding.FragmentAlbumListPageBinding;
|
||||||
import com.cappielloantonio.play.model.Album;
|
import com.cappielloantonio.play.model.Album;
|
||||||
|
|
@ -56,19 +58,19 @@ public class AlbumListPageFragment extends Fragment {
|
||||||
private void init() {
|
private void init() {
|
||||||
if (requireArguments().getString(Album.RECENTLY_PLAYED) != null) {
|
if (requireArguments().getString(Album.RECENTLY_PLAYED) != null) {
|
||||||
albumListPageViewModel.title = Album.RECENTLY_PLAYED;
|
albumListPageViewModel.title = Album.RECENTLY_PLAYED;
|
||||||
bind.pageTitleLabel.setText("Recently played albums");
|
bind.pageTitleLabel.setText(R.string.album_list_page_recently_played);
|
||||||
} else if (requireArguments().getString(Album.MOST_PLAYED) != null) {
|
} else if (requireArguments().getString(Album.MOST_PLAYED) != null) {
|
||||||
albumListPageViewModel.title = Album.MOST_PLAYED;
|
albumListPageViewModel.title = Album.MOST_PLAYED;
|
||||||
bind.pageTitleLabel.setText("Most played albums");
|
bind.pageTitleLabel.setText(R.string.album_list_page_most_played);
|
||||||
} else if (requireArguments().getString(Album.RECENTLY_ADDED) != null) {
|
} else if (requireArguments().getString(Album.RECENTLY_ADDED) != null) {
|
||||||
albumListPageViewModel.title = Album.RECENTLY_ADDED;
|
albumListPageViewModel.title = Album.RECENTLY_ADDED;
|
||||||
bind.pageTitleLabel.setText("Recently added albums");
|
bind.pageTitleLabel.setText(R.string.album_list_page_recently_added);
|
||||||
} else if (requireArguments().getString(Album.STARRED) != null) {
|
} else if (requireArguments().getString(Album.STARRED) != null) {
|
||||||
albumListPageViewModel.title = Album.STARRED;
|
albumListPageViewModel.title = Album.STARRED;
|
||||||
bind.pageTitleLabel.setText("Starred albums");
|
bind.pageTitleLabel.setText(R.string.album_list_page_starred);
|
||||||
} else if (requireArguments().getString(Album.DOWNLOADED) != null) {
|
} else if (requireArguments().getString(Album.DOWNLOADED) != null) {
|
||||||
albumListPageViewModel.title = Album.DOWNLOADED;
|
albumListPageViewModel.title = Album.DOWNLOADED;
|
||||||
bind.pageTitleLabel.setText("Downloaded albums");
|
bind.pageTitleLabel.setText(R.string.album_list_page_downloaded);
|
||||||
} else if (requireArguments().getParcelable("artist_object") != null) {
|
} else if (requireArguments().getParcelable("artist_object") != null) {
|
||||||
albumListPageViewModel.artist = requireArguments().getParcelable("artist_object");
|
albumListPageViewModel.artist = requireArguments().getParcelable("artist_object");
|
||||||
albumListPageViewModel.title = Album.FROM_ARTIST;
|
albumListPageViewModel.title = Album.FROM_ARTIST;
|
||||||
|
|
@ -88,9 +90,9 @@ public class AlbumListPageFragment extends Fragment {
|
||||||
|
|
||||||
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
||||||
if ((bind.albumInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
if ((bind.albumInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
||||||
bind.toolbar.setTitle("Albums");
|
bind.toolbar.setTitle(R.string.album_list_page_title);
|
||||||
} else {
|
} else {
|
||||||
bind.toolbar.setTitle("");
|
bind.toolbar.setTitle(R.string.empty_string);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@ public class AlbumPageFragment extends Fragment {
|
||||||
bundle.putParcelable("artist_object", artist);
|
bundle.putParcelable("artist_object", artist);
|
||||||
activity.navController.navigate(R.id.action_albumPageFragment_to_artistPageFragment, bundle);
|
activity.navController.navigate(R.id.action_albumPageFragment_to_artistPageFragment, bundle);
|
||||||
} else
|
} else
|
||||||
Toast.makeText(requireContext(), "Error retrieving artist", Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireContext(), getString(R.string.album_error_retrieving_artist), Toast.LENGTH_SHORT).show();
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -91,9 +91,9 @@ public class ArtistCatalogueFragment extends Fragment {
|
||||||
|
|
||||||
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
||||||
if ((bind.artistInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
if ((bind.artistInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
||||||
bind.toolbar.setTitle("Artists");
|
bind.toolbar.setTitle(R.string.artist_catalogue_title);
|
||||||
} else {
|
} else {
|
||||||
bind.toolbar.setTitle("");
|
bind.toolbar.setTitle(R.string.empty_string);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import androidx.fragment.app.Fragment;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
|
import com.cappielloantonio.play.R;
|
||||||
import com.cappielloantonio.play.adapter.ArtistHorizontalAdapter;
|
import com.cappielloantonio.play.adapter.ArtistHorizontalAdapter;
|
||||||
import com.cappielloantonio.play.databinding.FragmentArtistListPageBinding;
|
import com.cappielloantonio.play.databinding.FragmentArtistListPageBinding;
|
||||||
import com.cappielloantonio.play.model.Artist;
|
import com.cappielloantonio.play.model.Artist;
|
||||||
|
|
@ -55,10 +56,10 @@ public class ArtistListPageFragment extends Fragment {
|
||||||
private void init() {
|
private void init() {
|
||||||
if (requireArguments().getString(Artist.STARRED) != null) {
|
if (requireArguments().getString(Artist.STARRED) != null) {
|
||||||
artistListPageViewModel.title = Artist.STARRED;
|
artistListPageViewModel.title = Artist.STARRED;
|
||||||
bind.pageTitleLabel.setText("Starred artists");
|
bind.pageTitleLabel.setText(R.string.artist_list_page_starred);
|
||||||
} else if (requireArguments().getString(Artist.DOWNLOADED) != null) {
|
} else if (requireArguments().getString(Artist.DOWNLOADED) != null) {
|
||||||
artistListPageViewModel.title = Artist.DOWNLOADED;
|
artistListPageViewModel.title = Artist.DOWNLOADED;
|
||||||
bind.pageTitleLabel.setText("Downloaded artists");
|
bind.pageTitleLabel.setText(R.string.artist_list_page_downloaded);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -74,9 +75,9 @@ public class ArtistListPageFragment extends Fragment {
|
||||||
|
|
||||||
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
||||||
if ((bind.artistInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
if ((bind.artistInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
||||||
bind.toolbar.setTitle("Artists");
|
bind.toolbar.setTitle(R.string.artist_list_page_title);
|
||||||
} else {
|
} else {
|
||||||
bind.toolbar.setTitle("");
|
bind.toolbar.setTitle(R.string.empty_string);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -145,7 +145,7 @@ public class ArtistPageFragment extends Fragment {
|
||||||
MusicPlayerRemote.openQueue(songs, 0, true);
|
MusicPlayerRemote.openQueue(songs, 0, true);
|
||||||
activity.isBottomSheetInPeek(true);
|
activity.isBottomSheetInPeek(true);
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(requireContext(), "Error retrieving artist's songs", Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireContext(), getString(R.string.artist_error_retrieving_tracks), Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
@ -155,7 +155,7 @@ public class ArtistPageFragment extends Fragment {
|
||||||
artistRepository.getInstantMix(artistPageViewModel.getArtist(), 20, new MediaCallback() {
|
artistRepository.getInstantMix(artistPageViewModel.getArtist(), 20, new MediaCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onError(Exception exception) {
|
public void onError(Exception exception) {
|
||||||
Log.e(TAG, "onError: " + exception.getMessage());
|
Log.e(TAG, "onError() " + exception.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -169,7 +169,7 @@ public class ArtistPageFragment extends Fragment {
|
||||||
|
|
||||||
MusicPlayerRemote.openQueue((List<Song>) media, 0, true);
|
MusicPlayerRemote.openQueue((List<Song>) media, 0, true);
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(requireContext(), "Error retrieving artist's radio", Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireContext(), getString(R.string.artist_error_retrieving_radio), Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ public class FilterFragment extends Fragment {
|
||||||
if (filterViewModel.getFilters().size() > 1)
|
if (filterViewModel.getFilters().size() > 1)
|
||||||
activity.navController.navigate(R.id.action_filterFragment_to_songListPageFragment, bundle);
|
activity.navController.navigate(R.id.action_filterFragment_to_songListPageFragment, bundle);
|
||||||
else
|
else
|
||||||
Toast.makeText(requireContext(), "Select two or more filters", Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireContext(), getString(R.string.filter_info_selection), Toast.LENGTH_SHORT).show();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -81,9 +81,9 @@ public class FilterFragment extends Fragment {
|
||||||
|
|
||||||
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
||||||
if ((bind.genreFilterInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
if ((bind.genreFilterInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
||||||
bind.toolbar.setTitle("Filter");
|
bind.toolbar.setTitle(R.string.filter_title);
|
||||||
} else {
|
} else {
|
||||||
bind.toolbar.setTitle("");
|
bind.toolbar.setTitle(R.string.empty_string);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -91,9 +91,9 @@ public class GenreCatalogueFragment extends Fragment {
|
||||||
|
|
||||||
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
||||||
if ((bind.genreInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
if ((bind.genreInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
||||||
bind.toolbar.setTitle("Genre Catalogue");
|
bind.toolbar.setTitle(R.string.genre_catalogue_title);
|
||||||
} else {
|
} else {
|
||||||
bind.toolbar.setTitle("");
|
bind.toolbar.setTitle(R.string.empty_string);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -69,9 +69,9 @@ public class LoginFragment extends Fragment {
|
||||||
|
|
||||||
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
||||||
if ((bind.serverInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
if ((bind.serverInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
||||||
bind.toolbar.setTitle("Subsonic servers");
|
bind.toolbar.setTitle(R.string.login_title);
|
||||||
} else {
|
} else {
|
||||||
bind.toolbar.setTitle("");
|
bind.toolbar.setTitle(R.string.empty_string);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -93,9 +93,9 @@ public class PlaylistCatalogueFragment extends Fragment {
|
||||||
|
|
||||||
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
||||||
if ((bind.albumInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
if ((bind.albumInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
||||||
bind.toolbar.setTitle("Playlist Catalogue");
|
bind.toolbar.setTitle(R.string.playlist_catalogue_title);
|
||||||
} else {
|
} else {
|
||||||
bind.toolbar.setTitle("");
|
bind.toolbar.setTitle(R.string.empty_string);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -109,8 +109,8 @@ public class PlaylistPageFragment extends Fragment {
|
||||||
bind.animToolbar.setTitle(MusicUtil.getReadableString(playlistPageViewModel.getPlaylist().getName()));
|
bind.animToolbar.setTitle(MusicUtil.getReadableString(playlistPageViewModel.getPlaylist().getName()));
|
||||||
|
|
||||||
bind.playlistNameLabel.setText(MusicUtil.getReadableString(playlistPageViewModel.getPlaylist().getName()));
|
bind.playlistNameLabel.setText(MusicUtil.getReadableString(playlistPageViewModel.getPlaylist().getName()));
|
||||||
bind.playlistSongCountLabel.setText("Song count: " + playlistPageViewModel.getPlaylist().getSongCount());
|
bind.playlistSongCountLabel.setText(getString(R.string.playlist_song_count) + playlistPageViewModel.getPlaylist().getSongCount());
|
||||||
bind.playlistDurationLabel.setText("Playlist duration: " + MusicUtil.getReadableDurationString(playlistPageViewModel.getPlaylist().getDuration(), false));
|
bind.playlistDurationLabel.setText(getString(R.string.playlist_duration) + MusicUtil.getReadableDurationString(playlistPageViewModel.getPlaylist().getDuration(), false));
|
||||||
|
|
||||||
if (playlistPageViewModel.isOffline()) {
|
if (playlistPageViewModel.isOffline()) {
|
||||||
bind.playlistSongCountLabel.setVisibility(View.GONE);
|
bind.playlistSongCountLabel.setVisibility(View.GONE);
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import androidx.fragment.app.Fragment;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
|
import com.cappielloantonio.play.R;
|
||||||
import com.cappielloantonio.play.adapter.AlbumAdapter;
|
import com.cappielloantonio.play.adapter.AlbumAdapter;
|
||||||
import com.cappielloantonio.play.adapter.ArtistAdapter;
|
import com.cappielloantonio.play.adapter.ArtistAdapter;
|
||||||
import com.cappielloantonio.play.adapter.SongHorizontalAdapter;
|
import com.cappielloantonio.play.adapter.SongHorizontalAdapter;
|
||||||
|
|
@ -129,7 +130,7 @@ public class SearchFragment extends Fragment {
|
||||||
searchView.collapse();
|
searchView.collapse();
|
||||||
search(query);
|
search(query);
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(requireContext(), "Enter at least three characters", Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireContext(), getString(R.string.search_info_minimum_characters), Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import androidx.lifecycle.ViewModelProvider;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import com.cappielloantonio.play.App;
|
import com.cappielloantonio.play.App;
|
||||||
|
import com.cappielloantonio.play.R;
|
||||||
import com.cappielloantonio.play.adapter.SongHorizontalAdapter;
|
import com.cappielloantonio.play.adapter.SongHorizontalAdapter;
|
||||||
import com.cappielloantonio.play.databinding.FragmentSongListPageBinding;
|
import com.cappielloantonio.play.databinding.FragmentSongListPageBinding;
|
||||||
import com.cappielloantonio.play.model.Song;
|
import com.cappielloantonio.play.model.Song;
|
||||||
|
|
@ -62,21 +63,21 @@ public class SongListPageFragment extends Fragment {
|
||||||
private void init() {
|
private void init() {
|
||||||
if (requireArguments().getString(Song.RECENTLY_PLAYED) != null) {
|
if (requireArguments().getString(Song.RECENTLY_PLAYED) != null) {
|
||||||
songListPageViewModel.title = Song.RECENTLY_PLAYED;
|
songListPageViewModel.title = Song.RECENTLY_PLAYED;
|
||||||
bind.pageTitleLabel.setText("Recently played tracks");
|
bind.pageTitleLabel.setText(R.string.song_list_page_recently_played);
|
||||||
} else if (requireArguments().getString(Song.MOST_PLAYED) != null) {
|
} else if (requireArguments().getString(Song.MOST_PLAYED) != null) {
|
||||||
songListPageViewModel.title = Song.MOST_PLAYED;
|
songListPageViewModel.title = Song.MOST_PLAYED;
|
||||||
bind.pageTitleLabel.setText("Most played tracks");
|
bind.pageTitleLabel.setText(R.string.song_list_page_most_played);
|
||||||
} else if (requireArguments().getString(Song.RECENTLY_ADDED) != null) {
|
} else if (requireArguments().getString(Song.RECENTLY_ADDED) != null) {
|
||||||
songListPageViewModel.title = Song.RECENTLY_ADDED;
|
songListPageViewModel.title = Song.RECENTLY_ADDED;
|
||||||
bind.pageTitleLabel.setText("Recently added tracks");
|
bind.pageTitleLabel.setText(R.string.song_list_page_recently_added);
|
||||||
} else if (requireArguments().getString(Song.BY_GENRE) != null) {
|
} else if (requireArguments().getString(Song.BY_GENRE) != null) {
|
||||||
songListPageViewModel.title = Song.BY_GENRE;
|
songListPageViewModel.title = Song.BY_GENRE;
|
||||||
songListPageViewModel.genre = requireArguments().getParcelable("genre_object");
|
songListPageViewModel.genre = requireArguments().getParcelable("genre_object");
|
||||||
bind.pageTitleLabel.setText(MusicUtil.getReadableString(songListPageViewModel.genre.getName()) + ": all tracks");
|
bind.pageTitleLabel.setText(MusicUtil.getReadableString(songListPageViewModel.genre.getName()) + getString(R.string.song_list_page_all));
|
||||||
} else if (requireArguments().getString(Song.BY_ARTIST) != null) {
|
} else if (requireArguments().getString(Song.BY_ARTIST) != null) {
|
||||||
songListPageViewModel.title = Song.BY_ARTIST;
|
songListPageViewModel.title = Song.BY_ARTIST;
|
||||||
songListPageViewModel.artist = requireArguments().getParcelable("artist_object");
|
songListPageViewModel.artist = requireArguments().getParcelable("artist_object");
|
||||||
bind.pageTitleLabel.setText(MusicUtil.getReadableString(songListPageViewModel.artist.getName()) + "'s top tracks");
|
bind.pageTitleLabel.setText(MusicUtil.getReadableString(songListPageViewModel.artist.getName()) + getString(R.string.song_list_page_top));
|
||||||
} else if (requireArguments().getString(Song.BY_GENRES) != null) {
|
} else if (requireArguments().getString(Song.BY_GENRES) != null) {
|
||||||
songListPageViewModel.title = Song.BY_GENRES;
|
songListPageViewModel.title = Song.BY_GENRES;
|
||||||
songListPageViewModel.filters = requireArguments().getStringArrayList("filters_list");
|
songListPageViewModel.filters = requireArguments().getStringArrayList("filters_list");
|
||||||
|
|
@ -85,13 +86,13 @@ public class SongListPageFragment extends Fragment {
|
||||||
} else if (requireArguments().getString(Song.BY_YEAR) != null) {
|
} else if (requireArguments().getString(Song.BY_YEAR) != null) {
|
||||||
songListPageViewModel.title = Song.BY_YEAR;
|
songListPageViewModel.title = Song.BY_YEAR;
|
||||||
songListPageViewModel.year = requireArguments().getInt("year_object");
|
songListPageViewModel.year = requireArguments().getInt("year_object");
|
||||||
bind.pageTitleLabel.setText("Year " + songListPageViewModel.year);
|
bind.pageTitleLabel.setText(getString(R.string.song_list_page_year) + songListPageViewModel.year);
|
||||||
} else if (requireArguments().getString(Song.STARRED) != null) {
|
} else if (requireArguments().getString(Song.STARRED) != null) {
|
||||||
songListPageViewModel.title = Song.STARRED;
|
songListPageViewModel.title = Song.STARRED;
|
||||||
bind.pageTitleLabel.setText("Starred tracks");
|
bind.pageTitleLabel.setText(R.string.song_list_page_starred);
|
||||||
} else if (requireArguments().getString(Song.DOWNLOADED) != null) {
|
} else if (requireArguments().getString(Song.DOWNLOADED) != null) {
|
||||||
songListPageViewModel.title = Song.DOWNLOADED;
|
songListPageViewModel.title = Song.DOWNLOADED;
|
||||||
bind.pageTitleLabel.setText("Downloaded");
|
bind.pageTitleLabel.setText(R.string.song_list_page_downloaded);
|
||||||
} else if (requireArguments().getParcelable("album_object") != null) {
|
} else if (requireArguments().getParcelable("album_object") != null) {
|
||||||
songListPageViewModel.album = requireArguments().getParcelable("album_object");
|
songListPageViewModel.album = requireArguments().getParcelable("album_object");
|
||||||
songListPageViewModel.title = Song.FROM_ALBUM;
|
songListPageViewModel.title = Song.FROM_ALBUM;
|
||||||
|
|
@ -111,9 +112,9 @@ public class SongListPageFragment extends Fragment {
|
||||||
|
|
||||||
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> {
|
||||||
if ((bind.albumInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
if ((bind.albumInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) {
|
||||||
bind.toolbar.setTitle("Songs");
|
bind.toolbar.setTitle(R.string.song_list_page_title);
|
||||||
} else {
|
} else {
|
||||||
bind.toolbar.setTitle("");
|
bind.toolbar.setTitle(R.string.empty_string);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements
|
||||||
albumRepository.getInstantMix(album, 20, new MediaCallback() {
|
albumRepository.getInstantMix(album, 20, new MediaCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onError(Exception exception) {
|
public void onError(Exception exception) {
|
||||||
Log.e(TAG, "onError: " + exception.getMessage());
|
Log.e(TAG, "onError() " + exception.getMessage());
|
||||||
|
|
||||||
dismissBottomSheet();
|
dismissBottomSheet();
|
||||||
}
|
}
|
||||||
|
|
@ -99,7 +99,7 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements
|
||||||
|
|
||||||
MusicPlayerRemote.openQueue((List<Song>) media, 0, true);
|
MusicPlayerRemote.openQueue((List<Song>) media, 0, true);
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(requireContext(), "Error retrieving album's radio", Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireContext(), getString(R.string.album_error_retrieving_radio), Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
dismissBottomSheet();
|
dismissBottomSheet();
|
||||||
|
|
@ -162,7 +162,7 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements
|
||||||
bundle.putParcelable("artist_object", artist);
|
bundle.putParcelable("artist_object", artist);
|
||||||
NavHostFragment.findNavController(this).navigate(R.id.artistPageFragment, bundle);
|
NavHostFragment.findNavController(this).navigate(R.id.artistPageFragment, bundle);
|
||||||
} else
|
} else
|
||||||
Toast.makeText(requireContext(), "Error retrieving artist", Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireContext(), getString(R.string.album_error_retrieving_artist), Toast.LENGTH_SHORT).show();
|
||||||
|
|
||||||
dismissBottomSheet();
|
dismissBottomSheet();
|
||||||
}));
|
}));
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement
|
||||||
artistRepository.getInstantMix(artist, 20, new MediaCallback() {
|
artistRepository.getInstantMix(artist, 20, new MediaCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onError(Exception exception) {
|
public void onError(Exception exception) {
|
||||||
Log.e(TAG, "onError: " + exception.getMessage());
|
Log.e(TAG, "onError() " + exception.getMessage());
|
||||||
|
|
||||||
dismissBottomSheet();
|
dismissBottomSheet();
|
||||||
}
|
}
|
||||||
|
|
@ -93,7 +93,7 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement
|
||||||
|
|
||||||
MusicPlayerRemote.openQueue((List<Song>) media, 0, true);
|
MusicPlayerRemote.openQueue((List<Song>) media, 0, true);
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(requireContext(), "Error retrieving artist's radio", Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireContext(), getString(R.string.artist_error_retrieving_radio), Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
dismissBottomSheet();
|
dismissBottomSheet();
|
||||||
|
|
@ -112,7 +112,7 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement
|
||||||
MusicPlayerRemote.openQueue(songs, 0, true);
|
MusicPlayerRemote.openQueue(songs, 0, true);
|
||||||
((MainActivity) requireActivity()).isBottomSheetInPeek(true);
|
((MainActivity) requireActivity()).isBottomSheetInPeek(true);
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(requireContext(), "Error retrieving artist's songs", Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireContext(), getString(R.string.artist_error_retrieving_tracks), Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
dismissBottomSheet();
|
dismissBottomSheet();
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements
|
||||||
songRepository.getInstantMix(song, 20, new MediaCallback() {
|
songRepository.getInstantMix(song, 20, new MediaCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onError(Exception exception) {
|
public void onError(Exception exception) {
|
||||||
Log.e(TAG, "onError: " + exception.getMessage());
|
Log.e(TAG, "onError() " + exception.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -177,7 +177,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements
|
||||||
bundle.putParcelable("album_object", album);
|
bundle.putParcelable("album_object", album);
|
||||||
NavHostFragment.findNavController(this).navigate(R.id.albumPageFragment, bundle);
|
NavHostFragment.findNavController(this).navigate(R.id.albumPageFragment, bundle);
|
||||||
} else
|
} else
|
||||||
Toast.makeText(requireContext(), "Error retrieving album", Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireContext(), getString(R.string.song_bottom_sheet_error_retrieving_album), Toast.LENGTH_SHORT).show();
|
||||||
|
|
||||||
dismissBottomSheet();
|
dismissBottomSheet();
|
||||||
}));
|
}));
|
||||||
|
|
@ -189,7 +189,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements
|
||||||
bundle.putParcelable("artist_object", artist);
|
bundle.putParcelable("artist_object", artist);
|
||||||
NavHostFragment.findNavController(this).navigate(R.id.artistPageFragment, bundle);
|
NavHostFragment.findNavController(this).navigate(R.id.artistPageFragment, bundle);
|
||||||
} else
|
} else
|
||||||
Toast.makeText(requireContext(), "Error retrieving artist", Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireContext(), getString(R.string.song_bottom_sheet_error_retrieving_artist), Toast.LENGTH_SHORT).show();
|
||||||
|
|
||||||
dismissBottomSheet();
|
dismissBottomSheet();
|
||||||
}));
|
}));
|
||||||
|
|
|
||||||
|
|
@ -35,10 +35,10 @@ public class PlaylistChooserDialog extends DialogFragment {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
|
||||||
|
|
||||||
builder.setView(bind.getRoot())
|
builder.setView(bind.getRoot())
|
||||||
.setTitle("Add to a playlist")
|
.setTitle(R.string.playlist_chooser_dialog_title)
|
||||||
.setNeutralButton("Create", (dialog, id) -> {
|
.setNeutralButton(R.string.playlist_chooser_dialog_neutral_button, (dialog, id) -> {
|
||||||
})
|
})
|
||||||
.setNegativeButton("Cancel", (dialog, id) -> dialog.cancel());
|
.setNegativeButton(R.string.playlist_chooser_dialog_negative_button, (dialog, id) -> dialog.cancel());
|
||||||
|
|
||||||
return builder.create();
|
return builder.create();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,11 +40,11 @@ public class PlaylistEditorDialog extends DialogFragment {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
|
||||||
|
|
||||||
builder.setView(bind.getRoot())
|
builder.setView(bind.getRoot())
|
||||||
.setTitle("Create playlist")
|
.setTitle(R.string.playlist_editor_dialog_title)
|
||||||
.setPositiveButton("Save", (dialog, id) -> {
|
.setPositiveButton(R.string.playlist_editor_dialog_positive_button, (dialog, id) -> {
|
||||||
})
|
})
|
||||||
.setNeutralButton("Delete", (dialog, id) -> dialog.cancel())
|
.setNeutralButton(R.string.playlist_editor_dialog_neutral_button, (dialog, id) -> dialog.cancel())
|
||||||
.setNegativeButton("Cancel", (dialog, id) -> dialog.cancel());
|
.setNegativeButton(R.string.playlist_editor_dialog_negative_button, (dialog, id) -> dialog.cancel());
|
||||||
|
|
||||||
return builder.create();
|
return builder.create();
|
||||||
}
|
}
|
||||||
|
|
@ -157,7 +157,7 @@ public class PlaylistEditorDialog extends DialogFragment {
|
||||||
playlistName = Objects.requireNonNull(bind.playlistNameTextView.getText()).toString().trim();
|
playlistName = Objects.requireNonNull(bind.playlistNameTextView.getText()).toString().trim();
|
||||||
|
|
||||||
if (TextUtils.isEmpty(playlistName)) {
|
if (TextUtils.isEmpty(playlistName)) {
|
||||||
bind.playlistNameTextView.setError("Required");
|
bind.playlistNameTextView.setError(getString(R.string.error_required));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,9 +30,9 @@ public class RatingDialog extends DialogFragment {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
|
||||||
|
|
||||||
builder.setView(bind.getRoot())
|
builder.setView(bind.getRoot())
|
||||||
.setTitle("Rate")
|
.setTitle(R.string.rating_dialog_title)
|
||||||
.setNegativeButton("Cancel", (dialog, id) -> dialog.cancel())
|
.setNegativeButton(R.string.rating_dialog_negative_button, (dialog, id) -> dialog.cancel())
|
||||||
.setPositiveButton("Save", (dialog, id) -> ratingViewModel.rate((int) bind.ratingBar.getRating()));
|
.setPositiveButton(R.string.rating_dialog_positive_button, (dialog, id) -> ratingViewModel.rate((int) bind.ratingBar.getRating()));
|
||||||
|
|
||||||
return builder.create();
|
return builder.create();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -56,12 +56,12 @@ public class ServerSignupDialog extends DialogFragment {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
|
||||||
|
|
||||||
builder.setView(bind.getRoot())
|
builder.setView(bind.getRoot())
|
||||||
.setTitle("Add server")
|
.setTitle(R.string.server_signup_dialog_title)
|
||||||
.setNeutralButton("Delete", (dialog, id) -> {
|
.setNeutralButton(R.string.server_signup_dialog_neutral_button, (dialog, id) -> {
|
||||||
})
|
})
|
||||||
.setPositiveButton("Save", (dialog, id) -> {
|
.setPositiveButton(R.string.server_signup_dialog_positive_button, (dialog, id) -> {
|
||||||
})
|
})
|
||||||
.setNegativeButton("Cancel", (dialog, id) -> dialog.cancel());
|
.setNegativeButton(R.string.server_signup_dialog_negative_button, (dialog, id) -> dialog.cancel());
|
||||||
|
|
||||||
return builder.create();
|
return builder.create();
|
||||||
}
|
}
|
||||||
|
|
@ -119,17 +119,17 @@ public class ServerSignupDialog extends DialogFragment {
|
||||||
directAccess = bind.directAccessCheckbox.isChecked();
|
directAccess = bind.directAccessCheckbox.isChecked();
|
||||||
|
|
||||||
if (TextUtils.isEmpty(serverName)) {
|
if (TextUtils.isEmpty(serverName)) {
|
||||||
bind.serverNameTextView.setError("Required");
|
bind.serverNameTextView.setError(getString(R.string.error_required));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TextUtils.isEmpty(username)) {
|
if (TextUtils.isEmpty(username)) {
|
||||||
bind.usernameTextView.setError("Required");
|
bind.usernameTextView.setError(getString(R.string.error_required));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TextUtils.isEmpty(server)) {
|
if (TextUtils.isEmpty(server)) {
|
||||||
bind.serverTextView.setError("Required");
|
bind.serverTextView.setError(getString(R.string.error_required));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@color/colorAccent"
|
android:background="@color/colorAccent"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="Offline mode"
|
android:text="@string/activity_info_offline_mode"
|
||||||
android:textColor="@android:color/white"
|
android:textColor="@android:color/white"
|
||||||
android:textSize="6sp"
|
android:textSize="6sp"
|
||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Instant mix"
|
android:text="@string/album_bottom_sheet_instant_mix"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -114,7 +114,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Riproduzione casuale"
|
android:text="@string/album_bottom_sheet_shuffle"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -130,7 +130,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Riproduci dopo"
|
android:text="@string/album_bottom_sheet_play_next"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -146,7 +146,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Aggiungi alla coda"
|
android:text="@string/album_bottom_sheet_add_to_queue"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -162,7 +162,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Scarica tutte"
|
android:text="@string/album_bottom_sheet_download_all"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -178,7 +178,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Rimuovi tutte"
|
android:text="@string/album_bottom_sheet_remove_all"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -194,7 +194,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Vai all'artista"
|
android:text="@string/album_bottom_sheet_go_to_artist"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Instant mix"
|
android:text="@string/artist_bottom_sheet_instant_mix"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -101,7 +101,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Riproduzione casuale"
|
android:text="@string/artist_bottom_sheet_shuffle"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Instant mix"
|
android:text="@string/song_bottom_sheet_instant_mix"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -115,7 +115,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Riproduci dopo"
|
android:text="@string/song_bottom_sheet_play_next"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -131,7 +131,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Aggiungi alla coda"
|
android:text="@string/song_bottom_sheet_add_to_queue"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -147,7 +147,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Valuta"
|
android:text="@string/song_bottom_sheet_rate"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -163,7 +163,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Scarica"
|
android:text="@string/song_bottom_sheet_download"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -179,7 +179,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Rimuovi"
|
android:text="@string/song_bottom_sheet_remove"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -195,7 +195,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Aggiungi alla playlist"
|
android:text="@string/song_bottom_sheet_add_to_playlist"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -211,7 +211,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Vai all'album"
|
android:text="@string/song_bottom_sheet_go_to_album"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
@ -227,7 +227,7 @@
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:text="Vai all'artista"
|
android:text="@string/song_bottom_sheet_go_to_artist"
|
||||||
android:textColor="@color/titleTextColor"
|
android:textColor="@color/titleTextColor"
|
||||||
android:textFontWeight="700"
|
android:textFontWeight="700"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
android:paddingTop="16dp"
|
android:paddingTop="16dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="No playlists created"
|
android:text="@string/playlist_chooser_dialog_empty"
|
||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
android:id="@+id/playlist_name_text_view"
|
android:id="@+id/playlist_name_text_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:hint="Playlist Name"
|
android:hint="@string/playlist_editor_dialog_hint_name"
|
||||||
android:inputType="textNoSuggestions"
|
android:inputType="textNoSuggestions"
|
||||||
android:textCursorDrawable="@null" />
|
android:textCursorDrawable="@null" />
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
android:id="@+id/server_name_text_view"
|
android:id="@+id/server_name_text_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:hint="Server Name"
|
android:hint="@string/server_signup_dialog_hint_name"
|
||||||
android:inputType="textNoSuggestions"
|
android:inputType="textNoSuggestions"
|
||||||
android:text="Navidrome"
|
android:text="Navidrome"
|
||||||
android:textCursorDrawable="@null" />
|
android:textCursorDrawable="@null" />
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
android:id="@+id/username_text_view"
|
android:id="@+id/username_text_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:hint="Username"
|
android:hint="@string/server_signup_dialog_hint_username"
|
||||||
android:inputType="textShortMessage"
|
android:inputType="textShortMessage"
|
||||||
android:text="antonio"
|
android:text="antonio"
|
||||||
android:textCursorDrawable="@null"/>
|
android:textCursorDrawable="@null"/>
|
||||||
|
|
@ -72,7 +72,7 @@
|
||||||
android:id="@+id/password_text_view"
|
android:id="@+id/password_text_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:hint="Password"
|
android:hint="@string/server_signup_dialog_hint_password"
|
||||||
android:inputType="textPassword"
|
android:inputType="textPassword"
|
||||||
android:text="!$4EBXhSPUi4$E#oagvAisCA"
|
android:text="!$4EBXhSPUi4$E#oagvAisCA"
|
||||||
android:textCursorDrawable="@null"/>
|
android:textCursorDrawable="@null"/>
|
||||||
|
|
@ -96,7 +96,7 @@
|
||||||
android:id="@+id/server_text_view"
|
android:id="@+id/server_text_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:hint="Server URL"
|
android:hint="@string/server_signup_dialog_hint_url"
|
||||||
android:inputType="textNoSuggestions"
|
android:inputType="textNoSuggestions"
|
||||||
android:text="http://192.168.1.81:4533"
|
android:text="http://192.168.1.81:4533"
|
||||||
android:textCursorDrawable="@null"/>
|
android:textCursorDrawable="@null"/>
|
||||||
|
|
@ -108,5 +108,5 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="24dp"
|
android:layout_marginStart="24dp"
|
||||||
android:layout_marginEnd="24dp"
|
android:layout_marginEnd="24dp"
|
||||||
android:text="Direct access"/>
|
android:text="@string/server_signup_dialog_action_direct_access"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
android:paddingTop="16dp"
|
android:paddingTop="16dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:paddingBottom="24dp"
|
android:paddingBottom="24dp"
|
||||||
android:text="Browse Albums"
|
android:text="@string/album_catalogue_title_expanded"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toEndOf="parent" />
|
app:layout_constraintStart_toEndOf="parent" />
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,7 @@
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:backgroundTint="@color/buttonBackgroundColor"
|
android:backgroundTint="@color/buttonBackgroundColor"
|
||||||
android:padding="10dp"
|
android:padding="10dp"
|
||||||
android:text="Play"
|
android:text="@string/album_page_play_button"
|
||||||
android:textAllCaps="false"
|
android:textAllCaps="false"
|
||||||
app:icon="@drawable/ic_play"
|
app:icon="@drawable/ic_play"
|
||||||
app:iconGravity="textStart"
|
app:iconGravity="textStart"
|
||||||
|
|
@ -137,7 +137,7 @@
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:backgroundTint="@color/buttonBackgroundColor"
|
android:backgroundTint="@color/buttonBackgroundColor"
|
||||||
android:padding="10dp"
|
android:padding="10dp"
|
||||||
android:text="Shuffle"
|
android:text="@string/album_page_shuffle_button"
|
||||||
android:textAllCaps="false"
|
android:textAllCaps="false"
|
||||||
app:icon="@drawable/ic_shuffle"
|
app:icon="@drawable/ic_shuffle"
|
||||||
app:iconGravity="textStart"
|
app:iconGravity="textStart"
|
||||||
|
|
@ -199,7 +199,7 @@
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingTop="32dp"
|
android:paddingTop="32dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:text="More like this" />
|
android:text="@string/album_page_extra_info_button" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/similar_albums_recycler_view"
|
android:id="@+id/similar_albums_recycler_view"
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
android:paddingTop="16dp"
|
android:paddingTop="16dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:paddingBottom="24dp"
|
android:paddingBottom="24dp"
|
||||||
android:text="Browse Artists"
|
android:text="@string/artist_catalogue_title_expanded"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toEndOf="parent" />
|
app:layout_constraintStart_toEndOf="parent" />
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:backgroundTint="@color/buttonBackgroundColor"
|
android:backgroundTint="@color/buttonBackgroundColor"
|
||||||
android:padding="10dp"
|
android:padding="10dp"
|
||||||
android:text="Shuffle"
|
android:text="@string/artist_page_shuffle_button"
|
||||||
android:textAllCaps="false"
|
android:textAllCaps="false"
|
||||||
app:icon="@drawable/ic_shuffle"
|
app:icon="@drawable/ic_shuffle"
|
||||||
app:iconGravity="textStart"
|
app:iconGravity="textStart"
|
||||||
|
|
@ -101,7 +101,7 @@
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:backgroundTint="@color/buttonBackgroundColor"
|
android:backgroundTint="@color/buttonBackgroundColor"
|
||||||
android:padding="10dp"
|
android:padding="10dp"
|
||||||
android:text="Radio"
|
android:text="@string/artist_page_radio_button"
|
||||||
android:textAllCaps="false"
|
android:textAllCaps="false"
|
||||||
app:icon="@drawable/ic_feed"
|
app:icon="@drawable/ic_feed"
|
||||||
app:iconGravity="textStart"
|
app:iconGravity="textStart"
|
||||||
|
|
@ -135,7 +135,7 @@
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="Biography" />
|
android:text="@string/artist_page_title_biography_section" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/bio_more_text_view_clickable"
|
android:id="@+id/bio_more_text_view_clickable"
|
||||||
|
|
@ -143,7 +143,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:text="More" />
|
android:text="@string/artist_page_title_biography_more_button" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -177,7 +177,7 @@
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="Most Streamed Songs" />
|
android:text="@string/artist_page_title_most_streamed_song_section" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/most_streamed_song_text_view_clickable"
|
android:id="@+id/most_streamed_song_text_view_clickable"
|
||||||
|
|
@ -185,7 +185,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:text="See all" />
|
android:text="@string/artist_page_title_most_streamed_song_see_all_button" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
|
@ -211,7 +211,7 @@
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingTop="8dp"
|
android:paddingTop="8dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:text="Albums" />
|
android:text="@string/artist_page_title_album_section" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/albums_recycler_view"
|
android:id="@+id/albums_recycler_view"
|
||||||
|
|
@ -239,7 +239,7 @@
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingTop="8dp"
|
android:paddingTop="8dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:text="More like this" />
|
android:text="@string/artist_page_title_album_more_like_this_button" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/similar_artists_recycler_view"
|
android:id="@+id/similar_artists_recycler_view"
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:text="No downloads yet!" />
|
android:text="@string/download_info_empty_title" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/subtitle_download_screen"
|
android:id="@+id/subtitle_download_screen"
|
||||||
|
|
@ -74,7 +74,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingStart="56dp"
|
android:paddingStart="56dp"
|
||||||
android:paddingEnd="56dp"
|
android:paddingEnd="56dp"
|
||||||
android:text="Once you download a song, you'll find it here" />
|
android:text="@string/download_info_empty_subtitle" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
<androidx.core.widget.NestedScrollView
|
||||||
|
|
@ -115,7 +115,7 @@
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="Artists" />
|
android:text="@string/download_title_artist_section" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -125,7 +125,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/download_title_artist_see_all_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -170,7 +170,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="Albums" />
|
android:text="@string/download_title_album_section" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -181,7 +181,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/download_title_album_see_all" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -226,7 +226,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="Tracks" />
|
android:text="@string/download_title_tracks_section" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -237,7 +237,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/download_title_tracks_see_all_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -282,7 +282,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="Playlists" />
|
android:text="@string/download_title_playlist_section" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -293,7 +293,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/download_title_playlist_see_all_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
android:paddingTop="16dp"
|
android:paddingTop="16dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:paddingBottom="24dp"
|
android:paddingBottom="24dp"
|
||||||
android:text="Filter Genres"
|
android:text="@string/filter_title_expanded"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
android:paddingTop="16dp"
|
android:paddingTop="16dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:paddingBottom="24dp"
|
android:paddingBottom="24dp"
|
||||||
android:text="Browse Genres"
|
android:text="@string/genre_catalogue_title_expanded"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:text="Music discovery" />
|
android:text="@string/home_title_music_discovery" />
|
||||||
|
|
||||||
<!-- slideview -->
|
<!-- slideview -->
|
||||||
<androidx.viewpager2.widget.ViewPager2
|
<androidx.viewpager2.widget.ViewPager2
|
||||||
|
|
@ -101,7 +101,7 @@
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingTop="20dp"
|
android:paddingTop="20dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:text="Start mix from a song you liked"
|
android:text="@string/home_subtitle_made_for_you"
|
||||||
android:textAllCaps="true" />
|
android:textAllCaps="true" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -111,7 +111,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:text="Made for you" />
|
android:text="@string/home_title_made_for_you" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/similar_tracks_recycler_view"
|
android:id="@+id/similar_tracks_recycler_view"
|
||||||
|
|
@ -157,7 +157,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="Most played" />
|
android:text="@string/home_title_most_played" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -168,7 +168,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/home_title_most_played_see_all_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -215,7 +215,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="Last played" />
|
android:text="@string/home_title_last_played" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -226,7 +226,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/home_title_last_played_see_all_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -263,7 +263,7 @@
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingTop="20dp"
|
android:paddingTop="20dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:text="Flashback" />
|
android:text="@string/home_title_flashback" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/years_recycler_view"
|
android:id="@+id/years_recycler_view"
|
||||||
|
|
@ -308,7 +308,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="★ Starred tracks" />
|
android:text="@string/home_title_starred_tracks" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -319,7 +319,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/home_title_starred_tracks_see_all_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -363,7 +363,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="★ Starred albums" />
|
android:text="@string/home_title_starred_albums" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -374,7 +374,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/home_title_starred_albums_see_all_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -418,7 +418,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="★ Starred artists" />
|
android:text="@string/home_title_starred_artists" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -429,7 +429,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/home_title_starred_artists_see_all_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -474,7 +474,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="Recently added" />
|
android:text="@string/home_title_recently_added" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -485,7 +485,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/home_title_recently_added_see_all_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:text="New releases" />
|
android:text="@string/library_title_new_releases" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/new_releases_recycler_view"
|
android:id="@+id/new_releases_recycler_view"
|
||||||
|
|
@ -110,7 +110,7 @@
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="Albums" />
|
android:text="@string/library_title_album" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -120,7 +120,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/library_title_album_see_all_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -168,7 +168,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="Artists" />
|
android:text="@string/library_title_artist" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -179,7 +179,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/library_title_artist_see_all_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -227,7 +227,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="Genres" />
|
android:text="@string/library_title_genre" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -238,7 +238,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/library_title_genre_see_all_button" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
|
@ -284,7 +284,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="Playlists" />
|
android:text="@string/library_title_playlist" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -295,7 +295,7 @@
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
android:text="See all" />
|
android:text="@string/library_title_playlist_see_all_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
android:paddingTop="16dp"
|
android:paddingTop="16dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:paddingBottom="24dp"
|
android:paddingBottom="24dp"
|
||||||
android:text="Subsonic servers"
|
android:text="@string/login_title_expanded"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toEndOf="parent" />
|
app:layout_constraintStart_toEndOf="parent" />
|
||||||
|
|
@ -52,7 +52,7 @@
|
||||||
android:paddingTop="16dp"
|
android:paddingTop="16dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="No server added"
|
android:text="@string/login_empty"
|
||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
android:paddingBottom="@dimen/global_padding_bottom"
|
android:paddingBottom="@dimen/global_padding_bottom"
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
android:paddingTop="16dp"
|
android:paddingTop="16dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:paddingBottom="24dp"
|
android:paddingBottom="24dp"
|
||||||
android:text="Browse Playlists"
|
android:text="@string/playlist_catalogue_title_expanded"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toEndOf="parent" />
|
app:layout_constraintStart_toEndOf="parent" />
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,7 @@
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:backgroundTint="@color/buttonBackgroundColor"
|
android:backgroundTint="@color/buttonBackgroundColor"
|
||||||
android:padding="10dp"
|
android:padding="10dp"
|
||||||
android:text="Play"
|
android:text="@string/playlist_page_play_button"
|
||||||
android:textAllCaps="false"
|
android:textAllCaps="false"
|
||||||
app:icon="@drawable/ic_play"
|
app:icon="@drawable/ic_play"
|
||||||
app:iconGravity="textStart"
|
app:iconGravity="textStart"
|
||||||
|
|
@ -137,7 +137,7 @@
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:backgroundTint="@color/buttonBackgroundColor"
|
android:backgroundTint="@color/buttonBackgroundColor"
|
||||||
android:padding="10dp"
|
android:padding="10dp"
|
||||||
android:text="Shuffle"
|
android:text="@string/playlist_page_shuffle_button"
|
||||||
android:textAllCaps="false"
|
android:textAllCaps="false"
|
||||||
app:icon="@drawable/ic_shuffle"
|
app:icon="@drawable/ic_shuffle"
|
||||||
app:iconGravity="textStart"
|
app:iconGravity="textStart"
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingTop="20dp"
|
android:paddingTop="20dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:text="Songs" />
|
android:text="@string/search_title_song" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/search_result_tracks_recycler_view"
|
android:id="@+id/search_result_tracks_recycler_view"
|
||||||
|
|
@ -94,7 +94,7 @@
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingTop="20dp"
|
android:paddingTop="20dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:text="Albums" />
|
android:text="@string/search_title_album" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/search_result_album_recycler_view"
|
android:id="@+id/search_result_album_recycler_view"
|
||||||
|
|
@ -125,7 +125,7 @@
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingTop="20dp"
|
android:paddingTop="20dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:text="Artists" />
|
android:text="@string/search_title_artist" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/search_result_artist_recycler_view"
|
android:id="@+id/search_result_artist_recycler_view"
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
android:background="@android:color/transparent"
|
android:background="@android:color/transparent"
|
||||||
android:paddingStart="24dp"
|
android:paddingStart="24dp"
|
||||||
android:paddingTop="20dp"
|
android:paddingTop="20dp"
|
||||||
android:text="Now playing"
|
android:text="@string/player_bottom_sheet_title"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,6 @@
|
||||||
android:id="@+id/action_download_album"
|
android:id="@+id/action_download_album"
|
||||||
android:icon="@drawable/ic_file_download"
|
android:icon="@drawable/ic_file_download"
|
||||||
android:iconTint="@color/titleTextColor"
|
android:iconTint="@color/titleTextColor"
|
||||||
android:title="Download all"
|
android:title="@string/menu_download_all_button"
|
||||||
app:showAsAction="never" />
|
app:showAsAction="never" />
|
||||||
</menu>
|
</menu>
|
||||||
|
|
@ -3,13 +3,13 @@
|
||||||
<item
|
<item
|
||||||
android:id="@+id/homeFragment"
|
android:id="@+id/homeFragment"
|
||||||
android:icon="@drawable/ic_home"
|
android:icon="@drawable/ic_home"
|
||||||
android:title="@string/home_menu_label" />
|
android:title="@string/menu_home_label" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/libraryFragment"
|
android:id="@+id/libraryFragment"
|
||||||
android:icon="@drawable/ic_graphic_eq"
|
android:icon="@drawable/ic_graphic_eq"
|
||||||
android:title="@string/library_menu_label" />
|
android:title="@string/menu_library_label" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/downloadFragment"
|
android:id="@+id/downloadFragment"
|
||||||
android:icon="@drawable/ic_play_for_work"
|
android:icon="@drawable/ic_play_for_work"
|
||||||
android:title="@string/download_menu_label" />
|
android:title="@string/menu_download_label" />
|
||||||
</menu>
|
</menu>
|
||||||
|
|
@ -5,6 +5,6 @@
|
||||||
android:id="@+id/action_add"
|
android:id="@+id/action_add"
|
||||||
android:icon="@drawable/ic_add"
|
android:icon="@drawable/ic_add"
|
||||||
android:iconTint="@color/titleTextColor"
|
android:iconTint="@color/titleTextColor"
|
||||||
android:title="Add"
|
android:title="@string/menu_add_button"
|
||||||
app:showAsAction="always" />
|
app:showAsAction="always" />
|
||||||
</menu>
|
</menu>
|
||||||
|
|
@ -4,12 +4,12 @@
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_search"
|
android:id="@+id/action_search"
|
||||||
android:icon="@drawable/ic_search"
|
android:icon="@drawable/ic_search"
|
||||||
android:title="Search"
|
android:title="@string/menu_search_button"
|
||||||
app:showAsAction="always" />
|
app:showAsAction="ifRoom" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_settings"
|
android:id="@+id/action_settings"
|
||||||
android:icon="@drawable/ic_settings"
|
android:icon="@drawable/ic_settings"
|
||||||
android:title="Settings"
|
android:title="@string/menu_settings_button"
|
||||||
app:showAsAction="never" />
|
app:showAsAction="never" />
|
||||||
</menu>
|
</menu>
|
||||||
|
|
@ -5,6 +5,6 @@
|
||||||
android:id="@+id/action_download_playlist"
|
android:id="@+id/action_download_playlist"
|
||||||
android:icon="@drawable/ic_file_download"
|
android:icon="@drawable/ic_file_download"
|
||||||
android:iconTint="@color/titleTextColor"
|
android:iconTint="@color/titleTextColor"
|
||||||
android:title="Download all"
|
android:title="@string/menu_download_all_button"
|
||||||
app:showAsAction="never" />
|
app:showAsAction="never" />
|
||||||
</menu>
|
</menu>
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
android:id="@+id/action_search"
|
android:id="@+id/action_search"
|
||||||
android:icon="@drawable/ic_search"
|
android:icon="@drawable/ic_search"
|
||||||
android:iconTint="@color/titleTextColor"
|
android:iconTint="@color/titleTextColor"
|
||||||
android:title="Search"
|
android:title="@string/menu_search_button"
|
||||||
app:actionViewClass="android.widget.SearchView"
|
app:actionViewClass="android.widget.SearchView"
|
||||||
app:showAsAction="ifRoom" />
|
app:showAsAction="ifRoom" />
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,10 @@
|
||||||
<string name="covers_cache">Covers cache</string>
|
<string name="covers_cache">Covers cache</string>
|
||||||
<string name="media_cache">Media cache</string>
|
<string name="media_cache">Media cache</string>
|
||||||
<string name="image_size">Cover size</string>
|
<string name="image_size">Cover size</string>
|
||||||
<string name="library_menu_label">Library</string>
|
<string name="menu_library_label">Library</string>
|
||||||
<string name="home_menu_label">Home</string>
|
<string name="menu_home_label">Home</string>
|
||||||
<string name="search_menu_label">Search</string>
|
<string name="search_menu_label">Search</string>
|
||||||
<string name="download_menu_label">Download</string>
|
<string name="menu_download_label">Download</string>
|
||||||
<string name="label_placeholder">--</string>
|
<string name="label_placeholder">--</string>
|
||||||
<string name="label_dot_separator">•</string>
|
<string name="label_dot_separator">•</string>
|
||||||
|
|
||||||
|
|
@ -39,4 +39,145 @@
|
||||||
<string name="playing_notification_name">Playing Notification</string>
|
<string name="playing_notification_name">Playing Notification</string>
|
||||||
|
|
||||||
<string name="exo_download_notification_channel_name">Downloads</string>
|
<string name="exo_download_notification_channel_name">Downloads</string>
|
||||||
|
<string name="album_error_retrieving_radio">Error retrieving album\'s radio</string>
|
||||||
|
<string name="album_error_retrieving_artist">Error retrieving artist</string>
|
||||||
|
<string name="album_catalogue_title">Albums</string>
|
||||||
|
<string name="empty_string" />
|
||||||
|
<string name="album_list_page_recently_played">Recently played albums</string>
|
||||||
|
<string name="album_list_page_most_played">Most played albums</string>
|
||||||
|
<string name="album_list_page_recently_added">Recently added albums</string>
|
||||||
|
<string name="album_list_page_starred">Starred albums</string>
|
||||||
|
<string name="album_list_page_downloaded">Downloaded albums</string>
|
||||||
|
<string name="album_list_page_title">Albums</string>
|
||||||
|
<string name="artist_error_retrieving_radio">Error retrieving artist\'s radio</string>
|
||||||
|
<string name="artist_error_retrieving_tracks">Error retrieving artist\'s tracks</string>
|
||||||
|
<string name="artist_catalogue_title">Artists</string>
|
||||||
|
<string name="artist_list_page_starred">Starred artists</string>
|
||||||
|
<string name="artist_list_page_downloaded">Downloaded artists</string>
|
||||||
|
<string name="artist_list_page_title">Artists</string>
|
||||||
|
<string name="filter_info_selection">Select two or more filters</string>
|
||||||
|
<string name="filter_title">Filter</string>
|
||||||
|
<string name="genre_catalogue_title">Genre Catalogue</string>
|
||||||
|
<string name="login_title">Subsonic servers</string>
|
||||||
|
<string name="playlist_info_song_count">\"Song count: \"</string>
|
||||||
|
<string name="playlist_catalogue_title">Playlist Catalogue</string>
|
||||||
|
<string name="playlist_chooser_dialog_title">Add to a playlist</string>
|
||||||
|
<string name="playlist_chooser_dialog_neutral_button">Create</string>
|
||||||
|
<string name="playlist_chooser_dialog_negative_button">Cancel</string>
|
||||||
|
<string name="playlist_editor_dialog_title">Create playlist</string>
|
||||||
|
<string name="playlist_editor_dialog_positive_button">Save</string>
|
||||||
|
<string name="playlist_editor_dialog_neutral_button">Delete</string>
|
||||||
|
<string name="playlist_editor_dialog_negative_button">Cancel</string>
|
||||||
|
<string name="error_required">Required</string>
|
||||||
|
<string name="playlist_counted_tracks">\" tracks\"</string>
|
||||||
|
<string name="playlist_song_count">\"Song count: \"</string>
|
||||||
|
<string name="playlist_duration">\"Playlist duration: \"</string>
|
||||||
|
<string name="rating_dialog_title">Rate</string>
|
||||||
|
<string name="rating_dialog_negative_button">Cancel</string>
|
||||||
|
<string name="rating_dialog_positive_button">Save</string>
|
||||||
|
<string name="search_info_minimum_characters">Enter at least three characters</string>
|
||||||
|
<string name="server_signup_dialog_title">Add server</string>
|
||||||
|
<string name="server_signup_dialog_neutral_button">Delete</string>
|
||||||
|
<string name="server_signup_dialog_positive_button">Save</string>
|
||||||
|
<string name="server_signup_dialog_negative_button">Cancel</string>
|
||||||
|
<string name="song_bottom_sheet_error_retrieving_album">Error retrieving album</string>
|
||||||
|
<string name="song_bottom_sheet_error_retrieving_artist">Error retrieving artist</string>
|
||||||
|
<string name="song_list_page_recently_played">Recently played tracks</string>
|
||||||
|
<string name="song_list_page_most_played">Most played tracks</string>
|
||||||
|
<string name="song_list_page_recently_added">Recently added tracks</string>
|
||||||
|
<string name="song_list_page_all">: all tracks</string>
|
||||||
|
<string name="song_list_page_top">\'s top tracks</string>
|
||||||
|
<string name="song_list_page_year">\"Year \"</string>
|
||||||
|
<string name="song_list_page_starred">Starred tracks</string>
|
||||||
|
<string name="song_list_page_downloaded">Downloaded</string>
|
||||||
|
<string name="song_list_page_title">Songs</string>
|
||||||
|
<string name="activity_info_offline_mode">Offline mode</string>
|
||||||
|
<string name="album_bottom_sheet_instant_mix">Instant mix</string>
|
||||||
|
<string name="album_bottom_sheet_shuffle">Shuffle</string>
|
||||||
|
<string name="album_bottom_sheet_play_next">Play next</string>
|
||||||
|
<string name="album_bottom_sheet_add_to_queue">Add to queue</string>
|
||||||
|
<string name="album_bottom_sheet_download_all">Download all</string>
|
||||||
|
<string name="album_bottom_sheet_remove_all">Remove all</string>
|
||||||
|
<string name="album_bottom_sheet_go_to_artist">Go to artist</string>
|
||||||
|
<string name="artist_bottom_sheet_instant_mix">Instant mix</string>
|
||||||
|
<string name="artist_bottom_sheet_shuffle">Shuffle</string>
|
||||||
|
<string name="song_bottom_sheet_instant_mix">Instant mix</string>
|
||||||
|
<string name="song_bottom_sheet_play_next">Play next</string>
|
||||||
|
<string name="song_bottom_sheet_add_to_queue">Add to queue</string>
|
||||||
|
<string name="song_bottom_sheet_rate">Rate</string>
|
||||||
|
<string name="song_bottom_sheet_download">Download</string>
|
||||||
|
<string name="song_bottom_sheet_remove">Remove</string>
|
||||||
|
<string name="song_bottom_sheet_add_to_playlist">Add to playlist</string>
|
||||||
|
<string name="song_bottom_sheet_go_to_album">Go to album</string>
|
||||||
|
<string name="song_bottom_sheet_go_to_artist">Go to artist</string>
|
||||||
|
<string name="playlist_chooser_dialog_empty">No playlists created</string>
|
||||||
|
<string name="playlist_editor_dialog_hint_name">Playlist Name</string>
|
||||||
|
<string name="server_signup_dialog_hint_name">Server Name</string>
|
||||||
|
<string name="server_signup_dialog_hint_username">Username</string>
|
||||||
|
<string name="server_signup_dialog_hint_password">Password</string>
|
||||||
|
<string name="server_signup_dialog_hint_url">Server URL</string>
|
||||||
|
<string name="server_signup_dialog_action_direct_access">Direct access</string>
|
||||||
|
<string name="album_catalogue_title_expanded">Browse Albums</string>
|
||||||
|
<string name="album_page_play_button">Play</string>
|
||||||
|
<string name="album_page_shuffle_button">Shuffle</string>
|
||||||
|
<string name="album_page_extra_info_button">More like this</string>
|
||||||
|
<string name="artist_catalogue_title_expanded">Browse Artists</string>
|
||||||
|
<string name="artist_page_shuffle_button">Shuffle</string>
|
||||||
|
<string name="artist_page_radio_button">Radio</string>
|
||||||
|
<string name="artist_page_title_biography_section">Biography</string>
|
||||||
|
<string name="artist_page_title_biography_more_button">More</string>
|
||||||
|
<string name="artist_page_title_most_streamed_song_section">Most Streamed Songs</string>
|
||||||
|
<string name="artist_page_title_most_streamed_song_see_all_button">See all</string>
|
||||||
|
<string name="artist_page_title_album_section">Albums</string>
|
||||||
|
<string name="artist_page_title_album_more_like_this_button">More like this</string>
|
||||||
|
<string name="download_info_empty_title">No downloads yet!</string>
|
||||||
|
<string name="download_info_empty_subtitle">Once you download a song, you\'ll find it here</string>
|
||||||
|
<string name="download_title_artist_section">Artists</string>
|
||||||
|
<string name="download_title_artist_see_all_button">See all</string>
|
||||||
|
<string name="download_title_album_section">Albums</string>
|
||||||
|
<string name="download_title_album_see_all">See all</string>
|
||||||
|
<string name="download_title_tracks_section">Tracks</string>
|
||||||
|
<string name="download_title_tracks_see_all_button">See all</string>
|
||||||
|
<string name="download_title_playlist_section">Playlists</string>
|
||||||
|
<string name="download_title_playlist_see_all_button">See all</string>
|
||||||
|
<string name="filter_title_expanded">Filter Genres</string>
|
||||||
|
<string name="genre_catalogue_title_expanded">Browse Genres</string>
|
||||||
|
<string name="home_title_music_discovery">Music discovery</string>
|
||||||
|
<string name="home_subtitle_made_for_you">Start mix from a song you liked</string>
|
||||||
|
<string name="home_title_made_for_you">Made for you</string>
|
||||||
|
<string name="home_title_most_played">Most played</string>
|
||||||
|
<string name="home_title_most_played_see_all_button">See all</string>
|
||||||
|
<string name="home_title_last_played">Last played</string>
|
||||||
|
<string name="home_title_last_played_see_all_button">See all</string>
|
||||||
|
<string name="home_title_flashback">Flashback</string>
|
||||||
|
<string name="home_title_starred_tracks">★ Starred tracks</string>
|
||||||
|
<string name="home_title_starred_tracks_see_all_button">See all</string>
|
||||||
|
<string name="home_title_starred_albums">★ Starred albums</string>
|
||||||
|
<string name="home_title_starred_albums_see_all_button">See all</string>
|
||||||
|
<string name="home_title_starred_artists">★ Starred artists</string>
|
||||||
|
<string name="home_title_starred_artists_see_all_button">See all</string>
|
||||||
|
<string name="home_title_recently_added">Recently added</string>
|
||||||
|
<string name="home_title_recently_added_see_all_button">See all</string>
|
||||||
|
<string name="library_title_new_releases">New releases</string>
|
||||||
|
<string name="library_title_album">Albums</string>
|
||||||
|
<string name="library_title_album_see_all_button">See all</string>
|
||||||
|
<string name="library_title_artist">Artists</string>
|
||||||
|
<string name="library_title_artist_see_all_button">See all</string>
|
||||||
|
<string name="library_title_genre">Genres</string>
|
||||||
|
<string name="library_title_genre_see_all_button">See all</string>
|
||||||
|
<string name="library_title_playlist">Playlists</string>
|
||||||
|
<string name="library_title_playlist_see_all_button">See all</string>
|
||||||
|
<string name="login_title_expanded">Subsonic servers</string>
|
||||||
|
<string name="login_empty">No server added</string>
|
||||||
|
<string name="playlist_catalogue_title_expanded">Browse Playlists</string>
|
||||||
|
<string name="playlist_page_play_button">Play</string>
|
||||||
|
<string name="playlist_page_shuffle_button">Shuffle</string>
|
||||||
|
<string name="search_title_song">Songs</string>
|
||||||
|
<string name="search_title_album">Albums</string>
|
||||||
|
<string name="search_title_artist">Artists</string>
|
||||||
|
<string name="player_bottom_sheet_title">Now playing</string>
|
||||||
|
<string name="menu_download_all_button">Download all</string>
|
||||||
|
<string name="menu_add_button">Add</string>
|
||||||
|
<string name="menu_search_button">Search</string>
|
||||||
|
<string name="menu_settings_button">Settings</string>
|
||||||
</resources>
|
</resources>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue