Changed the way to check if a view is empty, fixed some strings, fixed fastscroller alignment.
This commit is contained in:
parent
450aca9149
commit
8ba0c72037
43 changed files with 185 additions and 204 deletions
|
|
@ -21,7 +21,7 @@ repositories {
|
|||
|
||||
android {
|
||||
compileSdkVersion 22
|
||||
buildToolsVersion "23.0.0 rc1"
|
||||
buildToolsVersion '22.0.1'
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.kabouzeid.gramophone"
|
||||
|
|
@ -49,22 +49,18 @@ dependencies {
|
|||
compile('com.crashlytics.sdk.android:crashlytics:2.2.1@aar') {
|
||||
transitive = true;
|
||||
}
|
||||
|
||||
compile 'com.android.support:support-v13:22.2.0'
|
||||
compile 'com.android.support:appcompat-v7:22.2.0'
|
||||
compile 'com.android.support:recyclerview-v7:22.2.0'
|
||||
compile 'com.android.support:cardview-v7:22.2.0'
|
||||
compile 'com.android.support:palette-v7:22.2.0'
|
||||
compile 'com.android.support:design:22.2.0'
|
||||
|
||||
compile 'com.github.ksoichiro:android-observablescrollview:1.5.1'
|
||||
compile 'asia.ivity.android:drag-sort-listview:1.0'
|
||||
|
||||
compile 'com.mcxiaoke.volley:library:1.0.16'
|
||||
compile 'com.squareup:otto:1.3.7'
|
||||
compile 'de.hdodenhof:circleimageview:1.3.0'
|
||||
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.4'
|
||||
|
||||
compile 'com.afollestad:material-dialogs:0.7.5.0'
|
||||
compile 'com.afollestad:material-dialogs:0.7.5.5'
|
||||
compile 'com.afollestad:material-cab:0.1.4'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
package com.kabouzeid.gramophone.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.afollestad.materialcab.MaterialCab;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -18,11 +20,13 @@ public abstract class AbsMultiSelectAdapter<VH extends RecyclerView.ViewHolder,
|
|||
private MaterialCab cab;
|
||||
private ArrayList<I> checked;
|
||||
private int menuRes;
|
||||
private final Context context;
|
||||
|
||||
public AbsMultiSelectAdapter(@Nullable CabHolder cabHolder, int menuRes) {
|
||||
public AbsMultiSelectAdapter(Context context, @Nullable CabHolder cabHolder, int menuRes) {
|
||||
this.cabHolder = cabHolder;
|
||||
checked = new ArrayList<>();
|
||||
this.menuRes = menuRes;
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
protected void toggleChecked(final int position) {
|
||||
|
|
@ -36,7 +40,7 @@ public abstract class AbsMultiSelectAdapter<VH extends RecyclerView.ViewHolder,
|
|||
final int size = checked.size();
|
||||
if (size <= 0) cab.finish();
|
||||
else if (size == 1) cab.setTitle(checked.get(0).toString());
|
||||
else if (size > 1) cab.setTitle(String.valueOf(size));
|
||||
else if (size > 1) cab.setTitle(context.getString(R.string.x_selected, size));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,8 +23,6 @@ import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog;
|
|||
import com.kabouzeid.gramophone.dialogs.DeleteSongsDialog;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.interfaces.OnUpdatedListener;
|
||||
import com.kabouzeid.gramophone.interfaces.SelfUpdating;
|
||||
import com.kabouzeid.gramophone.loader.AlbumLoader;
|
||||
import com.kabouzeid.gramophone.loader.AlbumSongLoader;
|
||||
import com.kabouzeid.gramophone.model.Album;
|
||||
|
|
@ -49,13 +47,12 @@ import java.util.List;
|
|||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder, Album> implements SelfUpdating {
|
||||
public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder, Album> {
|
||||
|
||||
public static final String TAG = AlbumAdapter.class.getSimpleName();
|
||||
private final AppCompatActivity activity;
|
||||
private boolean usePalette;
|
||||
private List<Album> dataSet;
|
||||
private OnUpdatedListener listener;
|
||||
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
|
|
@ -133,11 +130,6 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
|
|||
return songs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnUpdatedListener(OnUpdatedListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
|
||||
final ImageView albumArt;
|
||||
final TextView title;
|
||||
|
|
@ -193,7 +185,7 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
|
|||
}
|
||||
|
||||
public AlbumAdapter(AppCompatActivity activity, @Nullable CabHolder cabHolder) {
|
||||
super(cabHolder, R.menu.menu_media_selection);
|
||||
super(activity, cabHolder, R.menu.menu_media_selection);
|
||||
this.activity = activity;
|
||||
usePalette = PreferenceUtils.getInstance(activity).coloredAlbumFootersEnabled();
|
||||
loadDataSet();
|
||||
|
|
@ -201,7 +193,6 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
|
|||
|
||||
private void loadDataSet() {
|
||||
dataSet = AlbumLoader.getAllAlbums(activity);
|
||||
if (listener != null) listener.onUpdated(this);
|
||||
}
|
||||
|
||||
private void applyPalette(Bitmap bitmap, final TextView title, final TextView artist, final View footer) {
|
||||
|
|
|
|||
|
|
@ -17,8 +17,6 @@ import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog;
|
|||
import com.kabouzeid.gramophone.dialogs.DeleteSongsDialog;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.interfaces.OnUpdatedListener;
|
||||
import com.kabouzeid.gramophone.interfaces.SelfUpdating;
|
||||
import com.kabouzeid.gramophone.lastfm.artist.LastFMArtistThumbnailUrlLoader;
|
||||
import com.kabouzeid.gramophone.loader.ArtistLoader;
|
||||
import com.kabouzeid.gramophone.loader.ArtistSongLoader;
|
||||
|
|
@ -38,20 +36,18 @@ import java.util.List;
|
|||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolder, Artist> implements SelfUpdating {
|
||||
public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolder, Artist> {
|
||||
protected final AppCompatActivity activity;
|
||||
protected List<Artist> dataSet;
|
||||
private OnUpdatedListener listener;
|
||||
|
||||
public ArtistAdapter(AppCompatActivity activity, @Nullable CabHolder cabHolder) {
|
||||
super(cabHolder, R.menu.menu_media_selection);
|
||||
super(activity, cabHolder, R.menu.menu_media_selection);
|
||||
this.activity = activity;
|
||||
loadDataSet();
|
||||
}
|
||||
|
||||
private void loadDataSet() {
|
||||
dataSet = ArtistLoader.getAllArtists(activity);
|
||||
if (listener != null) listener.onUpdated(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -116,11 +112,6 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
|
|||
return songs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnUpdatedListener(OnUpdatedListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
|
||||
final TextView artistName;
|
||||
final TextView artistInfo;
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class ArtistAlbumAdapter extends AbsMultiSelectAdapter<ArtistAlbumAdapter
|
|||
private final int listMargin;
|
||||
|
||||
public ArtistAlbumAdapter(AppCompatActivity activity, ArrayList<Album> objects, @Nullable CabHolder cabHolder) {
|
||||
super(cabHolder, R.menu.menu_media_selection);
|
||||
super(activity, cabHolder, R.menu.menu_media_selection);
|
||||
this.activity = activity;
|
||||
dataSet = objects;
|
||||
listMargin = activity.getResources().getDimensionPixelSize(R.dimen.default_item_margin);
|
||||
|
|
|
|||
|
|
@ -18,8 +18,6 @@ import com.kabouzeid.gramophone.dialogs.DeletePlaylistDialog;
|
|||
import com.kabouzeid.gramophone.helper.MenuItemClickHelper;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.interfaces.OnUpdatedListener;
|
||||
import com.kabouzeid.gramophone.interfaces.SelfUpdating;
|
||||
import com.kabouzeid.gramophone.loader.PlaylistLoader;
|
||||
import com.kabouzeid.gramophone.loader.PlaylistSongLoader;
|
||||
import com.kabouzeid.gramophone.model.DataBaseChangedEvent;
|
||||
|
|
@ -35,22 +33,20 @@ import java.util.List;
|
|||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewHolder, Playlist> implements SelfUpdating {
|
||||
public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewHolder, Playlist> {
|
||||
|
||||
public static final String TAG = PlaylistAdapter.class.getSimpleName();
|
||||
protected final AppCompatActivity activity;
|
||||
protected List<Playlist> dataSet;
|
||||
private OnUpdatedListener listener;
|
||||
|
||||
public PlaylistAdapter(AppCompatActivity activity, @Nullable CabHolder cabHolder) {
|
||||
super(cabHolder, R.menu.menu_playlists_selection);
|
||||
super(activity, cabHolder, R.menu.menu_playlists_selection);
|
||||
this.activity = activity;
|
||||
loadDataSet();
|
||||
}
|
||||
|
||||
public void loadDataSet() {
|
||||
dataSet = PlaylistLoader.getAllPlaylists(activity);
|
||||
if (listener != null) listener.onUpdated(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -99,11 +95,6 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
|
|||
return songs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnUpdatedListener(OnUpdatedListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
|
||||
public final TextView playlistName;
|
||||
private final View menu;
|
||||
|
|
|
|||
|
|
@ -72,9 +72,6 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
|
|||
results.addAll(albums);
|
||||
}
|
||||
}
|
||||
if (results.isEmpty()) {
|
||||
results.add(activity.getResources().getString(R.string.no_results).toUpperCase());
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ public class AlbumSongAdapter extends AbsMultiSelectAdapter<AlbumSongAdapter.Vie
|
|||
protected ArrayList<Song> dataSet;
|
||||
|
||||
public AlbumSongAdapter(AppCompatActivity activity, ArrayList<Song> objects, @Nullable CabHolder cabHolder) {
|
||||
super(cabHolder, R.menu.menu_media_selection);
|
||||
super(activity, cabHolder, R.menu.menu_media_selection);
|
||||
this.activity = activity;
|
||||
dataSet = objects;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import android.widget.TextView;
|
|||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.AbsMultiSelectAdapter;
|
||||
import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog;
|
||||
import com.kabouzeid.gramophone.dialogs.DeleteFromPlaylistDialog;
|
||||
import com.kabouzeid.gramophone.dialogs.RemoveFromPlaylistDialog;
|
||||
import com.kabouzeid.gramophone.helper.MenuItemClickHelper;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
|
|
@ -40,7 +40,7 @@ public class PlaylistSongAdapter extends AbsMultiSelectAdapter<PlaylistSongAdapt
|
|||
protected ArrayList<PlaylistSong> dataSet;
|
||||
|
||||
public PlaylistSongAdapter(AppCompatActivity activity, ArrayList<PlaylistSong> objects, @Nullable CabHolder cabHolder) {
|
||||
super(cabHolder, R.menu.menu_playlists_songs_selection);
|
||||
super(activity, cabHolder, R.menu.menu_playlists_songs_selection);
|
||||
this.activity = activity;
|
||||
dataSet = objects;
|
||||
}
|
||||
|
|
@ -88,7 +88,7 @@ public class PlaylistSongAdapter extends AbsMultiSelectAdapter<PlaylistSongAdapt
|
|||
protected void onMultipleItemAction(MenuItem menuItem, ArrayList<PlaylistSong> selection) {
|
||||
switch (menuItem.getItemId()) {
|
||||
case R.id.action_delete_from_playlist:
|
||||
DeleteFromPlaylistDialog.create(selection).show(activity.getSupportFragmentManager(), "DELETE_FROM_PLAYLIST");
|
||||
RemoveFromPlaylistDialog.create(selection).show(activity.getSupportFragmentManager(), "DELETE_FROM_PLAYLIST");
|
||||
break;
|
||||
case R.id.action_add_to_playlist:
|
||||
//noinspection unchecked
|
||||
|
|
@ -127,7 +127,7 @@ public class PlaylistSongAdapter extends AbsMultiSelectAdapter<PlaylistSongAdapt
|
|||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_delete_from_playlist:
|
||||
DeleteFromPlaylistDialog.create(dataSet.get(getAdapterPosition())).show(activity.getSupportFragmentManager(), "DELETE_FROM_PLAYLIST");
|
||||
RemoveFromPlaylistDialog.create(dataSet.get(getAdapterPosition())).show(activity.getSupportFragmentManager(), "DELETE_FROM_PLAYLIST");
|
||||
return true;
|
||||
case R.id.action_go_to_album:
|
||||
Pair[] albumPairs = new Pair[]{
|
||||
|
|
|
|||
|
|
@ -22,8 +22,6 @@ import com.kabouzeid.gramophone.dialogs.DeleteSongsDialog;
|
|||
import com.kabouzeid.gramophone.helper.MenuItemClickHelper;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.interfaces.OnUpdatedListener;
|
||||
import com.kabouzeid.gramophone.interfaces.SelfUpdating;
|
||||
import com.kabouzeid.gramophone.loader.SongLoader;
|
||||
import com.kabouzeid.gramophone.model.DataBaseChangedEvent;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
|
|
@ -39,7 +37,7 @@ import java.util.ArrayList;
|
|||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, Song> implements MaterialCab.Callback, SelfUpdating {
|
||||
public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, Song> implements MaterialCab.Callback {
|
||||
|
||||
public static final String TAG = AlbumSongAdapter.class.getSimpleName();
|
||||
private static final int SHUFFLE_BUTTON = 0;
|
||||
|
|
@ -47,17 +45,15 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
|
|||
|
||||
protected final AppCompatActivity activity;
|
||||
protected ArrayList<Song> dataSet;
|
||||
private OnUpdatedListener listener;
|
||||
|
||||
public SongAdapter(AppCompatActivity activity, CabHolder cabHolder) {
|
||||
super(cabHolder, R.menu.menu_media_selection);
|
||||
super(activity, cabHolder, R.menu.menu_media_selection);
|
||||
this.activity = activity;
|
||||
loadDataSet();
|
||||
}
|
||||
|
||||
private void loadDataSet() {
|
||||
dataSet = SongLoader.getAllSongs(activity);
|
||||
if (listener != null) listener.onUpdated(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -129,11 +125,6 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnUpdatedListener(OnUpdatedListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
|
||||
final TextView songTitle;
|
||||
final TextView songInfo;
|
||||
|
|
|
|||
|
|
@ -16,16 +16,16 @@ import java.util.ArrayList;
|
|||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class DeleteFromPlaylistDialog extends DialogFragment {
|
||||
public class RemoveFromPlaylistDialog extends DialogFragment {
|
||||
|
||||
public static DeleteFromPlaylistDialog create(PlaylistSong song) {
|
||||
public static RemoveFromPlaylistDialog create(PlaylistSong song) {
|
||||
ArrayList<PlaylistSong> list = new ArrayList<>();
|
||||
list.add(song);
|
||||
return create(list);
|
||||
}
|
||||
|
||||
public static DeleteFromPlaylistDialog create(ArrayList<PlaylistSong> songs) {
|
||||
DeleteFromPlaylistDialog dialog = new DeleteFromPlaylistDialog();
|
||||
public static RemoveFromPlaylistDialog create(ArrayList<PlaylistSong> songs) {
|
||||
RemoveFromPlaylistDialog dialog = new RemoveFromPlaylistDialog();
|
||||
Bundle args = new Bundle();
|
||||
args.putSerializable("songs", songs);
|
||||
dialog.setArguments(args);
|
||||
|
|
@ -40,16 +40,16 @@ public class DeleteFromPlaylistDialog extends DialogFragment {
|
|||
int title;
|
||||
CharSequence content;
|
||||
if (songs.size() > 1) {
|
||||
title = R.string.delete_songs_from_playlist_title;
|
||||
content = Html.fromHtml(getString(R.string.delete_x_songs_from_playlist, songs.size()));
|
||||
title = R.string.remove_songs_from_playlist_title;
|
||||
content = Html.fromHtml(getString(R.string.remove_x_songs_from_playlist, songs.size()));
|
||||
} else {
|
||||
title = R.string.delete_song_from_playlist_title;
|
||||
content = Html.fromHtml(getString(R.string.delete_song_x_from_playlist, songs.get(0).title));
|
||||
title = R.string.remove_song_from_playlist_title;
|
||||
content = Html.fromHtml(getString(R.string.remove_song_x_from_playlist, songs.get(0).title));
|
||||
}
|
||||
return new MaterialDialog.Builder(getActivity())
|
||||
.title(title)
|
||||
.content(content)
|
||||
.positiveText(R.string.delete_action)
|
||||
.positiveText(R.string.remove_action)
|
||||
.negativeText(android.R.string.cancel)
|
||||
.callback(new MaterialDialog.ButtonCallback() {
|
||||
@Override
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
package com.kabouzeid.gramophone.interfaces;
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public interface OnUpdatedListener {
|
||||
|
||||
void onUpdated(SelfUpdating selfUpdating);
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
package com.kabouzeid.gramophone.interfaces;
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public interface SelfUpdating {
|
||||
|
||||
void setOnUpdatedListener(OnUpdatedListener listener);
|
||||
}
|
||||
|
|
@ -9,6 +9,8 @@ import android.os.Bundle;
|
|||
import android.os.Handler;
|
||||
import android.provider.MediaStore;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.design.widget.AppBarLayout;
|
||||
import android.support.design.widget.AppBarLayout.OnOffsetChangedListener;
|
||||
import android.support.design.widget.NavigationView;
|
||||
import android.support.design.widget.TabLayout;
|
||||
import android.support.v4.util.Pair;
|
||||
|
|
@ -67,6 +69,7 @@ public class MainActivity extends AbsFabActivity
|
|||
|
||||
private DrawerLayout drawerLayout;
|
||||
private ActionBarDrawerToggle drawerToggle;
|
||||
private AppBarLayout appBar;
|
||||
private Toolbar toolbar;
|
||||
private PagerAdapter pagerAdapter;
|
||||
private ViewPager viewPager;
|
||||
|
|
@ -83,7 +86,7 @@ public class MainActivity extends AbsFabActivity
|
|||
|
||||
initViews();
|
||||
setUpDrawerLayout();
|
||||
setUpToolBar();
|
||||
setUpToolbar();
|
||||
setUpViewPager();
|
||||
|
||||
if (PreferenceUtils.getInstance(this).coloredNavigationBarOtherScreensEnabled())
|
||||
|
|
@ -135,20 +138,19 @@ public class MainActivity extends AbsFabActivity
|
|||
tabLayout = (TabLayout) findViewById(R.id.tabs);
|
||||
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
|
||||
navigationView = (NavigationView) findViewById(R.id.nav_view);
|
||||
toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
appBar = (AppBarLayout) findViewById(R.id.appbar);
|
||||
}
|
||||
|
||||
private void setUpToolBar() {
|
||||
private void setUpToolbar() {
|
||||
setTitle(getResources().getString(R.string.app_name));
|
||||
toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
setToolBarColor();
|
||||
setAppBarColor();
|
||||
setSupportActionBar(toolbar);
|
||||
setUpDrawerToggle();
|
||||
}
|
||||
|
||||
private void setToolBarColor() {
|
||||
final int colorPrimary = getThemeColorPrimary();
|
||||
toolbar.setBackgroundColor(colorPrimary);
|
||||
tabLayout.setBackgroundColor(colorPrimary);
|
||||
private void setAppBarColor() {
|
||||
appBar.setBackgroundColor(getThemeColorPrimary());
|
||||
}
|
||||
|
||||
private void setUpNavigationView() {
|
||||
|
|
@ -597,4 +599,16 @@ public class MainActivity extends AbsFabActivity
|
|||
}));
|
||||
}
|
||||
}
|
||||
|
||||
public void addOnAppBarOffsetChangedListener(OnOffsetChangedListener onOffsetChangedListener) {
|
||||
appBar.addOnOffsetChangedListener(onOffsetChangedListener);
|
||||
}
|
||||
|
||||
public void removeOnAppBArOffsetChangedListener(OnOffsetChangedListener onOffsetChangedListener) {
|
||||
appBar.removeOnOffsetChangedListener(onOffsetChangedListener);
|
||||
}
|
||||
|
||||
public int getTotalAppBarScrollingRange() {
|
||||
return appBar.getTotalScrollRange();
|
||||
}
|
||||
}
|
||||
|
|
@ -29,6 +29,7 @@ public class SearchActivity extends AbsBaseActivity {
|
|||
private RecyclerView recyclerView;
|
||||
private SearchView searchView;
|
||||
private SearchAdapter searchAdapter;
|
||||
private View noResults;
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
@Override
|
||||
|
|
@ -37,6 +38,7 @@ public class SearchActivity extends AbsBaseActivity {
|
|||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_search);
|
||||
|
||||
noResults = findViewById(android.R.id.empty);
|
||||
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
searchAdapter = new SearchAdapter(this);
|
||||
|
|
@ -132,7 +134,9 @@ public class SearchActivity extends AbsBaseActivity {
|
|||
}
|
||||
|
||||
private void search(String query) {
|
||||
if (searchAdapter != null)
|
||||
if (searchAdapter != null) {
|
||||
searchAdapter.search(query);
|
||||
noResults.setVisibility(searchAdapter.getItemCount() < 1 ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,26 +2,29 @@ package com.kabouzeid.gramophone.ui.fragments.mainactivityfragments;
|
|||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.StringRes;
|
||||
import android.support.design.widget.AppBarLayout;
|
||||
import android.support.design.widget.AppBarLayout.OnOffsetChangedListener;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.interfaces.OnUpdatedListener;
|
||||
import com.kabouzeid.gramophone.interfaces.SelfUpdating;
|
||||
import com.kabouzeid.gramophone.views.FastScroller;
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public abstract class AbsMainActivityRecyclerViewFragment extends AbsMainActivityFragment implements OnUpdatedListener {
|
||||
public abstract class AbsMainActivityRecyclerViewFragment extends AbsMainActivityFragment implements OnOffsetChangedListener {
|
||||
|
||||
public static final String TAG = AbsMainActivityRecyclerViewFragment.class.getSimpleName();
|
||||
private RecyclerView recyclerView;
|
||||
private RecyclerView.Adapter mAdapter;
|
||||
private FastScroller fastScroller;
|
||||
private TextView empty;
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
|
|
@ -33,25 +36,34 @@ public abstract class AbsMainActivityRecyclerViewFragment extends AbsMainActivit
|
|||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
|
||||
fastScroller = (FastScroller) view.findViewById(R.id.fast_scroller);
|
||||
empty = (TextView) view.findViewById(android.R.id.empty);
|
||||
|
||||
final FastScroller fastScroller = (FastScroller) view.findViewById(R.id.fast_scroller);
|
||||
fastScroller.setRecyclerView(recyclerView);
|
||||
fastScroller.setPressedHandleColor(getMainActivity().getThemeColorPrimary());
|
||||
fastScroller.setOnHandleTouchListener(new View.OnTouchListener() {
|
||||
@Override
|
||||
public boolean onTouch(View v, MotionEvent event) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
fastScroller.setPressedHandleColor(getMainActivity().getThemeColorPrimary());
|
||||
|
||||
getMainActivity().addOnAppBarOffsetChangedListener(this);
|
||||
|
||||
setUpRecyclerView();
|
||||
|
||||
checkAndProcessAdapterSize();
|
||||
showEmptyMessageIfEmpty();
|
||||
}
|
||||
|
||||
private void setUpRecyclerView() {
|
||||
mAdapter = createAdapter();
|
||||
if (mAdapter instanceof SelfUpdating) ((SelfUpdating) mAdapter).setOnUpdatedListener(this);
|
||||
mAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
|
||||
@Override
|
||||
public void onChanged() {
|
||||
super.onChanged();
|
||||
showEmptyMessageIfEmpty();
|
||||
}
|
||||
});
|
||||
|
||||
recyclerView.setLayoutManager(createLayoutManager());
|
||||
recyclerView.setAdapter(mAdapter);
|
||||
|
|
@ -61,6 +73,13 @@ public abstract class AbsMainActivityRecyclerViewFragment extends AbsMainActivit
|
|||
return mAdapter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOffsetChanged(AppBarLayout appBarLayout, int i) {
|
||||
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) fastScroller.getLayoutParams();
|
||||
params.setMargins(params.leftMargin, params.topMargin, params.rightMargin, getMainActivity().getTotalAppBarScrollingRange() + i);
|
||||
fastScroller.setLayoutParams(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enableViews() {
|
||||
super.enableViews();
|
||||
|
|
@ -73,14 +92,11 @@ public abstract class AbsMainActivityRecyclerViewFragment extends AbsMainActivit
|
|||
recyclerView.setEnabled(false);
|
||||
}
|
||||
|
||||
private void checkAndProcessAdapterSize() {
|
||||
final View v = getView();
|
||||
private void showEmptyMessageIfEmpty() {
|
||||
RecyclerView.Adapter adapter = getAdapter();
|
||||
if (adapter != null && v != null) {
|
||||
final TextView emptyTextView = (TextView) v.findViewById(android.R.id.empty);
|
||||
|
||||
emptyTextView.setText(getEmptyMessage());
|
||||
emptyTextView.setVisibility(adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE);
|
||||
if (adapter != null) {
|
||||
empty.setText(getEmptyMessage());
|
||||
empty.setVisibility(adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -92,9 +108,4 @@ public abstract class AbsMainActivityRecyclerViewFragment extends AbsMainActivit
|
|||
protected abstract RecyclerView.LayoutManager createLayoutManager();
|
||||
|
||||
protected abstract RecyclerView.Adapter createAdapter();
|
||||
|
||||
@Override
|
||||
public void onUpdated(SelfUpdating selfUpdating) {
|
||||
checkAndProcessAdapterSize();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,11 +91,11 @@ public class FastScroller extends FrameLayout {
|
|||
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
|
||||
mHandle.setPressed(true);
|
||||
|
||||
mInitialBarHeight = mBar.getHeight();
|
||||
mInitialBarHeight = getBarHeight();
|
||||
mLastPressedYAdjustedToInitial = event.getY() + mHandle.getY() + mBar.getY();
|
||||
} else if (event.getActionMasked() == MotionEvent.ACTION_MOVE) {
|
||||
float newHandlePressedY = event.getY() + mHandle.getY() + mBar.getY();
|
||||
int barHeight = mBar.getHeight();
|
||||
int barHeight = getBarHeight();
|
||||
float newHandlePressedYAdjustedToInitial =
|
||||
newHandlePressedY + (mInitialBarHeight - barHeight);
|
||||
|
||||
|
|
@ -218,7 +218,7 @@ public class FastScroller extends FrameLayout {
|
|||
int verticalScrollRange = mRecyclerView.computeVerticalScrollRange()
|
||||
+ mRecyclerView.getPaddingBottom();
|
||||
|
||||
int barHeight = mBar.getHeight();
|
||||
int barHeight = getBarHeight();
|
||||
float ratio = (float) scrollOffset / (verticalScrollRange - barHeight);
|
||||
|
||||
int calculatedHandleHeight = (int) ((float) barHeight / verticalScrollRange * barHeight);
|
||||
|
|
@ -245,4 +245,8 @@ public class FastScroller extends FrameLayout {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
private int getBarHeight() {
|
||||
return mBar.getHeight();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
<android.support.v4.widget.DrawerLayout
|
||||
android:id="@+id/drawer_layout"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/drawer_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true"
|
||||
|
|
@ -13,10 +13,11 @@
|
|||
android:layout_height="match_parent">
|
||||
|
||||
<android.support.design.widget.AppBarLayout
|
||||
android:id="@+id/toolbar_frame"
|
||||
android:id="@+id/appbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
|
||||
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
|
||||
tools:ignore="UnusedAttribute">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
|
|
@ -42,7 +43,6 @@
|
|||
android:id="@+id/tabs"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/tab_height"
|
||||
android:background="?colorPrimary"
|
||||
app:tabContentStart="72dp"
|
||||
app:tabIndicatorColor="@color/white"
|
||||
app:tabMode="scrollable" />
|
||||
|
|
|
|||
|
|
@ -7,24 +7,28 @@
|
|||
<android.support.v7.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
style="@style/Toolbar"
|
||||
android:background="?colorPrimary"
|
||||
app:elevation="@dimen/toolbar_elevation" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="5dp"
|
||||
android:background="@drawable/shadow_down" />
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<TextView
|
||||
android:id="@android:id/empty"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="@dimen/empty_text_size"
|
||||
android:textColor="?android:textColorSecondary"
|
||||
android:fontFamily="sans-serif-light"
|
||||
android:text="@string/no_results"
|
||||
android:layout_gravity="center" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/action_delete_from_playlist"
|
||||
android:title="@string/action_delete_from_playlist"
|
||||
android:title="@string/action_remove_from_playlist"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_play_next"
|
||||
|
|
|
|||
|
|
@ -10,9 +10,8 @@
|
|||
app:showAsAction="ifRoom"/>
|
||||
<item
|
||||
android:id="@+id/action_share"
|
||||
android:icon="@drawable/ic_share_white_24dp"
|
||||
android:title="@string/action_share"
|
||||
app:showAsAction="ifRoom"/>
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_shuffle_all"
|
||||
android:title="@string/shuffle_all"
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
<item
|
||||
android:id="@+id/action_delete_from_playlist"
|
||||
android:icon="@drawable/ic_delete_white_24dp"
|
||||
android:title="@string/action_delete_from_playlist"
|
||||
android:title="@string/action_remove_from_playlist"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
</menu>
|
||||
|
|
@ -52,7 +52,7 @@
|
|||
<string name="action_re_download_artist_image">تحديث صورة الفنان</string>
|
||||
<string name="updating">يتم التحديث...</string>
|
||||
<string name="added_title_to_playing_queue">"تمت الإضافة إلى قائمة الانتظار"</string>
|
||||
<string name="action_delete_from_playlist">حذف من قائمة التشغيل</string>
|
||||
<string name="action_remove_from_playlist">حذف من قائمة التشغيل</string>
|
||||
<string name="new_playlist_action">قائمة تشغيل جديدة...</string>
|
||||
<string name="action_grid_columns">عدد قوائم الشبكة</string>
|
||||
<string name="action_grid_columns_land">قائمة شبكية (أرضية)</string>
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@
|
|||
<string name="action_re_download_artist_image">Změnit obrázek umělce</string>
|
||||
<string name="updating">Aktualizace...</string>
|
||||
<string name="added_title_to_playing_queue">"Přidána 1 skladba do fronty."</string>
|
||||
<string name="action_delete_from_playlist">Vymazat z playlistu</string>
|
||||
<string name="action_remove_from_playlist">Vymazat z playlistu</string>
|
||||
<string name="new_playlist_action">Nový playlist...</string>
|
||||
<string name="action_grid_columns">Počet sloupců mřížky</string>
|
||||
<string name="action_grid_columns_land">Počet sloupců mřížky (Horizontálně)</string>
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
<string name="updating">Aktualisiere...</string>
|
||||
<string name="added_title_to_playing_queue">"1 Titel wurde der Wiedergabeliste hinzugefügt."</string>
|
||||
<string name="added_x_titles_to_playing_queue">%1$d Titel wurden der Wiedergabeliste hinzugefügt.</string>
|
||||
<string name="action_delete_from_playlist">Aus Playlist entfernen</string>
|
||||
<string name="action_remove_from_playlist">Aus Playlist entfernen</string>
|
||||
<string name="new_playlist_action">Neue Playlist…</string>
|
||||
<string name="action_grid_columns">Rastergröße</string>
|
||||
<string name="action_grid_columns_land">Rastergröße (Land)</string>
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@
|
|||
<string name="added_title_to_playing_queue">"Προστέθηκε ένας τίτλος στη σειρά αναπαραγωγής"</string>
|
||||
<string name="added_x_titles_to_playing_queue">Προστέθηκαν %1$d εικονίδια στην σειρά αναπαραγωγής</string>
|
||||
<string name="title_activity_playlist_detail">Δραστηριότητα λίστας</string>
|
||||
<string name="action_delete_from_playlist">Διαγραφή από τη λίστα αναπαραγωγής</string>
|
||||
<string name="action_remove_from_playlist">Διαγραφή από τη λίστα αναπαραγωγής</string>
|
||||
<string name="new_playlist_action">Νέα λίστα αναπαραγωγής...</string>
|
||||
<string name="action_grid_columns">Στήλες πλέγματος</string>
|
||||
<string name="action_grid_columns_land">Στήλες πλέγματος</string>
|
||||
|
|
@ -69,16 +69,16 @@
|
|||
]]></string>
|
||||
<string name="delete_song_x"><![CDATA[Θέλετε να διαγράψετε το τραγούδι <b>%1$s</b>;]]></string>
|
||||
<string name="delete_x_songs"><![CDATA[Θέλετε να διαγράψετε <b>%1$d</b> τραγούδια;]]></string>
|
||||
<string name="delete_song_x_from_playlist"><![CDATA[
|
||||
<string name="remove_song_x_from_playlist"><![CDATA[
|
||||
Θα θέλατε να διαγράψετε το κομμάτι <b>%1$s</b> από τη λίστα αναπαραγωγής;
|
||||
]]></string>
|
||||
<string name="delete_x_songs_from_playlist"><![CDATA[
|
||||
<string name="remove_x_songs_from_playlist"><![CDATA[
|
||||
Θα θέλατε να διαγράψετε <b>%1$d</b> κομμάτια από τη λίστα αναπαραγωγής;
|
||||
]]></string>
|
||||
<string name="delete_song_title">Διαγραφή τραγουδιού</string>
|
||||
<string name="delete_songs_title">Διαγραφή τραγουδιών</string>
|
||||
<string name="delete_song_from_playlist_title">Διαγραφή τραγουδιού από τη λίστα αναπαραγωγής</string>
|
||||
<string name="delete_songs_from_playlist_title">Διαγραφή τραγουδιών από τη λίστα αναπαραγωγής</string>
|
||||
<string name="remove_song_from_playlist_title">Διαγραφή τραγουδιού από τη λίστα αναπαραγωγής</string>
|
||||
<string name="remove_songs_from_playlist_title">Διαγραφή τραγουδιών από τη λίστα αναπαραγωγής</string>
|
||||
<string name="rename_playlist_title">Μετονομασία λίστας αναπαραγωγής</string>
|
||||
<string name="delete_playlist_title">Διαγραφή λίστας αναπαραγωγής</string>
|
||||
<string name="delete_playlists_title">Διαγραφή λιστών αναπαραγωγής</string>
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
<string name="added_title_to_playing_queue">"1 título añadido a la cola de reproducción"</string>
|
||||
<string name="added_x_titles_to_playing_queue">%1$d título(s) añadido(s) a la cola de reproducción</string>
|
||||
<string name="title_activity_playlist_detail">Actividad de la lista de reproducción</string>
|
||||
<string name="action_delete_from_playlist">Borrar de la lista de reproducción</string>
|
||||
<string name="action_remove_from_playlist">Borrar de la lista de reproducción</string>
|
||||
<string name="new_playlist_action">Nueva lista de reproducción...</string>
|
||||
<string name="action_grid_columns">Columnas de la cuadrícula</string>
|
||||
<string name="action_grid_columns_land">Columnas de la cuadrícula (apaisado)</string>
|
||||
|
|
@ -76,16 +76,16 @@
|
|||
]]></string>
|
||||
<string name="delete_song_x"><![CDATA[¿Seguro que deseas eliminar la canción <b>%1$s</b>?]]></string>
|
||||
<string name="delete_x_songs"><![CDATA[¿Seguro que desea borrar <b>%1$d</b> canciones?]]></string>
|
||||
<string name="delete_song_x_from_playlist"><![CDATA[
|
||||
<string name="remove_song_x_from_playlist"><![CDATA[
|
||||
¿Quiere eliminar la canción <b>%1$s</b> de la lista de reproducción?
|
||||
]]></string>
|
||||
<string name="delete_x_songs_from_playlist"><![CDATA[
|
||||
<string name="remove_x_songs_from_playlist"><![CDATA[
|
||||
¿Quiere eliminar las canciónes <b>%1$d</b> de la lista de reproducción?
|
||||
]]></string>
|
||||
<string name="delete_song_title">Borrar canción</string>
|
||||
<string name="delete_songs_title">Borrar canciones</string>
|
||||
<string name="delete_song_from_playlist_title">Eliminar canción de la lista de reproducción</string>
|
||||
<string name="delete_songs_from_playlist_title">Eliminar canciones de la lista de reproducción</string>
|
||||
<string name="remove_song_from_playlist_title">Eliminar canción de la lista de reproducción</string>
|
||||
<string name="remove_songs_from_playlist_title">Eliminar canciones de la lista de reproducción</string>
|
||||
<string name="rename_playlist_title">Renombrar lista de reproducción</string>
|
||||
<string name="delete_playlist_title">Borrar lista de reproducción</string>
|
||||
<string name="delete_playlists_title">Eliminar listas de reproducción</string>
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
<string name="updating">Päivitetään...</string>
|
||||
<string name="added_title_to_playing_queue">"Kappale lisätty jonoon"</string>
|
||||
<string name="added_x_titles_to_playing_queue">{%1$d} kappaletta lisättiin jonoon</string>
|
||||
<string name="action_delete_from_playlist">Poista soittolistalta</string>
|
||||
<string name="action_remove_from_playlist">Poista soittolistalta</string>
|
||||
<string name="new_playlist_action">Uusi soittolista</string>
|
||||
<string name="action_grid_columns">Ruudukon sarakkeet</string>
|
||||
<string name="action_grid_columns_land">Ruudukon sarakkeet (Vaaka)</string>
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
<string name="updating">Actualisation...</string>
|
||||
<string name="added_title_to_playing_queue">"1 titre ajouté à la file de lecture."</string>
|
||||
<string name="added_x_titles_to_playing_queue">%1$d titres ajoutés à la file de lecture.</string>
|
||||
<string name="action_delete_from_playlist">Supprimer de la playlist</string>
|
||||
<string name="action_remove_from_playlist">Supprimer de la playlist</string>
|
||||
<string name="new_playlist_action">Nouvelle playlist...</string>
|
||||
<string name="action_grid_columns">Nombre de colonnes</string>
|
||||
<string name="action_grid_columns_land">Nombre de colonnes (paysage)</string>
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
<string name="added_title_to_playing_queue">"Un brano aggiunto alla coda."</string>
|
||||
<string name="added_x_titles_to_playing_queue">%1$d titoli aggiunti alla coda.</string>
|
||||
<string name="title_activity_playlist_detail">Attività playlist</string>
|
||||
<string name="action_delete_from_playlist">Elimina dalla playlist</string>
|
||||
<string name="action_remove_from_playlist">Elimina dalla playlist</string>
|
||||
<string name="new_playlist_action">Nuova playlist...</string>
|
||||
<string name="action_grid_columns">Colonne griglia</string>
|
||||
<string name="action_grid_columns_land">Colonne griglia (schermo orizzontale)</string>
|
||||
|
|
@ -76,16 +76,16 @@
|
|||
]]></string>
|
||||
<string name="delete_song_x"><![CDATA[ Vuoi eliminare il brano <b>%1$s</b>? ]]></string>
|
||||
<string name="delete_x_songs"><![CDATA[ Vuoi eliminare <b>%1$d</b> brani? ]]></string>
|
||||
<string name="delete_song_x_from_playlist"><![CDATA[
|
||||
<string name="remove_song_x_from_playlist"><![CDATA[
|
||||
Vuoi eliminare il brano <b>%1$s</b> dalla playlist?
|
||||
]]></string>
|
||||
<string name="delete_x_songs_from_playlist"><![CDATA[
|
||||
<string name="remove_x_songs_from_playlist"><![CDATA[
|
||||
Vuoi eliminare <b>%1$d</b> brani dalla playlist?
|
||||
]]></string>
|
||||
<string name="delete_song_title">Elimina brano</string>
|
||||
<string name="delete_songs_title">Elimina brani</string>
|
||||
<string name="delete_song_from_playlist_title">Elimina brano dalla playlist</string>
|
||||
<string name="delete_songs_from_playlist_title">Elimina brani dalla playlist</string>
|
||||
<string name="remove_song_from_playlist_title">Elimina brano dalla playlist</string>
|
||||
<string name="remove_songs_from_playlist_title">Elimina brani dalla playlist</string>
|
||||
<string name="rename_playlist_title">Rinomina playlist</string>
|
||||
<string name="delete_playlist_title">Elimina playlist</string>
|
||||
<string name="delete_playlists_title">Elimina playlist</string>
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
<string name="updating">변경 중...</string>
|
||||
<string name="added_title_to_playing_queue">"재생 대기열에 1개의 음악을 추가했습니다."</string>
|
||||
<string name="added_x_titles_to_playing_queue">%1$d개의 타이틀을 재생 대기열에 추가했습니다.</string>
|
||||
<string name="action_delete_from_playlist">재생목록에서 삭제</string>
|
||||
<string name="action_remove_from_playlist">재생목록에서 삭제</string>
|
||||
<string name="new_playlist_action">새로운 재생목록...</string>
|
||||
<string name="action_grid_columns">가로 격자</string>
|
||||
<string name="action_grid_columns_land">가로 격자 (가로모드일 때)</string>
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@
|
|||
<string name="added_title_to_playing_queue">"1 titel toegevoegd aan de afspeelwachtrij."</string>
|
||||
<string name="added_x_titles_to_playing_queue">%1$d titels toegevoegd aan de afspeellijst.</string>
|
||||
<string name="title_activity_playlist_detail">"Afspeellijst activiteit "</string>
|
||||
<string name="action_delete_from_playlist">Verwijderen uit afspeellijst</string>
|
||||
<string name="action_remove_from_playlist">Verwijderen uit afspeellijst</string>
|
||||
<string name="new_playlist_action">Nieuwe afspeellijst...</string>
|
||||
<string name="action_grid_columns">Rasterkolommen</string>
|
||||
<string name="action_grid_columns_land">Rasterkolommen (Land)</string>
|
||||
|
|
@ -67,14 +67,14 @@
|
|||
<string name="delete_x_playlists"><![CDATA[Wil je <b>%1$d</b> afspeellijsten verwijderen?]]></string>
|
||||
<string name="delete_song_x"><![CDATA[Wil je het nummer <b>%1$s</b> verwijderen?]]></string>
|
||||
<string name="delete_x_songs"><![CDATA[Wil je <b>%1$d</b> nummers verwijderen?]]></string>
|
||||
<string name="delete_song_x_from_playlist"><![CDATA[Wil je het nummer <b>%1$s</b> verwijderen van de afspeellijst?]]></string>
|
||||
<string name="delete_x_songs_from_playlist"><![CDATA[
|
||||
<string name="remove_song_x_from_playlist"><![CDATA[Wil je het nummer <b>%1$s</b> verwijderen van de afspeellijst?]]></string>
|
||||
<string name="remove_x_songs_from_playlist"><![CDATA[
|
||||
Wil je <b>%1$d</b> nummers verwijderen uit de afspeellijst?
|
||||
]]></string>
|
||||
<string name="delete_song_title">Verwijder nummer</string>
|
||||
<string name="delete_songs_title">Verwijder nummers</string>
|
||||
<string name="delete_song_from_playlist_title">Verwijder nummer uit afspeellijst</string>
|
||||
<string name="delete_songs_from_playlist_title">Verwijder nummers uit afspeellijst</string>
|
||||
<string name="remove_song_from_playlist_title">Verwijder nummer uit afspeellijst</string>
|
||||
<string name="remove_songs_from_playlist_title">Verwijder nummers uit afspeellijst</string>
|
||||
<string name="rename_playlist_title">Hernoem afspeellijst</string>
|
||||
<string name="delete_playlist_title">Verwijder afspeellijst</string>
|
||||
<string name="delete_playlists_title">Verwijder afspeellijst</string>
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@
|
|||
<string name="added_title_to_playing_queue">"La 1 tittel til songkøen."</string>
|
||||
<string name="added_x_titles_to_playing_queue">La %1$d titlar til songkøen.</string>
|
||||
<string name="title_activity_playlist_detail">Spelelisteaktivitet</string>
|
||||
<string name="action_delete_from_playlist">Fjern frå speleliste</string>
|
||||
<string name="action_remove_from_playlist">Fjern frå speleliste</string>
|
||||
<string name="new_playlist_action">Ny speleliste...</string>
|
||||
<string name="action_grid_columns">Rutenettkolonnar</string>
|
||||
<string name="action_grid_columns_land">Rutenettkolonnar (land)</string>
|
||||
|
|
@ -75,16 +75,16 @@
|
|||
<string name="delete_x_songs"><![CDATA[
|
||||
Ynskjer du å slette <b>%1$d</b> songar?
|
||||
]]></string>
|
||||
<string name="delete_song_x_from_playlist"><![CDATA[
|
||||
<string name="remove_song_x_from_playlist"><![CDATA[
|
||||
Ynskjer du å slette songen <b>%1$s</b> frå spelelista?
|
||||
]]></string>
|
||||
<string name="delete_x_songs_from_playlist"><![CDATA[
|
||||
<string name="remove_x_songs_from_playlist"><![CDATA[
|
||||
Ynskjer du å slette <b>%1$d</b> songar frår spelelista?
|
||||
]]></string>
|
||||
<string name="delete_song_title">Slett song</string>
|
||||
<string name="delete_songs_title">Slett songar</string>
|
||||
<string name="delete_song_from_playlist_title">Slett song frå speleliste</string>
|
||||
<string name="delete_songs_from_playlist_title">Slett songar frå speleliste</string>
|
||||
<string name="remove_song_from_playlist_title">Slett song frå speleliste</string>
|
||||
<string name="remove_songs_from_playlist_title">Slett songar frå speleliste</string>
|
||||
<string name="rename_playlist_title">Gje nytt namn til speleliste</string>
|
||||
<string name="delete_playlist_title">Slett speleliste</string>
|
||||
<string name="delete_playlists_title">Slett spelelister</string>
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
<string name="added_title_to_playing_queue">"Dodano 1 tytuł do kolejki odtwarzania"</string>
|
||||
<string name="added_x_titles_to_playing_queue">Dodano %1$d tytuły do kolejki odtwarzania</string>
|
||||
<string name="title_activity_playlist_detail">Aktywność list odtwarzania</string>
|
||||
<string name="action_delete_from_playlist">Usuń z listy odtwarzania</string>
|
||||
<string name="action_remove_from_playlist">Usuń z listy odtwarzania</string>
|
||||
<string name="new_playlist_action">Nowa lista odtwarzania...</string>
|
||||
<string name="action_grid_columns">Siatka kolumn</string>
|
||||
<string name="action_grid_columns_land">Siatka kolumn (poziomo)</string>
|
||||
|
|
@ -74,12 +74,12 @@
|
|||
<string name="delete_x_playlists"><![CDATA[Czy chcesz usunąć <b>%1$d</b> listy odtwarzania? ]]></string>
|
||||
<string name="delete_song_x"><![CDATA[ Czy chcesz usunąć utwór <b>%1$s</b>? ]]></string>
|
||||
<string name="delete_x_songs"><![CDATA[ Czy chcesz usunąć <b>%1$d</b> utworów? ]]></string>
|
||||
<string name="delete_song_x_from_playlist"><![CDATA[Czy chcesz usunąć utwór <b>%1$s</b> z listy odtwarzania? ]]></string>
|
||||
<string name="delete_x_songs_from_playlist"><![CDATA[Czy chcesz usunąć <b>%1$d</b> utworów z listy odtwarzania? ]]></string>
|
||||
<string name="remove_song_x_from_playlist"><![CDATA[Czy chcesz usunąć utwór <b>%1$s</b> z listy odtwarzania? ]]></string>
|
||||
<string name="remove_x_songs_from_playlist"><![CDATA[Czy chcesz usunąć <b>%1$d</b> utworów z listy odtwarzania? ]]></string>
|
||||
<string name="delete_song_title">Usuwanie utworu</string>
|
||||
<string name="delete_songs_title">Usuń utwory</string>
|
||||
<string name="delete_song_from_playlist_title">Usuń utwór z listy odtwarzania</string>
|
||||
<string name="delete_songs_from_playlist_title">Usuń utwory z listy odtwarzania</string>
|
||||
<string name="remove_song_from_playlist_title">Usuń utwór z listy odtwarzania</string>
|
||||
<string name="remove_songs_from_playlist_title">Usuń utwory z listy odtwarzania</string>
|
||||
<string name="rename_playlist_title">Zmień nazwę listy odtwarzania</string>
|
||||
<string name="delete_playlist_title">Usuń listę odtwarzania</string>
|
||||
<string name="delete_playlists_title">Usuń listy odtwarzania</string>
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
<string name="added_title_to_playing_queue">"1 título adicionado à lista de reprodução"</string>
|
||||
<string name="added_x_titles_to_playing_queue">%1$d faixas adicionadas à lista de reprodução.</string>
|
||||
<string name="title_activity_playlist_detail">Atividade da Lista de Reprodução</string>
|
||||
<string name="action_delete_from_playlist">Excluir da playlist</string>
|
||||
<string name="action_remove_from_playlist">Excluir da playlist</string>
|
||||
<string name="new_playlist_action">Nova playlist...</string>
|
||||
<string name="action_grid_columns">Colunas da grade</string>
|
||||
<string name="action_grid_columns_land">Colunas da grade (Horizontal)</string>
|
||||
|
|
@ -76,16 +76,16 @@
|
|||
]]></string>
|
||||
<string name="delete_song_x"><![CDATA[ Deseja excluir a faixa <b>%1$s</b>? ]]></string>
|
||||
<string name="delete_x_songs"><![CDATA[ Deseja excluir <b>%1$d</b> faixas? ]]></string>
|
||||
<string name="delete_song_x_from_playlist"><![CDATA[
|
||||
<string name="remove_song_x_from_playlist"><![CDATA[
|
||||
Deseja excluir a música <b>%1$s</b> da playlist?
|
||||
]]></string>
|
||||
<string name="delete_x_songs_from_playlist"><![CDATA[
|
||||
<string name="remove_x_songs_from_playlist"><![CDATA[
|
||||
Deseja excluir <b>%1$d</b> músicas da playlist?
|
||||
]]></string>
|
||||
<string name="delete_song_title">Excluir Faixa</string>
|
||||
<string name="delete_songs_title">Excluir Faixas</string>
|
||||
<string name="delete_song_from_playlist_title">Deletar música da Playlist</string>
|
||||
<string name="delete_songs_from_playlist_title">Deletar músicas da Playlist</string>
|
||||
<string name="remove_song_from_playlist_title">Deletar música da Playlist</string>
|
||||
<string name="remove_songs_from_playlist_title">Deletar músicas da Playlist</string>
|
||||
<string name="rename_playlist_title">Renomear Playlist</string>
|
||||
<string name="delete_playlist_title">Excluir Playlist</string>
|
||||
<string name="delete_playlists_title">Apagar Playlists</string>
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
<string name="action_re_download_artist_image">Atualizar imagem do artista</string>
|
||||
<string name="updating">Atualizando...</string>
|
||||
<string name="added_title_to_playing_queue">"Adicionada uma música para a fila atual de músicas."</string>
|
||||
<string name="action_delete_from_playlist">Apagar da playlist</string>
|
||||
<string name="action_remove_from_playlist">Apagar da playlist</string>
|
||||
<string name="action_grid_columns">Colunas da grade</string>
|
||||
<string name="action_grid_columns_land">Colunas da grade (Paisagem)</string>
|
||||
<string name="delete_warning">"Aviso: Esta operação não pode ser desfeita."</string>
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
<string name="action_re_download_artist_image">Actualizează imagine artist</string>
|
||||
<string name="updating">Actualizare...</string>
|
||||
<string name="added_title_to_playing_queue">"Adăugat 1 melodie la lista de redare."</string>
|
||||
<string name="action_delete_from_playlist">Şterge din playlist</string>
|
||||
<string name="action_remove_from_playlist">Şterge din playlist</string>
|
||||
<string name="new_playlist_action">Playlist nou...</string>
|
||||
<string name="action_grid_columns">Rânduri pe grid</string>
|
||||
<string name="action_grid_columns_land">Rânduri pe grid (Orizontal)</string>
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@
|
|||
<string name="added_title_to_playing_queue">"Добавлена 1 композиция в очередь воспроизведения"</string>
|
||||
<string name="added_x_titles_to_playing_queue">Добавлено %1$d композиций в очередь воспроизведения</string>
|
||||
<string name="title_activity_playlist_detail">Активность списка воспроизведения</string>
|
||||
<string name="action_delete_from_playlist">Удалить из списка воспроизведения</string>
|
||||
<string name="action_remove_from_playlist">Удалить из списка воспроизведения</string>
|
||||
<string name="new_playlist_action">Новый список воспроизведения...</string>
|
||||
<string name="action_grid_columns">Столбцы сетки</string>
|
||||
<string name="action_grid_columns_land">Столбцы сетки (ландшафт)</string>
|
||||
|
|
@ -69,16 +69,16 @@
|
|||
]]></string>
|
||||
<string name="delete_song_x"><![CDATA[ Вы хотите удалить песню <b>%1$s</b>? ]]></string>
|
||||
<string name="delete_x_songs"><![CDATA[ Вы хотите удалить <b>%1$d</b> песни? ]]></string>
|
||||
<string name="delete_song_x_from_playlist"><![CDATA[
|
||||
<string name="remove_song_x_from_playlist"><![CDATA[
|
||||
Вы хотите удалить песню <b>%1$s</b> из списка воспроизведения ?
|
||||
]]></string>
|
||||
<string name="delete_x_songs_from_playlist"><![CDATA[
|
||||
<string name="remove_x_songs_from_playlist"><![CDATA[
|
||||
Вы хотите удалить песни <b>%1$d</b> из списка воспроизведения ?
|
||||
]]></string>
|
||||
<string name="delete_song_title">Удалить песню</string>
|
||||
<string name="delete_songs_title">Удалить песни</string>
|
||||
<string name="delete_song_from_playlist_title">Удалить песню из списка воспроизведения</string>
|
||||
<string name="delete_songs_from_playlist_title">Удалить песни из списка воспроизведения</string>
|
||||
<string name="remove_song_from_playlist_title">Удалить песню из списка воспроизведения</string>
|
||||
<string name="remove_songs_from_playlist_title">Удалить песни из списка воспроизведения</string>
|
||||
<string name="rename_playlist_title">Переименовать список воспроизведения</string>
|
||||
<string name="delete_playlist_title">Удалить список воспроизведения</string>
|
||||
<string name="delete_playlists_title">Удалить списки воспроизведения</string>
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@
|
|||
<string name="action_re_download_artist_image">Uppdatera artistbild</string>
|
||||
<string name="updating">Uppdaterar ...</string>
|
||||
<string name="added_title_to_playing_queue">"Lagt till 1 titel till spellistan."</string>
|
||||
<string name="action_delete_from_playlist">Radera från spellista</string>
|
||||
<string name="action_remove_from_playlist">Radera från spellista</string>
|
||||
<string name="new_playlist_action">Ny spellista ...</string>
|
||||
<string name="created_playlist_x">Spellista %1$s skapad</string>
|
||||
<string name="deleted_playlist_x">Spellista %1$s raderad</string>
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
<string name="added_title_to_playing_queue">"Çalma kuyruğuna 1 başlık eklendi"</string>
|
||||
<string name="added_x_titles_to_playing_queue">Çalma kuyruğuna %1$d başlıkları eklendi.</string>
|
||||
<string name="title_activity_playlist_detail">Çalma listesi etkinliği</string>
|
||||
<string name="action_delete_from_playlist">Çalma listesinden sil</string>
|
||||
<string name="action_remove_from_playlist">Çalma listesinden sil</string>
|
||||
<string name="new_playlist_action">Yeni çalma listesi</string>
|
||||
<string name="action_grid_columns">Izgara sütunları</string>
|
||||
<string name="action_grid_columns_land">Izgara sütunları (Manzara)</string>
|
||||
|
|
@ -74,13 +74,13 @@
|
|||
<string name="delete_x_playlists"><![CDATA[<b>%1$d</b> oynatma listelerini silmek istiyor musunuz?]]></string>
|
||||
<string name="delete_song_x"><![CDATA[ <b>%1$s</b> şarkısını silmek istiyor musunuz? ]]></string>
|
||||
<string name="delete_x_songs"><![CDATA[ <b>%1$d</b> bu şarkıları silmek istiyor musunuz? ]]></string>
|
||||
<string name="delete_song_x_from_playlist"><![CDATA[Çalma listesinden <b>%1$s</b> şarkısını silmek istiyor musunuz?]]></string>
|
||||
<string name="delete_x_songs_from_playlist"><![CDATA[Çalma listesinden <b>%1$d</b> şarkılarını silmek istiyor musunuz?
|
||||
<string name="remove_song_x_from_playlist"><![CDATA[Çalma listesinden <b>%1$s</b> şarkısını silmek istiyor musunuz?]]></string>
|
||||
<string name="remove_x_songs_from_playlist"><![CDATA[Çalma listesinden <b>%1$d</b> şarkılarını silmek istiyor musunuz?
|
||||
]]></string>
|
||||
<string name="delete_song_title">Şarkıyı Sil</string>
|
||||
<string name="delete_songs_title">Şarkıları Sil</string>
|
||||
<string name="delete_song_from_playlist_title">Çalma listesinden şarkı sil</string>
|
||||
<string name="delete_songs_from_playlist_title">Çalma listesinden şarkıları sil</string>
|
||||
<string name="remove_song_from_playlist_title">Çalma listesinden şarkı sil</string>
|
||||
<string name="remove_songs_from_playlist_title">Çalma listesinden şarkıları sil</string>
|
||||
<string name="rename_playlist_title">Çalma Listesini Yeniden Adlandır</string>
|
||||
<string name="delete_playlist_title">Çalma Listesini Sil</string>
|
||||
<string name="delete_playlists_title">Çalma listelerini sil</string>
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
<string name="added_title_to_playing_queue">"该曲目已加入播放队列"</string>
|
||||
<string name="added_x_titles_to_playing_queue">%1$d首曲目已加入播放队列</string>
|
||||
<string name="title_activity_playlist_detail">播放列表操作</string>
|
||||
<string name="action_delete_from_playlist">从播放列表中删除</string>
|
||||
<string name="action_remove_from_playlist">从播放列表中删除</string>
|
||||
<string name="new_playlist_action">新建播放列表</string>
|
||||
<string name="action_grid_columns">专辑列数</string>
|
||||
<string name="action_grid_columns_land">专辑列数(横屏)</string>
|
||||
|
|
@ -80,16 +80,16 @@
|
|||
<string name="delete_x_songs"><![CDATA[
|
||||
确认要删除以下<b>%1$d</b>首歌曲?
|
||||
]]></string>
|
||||
<string name="delete_song_x_from_playlist"><![CDATA[
|
||||
<string name="remove_song_x_from_playlist"><![CDATA[
|
||||
确认要从播放列表中删除这首歌:<b>%1$s</b>?
|
||||
]]></string>
|
||||
<string name="delete_x_songs_from_playlist"><![CDATA[
|
||||
<string name="remove_x_songs_from_playlist"><![CDATA[
|
||||
确认要从播放列表中删除以下<b>%1$d</b>首歌曲?
|
||||
]]></string>
|
||||
<string name="delete_song_title">删除歌曲</string>
|
||||
<string name="delete_songs_title">删除歌曲</string>
|
||||
<string name="delete_song_from_playlist_title">从播放列表删除</string>
|
||||
<string name="delete_songs_from_playlist_title">从播放列表删除</string>
|
||||
<string name="remove_song_from_playlist_title">从播放列表删除</string>
|
||||
<string name="remove_songs_from_playlist_title">从播放列表删除</string>
|
||||
<string name="rename_playlist_title">重命名播放列表</string>
|
||||
<string name="delete_playlist_title">删除播放列表</string>
|
||||
<string name="delete_playlists_title">删除播放列表</string>
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@
|
|||
<string name="added_title_to_playing_queue">"這歌曲已加入播放佇列"</string>
|
||||
<string name="added_x_titles_to_playing_queue">已增加%1$d首歌曲到播放佇列</string>
|
||||
<string name="title_activity_playlist_detail">音樂清單活動</string>
|
||||
<string name="action_delete_from_playlist">從音樂清單移除</string>
|
||||
<string name="action_remove_from_playlist">從音樂清單移除</string>
|
||||
<string name="new_playlist_action">新增音樂清單</string>
|
||||
<string name="action_grid_columns">專輯網格列數</string>
|
||||
<string name="action_grid_columns_land">專輯網格列數(橫向)</string>
|
||||
|
|
@ -73,16 +73,16 @@
|
|||
你想移除這首歌曲: <b>%1$s</b>嗎?
|
||||
]]></string>
|
||||
<string name="delete_x_songs"><![CDATA[你想要移除以下歌曲: <b>%1$d</b>嗎?]]></string>
|
||||
<string name="delete_song_x_from_playlist"><![CDATA[
|
||||
<string name="remove_song_x_from_playlist"><![CDATA[
|
||||
你想要將這首歌曲:<b>%1$s</b>從音樂清單移除嗎?
|
||||
]]></string>
|
||||
<string name="delete_x_songs_from_playlist"><![CDATA[
|
||||
<string name="remove_x_songs_from_playlist"><![CDATA[
|
||||
你想要將以下歌曲:<b>%1$d</b>從音樂清單移除嗎?
|
||||
]]></string>
|
||||
<string name="delete_song_title">移除歌曲</string>
|
||||
<string name="delete_songs_title">移除歌曲</string>
|
||||
<string name="delete_song_from_playlist_title">將歌曲從音樂清單移除</string>
|
||||
<string name="delete_songs_from_playlist_title">將歌曲從音樂清單移除</string>
|
||||
<string name="remove_song_from_playlist_title">將歌曲從音樂清單移除</string>
|
||||
<string name="remove_songs_from_playlist_title">將歌曲從音樂清單移除</string>
|
||||
<string name="rename_playlist_title">重新命名音樂清單</string>
|
||||
<string name="delete_playlist_title">刪除音樂清單</string>
|
||||
<string name="delete_playlists_title">刪除音樂清單</string>
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@
|
|||
<string name="added_title_to_playing_queue">"Added 1 title to the playing queue."</string>
|
||||
<string name="added_x_titles_to_playing_queue">Added %1$d titles to the playing queue.</string>
|
||||
<string name="title_activity_playlist_detail">Playlist Activity</string>
|
||||
<string name="action_delete_from_playlist">Delete from playlist</string>
|
||||
<string name="action_remove_from_playlist">Remove from playlist</string>
|
||||
<string name="new_playlist_action">New playlist…</string>
|
||||
<string name="action_grid_columns">Grid columns</string>
|
||||
<string name="action_grid_columns_land">Grid columns (Land)</string>
|
||||
|
|
@ -84,16 +84,16 @@
|
|||
<string name="delete_x_songs"><![CDATA[
|
||||
Do you want to delete <b>%1$d</b> songs?
|
||||
]]></string>
|
||||
<string name="delete_song_x_from_playlist"><![CDATA[
|
||||
Do you want to delete the song <b>%1$s</b> from the playlist?
|
||||
<string name="remove_song_x_from_playlist"><![CDATA[
|
||||
Do you want to remove the song <b>%1$s</b> from the playlist?
|
||||
]]></string>
|
||||
<string name="delete_x_songs_from_playlist"><![CDATA[
|
||||
Do you want to delete <b>%1$d</b> songs from the playlist?
|
||||
<string name="remove_x_songs_from_playlist"><![CDATA[
|
||||
Do you want to remove <b>%1$d</b> songs from the playlist?
|
||||
]]></string>
|
||||
<string name="delete_song_title">Delete Song</string>
|
||||
<string name="delete_songs_title">Delete Songs</string>
|
||||
<string name="delete_song_from_playlist_title">Delete Song from Playlist</string>
|
||||
<string name="delete_songs_from_playlist_title">Delete Songs from Playlist</string>
|
||||
<string name="remove_song_from_playlist_title">Remove Song from Playlist</string>
|
||||
<string name="remove_songs_from_playlist_title">Remove Songs from Playlist</string>
|
||||
<string name="rename_playlist_title">Rename Playlist</string>
|
||||
<string name="delete_playlist_title">Delete Playlist</string>
|
||||
<string name="delete_playlists_title">Delete Playlists</string>
|
||||
|
|
@ -128,9 +128,11 @@
|
|||
<string name="navigation_drawer_open">Open navigation drawer</string>
|
||||
<string name="navigation_drawer_close">Close navigation drawer</string>
|
||||
<string name="delete_action">Delete</string>
|
||||
<string name="remove_action">Remove</string>
|
||||
<string name="rename_action">Rename</string>
|
||||
<string name="create_action">Create</string>
|
||||
|
||||
<string name="x_selected">%1$d selected</string>
|
||||
<string name="select">Select</string>
|
||||
<string name="default_str">Default</string>
|
||||
<string name="primary_color">Primary Color</string>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue