diff --git a/.idea/misc.xml b/.idea/misc.xml index ef098457..ecf13cfa 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -41,22 +41,32 @@ + + + + + + + + + + @@ -72,7 +82,14 @@ + + + + + + + diff --git a/app/src/main/java/com/cappielloantonio/play/adapter/DiscoverSongAdapter.java b/app/src/main/java/com/cappielloantonio/play/adapter/DiscoverSongAdapter.java index 0455c662..0e992516 100644 --- a/app/src/main/java/com/cappielloantonio/play/adapter/DiscoverSongAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/adapter/DiscoverSongAdapter.java @@ -109,7 +109,7 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter { if ((bind.albumInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) { - bind.toolbar.setTitle("Albums"); + bind.toolbar.setTitle(R.string.album_catalogue_title); } else { - bind.toolbar.setTitle(""); + bind.toolbar.setTitle(R.string.empty_string); } }); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumListPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumListPageFragment.java index 0298c1aa..a5840b20 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumListPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumListPageFragment.java @@ -1,5 +1,6 @@ package com.cappielloantonio.play.ui.fragment; +import android.annotation.SuppressLint; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -11,6 +12,7 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; +import com.cappielloantonio.play.R; import com.cappielloantonio.play.adapter.AlbumHorizontalAdapter; import com.cappielloantonio.play.databinding.FragmentAlbumListPageBinding; import com.cappielloantonio.play.model.Album; @@ -56,19 +58,19 @@ public class AlbumListPageFragment extends Fragment { private void init() { if (requireArguments().getString(Album.RECENTLY_PLAYED) != null) { 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) { 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) { 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) { 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) { 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) { albumListPageViewModel.artist = requireArguments().getParcelable("artist_object"); albumListPageViewModel.title = Album.FROM_ARTIST; @@ -88,9 +90,9 @@ public class AlbumListPageFragment extends Fragment { bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> { if ((bind.albumInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) { - bind.toolbar.setTitle("Albums"); + bind.toolbar.setTitle(R.string.album_list_page_title); } else { - bind.toolbar.setTitle(""); + bind.toolbar.setTitle(R.string.empty_string); } }); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java index fda0c482..414bd737 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java @@ -127,7 +127,7 @@ public class AlbumPageFragment extends Fragment { bundle.putParcelable("artist_object", artist); activity.navController.navigate(R.id.action_albumPageFragment_to_artistPageFragment, bundle); } 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(); })); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistCatalogueFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistCatalogueFragment.java index 2b6b1336..8db937db 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistCatalogueFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistCatalogueFragment.java @@ -91,9 +91,9 @@ public class ArtistCatalogueFragment extends Fragment { bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> { if ((bind.artistInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) { - bind.toolbar.setTitle("Artists"); + bind.toolbar.setTitle(R.string.artist_catalogue_title); } else { - bind.toolbar.setTitle(""); + bind.toolbar.setTitle(R.string.empty_string); } }); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistListPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistListPageFragment.java index 44d5d556..48e20f26 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistListPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistListPageFragment.java @@ -11,6 +11,7 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; +import com.cappielloantonio.play.R; import com.cappielloantonio.play.adapter.ArtistHorizontalAdapter; import com.cappielloantonio.play.databinding.FragmentArtistListPageBinding; import com.cappielloantonio.play.model.Artist; @@ -55,10 +56,10 @@ public class ArtistListPageFragment extends Fragment { private void init() { if (requireArguments().getString(Artist.STARRED) != null) { 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) { 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) -> { if ((bind.artistInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) { - bind.toolbar.setTitle("Artists"); + bind.toolbar.setTitle(R.string.artist_list_page_title); } else { - bind.toolbar.setTitle(""); + bind.toolbar.setTitle(R.string.empty_string); } }); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistPageFragment.java index b4def616..522ecdb8 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/ArtistPageFragment.java @@ -145,7 +145,7 @@ public class ArtistPageFragment extends Fragment { MusicPlayerRemote.openQueue(songs, 0, true); activity.isBottomSheetInPeek(true); } 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() { @Override public void onError(Exception exception) { - Log.e(TAG, "onError: " + exception.getMessage()); + Log.e(TAG, "onError() " + exception.getMessage()); } @Override @@ -169,7 +169,7 @@ public class ArtistPageFragment extends Fragment { MusicPlayerRemote.openQueue((List) media, 0, true); } 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(); } } }); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/FilterFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/FilterFragment.java index 11155714..081e722f 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/FilterFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/FilterFragment.java @@ -64,7 +64,7 @@ public class FilterFragment extends Fragment { if (filterViewModel.getFilters().size() > 1) activity.navController.navigate(R.id.action_filterFragment_to_songListPageFragment, bundle); 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) -> { if ((bind.genreFilterInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) { - bind.toolbar.setTitle("Filter"); + bind.toolbar.setTitle(R.string.filter_title); } else { - bind.toolbar.setTitle(""); + bind.toolbar.setTitle(R.string.empty_string); } }); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/GenreCatalogueFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/GenreCatalogueFragment.java index e0c524c0..392e3219 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/GenreCatalogueFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/GenreCatalogueFragment.java @@ -91,9 +91,9 @@ public class GenreCatalogueFragment extends Fragment { bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> { if ((bind.genreInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) { - bind.toolbar.setTitle("Genre Catalogue"); + bind.toolbar.setTitle(R.string.genre_catalogue_title); } else { - bind.toolbar.setTitle(""); + bind.toolbar.setTitle(R.string.empty_string); } }); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/LoginFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/LoginFragment.java index f32a70ff..f159de27 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/LoginFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/LoginFragment.java @@ -69,9 +69,9 @@ public class LoginFragment extends Fragment { bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> { if ((bind.serverInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) { - bind.toolbar.setTitle("Subsonic servers"); + bind.toolbar.setTitle(R.string.login_title); } else { - bind.toolbar.setTitle(""); + bind.toolbar.setTitle(R.string.empty_string); } }); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistCatalogueFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistCatalogueFragment.java index 333ea8b7..2e0e6972 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistCatalogueFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistCatalogueFragment.java @@ -93,9 +93,9 @@ public class PlaylistCatalogueFragment extends Fragment { bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> { if ((bind.albumInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) { - bind.toolbar.setTitle("Playlist Catalogue"); + bind.toolbar.setTitle(R.string.playlist_catalogue_title); } else { - bind.toolbar.setTitle(""); + bind.toolbar.setTitle(R.string.empty_string); } }); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistPageFragment.java index b591c748..4575bbdf 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistPageFragment.java @@ -109,8 +109,8 @@ public class PlaylistPageFragment extends Fragment { bind.animToolbar.setTitle(MusicUtil.getReadableString(playlistPageViewModel.getPlaylist().getName())); bind.playlistNameLabel.setText(MusicUtil.getReadableString(playlistPageViewModel.getPlaylist().getName())); - bind.playlistSongCountLabel.setText("Song count: " + playlistPageViewModel.getPlaylist().getSongCount()); - bind.playlistDurationLabel.setText("Playlist duration: " + MusicUtil.getReadableDurationString(playlistPageViewModel.getPlaylist().getDuration(), false)); + bind.playlistSongCountLabel.setText(getString(R.string.playlist_song_count) + playlistPageViewModel.getPlaylist().getSongCount()); + bind.playlistDurationLabel.setText(getString(R.string.playlist_duration) + MusicUtil.getReadableDurationString(playlistPageViewModel.getPlaylist().getDuration(), false)); if (playlistPageViewModel.isOffline()) { bind.playlistSongCountLabel.setVisibility(View.GONE); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SearchFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SearchFragment.java index acefe46e..2c5ea3a4 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SearchFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SearchFragment.java @@ -12,6 +12,7 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; +import com.cappielloantonio.play.R; import com.cappielloantonio.play.adapter.AlbumAdapter; import com.cappielloantonio.play.adapter.ArtistAdapter; import com.cappielloantonio.play.adapter.SongHorizontalAdapter; @@ -129,7 +130,7 @@ public class SearchFragment extends Fragment { searchView.collapse(); search(query); } 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(); } }); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java index f323d7d2..95c491db 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java @@ -12,6 +12,7 @@ import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import com.cappielloantonio.play.App; +import com.cappielloantonio.play.R; import com.cappielloantonio.play.adapter.SongHorizontalAdapter; import com.cappielloantonio.play.databinding.FragmentSongListPageBinding; import com.cappielloantonio.play.model.Song; @@ -62,21 +63,21 @@ public class SongListPageFragment extends Fragment { private void init() { if (requireArguments().getString(Song.RECENTLY_PLAYED) != null) { 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) { 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) { 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) { songListPageViewModel.title = Song.BY_GENRE; 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) { songListPageViewModel.title = Song.BY_ARTIST; 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) { songListPageViewModel.title = Song.BY_GENRES; songListPageViewModel.filters = requireArguments().getStringArrayList("filters_list"); @@ -85,13 +86,13 @@ public class SongListPageFragment extends Fragment { } else if (requireArguments().getString(Song.BY_YEAR) != null) { songListPageViewModel.title = Song.BY_YEAR; 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) { 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) { songListPageViewModel.title = Song.DOWNLOADED; - bind.pageTitleLabel.setText("Downloaded"); + bind.pageTitleLabel.setText(R.string.song_list_page_downloaded); } else if (requireArguments().getParcelable("album_object") != null) { songListPageViewModel.album = requireArguments().getParcelable("album_object"); songListPageViewModel.title = Song.FROM_ALBUM; @@ -111,9 +112,9 @@ public class SongListPageFragment extends Fragment { bind.appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> { if ((bind.albumInfoSector.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(bind.toolbar))) { - bind.toolbar.setTitle("Songs"); + bind.toolbar.setTitle(R.string.song_list_page_title); } else { - bind.toolbar.setTitle(""); + bind.toolbar.setTitle(R.string.empty_string); } }); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java index 19155ebe..f67441ce 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java @@ -83,7 +83,7 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements albumRepository.getInstantMix(album, 20, new MediaCallback() { @Override public void onError(Exception exception) { - Log.e(TAG, "onError: " + exception.getMessage()); + Log.e(TAG, "onError() " + exception.getMessage()); dismissBottomSheet(); } @@ -99,7 +99,7 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements MusicPlayerRemote.openQueue((List) media, 0, true); } 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(); @@ -162,7 +162,7 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements bundle.putParcelable("artist_object", artist); NavHostFragment.findNavController(this).navigate(R.id.artistPageFragment, bundle); } 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(); })); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/ArtistBottomSheetDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/ArtistBottomSheetDialog.java index e1ed65a8..c3902c00 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/ArtistBottomSheetDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/ArtistBottomSheetDialog.java @@ -77,7 +77,7 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement artistRepository.getInstantMix(artist, 20, new MediaCallback() { @Override public void onError(Exception exception) { - Log.e(TAG, "onError: " + exception.getMessage()); + Log.e(TAG, "onError() " + exception.getMessage()); dismissBottomSheet(); } @@ -93,7 +93,7 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement MusicPlayerRemote.openQueue((List) media, 0, true); } 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(); @@ -112,7 +112,7 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement MusicPlayerRemote.openQueue(songs, 0, true); ((MainActivity) requireActivity()).isBottomSheetInPeek(true); } 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(); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java index 44379092..8129b332 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java @@ -106,7 +106,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements songRepository.getInstantMix(song, 20, new MediaCallback() { @Override public void onError(Exception exception) { - Log.e(TAG, "onError: " + exception.getMessage()); + Log.e(TAG, "onError() " + exception.getMessage()); } @Override @@ -177,7 +177,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements bundle.putParcelable("album_object", album); NavHostFragment.findNavController(this).navigate(R.id.albumPageFragment, bundle); } 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(); })); @@ -189,7 +189,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements bundle.putParcelable("artist_object", artist); NavHostFragment.findNavController(this).navigate(R.id.artistPageFragment, bundle); } 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(); })); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/PlaylistChooserDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/PlaylistChooserDialog.java index 29c39af4..b2376213 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/PlaylistChooserDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/PlaylistChooserDialog.java @@ -35,10 +35,10 @@ public class PlaylistChooserDialog extends DialogFragment { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog); builder.setView(bind.getRoot()) - .setTitle("Add to a playlist") - .setNeutralButton("Create", (dialog, id) -> { + .setTitle(R.string.playlist_chooser_dialog_title) + .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(); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/PlaylistEditorDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/PlaylistEditorDialog.java index 01b480db..5a5e71d4 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/PlaylistEditorDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/PlaylistEditorDialog.java @@ -40,11 +40,11 @@ public class PlaylistEditorDialog extends DialogFragment { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog); builder.setView(bind.getRoot()) - .setTitle("Create playlist") - .setPositiveButton("Save", (dialog, id) -> { + .setTitle(R.string.playlist_editor_dialog_title) + .setPositiveButton(R.string.playlist_editor_dialog_positive_button, (dialog, id) -> { }) - .setNeutralButton("Delete", (dialog, id) -> dialog.cancel()) - .setNegativeButton("Cancel", (dialog, id) -> dialog.cancel()); + .setNeutralButton(R.string.playlist_editor_dialog_neutral_button, (dialog, id) -> dialog.cancel()) + .setNegativeButton(R.string.playlist_editor_dialog_negative_button, (dialog, id) -> dialog.cancel()); return builder.create(); } @@ -157,7 +157,7 @@ public class PlaylistEditorDialog extends DialogFragment { playlistName = Objects.requireNonNull(bind.playlistNameTextView.getText()).toString().trim(); if (TextUtils.isEmpty(playlistName)) { - bind.playlistNameTextView.setError("Required"); + bind.playlistNameTextView.setError(getString(R.string.error_required)); return false; } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/RatingDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/RatingDialog.java index 35f6fbb6..633963af 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/RatingDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/RatingDialog.java @@ -30,9 +30,9 @@ public class RatingDialog extends DialogFragment { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog); builder.setView(bind.getRoot()) - .setTitle("Rate") - .setNegativeButton("Cancel", (dialog, id) -> dialog.cancel()) - .setPositiveButton("Save", (dialog, id) -> ratingViewModel.rate((int) bind.ratingBar.getRating())); + .setTitle(R.string.rating_dialog_title) + .setNegativeButton(R.string.rating_dialog_negative_button, (dialog, id) -> dialog.cancel()) + .setPositiveButton(R.string.rating_dialog_positive_button, (dialog, id) -> ratingViewModel.rate((int) bind.ratingBar.getRating())); return builder.create(); } diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/ServerSignupDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/ServerSignupDialog.java index 14a3b793..08471baf 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/ServerSignupDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/dialog/ServerSignupDialog.java @@ -56,12 +56,12 @@ public class ServerSignupDialog extends DialogFragment { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog); builder.setView(bind.getRoot()) - .setTitle("Add server") - .setNeutralButton("Delete", (dialog, id) -> { + .setTitle(R.string.server_signup_dialog_title) + .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(); } @@ -119,17 +119,17 @@ public class ServerSignupDialog extends DialogFragment { directAccess = bind.directAccessCheckbox.isChecked(); if (TextUtils.isEmpty(serverName)) { - bind.serverNameTextView.setError("Required"); + bind.serverNameTextView.setError(getString(R.string.error_required)); return false; } if (TextUtils.isEmpty(username)) { - bind.usernameTextView.setError("Required"); + bind.usernameTextView.setError(getString(R.string.error_required)); return false; } if (TextUtils.isEmpty(server)) { - bind.serverTextView.setError("Required"); + bind.serverTextView.setError(getString(R.string.error_required)); return false; } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 6c2a8c2a..3c683a4c 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -47,7 +47,7 @@ android:layout_height="wrap_content" android:background="@color/colorAccent" android:gravity="center" - android:text="Offline mode" + android:text="@string/activity_info_offline_mode" android:textColor="@android:color/white" android:textSize="6sp" android:visibility="gone" /> diff --git a/app/src/main/res/layout/bottom_sheet_album_dialog.xml b/app/src/main/res/layout/bottom_sheet_album_dialog.xml index d30d5f70..f565165d 100644 --- a/app/src/main/res/layout/bottom_sheet_album_dialog.xml +++ b/app/src/main/res/layout/bottom_sheet_album_dialog.xml @@ -98,7 +98,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Instant mix" + android:text="@string/album_bottom_sheet_instant_mix" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -114,7 +114,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Riproduzione casuale" + android:text="@string/album_bottom_sheet_shuffle" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -130,7 +130,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Riproduci dopo" + android:text="@string/album_bottom_sheet_play_next" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -146,7 +146,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Aggiungi alla coda" + android:text="@string/album_bottom_sheet_add_to_queue" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -162,7 +162,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Scarica tutte" + android:text="@string/album_bottom_sheet_download_all" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -178,7 +178,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Rimuovi tutte" + android:text="@string/album_bottom_sheet_remove_all" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -194,7 +194,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Vai all'artista" + android:text="@string/album_bottom_sheet_go_to_artist" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> diff --git a/app/src/main/res/layout/bottom_sheet_artist_dialog.xml b/app/src/main/res/layout/bottom_sheet_artist_dialog.xml index f473d822..790698e4 100644 --- a/app/src/main/res/layout/bottom_sheet_artist_dialog.xml +++ b/app/src/main/res/layout/bottom_sheet_artist_dialog.xml @@ -85,7 +85,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Instant mix" + android:text="@string/artist_bottom_sheet_instant_mix" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -101,7 +101,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Riproduzione casuale" + android:text="@string/artist_bottom_sheet_shuffle" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> diff --git a/app/src/main/res/layout/bottom_sheet_song_dialog.xml b/app/src/main/res/layout/bottom_sheet_song_dialog.xml index f023ca4d..13346246 100644 --- a/app/src/main/res/layout/bottom_sheet_song_dialog.xml +++ b/app/src/main/res/layout/bottom_sheet_song_dialog.xml @@ -99,7 +99,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Instant mix" + android:text="@string/song_bottom_sheet_instant_mix" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -115,7 +115,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Riproduci dopo" + android:text="@string/song_bottom_sheet_play_next" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -131,7 +131,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Aggiungi alla coda" + android:text="@string/song_bottom_sheet_add_to_queue" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -147,7 +147,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Valuta" + android:text="@string/song_bottom_sheet_rate" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -163,7 +163,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Scarica" + android:text="@string/song_bottom_sheet_download" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -179,7 +179,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Rimuovi" + android:text="@string/song_bottom_sheet_remove" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -195,7 +195,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Aggiungi alla playlist" + android:text="@string/song_bottom_sheet_add_to_playlist" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -211,7 +211,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Vai all'album" + android:text="@string/song_bottom_sheet_go_to_album" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> @@ -227,7 +227,7 @@ android:paddingTop="12dp" android:paddingEnd="20dp" android:paddingBottom="12dp" - android:text="Vai all'artista" + android:text="@string/song_bottom_sheet_go_to_artist" android:textColor="@color/titleTextColor" android:textFontWeight="700" android:textSize="14sp" /> diff --git a/app/src/main/res/layout/dialog_playlist_chooser.xml b/app/src/main/res/layout/dialog_playlist_chooser.xml index 2845da8c..c81f245e 100644 --- a/app/src/main/res/layout/dialog_playlist_chooser.xml +++ b/app/src/main/res/layout/dialog_playlist_chooser.xml @@ -12,7 +12,7 @@ android:paddingTop="16dp" android:paddingEnd="16dp" android:gravity="center" - android:text="No playlists created" + android:text="@string/playlist_chooser_dialog_empty" android:clipToPadding="false" android:visibility="gone"/> diff --git a/app/src/main/res/layout/dialog_playlist_editor.xml b/app/src/main/res/layout/dialog_playlist_editor.xml index fda7d389..0a06d071 100644 --- a/app/src/main/res/layout/dialog_playlist_editor.xml +++ b/app/src/main/res/layout/dialog_playlist_editor.xml @@ -22,7 +22,7 @@ android:id="@+id/playlist_name_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="Playlist Name" + android:hint="@string/playlist_editor_dialog_hint_name" android:inputType="textNoSuggestions" android:textCursorDrawable="@null" /> diff --git a/app/src/main/res/layout/dialog_server_signup.xml b/app/src/main/res/layout/dialog_server_signup.xml index 6c96c28d..4be9d099 100644 --- a/app/src/main/res/layout/dialog_server_signup.xml +++ b/app/src/main/res/layout/dialog_server_signup.xml @@ -22,7 +22,7 @@ android:id="@+id/server_name_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="Server Name" + android:hint="@string/server_signup_dialog_hint_name" android:inputType="textNoSuggestions" android:text="Navidrome" android:textCursorDrawable="@null" /> @@ -46,7 +46,7 @@ android:id="@+id/username_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="Username" + android:hint="@string/server_signup_dialog_hint_username" android:inputType="textShortMessage" android:text="antonio" android:textCursorDrawable="@null"/> @@ -72,7 +72,7 @@ android:id="@+id/password_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="Password" + android:hint="@string/server_signup_dialog_hint_password" android:inputType="textPassword" android:text="!$4EBXhSPUi4$E#oagvAisCA" android:textCursorDrawable="@null"/> @@ -96,7 +96,7 @@ android:id="@+id/server_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="Server URL" + android:hint="@string/server_signup_dialog_hint_url" android:inputType="textNoSuggestions" android:text="http://192.168.1.81:4533" android:textCursorDrawable="@null"/> @@ -108,5 +108,5 @@ android:layout_height="wrap_content" android:layout_marginStart="24dp" android:layout_marginEnd="24dp" - android:text="Direct access"/> + android:text="@string/server_signup_dialog_action_direct_access"/> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_album_catalogue.xml b/app/src/main/res/layout/fragment_album_catalogue.xml index 266fc6e2..8eda2c8d 100644 --- a/app/src/main/res/layout/fragment_album_catalogue.xml +++ b/app/src/main/res/layout/fragment_album_catalogue.xml @@ -38,7 +38,7 @@ android:paddingTop="16dp" android:paddingEnd="16dp" android:paddingBottom="24dp" - android:text="Browse Albums" + android:text="@string/album_catalogue_title_expanded" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="parent" /> diff --git a/app/src/main/res/layout/fragment_album_page.xml b/app/src/main/res/layout/fragment_album_page.xml index eb325e8b..77aa530e 100644 --- a/app/src/main/res/layout/fragment_album_page.xml +++ b/app/src/main/res/layout/fragment_album_page.xml @@ -120,7 +120,7 @@ android:layout_weight="1" android:backgroundTint="@color/buttonBackgroundColor" android:padding="10dp" - android:text="Play" + android:text="@string/album_page_play_button" android:textAllCaps="false" app:icon="@drawable/ic_play" app:iconGravity="textStart" @@ -137,7 +137,7 @@ android:layout_weight="1" android:backgroundTint="@color/buttonBackgroundColor" android:padding="10dp" - android:text="Shuffle" + android:text="@string/album_page_shuffle_button" android:textAllCaps="false" app:icon="@drawable/ic_shuffle" app:iconGravity="textStart" @@ -199,7 +199,7 @@ android:paddingStart="16dp" android:paddingTop="32dp" android:paddingEnd="20dp" - android:text="More like this" /> + android:text="@string/album_page_extra_info_button" /> diff --git a/app/src/main/res/layout/fragment_artist_page.xml b/app/src/main/res/layout/fragment_artist_page.xml index 717280c7..3e84ebb4 100644 --- a/app/src/main/res/layout/fragment_artist_page.xml +++ b/app/src/main/res/layout/fragment_artist_page.xml @@ -84,7 +84,7 @@ android:layout_weight="1" android:backgroundTint="@color/buttonBackgroundColor" android:padding="10dp" - android:text="Shuffle" + android:text="@string/artist_page_shuffle_button" android:textAllCaps="false" app:icon="@drawable/ic_shuffle" app:iconGravity="textStart" @@ -101,7 +101,7 @@ android:layout_weight="1" android:backgroundTint="@color/buttonBackgroundColor" android:padding="10dp" - android:text="Radio" + android:text="@string/artist_page_radio_button" android:textAllCaps="false" app:icon="@drawable/ic_feed" app:iconGravity="textStart" @@ -135,7 +135,7 @@ android:layout_weight="1" android:paddingStart="16dp" android:paddingEnd="8dp" - android:text="Biography" /> + android:text="@string/artist_page_title_biography_section" /> + android:text="@string/artist_page_title_biography_more_button" /> + android:text="@string/artist_page_title_most_streamed_song_section" /> + android:text="@string/artist_page_title_most_streamed_song_see_all_button" /> + android:text="@string/artist_page_title_album_section" /> + android:text="@string/artist_page_title_album_more_like_this_button" /> + android:text="@string/download_info_empty_title" /> + android:text="@string/download_info_empty_subtitle" /> + android:text="@string/download_title_artist_section" /> + android:text="@string/download_title_artist_see_all_button" /> @@ -170,7 +170,7 @@ android:paddingStart="8dp" android:paddingTop="12dp" android:paddingEnd="8dp" - android:text="Albums" /> + android:text="@string/download_title_album_section" /> + android:text="@string/download_title_album_see_all" /> @@ -226,7 +226,7 @@ android:paddingStart="8dp" android:paddingTop="12dp" android:paddingEnd="8dp" - android:text="Tracks" /> + android:text="@string/download_title_tracks_section" /> + android:text="@string/download_title_tracks_see_all_button" /> @@ -282,7 +282,7 @@ android:paddingStart="8dp" android:paddingTop="12dp" android:paddingEnd="8dp" - android:text="Playlists" /> + android:text="@string/download_title_playlist_section" /> + android:text="@string/download_title_playlist_see_all_button" /> diff --git a/app/src/main/res/layout/fragment_filter.xml b/app/src/main/res/layout/fragment_filter.xml index e48a9eb7..3ba770bf 100644 --- a/app/src/main/res/layout/fragment_filter.xml +++ b/app/src/main/res/layout/fragment_filter.xml @@ -39,7 +39,7 @@ android:paddingTop="16dp" android:paddingEnd="16dp" android:paddingBottom="24dp" - android:text="Filter Genres" + android:text="@string/filter_title_expanded" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" /> diff --git a/app/src/main/res/layout/fragment_genre_catalogue.xml b/app/src/main/res/layout/fragment_genre_catalogue.xml index f32cd83a..b1fcd3aa 100644 --- a/app/src/main/res/layout/fragment_genre_catalogue.xml +++ b/app/src/main/res/layout/fragment_genre_catalogue.xml @@ -39,7 +39,7 @@ android:paddingTop="16dp" android:paddingEnd="16dp" android:paddingBottom="24dp" - android:text="Browse Genres" + android:text="@string/genre_catalogue_title_expanded" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" /> diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 6c6304ee..c7be9388 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -70,7 +70,7 @@ android:layout_marginBottom="8dp" android:paddingStart="16dp" android:paddingEnd="16dp" - android:text="Music discovery" /> + android:text="@string/home_title_music_discovery" /> + android:text="@string/home_title_made_for_you" /> + android:text="@string/home_title_most_played" /> + android:text="@string/home_title_most_played_see_all_button" /> @@ -215,7 +215,7 @@ android:paddingStart="8dp" android:paddingTop="12dp" android:paddingEnd="8dp" - android:text="Last played" /> + android:text="@string/home_title_last_played" /> + android:text="@string/home_title_last_played_see_all_button" /> @@ -263,7 +263,7 @@ android:paddingStart="16dp" android:paddingTop="20dp" android:paddingEnd="16dp" - android:text="Flashback" /> + android:text="@string/home_title_flashback" /> + android:text="@string/home_title_starred_tracks" /> + android:text="@string/home_title_starred_tracks_see_all_button" /> @@ -363,7 +363,7 @@ android:paddingStart="8dp" android:paddingTop="12dp" android:paddingEnd="8dp" - android:text="★ Starred albums" /> + android:text="@string/home_title_starred_albums" /> + android:text="@string/home_title_starred_albums_see_all_button" /> @@ -418,7 +418,7 @@ android:paddingStart="8dp" android:paddingTop="12dp" android:paddingEnd="8dp" - android:text="★ Starred artists" /> + android:text="@string/home_title_starred_artists" /> + android:text="@string/home_title_starred_artists_see_all_button" /> @@ -474,7 +474,7 @@ android:paddingStart="8dp" android:paddingTop="12dp" android:paddingEnd="8dp" - android:text="Recently added" /> + android:text="@string/home_title_recently_added" /> + android:text="@string/home_title_recently_added_see_all_button" /> diff --git a/app/src/main/res/layout/fragment_library.xml b/app/src/main/res/layout/fragment_library.xml index 63b14520..8404fa9e 100644 --- a/app/src/main/res/layout/fragment_library.xml +++ b/app/src/main/res/layout/fragment_library.xml @@ -68,7 +68,7 @@ android:layout_height="wrap_content" android:paddingStart="16dp" android:paddingEnd="16dp" - android:text="New releases" /> + android:text="@string/library_title_new_releases" /> + android:text="@string/library_title_album" /> + android:text="@string/library_title_album_see_all_button" /> @@ -168,7 +168,7 @@ android:paddingStart="8dp" android:paddingTop="12dp" android:paddingEnd="8dp" - android:text="Artists" /> + android:text="@string/library_title_artist" /> + android:text="@string/library_title_artist_see_all_button" /> @@ -227,7 +227,7 @@ android:paddingStart="8dp" android:paddingTop="12dp" android:paddingEnd="8dp" - android:text="Genres" /> + android:text="@string/library_title_genre" /> + android:text="@string/library_title_genre_see_all_button" /> + android:text="@string/library_title_playlist" /> + android:text="@string/library_title_playlist_see_all_button" /> diff --git a/app/src/main/res/layout/fragment_login.xml b/app/src/main/res/layout/fragment_login.xml index 83477039..7d27e703 100644 --- a/app/src/main/res/layout/fragment_login.xml +++ b/app/src/main/res/layout/fragment_login.xml @@ -36,7 +36,7 @@ android:paddingTop="16dp" android:paddingEnd="16dp" android:paddingBottom="24dp" - android:text="Subsonic servers" + android:text="@string/login_title_expanded" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="parent" /> @@ -52,7 +52,7 @@ android:paddingTop="16dp" android:paddingEnd="16dp" android:gravity="center" - android:text="No server added" + android:text="@string/login_empty" android:clipToPadding="false" android:paddingBottom="@dimen/global_padding_bottom" app:layout_behavior="@string/appbar_scrolling_view_behavior" diff --git a/app/src/main/res/layout/fragment_playlist_catalogue.xml b/app/src/main/res/layout/fragment_playlist_catalogue.xml index 9c612a8d..cfc4fbb4 100644 --- a/app/src/main/res/layout/fragment_playlist_catalogue.xml +++ b/app/src/main/res/layout/fragment_playlist_catalogue.xml @@ -38,7 +38,7 @@ android:paddingTop="16dp" android:paddingEnd="16dp" android:paddingBottom="24dp" - android:text="Browse Playlists" + android:text="@string/playlist_catalogue_title_expanded" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="parent" /> diff --git a/app/src/main/res/layout/fragment_playlist_page.xml b/app/src/main/res/layout/fragment_playlist_page.xml index 5dceebeb..2d5fe029 100644 --- a/app/src/main/res/layout/fragment_playlist_page.xml +++ b/app/src/main/res/layout/fragment_playlist_page.xml @@ -120,7 +120,7 @@ android:layout_weight="1" android:backgroundTint="@color/buttonBackgroundColor" android:padding="10dp" - android:text="Play" + android:text="@string/playlist_page_play_button" android:textAllCaps="false" app:icon="@drawable/ic_play" app:iconGravity="textStart" @@ -137,7 +137,7 @@ android:layout_weight="1" android:backgroundTint="@color/buttonBackgroundColor" android:padding="10dp" - android:text="Shuffle" + android:text="@string/playlist_page_shuffle_button" android:textAllCaps="false" app:icon="@drawable/ic_shuffle" app:iconGravity="textStart" diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml index 80e161ce..48d99580 100644 --- a/app/src/main/res/layout/fragment_search.xml +++ b/app/src/main/res/layout/fragment_search.xml @@ -65,7 +65,7 @@ android:paddingStart="16dp" android:paddingTop="20dp" android:paddingEnd="16dp" - android:text="Songs" /> + android:text="@string/search_title_song" /> + android:text="@string/search_title_album" /> + android:text="@string/search_title_artist" /> diff --git a/app/src/main/res/menu/album_page_menu.xml b/app/src/main/res/menu/album_page_menu.xml index 9372da82..7ea2a509 100644 --- a/app/src/main/res/menu/album_page_menu.xml +++ b/app/src/main/res/menu/album_page_menu.xml @@ -5,6 +5,6 @@ android:id="@+id/action_download_album" android:icon="@drawable/ic_file_download" android:iconTint="@color/titleTextColor" - android:title="Download all" + android:title="@string/menu_download_all_button" app:showAsAction="never" /> \ No newline at end of file diff --git a/app/src/main/res/menu/bottom_nav_menu.xml b/app/src/main/res/menu/bottom_nav_menu.xml index c6680a34..3d59df4d 100644 --- a/app/src/main/res/menu/bottom_nav_menu.xml +++ b/app/src/main/res/menu/bottom_nav_menu.xml @@ -3,13 +3,13 @@ + android:title="@string/menu_home_label" /> + android:title="@string/menu_library_label" /> + android:title="@string/menu_download_label" /> \ No newline at end of file diff --git a/app/src/main/res/menu/login_page_menu.xml b/app/src/main/res/menu/login_page_menu.xml index cb69dbd7..f92dc465 100644 --- a/app/src/main/res/menu/login_page_menu.xml +++ b/app/src/main/res/menu/login_page_menu.xml @@ -5,6 +5,6 @@ android:id="@+id/action_add" android:icon="@drawable/ic_add" android:iconTint="@color/titleTextColor" - android:title="Add" + android:title="@string/menu_add_button" app:showAsAction="always" /> \ No newline at end of file diff --git a/app/src/main/res/menu/main_page_menu.xml b/app/src/main/res/menu/main_page_menu.xml index 63726b18..cdedc53e 100644 --- a/app/src/main/res/menu/main_page_menu.xml +++ b/app/src/main/res/menu/main_page_menu.xml @@ -4,12 +4,12 @@ + android:title="@string/menu_search_button" + app:showAsAction="ifRoom" /> \ No newline at end of file diff --git a/app/src/main/res/menu/playlist_page_menu.xml b/app/src/main/res/menu/playlist_page_menu.xml index c442cd7b..f7c9d009 100644 --- a/app/src/main/res/menu/playlist_page_menu.xml +++ b/app/src/main/res/menu/playlist_page_menu.xml @@ -5,6 +5,6 @@ android:id="@+id/action_download_playlist" android:icon="@drawable/ic_file_download" android:iconTint="@color/titleTextColor" - android:title="Download all" + android:title="@string/menu_download_all_button" app:showAsAction="never" /> \ No newline at end of file diff --git a/app/src/main/res/menu/toolbar_menu.xml b/app/src/main/res/menu/toolbar_menu.xml index 43920171..535c5c52 100644 --- a/app/src/main/res/menu/toolbar_menu.xml +++ b/app/src/main/res/menu/toolbar_menu.xml @@ -6,7 +6,7 @@ android:id="@+id/action_search" android:icon="@drawable/ic_search" android:iconTint="@color/titleTextColor" - android:title="Search" + android:title="@string/menu_search_button" app:actionViewClass="android.widget.SearchView" app:showAsAction="ifRoom" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index da8aba8f..cc55f6ef 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,10 +7,10 @@ Covers cache Media cache Cover size - Library - Home + Library + Home Search - Download + Download -- @@ -39,4 +39,145 @@ Playing Notification Downloads + Error retrieving album\'s radio + Error retrieving artist + Albums + + Recently played albums + Most played albums + Recently added albums + Starred albums + Downloaded albums + Albums + Error retrieving artist\'s radio + Error retrieving artist\'s tracks + Artists + Starred artists + Downloaded artists + Artists + Select two or more filters + Filter + Genre Catalogue + Subsonic servers + \"Song count: \" + Playlist Catalogue + Add to a playlist + Create + Cancel + Create playlist + Save + Delete + Cancel + Required + \" tracks\" + \"Song count: \" + \"Playlist duration: \" + Rate + Cancel + Save + Enter at least three characters + Add server + Delete + Save + Cancel + Error retrieving album + Error retrieving artist + Recently played tracks + Most played tracks + Recently added tracks + : all tracks + \'s top tracks + \"Year \" + Starred tracks + Downloaded + Songs + Offline mode + Instant mix + Shuffle + Play next + Add to queue + Download all + Remove all + Go to artist + Instant mix + Shuffle + Instant mix + Play next + Add to queue + Rate + Download + Remove + Add to playlist + Go to album + Go to artist + No playlists created + Playlist Name + Server Name + Username + Password + Server URL + Direct access + Browse Albums + Play + Shuffle + More like this + Browse Artists + Shuffle + Radio + Biography + More + Most Streamed Songs + See all + Albums + More like this + No downloads yet! + Once you download a song, you\'ll find it here + Artists + See all + Albums + See all + Tracks + See all + Playlists + See all + Filter Genres + Browse Genres + Music discovery + Start mix from a song you liked + Made for you + Most played + See all + Last played + See all + Flashback + ★ Starred tracks + See all + ★ Starred albums + See all + ★ Starred artists + See all + Recently added + See all + New releases + Albums + See all + Artists + See all + Genres + See all + Playlists + See all + Subsonic servers + No server added + Browse Playlists + Play + Shuffle + Songs + Albums + Artists + Now playing + Download all + Add + Search + Settings \ No newline at end of file