String extraction from everywhere

This commit is contained in:
CappielloAntonio 2021-09-04 19:00:41 +02:00
parent d169e3b188
commit b28c230f5a
53 changed files with 333 additions and 170 deletions

17
.idea/misc.xml generated
View file

@ -41,22 +41,32 @@
<entry key="app/src/main/res/drawable/ui_empty_list.xml" value="0.28055555555555556" />
<entry key="app/src/main/res/layout/activity_main.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/bottom_sheet_album_dialog.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/bottom_sheet_artist_dialog.xml" value="0.225" />
<entry key="app/src/main/res/layout/bottom_sheet_song_dialog.xml" value="0.21666666666666667" />
<entry key="app/src/main/res/layout/chip_search_filter_genre.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/dialog_playlist_chooser.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/dialog_playlist_creator.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/dialog_playlist_editor.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/dialog_rating.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/dialog_server_signup.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/fragment_album_catalogue.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/fragment_album_list_page.xml" value="0.225" />
<entry key="app/src/main/res/layout/fragment_album_page.xml" value="0.2769409038238702" />
<entry key="app/src/main/res/layout/fragment_artist_catalogue.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/fragment_artist_list_page.xml" value="0.225" />
<entry key="app/src/main/res/layout/fragment_artist_page.xml" value="0.1" />
<entry key="app/src/main/res/layout/fragment_download.xml" value="0.283363802559415" />
<entry key="app/src/main/res/layout/fragment_filter.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/fragment_genre_catalogue.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/fragment_home.xml" value="0.283363802559415" />
<entry key="app/src/main/res/layout/fragment_landing.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/fragment_library.xml" value="0.1" />
<entry key="app/src/main/res/layout/fragment_login.xml" value="0.3166496424923391" />
<entry key="app/src/main/res/layout/fragment_player_bottom_sheet.xml" value="0.3166496424923391" />
<entry key="app/src/main/res/layout/fragment_playlist_catalogue.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/fragment_playlist_page.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/fragment_settings.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/fragment_song_list_page.xml" value="0.225" />
<entry key="app/src/main/res/layout/item_home_album_placeholder.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/item_home_discover_song.xml" value="0.3166496424923391" />
<entry key="app/src/main/res/layout/item_home_discovery_placeholder.xml" value="0.3229166666666667" />
@ -72,7 +82,14 @@
<entry key="app/src/main/res/layout/item_horizontal_playlist_dialog_track.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/item_horizontal_track.xml" value="0.5557163531114327" />
<entry key="app/src/main/res/layout/item_library_album.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/item_library_artist.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/item_library_artist_page_or_similar_album.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/item_library_catalogue_album.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/item_library_catalogue_artist.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/item_library_catalogue_genre.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/item_library_catalogue_playlist.xml" value="0.225" />
<entry key="app/src/main/res/layout/item_library_genre.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/item_library_similar_artist.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/item_login_server.xml" value="0.25" />
<entry key="app/src/main/res/layout/item_placehoder_discovery.xml" value="0.3229166666666667" />
<entry key="app/src/main/res/layout/item_placeholder_album.xml" value="0.1" />

View file

@ -109,7 +109,7 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter<DiscoverSongAdapte
songRepository.getInstantMix(songs.get(getBindingAdapterPosition()), 20, new MediaCallback() {
@Override
public void onError(Exception exception) {
Log.e(TAG, "onError: " + exception.getMessage());
Log.e(TAG, "onError() " + exception.getMessage());
}
@Override

View file

@ -53,7 +53,7 @@ public class PlaylistAdapter extends RecyclerView.Adapter<PlaylistAdapter.ViewHo
Playlist playlist = playlists.get(position);
holder.textPlaylistName.setText(MusicUtil.getReadableString(playlist.getName()));
holder.textPlaylistSongCount.setText("Song count: " + playlist.getSongCount());
holder.textPlaylistSongCount.setText(R.string.playlist_info_song_count + playlist.getSongCount());
CustomGlideRequest.Builder
.from(context, playlist.getPrimary(), CustomGlideRequest.PLAYLIST_PIC, null)

View file

@ -48,7 +48,7 @@ public class PlaylistHorizontalAdapter extends RecyclerView.Adapter<PlaylistHori
Playlist playlist = playlists.get(position);
holder.playlistTitle.setText(MusicUtil.getReadableString(playlist.getName()));
holder.playlistTrackCount.setText(MusicUtil.getReadableString(playlist.getSongCount() + " tracks"));
holder.playlistTrackCount.setText(playlist.getSongCount() + R.string.playlist_counted_tracks);
holder.playlistDuration.setText(MusicUtil.getReadableDurationString(playlist.getDuration(), false));
}

View file

@ -104,7 +104,7 @@ public class SimilarTrackAdapter extends RecyclerView.Adapter<SimilarTrackAdapte
songRepository.getInstantMix(songs.get(getBindingAdapterPosition()), 20, new MediaCallback() {
@Override
public void onError(Exception exception) {
Log.e(TAG, "onError: " + exception.getMessage());
Log.e(TAG, "onError() " + exception.getMessage());
}
@Override

View file

@ -91,9 +91,9 @@ public class AlbumCatalogueFragment 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_catalogue_title);
} else {
bind.toolbar.setTitle("");
bind.toolbar.setTitle(R.string.empty_string);
}
});
}

View file

@ -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);
}
});
}

View file

@ -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();
}));
}

View file

@ -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);
}
});
}

View file

@ -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);
}
});
}

View file

@ -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<Song>) 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();
}
}
});

View file

@ -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);
}
});
}

View file

@ -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);
}
});
}

View file

@ -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);
}
});
}

View file

@ -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);
}
});
}

View file

@ -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);

View file

@ -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();
}
});

View file

@ -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);
}
});
}

View file

@ -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<Song>) 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();
}));

View file

@ -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<Song>) 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();

View file

@ -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();
}));

View file

@ -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();
}

View file

@ -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;
}

View file

@ -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();
}

View file

@ -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;
}

View file

@ -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" />

View file

@ -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" />

View file

@ -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" />

View file

@ -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" />

View file

@ -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"/>

View file

@ -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" />
</com.google.android.material.textfield.TextInputLayout>

View file

@ -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"/>
</LinearLayout>

View file

@ -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" />

View file

@ -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" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/similar_albums_recycler_view"

View file

@ -40,7 +40,7 @@
android:paddingTop="16dp"
android:paddingEnd="16dp"
android:paddingBottom="24dp"
android:text="Browse Artists"
android:text="@string/artist_catalogue_title_expanded"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="parent" />

View file

@ -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" />
<TextView
android:id="@+id/bio_more_text_view_clickable"
@ -143,7 +143,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingEnd="16dp"
android:text="More" />
android:text="@string/artist_page_title_biography_more_button" />
</LinearLayout>
<TextView
@ -177,7 +177,7 @@
android:layout_weight="1"
android:paddingStart="16dp"
android:paddingEnd="8dp"
android:text="Most Streamed Songs" />
android:text="@string/artist_page_title_most_streamed_song_section" />
<TextView
android:id="@+id/most_streamed_song_text_view_clickable"
@ -185,7 +185,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingEnd="16dp"
android:text="See all" />
android:text="@string/artist_page_title_most_streamed_song_see_all_button" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
@ -211,7 +211,7 @@
android:paddingStart="16dp"
android:paddingTop="8dp"
android:paddingEnd="20dp"
android:text="Albums" />
android:text="@string/artist_page_title_album_section" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/albums_recycler_view"
@ -239,7 +239,7 @@
android:paddingStart="16dp"
android:paddingTop="8dp"
android:paddingEnd="20dp"
android:text="More like this" />
android:text="@string/artist_page_title_album_more_like_this_button" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/similar_artists_recycler_view"

View file

@ -65,7 +65,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="12dp"
android:text="No downloads yet!" />
android:text="@string/download_info_empty_title" />
<TextView
android:id="@+id/subtitle_download_screen"
@ -74,7 +74,7 @@
android:layout_height="wrap_content"
android:paddingStart="56dp"
android:paddingEnd="56dp"
android:text="Once you download a song, you'll find it here" />
android:text="@string/download_info_empty_subtitle" />
</LinearLayout>
<androidx.core.widget.NestedScrollView
@ -115,7 +115,7 @@
android:layout_weight="1"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:text="Artists" />
android:text="@string/download_title_artist_section" />
<TextView
@ -125,7 +125,7 @@
android:layout_height="wrap_content"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/download_title_artist_see_all_button" />
</LinearLayout>
@ -170,7 +170,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="Albums" />
android:text="@string/download_title_album_section" />
<TextView
@ -181,7 +181,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/download_title_album_see_all" />
</LinearLayout>
@ -226,7 +226,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="Tracks" />
android:text="@string/download_title_tracks_section" />
<TextView
@ -237,7 +237,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/download_title_tracks_see_all_button" />
</LinearLayout>
@ -282,7 +282,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="Playlists" />
android:text="@string/download_title_playlist_section" />
<TextView
@ -293,7 +293,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/download_title_playlist_see_all_button" />
</LinearLayout>

View file

@ -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" />

View file

@ -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" />

View file

@ -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" />
<!-- slideview -->
<androidx.viewpager2.widget.ViewPager2
@ -101,7 +101,7 @@
android:paddingStart="16dp"
android:paddingTop="20dp"
android:paddingEnd="16dp"
android:text="Start mix from a song you liked"
android:text="@string/home_subtitle_made_for_you"
android:textAllCaps="true" />
<TextView
@ -111,7 +111,7 @@
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Made for you" />
android:text="@string/home_title_made_for_you" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/similar_tracks_recycler_view"
@ -157,7 +157,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="Most played" />
android:text="@string/home_title_most_played" />
<TextView
@ -168,7 +168,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/home_title_most_played_see_all_button" />
</LinearLayout>
@ -215,7 +215,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="Last played" />
android:text="@string/home_title_last_played" />
<TextView
@ -226,7 +226,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/home_title_last_played_see_all_button" />
</LinearLayout>
@ -263,7 +263,7 @@
android:paddingStart="16dp"
android:paddingTop="20dp"
android:paddingEnd="16dp"
android:text="Flashback" />
android:text="@string/home_title_flashback" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/years_recycler_view"
@ -308,7 +308,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="★ Starred tracks" />
android:text="@string/home_title_starred_tracks" />
<TextView
@ -319,7 +319,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/home_title_starred_tracks_see_all_button" />
</LinearLayout>
@ -363,7 +363,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="★ Starred albums" />
android:text="@string/home_title_starred_albums" />
<TextView
@ -374,7 +374,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/home_title_starred_albums_see_all_button" />
</LinearLayout>
@ -418,7 +418,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="★ Starred artists" />
android:text="@string/home_title_starred_artists" />
<TextView
@ -429,7 +429,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/home_title_starred_artists_see_all_button" />
</LinearLayout>
@ -474,7 +474,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="Recently added" />
android:text="@string/home_title_recently_added" />
<TextView
@ -485,7 +485,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/home_title_recently_added_see_all_button" />
</LinearLayout>

View file

@ -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" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/new_releases_recycler_view"
@ -110,7 +110,7 @@
android:layout_weight="1"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:text="Albums" />
android:text="@string/library_title_album" />
<TextView
@ -120,7 +120,7 @@
android:layout_height="wrap_content"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/library_title_album_see_all_button" />
</LinearLayout>
@ -168,7 +168,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="Artists" />
android:text="@string/library_title_artist" />
<TextView
@ -179,7 +179,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/library_title_artist_see_all_button" />
</LinearLayout>
@ -227,7 +227,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="Genres" />
android:text="@string/library_title_genre" />
<TextView
@ -238,7 +238,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/library_title_genre_see_all_button" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
@ -284,7 +284,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="Playlists" />
android:text="@string/library_title_playlist" />
<TextView
@ -295,7 +295,7 @@
android:paddingStart="8dp"
android:paddingTop="12dp"
android:paddingEnd="8dp"
android:text="See all" />
android:text="@string/library_title_playlist_see_all_button" />
</LinearLayout>

View file

@ -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"

View file

@ -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" />

View file

@ -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"

View file

@ -65,7 +65,7 @@
android:paddingStart="16dp"
android:paddingTop="20dp"
android:paddingEnd="16dp"
android:text="Songs" />
android:text="@string/search_title_song" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/search_result_tracks_recycler_view"
@ -94,7 +94,7 @@
android:paddingStart="16dp"
android:paddingTop="20dp"
android:paddingEnd="16dp"
android:text="Albums" />
android:text="@string/search_title_album" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/search_result_album_recycler_view"
@ -125,7 +125,7 @@
android:paddingStart="16dp"
android:paddingTop="20dp"
android:paddingEnd="16dp"
android:text="Artists" />
android:text="@string/search_title_artist" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/search_result_artist_recycler_view"

View file

@ -17,7 +17,7 @@
android:background="@android:color/transparent"
android:paddingStart="24dp"
android:paddingTop="20dp"
android:text="Now playing"
android:text="@string/player_bottom_sheet_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View file

@ -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" />
</menu>

View file

@ -3,13 +3,13 @@
<item
android:id="@+id/homeFragment"
android:icon="@drawable/ic_home"
android:title="@string/home_menu_label" />
android:title="@string/menu_home_label" />
<item
android:id="@+id/libraryFragment"
android:icon="@drawable/ic_graphic_eq"
android:title="@string/library_menu_label" />
android:title="@string/menu_library_label" />
<item
android:id="@+id/downloadFragment"
android:icon="@drawable/ic_play_for_work"
android:title="@string/download_menu_label" />
android:title="@string/menu_download_label" />
</menu>

View file

@ -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" />
</menu>

View file

@ -4,12 +4,12 @@
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_search"
android:title="Search"
app:showAsAction="always" />
android:title="@string/menu_search_button"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_settings"
android:title="Settings"
android:title="@string/menu_settings_button"
app:showAsAction="never" />
</menu>

View file

@ -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" />
</menu>

View file

@ -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" />

View file

@ -7,10 +7,10 @@
<string name="covers_cache">Covers cache</string>
<string name="media_cache">Media cache</string>
<string name="image_size">Cover size</string>
<string name="library_menu_label">Library</string>
<string name="home_menu_label">Home</string>
<string name="menu_library_label">Library</string>
<string name="menu_home_label">Home</string>
<string name="search_menu_label">Search</string>
<string name="download_menu_label">Download</string>
<string name="menu_download_label">Download</string>
<string name="label_placeholder">--</string>
<string name="label_dot_separator"></string>
@ -39,4 +39,145 @@
<string name="playing_notification_name">Playing Notification</string>
<string name="exo_download_notification_channel_name">Downloads</string>
<string name="album_error_retrieving_radio">Error retrieving album\'s radio</string>
<string name="album_error_retrieving_artist">Error retrieving artist</string>
<string name="album_catalogue_title">Albums</string>
<string name="empty_string" />
<string name="album_list_page_recently_played">Recently played albums</string>
<string name="album_list_page_most_played">Most played albums</string>
<string name="album_list_page_recently_added">Recently added albums</string>
<string name="album_list_page_starred">Starred albums</string>
<string name="album_list_page_downloaded">Downloaded albums</string>
<string name="album_list_page_title">Albums</string>
<string name="artist_error_retrieving_radio">Error retrieving artist\'s radio</string>
<string name="artist_error_retrieving_tracks">Error retrieving artist\'s tracks</string>
<string name="artist_catalogue_title">Artists</string>
<string name="artist_list_page_starred">Starred artists</string>
<string name="artist_list_page_downloaded">Downloaded artists</string>
<string name="artist_list_page_title">Artists</string>
<string name="filter_info_selection">Select two or more filters</string>
<string name="filter_title">Filter</string>
<string name="genre_catalogue_title">Genre Catalogue</string>
<string name="login_title">Subsonic servers</string>
<string name="playlist_info_song_count">\"Song count: \"</string>
<string name="playlist_catalogue_title">Playlist Catalogue</string>
<string name="playlist_chooser_dialog_title">Add to a playlist</string>
<string name="playlist_chooser_dialog_neutral_button">Create</string>
<string name="playlist_chooser_dialog_negative_button">Cancel</string>
<string name="playlist_editor_dialog_title">Create playlist</string>
<string name="playlist_editor_dialog_positive_button">Save</string>
<string name="playlist_editor_dialog_neutral_button">Delete</string>
<string name="playlist_editor_dialog_negative_button">Cancel</string>
<string name="error_required">Required</string>
<string name="playlist_counted_tracks">\" tracks\"</string>
<string name="playlist_song_count">\"Song count: \"</string>
<string name="playlist_duration">\"Playlist duration: \"</string>
<string name="rating_dialog_title">Rate</string>
<string name="rating_dialog_negative_button">Cancel</string>
<string name="rating_dialog_positive_button">Save</string>
<string name="search_info_minimum_characters">Enter at least three characters</string>
<string name="server_signup_dialog_title">Add server</string>
<string name="server_signup_dialog_neutral_button">Delete</string>
<string name="server_signup_dialog_positive_button">Save</string>
<string name="server_signup_dialog_negative_button">Cancel</string>
<string name="song_bottom_sheet_error_retrieving_album">Error retrieving album</string>
<string name="song_bottom_sheet_error_retrieving_artist">Error retrieving artist</string>
<string name="song_list_page_recently_played">Recently played tracks</string>
<string name="song_list_page_most_played">Most played tracks</string>
<string name="song_list_page_recently_added">Recently added tracks</string>
<string name="song_list_page_all">: all tracks</string>
<string name="song_list_page_top">\'s top tracks</string>
<string name="song_list_page_year">\"Year \"</string>
<string name="song_list_page_starred">Starred tracks</string>
<string name="song_list_page_downloaded">Downloaded</string>
<string name="song_list_page_title">Songs</string>
<string name="activity_info_offline_mode">Offline mode</string>
<string name="album_bottom_sheet_instant_mix">Instant mix</string>
<string name="album_bottom_sheet_shuffle">Shuffle</string>
<string name="album_bottom_sheet_play_next">Play next</string>
<string name="album_bottom_sheet_add_to_queue">Add to queue</string>
<string name="album_bottom_sheet_download_all">Download all</string>
<string name="album_bottom_sheet_remove_all">Remove all</string>
<string name="album_bottom_sheet_go_to_artist">Go to artist</string>
<string name="artist_bottom_sheet_instant_mix">Instant mix</string>
<string name="artist_bottom_sheet_shuffle">Shuffle</string>
<string name="song_bottom_sheet_instant_mix">Instant mix</string>
<string name="song_bottom_sheet_play_next">Play next</string>
<string name="song_bottom_sheet_add_to_queue">Add to queue</string>
<string name="song_bottom_sheet_rate">Rate</string>
<string name="song_bottom_sheet_download">Download</string>
<string name="song_bottom_sheet_remove">Remove</string>
<string name="song_bottom_sheet_add_to_playlist">Add to playlist</string>
<string name="song_bottom_sheet_go_to_album">Go to album</string>
<string name="song_bottom_sheet_go_to_artist">Go to artist</string>
<string name="playlist_chooser_dialog_empty">No playlists created</string>
<string name="playlist_editor_dialog_hint_name">Playlist Name</string>
<string name="server_signup_dialog_hint_name">Server Name</string>
<string name="server_signup_dialog_hint_username">Username</string>
<string name="server_signup_dialog_hint_password">Password</string>
<string name="server_signup_dialog_hint_url">Server URL</string>
<string name="server_signup_dialog_action_direct_access">Direct access</string>
<string name="album_catalogue_title_expanded">Browse Albums</string>
<string name="album_page_play_button">Play</string>
<string name="album_page_shuffle_button">Shuffle</string>
<string name="album_page_extra_info_button">More like this</string>
<string name="artist_catalogue_title_expanded">Browse Artists</string>
<string name="artist_page_shuffle_button">Shuffle</string>
<string name="artist_page_radio_button">Radio</string>
<string name="artist_page_title_biography_section">Biography</string>
<string name="artist_page_title_biography_more_button">More</string>
<string name="artist_page_title_most_streamed_song_section">Most Streamed Songs</string>
<string name="artist_page_title_most_streamed_song_see_all_button">See all</string>
<string name="artist_page_title_album_section">Albums</string>
<string name="artist_page_title_album_more_like_this_button">More like this</string>
<string name="download_info_empty_title">No downloads yet!</string>
<string name="download_info_empty_subtitle">Once you download a song, you\'ll find it here</string>
<string name="download_title_artist_section">Artists</string>
<string name="download_title_artist_see_all_button">See all</string>
<string name="download_title_album_section">Albums</string>
<string name="download_title_album_see_all">See all</string>
<string name="download_title_tracks_section">Tracks</string>
<string name="download_title_tracks_see_all_button">See all</string>
<string name="download_title_playlist_section">Playlists</string>
<string name="download_title_playlist_see_all_button">See all</string>
<string name="filter_title_expanded">Filter Genres</string>
<string name="genre_catalogue_title_expanded">Browse Genres</string>
<string name="home_title_music_discovery">Music discovery</string>
<string name="home_subtitle_made_for_you">Start mix from a song you liked</string>
<string name="home_title_made_for_you">Made for you</string>
<string name="home_title_most_played">Most played</string>
<string name="home_title_most_played_see_all_button">See all</string>
<string name="home_title_last_played">Last played</string>
<string name="home_title_last_played_see_all_button">See all</string>
<string name="home_title_flashback">Flashback</string>
<string name="home_title_starred_tracks">★ Starred tracks</string>
<string name="home_title_starred_tracks_see_all_button">See all</string>
<string name="home_title_starred_albums">★ Starred albums</string>
<string name="home_title_starred_albums_see_all_button">See all</string>
<string name="home_title_starred_artists">★ Starred artists</string>
<string name="home_title_starred_artists_see_all_button">See all</string>
<string name="home_title_recently_added">Recently added</string>
<string name="home_title_recently_added_see_all_button">See all</string>
<string name="library_title_new_releases">New releases</string>
<string name="library_title_album">Albums</string>
<string name="library_title_album_see_all_button">See all</string>
<string name="library_title_artist">Artists</string>
<string name="library_title_artist_see_all_button">See all</string>
<string name="library_title_genre">Genres</string>
<string name="library_title_genre_see_all_button">See all</string>
<string name="library_title_playlist">Playlists</string>
<string name="library_title_playlist_see_all_button">See all</string>
<string name="login_title_expanded">Subsonic servers</string>
<string name="login_empty">No server added</string>
<string name="playlist_catalogue_title_expanded">Browse Playlists</string>
<string name="playlist_page_play_button">Play</string>
<string name="playlist_page_shuffle_button">Shuffle</string>
<string name="search_title_song">Songs</string>
<string name="search_title_album">Albums</string>
<string name="search_title_artist">Artists</string>
<string name="player_bottom_sheet_title">Now playing</string>
<string name="menu_download_all_button">Download all</string>
<string name="menu_add_button">Add</string>
<string name="menu_search_button">Search</string>
<string name="menu_settings_button">Settings</string>
</resources>