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